Generate a project-local verification skill that drives your app the way a user does — any language, framework, or platform. Use for /create-verification-skill, "make a control skill for this repo", or when a project has no scripted way to prove UI/CLI/service behavior.
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 (.agents/skills/verify-<app>/) tailored to the repo. 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 .agents/skills/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):
For Paperclip, read the map contract and use the sibling
maps/feature-map/ and maps/agent-access-map/ directories. The generated
verification skill consumes both maps and reports drift; maintenance owns their
updates. Reuse existing feature files and preserve Poteto's product format. Every
new feature file needs a same-named agent access companion with matching stable
sub-feature IDs. Record APIs, actual agent entry points, policy, evidence and gaps
using the contract. Mark representative source inventory as baseline /
source-only; enumerate operations before claiming full access coverage. Reuse
Paperclip's APIs, admitted tools and existing verification infrastructure. Run
node scripts/check-maps.mjs after map changes. Do not create maps inside a skill
directory or generate a second runtime.
For other projects, create .agents/skills/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/, 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. 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.
Point the user at /maintain-verification-skill for keeping the map honest as the app changes. Suggest a cadence only if they ask.
Origin and license: NOTICE.md.
Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/create-verification-skill · pinned to the source commit
# Run from your project root
git clone https://github.com/paperclipai/paperclip.git .skillboard-tmp
git -C .skillboard-tmp checkout e168512f7bdbb6af6ea01954c6d7ed80b91e903e
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/.agents/skills/create-verification-skill" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/paperclipai/paperclip.git .skillboard-tmp
git -C .skillboard-tmp checkout e168512f7bdbb6af6ea01954c6d7ed80b91e903e
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/.agents/skills/create-verification-skill" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/create-verification-skill
Scanner static-checks@0.1.0 · commit e168512f7bdb. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
Fetches remote content at runtime, which can change after review.
Evidence: curl· fingerprint 427e4b79b1f0fc90
References parent-directory traversal, which can escape a target directory.
Evidence: ../· fingerprint fa08499e14d0113b