OpenAI Symphony
Skill by ara.so — Daily 2026 Skills collection.
Symphony turns project work into isolated, autonomous implementation runs, allowing teams to manage work instead of supervising coding agents. Instead of watching an agent code, you define tasks (e.g. in Linear), and Symphony spawns agents that complete them, provide proof of work (CI status, PR reviews, walkthrough videos), and land PRs autonomously.
What Symphony Does
- Monitors a work tracker (e.g. Linear) for tasks
- Spawns isolated agent runs per task (using Codex or similar)
- Each agent implements the task, opens a PR, and provides proof of work
- Engineers review outcomes, not agent sessions
- Works best in codebases using harness engineering
Installation Options
Option 1: Ask an agent to build it
Paste this prompt into Claude Code, Cursor, or Codex:
Option 2: Use the Elixir reference implementation
Follow elixir/README.md, or ask an agent:
Elixir Reference Implementation Setup
Requirements
- Elixir + Mix installed
- An OpenAI API key (for Codex agent)
- A Linear API key (if using Linear integration)
- A GitHub token (for PR operations)
Environment Variables
Install Dependencies
Configuration (elixir/config/config.exs)
Run Symphony
Core Concepts
Isolated Implementation Runs
Each task gets its own isolated run:
- Fresh git branch per task
- Agent operates only within that branch
- No shared state between runs
- Proof of work collected before PR merge
Proof of Work
Before a PR is accepted, Symphony collects:
- CI/CD pipeline status
- PR review feedback
- Complexity analysis
- (optionally) walkthrough videos
Key Elixir Modules & Patterns
Starting the Symphony supervisor
Defining a Task (Symphony Task struct)
Spawning an Agent Run
Linear Integration — Polling for Tasks
Linear API Client
Proof of Work Collection
Implementing the SPEC.md (Custom Implementation)
When building Symphony in another language, the spec defines:
- Task Source — poll Linear/GitHub/Jira for tasks in a specific state
- Agent Invocation — call Codex (or another agent) with task context
- Isolation — each run on a fresh branch, containerized if possible
- Proof of Work — CI, review, and analysis before merge
- Landing — auto-merge or present to engineer for approval
Minimal implementation loop in pseudocode:
Common Patterns
Limiting Concurrent Agent Runs
Manual Task Injection (No Linear)
Troubleshooting
Debug Mode
Resources
- SPEC.md — Full Symphony specification
- elixir/README.md — Elixir setup guide
- Harness Engineering — Prerequisite methodology
- Apache 2.0 License


