.agents/skills/code-changes/references/verify.md
Verification is never delegated downward and runs on the final, merged state of the change. It has two halves: the project's quality gates, and functional proof. Both are the coordinator's own work by default.
Tests passing is necessary, not sufficient. Run the real flow and confirm concrete outputs: render the prompt, execute the command, hit the endpoint. Record the actual values observed — the final report quotes them as evidence, not adjectives.
Exercise the flow the way the user will reach it, not only the way the harness reaches it: the built artifact rather than the dev server, a cold start rather than the running process, the entry point they actually open. When a dev server or file watcher is in play, restart it before judging behavior — a stale bundle produces confident, wrong verification.
When the user said they will do the manual validation, state exactly what they should check and what the expected result is.
Running the gates and the functional proof stays with the coordinator. If the result is ambiguous, or the change is high-blast-radius (migrations, security, irreversible operations), get the strongest available model to judge the evidence before declaring done — see references/escalate.md.
Documentation changes ship in the same change as the code they describe. Check for every user-visible behavior change:
A failed gate or a wrong functional result sends the task back to Phase 4 (fix via the implementer) or Phase 1 (the analysis was wrong). Never weaken a gate, skip a linter, or delete a test to get to green.