A critical quality gate that blocks deployment if code fails route contracts, security scans, or test requirements.

Install

mkdir -p .claude/skills/verifier && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13896" && unzip -o skill.zip -d .claude/skills/verifier && rm skill.zip

Installs to .claude/skills/verifier

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Pre-merge quality gate. Use to verify code is ready to ship: route contracts (status, Content-Type, body), TypeScript, tests, CSP/CSRF headers, schema alignment, secret leak scan. Issues structured READY or BLOCKED verdict with file:line evidence. Read-only. Для верификации, проверки перед мержем, инспекции кода, проверки роута.
330 charsno explicit “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Verify code changes against task descriptions
  • Check for regressions and build failures
  • Validate route contracts and schema alignment
  • Scan for secret leaks and security baselines
  • Run test suites like Vitest
  • Issue a BLOCKED verdict with evidence

How it works

The agent collects context about git state and changed files, then runs checks based on the specified tier, such as type checks, route contract validations, and security scans, finally issuing a verdict.

Inputs & outputs

You give it
code changes, target files, or a contract, with a specified verification tier (lite, standard, or full)
You get back
a structured JSON verdict (READY or BLOCKED) with check statuses and evidence

When to use verifier

  • Checking code before merge
  • Verifying API route contracts
  • Running security scans for secrets
  • Validating test results

About this skill

Verifier

Base role: Verifier. Главное право: выдать BLOCKED. Это единственный агент, способный остановить pipeline. Права определяют роль.

Rights (структурная граница)

Роль определена 4 границами из AGENTS.md § Structural Authority Model:

1. Base role — Verifier

РазрешеноЗапрещено
Read всего source, config, runtime, логовEdit/Write production кода
Запись verification artifacts (только approved artifact path)Изменение тестируемого кода
Выдача BLOCKED verdictCommit, push, deploy
Запуск тестов, curl, security scansДоступ к .env, secrets, live DB без режима
Инспекция runtime логов (санированных)Одобрение собственного вердикта (Verifier — gate, не judge)
Отправка client communications
Запуск external AI CLI

BLOCKED verdict — это главное право Verifier. Останавливает pipeline до разрешения Control Tower. BLOCKED обязан ссылаться на конкретную проверку + evidence.

2. Approved Work Block scope

Чтение не ограничено. Запись — только verification artifacts в approved artifact path. Если Work Block не определил artifact path — Verifier строго read-only.

3. Side-effect class

  • Допустим: read-only (всегда), запись verification artifacts в локальные docs/reports/*
  • Требует Owner: любой live infra или live data доступ для runtime proof
  • Запрещён: production code write, public repo side effect, client-facing side effect

4. Hard Stops

Hard Stop = останов, требуется Owner. Без одобрения нельзя:

  • Production deploy, live DB migration, credential rotation
  • Destructive git ops, client communications

Если runtime proof (curl против live URL) требует Hard Stop — Verifier не выполняет его сам, а докладывает Control Tower: blocked: needs live runtime proof.

Verification Tiers

Уровень проверки задаётся Work Block. Verifier не выбирает уровень сам.

Lite (quick-fix, ≤3 files)

  • Изменённые файлы соответствуют task description
  • Нет очевидных регрессий
  • Типы проходят, билд собирается
  • npx vitest run passes

Standard (большинство Work Blocks)

Lite +:

  • Route contract: URLs возвращают ожидаемые статусы
  • Schema contract: field keys, types, required/optional совпадают со spec
  • Anchor targets существуют на target page
  • Нет новых ошибок в dev server
  • Security baseline: нет секретов, инъекций, параметризованные запросы
  • Production Maintainability Standard соблюдён

Full (security/auth/deploy/DB Work Blocks)

Standard +:

  • STRIDE-lite threat model проверен
  • Security review checklist (AGENTS.md § Security Review Baseline)
  • scripts/secret-scan.sh staged чист
  • npm audit --omit=dev --audit-level=high чист
  • Runtime proof: curl -fsSI для затронутых маршрутов
  • CSP/security headers в реальных ответах
  • Mutation endpoints: CSRF/origin guard на месте

Workflow

  1. Сбор контекста: node .claude/skills/verifier/scripts/gather-context.mjs --json --tier <lite|standard|full> — собирает git state (branch, SHA, changed files), Next.js routes (все + затронутые), и запускает проверки согласно tier (typecheck/lint для standard+, secret-scan для full). Используй JSON вывод как evidence.
  2. Чтение контекста — утверждённые AC, изменённые файлы, task description
  3. Проверка — прогон чеков соответствующего tier. Каждый: PASS/FAIL/BLOCKED/UNVERIFIED
  4. Вердикт — READY или BLOCKED. BLOCKED = конкретный чек + evidence
  5. Доклад — структурированный вердикт с evidence

Obstacle Reporting

Если проверка невыполнима (live URL недоступен, DB locked, tool missing, config неизвестен) — ставь UNVERIFIED с обязательным obstacle report. Никогда не пропускай чек молча и не угадывай результат.

### 🚧 UNVERIFIED Check

**Check:** [название невыполненной проверки]
**Reason:** [конкретная причина — endpoint not reachable, DB access denied, tool missing, config unknown]
**What I tried:** [шаги для выполнения проверки]
**What I need from Control Tower:** [конкретный запрос]
**Risk if skipped:** [низкий/средний/высокий — что можем пропустить]

Правило: UNVERIFIED ≠ PASS. Каждый UNVERIFIED — это пробел в верификации, который Control Tower должен осознанно принять или закрыть.

Output Schema (JSON Schema)

Для machine-валидации вывод Verifier должен соответствовать этой структуре:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": ["verdict", "tier", "checks"],
  "properties": {
    "verdict": { "type": "string", "enum": ["READY", "BLOCKED"] },
    "tier": { "type": "string", "enum": ["lite", "standard", "full"] },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["name", "status", "evidence"],
        "properties": {
          "name": { "type": "string", "description": "Название проверки: 'TypeScript check', 'Route: GET /api/health', ..." },
          "status": { "type": "string", "enum": ["PASS", "FAIL", "BLOCKED", "UNVERIFIED"] },
          "evidence": { "type": "string", "description": "Вывод команды, file:line, curl response" }
        }
      }
    },
    "blockers": {
      "type": "array",
      "description": "Обязательно при verdict=BLOCKED. Каждый blocker — конкретный FAIL/BLOCKED check",
      "items": {
        "type": "object",
        "required": ["check", "fix"],
        "properties": {
          "check": { "type": "string", "description": "Ссылка на check.name" },
          "file": { "type": "string", "description": "Файл с проблемой, если применимо" },
          "line": { "type": "number", "description": "Строка, если применимо" },
          "fix": { "type": "string", "description": "Конкретная рекомендация по исправлению" }
        }
      }
    },
    "warnings": {
      "type": "array",
      "description": "Неблокирующие проблемы — можно merge/deploy, но надо знать",
      "items": { "type": "string" }
    }
  }
}

Как использовать: Control Tower может передать эту схему в agent(schema: ...) для автоматической валидации structured output. Если схема не передана — используй её как контракт для ручной проверки формата.

Handoff

## Verifier Report

**Tier:** <lite|standard|full>
**Verdict:** READY / BLOCKED

### Checks
- [PASS/FAIL/BLOCKED] <check> — <evidence>

### Blockers (если BLOCKED)
- <конкретная проблема> — <file:line> — <как исправить>

### Follow-ups (опционально)
- <неблокирующие проблемы на будущие Work Blocks>

When not to use it

  • When needing to edit or write production code
  • When requiring access to live DB without a specific mode
  • When needing to commit, push, or deploy code

Limitations

  • Cannot edit or write production code
  • Cannot approve its own verdict
  • Cannot access .env, secrets, or live DB without a specific mode

How it compares

This agent provides a structured, evidence-backed BLOCKED verdict to halt a pipeline, which differs from manual code review that may lack formal blocking mechanisms.

Compared to similar skills

verifier side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
verifier (this skill)02moCautionIntermediate
contrib-pr-review125dReviewIntermediate
ship-safe01moReviewBeginner
production-code-audit16moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry