create-verification-skill
Use when a project has no scripted way to launch and drive its app like a user, or the user runs /create-verification-skill.
Skill by HexSleeves
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/hexsleeves-create-verification-skill
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/create-verification-skill
What's inside
- Skill name
create-verification-skill- Description
- Use when a project has no scripted way to launch and drive its app like a user, or the user runs /create-verification-skill.
- License
- MIT
- Instructions
- 40 lines in SKILL.md · view on GitHub
Files (5)
- LICENSE
- SKILL.md
- README.md · references/feature-map-example/
- create-note.md · references/feature-map-example/
- search.md · references/feature-map-example/
SKILL.md (first lines)
# Create a verification 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 (`<skills-dir>/verify-<app>/`) tailored to the repo. `<skills-dir>` is the project-skill directory the repo already uses (`.claude/skills/`, `.agents/skills/`, `.cursor/skills/`); use `.claude/skills/` only when none exists. 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. ## 1. Interview the repo, not the user Answer these from the codebase and only ask the user what you cannot observe: - **Surface:** what does a user actually touch? A web UI, a CLI/TUI, a desktop app, an API, a mobile app, a library? A repo can have several; pick the primary one and note the rest. - **Run:** how does the app start locally? Prefer the repo's own documented dev command (package scripts, Makefile, README quickstart). Note ports, env vars, seed data, auth. - **Drive:** how can an agent interact with it programmatically? List the repo's project skills and smoke scripts first: when one already launches or drives the app, the generated skill hands that surface to it and covers only what it lacks. Then existing harnesses — Playwright/Cypress specs, expect scripts, PTY helpers, curl-able endpoints, a debug port. Only then pick a generic recipe: browser/CDP for web and Electron, a tmux/PTY harness for CLI/TUI, plain HTTP for services. - **Observe:** what evidence can be captured? Screenshots, terminal transcripts, response bodies, logs, exit codes, DB state. - **Isolate:** can two instances run side by side (ports, data dirs, profiles)? If not, say so in the generated skill: refusing to double-drive a shared instance beats corrupting the user's session. When isolation changes HOME or cwd, a version manager (mise, asdf, nvm) can resolve a different runtime: resolve each runtime to an absolute path from the repo before isolating, put it first on PATH for the children, and have Doctor check the runtime version inside the isolated environment. If the checkout doesn't build or start as-is, fix that first (or report it precisely) before generating. When the host cannot run the stack (container runtime, kernel modules, VPN), report the failing command and stop rather than proving in a stand-in; on Linux, when container networking or overlay mounts fail with EINVAL or EOPNOTSUPP, check `ls /lib/modules/$(uname -r)` and `findmnt /var/lib` first; 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. ## 2. Generate the skill Write `<skills-dir>/verify-<app>/SKILL.md` with YAML frontmatter (`name: verify-<app>` and a `description` that names the app, the surface, and when to reach for it — without frontmatter the skill never registers) and these sections, each grounded in what the interview actually found (no placeholders left): - **Launch:** the exact command that starts the app for verification, and how to tell it's ready (a log line, a prompt). Launch must reach a usable state from an empty data dir, including any migrations and seed data. Ready means usable, not just that a process answers. A database health check can pass while its init scripts are still running. Include teardown. For a short-lived CLI or TUI there is no server to keep alive: launch means build the binary (or install deps) once, then start each drive in its own isolated PTY or tmux session. - **Doctor:** one read-only check that answers "is this instance worth driving?" — process up, right version/build, port owned by us, auth valid. An agent runs this first whenever anything looks off. - **Drive:** the harness recipe with real selectors/commands from this repo, not examples. Prefer stable handles (ARIA labels, data attributes, prompt strings, route paths) over coordinates and tab order. - **Evidence:** what to capture for a proof and where it goes. State the proof standards: exercise the real user path, not internal setters or test-only endpoints; capture the action and the resulting state, not just the final screen; verify side effects (files written, rows inserted, messages sent) alongside what's visible; mocks only where a production boundary already isolates the external system. When the safe path is a dry-run or test mode, verify what it actually skips by observing (files, network, git refs) rather than trusting its name: some dry-runs still touch the network or open a browser. - **Cleanup:** how to tear down instances the run created. Never kill by process name; kill what you started, identified by what is inside it (the process group's members, the compose project's containers), not by one leader process that a shell or version-manager shim may replace. Cleanup removes instances and scratch state, never the evidence: proof artifacts survive the teardown, in a location the skill names. - **Helpers:** any script the skill ships is executable and its invocation is shown in the skill body. A helper the reader has to reverse-engineer is not a helper. ## 3. Seed the feature map Create `<skills-dir>/verify-<app>/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/`](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`; they are enough to work from when the reference directory is missing. 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. A failure you saw once that does not reproduce is untested, not false: rerun it several times before removing it, and record an intermittent one in `Gotchas` with its rate and rerun count. The map is the repo's maintained verification source; a proof that drives one convenient entry point is incomplete when the map lists others. ## 4. Prove the generated skill before handing it over 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. Also drive one journey that must fail (a bad flag, a refused prompt) through each harness path and confirm the evidence shows the failure (a non-zero exit, an error in the right stream): an instrument that has never reported a failure is not yet proof of success. Run the feature file's recipe block as written, extracted from the Markdown, so the proof covers the text that ships. After cleanup, confirm both halves: the evidence still exists at the named location (a cleanup that eats the proof fails this step), and nothing the run started survives (its ports are free, its process groups or containers are empty, Doctor reports the instance down). 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. ## 5. Offer the maintenance loop Point the user at `/maintain-verification-skill` for keeping the map honest as the app changes. Suggest a cadence only if they ask.
From HexSleeves/skills, MIT.
More from HexSleeves/skills
- 0.570score
merged
HexSleeves
Use when a pull request has merged and the local repo should be cleaned up for the next piece of work, whether the user says so, runs /merged, or…
SkillAFreshness: AClaude Code +9 - 0.570score
improve
shadcn
Use when the user wants an audit, improvement opportunities, roadmap advice, or an implementation handoff from a read-only senior-advisor survey of a codebase.
SkillAFreshness: AClaude Code +9 - 0.570score
why
HexSleeves
Use when asking why code or a system works the way it does, why a choice was made, or for regressions, postmortems, and data-backed thresholds.
SkillAFreshness: AClaude Code +9 - 0.570score
task-observer
Eoghan Henn and contributors
Monitors task execution for skill improvement opportunities.
SkillAFreshness: AClaude Code +9 - 0.570score
diagnosing-bugs
HexSleeves
Use when the user says "diagnose"/"debug this", or reports a hard bug, a flaky or intermittent failure, or a performance regression (something broken…
SkillAFreshness: AClaude Code +9 - 0.565score
no-comments
HexSleeves
Use when the user wants scoped code comments reviewed, accepted findings fixed, or claimed constraints encoded as enforceable checks.
SkillAFreshness: AClaude Code +9 - 0.565score
code-review
HexSleeves
Use when a branch is ready for its PR, or the user asks to review a branch, a PR, work-in-progress changes, or the changes "since X".
SkillAFreshness: AClaude Code +9 - 0.565score
maintain-verification-skill
HexSleeves
Use when a project's verification skill or feature map may be out of date, or the user runs /maintain-verification-skill.
SkillAFreshness: AClaude Code +9 - 0.564score
implement-spec
HexSleeves
Use when the user wants the result of /to-spec and /to-tickets implemented in code.
SkillAFreshness: AClaude Code +9 - 0.559score
gh-axi
HexSleeves
Use when a task touches GitHub: issues, PRs, stacked PRs, CI runs, workflows, releases, Projects, secrets and variables, gists, or search.
SkillAFreshness: AClaude Code +9 - 0.539score
no-ai-slop
HexSleeves
Use when the user wants a draft edited to read clearer, more direct, more opinionated, or less AI-sounding, wants AI-slop patterns flagged without a rewrite…
SkillAFreshness: AClaude Code +9 - 0.539score
council
HexSleeves
Use when the user asks to consult the council, wants several models to sign off on a PR, branch, or plan before it merges or ships, or says to merge "once…
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 14, 2026 (16 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/HexSleeves/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from HexSleeves
- 0.570score
diagnosing-bugs
HexSleeves
Use when the user says "diagnose"/"debug this", or reports a hard bug, a flaky or intermittent failure, or a performance regression (something broken…
SkillAFreshness: AClaude Code +9 - 0.570score
merged
HexSleeves
Use when a pull request has merged and the local repo should be cleaned up for the next piece of work, whether the user says so, runs /merged, or…
SkillAFreshness: AClaude Code +9 - 0.570score
why
HexSleeves
Use when asking why code or a system works the way it does, why a choice was made, or for regressions, postmortems, and data-backed thresholds.
SkillAFreshness: AClaude Code +9 - 0.565score
maintain-verification-skill
HexSleeves
Use when a project's verification skill or feature map may be out of date, or the user runs /maintain-verification-skill.
SkillAFreshness: AClaude Code +9 - 0.565score
code-review
HexSleeves
Use when a branch is ready for its PR, or the user asks to review a branch, a PR, work-in-progress changes, or the changes "since X".
SkillAFreshness: AClaude Code +9 - 0.565score
no-comments
HexSleeves
Use when the user wants scoped code comments reviewed, accepted findings fixed, or claimed constraints encoded as enforceable checks.
SkillAFreshness: AClaude Code +9
Cite this page
create-verification-skill. Agent Mart. https://agentmart.dev/skills/hexsleeves-create-verification-skill (last updated 2026-10-24)