review · juliusbrussee — скилл для Claude Code: разбор спеки до кода
Проводит враждебную ревизию спецификации до того, как написан код. Строит скептичного рецензента и пытается опровергнуть план, а не подписать его.
npx skills add JuliusBrussee/cavekit --skill review -a claude-codeЧто делает review
Скилл читает спеку целиком (§G §C §I §R §V §T) и собирает рецензента, чья власть опирается на кодовую базу, исследование §R и актуальные практики. Дальше он ищет, где план ломается: цель против реальной задачи, пропущенный инвариант, дрейф интерфейса, конфликт ограничений, неучтённый край. Каждая находка несёт доказательство — file:line или источник, а недоказуемые помечаются [unverified].
Находки делятся на BLOCK, HARDEN и NOTE. BLOCK означает, что сборка по этой спеке выпустит реальный дефект, и его надо закрыть первым. HARDEN превращается в черновик строки §V, которую передают скиллу spec. Прогон заканчивается явным гейтом GO или NO-GO — без пожимания плечами.
Скилл не пишет SPEC.md и не переписывает вашу цель: он укрепляет спеку, а не заменяет её. Для мелкой обратимой правки он не нужен — враждебная ревизия на опечатке выдумывает дефекты и жжёт бюджет. Запускать стоит перед /build на изменении с широким радиусом: общий модуль, авторизация, данные, деньги, публичный API.
Какие задачи решает
- поймать дыру в спеке до того, как она станет дефектом в проде
- проверить, что §I совпадает с ожиданиями вызывающего кода
- найти инвариант, который не ловит ни один §V
- развести два противоречащих пункта §C
- получить явный вердикт GO или NO-GO вместо «вроде норм»
Примеры запросов агенту
- проведи ревизию спеки перед сборкой, попробуй её опровергнуть
- сделай red-team этого плана: где он сломается?
- senior review спеки §I и §V, нужен вердикт go / no-go
Как установить review
1Через Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill review -a claude-code2Вручную: положить файлы
~/.claude/skills/review/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/review/
1Через Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill review -a codex2Вручную: положить файлы
.agents/skills/review/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill review -a cursor2Вручную: положить файлы
.cursor/skills/review/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install JuliusBrussee/cavekit review2Вручную: положить файлы
.github/skills/review/SKILL.md1Через Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill review -a gemini-cli2Командой платформы
gemini skills install https://github.com/JuliusBrussee/cavekit --path skills/reviewВручную: положить файлы
.devin/skills/review/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill review -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора9
Другие версии review
Похожие
Рядом в теме «Код-ревью и рефакторинг»
Всё по теме «Код-ревью и рефакторинг» →Вопросы о review
Как установить review в Claude?
Выполните npx skills add JuliusBrussee/cavekit --skill review -a claude-code. Скилл окажется в ~/.claude/skills/review/SKILL.md.
Что делает review?
Проводит враждебную ревизию спецификации до написания кода. Строит скептичного рецензента и пытается опровергнуть план, а не одобрить его.
Когда стоит запускать review, а когда пропустить?
Перед /build на изменении с широким радиусом: общий модуль, авторизация, данные, деньги, публичный API. Для тривиальной обратимой правки ревизия не нужна — на опечатке она выдумывает дефекты.
Исходный текст
SKILL.md · MIT
--- name: review description: | Adversarial senior review of the spec before any code is written. Constructs a skeptical reviewer whose authority comes from the codebase, §R research, and live best-practice — then tries to REFUTE the spec, not rubber-stamp it. Every finding cites evidence (file:line or source); unverifiable ones are flagged. Survivors harden §V; the run ends in an explicit go / no-go gate. Triggers before building anything high-blast-radius, when the user says "review the spec", "red-team this", "is this plan sound", "senior review", or invokes /ck:review. --- # review — refute the spec before build **Every finding cites evidence — file:line or a source. No evidence → flag `[unverified]`. Default to refuted: a flaw you cannot prove is a flaw you note, not one you wave through.** An LLM cannot self-correct on its own judgment — left alone it drifts or degrades. Review fixes that the only way that works: a *separate* skeptic anchored to an *external oracle* — the code, §R, the test suite, the docs. "Looks good" is not a review. A refutation attempt is. ## WHEN TO REVIEW - Before `/build` on a high-blast-radius change (shared module, auth, data, money, public API). - Spec touched §I or §V that other code depends on. - Right-sizing says the cost of a wrong build > the cost of one review pass. Skip for a trivial, reversible, well-understood change. Adversarial review on a typo hallucinates flaws & wastes the budget — the self-critique paradox is real. ## PHASE 0 — CAPTURE Read the spec: §G §C §I §R §V §T. Hold the whole thing. You review the *spec*, not your memory of the conversation. ## PHASE 1 — CONSTRUCT THE SENIOR Build a reviewer with real authority, not a generic critic: - **Codebase** — grep/read the modules this spec touches. What patterns, what invariants already hold? - **§R** — what did research establish? A spec decision that contradicts §R is a finding. - **Live** — for any best-practice claim you are unsure of, fetch it. An out-of-date assumption is a flaw. A reviewer with no evidence is just an opinion. Earn the authority first. ## PHASE 2 — REFUTE Attack the spec on these axes. For each, try to find the case where it breaks: - **Goal vs reality** — does §G solve the actual problem, or a proxy? - **Missing invariant** — what can go wrong that no §V catches? (most findings live here) - **Interface drift** — does §I match what callers already expect? (cite the caller, file:line) - **Constraint conflict** — do two §C bullets contradict? does one fight §R? - **Unowned edge** — the input, ordering, failure, or concurrency case no §T covers. - **Altitude** — §T too vague to act on, or so granular it is just typing? ## PHASE 3 — CLASSIFY Each finding: `evidence → claim → severity`. - **BLOCK** — build on this spec ships a real defect. Must fix first. - **HARDEN** — add/sharpen a §V so the build cannot regress it. - **NOTE** — worth knowing, not blocking. No evidence? Down-rank to NOTE & tag `[unverified]`. ⊥ inflate a hunch to BLOCK. ## PHASE 4 — HARDEN §V & GATE - Each HARDEN finding → a draft §V line (testable, cites the §I/behavior it guards). Hand to **spec** to write. - End on an explicit gate: ``` ## review verdict BLOCK: 1 — §I.api shape ≠ caller src/client.ts:40. fix §I before build. HARDEN: 2 — drafted V8 (idempotent refund), V9 (tx around dual write). NOTE: 1 — §T4 vague, split before /build. gate: NO-GO until BLOCK cleared. then /build §T after spec writes V8,V9. ``` GO or NO-GO, never a shrug. Review is the checkpoint that stops a confident wrong build. ## BOUNDARIES - ⊥ write SPEC.md. Draft §V & hand to spec. - ⊥ pass a finding with no evidence as fact. Flag `[unverified]`. - ⊥ review trivia. Right-size or skip. - ⊥ rewrite the user's intent. You harden the spec, you do not replace its goal.
© JuliusBrussee · MIT · JuliusBrussee/cavekit