01
It starts by itself
harness files changed. Runs in GitHub Actions.
- ↻ harness files changed
push touches .claude/, hooks/, skills/ or CLAUDE.md
Hooks and skills always tested.
Install the Test Harness skill and make it a habit: follow https://gethabit.dev/skills/zernie/test-harness.md
2K installs15 starsMIT licenceSource on GitHub ↗

Test Harness
by zernie · 2K installs
The skill
The test harness skill helps Claude Code users test hooks, skills, agents, settings and CLAUDE.md with vigiles, picking unit, deterministic or eval tiers and keeping eval results honest in CI.
Only when you ask.
The habit
Hooks and skills always tested.
↻ Runs by itselfharness files changed
When does it start? How does it check its work? What does it remember?
Stops after one harness surface per run; real-model evals run only locally, never in CI.
Choose unit, deterministic or eval from the tier table, cheapest first.
Add vigiles as a dev dependency if it is missing.
Check .claude/settings.json, .claude-plugin/plugin.json, hooks/hooks.json and skills/.
Follow references/writing-tests.md for the chosen tier.
Run npx vigiles test --no-skip so skipped tiers fail.
After a local eval, run vigiles eval --update and commit the lock; CI runs --check.
It writes only in its own folder and asks you before anything goes out.
Read both lists. If the left one sounds like you, the Test Harness skill helps.
The skill says to rule out wiring mistakes first: bare ids, pluginDir versus skillsDir, and a missing fixture.
No. runHook tests run without claude or an API key.
Copy the prompt at the top into your agent. It installs the skill from zernie/vigiles and sets up the habit. Or run npx skills add zernie/vigiles --skill test-harness.
Yes. It is published under MIT. Habit is free too.
Install the Test Harness skill and make it a habit: follow https://gethabit.dev/skills/zernie/test-harness.md
All zernie skills →More code skills →
Works in
Made by zernie, published under MIT. Habit links to the original and never changes it. Is this your skill?