> Set a repo up to prove engineering-task work actually works before it ships. Investigates the repo, ensures a one-command dev stack (`dev-local`) exists, asks whether verification runs locally or in a sandbox (crabbox), confirms/installs the committed `/verify` skill (per-task verification SOP — spawn a verifier sub-agent → drive the app → screenshot/video proof → open a PR with the proof embedded), the `/dev-local` skill + script, and the installed driver skill. Use when someone says "set up verification", "make this repo verifiable", "scaffold a verify skill", "set up the verifier".
npx skills add https://github.com/AI-Builder-Club/skills --skill verifier-setup
/verify skillGoal: leave the repo able to *prove an engineering task works before it ships* —
run once, and it wires up everything the per-task /verify loop needs.
You are setting up — not verifying anything yourself right now. The /verify
template lives at assets/verify.template.md (next to this skill). Parallels
dev-local-setup (which generates a script + its skill doc): a setup skill that
leaves behind reusable, repo-specific artifacts.
Running verifier-setup end-to-end leaves the repo with:
/verify skill — .claude/skills/verify/SKILL.md, the repo-tailoredper-task verification SOP (spawn a verifier sub-agent → drive the app →
screenshot/video proof → open a PR with the proof embedded). Generated in Step 5.
/dev-local skill + its script — scripts/dev-local.sh and.claude/skills/dev-local/SKILL.md, via dev-local-setup (Step 2) if not
already present. The one-command stack /verify depends on.
playwright-cli skill for web apps (Step 2);for non-web, the concrete exercise tool confirmed present.
Before creating anything, take stock — the repo may already have some of this,
under whatever name or layout its team chose. Look for the capability, not a
specific filename; the paths below are only examples. For each, decide **reuse
as-is / adapt-extend / create fresh** — never blindly overwrite working setup:
Makefile/Procfiletarget, docker-compose, package scripts (e.g. scripts/dev-local.sh, but any
form counts).
team's own convention.
(e.g. the playwright-cli skill), or the relevant API/CLI client.
link gets published (a release, bucket, CI artifacts, etc.).
Every later step is conditional on this inventory: if a capability exists and works,
reuse and adapt it (fill gaps, don't regenerate); only create what's missing.
Discover the real facts the generated skill will hardcode:
server on a port), an API/service (HTTP endpoints, no UI), a CLI, or a
desktop/mobile app? This picks the driver.
Step 0)? Note the up-command and the app URL/port. If none, Step 2 handles it.
verifier can mint a session with (see e2e-setup)? Record it, or "n/a".
unit, existing e2e commands) from package.json/Makefile/turbo.json/etc.
pr-evidenceGitHub prerelease via gh release upload is the default; a bucket/CI artifact
works too).
For each, act on what Step 0 found — reuse if present, adapt if partial, create only
if missing. Each check is idempotent; a no-op on what's already there:
script, Make/Procfile target, compose, package scripts), reuse it — read it for
the up-command/port/services and move on (extend only if a needed service is
missing). If there's none, scaffold one via dev-local-setup (don't hand-roll a
launcher here). The generated /verify just needs a reliable one-command up.
playwright-cli skill (it documents + wrapsthe browser driver). Ensure its binary is callable too (`npx --yes @playwright/cli
--version; install it + the chrome` channel if missing). This closes the usual
local gap where the browser driver was assumed but never installed.
API, the built binary for a CLI). No browser skill needed.
evidence/ is gitignored (proof output lands there).Present the choice (default and recommend local — it's simpler to stand up):
scripts/dev-local.sh up). Best for asingle task at a time. Recommend this unless they need parallelism.
or a fixed-port/single-instance stack. If chosen and not yet set up, scaffold via
crabbox-setup; the generated skill drives the app in-box via cbx.sh pw.
Record the pick as the generated skill's default RUN_MODE (the other stays a
documented fallback).
State the detected driver and confirm with the user (default playwright-cli
for web apps). For non-web, name the concrete tool (e.g. curl/an HTTP script,
the built CLI). This becomes DRIVER in the generated skill.
.claude/skills/verify/SKILL.mdIf a prior verification skill/SOP already exists (Step 0), update it in place —
refresh the repo-specifics/placeholders, preserve any hand-edits the team added;
don't clobber. Otherwise copy assets/verify.template.md → the repo's skills dir
(.claude/skills/verify/ or the repo's convention) and fill every {{...}}
placeholder from Steps 1–4:
STACK_UP, APP_URL, RUN_MODE(+RUN_MODE_NOTE), DRIVER(+DRIVER_INSTRUCTION),
AUTH_HELPER(+AUTH_INSTRUCTION), EXERCISE, REGRESSION_CMDS, EVIDENCE_UPLOAD,
DATE. Delete branches that don't apply (e.g. drop the browser/video language for
a non-web repo). Keep it to one screen — it's an SOP the agent follows, not an essay.
Commit the generated skill (+ any .gitignore/dev-local changes). Tell the user:
/verify before opening a PR (or when asked to verify), on abranch with changes committed";
gh authfor evidence upload).
the driver skill, e2e, evidence gitignore, the verify skill itself — is inventoried
first (Step 0) and reused/extended when it already exists. Only create what's
genuinely missing; preserve working setup and team hand-edits.
repo — the generated skill hardcodes real facts, not conventions.
evidence/ existbefore the /verify skill ships, so it never fails on a missing tool.
a stdout-assertion SOP. Match the template to the repo; cut what doesn't apply.
/verify runs.Python library for working with DICOM (Digital Imaging and Communications in Medicine) files. Use this skill when reading, writing, or modifying medical imaging data in DICOM format, extracting pixel data from medical images (CT, MRI, X-ray, ultrasound), anonymizing DICOM files, working with DICOM metadata and tags, converting DICOM images to other formats, handling compressed DICOM data, or processing medical imaging datasets. Applies to tasks involving medical image analysis, PACS systems, radiology workflows, and healthcare imaging applications.
Python library for working with DICOM (Digital Imaging and Communications in Medicine) files. Use this skill when reading, writing, or modifying medical imaging data in DICOM format, extracting pixel data from medical images (CT, MRI, X-ray, ultrasound), anonymizing DICOM files, working with DICOM metadata and tags, converting DICOM images to other formats, handling compressed DICOM data, or processing medical imaging datasets. Applies to tasks involving medical image analysis, PACS systems, radiology workflows, and healthcare imaging applications.
Best practices for Remotion - Video creation in React
Generate AI-powered podcast-style audio narratives using Azure OpenAI's GPT Realtime Mini model via WebSocket. Use when building text-to-speech features, audio narrative generation, podcast creation from content, or integrating with Azure OpenAI Realtime API for real audio output. Covers full-stack implementation from React frontend to Python FastAPI backend with WebSocket streaming.
Best practices for Remotion - Video creation in React
Port an existing Remotion (React) composition''s source to HyperFrames HTML. Use ONLY on an explicit ask to port/convert/migrate/translate a Remotion source — one-way, Remotion-only. A passing Remotion mention, reference-only code, or "make something like my Remotion video" is a fresh build (/general-video). Unclear → /hyperframes.
Use this skill when building applications with Gemini API hosted models, including Gemini and Gemma 4, working with multimodal content (text, images, audio, video), implementing function calling, using structured outputs, or needing current model specifications. Covers SDK usage...
Turn error logs, screenshots, voice notes, and rough bug reports into crisp, developer-ready GitHub issues with repro steps, impact, and evidence.
Take ai-builder-club/verifier-setup from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npx.
Without those the skill loads but fails at the first command.