no-mistakes CLI
Локальный шлюз перед git push: ревью, тесты, документация и линтер проходят в отдельной копии, и только после этого ветка уходит в удаленный репозиторий
- 8 914 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Агент конвейера читает весь дифф ветки, запускает тесты и линтер и сам вносит правки в код
- Шлюз отправляет ветку в удаленный репозиторий, открывает PR и использует защищенный force-push для починки CI
- Фоновый процесс постоянно работает как служба системы и хранит запуски в локальной базе
Установка
- Работает в
Ручная установка
curl -fsSL https://raw.githubusercontent.com/kunchenguid/no-mistakes/main/docs/install.sh | shДля macOS и Linux. Бинарник ставится в ~/.no-mistakes/bin, а фоновый процесс запускается сразу. Для Windows есть install.ps1, для Go команда go install, для Nix сборка из flake.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Агент конвейера читает весь дифф ветки, запускает тесты и линтер и сам вносит правки в код
- Шлюз отправляет ветку в удаленный репозиторий, открывает PR и использует защищенный force-push для починки CI
- Фоновый процесс постоянно работает как служба системы и хранит запуски в локальной базе
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
no-mistakes ставит между вами и удаленным репозиторием локальный git-прокси. Команда `no-mistakes init` в репозитории создает шлюз в `~/.no-mistakes/repos/` вне папки проекта, добавляет git-ремоут `no-mistakes` и ставит скилл `/no-mistakes` для агентов на уровне пользователя. Вместо `git push origin` вы выполняете `git push no-mistakes`: хук передает ветку фоновому процессу и сразу возвращает управление, а проверка идет в отдельной временной рабочей копии, не мешая вашей работе. Конвейер состоит из девяти шагов: `intent`, `rebase`, `review`, `test`, `document`, `lint`, `push`, `pr`, `ci`. Ревью, поиск и запуск тестов, правку документации и исправления выполняет настроенный агент: Claude, Codex, Grok Build, Antigravity, Rovo Dev, OpenCode, Pi или Copilot, а Cursor и Devin подключаются через `acpx`. Безопасные механические правки применяются сами, а то, что затрагивает замысел, остановится как замечание, где вы выбираете: принять, исправить или пропустить. Ветка уходит в удаленный репозиторий только после того, как зелеными стали все локальные шаги. Затем шлюз открывает PR и следит за CI, а при падении CI пытается починить его. Есть три способа запуска. `git push no-mistakes` отправляет закоммиченную ветку. Просто `no-mistakes` открывает интерфейс в терминале: он предложит создать ветку, коммит и отправку, а с флагом `-y` сделает это сам. Команда `/no-mistakes <задача>` в агенте поручает ему выполнить задачу и пропустить результат через шлюз; под капотом скилл вызывает `no-mistakes axi`.
Для кого. Для разработчиков, которые отправляют изменения агентом и хотят автоматически проверять ветку перед тем, как она попадет в общий репозиторий.
Подходит, если
- Агент пишет много кода, и нужен обязательный проход ревью, тестов и линтера до отправки
- Вы устали вручную писать описание PR и ждать CI, а потом чинить его падения
- Нужно поручить агенту задачу и получить результат, который уже прошел проверку
- Вы вносите вклад в чужой репозиторий с форка и хотите открывать PR против родителя с проверенной веткой
- В команде хотят требовать, чтобы PR проходили через шлюз: для этого в репозитории есть действие GitHub `require-no-mistakes`
Не подходит, если
- Нет ни одного поддерживаемого агента в командной строке: каждый запуск шлюза требует настроенный агент конвейера
- Нужна проверка без отправки данных агенту: ревью, тесты и правки выполняет модель, и код ветки попадает к ее провайдеру
- Нужен только быстрый хук pre-commit: шлюз запускает полный конвейер из девяти шагов, это дольше обычного хука
- Нужен только разбор готового PR без отправки ветки: для этого ближе open-code-review
Пример запроса к агенту
/no-mistakes добавь в проект проверку формата телефона на форме заказа и пропусти изменения через шлюзОграничения
Лицензия MIT. Работает на macOS, Linux и Windows; сборка Nix покрывает x86_64-linux, aarch64-linux и aarch64-darwin, Intel macOS в нее не входит.
- Установка запускает фоновый процесс: на macOS это служба launchd, на Linux пользовательская служба systemd, на Windows задача Планировщика, при невозможности такого пути процесс запускается отдельно.
- Официальные сборки отправляют телеметрию на сервер Umami автора: имена команд, статусы, длительности и счетчики. Запросы к агенту, диффы, пути и имена веток в нее не попадают. Отключается переменной `NO_MISTAKES_TELEMETRY=0`, а сборка через `go install` по умолчанию не отправляет ничего.
- Скрипт установки создает ссылку в `/usr/local/bin` через `sudo`, если `~/.local/bin` нет в `PATH`.
- Ограничение рабочей копии держится на инструкциях агенту, а не на изоляции процесса: документация сама называет это подсказкой.
- Команды теста и линтера агент подбирает сам, пока вы не задали `commands.test` и `commands.lint` в `.no-mistakes.yaml`.
Как отключить. Команда `no-mistakes eject` в репозитории убирает ремоут `no-mistakes`, удаляет шлюз, рабочие копии и запись в базе. Фоновый процесс останавливает `no-mistakes daemon stop`, а его службу удаляет `no-mistakes daemon uninstall`.
Частые вопросы
Что значит, что ветка прошла шлюз?
Ветку сверили со свежим удаленным репозиторием, до отправки прошли ревью, тесты, правка документации и линтер, а все проверки, заявленные в репозитории, отработали. Перед отправкой шлюз убеждается, что не затрет чужие коммиты в целевой ветке.
Какие шаги можно пропустить?
Порядок девяти шагов менять нельзя, но запуск можно начать с флагом `--skip` и списком шагов через запятую. Репозиторий добавляет собственные проверки блоком `gates` в `.no-mistakes.yaml`, убрать или переставить ими основные шаги нельзя.
Что делать, если я работаю с форка на GitHub?
Оставьте `origin` указывающим на родительский репозиторий и выполните `no-mistakes init --fork-url <адрес вашего форка>`. Ветки будут уходить в форк, а PR открываться против `origin`.
Как проверить, что шлюз видит нужного агента?
Для этого есть команда `no-mistakes doctor`. По умолчанию значение `agent: auto` берет первый найденный в системе поддерживаемый агент, а упорядоченный список запасных можно задать в конфиге.
Что еще умеет утилита, кроме запуска конвейера?
`no-mistakes runs` и `no-mistakes status` показывают запуски, `no-mistakes rerun` повторяет их, `no-mistakes stats` печатает счетчики вызовов агента и токены из локальной базы, а `no-mistakes eval` прогоняет оценочные сценарии. `no-mistakes ci-workflow` создает файл рабочего процесса GitHub Actions.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыprek — скилл для агентов
prek skill
Скилл prek учит агента настраивать Git-хуки на prek, Rust-замене pre-commit: конфиг, шимы, приоритеты, встроенные хуки и монорепозитории
Драйвер слияния Git и MCP-сервер: сравнивает функции и классы и снимает ложные конфликты от параллельных правок агентов
CLI для git worktree, заточенный под параллельные сессии Claude Code и Codex: команда wt, плагин и хуки автоматизации
Обертка над GitHub CLI для агентов: компактный вывод TOON, подсказки следующего шага и структурные ошибки для issues, PR, CI и релизов
GitLab MCP на 86 инструментов: задачи, запросы на слияние, пайплайны, вики и файлы, режим только для чтения, локальный и удаленный запуск
Библиотека паттернов и скиллов для регулярных агентских циклов: разбор issue, чистка зависимостей, сопровождение PR
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| no-mistakes (эта запись) | нет | 8 914 | |
| open-code-review | нет | 47 758 | читает git diff и пишет замечания по строкам, сам ветку не отправляет и PR не открывает |
| PR Lens | нет | 2 159 | рисует схему архитектуры и потоков данных в описании PR, проверок и тестов не запускает |
Коротко о README
Описание на английском и китайском. Оно начинается с идеи шлюза и списка свойств: фоновая работа, независимость от агента, скилл для агента, решение за человеком. Дальше схема конвейера, абзац о том, как шлюз чинит CI и когда повторяет ревью, установка одной командой, пример первого запуска с выводом `init` и описание трех способов запуска. Подробная документация вынесена на сайт проекта, а в репозитории лежат исходный код на Go, тесты, замеры скорости в `benchmarks/`, документы `VISION.md` и `CONTRIBUTING.md` и собственный конфиг шлюза `.no-mistakes.yaml`.