mirror of
https://github.com/obra/superpowers.git
synced 2026-04-16 10:29:57 +00:00
Replace subagent review loops with lightweight inline self-review
The subagent review loop (dispatching a fresh agent to review plans/specs) doubled execution time (~25 min overhead) without measurably improving plan quality. Regression testing across 5 versions (v3.6.0 through v5.0.4) with 5 trials each showed identical plan sizes, task counts, and quality scores regardless of whether the review loop ran. Changes: - writing-plans: Replace subagent Plan Review Loop with inline Self-Review checklist (spec coverage, placeholder scan, type consistency) - writing-plans: Add explicit "No Placeholders" section listing plan failures (TBD, vague descriptions, undefined references, "similar to Task N") - brainstorming: Replace subagent Spec Review Loop with inline Spec Self-Review (placeholder scan, internal consistency, scope check, ambiguity check) - Both skills now use "look at it with fresh eyes" framing Testing: 5 trials with the new skill show self-review catches 3-5 real bugs per run (spawn positions, API mismatches, seed bugs, grid indexing) in ~30s instead of ~25 min. Remaining defects are comparable to the subagent approach. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -27,7 +27,7 @@ You MUST create a task for each of these items and complete them in order:
|
|||||||
4. **Propose 2-3 approaches** — with trade-offs and your recommendation
|
4. **Propose 2-3 approaches** — with trade-offs and your recommendation
|
||||||
5. **Present design** — in sections scaled to their complexity, get user approval after each section
|
5. **Present design** — in sections scaled to their complexity, get user approval after each section
|
||||||
6. **Write design doc** — save to `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` and commit
|
6. **Write design doc** — save to `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` and commit
|
||||||
7. **Spec review loop** — dispatch spec-document-reviewer subagent with precisely crafted review context (never your session history); fix issues and re-dispatch until approved (max 3 iterations, then surface to human)
|
7. **Spec self-review** — quick inline check for placeholders, contradictions, ambiguity, scope (see below)
|
||||||
8. **User reviews written spec** — ask user to review the spec file before proceeding
|
8. **User reviews written spec** — ask user to review the spec file before proceeding
|
||||||
9. **Transition to implementation** — invoke writing-plans skill to create implementation plan
|
9. **Transition to implementation** — invoke writing-plans skill to create implementation plan
|
||||||
|
|
||||||
@@ -43,8 +43,7 @@ digraph brainstorming {
|
|||||||
"Present design sections" [shape=box];
|
"Present design sections" [shape=box];
|
||||||
"User approves design?" [shape=diamond];
|
"User approves design?" [shape=diamond];
|
||||||
"Write design doc" [shape=box];
|
"Write design doc" [shape=box];
|
||||||
"Spec review loop" [shape=box];
|
"Spec self-review\n(fix inline)" [shape=box];
|
||||||
"Spec review passed?" [shape=diamond];
|
|
||||||
"User reviews spec?" [shape=diamond];
|
"User reviews spec?" [shape=diamond];
|
||||||
"Invoke writing-plans skill" [shape=doublecircle];
|
"Invoke writing-plans skill" [shape=doublecircle];
|
||||||
|
|
||||||
@@ -57,10 +56,8 @@ digraph brainstorming {
|
|||||||
"Present design sections" -> "User approves design?";
|
"Present design sections" -> "User approves design?";
|
||||||
"User approves design?" -> "Present design sections" [label="no, revise"];
|
"User approves design?" -> "Present design sections" [label="no, revise"];
|
||||||
"User approves design?" -> "Write design doc" [label="yes"];
|
"User approves design?" -> "Write design doc" [label="yes"];
|
||||||
"Write design doc" -> "Spec review loop";
|
"Write design doc" -> "Spec self-review\n(fix inline)";
|
||||||
"Spec review loop" -> "Spec review passed?";
|
"Spec self-review\n(fix inline)" -> "User reviews spec?";
|
||||||
"Spec review passed?" -> "Spec review loop" [label="issues found,\nfix and re-dispatch"];
|
|
||||||
"Spec review passed?" -> "User reviews spec?" [label="approved"];
|
|
||||||
"User reviews spec?" -> "Write design doc" [label="changes requested"];
|
"User reviews spec?" -> "Write design doc" [label="changes requested"];
|
||||||
"User reviews spec?" -> "Invoke writing-plans skill" [label="approved"];
|
"User reviews spec?" -> "Invoke writing-plans skill" [label="approved"];
|
||||||
}
|
}
|
||||||
@@ -116,12 +113,15 @@ digraph brainstorming {
|
|||||||
- Use elements-of-style:writing-clearly-and-concisely skill if available
|
- Use elements-of-style:writing-clearly-and-concisely skill if available
|
||||||
- Commit the design document to git
|
- Commit the design document to git
|
||||||
|
|
||||||
**Spec Review Loop:**
|
**Spec Self-Review:**
|
||||||
After writing the spec document:
|
After writing the spec document, look at it with fresh eyes:
|
||||||
|
|
||||||
1. Dispatch spec-document-reviewer subagent (see spec-document-reviewer-prompt.md)
|
1. **Placeholder scan:** Any "TBD", "TODO", incomplete sections, or vague requirements? Fix them.
|
||||||
2. If Issues Found: fix, re-dispatch, repeat until Approved
|
2. **Internal consistency:** Do any sections contradict each other? Does the architecture match the feature descriptions?
|
||||||
3. If loop exceeds 3 iterations, surface to human for guidance
|
3. **Scope check:** Is this focused enough for a single implementation plan, or does it need decomposition?
|
||||||
|
4. **Ambiguity check:** Could any requirement be interpreted two different ways? If so, pick one and make it explicit.
|
||||||
|
|
||||||
|
Fix any issues inline. No need to re-review — just fix and move on.
|
||||||
|
|
||||||
**User Review Gate:**
|
**User Review Gate:**
|
||||||
After the spec review loop passes, ask the user to review the written spec before proceeding:
|
After the spec review loop passes, ask the user to review the written spec before proceeding:
|
||||||
|
|||||||
@@ -103,26 +103,33 @@ git commit -m "feat: add specific feature"
|
|||||||
```
|
```
|
||||||
````
|
````
|
||||||
|
|
||||||
|
## No Placeholders
|
||||||
|
|
||||||
|
Every step must contain the actual content an engineer needs. These are **plan failures** — never write them:
|
||||||
|
- "TBD", "TODO", "implement later", "fill in details"
|
||||||
|
- "Add appropriate error handling" / "add validation" / "handle edge cases"
|
||||||
|
- "Write tests for the above" (without actual test code)
|
||||||
|
- "Similar to Task N" (repeat the code — the engineer may be reading tasks out of order)
|
||||||
|
- Steps that describe what to do without showing how (code blocks required for code steps)
|
||||||
|
- References to types, functions, or methods not defined in any task
|
||||||
|
|
||||||
## Remember
|
## Remember
|
||||||
- Exact file paths always
|
- Exact file paths always
|
||||||
- Complete code in plan (not "add validation")
|
- Complete code in every step — if a step changes code, show the code
|
||||||
- Exact commands with expected output
|
- Exact commands with expected output
|
||||||
- Reference relevant skills with @ syntax
|
|
||||||
- DRY, YAGNI, TDD, frequent commits
|
- DRY, YAGNI, TDD, frequent commits
|
||||||
|
|
||||||
## Plan Review Loop
|
## Self-Review
|
||||||
|
|
||||||
After writing the complete plan:
|
After writing the complete plan, look at the spec with fresh eyes and check the plan against it. This is a checklist you run yourself — not a subagent dispatch.
|
||||||
|
|
||||||
1. Dispatch a single plan-document-reviewer subagent (see plan-document-reviewer-prompt.md) with precisely crafted review context — never your session history. This keeps the reviewer focused on the plan, not your thought process.
|
**1. Spec coverage:** Skim each section/requirement in the spec. Can you point to a task that implements it? List any gaps.
|
||||||
- Provide: path to the plan document, path to spec document
|
|
||||||
2. If ❌ Issues Found: fix the issues, re-dispatch reviewer for the whole plan
|
|
||||||
3. If ✅ Approved: proceed to execution handoff
|
|
||||||
|
|
||||||
**Review loop guidance:**
|
**2. Placeholder scan:** Search your plan for red flags — any of the patterns from the "No Placeholders" section above. Fix them.
|
||||||
- Same agent that wrote the plan fixes it (preserves context)
|
|
||||||
- If loop exceeds 3 iterations, surface to human for guidance
|
**3. Type consistency:** Do the types, method signatures, and property names you used in later tasks match what you defined in earlier tasks? A function called `clearLayers()` in Task 3 but `clearFullLayers()` in Task 7 is a bug.
|
||||||
- Reviewers are advisory — explain disagreements if you believe feedback is incorrect
|
|
||||||
|
If you find issues, fix them inline. No need to re-review — just fix and move on. If you find a spec requirement with no task, add the task.
|
||||||
|
|
||||||
## Execution Handoff
|
## Execution Handoff
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user