Repository navigation
v1.4.2
This release acts on the r140 measurement report: agents run checks and edit files the way that cost the least time there, and the session no longer reports accepted when the verify agent's report disagrees with the saved check evidence.
Highlights
- Agents run checks without losing them. Every agent prompt now says: when your role runs checks, ask for a 600000 ms timeout, read the tool result to see whether the command finished, moved to the background or was stopped, and treat a background command as finished only on its completion notice or exit status, never on a line of its output (a failing run may never print it). Before running a check again, read the earlier run's result or stop it and confirm it ended; do not finish while a required check is unresolved. In r140, commands moved to the background at the 120 s default six times, and one agent waited 8.3 min for an output line a failing run never printed.
- Agents edit files with their editing tools. Every agent prompt now says to change file contents with Edit and Write: text written through heredocs, sed or inline scripts can be corrupted by shell quoting. Project tools that change files (generators such as
scripts/build, formatters, codemods) stay fine. In r140 two such mistakes (an apostrophe, a\b) cost the final fix about 10.6 min. scripts/check-verifyand a fail-closed hand-back. At hand-back the session compares the verify agent's report with thescripts/run-checksJSON saved during the same launch (<ledger_dir>/checks/verify-<sha>.json):
<python> <skill_dir>/scripts/check-verify <transcript dir> <manifest file>.
It prints one JSON line with a status:matchornot_required(exit 0);missing,stale,mismatchorinvalid(exit 1, with reasonsverify_evidence_missing,verify_evidence_stale,verify_mismatch,verify_invalid); exit 2 for usage or unreadable inputs. It checks types (booleans and integers are not interchangeable), field presence, and the commit sha before building a path, and treats evidence written before the launch started as stale. The session reportsacceptedand removes the run's marker only when the workflow accepted the run and check-verify exited 0 withmatchornot_required. Every other outcome, a checker error included, isunverified.
What check-verify does not do
It is a consistency check, not an independent guarantee: it does not re-run the checks. It cannot catch an agent that writes or alters both copies consistently, execution details both copies agree on (checkout and branch are not compared), or a session that skips it. Evidence is one file per commit, overwritten by each verify attempt; the freshness check keeps an older file from passing for a new launch, and per-attempt records are later work. reference.md "Verify evidence" describes this and the recovery: the session re-runs the checks itself into session-verify-<sha>.json, and the user may accept the run explicitly with ledger accept (recorded as an override, not a match).
Fixes
tests/install.test.mjsran the registered hook commands with baresh, which is not on PATH when the suite starts from PowerShell or cmd. It now uses the shell Claude Code runs hooks with: Git Bash on Windows,shelsewhere (dash on Ubuntu still checks POSIX quoting). This was the known issue listed in 1.4.1. (#17)result_paths()moved fromscripts/run-reportintoscripts/_shell.py, shared by run-report and check-verify; run-report behaves as before.
Testing
node tests/run-tests.mjs, 786 tests, 0 failures everywhere. CI: Ubuntu (Node 22 and 24) 784 pass, 2 skipped, about 21 s; macOS 785 pass, 1 skipped, 37 s; Windows 774 pass, 12 skipped, 74 s. Every job also checks that the suite leaves the checkout unchanged.- New:
tests/check-verify.test.mjs(every status and exit code, type and presence checks, malformed sha, stale evidence, and the documented recovery commands run end to end),agentRules()unit tests plus the every-prompt rule check, the no-commands acceptance invariant, and instruction checks for SKILL.md and reference.md (these check the session's instructions, not enforced behaviour). - Built by parallel-lanes run r142 (1.4.1 engine, Windows): 3 tasks in 2 lanes, 14 agents, 25.8 min; each task approved at its first review; 4 minor final-review findings fixed and re-reviewed; accepted, and the new check-verify returned
matchon the run's own evidence.
Compatibility
- No manifest, ledger or workflow result format changes.
- Every agent prompt is about 150 words longer (the two rules).
- The hand-back now needs check-verify: a session following the 1.4.2 SKILL.md runs it before reporting
accepted. An older ledger's evidence (written by run-checks before 1.4.0, without the tracked lists) does not match a 1.4.x report; that only matters when checking an old run.
Upgrade
In your clone:
git pull && bash install.shThen restart Claude Code, or run /clear, so the skill and hooks reload.