Sketch of a Claude Code port of openai/symphony — a daemon-style orchestrator that polls an issue tracker, dispatches isolated worker agents per issue, and reconciles state across ticks. Tracker-agnostic by design: the project's CLAUDE.md documents how to talk to whatever tracker is in use (GitHub Issues, Gitea, tracker CLI, Linear, etc.); the plugin reads those instructions rather than shipping per-tracker adapters. Includes: - /symphony-init for first-time setup (detects gh/gitea/tracker, writes the tracker section into project CLAUDE.md, drops WORKFLOW.md, offers to schedule the tick) - /symphony-tick fired by /schedule cron entries (idempotent, silent, never prompts) - per-issue worker agent in isolated worktrees - on-disk state in .symphony/state.json (survives cron cold starts) Known divergences from the spec are documented in the plugin CLAUDE.md (no streaming agent telemetry; no codex.* knobs; hooks run inside the worker rather than the orchestrator). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.9 KiB
1.9 KiB
tracker, polling, workspace, hooks, agent
| tracker | polling | workspace | hooks | agent | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
You are working on issue {{ issue.identifier }} — {{ issue.title }}.
{% if attempt %}This is retry attempt {{ attempt }}. Review prior worktree commits and pick up where the last attempt stopped.{% endif %}
Issue body
{{ issue.description }}
Labels
{{ issue.labels | join: ", " }}
Your job
- Implement the change on branch
{{ issue.branch_name | default: issue.identifier }}. - Add or update tests covering the new behavior. Run them.
- Commit referencing
{{ issue.identifier }}. - Push the branch and open a PR.
- Comment on the issue with the PR link, then transition the issue to a "review" state. Use the commands documented in this project's CLAUDE.md under the issue tracker section — the plugin does not know your tracker's quirks.
If you cannot finish in your turn budget, leave a status comment on the issue summarizing progress and stop. Do not transition state.