Install any skill in seconds. Free to start, no credit card required.
Get Started Free →michael-denyer/create-verification-skill
Generate a project-local verification skill that drives your app the way a user does — any language, framework, or platform.
Passed 12 of 19 test cases with the skill, and 11 of 19 without it.
3 fixed9 passed either way5 still failing2 broke4 errored
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
One of 3 test cases the skill fixed. Same model, same prompt, with and without the skill.
In the seeded feature map files under `.claude/skills/verify/features/`, what specific H2 sections must be present in every feature file?
| Checked | Without skill | With skill |
|---|---|---|
| Includes four required H2 headers in each feature map file | Passed | Passed |
| Includes H2 section `Gotchas` in each feature map file | Missed | Passed |
The instructions your model reads when the skill loads.
On Codex, read the platform mapping, including its per-skill notes, before following this skill.
On GitHub Copilot, read the platform mapping, including its per-skill notes, before following this skill.
Every serious project needs a scripted way to drive the real app and prove behavior: launch it, exercise a feature the way a user would, and capture evidence. This skill generates that as a project-local skill (.claude/skills/verify/) tailored to the repo. Name it verify. At the repo root a project skill by that name replaces Claude Code's bundled /verify, which only the user can invoke, so every playbook that names the driver skill can call the project one (Claude Code 2.1.200 or later). In a monorepo, write it in the touched package directory instead. You write the generator's output for the next agent, not for a human: it will be read cold, mid-task, by an agent that has never seen the app.
Answer these from the codebase and only ask the user what you cannot observe:
If the checkout doesn't build or start as-is, fix that first (or report it precisely) before generating; a skill written against a broken base teaches wrong steps. When an irrelevant missing asset blocks startup (a static dir the API never serves, a sample config), the generated skill may create it, clearly marked as verification scaffolding, and remove it in cleanup.
Write .claude/skills/verify/SKILL.md with YAML frontmatter (name: verify and a description that names the app, the surface, and when to reach for it — without frontmatter the skill never registers, and with disable-model-invocation the model cannot call it) and these sections, each grounded in what the interview actually found (no placeholders left):
Create .claude/skills/verify/features/README.md plus one file per user-facing feature you can identify (aim for the top 3-5 to start, from routes, commands, menus, or docs). Follow the shape in references/feature-map-example/, with a README index and one file per feature. Each file answers, from the user's point of view: what the feature is, how to reach it, how to drive it with the harness, and what observable end state proves it works. The four H2s are Sub-features, How to get to it (user POV), Driving it with <harness>, and Gotchas. If the seed data lacks a precondition that a journey needs, the journey reports a failure and the reason goes in that feature's Gotchas. Never weaken the journey to make it pass. The map is the repo's maintained verification source; a proof that drives one convenient entry point is incomplete when the map lists others.
Run its own instructions end to end once: launch, doctor, drive ONE mapped feature (one is enough; the map exists so later runs can cover the rest), capture evidence, clean up. After cleanup, confirm the evidence still exists at the named location — a cleanup that eats the proof fails this step. Fix what fails, and run the generated cleanup after every failed iteration too, so broken attempts don't strand processes and ports. A generated skill that was never executed is a draft, not a deliverable. If you proved it in a stand-in for the real target (a container in place of a fresh VM, a local stack in place of a remote one), list every setup step the stand-in did that the target will not. Those steps stay unverified until a run on the real target covers them.
test cases passed, vs 11 / 19 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.