verifier
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.zipInstalls 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. Для верификации, проверки перед мержем, инспекции кода, проверки роута.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
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 verdict | Commit, 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 runpasses
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
- Сбор контекста:
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. - Чтение контекста — утверждённые AC, изменённые файлы, task description
- Проверка — прогон чеков соответствующего tier. Каждый: PASS/FAIL/BLOCKED/UNVERIFIED
- Вердикт — READY или BLOCKED. BLOCKED = конкретный чек + evidence
- Доклад — структурированный вердикт с 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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| verifier (this skill) | 0 | 2mo | Caution | Intermediate |
| contrib-pr-review | 1 | 25d | Review | Intermediate |
| ship-safe | 0 | 1mo | Review | Beginner |
| production-code-audit | 1 | 6mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
contrib-pr-review
homeassistant-ai
Review a contribution PR for safety, quality, and readiness. Checks for security concerns, test coverage, size appropriateness, and intent alignment. Use when reviewing external contributions.
ship-safe
kinncj
Run ship-safe security and quality audit on the current project. Executes npx ship-safe audit . and reports findings by severity. Use before shipping any feature or PR.
production-code-audit
davila7
Autonomously deep-scan entire codebase line-by-line, understand architecture and patterns, then systematically transform it to production-grade, corporate-level professional quality with optimizations
tech-debt
vm0-ai
Technical debt management - scan codebase for bad smells and create tracking issues
audit-project
agent-sh
Use when user asks to 'review my code', 'audit the codebase', 'run code review', 'check for issues', 'find bugs', 'security review', 'performance review', or wants multi-agent iterative review. Spawns role-based reviewers (code-quality-reviewer, security-expert, performance-engineer, test-quality-gu
code-audit
mei28
Automated code review tool that analyzes code quality, detects bugs, identifies security vulnerabilities, and suggests improvements based on industry best practices