yes. bernstein run plan.yaml --auto-approve --quiet skips the interactive merge prompt and exits non-zero if any task ends up in the dead-letter queue, which makes it a normal failing ci step. pair it with --max-cost-usd to bound an unattended run. for the github app path, bernstein responds to /bernstein slash-commands in pr comments via src/bernstein/github_app/, and the autofix daemon (bernstein autofix) watches bernstein-opened prs, reads the ci log on failure, spawns an agent against the failing worktree, and pushes a fix commit. running inside ephemeral runners works (worktrees are local files); long-running orchestration is happier on a persistent box.
canonical answer