The minimal harness pairs a verify-done skill with a Stop hook that fires when the agent tries to declare the task complete. No verify proof → no stop. Full log dump with no real test output → no stop.
That is why it is a hook instead of only a skill: verify before done as discipline decays; as mechanism it holds.
Shape
- Skill at
.claude/skills/verify-done/SKILL.md- when the agent claims done, demand a named check and its exit code in the transcript. - Stop hook - harness-enforced gate; blocks stop if proof is missing or incomplete.
- Pair with a verifiable completion condition stated up front.
Install the ten-file set with one command:
npx leanharness
The appendix and article walk the wiring; this note is the atomic rule: proof in the transcript, or the turn does not end. Related enforcement pattern: hook over prose.