Автоматизируйте только стабильный и ограниченный 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 это и оформляет.
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.
Автоматизация настроена. Но чтобы понять, работает ли она, нужны правильные метрики - принятые изменения, а не количество ответов.