Install any skill in seconds. Free to start, no credit card required.
Get Started Free →A comprehensive verification system for Claude Code sessions.
.claude/skills/verification-loop/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-13 | ✗→✓ | ▲ Improved | -9% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -26% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 10% | 0% |
A comprehensive verification system for Claude Code sessions.
Invoke this skill:
bash# Check if project builds npm run build 2>&1 | tail -20 # OR pnpm build 2>&1 | tail -20
If build fails, STOP and fix before continuing.
bashset -o pipefail # TypeScript projects npx --no-install tsc --noEmit 2>&1 | head -30 # Python projects pyright . 2>&1 | head -30
Report all type errors. Fix critical ones before continuing.
bash# JavaScript/TypeScript npm run lint 2>&1 | head -30 # Python ruff check . 2>&1 | head -30
bash# Run tests with coverage npm run test -- --coverage 2>&1 | tail -50 # Check coverage threshold # Target: 80% minimum
Report:
bash# Check for secrets grep -rn "sk-" --include="*.ts" --include="*.js" . 2>/dev/null | head -10 grep -rn "api_key" --include="*.ts" --include="*.js" . 2>/dev/null | head -10 # Check for console.log grep -rn "console.log" --include="*.ts" --include="*.tsx" src/ 2>/dev/null | head -10
bash# Show what changed git diff --stat git diff HEAD~1 --name-only
Review each changed file for:
After running all phases, produce a verification report:
VERIFICATION REPORT
==================
Build: [PASS/FAIL]
Types: [PASS/FAIL] (X errors)
Lint: [PASS/FAIL] (X warnings)
Tests: [PASS/FAIL] (X/Y passed, Z% coverage)
Security: [PASS/FAIL] (X issues)
Diff: [X files changed]
Overall: [READY/NOT READY] for PR
Issues to Fix:
1. ...
2. ...For long sessions, run verification every 15 minutes or after major changes:
markdownSet a mental checkpoint: - After completing each function - After finishing a component - Before moving to next task Run: /verify
This skill complements PostToolUse hooks but provides deeper verification. Hooks catch issues immediately; this skill provides comprehensive review.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-13 | fail→pass | 10,761 | 5,811 | -46% | 1 | 1 | 0% | 1,921 | 1,741 | -9% | 0 | 0 | — |
case-02 | fail→pass | 16,519 | 28,994 | +76% | 1 | 1 | 0% | 1,618 | 2,247 | +39% | 0 | 0 | — |
case-08 | pass→pass | 17,224 | 11,179 | -35% | 1 | 1 | 0% | 3,148 | 2,914 | -7% | 0 | 0 | — |
case-01 | fail→fail | 9,573 | 5,058 | -47% | 1 | 1 | 0% | 1,626 | 956 | -41% | 0 | 0 | — |
case-03 | fail→fail | 6,198 | 2,284 | -63% | 1 | 1 | 0% | 625 | 985 | +58% | 0 | 0 | — |
case-04 | fail→pass | 9,046 | 4,530 | -50% | 1 | 1 | 0% | 1,532 | 1,447 | -6% | 0 | 0 | — |
case-05 | fail→pass | 8,728 | 2,078 | -76% | 1 | 1 | 0% | 1,472 | 1,094 | -26% | 0 | 0 | — |
case-06 | fail→pass | 6,642 | 3,053 | -54% | 1 | 1 | 0% | 1,154 | 1,271 | +10% | 0 | 0 | — |
case-07 | pass→pass | 9,902 | 1,841 | -81% | 1 | 1 | 0% | 1,655 | 973 | -41% | 0 | 0 | — |
case-09 | pass→pass | 7,227 | 5,549 | -23% | 1 | 1 | 0% | 1,420 | 1,734 | +22% | 0 | 0 | — |
case-10 | fail→pass | 8,101 | 2,157 | -73% | 1 | 1 | 0% | 1,514 | 1,007 | -33% | 0 | 0 | — |
case-11 | pass→pass | 10,447 | 8,347 | -20% | 1 | 1 | 0% | 1,687 | 2,186 | +30% | 0 | 0 | — |
case-12 | fail→pass | 7,252 | 3,039 | -58% | 1 | 1 | 0% | 1,277 | 1,296 | +1% | 0 | 0 | — |
case-14 | fail→pass | 12,131 | 2,239 | -82% | 1 | 1 | 0% | 2,011 | 1,051 | -48% | 0 | 0 | — |
case-15 | fail→fail | 14,838 | 11,177 | -25% | 1 | 1 | 0% | 2,412 | 2,438 | +1% | 0 | 0 | — |
case-16 | pass→pass | 4,655 | 2,821 | -39% | 1 | 1 | 0% | 755 | 1,220 | +62% | 0 | 0 | — |
case-17 | fail→pass | 5,802 | 2,566 | -56% | 1 | 1 | 0% | 1,111 | 1,166 | +5% | 0 | 0 | — |
case-18 | fail→pass | 14,336 | 3,177 | -78% | 1 | 1 | 0% | 2,586 | 1,209 | -53% | 0 | 0 | — |
case-19 | pass→pass | 12,047 | 11,651 | -3% | 1 | 1 | 0% | 1,851 | 2,555 | +38% | 0 | 0 | — |
case-20 | pass→fail | 14,254 | 4,492 | -68% | 1 | 1 | 0% | 3,229 | 882 | -73% | 0 | 0 | — |
case-21 | pass→pass | 5,030 | 6,116 | +22% | 1 | 1 | 0% | 961 | 1,447 | +51% | 0 | 0 | — |
case-22 | pass→pass | 12,440 | 8,450 | -32% | 1 | 1 | 0% | 2,668 | 2,572 | -4% | 0 | 0 | — |
case-23 | pass→fail | 11,328 | 2,979 | -74% | 1 | 1 | 0% | 2,042 | 1,258 | -38% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 20 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +35 percentage points is the difference between those two pass rates over the 20 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 7/27/2026 | +18% |
Other measured skills in the registry, with their headline benchmark lift.