Files
claude-plugins/symphony/commands/symphony-tick.md

21 lines
1.1 KiB
Markdown
Raw Normal View History

---
description: Run one Symphony orchestrator tick. Reads WORKFLOW.md, polls the tracker, dispatches workers, reconciles state. Idempotent — safe to fire on a cron.
---
Invoke the `symphony` skill with no arguments. The skill owns the full tick:
1. Load `./WORKFLOW.md` (error → log and exit; do not fall through).
2. Read `.symphony/state.json` (create empty if missing).
3. Query the tracker for issues in `active_states`, minus issues already in `running` or
in retry-cooldown.
4. Reconcile: for each `running` entry, confirm via `TaskList` the worker is still alive
and the issue still in an active state; otherwise release.
5. Dispatch up to `max_concurrent_agents - len(running)` new workers via the `Agent` tool
with `subagent_type: symphony-worker`, one per issue. Pass the issue payload + rendered
prompt template. Run workers in the background (`run_in_background: true`) so the tick
returns promptly.
6. Persist state and exit.
This command is fired by a `/schedule` cron entry — the user sets up the cadence with
`/schedule` once; the skill enforces `polling.interval_ms` only as advisory metadata.