Pm-pilot verification-loop

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

install
source · Clone the upstream repo
git clone https://github.com/mshadmanrahman/pm-pilot
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/mshadmanrahman/pm-pilot "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/dev/verification-loop" ~/.claude/skills/mshadmanrahman-pm-pilot-verification-loop && rm -rf "$T"
manifest: skills/dev/verification-loop/SKILL.md
source content

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):

GateCommand (detect per project)Severity
Linteslint, ruff, golangci-lintHIGH
Type Checktsc --noEmit, mypy, go vetHIGH
Testsjest, pytest, go testCRITICAL
Securitynpm audit, pip-audit, cargo auditCRITICAL
Coveragejest --coverage, pytest --covHIGH

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