agentsclimarketplace

Symphony

Skill broomva/symphony/.agents/skills/symphony

Expert guidance for Symphony — the Rust orchestration engine for coding agents. Use when users ask about installing Symphony (cargo install, curl|bash, docker), initializing projects (symphony init), configuring WORKFLOW.md for Linear or GitHub trackers, running in daemon or one-shot mode, setting up the control metalayer (CONTROL.md, setpoints), configuring lifecycle hooks (after_create, before_run, after_run, pr_feedback), monitoring with HTTP dashboard and Prometheus /metrics, extending with new trackers, or troubleshooting agent/hook failures. Triggers on "symphony", "WORKFLOW.md", "coding agent orchestration", "issue tracker automation", "control metalayer", or "agent dispatch".From its SKILL.md

Install
npx -y skills add broomva/symphony --skill symphony

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

5 things to look at

  • skips confirmationTells the agent to proceed without asking first, 1 time: "claude --dangerously-skip-permissions".
  • reads credentialsReads from 4 credential sources: `LINEAR_API_KEY` and 3 more.
  • 9 stars9 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.
  • runs commandsInstructs the agent to run 6 commands, including `cargo install symphony-cli` and 5 more.
  • fetches URLsInstructs the agent to fetch 1 URL, including https://raw.githubusercontent.com/broomva/symphony/master/install.sh.

SKILL.md

5.0 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

Symphony

Rust orchestration engine that polls issue trackers (Linear, GitHub), creates isolated workspaces, and runs coding agents automatically.

Install

cargo install symphony-cli                # from source
curl -fsSL https://raw.githubusercontent.com/broomva/symphony/master/install.sh | sh  # binary
docker pull ghcr.io/broomva/symphony:latest  # container

Quick Start

symphony init                          # scaffold WORKFLOW.md (Linear default)
symphony init --tracker github          # GitHub Issues template
# Edit WORKFLOW.md — fill in project details, API key, repo
symphony validate WORKFLOW.md           # verify config
symphony start WORKFLOW.md              # run daemon

Commands

CommandPurpose
symphony init [--tracker github]Scaffold WORKFLOW.md
symphony start [WORKFLOW.md]Start daemon (polls tracker)
symphony run STI-123 --workflow-path WORKFLOW.mdOne-shot single issue
symphony statusQuery daemon state
symphony issuesList running + retrying
symphony issue STI-123Detail for one issue
symphony refreshTrigger immediate poll
symphony stopGraceful shutdown
symphony validate WORKFLOW.mdValidate config + template
symphony config WORKFLOW.mdShow resolved config
symphony logs [--follow] [--level LEVEL] [--since TIME]Tail daemon log file (filter by level/time)
symphony workspacesList workspace directories
symphony workspace STI-123 [--clean]Show/manage a workspace
symphony checkRun make smoke equivalent
symphony auditFull control audit
symphony test [--crate-name NAME]Run tests with filtering
symphony doctorPre-flight environment check

Flags: --port, --host, --token, --format json, --concurrency, --turns, --once, --tickets STI-1,STI-2

--format json is supported by: status, issues, workspaces, workspace, config.

WORKFLOW.md

YAML frontmatter (config) + Liquid template body (agent prompt). For complete reference: references/workflow-config.md.

Minimal example:

---
tracker:
  kind: linear              # or github
  api_key: $LINEAR_API_KEY
  project_slug: your-slug
codex:
  command: claude --dangerously-skip-permissions
---
Fix {{ issue.identifier }}: {{ issue.title }}
{{ issue.description }}

Agent Lifecycle

Poll tracker → fetch active issues → sort by priority → dispatch workers
    ├─ after_create hook (clone repo)
    ├─ before_run hook (rebase)
    ├─ render prompt + run agent (max_turns)
    ├─ after_run hook (commit, push, create PR)
    ├─ pr_feedback hook (capture review comments)
    ├─ done_state transition (auto-close issue)
    └─ retry (1s continuation / exponential backoff)

Control Metalayer

The control metalayer (CONTROL.md) grounds all development:

CHECK setpoints → IMPLEMENT → MEASURE (make smoke) → VERIFY → DOCUMENT → FEEDBACK

Set up: create CONTROL.md with setpoints, add sensors in Makefile, reference in agent prompt.

Extending

Implement TrackerClient trait (4 methods: fetch_candidate_issues, fetch_issues_by_states, fetch_issue_states_by_ids, set_issue_state). Register in create_tracker() factory.

Arcan Runtime

When runtime.kind: arcan is configured, Symphony dispatches work through the Arcan HTTP daemon instead of spawning local subprocesses.

runtime:
  kind: arcan
  base_url: http://localhost:3000    # Arcan daemon URL
  policy:
    allow_capabilities: [read, write, shell]
    gate_capabilities: [network]

Flow: health check (GET /health) → create session (POST /sessions) → execute run (POST /sessions/{id}/runs) → poll state until complete.

Arcan session IDs follow the pattern symphony-{issue_identifier}.

Key Environment Variables

VariablePurpose
LINEAR_API_KEYLinear API auth
GITHUB_TOKENGitHub API auth
ANTHROPIC_API_KEYClaude Code auth
SYMPHONY_API_TOKENSymphony HTTP API auth
SYMPHONY_PORTHTTP server port

Troubleshooting

See references/troubleshooting.md for auth failures, stuck retries, hook errors, missing PRs, and monitoring setup.

What ships with it: 3 files

9.7 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.