Перейти к основному содержимому

ADR 0204 — Автоматический режим разрешает push и PR

Статус​

Accepted. 2026-10-02 (AT-385; решение владельца от 02.10: "permitir sim o auto promove de todo e qualquer agente se o agente estiver no modo auto", подтверждённое как действующее в том числе для git push и открытия PR dev agents). Пересматривает, не редактируя их, ADR 0102 (абсолютный предел внешнего эффекта, RN-418) и RN-689 (тот же предел через типизированную дверь), лишь в половине push и PR. Сохраняет ADR 0167 и ADR 0189.

Контекст​

С RN-418 git push, открытие PR, deploy и sudo/doas были безусловным require_approval в decide(), даже при включённом автоматическом режиме; RN-689 распространила предел на типизированные действия git_push и pr_open. С автопилотом (ADR 0189) dev agent уже свободно работает внутри контейнера, и единственной точкой, где поток выполнения ещё останавливался по человеческому решению в автоматическом режиме, были push и PR каждой задачи.

Решение​

  1. При АВТОМАТИЧЕСКОМ РЕЖИМЕ агента — подстановочном знаке agent_autonomy actionType: "*", разрешённом в auto_approve (источник curinga), — типизированные git_push и pr_open, а также тот же эффект через команду терминала (git push, git remote add/set-url, gh pr create, glab mr create), выходят auto_approve, с причиной modo automático (RN-713) в proposed_action.created (RN-567).
  2. Разрешает ТОЛЬКО подстановочный знак. Конкретное правило auto_approve без подстановочного знака, "Sempre permitir" (по-прежнему отвергается в источнике для push/PR) и allow в permissions.json продолжают упираться в предел. Активация по-прежнему засевает лишь git_commit (RN-689).
  3. Остаются абсолютным пределом, даже в автоматическом режиме: merge (в защищённую ветку, через типизированное действие; и git merge/gh pr merge через терминал), deploy, sudo/doas, container_remove, instruction_patch и параллелизм.
  4. open_adr_pr/open_infra_pr уже следовали автоматическому режиму и продолжают.
  5. Возврат переключателя в ручной режим восстанавливает одобрение push и PR.

Последствия​

  • Dev agent в автоматическом режиме отправляет push и открывает PR без остановок; merge в dev остаётся ручным, поэтому код доходит до постоянной ветки лишь через человеческий клик.
  • Гарантией становится явное согласие на автоматический режим по агенту, а уже не предел. Цена объявлена: PR, открытая по ошибке, не запрашивает подтверждения, прежде чем появиться у provider.