Symphony linear orchestrator
Skill jvogan/symphony-linear-starter/skills/symphony-linear-orchestrator
Bootstrap self-improving Symphony + Linear orchestration for a software repository. Use when Codex needs to inspect a repo, review or generate repo-local guidance, shape Linear issues, render a Symphony workflow, launch a high-leverage first execution wave, or run an orchestrator-led review, recovery, and learnings loop that makes future runs better.From its SKILL.md
npx -y skills add jvogan/symphony-linear-starter --skill symphony-linear-orchestratorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 15 stars15 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.8 KB, as published. Nobody here has run it
Symphony + Linear Orchestrator
Use this skill to onboard a repository for Symphony workers coordinated by an orchestrator and tracked in Linear.
Roles
- The orchestrator inspects the repo, plans work, runs setup, and reviews results.
- Symphony dispatches workers.
- Workers execute bounded issues.
- Linear stores issue planning, dependencies, and review state.
Required workflow
- Inspect the target repo, current
AGENTS.md, and any security or privacy constraints that workers must respect. - Run
scripts/doctor.pyto confirm the local toolchain and auth state. - Run
scripts/bootstrap.pyto render onboarding artifacts into the target repo's.orchestration/directory. Choose a lane deliberately, keep the first run conservative, and set workspace assertions that would catch a bad checkout quickly. - Merge the generated
AGENTS_ADDITIONS.mdcontent into the target repo manually. Do not let the script editAGENTS.mdfor you. - Create Linear issues using the contract in
references/linear-contract.mdor render them from structured JSON withscripts/issue_schema.py. - Run
scripts/preflight.pybefore starting any real run, then dispatch the wave: run your built Symphony binary against the rendered.orchestration/<name>.WORKFLOW.md(e.g.symphony .orchestration/wave1.WORKFLOW.md --logs-root .orchestration/logs/wave1; see the README quickstart and https://github.com/openai/symphony for build + exact flags). Symphony spawns one worker per active Linear issue. - Start with
max_concurrent_agents: 1by default. Raise concurrency only after the repo baseline, issue boundaries, and review loop are proven. - When multiple workflows share one Linear project, use explicit routing labels such as
sym:small,sym:medium,sym:large, andsym:content. - Keep the workflow's
campaignmetadata aligned with the worker prompt: the default mode isorchestrator-review, workers move completed issues toIn Review, and the orchestrator integrates before moving issues toDone. - Treat
In Reviewas the orchestrator gate. Review worker output, integrate the result, then move the issue toDone. - After each execution wave, update
.orchestration/RUNBOOK.mdand.orchestration/LEARNINGS.md, then promote stable learnings intoAGENTS.md, the issue template, or workflow defaults. - Use the optional Release Manager lane only after workers reliably attach PR URLs and mark issues with
release:ready. Keep it single-writer (max_concurrent_agents: 1) and dry-run it before using--apply. For high-volume parallel merges, verify a GitHub merge queue is enabled first (scripts/release_manager.py --check-merge-queue) so a burst of PRs batches instead of serializing, and re-run the lane to drain and finalize -- or render the scheduled GitHub Action sample (bootstrap.py --with-release-manager) to run that drain loop hands-off. Seereferences/release-manager-lane.md. - For autonomous, goal-directed running (deciding the next wave from a goal, not just executing one wave), use the optional goal loop. Render it with
bootstrap.py --with-goal-loop, init the budget ledger withscripts/goal_state.py --init, and have an orchestrator agent run the per-lap prompt (.orchestration/goal-loop.PROMPT.md). Every lap consultsscripts/goal_state.py, which returnscontinue/done/stuckfrom real Linear state plus hard budget caps -- obeystuckand never code around it. Default posture is gated (the orchestrator reviewsIn Reviewand owns the merge); it flips to auto (via the Release Manager lane) or a per-label mix. Seereferences/autonomous-goal-loop.mdandreferences/planner-lane.md.
Safety defaults
- Keep most work in
Backlog. - Activate only the first execution wave. Fill worker slots only after the workflow, issue contract, and review loop are behaving predictably.
- Do not auto-merge.
- Do not default to snapshot promotion or automatic PR creation.
- If enabling autonomous deploys, route them through the Release Manager lane; normal workers must not push, rebase, merge, or deploy
main. - Treat the autonomous goal loop as opt-in and capped. The budget ledger's caps (
max_laps,max_dispatched,max_planner_depth,max_wall_clock_minutes) are hard stops, and astuckverdict fromscripts/goal_state.pyalways stops the loop and escalates to a human -- never override it. Do not enable auto-merge in the loop without real validation gates (required status checks or a merge queue) on the base branch. Keep planner recursion shallow. - Do not introduce machine-specific background services into the target repo.
- Do not inherit the whole shell environment by default. Use an explicit Codex environment allowlist and add variables only when the workflow requires them.
- Do not put secrets, credentials, tokens, session cookies, personal data, or raw customer payloads into Linear issue bodies, workflow files, learnings, or worker comments.
- Treat anyone who can create or edit routed Linear issues as part of the trusted execution boundary.
- Prefer bootstrap assertions and no-progress guardrails over relying on operator intuition after a run has already gone wrong.
- Integrate validated worker output quickly so the dependency chain keeps moving.
- Do not leave repeated lessons trapped in chat or issue comments. Promote durable learnings into repo guidance.
Reference map
- Read
references/orchestrator-model.mdwhen you need the operating model and role boundaries. - Read
references/linear-contract.mdbefore writing issue bodies or dependency chains. - Read
references/symphony-workflow.mdbefore rendering or editing a workflow. - Read
references/release-manager-lane.mdbefore enabling autonomous PR merge/deploy flow. - Read
references/autonomous-goal-loop.mdbefore running the goal loop for autonomous, goal-directed work; it covers the convergence/budget spine, the three layers, and the safety requirements. - Read
references/planner-lane.mdbefore dispatching planners that shape the next wave; it covers the recursion fences. - Read
references/repo-onboarding.mdwhen reviewing the target repo'sAGENTS.mdand local guidance. - Read
references/recovery-playbook.mdwhen a worker stalls, clones the wrong branch, or drifts from validation. - Read
references/self-improvement-loop.mdafter each run when you need to convert operator observations into durable runbooks, learnings, and better defaults. - Read
references/example-prompts.mdwhen you want prompt patterns for Codex or Claude Code.