AI DevKit · Enforce evidence-based completion claims — require fresh command output before reporting success. Use when completing any task, fixing a bug, finishing a phase, running tests, building, deploying, or making any "it works" claim.
86%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Prove it works before saying it works.
dev-smoke run, whatever the claim is called.Every completion claim must pass all steps in order:
dev-smoke is required evidence alongside tests.If any step fails, stop. Fix the issue and restart from step 0.
If no verification command exists (e.g., no test suite), tell the user and ask them how to verify before claiming done.
| Claim | Required Evidence | Not Sufficient |
|---|---|---|
| Tests pass | Test output: 0 failures, exit 0 | Previous run, "should pass now" |
| Build succeeds | Build output: exit 0 | Linter passing, partial build |
| Bug is fixed | Symptom reproduced at the level the user saw it (CLI/API/UI) → now gone, plus a regression test | "Changed code, should be fixed"; unit test alone for a user-visible bug |
| Linter clean | Linter output: 0 errors | Single file check |
| Phase complete | Each criterion verified individually | "Tests pass, so done" |
| Feature works | dev-smoke run or E2E test | Unit tests alone |
List every evidence type, so a skipped check is visible:
<command> → exit <n>, <pass>/<fail><command> → exit <n><flow>, result) | not applicable (<why the change is not user-facing>) | skipped (user asked)For bug fixes, a single pass is not enough:
If step 4 passes, the test is wrong. Rewrite it.
Revert with a patch, never git stash — git stash pop restores whatever stash is on top, which may not be yours:
git diff -- <fix paths> > "$SCRATCH/fix.patch" && git apply -R "$SCRATCH/fix.patch"
# run tests (must fail)
git apply "$SCRATCH/fix.patch"| Rationalization | Why It's Wrong | Do Instead |
|---|---|---|
| "This change is trivial" | Trivial changes break things constantly | Run the check |
| "I ran it earlier" | Code changed since then | Run it again now |
| "The test is flaky" | Flaky ≠ ignorable | Fix the flake first |
| "It compiles, so it works" | Compilation ≠ correctness | Run the tests |
| "The CI will catch it" | CI is a safety net, not a substitute | Verify locally first |
| "The agent said it's done" | Agent claims need verification too | Check diff and run tests |
| "Unit tests and fixtures cover it" | They test logic on mocked inputs, not the flow a user runs | Run dev-smoke, or state why the change is not user-facing |
| "I'll call it 'tests pass', not 'feature works'" | Narrow wording doesn't change what was changed | Classify the change (step 0) first |
After a failed verification, store the failure pattern: npx ai-devkit@latest memory store --title "<failure pattern>" --content "<what failed and how to avoid>" --tags "verify,failure-pattern"
If a task name is known and tracing is usable, record task evidence after
the verification report per task. If tracing was not probed, run the real read
probe first. If probe or evidence recording fails, report the failed task command
and continue verification; never block verification on optional task logging.
codeaholicguy/ai-devkit
6ddfed6
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.