Loading...
Loading...
Use when OpenSpec artifacts have been generated by /opsx:propose and need review before implementation begins — validates proposal scope, spec completeness, design decisions, and task executability
npx skill4agent add 9ashwin/on-my-sdd sdd-review-specsNO CODE WITHOUT REVIEWED SPECIFICATIONS/opsx:propose| Tier | Applies To | Review Scope | Time |
|---|---|---|---|
| Tier 0 — Skip | Typo fixes, log lines, comments, one-line changes | No artifacts exist. Verify with build/lint directly. | 0 min |
| Tier 1 — Light | Single-field additions, simple validation changes, config tweaks | Review | 5-10 min |
| Tier 2 — Full | New features, cross-package refactors, architecture changes, API additions | Full review of all 4 artifacts with complete checklist. | 15-30 min |
digraph review_gate {
rankdir=TB;
"4 artifacts generated\nby /opsx:propose" [shape=doublecircle];
"Identify tier\n(Tier 0, 1, or 2?)" [shape=diamond];
"Skip review\n(no artifacts)" [shape=box style=filled fillcolor="#ccffcc"];
"Tier 1 Light Review\n(5-10 min)" [shape=box style=filled fillcolor="#ffffcc"];
"Tier 2 Full Review\n(15-30 min)" [shape=box style=filled fillcolor="#ffcccc"];
"Read artifacts in order\nproposal → specs → design → tasks" [shape=box];
"Check against\nchecklist" [shape=box];
"Issues found?" [shape=diamond];
"Communicate issues\nwith suggested fixes" [shape=box style=filled fillcolor="#ffcccc"];
"Re-check affected\nartifacts" [shape=box];
"Write review.md\nto change directory" [shape=box];
"Declare review passed\n→ writing-plans" [shape=doublecircle];
"4 artifacts generated\nby /opsx:propose" -> "Identify tier\n(Tier 0, 1, or 2?)";
"Identify tier\n(Tier 0, 1, or 2?)" -> "Skip review\n(no artifacts)" [label="Tier 0"];
"Identify tier\n(Tier 0, 1, or 2?)" -> "Tier 1 Light Review\n(5-10 min)" [label="Tier 1"];
"Identify tier\n(Tier 0, 1, or 2?)" -> "Tier 2 Full Review\n(15-30 min)" [label="Tier 2"];
"Tier 1 Light Review\n(5-10 min)" -> "Read artifacts in order\nproposal → specs → design → tasks";
"Tier 2 Full Review\n(15-30 min)" -> "Read artifacts in order\nproposal → specs → design → tasks";
"Read artifacts in order\nproposal → specs → design → tasks" -> "Check against\nchecklist";
"Check against\nchecklist" -> "Issues found?";
"Issues found?" -> "Communicate issues\nwith suggested fixes" [label="yes"];
"Issues found?" -> "Write review.md\nto change directory" [label="no"];
"Communicate issues\nwith suggested fixes" -> "Re-check affected\nartifacts";
"Re-check affected\nartifacts" -> "Check against\nchecklist";
"Write review.md\nto change directory" -> "Declare review passed\n→ writing-plans";
}BEFORE proceeding to any implementation:
1. IDENTIFY tier — Tier 0, 1, or 2?
2. READ each artifact in order: proposal → specs/ → design → tasks
3. CHECK against the checklist for your tier (below)
4. FEEDBACK — communicate every issue found, with suggested fix
5. ITERATE — after AI fixes, re-check affected artifacts
6. ONLY THEN — declare review passed
7. PRODUCE review evidence — write review result to openspec/changes/<name>/review.md
(minimum: tier chosen, checklist results, issues found/resolved, pass/fail declaration)
8. ROUTE — to superpowers:writing-plans| Excuse | Reality |
|---|---|
| "The AI usually gets this right" | AI makes systematic mistakes. Review catches them. |
| "I'll catch issues during implementation" | Finding issues during coding costs 10x more to fix. |
| "The spec looks reasonable at a glance" | Skimming is not reviewing. Use the checklist. |
| "This is too small to need review" | Small changes have the most unexamined assumptions. |
| "I trust the AI's design decisions" | Trust but verify. The AI doesn't know your unwritten conventions. |
| "Review takes too long" | Rework from unreviewed specs takes longer. |
| "I already reviewed it during brainstorming" | Brainstorming explores. Propose formalizes. They're different artifacts. |
| "The tests will catch spec issues" | Tests verify implementation, not design quality. Wrong design + passing tests = wrong product. |
| "A targeted partial review is honest pragmatism" | Partial review is partial compliance. The tier exists for a reason — if it's Tier 2 by classification, Tier 1 review is insufficient. |
| "Full review when tired is performative" | Fatigue degrades thoroughness, but skipping review entirely guarantees zero thoroughness. Defer the review — don't rationalize a skim. |
| Claim | Requires | Not Sufficient |
|---|---|---|
| "Specs reviewed" | Every checklist item checked, issues documented, review.md written to change directory | "Read through it", "looks fine" |
| "Scope is clear" | In/out scope sections are explicit and complete | "I know what they mean" |
| "Design is solid" | Alternatives documented, decisions justified, risks noted | "The approach makes sense" |
| "Tasks are executable" | Each task concrete, independently verifiable, correctly ordered | "The list looks complete" |
| "Ready for implementation" | All red flags resolved, tier-appropriate checklist passed, review.md present | "Should be good enough" |
| "Review done — I checked tasks.md boxes" | sdd-review-specs gate function invoked with tier classification and checklist results | Checking off implementation tasks in tasks.md is progress tracking, not spec review |
Review passed → invoke superpowers:writing-plans to refine task granularity.
Save the implementation plan to openspec/changes/<name>/plan.md.openspec/changes/<name>/plan.md