moflo 4.8.21 → 4.8.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/browser/browser-agent.yaml +182 -182
- package/.claude/agents/core/coder.md +265 -265
- package/.claude/agents/core/planner.md +167 -167
- package/.claude/agents/core/researcher.md +189 -189
- package/.claude/agents/core/reviewer.md +325 -325
- package/.claude/agents/core/tester.md +318 -318
- package/.claude/agents/database-specialist.yaml +21 -21
- package/.claude/agents/dual-mode/codex-coordinator.md +224 -224
- package/.claude/agents/dual-mode/codex-worker.md +211 -211
- package/.claude/agents/dual-mode/dual-orchestrator.md +291 -291
- package/.claude/agents/github/code-review-swarm.md +537 -537
- package/.claude/agents/github/github-modes.md +172 -172
- package/.claude/agents/github/issue-tracker.md +318 -318
- package/.claude/agents/github/multi-repo-swarm.md +552 -552
- package/.claude/agents/github/pr-manager.md +190 -190
- package/.claude/agents/github/project-board-sync.md +508 -508
- package/.claude/agents/github/release-manager.md +366 -366
- package/.claude/agents/github/release-swarm.md +582 -582
- package/.claude/agents/github/repo-architect.md +397 -397
- package/.claude/agents/github/swarm-issue.md +572 -572
- package/.claude/agents/github/swarm-pr.md +427 -427
- package/.claude/agents/github/sync-coordinator.md +451 -451
- package/.claude/agents/github/workflow-automation.md +634 -634
- package/.claude/agents/goal/code-goal-planner.md +445 -445
- package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -129
- package/.claude/agents/hive-mind/queen-coordinator.md +202 -202
- package/.claude/agents/hive-mind/scout-explorer.md +241 -241
- package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -192
- package/.claude/agents/hive-mind/worker-specialist.md +216 -216
- package/.claude/agents/index.yaml +17 -17
- package/.claude/agents/neural/safla-neural.md +73 -73
- package/.claude/agents/project-coordinator.yaml +15 -15
- package/.claude/agents/python-specialist.yaml +21 -21
- package/.claude/agents/reasoning/goal-planner.md +72 -72
- package/.claude/agents/security-auditor.yaml +20 -20
- package/.claude/agents/swarm/adaptive-coordinator.md +395 -395
- package/.claude/agents/swarm/hierarchical-coordinator.md +326 -326
- package/.claude/agents/swarm/mesh-coordinator.md +391 -391
- package/.claude/agents/templates/migration-plan.md +745 -745
- package/.claude/agents/typescript-specialist.yaml +21 -21
- package/.claude/checkpoints/1767754460.json +8 -8
- package/.claude/commands/agents/agent-spawning.md +28 -28
- package/.claude/commands/github/github-modes.md +146 -146
- package/.claude/commands/github/github-swarm.md +121 -121
- package/.claude/commands/github/issue-tracker.md +291 -291
- package/.claude/commands/github/pr-manager.md +169 -169
- package/.claude/commands/github/release-manager.md +337 -337
- package/.claude/commands/github/repo-architect.md +366 -366
- package/.claude/commands/github/sync-coordinator.md +300 -300
- package/.claude/commands/memory/neural.md +47 -47
- package/.claude/commands/sparc/analyzer.md +51 -51
- package/.claude/commands/sparc/architect.md +53 -53
- package/.claude/commands/sparc/ask.md +97 -97
- package/.claude/commands/sparc/batch-executor.md +54 -54
- package/.claude/commands/sparc/code.md +89 -89
- package/.claude/commands/sparc/coder.md +54 -54
- package/.claude/commands/sparc/debug.md +83 -83
- package/.claude/commands/sparc/debugger.md +54 -54
- package/.claude/commands/sparc/designer.md +53 -53
- package/.claude/commands/sparc/devops.md +109 -109
- package/.claude/commands/sparc/docs-writer.md +80 -80
- package/.claude/commands/sparc/documenter.md +54 -54
- package/.claude/commands/sparc/innovator.md +54 -54
- package/.claude/commands/sparc/integration.md +83 -83
- package/.claude/commands/sparc/mcp.md +117 -117
- package/.claude/commands/sparc/memory-manager.md +54 -54
- package/.claude/commands/sparc/optimizer.md +54 -54
- package/.claude/commands/sparc/orchestrator.md +131 -131
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
- package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
- package/.claude/commands/sparc/researcher.md +54 -54
- package/.claude/commands/sparc/reviewer.md +54 -54
- package/.claude/commands/sparc/security-review.md +80 -80
- package/.claude/commands/sparc/sparc-modes.md +174 -174
- package/.claude/commands/sparc/sparc.md +111 -111
- package/.claude/commands/sparc/spec-pseudocode.md +80 -80
- package/.claude/commands/sparc/supabase-admin.md +348 -348
- package/.claude/commands/sparc/swarm-coordinator.md +54 -54
- package/.claude/commands/sparc/tdd.md +54 -54
- package/.claude/commands/sparc/tester.md +54 -54
- package/.claude/commands/sparc/tutorial.md +79 -79
- package/.claude/commands/sparc/workflow-manager.md +54 -54
- package/.claude/commands/sparc.md +166 -166
- package/.claude/commands/swarm/analysis.md +95 -95
- package/.claude/commands/swarm/development.md +96 -96
- package/.claude/commands/swarm/examples.md +168 -168
- package/.claude/commands/swarm/maintenance.md +102 -102
- package/.claude/commands/swarm/optimization.md +117 -117
- package/.claude/commands/swarm/research.md +136 -136
- package/.claude/commands/swarm/testing.md +131 -131
- package/.claude/commands/workflows/development.md +77 -77
- package/.claude/commands/workflows/research.md +62 -62
- package/.claude/guidance/moflo-bootstrap.md +126 -126
- package/.claude/guidance/shipped/agent-bootstrap.md +126 -126
- package/.claude/guidance/shipped/guidance-memory-strategy.md +262 -262
- package/.claude/guidance/shipped/memory-strategy.md +204 -204
- package/.claude/guidance/shipped/moflo.md +668 -653
- package/.claude/guidance/shipped/task-swarm-integration.md +441 -441
- package/.claude/helpers/intelligence.cjs +207 -207
- package/.claude/helpers/statusline.cjs +851 -851
- package/.claude/settings.local.json +18 -0
- package/.claude/skills/fl/SKILL.md +583 -583
- package/.claude/skills/flo/SKILL.md +583 -583
- package/.claude/skills/github-code-review/SKILL.md +1140 -1140
- package/.claude/skills/github-multi-repo/SKILL.md +874 -874
- package/.claude/skills/github-project-management/SKILL.md +1277 -1277
- package/.claude/skills/github-release-management/SKILL.md +1081 -1081
- package/.claude/skills/github-workflow-automation/SKILL.md +1065 -1065
- package/.claude/skills/hive-mind-advanced/SKILL.md +712 -712
- package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
- package/.claude/skills/performance-analysis/SKILL.md +563 -563
- package/.claude/skills/sparc-methodology/SKILL.md +1115 -1115
- package/.claude/skills/swarm-advanced/SKILL.md +973 -973
- package/.claude/workflow-state.json +4 -4
- package/LICENSE +21 -21
- package/README.md +698 -685
- package/bin/cli.js +0 -0
- package/bin/gate-hook.mjs +50 -50
- package/bin/gate.cjs +138 -138
- package/bin/generate-code-map.mjs +775 -775
- package/bin/hook-handler.cjs +83 -83
- package/bin/hooks.mjs +656 -656
- package/bin/index-guidance.mjs +892 -892
- package/bin/index-tests.mjs +709 -709
- package/bin/lib/process-manager.mjs +243 -243
- package/bin/lib/registry-cleanup.cjs +41 -41
- package/bin/prompt-hook.mjs +72 -72
- package/bin/semantic-search.mjs +472 -472
- package/bin/session-start-launcher.mjs +238 -238
- package/bin/setup-project.mjs +250 -250
- package/package.json +123 -123
- package/src/@claude-flow/cli/README.md +452 -452
- package/src/@claude-flow/cli/bin/cli.js +180 -180
- package/src/@claude-flow/cli/bin/preinstall.cjs +2 -2
- package/src/@claude-flow/cli/dist/src/commands/completions.js +409 -409
- package/src/@claude-flow/cli/dist/src/commands/doctor.js +18 -2
- package/src/@claude-flow/cli/dist/src/commands/embeddings.js +25 -25
- package/src/@claude-flow/cli/dist/src/commands/github.js +61 -61
- package/src/@claude-flow/cli/dist/src/commands/hive-mind.js +90 -90
- package/src/@claude-flow/cli/dist/src/commands/hooks.js +9 -9
- package/src/@claude-flow/cli/dist/src/commands/init.js +3 -8
- package/src/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
- package/src/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
- package/src/@claude-flow/cli/dist/src/config/moflo-config.d.ts +3 -0
- package/src/@claude-flow/cli/dist/src/config/moflo-config.js +101 -91
- package/src/@claude-flow/cli/dist/src/index.d.ts +5 -0
- package/src/@claude-flow/cli/dist/src/index.js +44 -0
- package/src/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +29 -29
- package/src/@claude-flow/cli/dist/src/init/claudemd-generator.js +43 -43
- package/src/@claude-flow/cli/dist/src/init/executor.js +453 -453
- package/src/@claude-flow/cli/dist/src/init/helpers-generator.js +482 -482
- package/src/@claude-flow/cli/dist/src/init/moflo-init.d.ts +30 -30
- package/src/@claude-flow/cli/dist/src/init/moflo-init.js +140 -140
- package/src/@claude-flow/cli/dist/src/init/statusline-generator.js +876 -876
- package/src/@claude-flow/cli/dist/src/memory/memory-initializer.js +371 -371
- package/src/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
- package/src/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +197 -0
- package/src/@claude-flow/cli/dist/src/services/container-worker-pool.js +584 -0
- package/src/@claude-flow/cli/dist/src/services/daemon-lock.d.ts +14 -0
- package/src/@claude-flow/cli/dist/src/services/daemon-lock.js +1 -1
- package/src/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
- package/src/@claude-flow/cli/package.json +1 -1
- package/src/@claude-flow/guidance/README.md +1195 -1195
- package/src/@claude-flow/guidance/package.json +198 -198
- package/src/@claude-flow/memory/README.md +587 -587
- package/src/@claude-flow/memory/dist/agentdb-backend.js +26 -26
- package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +27 -27
- package/src/@claude-flow/memory/dist/hybrid-backend.d.ts +245 -0
- package/src/@claude-flow/memory/dist/hybrid-backend.js +569 -0
- package/src/@claude-flow/memory/dist/hybrid-backend.test.d.ts +8 -0
- package/src/@claude-flow/memory/dist/hybrid-backend.test.js +320 -0
- package/src/@claude-flow/memory/dist/sqlite-backend.d.ts +121 -0
- package/src/@claude-flow/memory/dist/sqlite-backend.js +572 -0
- package/src/@claude-flow/memory/dist/sqljs-backend.js +26 -26
- package/src/@claude-flow/memory/package.json +44 -44
- package/src/@claude-flow/shared/README.md +323 -323
- package/src/@claude-flow/shared/dist/events/event-store.js +31 -31
- package/src/README.md +493 -493
|
@@ -1,441 +1,441 @@
|
|
|
1
|
-
# Task & Swarm Integration Pattern
|
|
2
|
-
|
|
3
|
-
**Purpose:** Integrate native Claude Code tasks with moflo swarm coordination for visible progress tracking and structured agent orchestration.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Architecture Overview
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
+-----------------------------------------------------------------+
|
|
11
|
-
| NATIVE TASKS (User-Visible Layer) |
|
|
12
|
-
| TaskCreate -> TaskList -> TaskUpdate -> TaskGet |
|
|
13
|
-
| Shows: what needs doing, status, dependencies, progress |
|
|
14
|
-
+-------------------------------+---------------------------------+
|
|
15
|
-
| coordinates
|
|
16
|
-
+-------------------------------v---------------------------------+
|
|
17
|
-
| MOFLO (Orchestration Layer) |
|
|
18
|
-
| Swarm/Hive-Mind spawns agents, routes tasks, coordinates |
|
|
19
|
-
| Memory stores patterns for cross-session learning |
|
|
20
|
-
+-----------------------------------------------------------------+
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
| Layer | System | Purpose |
|
|
24
|
-
|-------|--------|---------|
|
|
25
|
-
| **What** | Native Tasks | Track work items, dependencies, status, visible to user |
|
|
26
|
-
| **How** | Moflo | Agent coordination, memory, consensus, routing |
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Agent Role Icons
|
|
31
|
-
|
|
32
|
-
Use these icons in `subject` and `activeForm` when creating tasks so the user can visually identify which agent is doing what. This is required for all TaskCreate calls tied to agent work.
|
|
33
|
-
|
|
34
|
-
| Icon | Agent Role | activeForm Example |
|
|
35
|
-
|------|------------|-------------------|
|
|
36
|
-
| 🔍 | researcher | 🔍 Researching codebase |
|
|
37
|
-
| 🏗️ | system-architect | 🏗️ Designing architecture |
|
|
38
|
-
| 💻 | coder | 💻 Writing code |
|
|
39
|
-
| 🧪 | tester | 🧪 Writing tests |
|
|
40
|
-
| 👀 | reviewer | 👀 Reviewing code |
|
|
41
|
-
| 🛡️ | security-architect | 🛡️ Security audit |
|
|
42
|
-
| ⚡ | performance-engineer | ⚡ Optimizing performance |
|
|
43
|
-
| 📚 | api-docs | 📚 Documenting API |
|
|
44
|
-
| 📋 | planner | 📋 Planning tasks |
|
|
45
|
-
| 🤝 | consensus (hive-mind) | 🤝 Evaluating tradeoffs |
|
|
46
|
-
| 🔬 | analyzer | 🔬 Analyzing code |
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## Integration Protocol
|
|
51
|
-
|
|
52
|
-
### Step 0: Pre-Swarm Validation (Soft Check)
|
|
53
|
-
|
|
54
|
-
**Before initializing swarm/hive-mind, verify tasks exist for the current work:**
|
|
55
|
-
|
|
56
|
-
```javascript
|
|
57
|
-
TaskList() // Check current task state
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
| TaskList Result | Action |
|
|
61
|
-
|-----------------|--------|
|
|
62
|
-
| Empty | Create task list (Step 1) before proceeding |
|
|
63
|
-
| Has unrelated/stale tasks | Create new tasks for current work |
|
|
64
|
-
| Has relevant tasks for current work | Proceed to swarm init (Step 3) |
|
|
65
|
-
|
|
66
|
-
This is a **soft reminder**, not a hard blocker. The goal is user visibility into swarm progress.
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
### Step 1: Create Task List BEFORE Spawning Agents
|
|
71
|
-
|
|
72
|
-
When initializing swarm or hive-mind, create the task structure first:
|
|
73
|
-
|
|
74
|
-
```javascript
|
|
75
|
-
// 1. Create parent/coordinator task
|
|
76
|
-
TaskCreate({
|
|
77
|
-
subject: "Implement [feature/fix description]",
|
|
78
|
-
description: "Coordinating work for [task]. Subtasks track agent progress.",
|
|
79
|
-
activeForm: "Coordinating implementation"
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
// 2. Create subtasks for each agent role (in same message for parallel creation)
|
|
83
|
-
// Use role icons so the user can visually track agent progress at a glance.
|
|
84
|
-
TaskCreate({
|
|
85
|
-
subject: "🔍 Research requirements and codebase patterns",
|
|
86
|
-
description: "Researcher agent: Analyze requirements, find relevant code, document patterns.",
|
|
87
|
-
activeForm: "🔍 Researching codebase"
|
|
88
|
-
})
|
|
89
|
-
TaskCreate({
|
|
90
|
-
subject: "🏗️ Design implementation approach",
|
|
91
|
-
description: "Architect agent: Design solution, document decisions.",
|
|
92
|
-
activeForm: "🏗️ Designing architecture"
|
|
93
|
-
})
|
|
94
|
-
TaskCreate({
|
|
95
|
-
subject: "💻 Implement the solution",
|
|
96
|
-
description: "Coder agent: Write code following patterns and standards.",
|
|
97
|
-
activeForm: "💻 Writing code"
|
|
98
|
-
})
|
|
99
|
-
TaskCreate({
|
|
100
|
-
subject: "🧪 Write unit tests",
|
|
101
|
-
description: "Tester agent: Create tests that verify the implementation.",
|
|
102
|
-
activeForm: "🧪 Writing tests"
|
|
103
|
-
})
|
|
104
|
-
TaskCreate({
|
|
105
|
-
subject: "👀 Review code quality and security",
|
|
106
|
-
description: "Reviewer agent: Check for issues, security, best practices.",
|
|
107
|
-
activeForm: "👀 Reviewing code"
|
|
108
|
-
})
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Step 2: Set Up Dependencies
|
|
112
|
-
|
|
113
|
-
After creating tasks, establish the execution order:
|
|
114
|
-
|
|
115
|
-
```javascript
|
|
116
|
-
// Get task IDs from TaskList
|
|
117
|
-
TaskList()
|
|
118
|
-
|
|
119
|
-
// Set dependencies (research blocks architecture, architecture blocks coding, etc.)
|
|
120
|
-
TaskUpdate({ taskId: "2", addBlockedBy: ["1"] }) // Architect blocked by Researcher
|
|
121
|
-
TaskUpdate({ taskId: "3", addBlockedBy: ["2"] }) // Coder blocked by Architect
|
|
122
|
-
TaskUpdate({ taskId: "4", addBlockedBy: ["3"] }) // Tester blocked by Coder
|
|
123
|
-
TaskUpdate({ taskId: "5", addBlockedBy: ["3"] }) // Reviewer blocked by Coder
|
|
124
|
-
TaskUpdate({ taskId: "0", addBlockedBy: ["4", "5"] }) // Coordinator blocked by Tester & Reviewer
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Step 3: Initialize Moflo Coordination
|
|
128
|
-
|
|
129
|
-
**MCP (Preferred):**
|
|
130
|
-
- Swarm: `mcp__moflo__swarm_init` (`topology: "hierarchical", maxAgents: 8, strategy: "specialized"`)
|
|
131
|
-
- Hive-mind: `mcp__moflo__hive-mind_init` (`topology: "hierarchical-mesh", consensus: "byzantine"`)
|
|
132
|
-
|
|
133
|
-
**CLI Fallback:**
|
|
134
|
-
```bash
|
|
135
|
-
npx flo swarm init --topology hierarchical --max-agents 8 --strategy specialized
|
|
136
|
-
npx flo hive-mind init --topology hierarchical-mesh --consensus byzantine
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### Step 4: Spawn Agents with Task References
|
|
140
|
-
|
|
141
|
-
Include task IDs in agent prompts so they update status.
|
|
142
|
-
TaskCreate was already called in Step 1 — tasks are visible before agents spawn.
|
|
143
|
-
|
|
144
|
-
```javascript
|
|
145
|
-
// TaskCreate already done in Step 1 above
|
|
146
|
-
Task({
|
|
147
|
-
prompt: `FIRST: Search memory, then read .claude/guidance/agent-bootstrap.md
|
|
148
|
-
|
|
149
|
-
YOUR TASK (ID: 1): Research requirements and codebase patterns
|
|
150
|
-
- Analyze feature requirements
|
|
151
|
-
- Search codebase for relevant patterns
|
|
152
|
-
- Document findings in memory
|
|
153
|
-
|
|
154
|
-
WHEN STARTING: The coordinator has marked your task in_progress.
|
|
155
|
-
WHEN COMPLETE: Report findings. Coordinator will mark task completed.`,
|
|
156
|
-
subagent_type: "researcher",
|
|
157
|
-
description: "🔍 Research phase",
|
|
158
|
-
run_in_background: true
|
|
159
|
-
})
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### Step 5: Update Tasks as Agents Progress
|
|
163
|
-
|
|
164
|
-
The coordinator (Claude Code) updates task status based on agent activity:
|
|
165
|
-
|
|
166
|
-
```javascript
|
|
167
|
-
// When spawning an agent, mark its task in_progress
|
|
168
|
-
TaskUpdate({ taskId: "1", status: "in_progress" })
|
|
169
|
-
|
|
170
|
-
// When agent returns results, mark completed
|
|
171
|
-
TaskUpdate({ taskId: "1", status: "completed" })
|
|
172
|
-
|
|
173
|
-
// Check what's unblocked and proceed
|
|
174
|
-
TaskList() // Shows task 2 is now unblocked
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
## Task Templates by Work Type
|
|
180
|
-
|
|
181
|
-
### Bug Fix (4-5 tasks)
|
|
182
|
-
|
|
183
|
-
| Task | Agent | Dependencies |
|
|
184
|
-
|------|-------|--------------|
|
|
185
|
-
| 🔍 Investigate bug and root cause | researcher | - |
|
|
186
|
-
| 💻 Implement fix | coder | researcher |
|
|
187
|
-
| 🧪 Write regression tests | tester | coder |
|
|
188
|
-
| 👀 Review fix | reviewer | coder |
|
|
189
|
-
|
|
190
|
-
### Feature Implementation (5-6 tasks)
|
|
191
|
-
|
|
192
|
-
| Task | Agent | Dependencies |
|
|
193
|
-
|------|-------|--------------|
|
|
194
|
-
| 🔍 Research requirements | researcher | - |
|
|
195
|
-
| 🏗️ Design implementation | system-architect | researcher |
|
|
196
|
-
| 💻 Implement feature | coder | architect |
|
|
197
|
-
| 🧪 Write unit tests | tester | coder |
|
|
198
|
-
| 👀 Review code | reviewer | coder |
|
|
199
|
-
| 🧪 Integration testing | tester | reviewer |
|
|
200
|
-
|
|
201
|
-
### Architectural Decision (Hive-Mind) (3-4 tasks)
|
|
202
|
-
|
|
203
|
-
| Task | Agent | Dependencies |
|
|
204
|
-
|------|-------|--------------|
|
|
205
|
-
| 🔍 Analyze options | researcher | - |
|
|
206
|
-
| 🤝 Evaluate tradeoffs | multiple (consensus) | researcher |
|
|
207
|
-
| 📚 Document decision | api-docs | consensus |
|
|
208
|
-
| 📋 Create implementation plan | planner | decision |
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
## Coordinator Responsibilities
|
|
213
|
-
|
|
214
|
-
The coordinator (Claude Code main process) must:
|
|
215
|
-
|
|
216
|
-
1. **Create tasks before spawning agents** - Tasks provide the visible work breakdown
|
|
217
|
-
2. **Update status when agents start** - Mark `in_progress` when spawning
|
|
218
|
-
3. **Update status when agents complete** - Mark `completed` when results return
|
|
219
|
-
4. **Monitor dependencies** - Use `TaskList` to see what's unblocked
|
|
220
|
-
5. **Synthesize results** - Review all agent outputs before proceeding
|
|
221
|
-
6. **Store learnings** - After completion, store patterns in memory
|
|
222
|
-
|
|
223
|
-
---
|
|
224
|
-
|
|
225
|
-
## Example: Full Integration Flow
|
|
226
|
-
|
|
227
|
-
```javascript
|
|
228
|
-
// USER: Work on feature X with swarm
|
|
229
|
-
|
|
230
|
-
// STEP 1: Create task structure (role icons for visual tracking)
|
|
231
|
-
TaskCreate({ subject: "Implement feature X", description: "...", activeForm: "Coordinating" })
|
|
232
|
-
TaskCreate({ subject: "🔍 Research patterns", description: "...", activeForm: "🔍 Researching" })
|
|
233
|
-
TaskCreate({ subject: "💻 Implement solution", description: "...", activeForm: "💻 Implementing" })
|
|
234
|
-
TaskCreate({ subject: "🧪 Write unit tests", description: "...", activeForm: "🧪 Writing tests" })
|
|
235
|
-
TaskCreate({ subject: "👀 Review changes", description: "...", activeForm: "👀 Reviewing" })
|
|
236
|
-
|
|
237
|
-
// STEP 2: Set dependencies
|
|
238
|
-
TaskUpdate({ taskId: "2", addBlockedBy: ["1"] })
|
|
239
|
-
TaskUpdate({ taskId: "3", addBlockedBy: ["2"] })
|
|
240
|
-
TaskUpdate({ taskId: "4", addBlockedBy: ["2"] })
|
|
241
|
-
TaskUpdate({ taskId: "0", addBlockedBy: ["3", "4"] })
|
|
242
|
-
|
|
243
|
-
// STEP 3: Initialize swarm (MCP preferred, CLI fallback)
|
|
244
|
-
// MCP: mcp__moflo__swarm_init (topology: "hierarchical", maxAgents: 8, strategy: "specialized")
|
|
245
|
-
Bash("npx flo swarm init --topology hierarchical --max-agents 8 --strategy specialized")
|
|
246
|
-
|
|
247
|
-
// STEP 4: Spawn agents (mark tasks in_progress as spawned)
|
|
248
|
-
TaskUpdate({ taskId: "1", status: "in_progress" })
|
|
249
|
-
Task({ prompt: "...", subagent_type: "researcher", run_in_background: true })
|
|
250
|
-
|
|
251
|
-
// ... agents work ...
|
|
252
|
-
|
|
253
|
-
// STEP 5: As agents return, update tasks
|
|
254
|
-
TaskUpdate({ taskId: "1", status: "completed" })
|
|
255
|
-
TaskUpdate({ taskId: "2", status: "in_progress" })
|
|
256
|
-
// ... continue workflow
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
---
|
|
260
|
-
|
|
261
|
-
## Benefits
|
|
262
|
-
|
|
263
|
-
| Benefit | Description |
|
|
264
|
-
|---------|-------------|
|
|
265
|
-
| **Visibility** | User sees clear task breakdown and progress |
|
|
266
|
-
| **Dependencies** | Blocked tasks show what's waiting |
|
|
267
|
-
| **Traceability** | Each task maps to an agent's work |
|
|
268
|
-
| **Persistence** | Task state survives conversation turns |
|
|
269
|
-
| **Coordination** | Moflo handles agent orchestration |
|
|
270
|
-
| **Learning** | Memory stores patterns for future tasks |
|
|
271
|
-
|
|
272
|
-
---
|
|
273
|
-
|
|
274
|
-
## When to Use TaskCreate (With or Without Swarm)
|
|
275
|
-
|
|
276
|
-
### Decision Checklist
|
|
277
|
-
|
|
278
|
-
Before spawning any agent via `Task`, run through this checklist:
|
|
279
|
-
|
|
280
|
-
| # | Question | If YES |
|
|
281
|
-
|---|----------|--------|
|
|
282
|
-
| 1 | Is this a swarm / hive-mind? | **TaskCreate required** — full integration protocol (Steps 1-5 above) |
|
|
283
|
-
| 2 | Are you spawning 2+ background agents? | **TaskCreate required** — one per agent, with role icons |
|
|
284
|
-
| 3 | Is this a single background agent (`run_in_background: true`)? | **TaskCreate required** — user needs visibility while it runs |
|
|
285
|
-
| 4 | Will the agent touch 3+ files or take multiple steps? | **TaskCreate required** — even if foreground, the user benefits from status tracking |
|
|
286
|
-
| 5 | Is this a single foreground agent for a focused task? | **TaskCreate optional** — user is already waiting inline for the result |
|
|
287
|
-
| 6 | Is this a quick research/exploration agent? | **Skip TaskCreate** — result returns fast, no tracking needed |
|
|
288
|
-
|
|
289
|
-
### Quick Rules
|
|
290
|
-
|
|
291
|
-
- **Background agent = always TaskCreate.** The user can't see what's happening otherwise.
|
|
292
|
-
- **Multiple agents = always TaskCreate for each.** Even without swarm coordination.
|
|
293
|
-
- **Foreground + simple = skip.** Don't add ceremony to a 10-second lookup.
|
|
294
|
-
- **When in doubt, create it.** A TaskCreate costs nothing; an invisible agent frustrates the user.
|
|
295
|
-
|
|
296
|
-
### Non-Swarm Example (2 background agents, no swarm init)
|
|
297
|
-
|
|
298
|
-
```javascript
|
|
299
|
-
// Create visible tasks FIRST
|
|
300
|
-
TaskCreate({
|
|
301
|
-
subject: "🔍 Investigate failing tests",
|
|
302
|
-
description: "Research agent: find root cause of test failures",
|
|
303
|
-
activeForm: "🔍 Investigating test failures"
|
|
304
|
-
})
|
|
305
|
-
TaskCreate({
|
|
306
|
-
subject: "💻 Fix authentication endpoint",
|
|
307
|
-
description: "Coder agent: implement the fix based on findings",
|
|
308
|
-
activeForm: "💻 Fixing auth endpoint"
|
|
309
|
-
})
|
|
310
|
-
|
|
311
|
-
// Then spawn agents
|
|
312
|
-
Task({
|
|
313
|
-
prompt: "Investigate why booking-public-routes tests are failing...",
|
|
314
|
-
subagent_type: "researcher",
|
|
315
|
-
description: "🔍 Investigate test failures",
|
|
316
|
-
run_in_background: true
|
|
317
|
-
})
|
|
318
|
-
Task({
|
|
319
|
-
prompt: "Fix the authentication endpoint based on research findings...",
|
|
320
|
-
subagent_type: "coder",
|
|
321
|
-
description: "💻 Fix auth endpoint",
|
|
322
|
-
run_in_background: true
|
|
323
|
-
})
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
### Single Background Agent (still needs TaskCreate)
|
|
327
|
-
|
|
328
|
-
```javascript
|
|
329
|
-
TaskCreate({
|
|
330
|
-
subject: "🧪 Write tests for booking routes",
|
|
331
|
-
description: "Tester agent: comprehensive test coverage",
|
|
332
|
-
activeForm: "🧪 Writing booking route tests"
|
|
333
|
-
})
|
|
334
|
-
|
|
335
|
-
Task({
|
|
336
|
-
prompt: "Write comprehensive tests for booking-public-routes...",
|
|
337
|
-
subagent_type: "tester",
|
|
338
|
-
description: "🧪 Write booking tests",
|
|
339
|
-
run_in_background: true
|
|
340
|
-
})
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
### Foreground Agent (TaskCreate optional — skip for simple tasks)
|
|
344
|
-
|
|
345
|
-
```javascript
|
|
346
|
-
// Simple lookup — no TaskCreate needed
|
|
347
|
-
Task({
|
|
348
|
-
prompt: "Find all files that import the AuthService",
|
|
349
|
-
subagent_type: "Explore",
|
|
350
|
-
description: "🔍 Find AuthService imports"
|
|
351
|
-
})
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
---
|
|
355
|
-
|
|
356
|
-
## Anti-Drift Configuration
|
|
357
|
-
|
|
358
|
-
**Use these settings to prevent agent drift:**
|
|
359
|
-
|
|
360
|
-
**MCP (Preferred):** `mcp__moflo__swarm_init`
|
|
361
|
-
- Small teams: `topology: "hierarchical", maxAgents: 8, strategy: "specialized"`
|
|
362
|
-
- Large teams: `topology: "hierarchical-mesh", maxAgents: 15, strategy: "specialized"`
|
|
363
|
-
|
|
364
|
-
**CLI Fallback:**
|
|
365
|
-
```bash
|
|
366
|
-
npx flo swarm init --topology hierarchical --max-agents 8 --strategy specialized
|
|
367
|
-
npx flo swarm init --topology hierarchical-mesh --max-agents 15 --strategy specialized
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
**Valid Topologies:**
|
|
371
|
-
- `hierarchical` - Queen controls workers directly (anti-drift for small teams)
|
|
372
|
-
- `hierarchical-mesh` - Queen + peer communication (recommended for 10+ agents)
|
|
373
|
-
- `mesh` - Fully connected peer network
|
|
374
|
-
- `ring` - Circular communication pattern
|
|
375
|
-
- `star` - Central coordinator with spokes
|
|
376
|
-
- `hybrid` - Dynamic topology switching
|
|
377
|
-
|
|
378
|
-
**Anti-Drift Guidelines:**
|
|
379
|
-
- **hierarchical**: Coordinator catches divergence
|
|
380
|
-
- **max-agents 6-8**: Smaller team = less drift
|
|
381
|
-
- **specialized**: Clear roles, no overlap
|
|
382
|
-
- **consensus**: raft (leader maintains state)
|
|
383
|
-
|
|
384
|
-
---
|
|
385
|
-
|
|
386
|
-
## Subagent Context Rules
|
|
387
|
-
|
|
388
|
-
**Subagents DO inherit CLAUDE.md context** when spawned via Task tool. They automatically receive:
|
|
389
|
-
- Memory-first protocol instructions
|
|
390
|
-
- MCP tool access (`mcp__moflo__*`) when configured
|
|
391
|
-
- Project guidance and coding rules
|
|
392
|
-
|
|
393
|
-
**Best practices for subagent prompts:**
|
|
394
|
-
- Include relevant context (file paths, error messages, specific requirements)
|
|
395
|
-
- Provide specific paths if known, don't let agents guess with broad globs
|
|
396
|
-
- Trust that they know the memory-first protocol
|
|
397
|
-
|
|
398
|
-
**MCP Tools Available to Subagents:**
|
|
399
|
-
- `mcp__moflo__memory_search` - Semantic search
|
|
400
|
-
- `mcp__moflo__memory_store` - Pattern storage
|
|
401
|
-
- `mcp__moflo__hooks_route` - Task routing
|
|
402
|
-
|
|
403
|
-
---
|
|
404
|
-
|
|
405
|
-
## Critical Execution Rules
|
|
406
|
-
|
|
407
|
-
### CLI + Task Tool in SAME Message
|
|
408
|
-
**When spawning swarm, Claude Code MUST in ONE message:**
|
|
409
|
-
1. Call CLI tools via Bash to initialize coordination
|
|
410
|
-
2. **IMMEDIATELY** call Task tool to spawn agents
|
|
411
|
-
3. Both CLI and Task calls must be in the SAME response
|
|
412
|
-
|
|
413
|
-
**CLI coordinates, Task tool agents do the actual work!**
|
|
414
|
-
|
|
415
|
-
### Spawn and Wait Pattern
|
|
416
|
-
|
|
417
|
-
**After spawning background agents:**
|
|
418
|
-
1. **TELL USER** - "I've spawned X agents working in parallel on: [list tasks]"
|
|
419
|
-
2. **STOP** - Do not continue with more tool calls
|
|
420
|
-
3. **WAIT** - Let the background agents complete their work
|
|
421
|
-
4. **RESPOND** - When agents return results, review and synthesize
|
|
422
|
-
|
|
423
|
-
### DO NOT:
|
|
424
|
-
- Continuously check swarm status
|
|
425
|
-
- Poll TaskOutput repeatedly
|
|
426
|
-
- Add more tool calls after spawning
|
|
427
|
-
- Ask "should I check on the agents?"
|
|
428
|
-
|
|
429
|
-
### DO:
|
|
430
|
-
- Spawn all agents in ONE message
|
|
431
|
-
- Tell user what's happening
|
|
432
|
-
- Wait for agent results to arrive
|
|
433
|
-
- Synthesize results when they return
|
|
434
|
-
|
|
435
|
-
---
|
|
436
|
-
|
|
437
|
-
## See Also
|
|
438
|
-
|
|
439
|
-
- `.claude/guidance/agent-bootstrap.md` - Subagent bootstrap guide
|
|
440
|
-
- `.claude/guidance/memory-strategy.md` - Memory architecture and search
|
|
441
|
-
- `.claude/guidance/moflo.md` - Full CLI/MCP reference
|
|
1
|
+
# Task & Swarm Integration Pattern
|
|
2
|
+
|
|
3
|
+
**Purpose:** Integrate native Claude Code tasks with moflo swarm coordination for visible progress tracking and structured agent orchestration.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Architecture Overview
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
+-----------------------------------------------------------------+
|
|
11
|
+
| NATIVE TASKS (User-Visible Layer) |
|
|
12
|
+
| TaskCreate -> TaskList -> TaskUpdate -> TaskGet |
|
|
13
|
+
| Shows: what needs doing, status, dependencies, progress |
|
|
14
|
+
+-------------------------------+---------------------------------+
|
|
15
|
+
| coordinates
|
|
16
|
+
+-------------------------------v---------------------------------+
|
|
17
|
+
| MOFLO (Orchestration Layer) |
|
|
18
|
+
| Swarm/Hive-Mind spawns agents, routes tasks, coordinates |
|
|
19
|
+
| Memory stores patterns for cross-session learning |
|
|
20
|
+
+-----------------------------------------------------------------+
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
| Layer | System | Purpose |
|
|
24
|
+
|-------|--------|---------|
|
|
25
|
+
| **What** | Native Tasks | Track work items, dependencies, status, visible to user |
|
|
26
|
+
| **How** | Moflo | Agent coordination, memory, consensus, routing |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Agent Role Icons
|
|
31
|
+
|
|
32
|
+
Use these icons in `subject` and `activeForm` when creating tasks so the user can visually identify which agent is doing what. This is required for all TaskCreate calls tied to agent work.
|
|
33
|
+
|
|
34
|
+
| Icon | Agent Role | activeForm Example |
|
|
35
|
+
|------|------------|-------------------|
|
|
36
|
+
| 🔍 | researcher | 🔍 Researching codebase |
|
|
37
|
+
| 🏗️ | system-architect | 🏗️ Designing architecture |
|
|
38
|
+
| 💻 | coder | 💻 Writing code |
|
|
39
|
+
| 🧪 | tester | 🧪 Writing tests |
|
|
40
|
+
| 👀 | reviewer | 👀 Reviewing code |
|
|
41
|
+
| 🛡️ | security-architect | 🛡️ Security audit |
|
|
42
|
+
| ⚡ | performance-engineer | ⚡ Optimizing performance |
|
|
43
|
+
| 📚 | api-docs | 📚 Documenting API |
|
|
44
|
+
| 📋 | planner | 📋 Planning tasks |
|
|
45
|
+
| 🤝 | consensus (hive-mind) | 🤝 Evaluating tradeoffs |
|
|
46
|
+
| 🔬 | analyzer | 🔬 Analyzing code |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Integration Protocol
|
|
51
|
+
|
|
52
|
+
### Step 0: Pre-Swarm Validation (Soft Check)
|
|
53
|
+
|
|
54
|
+
**Before initializing swarm/hive-mind, verify tasks exist for the current work:**
|
|
55
|
+
|
|
56
|
+
```javascript
|
|
57
|
+
TaskList() // Check current task state
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
| TaskList Result | Action |
|
|
61
|
+
|-----------------|--------|
|
|
62
|
+
| Empty | Create task list (Step 1) before proceeding |
|
|
63
|
+
| Has unrelated/stale tasks | Create new tasks for current work |
|
|
64
|
+
| Has relevant tasks for current work | Proceed to swarm init (Step 3) |
|
|
65
|
+
|
|
66
|
+
This is a **soft reminder**, not a hard blocker. The goal is user visibility into swarm progress.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### Step 1: Create Task List BEFORE Spawning Agents
|
|
71
|
+
|
|
72
|
+
When initializing swarm or hive-mind, create the task structure first:
|
|
73
|
+
|
|
74
|
+
```javascript
|
|
75
|
+
// 1. Create parent/coordinator task
|
|
76
|
+
TaskCreate({
|
|
77
|
+
subject: "Implement [feature/fix description]",
|
|
78
|
+
description: "Coordinating work for [task]. Subtasks track agent progress.",
|
|
79
|
+
activeForm: "Coordinating implementation"
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
// 2. Create subtasks for each agent role (in same message for parallel creation)
|
|
83
|
+
// Use role icons so the user can visually track agent progress at a glance.
|
|
84
|
+
TaskCreate({
|
|
85
|
+
subject: "🔍 Research requirements and codebase patterns",
|
|
86
|
+
description: "Researcher agent: Analyze requirements, find relevant code, document patterns.",
|
|
87
|
+
activeForm: "🔍 Researching codebase"
|
|
88
|
+
})
|
|
89
|
+
TaskCreate({
|
|
90
|
+
subject: "🏗️ Design implementation approach",
|
|
91
|
+
description: "Architect agent: Design solution, document decisions.",
|
|
92
|
+
activeForm: "🏗️ Designing architecture"
|
|
93
|
+
})
|
|
94
|
+
TaskCreate({
|
|
95
|
+
subject: "💻 Implement the solution",
|
|
96
|
+
description: "Coder agent: Write code following patterns and standards.",
|
|
97
|
+
activeForm: "💻 Writing code"
|
|
98
|
+
})
|
|
99
|
+
TaskCreate({
|
|
100
|
+
subject: "🧪 Write unit tests",
|
|
101
|
+
description: "Tester agent: Create tests that verify the implementation.",
|
|
102
|
+
activeForm: "🧪 Writing tests"
|
|
103
|
+
})
|
|
104
|
+
TaskCreate({
|
|
105
|
+
subject: "👀 Review code quality and security",
|
|
106
|
+
description: "Reviewer agent: Check for issues, security, best practices.",
|
|
107
|
+
activeForm: "👀 Reviewing code"
|
|
108
|
+
})
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Step 2: Set Up Dependencies
|
|
112
|
+
|
|
113
|
+
After creating tasks, establish the execution order:
|
|
114
|
+
|
|
115
|
+
```javascript
|
|
116
|
+
// Get task IDs from TaskList
|
|
117
|
+
TaskList()
|
|
118
|
+
|
|
119
|
+
// Set dependencies (research blocks architecture, architecture blocks coding, etc.)
|
|
120
|
+
TaskUpdate({ taskId: "2", addBlockedBy: ["1"] }) // Architect blocked by Researcher
|
|
121
|
+
TaskUpdate({ taskId: "3", addBlockedBy: ["2"] }) // Coder blocked by Architect
|
|
122
|
+
TaskUpdate({ taskId: "4", addBlockedBy: ["3"] }) // Tester blocked by Coder
|
|
123
|
+
TaskUpdate({ taskId: "5", addBlockedBy: ["3"] }) // Reviewer blocked by Coder
|
|
124
|
+
TaskUpdate({ taskId: "0", addBlockedBy: ["4", "5"] }) // Coordinator blocked by Tester & Reviewer
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Step 3: Initialize Moflo Coordination
|
|
128
|
+
|
|
129
|
+
**MCP (Preferred):**
|
|
130
|
+
- Swarm: `mcp__moflo__swarm_init` (`topology: "hierarchical", maxAgents: 8, strategy: "specialized"`)
|
|
131
|
+
- Hive-mind: `mcp__moflo__hive-mind_init` (`topology: "hierarchical-mesh", consensus: "byzantine"`)
|
|
132
|
+
|
|
133
|
+
**CLI Fallback:**
|
|
134
|
+
```bash
|
|
135
|
+
npx flo swarm init --topology hierarchical --max-agents 8 --strategy specialized
|
|
136
|
+
npx flo hive-mind init --topology hierarchical-mesh --consensus byzantine
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Step 4: Spawn Agents with Task References
|
|
140
|
+
|
|
141
|
+
Include task IDs in agent prompts so they update status.
|
|
142
|
+
TaskCreate was already called in Step 1 — tasks are visible before agents spawn.
|
|
143
|
+
|
|
144
|
+
```javascript
|
|
145
|
+
// TaskCreate already done in Step 1 above
|
|
146
|
+
Task({
|
|
147
|
+
prompt: `FIRST: Search memory, then read .claude/guidance/agent-bootstrap.md
|
|
148
|
+
|
|
149
|
+
YOUR TASK (ID: 1): Research requirements and codebase patterns
|
|
150
|
+
- Analyze feature requirements
|
|
151
|
+
- Search codebase for relevant patterns
|
|
152
|
+
- Document findings in memory
|
|
153
|
+
|
|
154
|
+
WHEN STARTING: The coordinator has marked your task in_progress.
|
|
155
|
+
WHEN COMPLETE: Report findings. Coordinator will mark task completed.`,
|
|
156
|
+
subagent_type: "researcher",
|
|
157
|
+
description: "🔍 Research phase",
|
|
158
|
+
run_in_background: true
|
|
159
|
+
})
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Step 5: Update Tasks as Agents Progress
|
|
163
|
+
|
|
164
|
+
The coordinator (Claude Code) updates task status based on agent activity:
|
|
165
|
+
|
|
166
|
+
```javascript
|
|
167
|
+
// When spawning an agent, mark its task in_progress
|
|
168
|
+
TaskUpdate({ taskId: "1", status: "in_progress" })
|
|
169
|
+
|
|
170
|
+
// When agent returns results, mark completed
|
|
171
|
+
TaskUpdate({ taskId: "1", status: "completed" })
|
|
172
|
+
|
|
173
|
+
// Check what's unblocked and proceed
|
|
174
|
+
TaskList() // Shows task 2 is now unblocked
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Task Templates by Work Type
|
|
180
|
+
|
|
181
|
+
### Bug Fix (4-5 tasks)
|
|
182
|
+
|
|
183
|
+
| Task | Agent | Dependencies |
|
|
184
|
+
|------|-------|--------------|
|
|
185
|
+
| 🔍 Investigate bug and root cause | researcher | - |
|
|
186
|
+
| 💻 Implement fix | coder | researcher |
|
|
187
|
+
| 🧪 Write regression tests | tester | coder |
|
|
188
|
+
| 👀 Review fix | reviewer | coder |
|
|
189
|
+
|
|
190
|
+
### Feature Implementation (5-6 tasks)
|
|
191
|
+
|
|
192
|
+
| Task | Agent | Dependencies |
|
|
193
|
+
|------|-------|--------------|
|
|
194
|
+
| 🔍 Research requirements | researcher | - |
|
|
195
|
+
| 🏗️ Design implementation | system-architect | researcher |
|
|
196
|
+
| 💻 Implement feature | coder | architect |
|
|
197
|
+
| 🧪 Write unit tests | tester | coder |
|
|
198
|
+
| 👀 Review code | reviewer | coder |
|
|
199
|
+
| 🧪 Integration testing | tester | reviewer |
|
|
200
|
+
|
|
201
|
+
### Architectural Decision (Hive-Mind) (3-4 tasks)
|
|
202
|
+
|
|
203
|
+
| Task | Agent | Dependencies |
|
|
204
|
+
|------|-------|--------------|
|
|
205
|
+
| 🔍 Analyze options | researcher | - |
|
|
206
|
+
| 🤝 Evaluate tradeoffs | multiple (consensus) | researcher |
|
|
207
|
+
| 📚 Document decision | api-docs | consensus |
|
|
208
|
+
| 📋 Create implementation plan | planner | decision |
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Coordinator Responsibilities
|
|
213
|
+
|
|
214
|
+
The coordinator (Claude Code main process) must:
|
|
215
|
+
|
|
216
|
+
1. **Create tasks before spawning agents** - Tasks provide the visible work breakdown
|
|
217
|
+
2. **Update status when agents start** - Mark `in_progress` when spawning
|
|
218
|
+
3. **Update status when agents complete** - Mark `completed` when results return
|
|
219
|
+
4. **Monitor dependencies** - Use `TaskList` to see what's unblocked
|
|
220
|
+
5. **Synthesize results** - Review all agent outputs before proceeding
|
|
221
|
+
6. **Store learnings** - After completion, store patterns in memory
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Example: Full Integration Flow
|
|
226
|
+
|
|
227
|
+
```javascript
|
|
228
|
+
// USER: Work on feature X with swarm
|
|
229
|
+
|
|
230
|
+
// STEP 1: Create task structure (role icons for visual tracking)
|
|
231
|
+
TaskCreate({ subject: "Implement feature X", description: "...", activeForm: "Coordinating" })
|
|
232
|
+
TaskCreate({ subject: "🔍 Research patterns", description: "...", activeForm: "🔍 Researching" })
|
|
233
|
+
TaskCreate({ subject: "💻 Implement solution", description: "...", activeForm: "💻 Implementing" })
|
|
234
|
+
TaskCreate({ subject: "🧪 Write unit tests", description: "...", activeForm: "🧪 Writing tests" })
|
|
235
|
+
TaskCreate({ subject: "👀 Review changes", description: "...", activeForm: "👀 Reviewing" })
|
|
236
|
+
|
|
237
|
+
// STEP 2: Set dependencies
|
|
238
|
+
TaskUpdate({ taskId: "2", addBlockedBy: ["1"] })
|
|
239
|
+
TaskUpdate({ taskId: "3", addBlockedBy: ["2"] })
|
|
240
|
+
TaskUpdate({ taskId: "4", addBlockedBy: ["2"] })
|
|
241
|
+
TaskUpdate({ taskId: "0", addBlockedBy: ["3", "4"] })
|
|
242
|
+
|
|
243
|
+
// STEP 3: Initialize swarm (MCP preferred, CLI fallback)
|
|
244
|
+
// MCP: mcp__moflo__swarm_init (topology: "hierarchical", maxAgents: 8, strategy: "specialized")
|
|
245
|
+
Bash("npx flo swarm init --topology hierarchical --max-agents 8 --strategy specialized")
|
|
246
|
+
|
|
247
|
+
// STEP 4: Spawn agents (mark tasks in_progress as spawned)
|
|
248
|
+
TaskUpdate({ taskId: "1", status: "in_progress" })
|
|
249
|
+
Task({ prompt: "...", subagent_type: "researcher", run_in_background: true })
|
|
250
|
+
|
|
251
|
+
// ... agents work ...
|
|
252
|
+
|
|
253
|
+
// STEP 5: As agents return, update tasks
|
|
254
|
+
TaskUpdate({ taskId: "1", status: "completed" })
|
|
255
|
+
TaskUpdate({ taskId: "2", status: "in_progress" })
|
|
256
|
+
// ... continue workflow
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Benefits
|
|
262
|
+
|
|
263
|
+
| Benefit | Description |
|
|
264
|
+
|---------|-------------|
|
|
265
|
+
| **Visibility** | User sees clear task breakdown and progress |
|
|
266
|
+
| **Dependencies** | Blocked tasks show what's waiting |
|
|
267
|
+
| **Traceability** | Each task maps to an agent's work |
|
|
268
|
+
| **Persistence** | Task state survives conversation turns |
|
|
269
|
+
| **Coordination** | Moflo handles agent orchestration |
|
|
270
|
+
| **Learning** | Memory stores patterns for future tasks |
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## When to Use TaskCreate (With or Without Swarm)
|
|
275
|
+
|
|
276
|
+
### Decision Checklist
|
|
277
|
+
|
|
278
|
+
Before spawning any agent via `Task`, run through this checklist:
|
|
279
|
+
|
|
280
|
+
| # | Question | If YES |
|
|
281
|
+
|---|----------|--------|
|
|
282
|
+
| 1 | Is this a swarm / hive-mind? | **TaskCreate required** — full integration protocol (Steps 1-5 above) |
|
|
283
|
+
| 2 | Are you spawning 2+ background agents? | **TaskCreate required** — one per agent, with role icons |
|
|
284
|
+
| 3 | Is this a single background agent (`run_in_background: true`)? | **TaskCreate required** — user needs visibility while it runs |
|
|
285
|
+
| 4 | Will the agent touch 3+ files or take multiple steps? | **TaskCreate required** — even if foreground, the user benefits from status tracking |
|
|
286
|
+
| 5 | Is this a single foreground agent for a focused task? | **TaskCreate optional** — user is already waiting inline for the result |
|
|
287
|
+
| 6 | Is this a quick research/exploration agent? | **Skip TaskCreate** — result returns fast, no tracking needed |
|
|
288
|
+
|
|
289
|
+
### Quick Rules
|
|
290
|
+
|
|
291
|
+
- **Background agent = always TaskCreate.** The user can't see what's happening otherwise.
|
|
292
|
+
- **Multiple agents = always TaskCreate for each.** Even without swarm coordination.
|
|
293
|
+
- **Foreground + simple = skip.** Don't add ceremony to a 10-second lookup.
|
|
294
|
+
- **When in doubt, create it.** A TaskCreate costs nothing; an invisible agent frustrates the user.
|
|
295
|
+
|
|
296
|
+
### Non-Swarm Example (2 background agents, no swarm init)
|
|
297
|
+
|
|
298
|
+
```javascript
|
|
299
|
+
// Create visible tasks FIRST
|
|
300
|
+
TaskCreate({
|
|
301
|
+
subject: "🔍 Investigate failing tests",
|
|
302
|
+
description: "Research agent: find root cause of test failures",
|
|
303
|
+
activeForm: "🔍 Investigating test failures"
|
|
304
|
+
})
|
|
305
|
+
TaskCreate({
|
|
306
|
+
subject: "💻 Fix authentication endpoint",
|
|
307
|
+
description: "Coder agent: implement the fix based on findings",
|
|
308
|
+
activeForm: "💻 Fixing auth endpoint"
|
|
309
|
+
})
|
|
310
|
+
|
|
311
|
+
// Then spawn agents
|
|
312
|
+
Task({
|
|
313
|
+
prompt: "Investigate why booking-public-routes tests are failing...",
|
|
314
|
+
subagent_type: "researcher",
|
|
315
|
+
description: "🔍 Investigate test failures",
|
|
316
|
+
run_in_background: true
|
|
317
|
+
})
|
|
318
|
+
Task({
|
|
319
|
+
prompt: "Fix the authentication endpoint based on research findings...",
|
|
320
|
+
subagent_type: "coder",
|
|
321
|
+
description: "💻 Fix auth endpoint",
|
|
322
|
+
run_in_background: true
|
|
323
|
+
})
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### Single Background Agent (still needs TaskCreate)
|
|
327
|
+
|
|
328
|
+
```javascript
|
|
329
|
+
TaskCreate({
|
|
330
|
+
subject: "🧪 Write tests for booking routes",
|
|
331
|
+
description: "Tester agent: comprehensive test coverage",
|
|
332
|
+
activeForm: "🧪 Writing booking route tests"
|
|
333
|
+
})
|
|
334
|
+
|
|
335
|
+
Task({
|
|
336
|
+
prompt: "Write comprehensive tests for booking-public-routes...",
|
|
337
|
+
subagent_type: "tester",
|
|
338
|
+
description: "🧪 Write booking tests",
|
|
339
|
+
run_in_background: true
|
|
340
|
+
})
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### Foreground Agent (TaskCreate optional — skip for simple tasks)
|
|
344
|
+
|
|
345
|
+
```javascript
|
|
346
|
+
// Simple lookup — no TaskCreate needed
|
|
347
|
+
Task({
|
|
348
|
+
prompt: "Find all files that import the AuthService",
|
|
349
|
+
subagent_type: "Explore",
|
|
350
|
+
description: "🔍 Find AuthService imports"
|
|
351
|
+
})
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## Anti-Drift Configuration
|
|
357
|
+
|
|
358
|
+
**Use these settings to prevent agent drift:**
|
|
359
|
+
|
|
360
|
+
**MCP (Preferred):** `mcp__moflo__swarm_init`
|
|
361
|
+
- Small teams: `topology: "hierarchical", maxAgents: 8, strategy: "specialized"`
|
|
362
|
+
- Large teams: `topology: "hierarchical-mesh", maxAgents: 15, strategy: "specialized"`
|
|
363
|
+
|
|
364
|
+
**CLI Fallback:**
|
|
365
|
+
```bash
|
|
366
|
+
npx flo swarm init --topology hierarchical --max-agents 8 --strategy specialized
|
|
367
|
+
npx flo swarm init --topology hierarchical-mesh --max-agents 15 --strategy specialized
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
**Valid Topologies:**
|
|
371
|
+
- `hierarchical` - Queen controls workers directly (anti-drift for small teams)
|
|
372
|
+
- `hierarchical-mesh` - Queen + peer communication (recommended for 10+ agents)
|
|
373
|
+
- `mesh` - Fully connected peer network
|
|
374
|
+
- `ring` - Circular communication pattern
|
|
375
|
+
- `star` - Central coordinator with spokes
|
|
376
|
+
- `hybrid` - Dynamic topology switching
|
|
377
|
+
|
|
378
|
+
**Anti-Drift Guidelines:**
|
|
379
|
+
- **hierarchical**: Coordinator catches divergence
|
|
380
|
+
- **max-agents 6-8**: Smaller team = less drift
|
|
381
|
+
- **specialized**: Clear roles, no overlap
|
|
382
|
+
- **consensus**: raft (leader maintains state)
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## Subagent Context Rules
|
|
387
|
+
|
|
388
|
+
**Subagents DO inherit CLAUDE.md context** when spawned via Task tool. They automatically receive:
|
|
389
|
+
- Memory-first protocol instructions
|
|
390
|
+
- MCP tool access (`mcp__moflo__*`) when configured
|
|
391
|
+
- Project guidance and coding rules
|
|
392
|
+
|
|
393
|
+
**Best practices for subagent prompts:**
|
|
394
|
+
- Include relevant context (file paths, error messages, specific requirements)
|
|
395
|
+
- Provide specific paths if known, don't let agents guess with broad globs
|
|
396
|
+
- Trust that they know the memory-first protocol
|
|
397
|
+
|
|
398
|
+
**MCP Tools Available to Subagents:**
|
|
399
|
+
- `mcp__moflo__memory_search` - Semantic search
|
|
400
|
+
- `mcp__moflo__memory_store` - Pattern storage
|
|
401
|
+
- `mcp__moflo__hooks_route` - Task routing
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## Critical Execution Rules
|
|
406
|
+
|
|
407
|
+
### CLI + Task Tool in SAME Message
|
|
408
|
+
**When spawning swarm, Claude Code MUST in ONE message:**
|
|
409
|
+
1. Call CLI tools via Bash to initialize coordination
|
|
410
|
+
2. **IMMEDIATELY** call Task tool to spawn agents
|
|
411
|
+
3. Both CLI and Task calls must be in the SAME response
|
|
412
|
+
|
|
413
|
+
**CLI coordinates, Task tool agents do the actual work!**
|
|
414
|
+
|
|
415
|
+
### Spawn and Wait Pattern
|
|
416
|
+
|
|
417
|
+
**After spawning background agents:**
|
|
418
|
+
1. **TELL USER** - "I've spawned X agents working in parallel on: [list tasks]"
|
|
419
|
+
2. **STOP** - Do not continue with more tool calls
|
|
420
|
+
3. **WAIT** - Let the background agents complete their work
|
|
421
|
+
4. **RESPOND** - When agents return results, review and synthesize
|
|
422
|
+
|
|
423
|
+
### DO NOT:
|
|
424
|
+
- Continuously check swarm status
|
|
425
|
+
- Poll TaskOutput repeatedly
|
|
426
|
+
- Add more tool calls after spawning
|
|
427
|
+
- Ask "should I check on the agents?"
|
|
428
|
+
|
|
429
|
+
### DO:
|
|
430
|
+
- Spawn all agents in ONE message
|
|
431
|
+
- Tell user what's happening
|
|
432
|
+
- Wait for agent results to arrive
|
|
433
|
+
- Synthesize results when they return
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## See Also
|
|
438
|
+
|
|
439
|
+
- `.claude/guidance/agent-bootstrap.md` - Subagent bootstrap guide
|
|
440
|
+
- `.claude/guidance/memory-strategy.md` - Memory architecture and search
|
|
441
|
+
- `.claude/guidance/moflo.md` - Full CLI/MCP reference
|