Multi-agent collaboration plugin that spawns N parallel subagents competing on the same task via git worktree isolation. Agents work independently, results are evaluated by metric or LLM judge, and the best branch is merged. Use when: user wants multiple approaches tried in parallel — code optimization, content variation, research exploration, or any task that benefits from parallel competition. Requires: a git repo.
Spawn N parallel AI agents that compete on the same task. Each agent works in an isolated git worktree. The coordinator evaluates results and merges the winner.
| Command | Description |
|---|---|
/hub:init | Create a new collaboration session — task, agent count, eval criteria |
/hub:spawn | Launch N parallel subagents in isolated worktrees |
/hub:status | Show DAG state, agent progress, branch status |
/hub:eval | Rank agent results by metric or LLM judge |
/hub:merge | Merge winning branch, archive losers |
/hub:board | Read/write the agent message board |
/hub:run | One-shot lifecycle: init → baseline → spawn → eval → merge |
When spawning with --template, agents follow a predefined iteration pattern:
| Template | Pattern | Use Case |
|---|---|---|
optimizer | Edit → eval → keep/discard → repeat x10 | Performance, latency, size |
refactorer | Restructure → test → iterate until green | Code quality, tech debt |
test-writer | Write tests → measure coverage → repeat | Test coverage gaps |
bug-fixer | Reproduce → diagnose → fix → verify | Bug fix approaches |
Templates are defined in references/agent-templates.md.
Trigger phrases:
The main Claude Code session is the coordinator. It follows this lifecycle:
INIT → DISPATCH → MONITOR → EVALUATE → MERGE
Run /hub:init to create a session. This generates:
.agenthub/sessions/{session-id}/config.yaml — task config.agenthub/sessions/{session-id}/state.json — state machine.agenthub/board/ — message board channelsRun /hub:spawn to launch agents. For each agent 1..N:
.agenthub/board/dispatch/isolation: "worktree"Run /hub:status to check progress:
dag_analyzer.py --status --session {id} shows branch stateprogress/ channel has agent updatesRun /hub:eval to rank results:
Run /hub:merge to finalize:
git merge --no-ff winner into base branchgit tag hub/archive/{session}/agent-{i}Each subagent receives this prompt pattern:
You are agent-{i} in hub session {session-id}.
Your task: {task description}
Instructions:
1. Read your assignment at .agenthub/board/dispatch/{seq}-agent-{i}.md
2. Work in your worktree — make changes, run tests, iterate
3. Commit all changes with descriptive messages
4. Write your result summary to .agenthub/board/results/agent-{i}-result.md
5. Exit when done
Agents do NOT see each other's work. They do NOT communicate with each other. They only write to the board for the coordinator to read.
hub/{session-id}/agent-{N}/attempt-{M}
YYYYMMDD-HHMMSS)Frontier = branch tips with no child branches. Equivalent to AgentHub's "leaves" query.
python scripts/dag_analyzer.py --frontier --session {id}
The DAG is append-only:
Location: .agenthub/board/
| Channel | Writer | Reader | Purpose |
|---|---|---|---|
dispatch/ | Coordinator | Agents | Task assignments |
progress/ | Agents | Coordinator | Status updates |
results/ | Agents + Coordinator | All | Final results + merge summary |
---