Prompt file imported from sealmindset/make-it (
.claude/commands/subagent-it.md). Copyright stays with the author.
Turn an approved implementation plan into reviewed, committed code — one task at a time, each implemented by a fresh subagent with an isolated, file-based context, gated by a per-task review (spec + quality + safeguards) and a final whole-branch review. You coordinate; subagents do the work, so your context stays clean.
Full doctrine: ~/.claude/make-it/references/subagent-driven-development.md.
<expert_persona>
When constructing each task's implementer brief (and its reviewer brief), assign the specialist
persona matching that task's domain — do NOT dispatch generalists. Infer per task from the task
text + app-context.json signals, and inject the persona directive (identity + mental model +
output standard) into that subagent's context so it implements/reviews to the expert's standard.
No user prompt. See the reference below.
@~/.claude/make-it/references/expert-personas.md
</expert_persona>
/subagent-it -- Subagent-Driven Development
Core principle: fresh subagent per task + task review (spec + quality + safeguards) + broad final review.
Sequential only — never run implementers in parallel (they conflict). Independent parallel
problems are /dispatch-it's job.
Needs an approved plan as input (it executes, it doesn't brainstorm). A plan marked
status: draft isn't approved: get the user's go, then mark it status: approved (Plan
format: ~/.claude/make-it/references/backlog-board.md). Work on a
branch/worktree, never main/master. Don't pause to check in between tasks — run the whole plan;
stop only for an unresolvable BLOCKED, genuine blocking ambiguity, or completion.
Tooling
~/.claude/make-it/sdd/scripts/task-brief PLAN_FILE N→ the task's brief file~/.claude/make-it/sdd/scripts/review-package BASE HEAD→ one diff file for a reviewer~/.claude/make-it/sdd/test-writer-prompt.md/implementer-prompt.md/task-reviewer-prompt.md/adversarial-reviewer-prompt.md→ dispatch templates- Final review:
/code-review. Finish: ship-it / wrap-it.
Steps
- Resume check —
cat "$(git rev-parse --show-toplevel)/.make-it/sdd/progress.md". Tasks marked complete are DONE; resume at the first unmarked one. Arm the ledger: appendRUN: plan=<path> tasks=<N>(orRUN: resumeif already armed), then register it from the repo/worktree that holds it:python3 ~/.claude/make-it/sdd/scripts/sdd-gate register "$(git rev-parse --show-toplevel)/.make-it/sdd/progress.md". A Stop hook (sdd-gate) then refuses to let the run end until you appendSTATUS: DONE | BLOCKED <why> | AWAITING_HUMAN <what>— write AWAITING_HUMAN before asking the user anything, and ask it readable cold: its title, what waits and why, 2-4 named answers, a batch as one grouped line, a high-stakes item never batched (approval-block.md, A list of asks). - Read the plan once — note global constraints, create todos, ensure you're on a branch/worktree.
- Pre-flight review (once) — scan for tasks that contradict each other/the constraints or that mandate something the review rubric treats as a defect; present all findings as ONE batched question (finding beside plan text, "which governs?"). Clean → proceed silently.
- Per task (sequential):
task-brief→ record BASE → dispatch the test-writer (template, Opus or Fable) → red check: run its tests, they must fail for the missing behavior (NOT_TESTABLE: skip to the implementer with no Tests section) → dispatch implementer (template, cheapest fitting model, ALWAYS specify it; it may not change the tests; a test it says is wrong goes back to the test-writer) → answer its questions → on DONE, tests untouched and green:git diff --name-only <TESTS_SHA> -- <test files>prints nothing and you run them yourself, all passing, none skipped (again after every fix) →review-package→ dispatch task reviewer (template, with every SAFEGUARDS line the task produced) → fix-subagent loop for Critical/Important until spec ✅, quality approved, and safeguards ✅ (an undisclosed weakening is undone; a disclosed one is undone too, unless that changes behavior the plan didn't decide -- then the human's call; log each asTask N: safeguards undone|accepted: <item>; three consecutive rounds on the same root cause: stop patching and writeSTATUS: AWAITING_HUMANwith a decision-ready design choice) → adversarial review (tasks with tests, at most 3 rounds per task; the repo must be untouched after each): confirmed counterexamples only (its SAFEGUARDS line is separate: anundisclosedone is undone, in any round), which you adjudicate (ungrounded or plan-conflicting → the human; unsure severity → Important); in rounds 1–2 each becomes one test-writer test on its exact input (red check), the implementer fixes it, tests untouched and green, re-review, next round; round 3's are not fixed -- open Critical/Important →STATUS: AWAITING_HUMAN, Minor only → accept and log; after the human answers, the count doesn't reset -- apply their call and carry on where you stopped → appendTask N: complete (commits <base7>..<head7>, review clean)to the ledger. Handle DONE_WITH_CONCERNS / NEEDS_CONTEXT / BLOCKED per the reference. - Final review —
/code-reviewon the most capable model withreview-package MERGE_BASE HEAD(git merge-base main HEAD) and everysafeguards acceptedledger line; fix findings with ONE fix subagent carrying the full list. - Finish — after
STATUS: DONE, offer learnings (~/.claude/make-it/references/learnings.md): queued agent lessons (e.g. reviewer findings that recurred across tasks), plus corrections the user made at acceptance — one message, each numbered with its evidence and what it would change; the user answers per item. Then ship-it / wrap-it.
Hard rules (see reference for the full list)
- Never pre-judge findings or tell a reviewer what not to flag.
- Hand artifacts as FILES (brief / report / package) — never paste plan text or diffs into your context.
- Use the recorded BASE, never
HEAD~1. One task per dispatch — no pasted session history. - All three verdicts (spec, quality, safeguards) are required; never skip a re-review. An
undisclosed weakened safeguard is undone, never kept (
approval-block.md). - Trust the ledger +
git logover recollection after a compaction/resume.
See subagent-driven-development.md for model selection, status handling, reviewer ⚠️ items,
reviewer-prompt construction, file handoffs, durable progress, and red flags.
