Глава 28

Автоматизируйте только стабильный и ограниченный workflow

Non-interactive agent не может дождаться нового approval или уточнения так же, как человек в terminal. Поэтому CI-задача должна иметь неизменяемый input, узкие права, stop conditions, machine-readable result и внешний gate.

Документированные точки входа у трёх продуктов различаются по режимам.

Продукт · Read или analysis automation · Изменяющий run

  • Codex - codex exec с read-only sandbox; codex exec --sandbox workspace-write в изолированном checkout
  • Claude Code - claude -p и ограниченный --allowedTools; Явно разрешенные tools, отдельная environment и deterministic gates
  • Cursor - agent -p, который без --force предлагает, но не применяет edits; agent -p --force или alias --yolo только в изолированной среде

Два безопасных паттерна покрывают большинство случаев. Read-only reviewer: CI передаёт diff, rules и test artifacts, агент возвращает findings, но не меняет checkout и не публикует их без отдельного шага. Patch producer: агент работает в disposable branch или VM, пишет только workspace, запускает checks и сохраняет patch artifact, а PR открывает отдельная доверенная job. Минимальный pipeline это и оформляет.

SQL
checkout untrusted change into isolated workspace
load reviewed project instructions
run agent with no production credentials
allow only repository writes and required network destinations
capture structured events and final diff
run deterministic typecheck, tests, security and policy gates
start independent read-only review
publish patch or PR only from a separate trusted step

Условия остановки для unattended run стоит задать заранее: потребовался новый secret или network destination, фактический write scope шире contract, baseline не воспроизводится, команда просит privileged access, output truncated или изменился lockfile без отдельного dependency task.

Не давайте агенту одновременно код и ключ выпуска. Job, которая анализирует недоверенный repository content, не должна иметь production deploy token. Разделите generation, verification и publication по разным identities. Exit code агента сообщает о завершении run, а не о корректности patch - её подтверждают ваши tests, policy checks, diff scope и independent review.

Автоматизация настроена. Но чтобы понять, работает ли она, нужны правильные метрики - принятые изменения, а не количество ответов.

Ссылки