Check Your Work
Run a structured review loop on the work just completed in this conversation.
Embedded single-pass mode: when invoked from a phase gate (e.g. plan-run's Gate
transition) or with the argument single-pass, run exactly one pass — Phase 1 → 2 → 3,
then stop. In this mode the loop-control rules do not apply: ignore only the zero-issue
stop/continue rules inside Phase 1 step 4 (still produce the numbered issue list) and
the "always continue" rule (Phase 3 step 6), and skip Phase 3's full test run (step 2) —
the calling gate owns the suite. But if this pass's Fix changes production code, re-run
the scoped test(s) for it before returning, since the gate's test pass ran before
your Fix. Everything else below applies unchanged. Standalone invocations use the full
loop.
Loop control: Repeat Phases 1–3 up to 3 passes. At the start of each pass, print the header ### Pass N of 3. Stop early (before Phase 2/3) when Phase 1 finds zero issues on pass 2 or later — a clean pass 1 still requires a confirming second review. After pass 3, stop regardless of remaining issues.
Phase 1: Critical Review
- Restate the original task in one sentence to anchor the review scope.
- Re-read all files that were created or modified.
- Check each change against:
- Correctness — Does the logic do what was intended? Any bugs, wrong conditions, incorrect API usage?
- Completeness — All requirements addressed? Files missed? Edge cases skipped?
- Consistency — Matches existing naming conventions, patterns, and architecture?
- Code quality — Clean, well-structured, maintainable? Any code smells or anti-patterns?
- Integration — Correct imports? Are callers/consumers updated?
- Tests — Existing tests still pass? New tests needed?
- Produce a numbered list of issues found. Each issue must name the concrete harm it
causes, and the form that takes depends on what was reviewed. For code: the input or
condition that produces the wrong result. For prose, skills or docs: the reader who is
misled and the wrong thing they do next. An observation you cannot put in either form
is recorded as an observation and not fixed in Phase 2 — a review that changes
things it cannot show are wrong is how a clean pass makes work worse.
- If zero issues and this is pass 2 or later: print "No issues found — work is complete." and stop the loop.
- If zero issues on pass 1: still continue to pass 2 (a second clean review is required to confirm).
Phase 2: Fix
Address every issue from Phase 1, stating which issue each fix resolves.
Phase 3: Verify
- Re-read each modified file.
- If the work involved code changes, run the relevant test command to confirm nothing is broken.
- Confirm every Phase 1 issue is resolved.
- Confirm the original task is fully met.
- Write a brief summary: issues found this pass, issues fixed, any remaining concerns.
- Always continue to the next pass unless this was pass 3. Do NOT stop here even if all issues are resolved — "all issues fixed" is not the same as "Phase 1 found zero issues". The only early-stop is after Phase 1 of pass 2 or later, when zero issues are found. If this was pass 3 and issues remain, note them as unresolved concerns and stop.