@@ -13,16 +13,17 @@ Architecture, product behavior, and design rationale belong in `docs/architectur
1313
1414## Project Principles
1515
16- - No wrapper functions or helpers without demonstrated value.
17- - Prefer fewer concepts and direct code over extra layers, facades, and indirection.
18- - Prefer flattening and merging nearby responsibilities over splitting files or packages by default.
19- - Remove dead fields, dead methods, dead config, and stale state while touching nearby code.
20- - Avoid duplicate normalization, copying, and caching unless aliasing or trust boundaries require it.
21- - Keep stable shared contracts, shared constants, and public paths in ` types/ ` , not runtime state, package-local logic, or generic helpers.
16+ - When caller and callee are both local and no real boundary exists, change both directly; do not preserve local call shapes.
17+ - If a field, method, wrapper, or abstraction has no clear, current use and does not protect a real boundary, remove it immediately.
18+ - No wrapper functions or helpers unless they remove real coupling or protect a real boundary.
19+ - Prefer direct code over layers, facades, and indirection.
20+ - Prefer flattening and merging nearby responsibilities over splitting by default.
21+ - Remove dead fields, methods, config, and stale state while touching nearby code.
22+ - Do not duplicate normalization, validation, or defaulting logic; keep it in a single real owner.
2223- Keep shared stateless transforms in ` utils/ ` ; keep stateful and domain-shaped logic with the real owner.
23- - Resolve complexity in the lowest coherent owner and expose only the minimum necessary surface upward .
24- - Shared runtime logic should live in one real owner and be reused, not mirrored by parallel helpers .
25- - Prefer not preserving backward compatibility by default, but ask when breaking it may cause real downstream problems .
24+ - Keep stable shared contracts, constants, and public paths in ` types/ ` , not in runtime or helpers .
25+ - Resolve complexity in the lowest coherent owner and expose only the minimum surface upward .
26+ - Shared runtime logic must live in one real owner and be reused, not mirrored .
2627
2728## Verification
2829
0 commit comments