From phase-review
Adaptive post-implementation phase verification through fresh subagents with S/M/L sizing (bug-fix → feature → architecture). Multi-agent pipeline with strict role zoning: Spec + Architecture (параллель) → Quality + Security + Forward-Look (параллель) → Adversarial Skeptic → fix → Regression Sweep → final report. Auto-scales 2 → 7 агентов в зависимости от размера фазы, чтобы не жечь токены на тривиальных правках. USE WHEN: an implementation phase is done and needs validation before moving to the next phase. Trigger phrases (RU/EN): «ревью фазы», «проверь фазу», «валидация фазы», «проверь что написал», «фаза готова», «phase review», «review phase», «verify phase», «validate phase». NOT for: PR/diff review (use differential-review), generic code review (use code-review-skill). Includes built-in security audit, architecture invariants check, forward-look stress test, adversarial paranoia filter, and post-fix regression sweep — отдельный security-review запускать не нужно. Integrates as Шаг 7 (Review) внутри Bulletproof. Specifically for: post-phase verification in multi-phase implementation plans (MASTER-PLAN.md, bulletproof workflow, SPARC phases). Based on Superpowers methodology (obra/superpowers) + multi-agent zoning + adaptive sizing.
How this skill is triggered — by the user, by Claude, or both
Slash command
/phase-review:phase-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Один агент с историей сессии психологически некритичен к своему коду. Свежий
Один агент с историей сессии психологически некритичен к своему коду. Свежий субагент видит код так же, как его увидит следующий разработчик — без предположений «что я имел в виду».
Правило 1 — fresh subagents: все Reviewer'ы — это всегда свежие субагенты. Текущая сессия играет только роль оркестратора + исполнителя фиксов на Шаге 3.
Правило 2 — зонирование агентов: разные роли = разные агенты, чтобы глубина анализа была максимальной. Ни один агент не делает двух ролей сразу.
Правило 3 — adaptive sizing: S/M/L по размеру фазы. Bug-fix не должен прогонять полный 7-агентный pipeline — это перерасход. Архитектурное изменение должно — иначе пропустим инвариант. Размер определяется автоматически на Шаге 0.5; пользователь может override.
Порядок (полный, для L-размера):
Какие шаги пропускаются на S/M — см. Шаг 0.5 ниже.
Перед запуском ревью собери контекст:
1. ТЗ ФАЗЫ
Прочитай исходное ТЗ (CLAUDE.md, MASTER-PLAN.md или указанный файл).
Выведи одной строкой: что должна была сделать фаза.
2. ИЗМЕНЁННЫЕ ФАЙЛЫ
git diff --name-only HEAD~1 (или указанный диапазон).
git diff --shortstat — для оценки объёма.
3. КОМАНДА ТЕСТОВ
Если есть — зафиксируй.
4. PROJECT CONTEXT
- Приоритет фазы: ЗАПУСТИТЬ / ПРОДАТЬ / МАСШТАБИРОВАТЬ
- Объём в первый месяц: десятки / сотни / тысячи
- Стадия продукта: pre-MVP / MVP / production / scale
- Чувствительные участки в diff: auth, PII, платежи, ЭЦП,
файл-аплоад, raw SQL, внешние API, фоновые задачи
5. ФАЙЛ АРХИТЕКТУРНЫХ ИНВАРИАНТОВ
architecture/.../правила-нерушимые.md, ADR/, INVARIANTS.md.
Зафиксируй путь или отметь «нет».
6. ASSUMPTION LOG (заимствовано из Superpowers)
Запиши ключевые допущения, которые делал при реализации фазы:
«я предполагал, что X», «я считал, что Y не нужно».
Они передаются Skeptic'у для проверки.
Определяет S / M / L. От размера зависит, какие агенты запускаются и сколько токенов потратится.
S — SMALL (bug-fix, копипаста, правка текста):
условие: < 4 файлов И < 100 строк diff И нет sensitive-участков
триггер-слова: «фикс», «баг», «опечатка», «правка», «hotfix»
стоимость: 2-3 агента (~25-30% от L)
M — MEDIUM (фича, новый эндпоинт, рефакторинг):
условие: 4-15 файлов ИЛИ есть sensitive-участки ИЛИ
новый компонент/слой/таблица
триггер-слова: «фича», «новый функционал», «эндпоинт», «компонент»
стоимость: 4-6 агентов (~60-70% от L)
L — LARGE (архитектура, миграция, новый домен):
условие: > 15 файлов ИЛИ затронуты ≥3 модуля/слоя ИЛИ
миграция БД ИЛИ новый bounded context
триггер-слова: «архитектура», «миграция», «новый домен»,
«переписывание», «refactor across»
стоимость: 7 агентов (100%, при > 15 файлов — батчинг по 5-8)
Пользователь может задать явно:
/phase-review --size S (или M / L)Если в diff затронуты sensitive-участки (auth/PII/платежи/ЭЦП/файл-аплоад/ raw SQL без ORM), минимальный размер = M. S автоматически апгрейдится до M, чтобы security и forward-look не пропустить.
| Шаг | Роль | Агент | S | M | L |
|---|---|---|---|---|---|
| 1A | Spec Compliance | reviewer | ✓ | ✓ | ✓ |
| 1B | Architecture Invar. | system-architect | — | ✓¹ | ✓ |
| 2A | Code Quality | code-analyzer | ✓ | ✓ | ✓ |
| 2B | Security | security-auditor | ✓² | ✓ | ✓ |
| 2C | Forward Look | perf-analyzer | — | ✓ | ✓ |
| 2.5 | Adversarial Skeptic | analyst | — | ✓³ | ✓ |
| 3 | Fix application | session | ✓ | ✓ | ✓ |
| 3.5 | Regression Sweep | reviewer (fresh) | ✓⁴ | ✓⁵ | ✓ |
| 4 | Final report | session | ✓ | ✓ | ✓ |
¹ — только если файл инвариантов существует, иначе ARCH_SKIP без агента. ² — на S запускается только при sensitive-bump (см. выше). Иначе пропуск. ³ — на M пропускается, если суммарно < 5 находок (нечего фильтровать). ⁴ — на S запускается только если применено ≥ 3 фиксов или хотя бы один security-фикс. ⁵ — на M запускается, если применён хотя бы один фикс.
Если ничего не поправили — Шаг 3.5 пропускается на любом размере.
Запусти одним сообщением субагентов согласно матрице. На S — только 1A; на M/L — 1A + 1B параллельно.
reviewer)Ты — скептичный Spec Reviewer. Проверяешь, что реализация соответствует ТЗ.
Не доверяешь отчётам исполнителя — читаешь реальный код.
КОНТЕКСТ ФАЗЫ: [текст ТЗ]
ИЗМЕНЁННЫЕ ФАЙЛЫ: [список]
ASSUMPTION LOG ИСПОЛНИТЕЛЯ: [допущения из Шага 0.6]
Прочитай каждый файл. Проверь:
1. ПОКРЫТИЕ ТЗ — что не реализовано или реализовано частично?
2. OVER-BUILDING — что реализовано, чего в ТЗ не было?
3. ПРОТИВОРЕЧИЯ — где реализация делает не то, что в ТЗ?
4. ASSUMPTION CHECK — допущения исполнителя соответствуют ТЗ или
противоречат ему?
Формат:
[ФАЙЛ: путь, строка]
Тип: [НЕ РЕАЛИЗОВАНО / ЛИШНЕЕ / ПРОТИВОРЕЧИЕ / ОШИБОЧНОЕ ДОПУЩЕНИЕ]
Критичность: [БЛОКЕР / СРЕДНЕ / МЕЛКО]
Статус: SPEC_PASS / SPEC_WARN / SPEC_FAIL
system-architect, M/L only)Ты — Architecture Invariants Reviewer. Сверяешь только с инвариантами.
Это НЕ code review.
ФАЙЛ ИНВАРИАНТОВ: [путь]
ИЗМЕНЁННЫЕ ФАЙЛЫ: [список]
Извлеки правила (A-01, A-02, …). Для каждого изменённого файла —
проверь соблюдение каждого правила.
Формат:
[ПРАВИЛО: A-XX]
[ФАЙЛ: путь, строка]
Нарушение: [что]
Критичность: [БЛОКЕР / СРЕДНЕ / МЕЛКО]
Фикс: [как привести в соответствие]
Статус: ARCH_PASS / ARCH_FAIL / ARCH_WARN / ARCH_SKIP
Если SPEC_FAIL или ARCH_FAIL → фикс → повторить Шаг 1 целиком.
После прохождения Шага 1 — одним сообщением все профили согласно матрице. S: только 2A (+ 2B если sensitive-bump). M/L: 2A + 2B + 2C параллельно.
code-analyzer)Spec и Architecture проверены. Безопасность и forward-look — другие
агенты параллельно, не дублируй.
ИЗМЕНЁННЫЕ ФАЙЛЫ: [список]
СТЕК / СОГЛАШЕНИЯ: [из CLAUDE.md]
A — ЛОГИКА И БАГИ:
- Off-by-one, неверные операторы
- null / undefined / 0 / NaN / пустые коллекции
- async/await без обработки ошибок
- Неосмысленные ?? и || дефолты
- Возврат не того типа, что ожидает caller
B — СОВМЕСТИМОСТЬ С ПРОЕКТОМ:
- Конфликты имён, нарушения паттернов проекта
- Циклические зависимости, импорты несуществующего
- Несоответствия типов с другими частями
C — КРАЕВЫЕ СЛУЧАИ ЗДЕСЬ-И-СЕЙЧАС:
- Race conditions в одном запросе
- Внешний сервис вернул 500 — что сейчас?
- Memory leak в одной операции
Формат:
[ФАЙЛ: путь, строка][Категория: A/B/C]
Проблема, сценарий поломки, критичность, фикс.
Статус: QUALITY_PASS / QUALITY_FAIL
security-auditor, S при sensitive-bump, M/L всегда)ИЗМЕНЁННЫЕ ФАЙЛЫ: [список]
ЧУВСТВИТЕЛЬНЫЕ КОНТЕКСТЫ: [auth, PII, платежи, ЭЦП, …]
S1 — INJECTION / UNTRUSTED INPUT (SQL/XSS/cmd/path/SSRF/proto/deserialization)
S2 — AUTH / AUTHZ (отсутствие проверок, IDOR, JWT, привилегированные операции)
S3 — СЕКРЕТЫ И КРИПТО (hardcoded, MD5, IV, секреты в логах/bundle/responses)
S4 — DATA EXPOSURE / PII (поля в ответах, PII в логах, stack traces в prod)
S5 — DOS (rate limit, ReDoS, размер парсинга, циклы по user input)
S6 — DEPENDENCIES / SUPPLY CHAIN (CVE, абандонированные, URL-imports)
S7 — КОНТЕКСТНО-СПЕЦИФИЧНОЕ (webhook signature, ЭЦП цепочка, file upload AV/тип/размер,
webhook secret header, user-controlled в job payload)
Формат:
[ФАЙЛ: путь, строка][Раздел: S1..S7]
Класс уязвимости (CWE/OWASP), сценарий эксплуатации, критичность, фикс.
Статус: SECURITY_PASS / SECURITY_WARN / SECURITY_FAIL
perf-analyzer, M/L only)Spec, Quality, Security смотрят «работает ли сейчас». Ты — что сломается
под ростом и со временем.
ИЗМЕНЁННЫЕ ФАЙЛЫ: [список]
ТЕКУЩИЙ ОБЪЁМ: [десятки/сотни/тысячи]
ПРОФИЛЬ НАГРУЗКИ: [hot path / cold]
ОСЬ A — МАСШТАБ (×10 / ×100):
- N+1, отсутствие индексов, full scan
- O(n²) на user-controlled размере
- Нет пагинации/лимитов
- Синхронные внешние API в hot path
- Кеши без TTL / unbounded growth
ОСЬ B — ВРЕМЯ (через месяц):
- Логи/temp/кеши без ротации (диск)
- Connection / file handle leaks
- Stale data, протухающие кеши/токены
- Хардкоднутые даты, истекающие лимиты
- Сертификаты с истечением
- Schema drift после миграции
ОБЯЗАТЕЛЬНО ≥3 точки даже если блокеров нет.
Формат:
[ОСЬ: A/B][ФАЙЛ: путь, строка]
Точка слома, триггер, горизонт, критичность, митигация.
Статус: FORWARD_PASS / FORWARD_WARN / FORWARD_FAIL
Если QUALITY_FAIL / SECURITY_FAIL / FORWARD_FAIL → фикс → повторить Шаг 2.
analyst)Запускается на L всегда; на M — если суммарно ≥5 находок; на S — пропускается.
Ты — Adversarial Skeptic. Не пишешь новых находок. Фильтруешь
существующие через project context. Цель — отделить РЕАЛЬНЫЕ риски
от теоретических.
PROJECT CONTEXT:
- Приоритет: [ЗАПУСТИТЬ / ПРОДАТЬ / МАСШТАБИРОВАТЬ]
- Объём в первый месяц: [N]
- Стадия: [pre-MVP / MVP / production / scale]
- Чувствительные контексты: [список]
ASSUMPTION LOG ИСПОЛНИТЕЛЯ: [из Шага 0]
СПИСОК НАХОДОК: [мерж Quality/Security/Forward]
Для каждой находки:
1. РЕАЛЬНО — конкретный сценарий с привязкой к нашим объёмам и стадии.
2. ПАРАНОЯ — теоретически возможно, но при наших объёмах не критично.
Правила:
- «Теоретически может» без сценария на наших объёмах = ПАРАНОЯ.
- «Сломается в первый месяц при заявленной аудитории» = РЕАЛЬНО.
- Security CRITICAL/HIGH не может быть параноей — даже на 10 пользователях.
- Завышенная критичность — снижай. Заниженная — повышай.
Формат:
[№][источник][оригинальная критичность]
Вердикт: РЕАЛЬНО / ПАРАНОЯ
Сценарий или причина пропуска.
Финальная критичность.
Статус: SKEPTIC_DONE
ПАРАНОЯ-финдинги уходят в WARN-секцию отчёта, не в фиксы.
Применяй фиксы только по REAL финдингам.
Параноя — в отчёт, не в код.
Порядок:
SECURITY CRITICAL/HIGH (REAL) →
ARCH БЛОКЕР →
QUALITY КРИТИЧНО (REAL) →
FORWARD КРИТИЧНО (REAL) →
SECURITY MEDIUM →
QUALITY СРЕДНЕ →
FORWARD СРЕДНЕ
Правила:
- Одно изменение = одна проблема
- Запрещён рефакторинг и «пока уже здесь»
- Для security-фиксов — добавь негативный тест если есть тест-инфра
- Если при фиксе появилась новая проблема — она пройдёт через Шаг 3.5
- Если fixes = 0 — переходи сразу к Шагу 4 (Шаг 3.5 пропустится)
reviewer)Запускается:
Не делаешь полного ревью. Смотришь ТОЛЬКО diff фиксов.
DIFF ФИКСОВ: [git diff между «до» и «после»]
ИСХОДНЫЙ СПИСОК REAL: [для проверки, что закрыто]
Ищи:
1. ЧТО НОВОГО — оцени с нуля, под видом фикса могли затащить баг.
2. РЕГРЕССИИ В СОСЕДНЕМ КОДЕ — изменения задели вызывающих? Проверь
импорты и вызывающих функций.
3. ФИКТИВНЫЕ ФИКСЫ — закрыта ли исходная проблема, или косметика?
Формат:
[ФАЙЛ: путь, строка]
Тип: [НОВЫЙ БАГ / РЕГРЕССИЯ В СОСЕДНЕМ / ФИКТИВНЫЙ ФИКС]
Критичность: [КРИТИЧНО / СРЕДНЕ]
Статус: REGRESSION_PASS / REGRESSION_FAIL
REGRESSION_FAIL → фикс новых проблем → повторить Шаг 3.5.
Финальный отчёт фазы [НАЗВАНИЕ]:
РАЗМЕР: S / M / L (с обоснованием авто-детекции или пометкой override)
ГЕЙТЫ (только запущенные):
- Spec: [статус]
- Architecture: [статус или SKIPPED-по-размеру / ARCH_SKIP-нет-инвариантов]
- Quality: [статус]
- Security: [статус или SKIPPED-по-размеру]
- Forward: [статус или SKIPPED-по-размеру]
- Skeptic: [статус или SKIPPED-по-размеру]
- Regression: [статус или SKIPPED-нет-фиксов]
ИСПРАВЛЕНО (REAL):
- [категория] [проблема] — [что сделано] — [файл:строка]
ПАРАНОЯ (Шаг 2.5, если был):
- [проблема] — [почему теоретическая]
НЕ ИСПРАВЛЕНО (намеренно):
- [проблема] — [причина] — [когда вернуться]
WATCH-ТОЧКИ ИЗ FORWARD (если был):
- [точка] — [горизонт] — [когда мониторить]
ЗАТРОНУТЫЕ ФАЙЛЫ ВНЕ ИСХОДНОЙ ФАЗЫ:
- [файл] — [почему]
ГОТОВНОСТЬ К СЛЕДУЮЩЕЙ ФАЗЕ: ДА / НЕТ
Нельзя:
Зонирование агентов (фиксированное):
| Шаг | Роль | Агент | Запускается на |
|---|---|---|---|
| 1A | Spec | reviewer | S, M, L |
| 1B | Architecture | system-architect | M, L |
| 2A | Quality | code-analyzer | S, M, L |
| 2B | Security | security-auditor | S(если sens), M, L |
| 2C | Forward Look | perf-analyzer | M, L |
| 2.5 | Skeptic | analyst | M(если ≥5), L |
| 3 | Fix | session | S, M, L |
| 3.5 | Regression | reviewer (fresh) | условно (см. матрицу) |
| 4 | Final report | session | S, M, L |
Выбор модели:
Если фаза очень большая (> 15 файлов): Раздели на блоки по 5-8 связанных файлов. Прогони Шаги 1–3.5 для каждого блока отдельно. Шаг 4 — единый отчёт по всей фазе.
Phase-review предназначен встать внутри Bulletproof как Шаг 7 (Review), не заменять Bulletproof. Сопоставление размеров:
| Размер задачи | Bulletproof | phase-review | Что запускается |
|---|---|---|---|
| Bug-fix | S (6 этапов) | S | 2-3 агента, ~30% токенов от L |
| Feature | M (10 этапов) | M | 4-6 агентов, ~70% токенов от L |
| Architecture | L (12 этапов) | L | 7 агентов, 100% (с батчингом если > 15 файлов) |
Размер phase-review наследуется от размера Bulletproof по умолчанию. Override возможен в обе стороны — например, на критичную M-фичу с PII можно поставить L-ревью.
Когда phase-review может работать БЕЗ Bulletproof:
Когда Bulletproof нужен ВМЕСТО phase-review:
Намеренно НЕ заимствовано:
/phase-review.Если фаза делалась через Agent tool, исполнитель возвращает один из сигналов:
Скилл можно вызывать из StopHook — автозапуск при завершении фазы и передаче управления пользователю. На S-размере overhead минимален (~2-3 агента), поэтому автозапуск экономически оправдан даже для bug-fix'ов.
Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub tripinfinite-gif/claude-skill-phase-review --plugin phase-review