
A systematic quality gate you run before pushing code or opening PRs. It walks through six phases: build verification, type checking, linting, test coverage, security scanning for leaked secrets and debug logs, and a diff review of what actually changed. The real value is having a structured checklist that doesn't skip steps when you're tired or in a hurry. It targets 80% test coverage minimum and stops you cold if the build fails before wasting time on later checks. The output is a straightforward pass/fail report that tells you if you're ready to ship or what needs fixing first.
$ npx -y skills add affaan-m/everything-claude-code --skill verification-loop --agent claude-codeInstalls into .claude/skills of the current project.
A comprehensive verification system for Claude Code sessions.
Invoke this skill:
set -o pipefail # report the build's exit status, not tail's
# 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.
set -o pipefail
# TypeScript projects
npx --no-install tsc --noEmit 2>&1 | sed -n '1,30p'
# Python projects
pyright . 2>&1 | sed -n '1,30p'
Report all type errors. Fix critical ones before continuing.
Use sed to limit displayed output while consuming the whole stream. This keeps a
successful linter from failing on SIGPIPE when pipefail is enabled.
set -o pipefail
# JavaScript/TypeScript
npm run lint 2>&1 | sed -n '1,30p'
# Python
ruff check . 2>&1 | sed -n '1,30p'
set -o pipefail
# Run tests with coverage
npm run test -- --coverage 2>&1 | tail -50
# Check coverage threshold
# Target: 80% minimum
Report:
# 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
# Show what changed
git diff --stat
git diff HEAD~1 --name-only
Review each changed file for:
When the requested outcome requires deployment or target-environment verification, report target acceptance separately from local checks. Record the environment and installed version when known, the evidence, and the next permitted check or precise access dependency. Passing local checks, review, merge, or release does not establish target acceptance. Report VERIFIED or FAILED for an executed target check, with its evidence. Do not access production or make external changes without authorization. For local-only tasks, mark target acceptance as not applicable.
For example: local checks PASS; staging verification NOT PERFORMED (no access); next step: an authorized maintainer runs the staging smoke test.
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
Target: [VERIFIED/FAILED/NOT PERFORMED/NOT APPLICABLE] (environment/version, evidence)
Next permitted step: [check or access dependency; none if complete/not applicable]
Issues to Fix:
1. ...
2. ...
For long sessions, run verification every 15 minutes or after major changes:
Set 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.
Sponsors