ClawPatch — CLI-инструмент для автоматического код-ревью, который разбивает репозиторий на семантические фичи (маршруты, команды, пакеты, тесты), ревьюит каждую через AI-провайдер и сохраняет находки с аудит-трейлом. В отличие от линтеров, анализирует не отдельные файлы, а функциональные срезы кодовой базы — с входными точками, связанными файлами и границами доверия.
Что это
ClawPatch — open-source CLI от команды OpenClaw (Peter Steinberger, создатель OpenClaw). Инструмент решает задачу, которую традиционные линтеры и файловые сканеры не покрывают: ревью кода в контексте фичи, а не отдельного файла.
Как это работает:
- clawpatch init — определяет тип проекта, пакетный менеджер, тестовые команды.
- clawpatch map — строит карту семантических фич: маршруты Next.js, Go-пакеты, Rust-крейты, Python-модули, SwiftPM-таргеты.
- clawpatch review — отправляет каждую фичу AI-провайдеру (сейчас Codex CLI) на ревью.
- Все находки сохраняются с категорией, серьёзностью, уверенностью и конкретными доказательствами.
- clawpatch fix —finding — патч для одной конкретной находки с валидацией.
Весь процесс — явный, без скрытых коммитов и автоматических мёржей. Лицензия — MIT.
Зачем нужно
- Получить код-ревью не по файлам, а по фичам — AI видит entrypoints, owned files, тесты и trust boundaries одновременно.
- Структурировать находки: категория (bug / security / performance / docs-gap / test-gap / maintainability), серьёзность (critical → low), уровень уверенности.
- Патчить по одной находке за раз с валидацией (typecheck, lint, format, тесты) — без скрытых коммитов.
- Масштабировать ревью на mono-repo: семантическая карта разбивает большой репозиторий на управляемые единицы.
- Сохранять персистентное состояние в .clawpatch/ — можно остановить и продолжить в любой момент.
Как устроено
Основные возможности
| Возможность | Что делает |
|---|---|
| Семантический маппинг | Разбивает кодовую базу на feature records: маршруты, команды, пакеты, бины, тесты. Каждый record содержит входные точки, связанные файлы и контекст. |
| AI-ревью по контексту | Ревьюит не файлы, а фичи целиком — AI видит entrypoints, owned files, тесты и trust boundaries одновременно. |
| Категоризация находок | Категория (bug, security, performance, docs-gap, test-gap, maintainability), серьёзность (critical → low), уровень уверенности. |
| Явный патчинг | Фикс по одной находке через fix —finding. Включает валидацию: typecheck, lint, format, тесты. Никаких скрытых коммитов. |
| Персистентное состояние | Все раны, фичи, находки, патч-попытки сохраняются в .clawpatch/. Можно остановить и продолжить в любой момент. |
| Триаж находок | Статусы: open, fixed, wont-fix, false-positive, uncertain. Команда triage для управления и next для следующей приоритетной. |
| Markdown-отчёты | Генерация отчётов по находкам с фильтрацией по серьёзности и статусу. JSON-вывод для CI/CD. |
| Ревалидация | Перепроверка находок после ручного фикса или обновления кодовой базы. |
Поддерживаемые языки и фреймворки
- Node.js / TypeScript — npm package bins, workspace scripts (start, build, test, lint, typecheck, format).
- Next.js — app/ и pages/ маршруты.
- Python — project metadata, console scripts, bounded source groups, pytest suites, Flask routes.
- Go — go list ./…, command packages, internal packages, тесты.
- Rust — src/main.rs, src/bin/*.rs, src/lib.rs, crates, integration tests.
- SwiftPM — Sources/* таргеты и Tests/* suites.
- Java / Kotlin — Gradle source groups, JVM semantic roles по аннотациям и интерфейсам.
- Конфиги — общие файлы конфигурации проекта.
AI-провайдеры
Сейчас ClawPatch поддерживает один production-провайдер — Codex CLI (локальный). Провайдер вызывается через codex exec со строгими JSON-схемами.
- codex — локальный Codex CLI (основной).
- mock — детерминированный тестовый провайдер.
- mock-fail — тестовый провайдер с ошибками.
Прямая интеграция с OpenAI, Claude, Gemini и другими провайдерами пока не реализована. Планируется в будущих версиях.
Когда использовать
Команды CLI
clawpatch init # Инициализация проекта, определение конфигурации
clawpatch map # Построение семантической карты фич
clawpatch status # Статус проекта, счётчики фич и находок
clawpatch review # Ревью фич, поиск проблем
clawpatch report # Генерация Markdown-отчёта
clawpatch next # Следующая приоритетная находка
clawpatch show --finding <id> # Детали находки с evidence
clawpatch triage --finding <id> # Разметка статуса находки
clawpatch fix --finding <id> # Патч одной находки
clawpatch revalidate # Перепроверка находок
clawpatch doctor # Проверка окружения
Параллельный ревью: clawpatch review —limit 10 —jobs 5 запустит до 5 параллельных ревью. Состояние сохраняется между запусками, так что можно ревьюить батчами.
Установка
# npm
npm install -g clawpatch
# pnpm
pnpm add -g clawpatch
# Из исходников
git clone https://github.com/openclaw/clawpatch.git
cd clawpatch
pnpm install
pnpm run build
pnpm link --global
Требования: Node.js 22+, Git 2.x, локальный Codex CLI.
Безопасность
ClawPatch построен с жёсткими гарантиями безопасности:
- Ревью не меняет файлы. Команда review работает в read-only режиме.
- Фикс — явный. Только через fix —finding, по одной находке за раз.
- Чистое дерево. По умолчанию блокирует фиксы на грязном worktree.
- Нет скрытых действий. Никогда не коммитит, не пушит, не открывает PR.
- Валидация схем. Все ответы провайдера проверяются через строгие JSON-схемы.
- Аудит-трейл. Все раны, находки и патч-попытки сохранены в .clawpatch/.
Пример
Типичный сценарий код-ревью перед релизом:
# Инициализировать в проекте
clawpatch init
# Построить карту фич
clawpatch map
# Прогнать ревью параллельно (5 воркеров)
clawpatch review --limit 50 --jobs 5
# Сгенерировать отчёт
clawpatch report > code-review.md
# Закрыть находки с фиксом
clawpatch fix --finding <id>
clawpatch fix --finding <id>
После крупного рефакторинга запускается ревью на затронутых фичах — ClawPatch видит контекст шире, чем линтер, и ловит регрессии, которые файловый сканер не заметил бы.
Контекст: как OpenClaw использует ClawPatch
Peter Steinberger (создатель OpenClaw) рассказывает, что команда постоянно запускает около 100 Codex-инстанций в облаке. ClawPatch используется для разбиения всех проектов на функциональные единицы и поиска багов и регрессий. Отдельно тот же подход применяется для security-аудита совместно с Vercel DeepSec и Codex Security.
Ограничения
| Ограничение | Пояснение |
|---|---|
| Только один production AI-провайдер — Codex CLI. | Прямая интеграция с OpenAI, Claude, Gemini пока не реализована. |
| Требует локально установленного Codex CLI и Node.js 22+ | без них инструмент не запустится. |
| По умолчанию блокирует фиксы на грязном worktree | нужно сначала закоммитить текущие изменения. |
| Состояние хранится в .clawpatch/ | для CI/CD нужна настройка персистентности между запусками. |
| AI-ревью не заменяет человеческий обзор архитектурных решений | только дополняет. |
Антипаттерны
| Антипаттерн | Почему опасно |
|---|---|
| Не делать — запускать clawpatch fix без предварительного review. | Сначала — разметка и приоритезация находок, потом — патч. |
| Не делать — фиксить находки с уверенностью low без ручной проверки. | Это зона, где AI чаще всего ошибается. |
| Не делать — пропускать clawpatch doctor перед первым запуском. | Без Codex CLI инструмент не работает, и это выяснится уже на review. |
| Не делать — коммитить .clawpatch/ в публичный репозиторий. | Это внутреннее состояние с находками и метаданными. |
Чеклист
| Проверка | Что сделать |
|---|---|
| ClawPatch установлен (npm/pnpm) или собран из исходников | тип проекта, пакетный менеджер, тестовые команды определены. |
| clawpatch map построил семантическую карту фич, статус показывает разумное число записей | typecheck, lint, format, тесты. |
| Состояние .clawpatch/ не коммитится в публичный репозиторий (добавлено в .gitignore) |