Verify Skill
Fourth step of the canonical coding workflow
($deep-interview → $ralplan → $ralph/$team → $verify → complete).
$verify runs structured verification checks, aggregates the result,
and writes verify.json. The result is the only authorization to
transition a session to complete. A failing or partial result routes
the session to fix-loop (bounded retries) or failed.
Usage
$verify
Inputs (params)
sessionId(string, optional) — workflow session idchecks(Array<{id, command, timeout?}>, optional) — explicit checksmaxRetries(number, optional, default 3) — fix-loop cap (Gate V4)autoFixLoop(boolean, optional, default true) — on failure, auto callenterFixLoopinstead of just reportingcwd(string, optional) — working directory for commands; defaults toprojectRoot
Check sources (priority order)
params.checkstasks.json— union of every task'sverifyCommands- Default heuristics (package.json →
npm test, Maven →mvn test -q, pytest →python -m pytest -q). Skipped cleanly if nothing detected.
Output
Writes .chainlesschain/sessions/<id>/verify.json via
SessionStateManager.writeVerify() and transitions stage to verify.
If the aggregate status is passed, the caller may invoke $complete
(which enforces Gate V1/V3). If not, the handler enters fix-loop or
records failed.
Gates
- Refuses if
plan.mdis missing. - Refuses if
plan.mdis not approved. verify.jsonis the only authorization forcomplete(Gate V1/V3).- Fix-loop respects
maxRetries(Gate V4).