verify · git:20261011.9066711 · 2026-10-11 · sha256 4baa971f203f6009

verify git:20261011.9066711B

Immutable. This exact content never changes and is served at /api/v1/blob/4baa971f203f6009.

---
description: Validate that the implementation satisfies the spec's acceptance criteria. Runs the configured test/lint/build commands, evaluates against spec.md, and produces verify-report.md. Required before /specclaw:pr. Run after all tasks in /specclaw:build are complete.
---

**Flow check:** run `specclaw-ensure-init .specclaw && specclaw-flow .specclaw`. If it prints `full`, read `$CLAUDE_PLUGIN_ROOT/references/full/verify.md` and follow it instead of this file.

# specclaw verify (lean)

1. `specclaw-validate-change .specclaw <change> verify`. Stop if it fails.
2. Run the configured test, lint and build commands (`config.yaml`, or the project's standard ones). Record the commands and their exit codes.
3. Screenshots, saved under `.specclaw/changes/<change>/shots/`:
   - Start the app if the change has a UI.
   - Run `specclaw-screenshot <app-url> …/shots/app.png` and `specclaw-screenshot .specclaw/mock/index.html#<change> …/shots/mock.png`.
   - **Exit 3** (Playwright unavailable): give the user both locations and ask them to compare by eye. Record `compared by eye: <name>` only after they answer.
   - **Never record a pass without a screenshot or a human comparison.**
4. Under `## Verify` in `change.md`, write:
   - `**Verdict:** PASS` or `FAIL` on the first line
   - one `- AC-n: pass|fail — <evidence>` line per criterion
   - the commands run and the screenshot paths
5. `specclaw-set-phase .specclaw <change> verify done` (or `failed`), then `specclaw-update-status .specclaw`. On PASS, the next step is `/specclaw:pr`. On FAIL, fix with `/specclaw:build` and re-verify.