OpenAI just open-sourced Symphony, a spec for turning your issue tracker into an always-on orchestrator for coding agents. The idea is simple: stop babysitting individual Codex sessions and let agents pull work directly from tools like Linear. Each open issue gets its own agent workspace. If an agent crashes, Symphony restarts it. New tickets get picked up automatically. According to OpenAI's Alex Kotliarskyi, Victor Zhu, and Zach Brock, some internal teams saw a 500% jump in landed pull requests within three weeks.

The problem Symphony solves is real. Engineers at OpenAI found they could comfortably manage maybe three to five simultaneous Codex sessions before losing track of what was running where. They'd built what amounts to a team of capable junior engineers and then assigned humans to micromanage them. Symphony decouples work from interactive sessions entirely. Tickets can represent large units of work, like infrastructure migrations or multi-repo features. Agents analyze codebases and documentation, break work into dependency trees, and execute in parallel. A React upgrade won't start until a prerequisite Vite migration finishes.

Symphony takes a different approach from orchestration frameworks like LangGraph, AutoGen, or CrewAI. Instead of explicitly programmed workflows or conversational agent interactions, it uses your existing project management tool as the state machine. The ticket status drives everything. Agents can even file their own issues when they spot improvements outside their current scope, creating a loop where follow-up tasks get picked up by the orchestrator.

The tradeoff is real though. When you move from interactive steering to ticket-level assignment, you lose the ability to course-correct mid-flight. Sometimes agents produce work that completely misses the mark. OpenAI's response was to resist patching results manually and instead add guardrails and skills so agents succeed next time. The system also handles the tedious parts of landing code in large monorepos: CI watching, rebasing, conflict resolution, and flaky check retries. By the time a ticket reaches "Merging," it's already been shepherded through the pipeline without human intervention.