| name | review-work |
| description | Use after run-plan completes to independently verify the implementation. Reads only the plan document and inspects the codebase from scratch — information-isolated from the execution context. Produces a structured review document with PASS/FAIL verdict. Triggers when the user says "review the work", "verify the implementation", "check if the plan was executed correctly". |
Review Work
Independently verifies implementation results using only the plan document and the codebase. Receives no information from the execution process.
Core Principle
The reviewer shares no memory with the executor. The plan's stated goals and the current state of the codebase — these two alone are the basis for judgment.
Hard Gates
- Do not receive execution context. No logs from run-plan, no worker output, no diffs, no task completion summaries, no conversation history. The only input is the plan file path.
- Read the plan document directly. Read the plan file from disk — not a summary or a passed-along description.
- Run all tests yourself. Do not trust previous execution results. Run the full test suite and every verification command specified in the plan.
- Verdict is PASS or FAIL — binary at every level. Each success criterion and each task's acceptance criteria are judged met/not-met individually; the verdict is the AND of all of them. No conditional passes, no "almost done", no partial credit.
- The verdict judges only the goal contract. Verdict inputs are: planned files exist, acceptance criteria met, tests pass, no regressions, plan success criteria met. Everything else — placeholder/debug code, commit message mismatches, style — is reported as advisory findings and never flips the verdict. A binary signal is only useful if it is not polluted by cosmetics.
- Save the review document to a file. Review results must be saved as a structured document. Never end with a verbal report alone.
- Do not modify code. This skill is read-only. If issues are found, report them — do not fix them.
When To Use
- After run-plan execution is complete
- When the user says "review the work", "verify the implementation", "check if the plan was executed correctly"
- When implementation is done but independent verification is needed
When NOT To Use
- While run-plan is still in progress
- When no plan document exists (use
plan-crafting first)
- When the goal is a general code review (this skill verifies "implementation against plan")
Input
The only input to this skill is the plan file path.
docs/engineering-discipline/plans/YYYY-MM-DD-<feature-name>.md
The following must never be provided as input:
- Execution logs or task completion summaries from run-plan
- Output or diffs from worker subagents
- Validation results from validator subagents
- Conversation history from the execution session
Process
Phase 1: Load and Analyze Plan Document
- Receive the plan file path as input
- Read the plan document directly from disk
- Extract the following:
- Goal: What this plan implements
- Work Scope: In scope / Out of scope
- Task List: Each task's name, acceptance criteria, and target files
- File Structure Mapping: Complete list of files to be created or modified
- Commit Structure: Commit messages and scope specified in the plan
- Test Commands: All test execution commands specified in the plan
If the plan contains a ## Plan Amendment Log (appended by run-plan when plan defects were found mid-execution), the review judges against the amended plan — the log is part of the plan, not execution context. Amendments that weakened a criterion relative to the plan's Goal are themselves a FAIL finding.
Use the extracted results as the foundation for the review document.
Phase 2: Codebase Inspection
Inspect the codebase against the files specified in the plan.
- File existence check: Verify that all files specified in the plan actually exist
- Content alignment check: Inspect whether each file's content matches the plan's requirements (function signatures, type definitions, logic, etc.)
- Residual artifact check (advisory — not a verdict input):
- Placeholder code (TODO, FIXME, "implement later", stub functions)
- Debug code (console.log, print debugging, commented-out code blocks)
- Unexpected changes outside the plan's scope
These are recorded as advisory findings. Exception: if a placeholder sits where an acceptance criterion requires working code, the criterion itself fails — that is what flips the verdict, not the artifact.
- Verify acceptance criteria per task. Check each criterion stated in the plan one by one and record met/not-met — binary per criterion, no partial credit.
Phase 3: Test Execution
- Run all individual test commands specified in the plan
- Run the full test suite to check for regressions
- Record each test's result (PASS/FAIL)
- If any test fails, record the error message
Phase 4: Git History Check (Informational)
- Compare the commit structure specified in the plan against the actual
git log
- Note mismatches in commit messages or scope (unrelated changes mixed into a single commit)
Findings here are informational only — plans rarely predict commit messages exactly, and workers may have legitimately adapted. Record mismatches in the review document; they never affect the verdict.
Phase 5: Verdict and Review Document
The verdict is computed from the goal contract only — Phases 2 (criteria) and 3 (tests).
PASS conditions (all must be met — verdict is the AND):
- All files specified in the plan exist
- Each task's acceptance criteria are met (binary per criterion)
- All tests specified in the plan pass
- Full test suite shows no regressions
- The plan's success criteria are met
FAIL if any single condition above is not met. No conditional passes.
Never verdict inputs (advisory findings only):
- Placeholder or debug code (unless it makes a criterion fail)
- Commit message or commit structure mismatches
- Style, naming, or code quality observations
After reaching a verdict, write and save the review document.
Review Document
Save Location
docs/engineering-discipline/reviews/YYYY-MM-DD-<feature-name>-review.md
(User preferences for review location override this default.)
Document Structure
# [Feature Name] Review
**Date:** YYYY-MM-DD HH:MM
**Plan Document:** `docs/engineering-discipline/plans/YYYY-MM-DD-<feature-name>.md`
**Verdict:** PASS / FAIL
---
## 1. File Inspection Against Plan
| Planned File | Status | Notes |
|---|---|---|
| `path/to/file` | OK / Missing / Mismatch | Details |
## 2. Test Results
| Test Command | Result | Notes |
|---|---|---|
| `pytest tests/...` | PASS / FAIL | Error details if failed |
**Full Test Suite:** PASS / FAIL (N passed, M failed)
## 3. Acceptance Criteria
| Task | Criterion | Met |
|---|---|---|
| Task 1 | [criterion verbatim from plan] | PASS / FAIL |
## 4. Advisory Findings (not verdict inputs)
- [ ] No placeholders
- [ ] No debug code
- [ ] No commented-out code blocks
- [ ] No changes outside plan scope
**Findings:**
- (Describe with file path and line number)
**Git history (informational):**
| Planned Commit | Actual Commit | Match |
|---|---|---|
| `feat: add X` | `abc1234 feat: add X` | OK / Mismatch |
## 5. Overall Assessment
(Summary of the overall judgment. If FAIL, describe specifically which items failed and why.)
## 6. Follow-up Actions
- (If FAIL: list of items that need to be fixed)
- (If PASS: record improvement suggestions if any)
When To Stop
Stop immediately and notify the user in the following situations:
- The plan file does not exist or cannot be read
- The test execution environment is not ready (e.g., dependencies not installed)
- The plan document format cannot be parsed
When in doubt, do not guess — ask the user.
Anti-Patterns
| Anti-Pattern | Why It Fails |
|---|
| Reading run-plan execution logs to verify | Information isolation violation. Anchors on the executor's framing |
| Trusting previous test results instead of running tests | Environment may have changed after execution. Not independent verification |
| Finding issues and fixing them directly | Violates separation of reviewer and implementer roles |
| Giving a "close enough, PASS" verdict | No conditional passes. If criteria are not met, it is FAIL |
| Failing the verdict over cosmetics (commit messages, TODOs, style) | Pollutes the binary signal; triggers retry loops over trivia. Cosmetics are advisory findings |
| Delivering review results verbally without saving a document | No verification record remains. Untraceable |
| Judging by criteria not in the plan | The reviewer judges only by the plan's criteria. Adding arbitrary standards is prohibited |
| Receiving a plan summary and verifying from that | Information is lost during summarization. The original must be read directly |
Minimal Checklist
Self-check when review is complete:
Transition
After review is complete:
- PASS → Report results to the user and suggest next steps (PR creation, deployment, etc.)
- FAIL → Report failure items to the user. If fixes are needed, suggest transitioning to the
run-plan or systematic-debugging skill
- If the plan itself has issues → suggest returning to the
plan-crafting skill to revise the plan
This skill itself does not invoke the next skill. It saves the review document, reports results, and lets the user decide the next step.