Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+21 more

    Spec Verification Audit: Did We Build What the Spec Says?

    1

    Audits your code against the spec one requirement at a time: exists, real or stub, wired to a real entry point, and proven by a test it actually ran.

    $12

    Secure checkout via Stripe

    Money-back guarantee

    Converts to your local currency at checkout

    Security scanned
    Spec Verification Audit: Did We Build What the Spec Says?

    Spec Verification Audit: Did We Build What the Spec Says?

    Example session with this skill installed

    Verify the app against program/shelflife/specs/requirements.md before we ship.

    • Read your context and instructions
    • Compiled the spec verification audit
    • Generated the document

    Scope: 19 rows: FR-1 to FR-6 split by acceptance criterion, plus 3 NFRs (performance, security, accessibility). v2 items excluded.

    Verification — ShelfLife vs requirements.md

    Audited at 4be81d0 · Result: 14 verified · 3 present-unverified · 2 failed · 0 blocked

    Not verified (5 rows)

    IDVerdictGapEvidenceSmallest next action
    FR-5.bfailedunwiredisExpired() exists (households/invites.ts:41) but join/[token]/+page.server.ts:18 calls acceptInvite without it; a 9-day-old token is acceptedcall isExpired first; add a rejection test asserting no membership row
    FR-3.bfailedsemantic-contractUI sends toss, but markItem stores both use and toss as 'used' (items/service.ts:77); the digest's waste count is always 0map toss → 'tossed'; add a write → reopen → read assertion
    FR-4present-unverifiedproof-gapdigest builder tested (5 selected); the cron route → builder → send path has no testroute-level test with a fixture mail sender
    NFR-securitypresent-unverifiedproof-gaphousehold scoping looks right; no test that member A can't read household Bcross-household rejection test
    FR-2.bpresent-unverifiedproof-gapnpm test -- pantry reported green but selected 212 tests (the whole suite); nothing asserts the Expired sectionscoped test via npx vitest run tests/items/pantry.test.ts

    Verified (excerpt)

    IDExistsWiredBehaviour proof
    FR-1.aitems/service.ts:22POST /api/items → +server.ts:9 → addItemjourney.test.ts: 4 selected, exit 0; real SQLite file, close/reopen
    FR-1.bitems/service.ts:25same"past date → 422, no row": 1 selected, exit 0

    Commands run: 7 (all listed in the report with selected counts).
    Limits: email delivery not exercised (no provider configured).

    Written to program/shelflife/VERIFICATION.md. Two failures block shipping, and both are one-function fixes with a test.

    spec-verification-audit-did-we-build-wha.pdf

    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

    "All tests pass" and "the agent says it's done" are not the same as "the feature works." This skill makes your agent audit the codebase against the spec the way a strict reviewer would: one row per requirement, evidence for every claim, and verdicts that can't be rounded up.

    What it does

    For every requirement in your spec, PRD or acceptance criteria:

    IDExistsSubstantiveWiredBehaviour proofVerdict
    • Exists: the path:line that implements it.
    • Substantive: real logic, or a stub returning a hardcoded value?
    • Wired: the real entry path that reaches it, traced through constructors and registrations, not imports.
    • Behaviour proof: a test the agent ran itself, with the selected-test count and exit code.
    • Verdict: verified, present-unverified, failed or blocked.

    Every gap is classified (stub, unwired, missing-adapter, contract-response, semantic-contract, proof-gap, environment) with the smallest next action and a suggested owner.

    How it works

    1. Inventory the requirements (FR IDs, acceptance criteria, must-have NFRs) and confirm scope in one line.
    2. Trace each requirement from user action → entry point → service → durable write → read after restart.
    3. Run the covering tests with a selector that really scopes, and read the counts.
    4. Apply strict verdict rules and write VERIFICATION.md, with the gaps first.

    Frameworks & tools

    Any language, framework and test runner (Vitest, Jest, pytest, Go, Cargo, Playwright and more). Read-only, apart from the one report file.

    Why this beats prompting it yourself

    Ask an agent "does this match the spec?" and it reads the code, sees plausible functions, and says yes. This skill bans that: code without an exercising test is present-unverified, a run that selected zero tests is not evidence, a filter that silently ran the whole suite is flagged, and a mock that bypasses the boundary under test proves nothing.

    Use cases

    • Check an AI agent's "done" before you merge.
    • Run an acceptance or ship-readiness review against a PRD.
    • Find features whose route exists but is never mounted.
    • Catch states collapsed at the storage boundary before users do.

    Known limitations

    It reports and doesn't fix. Requirements that need real external services, devices or credentials are marked blocked, not guessed. Its quality depends on the spec having identifiable requirements: if yours has none, it mints R-n IDs and records its reading of each.

    How to use

    1. 1

      Connect your agent to the Agensi MCP

      Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup

    2. 2

      Sign in to Agensi

      Your agent shows a sign-in link. Sign in and click Allow.

    3. 3

      Ask for what you need

      Your agent loads this skill and uses it on your task. It always asks before any payment.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill goes through the trust checks below.

    Security scanned

    Checked by our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Money-back guarantee

    Doesn't do what its page promises? You get your money back.

    Trust & safety

    Security scan

    Security scan passed 3 days ago

    Requires

    your project's own test runner
    vitest
    Node.js
    jest
    playwright

    Listed3 days ago

    What's inside

    Frequently Asked Questions