# 🔗 Связываем AI-агентов: безопасный коммит одной командой — 18 июля 2026 г. в 06:13:00.715
# 🔗 Связываем AI-агентов: безопасный коммит одной командой В прошлых постах мы собрали двух специалистов: • `reviewer` проверяет изменения, но не может редактировать код; • `committer` оформляет Conventional Commit после подтверждения. Пока они работают отдельно. Сегодня объединим их в один workflow: ```text reviewer → проверка → committer → подтверждение → commit ``` Запускаться вся цепочка будет одной командой: ```text /safe-commit ``` --- ## 🎯 Что должно происходить 1. Reviewer анализирует staged и unstaged изменения. 2. Если найден P0 или P1 — процесс останавливается. 3. Замечания P2 и P3 показываются пользователю. 4. Только после успешного review запускается committer. 5. Коммит создаётся после подтверждения. 6. `git push` не выполняется никогда. Но кто будет управлять этой цепочкой? Создадим третьего агента — координатора. --- ## 🔧 Шаг 1. Превращаем committer в субагента Чтобы другой агент мог вызвать коммиттера через инструмент Task, измените одну строку в `.opencode/agents/committer.md`: ```yaml mode: subagent ``` Reviewer из предыдущей статьи уже использует этот режим. --- ## 🎛 Шаг 2. Создаём координатора Добавьте файл `.opencode/agents/workflow.md`: ```md --- description: Координирует проверку изменений и создание безопасного коммита mode: primary permission: edit: deny bash: deny external_directory: deny webfetch: deny task: "*": deny reviewer: allow committer: allow --- Ты управляешь безопасным процессом создания коммита. 1. Сначала вызови субагента reviewer. 2. Передай ему задачу проверить staged и unstaged изменения. 3. Если reviewer нашёл P0 или P1 — останови процесс и покажи замечания. 4. Если найдены P2 или P3 — покажи их и спроси, продолжать ли работу. 5. Если блокирующих проблем нет, вызови committer. 6. Передай committer результат review и попроси подготовить коммит. 7. Не обходи подтверждение пользователя. 8. Никогда не выполняй git push. ``` Обратите внимание на `permission.task`. Сначала правило `"*": deny` запрещает координатору вызывать любых субагентов. Затем мы явно разрешаем только `reviewer` и `committer`. В OpenCode действует последнее совпавшее правило, поэтому порядок здесь важен. Сам координатор не может изменять файлы или запускать shell-команды. Его единственная задача — управлять двумя специализированными агентами. --- ## ⚡ Шаг 3. Добавляем команду Создайте `.opencode/commands/safe-commit.md`: ```md --- description: Проверить изменения и создать безопасный коммит agent: workflow --- Запусти полный workflow безопасного коммита. Проверь изменения через reviewer и переходи к committer только при отсутствии блокирующих замечаний. ``` Имя файла становится именем команды — дополнительный код или плагин не нужен. --- ## 🚀 Проверяем Открываем OpenCode в проекте и вводим: ```text /safe-commit ``` Пример результата: ```text Review завершён. P0: нет P1: нет P2: 1 замечание — не проверяется пустой ответ API Продолжить создание коммита? ``` После подтверждения запускается committer: ```text Предлагаемый коммит: fix(api): handle empty upstream response Создать коммит? ``` --- ## 🛡 Что мы получили ✅ Reviewer не может исправлять собственные замечания ✅ Committer не запускается до завершения проверки ✅ Координатор не имеет доступа к коду и терминалу ✅ Доступны только два явно разрешённых субагента ✅ Опасные действия остаются под контролем пользователя > Хороший AI-workflow — это не один всесильный агент, а несколько ограниченных специалистов с понятной зоной ответственности. Теперь команда `/safe-commit` превращает проверку и оформление изменений в единый воспроизводимый процесс. В следующем посте добавим всей AI-команде общие знания о проекте через `AGENTS.md `: архитектуру, команды запуска и правила разработки. #AI #OpenCode #LLM #AIAgents #CodeReview #Git #DevTools

