verifylisted
Install: claude install-skill chan4lk/specclaw
# specclaw verify
**First, run** `specclaw-ensure-init .specclaw` — idempotently creates `.specclaw/` if it doesn't exist (silent if already initialized; auto-inits using the current directory's basename as the project name).
Validate that the implementation satisfies the spec.
## Step 0 — Validate
```bash
specclaw-validate-change .specclaw <change> verify
```
If it fails (tasks not all complete), report and stop.
**If `.specclaw/context.md` exists**, read it before evaluating — the verifier must check that the implementation respects the project's coding rules, patterns, and constraints documented there, in addition to the spec's acceptance criteria.
## Step 1 — Collect evidence
```bash
specclaw-verify collect .specclaw <change>
```
Gathers acceptance criteria from `spec.md`, current contents of changed files, and configured lint/build/test command results — run in that order — followed by the e2e tier when configured.
### E2E tier (`build.e2e_command` + `verify.e2e`)
`build.e2e_command` is the slow tier (browser/e2e); `build.test_command` stays the fast tier. `verify.e2e` decides when the slow tier runs:
| Policy | Behaviour |
|--------|-----------|
| `last` (default) | Run e2e only after `lint_command`, `build_command` and `test_command` all pass. An unset fast-tier command is vacuously passing. |
| `skip` | Never run e2e. |
| `always` | Run e2e even when an earlier gate failed. |
An absent `verify.e2e` means `last`; an unrecognised value warns on stderr and f