verify
CLAUDE.md115 starsChanged 3 months agoMITView on GitHub
The skill decides what to check and judges the result. The engine only does plumbing that would be silly to do in markdown: Run artifacts land in the target repository under .verify/runs/<id>/ and are gitignored there. The engine holds no state. Note: an installed plugin resolves the engine through CLAUDE_PLUGIN_ROOT. Set VERIFY_PIPELINE only when running from a development checkout. The lib modules are pure functions over plain data. Keep them that way: everything that touches the filesystem, git, or the…
In this repository3 other files it gives its agents.
- breakSkill
- verify-setupSkill
- verifySkill
The file
We split this CLAUDE.md into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
Run artifacts land in the target repository under .verify/runs/<id>/ and are gitignored there.
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Project
opslane-verify — a Claude Code plugin that verifies a change works. It turns the change's plan into acceptance criteria, stops for approval, then drives the real system and reports what it observed.
Architecture
skills/verify/SKILL.md the workflow. Claude is the control loop.
skills/verify-setup/SKILL.md one-time repo setup: the setup contract and the app profile.
skills/break/SKILL.md tries to break a change on a disposable local stack.
pipeline/ the engine. A few CLI verbs over pure modules.The skill decides what to check and judges the result. The engine only does plumbing that would be silly to do in markdown:
criteriarenders the approval artifact from JSONreportrenders the report from JSONchanged-fileslists behaviour-bearing changed files, and coverage gaps given claimsprofile-checkvalidates.verify/profile.json, the app profile /verify-setup writes
Run artifacts land in the target repository under .verify/runs/<id>/ and are gitignored
there. The engine holds no state.
Boundaries
The skill never fixes what it judges. It never derives acceptance criteria from the diff alone. It never reads source to decide pass or fail — a criterion that cannot be checked without reading code is the wrong criterion.
Skill sync
skills/ is the source of truth. A PostToolUse hook (.claude/hooks/sync-skill.sh)
copies the skill to ~/.claude/skills/ after every Write or Edit. Never edit the copy
under ~/.claude/ directly.
Note: an installed plugin resolves the engine through CLAUDE_PLUGIN_ROOT. Set
VERIFY_PIPELINE only when running from a development checkout.
Engine work
cd pipeline && npm ci
npm test # vitest
npm run typecheck # tsc --noEmit, expected cleanThe lib modules are pure functions over plain data. Keep them that way: everything
that touches the filesystem, git, or the network lives in cli.ts.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

