1.8 KiB
1.8 KiB
Resolve Design Contracts
Use after freezing the review head and before selecting module or feature references. The maintained design index defines two routing axes:
- Module designs own code boundaries and invariants. Select one primary module and a second only when the live producer-consumer path crosses it.
- Feature designs describe behavior spanning modules. Load every feature page whose implementation, default, support, or contract changes.
Resolution order
- Open
docs/design/index.mdin the reviewed head, not the reviewer's checkout or published latest tree. - Match changed behavior against each module page's
primary_code_paths,primary_path_exceptions, ownership boundary, anddepends_onmetadata. - Read
status,architecture_state,last_verified_commit, and any linked in-flight work before treating prose as current behavior. - Use current code and tests when a page is draft, deferred, stale, absent, or conflicts with the frozen implementation. Report material documentation drift separately.
- Treat candidate invariants and promotion gates as review questions until repository policy, current code/tests, or owner-approved normative text makes them enforceable. Do not turn a draft identifier into an automatic blocker.
- Use published latest docs only for discovery when the reviewed head lacks a page; never import a newer contract into an older branch silently.
When behavior changes an active module or feature contract, require the same PR to update that page. Require a new page only when repository policy, an accepted RFC/issue, or explicit maintainer acceptance criteria do so; otherwise treat it as a non-blocking design suggestion. Do not demand a second page when an existing design already owns the exact contract.