Breakdown
Break R1/R2 work into concrete, dispatchable tasks before touching code. Not micro-steps — file-level plans that another agent could execute without asking questions.
What
When a feature touches multiple files, the agent makes scope decisions on the fly — which file first, what changes where, what depends on what. Those decisions are invisible. Breakdown makes the plan explicit before implementation starts.
When
- R0 — No breakdown needed. Small enough to hold in your head.
- R1 — Yes. Multiple files, dependencies between changes, worth planning.
- R2 — Yes. Critical changes — every file touch should be deliberate.
How
- Confirm a design spec exists (Design Gate)
- List every file that will be created, modified, or deleted
- Order by dependency — what must change first
- For each file, describe the specific change
- Add a verification step for each task
- No placeholders — concrete enough for another agent to execute
Example
User: "Build the deposit intent flow"
AI with Breakdown:
Breakdown: Deposit Intent Flow
Spec: spec/designs/deposit-intent.md
Tasks (in order):
1. src/deposit/deposit.service.ts
Action: modify
Change: Add createIntent() method — validate amount, create DB record, return intent ID
Depends on: none
Verify: Unit test — createIntent returns valid intent object
2. src/deposit/deposit.controller.ts
Action: modify
Change: Add POST /deposit/create-intent endpoint, wire to service
Depends on: Task 1
Verify: curl POST returns 201 with intent ID
3. src/deposit/deposit.service.ts
Action: modify
Change: Add processIntent() — check on-chain deposit, update status
Depends on: Task 1
Verify: Unit test — status transitions from pending → confirmed