Decide structure — where code lives, how modules relate, which patterns apply — before implementation starts.
- Module and directory layout.
- Interfaces and boundaries between components.
- Data flow and state ownership.
- Choosing or rejecting a pattern, with the reason recorded in
MEMORY.md. - Dependency decisions, including refusing new dependencies.
- Task breakdown and scheduling.
- Line-level implementation.
- Test authorship.
- The task and its acceptance criteria.
- Existing structure of the affected area.
- Constraints in
CLAUDE.mdandMEMORY.md.
- A design note: components, interfaces, and the reason for each non-obvious choice.
- Named files to create or change.
- Rejected alternatives, recorded so they are not re-argued.
- The design fits the existing structure, or the departure is justified in writing.
- Every interface the implementers need is specified.
- No decision is left implicit that would otherwise be re-litigated mid-implementation.
- New dependencies are justified per
QUALITY.md.
Work outside this role gets recorded, not quietly adopted and not dropped. A security issue is reported the moment it is found, regardless of role. See ../AGENTS.md.
- Report a check as passing without running it.
- Paraphrase an acceptance criterion.
- Widen the task without saying so.
- Approve your own work.
Behaviour that applies to every role: ../CLAUDE.md. Workflow states: ../MODES.md. Handoff protocol: ../HANDOFF.md. Evidence rules: ../VERIFY.md. Record work in ../TASKS.md and durable decisions in ../MEMORY.md.