[BREAKGLASS] Symphony turns project work into isolated, autonomous implementation runs, allowing teams to manage work instead of supervising coding agents.
Go to file
Josh Lehman 7d3a2cdc06
feat(review): add PR intake mix task for Linear
Summary:
- Add `mix caclawphony.review` task for batch PR intake
- Fetch PR title/url via `gh pr view` per PR number
- Create Linear issues in MAR team Review state + Caclawphony project
- Print created Linear identifier and URL for each PR

Rationale:
- Provide a direct CLI for converting PR numbers into Linear review work
- Keep Linear GraphQL interactions aligned with existing client patterns

Tests:
- cd elixir && mix compile
- cd elixir && LINEAR_API_KEY=test mix caclawphony.review --help

Issue:
- caclawphony-432

Regeneration-Prompt: |
  Implement a new Mix task `mix caclawphony.review` that accepts one or
  more PR numbers and creates one Linear issue per PR for review intake.
  Preserve existing project behavior by reusing the repository's
  `SymphonyElixir.Linear.Client.graphql/3` helper instead of inventing a
  new HTTP client path.

  For each PR number, call GitHub CLI to fetch title exactly via
  `gh pr view <num> --json title -q .title` and gather the PR URL for the
  issue description. Build Linear issue titles as `PR #<num>: <title>`,
  include PR metadata in the description, and set `stateId` to Review and
  `projectId` to Caclawphony using the provided IDs.

  Determine the team ID dynamically by querying Linear for team key `MAR`
  before creating issues. Require `LINEAR_API_KEY` through existing config
  resolution, fail loudly on GraphQL errors or command failures, and print
  the created issue identifier for each PR.

Co-authored-by: Codex <codex@openai.com>
2026-03-05 00:40:10 -08:00
.codex 🎼 2026-03-04 09:29:11 -08:00
.github 🎼 2026-03-04 09:29:11 -08:00
.pebbles pb: close caclawphony-5fb (sandbox networking) 2026-03-05 00:24:47 -08:00
elixir feat(review): add PR intake mix task for Linear 2026-03-05 00:40:10 -08:00
LICENSE 🎼 2026-03-04 09:29:11 -08:00
NOTICE 🎼 2026-03-04 09:29:11 -08:00
PLAN.md Add PLAN.md and initialize pebbles with 8 issues 2026-03-05 00:24:23 -08:00
README.md 🎼 2026-03-04 09:29:11 -08:00
SPEC.md 🎼 2026-03-04 09:29:11 -08:00
WORKFLOW.md codex: switch to danger-full-access sandbox for network access 2026-03-05 00:24:47 -08:00

Symphony

Symphony turns project work into isolated, autonomous implementation runs, allowing teams to manage work instead of supervising coding agents.

Symphony demo video preview

In this demo video, Symphony monitors a Linear board for work and spawns agents to handle the tasks. The agents complete the tasks and provide proof of work: CI status, PR review feedback, complexity analysis, and walkthrough videos. When accepted, the agents land the PR safely. Engineers do not need to supervise Codex; they can manage the work at a higher level.

Warning

Symphony is a low-key engineering preview for testing in trusted environments.

Running Symphony

Requirements

Symphony works best in codebases that have adopted harness engineering. Symphony is the next step -- moving from managing coding agents to managing work that needs to get done.

Option 1. Make your own

Tell your favorite coding agent to build Symphony in a programming language of your choice:

Implement Symphony according to the following spec: https://github.com/openai/symphony/blob/main/SPEC.md

Option 2. Use our experimental reference implementation

Check out elixir/README.md for instructions on how to set up your environment and run the Elixir-based Symphony implementation. You can also ask your favorite coding agent to help with the setup:

Set up Symphony for my repository based on https://github.com/openai/symphony/blob/main/elixir/README.md


License

This project is licensed under the Apache License 2.0.