verification-loop — Claude skill: six-phase code check
Runs a session's work through six phases — build, types, lint, tests with coverage, secret grep, diff review — and prints a PASS/FAIL report.
npx skills add affaan-m/ECC --skill verification-loop -a claude-codeWhat verification-loop does
The skill walks the phases in order and stops if the build breaks. Then type checking (tsc --noEmit for TypeScript, pyright for Python), lint (npm run lint or ruff check), tests with coverage, and a leak sweep: grep for sk-, api_key and console.log under src/. The last phase runs git diff --stat and lists changed files so you can read through each one.
What you get back is a report: status per phase, error and warning counts, coverage percentage, a READY or NOT READY verdict for the PR, and the issues left to fix. The coverage target baked into the skill is 80%.
Install it if you run Claude on a real project and would rather not discover a broken build inside the pull request. For a one-file tweak, six phases is a detour — a PostToolUse hook covers that.
What it helps with
- check that the project still builds before opening a PR
- surface type errors after a refactor
- run the test suite and read the coverage number
- find leftover API keys and console.log calls
- review the list of changed files before committing
Example prompts for the agent
- run verification-loop on the current session
- verify before the PR and show me the report
- do the full check: build, types, lint, tests
How to install verification-loop
1Skills CLI (Vercel)
npx skills add affaan-m/ECC --skill verification-loop -a claude-code2Manually: put the files in place
~/.claude/skills/verification-loop/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/verification-loop/
1Skills CLI (Vercel)
npx skills add affaan-m/ECC --skill verification-loop -a codex2Manually: put the files in place
.agents/skills/verification-loop/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add affaan-m/ECC --skill verification-loop -a cursor2Manually: put the files in place
.cursor/skills/verification-loop/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install affaan-m/ECC verification-loop2Manually: put the files in place
.github/skills/verification-loop/SKILL.md1Skills CLI (Vercel)
npx skills add affaan-m/ECC --skill verification-loop -a gemini-cli2Platform CLI
gemini skills install https://github.com/affaan-m/ECC --path skills/verification-loopManually: put the files in place
.devin/skills/verification-loop/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add affaan-m/ECC --skill verification-loop -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set146
The whole set →Similar
Questions about verification-loop
How do I install verification-loop in Claude?
Run npx skills add affaan-m/ECC --skill verification-loop -a claude-code. The skill lands at ~/.claude/skills/verification-loop/SKILL.md.
What does verification-loop do?
It runs six verification phases — build, types, lint, tests with coverage, secret grep and diff review — and turns the results into a PASS/FAIL report.
How is this different from hooks?
A PostToolUse hook catches a problem right after an edit; the skill gives you a full pass over the project. They work together.
Source text
SKILL.md · MIT
--- name: verification-loop description: Run a six-phase verification of a Claude Code session's work — build, type check, lint, tests with coverage, security grep, and diff review — then produce a PASS/FAIL verification report. Use when verifying work after completing a feature or refactor, before creating a PR, or when quality gates must pass. license: MIT metadata: origin: ECC --- # Verification Loop Skill A comprehensive verification system for Claude Code sessions. ## When to Use Invoke this skill: - After completing a feature or significant code change - Before creating a PR - When you want to ensure quality gates pass - After refactoring ## Verification Phases ### Phase 1: Build Verification ```bash 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. ### Phase 2: Type Check ```bash 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. ### Phase 3: Lint Check Use `sed` to limit displayed output while consuming the whole stream. This keeps a successful linter from failing on SIGPIPE when `pipefail` is enabled. ```bash set -o pipefail # JavaScript/TypeScript npm run lint 2>&1 | sed -n '1,30p' # Python ruff check . 2>&1 | sed -n '1,30p' ``` ### Phase 4: Test Suite ```bash set -o pipefail # Run tests with coverage npm run test -- --coverage 2>&1 | tail -50 # Check coverage threshold # Target: 80% minimum ``` Report: - Total tests: X - Passed: X - Failed: X - Coverage: X% ### Phase 5: Security Scan ```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 ``` ### Phase 6: Diff Review ```bash # Show what changed git diff --stat git diff HEAD~1 --name-only ``` Review each changed file for: - Unintended changes - Missing error handling - Potential edge cases ## Output Format 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. ... ``` ## Continuous Mode For long sessions, run verification every 15 minutes or after major changes: ```markdown Set a mental checkpoint: - After completing each function - After finishing a component - Before moving to next task Run: /verify ``` ## Integration with Hooks This skill complements PostToolUse hooks but provides deeper verification. Hooks catch issues immediately; this skill provides comprehensive review.
© affaan-m · MIT · affaan-m/ECC