# Verification Loop

> Pre-commit verification with lint, type-check, tests, and security scan

- Skill: `mshadmanrahman/verification-loop` (Agent Skill)
- Install (CLI): `npx skillmds@latest add mshadmanrahman/verification-loop`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mshadmanrahman/verification-loop/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: mshadmanrahman (https://skillmd.com/u/mshadmanrahman)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/mshadmanrahman/verification-loop

---


# Verification Loop

Run all quality gates before committing or creating a PR.

## When to Use

- Before any git commit
- Before creating a pull request
- After completing implementation (before marking done)
- When asked to "verify" or "check everything"

## Procedure

### Step 1: Detect Project Type

Identify available tools from project files:
- `package.json`: npm/yarn scripts (lint, typecheck, test)
- `pyproject.toml` / `setup.py`: Python tooling (ruff, mypy, pytest)
- `go.mod`: Go tooling (golangci-lint, go vet, go test)
- `Cargo.toml`: Rust tooling (clippy, cargo test)

### Step 2: Run Quality Gates

Execute in order (stop on CRITICAL):

| Gate | Command (detect per project) | Severity |
|------|------------------------------|----------|
| Lint | eslint, ruff, golangci-lint | HIGH |
| Type Check | tsc --noEmit, mypy, go vet | HIGH |
| Tests | jest, pytest, go test | CRITICAL |
| Security | npm audit, pip-audit, cargo audit | CRITICAL |
| Coverage | jest --coverage, pytest --cov | HIGH |

### Step 3: Report Results

```
Verification: {project name}

  Lint:       PASS | FAIL ({count} issues)
  Types:      PASS | FAIL ({count} errors)
  Tests:      PASS | FAIL ({pass}/{total})
  Security:   PASS | FAIL ({count} vulnerabilities)
  Coverage:   {percent}% (target: 80%)

Verdict: READY TO COMMIT | BLOCKED ({reason})
```

### Step 4: Actionable Fixes

For each failure, provide:
```
{gate} FAIL:
  {file}:{line} - {error message}
  Fix: {specific suggestion}
```

## Blocking Rules

- CRITICAL failures block commit (tests failing, known vulnerabilities)
- HIGH failures: warn but allow commit with acknowledgment
- MEDIUM/LOW: report only, do not block

## Output Format

```
Verification: lead-scoring-simulator

  Lint:       PASS
  Types:      PASS
  Tests:      PASS (24/24)
  Security:   PASS
  Coverage:   87% (target: 80%)

Verdict: READY TO COMMIT
```

## Rules

- Always run tests with verbose output
- Kill any hung processes after 120s timeout
- If a gate tool is not installed, skip it with a warning
- Never auto-fix lint issues without showing what changed
- Clean up test artifacts after run

