# Review Task ## Variables ### prompt {{prompt}} ### previous_envelope {{previous_envelope}} ### context_handoff_dir {{context_handoff_dir}} ## Task Confirm that the work reported in `previous_envelope` is what was asked for. 1. Establish the spec: read `/plan.md` if it exists, else use `prompt`. 2. Read the code that was actually written, starting from `previous_envelope.changed_files`. 3. Rule on every requirement in the spec — one `findings` entry each, with evidence. 4. Write the review to `/review.md`, then emit your `Report` JSON. ## Report Respond with ONLY valid JSON matching `ReviewOutput` — no prose before or after: ```json { "status": "success", "approved": false, "summary": "", "findings": [ { "requirement": "", "met": true, "evidence": "src/server.ts:42 — handler registered" } ], "blocking": [""], "artifacts": ["/review.md"], "notes_for_next_agent": "" } ``` `status` is `success` when the review itself completed — it is not the verdict. The verdict is `approved`, and it is true only when `findings` has no unmet entry and `blocking` is empty.