Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+22 more

    Create Verification: Let Your Agent Run Your App

    1

    Bootstraps a verify-app skill and feature map so your agent can launch, drive and prove changes in your real app.

    Free

    Security scanned
    Create Verification: Let Your Agent Run Your App

    Create Verification: Let Your Agent Run Your App

    Example session with this skill installed

    Use the create-verification skill to set up verification for this repo.

    • Read your context and instructions
    • Compiled the create verification
    • Generated the document

    Real run of this skill on the example Notes app in poteto-kit (React + Vite, an existing verify CLI, no verify-app skill yet).

    create-verification report

    • Detected: app name poteto-kit-example (UI title "Notes"); skills dir .agents/skills; features dir src/features; gate command npm run gate.
    • Files written under .agents/skills/verify-app/: SKILL.md, references/cli-contract.md, references/worktree-isolation.md, references/features/{README,sidebar,editor,search,cross-cutting-flows}.md (+ the _feature.template.md copy source). The existing scripts/verify/cli.ts was kept as the CLI; capabilities it lacks (--target, heap, throttling, login) were deleted from the skill and listed in cli-contract.md.
    • Features mapped: 3 (sidebar, editor, search) + 1 cross-cutting flow = 13 entry points: 12 covered by 9 scenarios, 1 skip: (editor-empty-state, unreachable from the UI). npm run verify:coverage: ok.
    • Selectors added: 1, data-testid="sidebar-note-list" in src/features/sidebar/sidebar.tsx (the list had no handle; the rest already had aria-label / data-component / data-action-id). Made provable with one assertion (scripts/verify/selectors.ts, scripts/verify/scenarios/sidebar.ts): renaming the testid turned sidebar/create-note red (expectation failed: the note list holds four rows), restoring it turned it green.
    • Gates: lint, typecheck, check:deps, check:features ok; verify:all 9/9; verify:selftest ok. test:guardrails: 4 failures, tests that edit the example's original doc text by exact string.

    Verification report

    • Target: search / all 4 scenarios, every entry point
    • Build: commit 7dbb0f2 (main), dirty (selector change), npm run verify -- --feature search; gates: build ok, lint ok, typecheck ok
    • Environment: Linux, Chrome for Testing 153.0.8010.12 headless, Node v26.11.1
    • Coverage: search-open-chord (Control+K and Meta+K), search-open-button, search-filter, search-navigate-arrows, search-select-enter, search-select-click, search-close-escape; each ends on the palette gone and the note open in the editor and highlighted in the sidebar; no skips
    • Doctor: healthy, port 20793 free, dist fresh
    • Verdict: PASS (4/4 scenarios, 0 failed checks)
    • Artifacts: artifacts/proof/2026-10-19T04-40-13-628Z/search-*/{screenshot.png,console.json,trace.json,report.md}
    • Console errors / failed requests: 0; known noise matched: none
    • Perf: long tasks (>50 ms): 0, longest 12.2 ms; tasks over 16.7 ms: 0 of 326 (shortcut-filters-and-selects)
    • Not verified: no match for a query that finds nothing (empty result list)

    Verification report

    • Target: sidebar / create-note, select-note
    • Build: commit 7dbb0f2 (main), dirty, npm run verify -- --feature sidebar; gates as above
    • Coverage: sidebar-new-note (4 rows, "Untitled note" first and selected, editor title "Untitled note"), sidebar-select-note ("Grocery list" selected, body "Oat milk, coffee beans, lemons."); no skips
    • Verdict: PASS (2/2). Console: 0. Perf: long tasks 0, longest 15.9 ms; over 16.7 ms: 0 of 233
    • Artifacts: artifacts/proof/2026-10-19T04-40-12-185Z/sidebar-*/

    Verification report

    • Target: editor / edit-title-updates-sidebar, edit-body-persists
    • Build: commit 7dbb0f2 (main), dirty, npm run verify -- --feature editor
    • Coverage: editor-edit-title (sidebar and search show "Renamed note"), editor-edit-body (text survives a switch away and back); editor-empty-state skip: unreachable from the UI, closest path covered: none
    • Verdict: PASS (2/2). Console: 0. Perf: long tasks 0, longest 16.8 ms; over 16.7 ms: 1 of 268 (edit-title)
    • Artifacts: artifacts/proof/2026-10-19T04-40-15-615Z/editor-*/
    • Not verified: persistence (the app has none)

    sidebar.tsx

    PDF · document

    Generated

    Example file from a real run - the skill writes it into your workspace.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    The bottleneck with coding agents isn't how fast they write code. It's how much you trust what they hand back. Until the agent can run your real app and show evidence, you are the verifier.

    create-verification sets that up once per repo. Your agent:

    1. Detects how your app runs: web, Electron, iOS, Android, Flutter/React Native, HTTP API or CLI, and the driver to use (Playwright/CDP, simulator tooling, HTTP client, direct execution). It launches the app once to prove it starts.
    2. Explores the codebase with parallel read-only subagents: routes and screens, layout regions, menus, keybindings, test ids, feature boundaries and existing e2e tests, each claim cited by file:line.
    3. Writes a feature map: one file per feature with sub-features, how a user gets there, and how to drive it (selectors, shortcuts, gotchas), plus cross-feature journeys.
    4. Generates a verify-app skill from bundled templates: launch, drive, and capture evidence (screenshots, console errors, performance traces).
    5. Adds missing stable selectors with the smallest possible diff.
    6. Proves it by verifying 2-3 features end to end from a cold start, with evidence reports.

    After that, "verify the fix" means your agent runs the real app and brings back proof, not "should work".

    Everything it needs ships inside the package (verify-app templates, CLI contract, launch recipes per app type). It does not commit unless you ask.

    Free and open source. Part of poteto-kit (MIT). Unofficial: poteto-kit distills public talks and posts by Lauren Tan (poteto) and is not affiliated with or endorsed by her.

    How to use

    Skills on Agensi run inside your AI agent. Copy the prompt, paste it into your agent, and it connects to Agensi and installs this skill for you. If a payment is needed, your agent shows it to you first.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill passes our trust checks below.

    Security scanned

    Passed our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Free forever

    No account required to browse

    Trust & safety

    Security scanned

    Verified clean 1 day ago

    • Free to download with an account

    Requires

    Git

    Listed1 day ago

    What's inside

    Frequently Asked Questions