mirror of
https://github.com/anthropics/claude-code.git
synced 2026-05-21 19:12:42 +00:00
261 lines
6.1 KiB
Markdown
261 lines
6.1 KiB
Markdown
|
|
# Simple Swarm Example
|
||
|
|
|
||
|
|
A two-agent swarm implementing a feature with coordinated file claiming.
|
||
|
|
|
||
|
|
## Scenario
|
||
|
|
|
||
|
|
Task: Add user authentication to an Express API
|
||
|
|
|
||
|
|
## Initial Setup
|
||
|
|
|
||
|
|
### Swarm Status File
|
||
|
|
`.claude/swarm-status.json`:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"swarm_id": "auth-feature-001",
|
||
|
|
"task": "Add user authentication",
|
||
|
|
"started": "2025-01-15T10:00:00Z",
|
||
|
|
"phase": "initialized",
|
||
|
|
"agents": {}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### File Claims Registry
|
||
|
|
`.claude/file-claims.md`:
|
||
|
|
```markdown
|
||
|
|
# File Claims Registry
|
||
|
|
|
||
|
|
Last updated: 2025-01-15T10:00:00Z
|
||
|
|
Swarm ID: auth-feature-001
|
||
|
|
|
||
|
|
| Agent ID | File Path | Claimed At | Status |
|
||
|
|
|----------|-----------|------------|--------|
|
||
|
|
```
|
||
|
|
|
||
|
|
## Phase 1: Planning
|
||
|
|
|
||
|
|
Launch two planning agents:
|
||
|
|
|
||
|
|
**Agent 1 Prompt**:
|
||
|
|
```
|
||
|
|
Analyze the codebase and create an implementation plan for:
|
||
|
|
Adding JWT token validation middleware
|
||
|
|
|
||
|
|
You are in PLANNING MODE - DO NOT modify any files.
|
||
|
|
Output a structured plan with all files you need to modify.
|
||
|
|
```
|
||
|
|
|
||
|
|
**Agent 2 Prompt**:
|
||
|
|
```
|
||
|
|
Analyze the codebase and create an implementation plan for:
|
||
|
|
Adding user login/logout API endpoints
|
||
|
|
|
||
|
|
You are in PLANNING MODE - DO NOT modify any files.
|
||
|
|
Output a structured plan with all files you need to modify.
|
||
|
|
```
|
||
|
|
|
||
|
|
### Agent 1 Plan Output
|
||
|
|
`.claude/swarm-plans/jwt-middleware.md`:
|
||
|
|
```markdown
|
||
|
|
## Agent Plan: jwt-middleware
|
||
|
|
|
||
|
|
### Task Summary
|
||
|
|
Implement JWT token validation middleware for protected routes.
|
||
|
|
|
||
|
|
### Files to Modify
|
||
|
|
- `src/middleware/index.ts`: Export new auth middleware
|
||
|
|
|
||
|
|
### Files to Create
|
||
|
|
- `src/middleware/auth.ts`: JWT validation middleware
|
||
|
|
- `src/types/auth.ts`: Token payload types
|
||
|
|
|
||
|
|
### Dependencies
|
||
|
|
- Requires: None
|
||
|
|
- Blocks: Protected routes need this middleware
|
||
|
|
|
||
|
|
### Implementation Steps
|
||
|
|
1. Create auth types
|
||
|
|
2. Implement JWT validation middleware
|
||
|
|
3. Export from middleware index
|
||
|
|
```
|
||
|
|
|
||
|
|
### Agent 2 Plan Output
|
||
|
|
`.claude/swarm-plans/auth-endpoints.md`:
|
||
|
|
```markdown
|
||
|
|
## Agent Plan: auth-endpoints
|
||
|
|
|
||
|
|
### Task Summary
|
||
|
|
Implement login and logout API endpoints.
|
||
|
|
|
||
|
|
### Files to Modify
|
||
|
|
- `src/routes/index.ts`: Add auth routes
|
||
|
|
- `src/middleware/index.ts`: Import auth utilities
|
||
|
|
|
||
|
|
### Files to Create
|
||
|
|
- `src/routes/auth.ts`: Login/logout endpoints
|
||
|
|
- `src/services/auth.ts`: Authentication service
|
||
|
|
|
||
|
|
### Dependencies
|
||
|
|
- Requires: JWT middleware for logout validation
|
||
|
|
- Blocks: None
|
||
|
|
|
||
|
|
### Implementation Steps
|
||
|
|
1. Create auth service
|
||
|
|
2. Implement auth routes
|
||
|
|
3. Update routes index
|
||
|
|
4. Update middleware index
|
||
|
|
```
|
||
|
|
|
||
|
|
## Phase 2: Conflict Detection
|
||
|
|
|
||
|
|
Analyzing plans:
|
||
|
|
|
||
|
|
```
|
||
|
|
File: src/middleware/index.ts
|
||
|
|
- jwt-middleware: modify (export new middleware)
|
||
|
|
- auth-endpoints: modify (import auth utilities)
|
||
|
|
→ CONFLICT DETECTED
|
||
|
|
```
|
||
|
|
|
||
|
|
### Conflict Report
|
||
|
|
```markdown
|
||
|
|
## Conflict Analysis
|
||
|
|
|
||
|
|
### Conflicts Found: 1
|
||
|
|
|
||
|
|
#### Conflict 1: src/middleware/index.ts
|
||
|
|
Agents: jwt-middleware, auth-endpoints
|
||
|
|
Nature: Both agents plan to modify this file
|
||
|
|
- jwt-middleware: Add export for auth middleware
|
||
|
|
- auth-endpoints: Import auth utilities
|
||
|
|
|
||
|
|
**Resolution Options**:
|
||
|
|
1. Sequential: jwt-middleware first, then auth-endpoints
|
||
|
|
2. Merge: Have jwt-middleware handle all middleware/index.ts changes
|
||
|
|
```
|
||
|
|
|
||
|
|
## Phase 3: Resolution
|
||
|
|
|
||
|
|
**Chosen Resolution**: Option 1 - Sequential execution
|
||
|
|
|
||
|
|
Updated execution plan:
|
||
|
|
- Batch 1: jwt-middleware (no dependencies)
|
||
|
|
- Batch 2: auth-endpoints (after jwt-middleware completes)
|
||
|
|
|
||
|
|
## Phase 4: File Claiming
|
||
|
|
|
||
|
|
Updated `.claude/file-claims.md`:
|
||
|
|
```markdown
|
||
|
|
# File Claims Registry
|
||
|
|
|
||
|
|
Last updated: 2025-01-15T10:05:00Z
|
||
|
|
Swarm ID: auth-feature-001
|
||
|
|
|
||
|
|
| Agent ID | File Path | Claimed At | Status |
|
||
|
|
|----------|-----------|------------|--------|
|
||
|
|
| jwt-middleware | src/middleware/auth.ts | 2025-01-15T10:05:00Z | claimed |
|
||
|
|
| jwt-middleware | src/middleware/index.ts | 2025-01-15T10:05:00Z | claimed |
|
||
|
|
| jwt-middleware | src/types/auth.ts | 2025-01-15T10:05:00Z | claimed |
|
||
|
|
| auth-endpoints | src/routes/auth.ts | 2025-01-15T10:05:00Z | pending |
|
||
|
|
| auth-endpoints | src/routes/index.ts | 2025-01-15T10:05:00Z | pending |
|
||
|
|
| auth-endpoints | src/services/auth.ts | 2025-01-15T10:05:00Z | pending |
|
||
|
|
```
|
||
|
|
|
||
|
|
Note: auth-endpoints claims are "pending" until jwt-middleware completes.
|
||
|
|
|
||
|
|
## Phase 5: Implementation
|
||
|
|
|
||
|
|
### Batch 1: jwt-middleware
|
||
|
|
|
||
|
|
Launch jwt-middleware agent with implementation instructions:
|
||
|
|
```
|
||
|
|
Execute your approved plan from .claude/swarm-plans/jwt-middleware.md
|
||
|
|
Only modify files claimed by jwt-middleware in .claude/file-claims.md
|
||
|
|
```
|
||
|
|
|
||
|
|
**Status after 45 seconds** (from status-checker):
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"overall_health": "healthy",
|
||
|
|
"agents": {
|
||
|
|
"jwt-middleware": {"status": "working", "progress": "Creating middleware"}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Status after 2 minutes**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"overall_health": "healthy",
|
||
|
|
"agents": {
|
||
|
|
"jwt-middleware": {"status": "completed"}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Release Claims & Activate Batch 2
|
||
|
|
|
||
|
|
Updated `.claude/file-claims.md`:
|
||
|
|
```markdown
|
||
|
|
| jwt-middleware | src/middleware/auth.ts | 2025-01-15T10:05:00Z | released |
|
||
|
|
| jwt-middleware | src/middleware/index.ts | 2025-01-15T10:05:00Z | released |
|
||
|
|
| jwt-middleware | src/types/auth.ts | 2025-01-15T10:05:00Z | released |
|
||
|
|
| auth-endpoints | src/routes/auth.ts | 2025-01-15T10:07:00Z | claimed |
|
||
|
|
| auth-endpoints | src/routes/index.ts | 2025-01-15T10:07:00Z | claimed |
|
||
|
|
| auth-endpoints | src/services/auth.ts | 2025-01-15T10:07:00Z | claimed |
|
||
|
|
| auth-endpoints | src/middleware/index.ts | 2025-01-15T10:07:00Z | claimed |
|
||
|
|
```
|
||
|
|
|
||
|
|
Note: auth-endpoints now also claims middleware/index.ts after jwt-middleware released it.
|
||
|
|
|
||
|
|
### Batch 2: auth-endpoints
|
||
|
|
|
||
|
|
Launch auth-endpoints agent with implementation instructions.
|
||
|
|
|
||
|
|
**Status after 3 minutes**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"overall_health": "healthy",
|
||
|
|
"agents": {
|
||
|
|
"jwt-middleware": {"status": "completed"},
|
||
|
|
"auth-endpoints": {"status": "completed"}
|
||
|
|
},
|
||
|
|
"completion_percentage": 100
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Phase 6: Verification
|
||
|
|
|
||
|
|
Checks:
|
||
|
|
- [x] jwt-middleware completed
|
||
|
|
- [x] auth-endpoints completed
|
||
|
|
- [x] All files modified as planned
|
||
|
|
- [x] No orphaned claims
|
||
|
|
- [x] Build succeeds
|
||
|
|
- [x] Tests pass
|
||
|
|
|
||
|
|
## Phase 7: Summary
|
||
|
|
|
||
|
|
```markdown
|
||
|
|
## Swarm Completion Report
|
||
|
|
|
||
|
|
### Task: Add user authentication
|
||
|
|
### Duration: 8 minutes
|
||
|
|
### Agents: 2
|
||
|
|
|
||
|
|
### Files Created
|
||
|
|
- src/middleware/auth.ts
|
||
|
|
- src/types/auth.ts
|
||
|
|
- src/routes/auth.ts
|
||
|
|
- src/services/auth.ts
|
||
|
|
|
||
|
|
### Files Modified
|
||
|
|
- src/middleware/index.ts
|
||
|
|
- src/routes/index.ts
|
||
|
|
|
||
|
|
### Conflicts Resolved
|
||
|
|
- 1 conflict on src/middleware/index.ts (sequential resolution)
|
||
|
|
|
||
|
|
### Status: SUCCESS
|
||
|
|
```
|