/polyphony
Multi-agent orchestration with container-isolated workspaces — each agent session runs in its own Docker container with independent git branches
Claude Code
$ npx -y skills add alinaqi/maggy --skill polyphony --agent claude-code
Codex
$ npx skills add alinaqi/maggy --skill polyphony -a codex -y
Cursor
$ npx skills add alinaqi/maggy --skill polyphony -a cursor -y
Gemini CLI
$ npx skills add alinaqi/maggy --skill polyphony -a gemini-cli -y
GitHub Copilot
$ npx skills add alinaqi/maggy --skill polyphony -a github-copilot -y
OpenCode
$ npx skills add alinaqi/maggy --skill polyphony -a opencode -y
Windsurf
$ npx skills add alinaqi/maggy --skill polyphony -a windsurf -y
SKILL.md
polyphony.SKILL.mdname: polyphony
description: Multi-agent orchestration with container-isolated workspaces — each agent session runs in its own Docker container with independent git branches
when-to-use: Always loaded when container isolation is available (Docker/OrbStack installed). Default for /spawn-team.
user-invocable: false
effort: high
Polyphony — Multi-Agent Orchestration
Container-isolated workspaces for parallel agent execution. Each agent gets its own Docker container with a full git clone on its own branch. No conflicts, independent tests, clean PRs.
---
Architecture (6 Layers)
1. **Work Source** — Tasks from GitHub Issues (`gh api`) or local SQLite queue 2. **Orchestrator** — Supervisor loop: discover -> claim -> route -> provision -> run -> verify -> land 3. **Router** — Pure function: Task x Policy -> RunSpec (5-dimension complexity scoring) 4. **Identity Broker** — Resolves named credentials to volume mounts + env overlays 5. **Workspace Manager** — Per-task `git clone --reference`, branch checkout, cleanup 6. **Worker Runtime** — Docker container create/start/stop/logs lifecycle
---
Task Lifecycle
DISCOVERED -> CLAIMED -> ROUTED -> PROVISIONED -> RUNNING -> VERIFYING -> LANDED
| |
v v
FAILED --> BLOCKED
|
v
CLAIMED (retry)---
Prerequisites
- Docker or OrbStack installed and running
- At least one agent CLI available (Claude, Codex, or Kimi)
- CLI subscriptions configured (not API keys)
Check:
command -v docker &>/dev/null || command -v orbctl &>/dev/null
---
Configuration
All config lives in `~/.polyphony/`:
| File | Purpose | |------|---------| | `config.yaml` | Workspace root, poll interval, max concurrency | | `identities.yaml` | Named credential bundles with volume paths | | `agents.yaml` | Agent profiles (CLI commands, strengths) | | `routing.yaml` | Routing rules and fallback chains |
Initialize with: `polyphony init`
---
Routing Rules
Rules are evaluated top-down; first match wins. Each rule has a `match` predicate and an `agent` target.
rules:
- match: { task_type: docs, risk: low }
agent: kimi
- match: { task_type: bugfix }
agent: codex
- match: { risk: high }
agent: claude
default:
agent: claude
fallback: [codex, kimi]---
Complexity Scoring (5 Dimensions)
Each dimension scores 0-2. Total 0-10.
| Dimension | Source | |-----------|--------| | Cyclomatic depth | LOC + scope size | | Fan-out | Number of callers | | Security boundary | Auth/PII keywords | | Concurrency | Lock/transaction keywords | | Domain invariants | Risk level + task type |
Routing thresholds:
- **0-3**: Delegate to Kimi solo
- **4-6**: Kimi + Codex review
- **7-10**: Claude direct
---
Container Isolation
Each task gets:
- Its own Docker container from `polyphony-worker:latest`
- A full git clone at `/workspace` (not a worktree)
- Auth volumes mounted read-only (e.g., `~/.claude:/home/worker/.claude:ro`)
- Independent test execution
- Its own branch for PRs
---
CLI Commands
polyphony init # Create ~/.polyphony/ with config templates
polyphony spawn "Fix auth bug" # Create and route a task
polyphony status # Show task states
polyphony cleanup # Remove completed workspaces
---
Integration with Existing Skills
- **cross-agent-delegation**: Uses Polyphony's complexity scoring for routing decisions
- **agent-teams**: Uses Polyphony's workspace isolation instead of shared directories
- **spawn-team**: Uses Polyphony's container provisioning for feature agents
Read more
name: polyphony description: Multi-agent orchestration with container-isolated workspaces — each agent session runs in its own Docker container with independent git branches when-to-use: Always loaded when container isolation is available (Docker/OrbStack installed). Default for /spawn-team. user-invocable: false effort: high
Polyphony — Multi-Agent Orchestration
Container-isolated workspaces for parallel agent execution. Each agent gets its own Docker container with a full git clone on its own branch. No conflicts, independent tests, clean PRs.
---
Architecture (6 Layers)
1. **Work Source** — Tasks from GitHub Issues (`gh api`) or local SQLite queue 2. **Orchestrator** — Supervisor loop: discover -> claim -> route -> provision -> run -> verify -> land 3. **Router** — Pure function: Task x Policy -> RunSpec (5-dimension complexity scoring) 4. **Identity Broker** — Resolves named credentials to volume mounts + env overlays 5. **Workspace Manager** — Per-task `git clone --reference`, branch checkout, cleanup 6. **Worker Runtime** — Docker container create/start/stop/logs lifecycle
---
Task Lifecycle
DISCOVERED -> CLAIMED -> ROUTED -> PROVISIONED -> RUNNING -> VERIFYING -> LANDED
| |
v v
FAILED --> BLOCKED
|
v
CLAIMED (retry)---
Prerequisites
- Docker or OrbStack installed and running
- At least one agent CLI available (Claude, Codex, or Kimi)
- CLI subscriptions configured (not API keys)
Check:
command -v docker &>/dev/null || command -v orbctl &>/dev/null
---
Configuration
All config lives in `~/.polyphony/`:
| File | Purpose | |------|---------| | `config.yaml` | Workspace root, poll interval, max concurrency | | `identities.yaml` | Named credential bundles with volume paths | | `agents.yaml` | Agent profiles (CLI commands, strengths) | | `routing.yaml` | Routing rules and fallback chains |
Initialize with: `polyphony init`
---
Routing Rules
Rules are evaluated top-down; first match wins. Each rule has a `match` predicate and an `agent` target.
rules:
- match: { task_type: docs, risk: low }
agent: kimi
- match: { task_type: bugfix }
agent: codex
- match: { risk: high }
agent: claude
default:
agent: claude
fallback: [codex, kimi]---
Complexity Scoring (5 Dimensions)
Each dimension scores 0-2. Total 0-10.
| Dimension | Source | |-----------|--------| | Cyclomatic depth | LOC + scope size | | Fan-out | Number of callers | | Security boundary | Auth/PII keywords | | Concurrency | Lock/transaction keywords | | Domain invariants | Risk level + task type |
Routing thresholds:
- **0-3**: Delegate to Kimi solo
- **4-6**: Kimi + Codex review
- **7-10**: Claude direct
---
Container Isolation
Each task gets:
- Its own Docker container from `polyphony-worker:latest`
- A full git clone at `/workspace` (not a worktree)
- Auth volumes mounted read-only (e.g., `~/.claude:/home/worker/.claude:ro`)
- Independent test execution
- Its own branch for PRs
---
CLI Commands
polyphony init # Create ~/.polyphony/ with config templates polyphony spawn "Fix auth bug" # Create and route a task polyphony status # Show task states polyphony cleanup # Remove completed workspaces
---
Integration with Existing Skills
- **cross-agent-delegation**: Uses Polyphony's complexity scoring for routing decisions
- **agent-teams**: Uses Polyphony's workspace isolation instead of shared directories
- **spawn-team**: Uses Polyphony's container provisioning for feature agents
Turn Claude Code into a self-reviewing, test-enforced engineering system that remembers context across sessions — then route work across 13 models from a single dashboard.
Other skills on maggy.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about polyphony.
- Which coding agents can use polyphony?
- polyphony installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

