Child of #53. Source: justrach/devswarm.
This child is the glue — the patterns DSP-1 needs and the observability surface that makes swarm runs debuggable.
Patterns to port
1. Orchestrator → Workers → Synthesizer
2. Task chain presets
Four chains, configurable, runnable via run_task:
finder_fixer — locate → fix
reviewer_fixer — verify → correct
explore_report — investigate → structured summary
architect_build — design → implement
3. Review-fix loop termination
- Reviewer returns
NO_ISSUES_FOUND → terminate.
- Iteration count hits
max_iter (default 5) → terminate with BAILED.
4. Role + mode routing config
.codegraff/swarm.toml with [roles.<role>] model = ... and [modes.<mode>] strategy = ....
- Per-call override via SDK / TUI command flags.
Telemetry (port from devswarm, opt-out by default? decide here)
DevSwarm collects (anonymous):
- Agent roles invoked
- Model names used
- Token counts (in/out per worker)
- Execution time, estimated cost
- Worker parallelism metrics
DevSwarm explicitly never collects:
- Code, diffs, file contents
- Prompts, task descriptions, outputs
- Repo names, file paths, branches
- PII
Opt-out: enabled = false in .devswarm/config.toml or DEVSWARM_TELEMETRY=false.
Open question for this issue: mirror this telemetry shape in codegraff, or fold it into the existing forge_tracker crate? Decide before implementation lands.
Acceptance criteria
Related codegraff issues
Child of #53. Source:
justrach/devswarm.This child is the glue — the patterns DSP-1 needs and the observability surface that makes swarm runs debuggable.
Patterns to port
1. Orchestrator → Workers → Synthesizer
2. Task chain presets
Four chains, configurable, runnable via
run_task:finder_fixer— locate → fixreviewer_fixer— verify → correctexplore_report— investigate → structured summaryarchitect_build— design → implement3. Review-fix loop termination
NO_ISSUES_FOUND→ terminate.max_iter(default 5) → terminate withBAILED.4. Role + mode routing config
.codegraff/swarm.tomlwith[roles.<role>] model = ...and[modes.<mode>] strategy = ....Telemetry (port from devswarm, opt-out by default? decide here)
DevSwarm collects (anonymous):
DevSwarm explicitly never collects:
Opt-out:
enabled = falsein.devswarm/config.tomlorDEVSWARM_TELEMETRY=false.Open question for this issue: mirror this telemetry shape in codegraff, or fold it into the existing
forge_trackercrate? Decide before implementation lands.Acceptance criteria
Related codegraff issues