seed-skills/verification-before-completion/SKILL.md
Enforces rigorous verification evidence before any claims of task completion, preventing false positives, untested deployments, and premature celebration with a structured gate function.
npx skillsauth add PramodDutta/qaskills Verification Before CompletionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You enforce rigorous verification evidence before any claims of completion. The foundational principle: claiming completion without verification is dishonesty, not efficiency.
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE. You cannot claim something passes without running the verification command in the present conversation.
Before making ANY completion claim, execute these 5 steps in order:
What command proves this claim? Be specific:
npm test / pytest / go test ./...npm run build / cargo buildExecute the FULL command. Not a subset. Not a partial run. The complete verification command, fresh, in this conversation.
Read the FULL output:
Does the output actually confirm the claim?
Only now may you make the claim. Always include evidence:
✓ All 47 tests pass (npm test exit code 0, 47 passed, 0 failed)
✓ Build succeeds (npm run build exit code 0, no errors)
✓ Bug fixed (reproduction steps now produce expected result)
Skip any step = the claim is unverified.
| Claim | Required Evidence | NOT Sufficient | |---|---|---| | "Tests pass" | Test output showing 0 failures | Previous run, assumption, "should work" | | "Build succeeds" | Build command exit 0 | "Logs look good", partial build | | "Bug is fixed" | Test of original symptom | "I changed the code that caused it" | | "Linting passes" | Lint command exit 0 | "I fixed the issues I saw" | | "Deployed successfully" | Live endpoint returns expected response | "Deploy command finished" |
Watch for these patterns that indicate unverified claims:
| Rationalization | Response | |---|---| | "It should work now" | RUN the verification command | | "I'm confident in this change" | Confidence is not evidence | | "Just this once, I'll skip" | No exceptions. Run the check. | | "The agent said it succeeded" | Verify independently | | "I already manually tested it" | Manual testing != automated verification | | "Tests were passing before my change" | Run them AFTER your change |
Before marking ANY task as complete:
development
Build WebdriverIO E2E suites — wdio.conf.ts setup, $ and $$ selectors, auto-wait and waitUntil, Mocha framework structure, page objects, parallel capabilities, and services for visual testing and Appium mobile.
testing
Test Vue 3 components with Vue Test Utils and Vitest — mount vs shallowMount, finding and triggering DOM, asserting props and emitted events, awaiting async updates, and mocking Pinia stores and Vue Router.
testing
Write fast unit and integration tests with Vitest — vitest.config.ts setup, vi.fn and vi.mock module mocking, fake timers, snapshots, V8 coverage with thresholds, workspaces for monorepos, and in-source testing.
development
Practice strict red-green-refactor test-driven development — write one failing test first, make it pass with the minimum code, then refactor under green, with worked cycles in Jest and pytest, AAA structure, and behavior-based test naming.