diff --git a/skills/subagent-driven-development/SKILL.md b/skills/subagent-driven-development/SKILL.md index d8ca081570..1a8c1ac5e3 100644 --- a/skills/subagent-driven-development/SKILL.md +++ b/skills/subagent-driven-development/SKILL.md @@ -191,9 +191,10 @@ final whole-branch review. When you fill a reviewer template: later dispatches — a real session's dispatch hit 42k chars of which 99% was pasted history. A fresh subagent needs its task, the interfaces it touches, and the global constraints. Nothing else. -- Dispatch fix subagents for Critical and Important findings. Record Minor - findings in the progress ledger as you go, and point the final - whole-branch review at that list so it can triage which must be fixed +- Dispatch fix subagents for Critical and Important findings, passing the + review file path for the full detail. Record each task's Minor count and + review file path in the progress ledger as you go, and point the final + whole-branch review at those files so it can triage which must be fixed before merge. A roll-up nobody reads is a silent discard. - A finding labeled plan-mandated — or any finding that conflicts with what the plan's text requires — is the human's decision, like any plan @@ -237,11 +238,18 @@ and is re-read on every later turn. Hand artifacts over as files: (brief `…/task-N-brief.md` → report `…/task-N-report.md`) and put it in the dispatch prompt. The implementer writes the full report there and returns only status, commits, a one-line test summary, and concerns. -- **Reviewer inputs:** the task reviewer gets three paths — the same brief - file, the report file, and the review package — plus the global - constraints that bind the task. -- Fix dispatches append their fix report (with test results) to the same - report file and return a short summary; re-reviews read the updated file. +- **Reviewer inputs:** the task reviewer gets four paths — the same brief + file, the report file, the review package, and a review file to write + to (brief `…/task-N-brief.md` → review `…/task-N-review.md`) — plus + the global constraints that bind the task. +- **Review file:** the reviewer writes its full report there and returns + only verdicts, ⚠️ items, one line per Critical/Important finding, a + Minor count, and the path. Don't read the review file — the final + message is your decision surface; the detail is for fix subagents. +- Fix dispatches get the review file path for the full findings, append + their fix report (with test results) to the same report file, and + return a short summary; re-reviews read the updated report file and + append to the review file. ## Durable Progress @@ -292,9 +300,9 @@ Implementer: "Got it. Implementing now..." - Self-review: Found I missed --force flag, added it - Committed -[Run review-package, dispatch task reviewer with the printed path] -Task reviewer: Spec ✅ - all requirements met, nothing extra. - Strengths: Good test coverage, clean. Issues: None. Task quality: Approved. +[Run review-package, dispatch task reviewer with the printed path + review file] +Task reviewer: Spec ✅. Quality: Approved. Minor: 0. + Full report: task-1-review.md [Mark Task 1 complete] @@ -309,13 +317,13 @@ Implementer: - Self-review: All good - Committed -[Run review-package, dispatch task reviewer with the printed path] +[Run review-package, dispatch task reviewer with the printed path + review file] Task reviewer: Spec ❌: - Missing: Progress reporting (spec says "report every 100 items") - Extra: Added --json flag (not requested) - Issues (Important): Magic number (100) + Important: Magic number (100). Minor: 0. Full report: task-2-review.md -[Dispatch fix subagent with all findings] +[Dispatch fix subagent with the review file path] Fixer: Removed --json flag, added progress reporting, extracted PROGRESS_INTERVAL constant [Task reviewer reviews again] diff --git a/skills/subagent-driven-development/task-reviewer-prompt.md b/skills/subagent-driven-development/task-reviewer-prompt.md index 588a40227a..30f0f0894e 100644 --- a/skills/subagent-driven-development/task-reviewer-prompt.md +++ b/skills/subagent-driven-development/task-reviewer-prompt.md @@ -112,13 +112,27 @@ Subagent (general-purpose): Your report should point at evidence: file:line references for every finding and for any check you would otherwise answer with a bare - "yes." A tight report that cites lines gives the controller everything - it needs. - - Your final message is the report itself: begin directly with the - spec-compliance verdict. Every line is a verdict, a finding with - file:line, or a check you ran — no preamble, no process narration, - no closing summary. + "yes." A tight report that cites lines gives the fix subagent + everything it needs. + + ## Report Format + + Write your full report to [REVIEW_FILE] using the Output Format + below: verdicts, strengths, every finding with file:line, and any + check you ran outside the diff. Fix subagents read this file — it is + the only place your detail survives. + + Then report back with ONLY (under 15 lines — the detail lives in the + review file): + - **Spec:** ✅ | ❌ — if ❌, one line per missing/extra/misunderstood + item (file:line + summary) + - **⚠️ Cannot verify from diff:** [items the controller must resolve + itself — always in this message, never only in the file] + - **Quality:** Approved | Needs fixes + - One line per Critical/Important finding: file:line + what's wrong, + with any plan-mandated finding marked (the human adjudicates those) + - Minor findings: count only + - The review file path ## Calibration @@ -136,7 +150,7 @@ Subagent (general-purpose): Acknowledge what was done well before listing issues — accurate praise helps the implementer trust the rest of the feedback. - ## Output Format + ## Output Format (the review file) ### Spec Compliance @@ -180,9 +194,14 @@ Subagent (general-purpose): - `[DIFF_FILE]` — REQUIRED: the path the controller wrote the review package to (`scripts/review-package BASE HEAD` prints the unique path it wrote; the package never enters the controller's context) +- `[REVIEW_FILE]` — REQUIRED: the file the reviewer writes its full report + to; name it after the brief (brief `…/task-N-brief.md` → review + `…/task-N-review.md`). Re-reviews append to the same file. -**Reviewer returns:** Spec Compliance verdict (✅/❌/⚠️), Strengths, Issues -(Critical/Important/Minor), Task quality verdict +**Reviewer returns:** full report in `[REVIEW_FILE]`; final message under +15 lines — Spec verdict (✅/❌/⚠️), Quality verdict, Critical/Important +findings one line each, Minor count, review file path -A fix dispatch can address spec gaps and quality findings together; -re-review after fixes covers both verdicts. +A fix dispatch can address spec gaps and quality findings together — give +it the review file path for the full findings; re-review after fixes +covers both verdicts.