claude_swarm 0.1.15 → 0.1.17

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc1ac6dbcc7eac54e907f574c827580275e147e42e92122d467809addb614ae9
4
- data.tar.gz: d579b2a49bc0323c4704736597c1d3a9bf8e24a29c0bfe63bd21969560b4dbf9
3
+ metadata.gz: 3f0ab99665f31bddf2d3641525481ce2df55e910950af03290137246847bf70d
4
+ data.tar.gz: 2435170f5b61604c3131b1680f60ed8727795c58432806d9b61007813d4f5ce3
5
5
  SHA512:
6
- metadata.gz: 20398e7167acc7f88c611da67a0d613fbfba9e225701c5dd1681f2a2ffac12bd81bbf9e4463c45564df0046edd17f3a299edbfedd1c79b0a463127c53853283f
7
- data.tar.gz: be84c91452a5cc0e00ec725e9e4f3a75b8e4b94f72438a796a3a6e8f787c4c8a2c46ad857bb661c50971c2fda25ca51fe2e25fc650c3025001292dba054f293b
6
+ metadata.gz: ee74c188f6cc7fd31bb8705661f0913674bb687fd1eae6c2973728d2418f62bbad86054a89bd150965f39ec0bbd37ac04b2413dd22340311afd03cd5ec9d5424
7
+ data.tar.gz: a6c5fb7db4a8659619c9c7b5de000303ce91b046b85d635381f437adc92b4fd739e8d2142f0e65323346d1ba4d2607bf2b90c7d76fcf7c119bf6b9d5c431a7fc
data/CHANGELOG.md CHANGED
@@ -1,3 +1,46 @@
1
+ ## [0.1.17]
2
+
3
+ ### Added
4
+ - **Multi-directory support**: Instances can now access multiple directories
5
+ - The `directory` field in YAML configuration now accepts either a string (single directory) or an array of strings (multiple directories)
6
+ - Additional directories are passed to Claude using the `--add-dir` flag
7
+ - The first directory in the array serves as the primary working directory
8
+ - All specified directories must exist or validation will fail
9
+ - Example: `directory: [./frontend, ./backend, ./shared]`
10
+ - **Session monitoring commands**: New commands for monitoring and managing active Claude Swarm sessions
11
+ - `claude-swarm ps`: List all active sessions with properly aligned columns showing session ID, swarm name, total cost, uptime, and directories
12
+ - `claude-swarm show SESSION_ID`: Display detailed session information including instance hierarchy and individual costs
13
+ - `claude-swarm watch SESSION_ID`: Tail session logs in real-time (uses native `tail -f`)
14
+ - `claude-swarm clean`: Remove stale session symlinks with optional age filtering (`--days N`)
15
+ - Active sessions are tracked via symlinks in `~/.claude-swarm/run/` for efficient monitoring
16
+ - Cost tracking aggregates data from `session.log.json` for accurate reporting
17
+ - Interactive main instance shows "n/a (interactive)" for cost when not available
18
+
19
+ ## [0.1.16]
20
+
21
+ ### Changed
22
+ - **Breaking change**: Removed custom permission MCP server in favor of Claude's native `mcp__MCP_NAME` pattern
23
+ - Connected instances are now automatically added to allowed tools as `mcp__<instance_name>`
24
+ - CLI parameter `--tools` renamed to `--allowed-tools` for consistency with YAML configuration
25
+ - MCP generator no longer creates permission MCP server configurations
26
+
27
+ ### Removed
28
+ - Removed `PermissionMcpServer` and `PermissionTool` classes
29
+ - Removed `tools-mcp` CLI command
30
+ - Removed regex tool pattern syntax - use Claude Code patterns instead
31
+ - Removed `--permission-prompt-tool` flag from orchestrator
32
+ - Removed permission logging to `permissions.log`
33
+
34
+ ### Migration Guide
35
+ - Replace custom tool patterns with Claude Code's native patterns in your YAML files:
36
+ - `"Bash(npm:*)"` → Use `Bash` and Claude Code's built-in command restrictions
37
+ - `"Edit(*.js)"` → Use `Edit` and Claude Code's built-in file restrictions
38
+ - For fine-grained tool control, use Claude Code's native patterns:
39
+ - `mcp__<server_name>__<tool_name>` for specific tools from an MCP server
40
+ - `mcp__<server_name>` to allow all tools from an MCP server
41
+ - Connected instances are automatically accessible via `mcp__<instance_name>` pattern
42
+ - See Claude Code's documentation for full details on supported tool patterns
43
+
1
44
  ## [0.1.15]
2
45
 
3
46
  ### Changed
data/CLAUDE.md CHANGED
@@ -54,7 +54,7 @@ The gem is fully implemented with the following components:
54
54
 
55
55
  1. **YAML Configuration**: Define swarms with instances, connections, tools, and MCP servers
56
56
  2. **Inter-Instance Communication**: Instances connect via MCP using `claude mcp serve` with `-p` flag
57
- 3. **Tool Restrictions**: Support for pattern-based tool restrictions (e.g., `Bash(npm:*)`)
57
+ 3. **Tool Restrictions**: Support for tool restrictions using Claude's native pattern (connections are available as `mcp__instance_name`)
58
58
  4. **Multiple MCP Types**: Supports both stdio and SSE MCP server types
59
59
  5. **Automatic MCP Generation**: Creates `.claude-swarm/` directory with MCP configs
60
60
  6. **Custom System Prompts**: Each instance can have a custom prompt via `--append-system-prompt`
@@ -63,9 +63,10 @@ The gem is fully implemented with the following components:
63
63
 
64
64
  1. User creates a `claude-swarm.yml` file defining the swarm topology
65
65
  2. Running `claude-swarm` parses the configuration and validates it
66
- 3. MCP configuration files are generated for each instance in `.claude-swarm/`
66
+ 3. MCP configuration files are generated for each instance in a session directory
67
67
  4. The main instance is launched with `exec`, replacing the current process
68
68
  5. Connected instances are available as MCP servers to the main instance
69
+ 6. When an instance has connections, those connections are automatically added to its allowed tools as `mcp__<connection_name>`
69
70
 
70
71
  ### Configuration Example
71
72
 
@@ -85,15 +86,18 @@ swarm:
85
86
  directory: ./frontend
86
87
  model: sonnet
87
88
  prompt: "You specialize in frontend development with React"
88
- tools: [Edit, Write, "Bash(npm:*)"]
89
+ tools: [Edit, Write, Bash]
89
90
  ```
90
91
 
91
92
  ## Testing
92
93
 
93
- The gem includes basic tests for version number and CLI existence. Additional tests should be added for:
94
+ The gem includes comprehensive tests covering:
94
95
  - Configuration parsing and validation
95
- - MCP generation logic
96
+ - MCP generation logic with connections
96
97
  - Error handling scenarios
98
+ - CLI command functionality
99
+ - Session restoration
100
+ - Vibe mode behavior
97
101
 
98
102
  ## Dependencies
99
103
 
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Claude Swarm
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/claude_swarm.svg?cache_bust=0.1.14)](https://badge.fury.io/rb/claude_swarm)
3
+ [![Gem Version](https://badge.fury.io/rb/claude_swarm.svg?cache_bust=0.1.15)](https://badge.fury.io/rb/claude_swarm)
4
4
  [![CI](https://github.com/parruda/claude-swarm/actions/workflows/ci.yml/badge.svg)](https://github.com/parruda/claude-swarm/actions/workflows/ci.yml)
5
5
 
6
6
  Claude Swarm orchestrates multiple Claude Code instances as a collaborative AI development team. It enables running AI agents with specialized roles, tools, and directory contexts, communicating via MCP (Model Context Protocol) in a tree-like hierarchy. Define your swarm topology in simple YAML and let Claude instances delegate tasks through connected instances. Perfect for complex projects requiring specialized AI agents for frontend, backend, testing, DevOps, or research tasks.
@@ -113,7 +113,7 @@ swarm:
113
113
  directory: ./web-frontend/src
114
114
  model: opus
115
115
  prompt: "You specialize in React components and state management"
116
- allowed_tools: [Edit, Write, "Bash(npm:*)"]
116
+ allowed_tools: [Edit, Write, Bash]
117
117
 
118
118
  css_expert:
119
119
  description: "CSS specialist handling styling and responsive design"
@@ -142,7 +142,7 @@ swarm:
142
142
  directory: ./api-server/db
143
143
  model: opus
144
144
  prompt: "You handle database schema and migrations"
145
- allowed_tools: [Edit, Write, "Bash(psql:*, migrate:*)"]
145
+ allowed_tools: [Edit, Write, Bash]
146
146
 
147
147
  mobile_lead:
148
148
  description: "Mobile team lead coordinating cross-platform development"
@@ -157,21 +157,21 @@ swarm:
157
157
  directory: ./mobile-app/ios
158
158
  model: opus
159
159
  prompt: "You develop the iOS application"
160
- allowed_tools: [Edit, Write, "Bash(xcodebuild:*, pod:*)"]
160
+ allowed_tools: [Edit, Write, Bash]
161
161
 
162
162
  android_dev:
163
163
  description: "Android developer creating native Android apps"
164
164
  directory: ./mobile-app/android
165
165
  model: opus
166
166
  prompt: "You develop the Android application"
167
- allowed_tools: [Edit, Write, "Bash(gradle:*, adb:*)"]
167
+ allowed_tools: [Edit, Write, Bash]
168
168
 
169
169
  devops:
170
170
  description: "DevOps engineer managing CI/CD and infrastructure"
171
171
  directory: ./infrastructure
172
172
  model: opus
173
173
  prompt: "You handle CI/CD and infrastructure"
174
- allowed_tools: [Read, Edit, "Bash(docker:*, kubectl:*)"]
174
+ allowed_tools: [Read, Edit, Bash]
175
175
  ```
176
176
 
177
177
  In this setup:
@@ -179,6 +179,7 @@ In this setup:
179
179
  - Each team lead can work with their specialized developers
180
180
  - Each instance is independent - connections create separate MCP server instances
181
181
  - Teams work in isolated directories with role-appropriate tools
182
+ - Connected instances are accessible via MCP tools like `mcp__frontend_lead__task`, `mcp__backend_lead__task`, etc.
182
183
 
183
184
 
184
185
  ### Configuration Format
@@ -202,8 +203,8 @@ Each instance must have:
202
203
 
203
204
  Each instance can have:
204
205
 
205
- - **directory**: Working directory for this instance (can use ~ for home)
206
- - **model**: Claude model to use (opus, sonnet, haiku)
206
+ - **directory**: Working directory for this instance (can use ~ for home). Can be a string for a single directory or an array of strings for multiple directories
207
+ - **model**: Claude model to use (opus, sonnet)
207
208
  - **connections**: Array of other instances this one can communicate with
208
209
  - **allowed_tools**: Array of tools this instance can use (backward compatible with `tools`)
209
210
  - **disallowed_tools**: Array of tools to explicitly deny (takes precedence over allowed_tools)
@@ -272,23 +273,22 @@ allowed_tools:
272
273
  - WebFetch # Fetch web content
273
274
  - WebSearch # Search the web
274
275
 
275
- disallowed_tools: # Optional: explicitly deny specific tools
276
- - "Write(*.md)" # Don't allow writing markdown files
277
- - "Bash(rm:*)" # Don't allow rm commands
276
+ # Note: Pattern-based tool restrictions have been deprecated.
277
+ # Use allowed_tools and disallowed_tools with tool names only.
278
278
  ```
279
279
 
280
280
  Tools are passed to Claude using the `--allowedTools` and `--disallowedTools` flags with comma-separated values. Disallowed tools take precedence over allowed tools.
281
281
 
282
- #### Tool Restrictions
283
-
284
- You can restrict tools with pattern-based filters:
282
+ #### Available Tools
285
283
 
286
284
  ```yaml
287
285
  allowed_tools:
288
- - Read # Unrestricted read access
289
- - Edit # Unrestricted edit access
290
- - "Bash(npm:*)" # Only allow npm commands
291
- - "Bash(git:*, make:*)" # Only allow git and make commands
286
+ - Read # File reading
287
+ - Edit # File editing
288
+ - Write # File creation
289
+ - Bash # Command execution
290
+ - WebFetch # Fetch web content
291
+ - WebSearch # Search the web
292
292
  ```
293
293
 
294
294
  ### Examples
@@ -336,7 +336,7 @@ swarm:
336
336
  database:
337
337
  description: "Database administrator managing data persistence"
338
338
  directory: ./db
339
- model: haiku
339
+ model: sonnet
340
340
  allowed_tools:
341
341
  - Read
342
342
  - Bash
@@ -398,6 +398,36 @@ swarm:
398
398
  - Read
399
399
  ```
400
400
 
401
+ #### Multi-Directory Support
402
+
403
+ Instances can have access to multiple directories using an array (uses `claude --add-dir`):
404
+
405
+ ```yaml
406
+ version: 1
407
+ swarm:
408
+ name: "Multi-Module Project"
409
+ main: fullstack_dev
410
+ instances:
411
+ fullstack_dev:
412
+ description: "Full-stack developer working across multiple modules"
413
+ directory: [./frontend, ./backend, ./shared] # Access to multiple directories
414
+ model: opus
415
+ allowed_tools: [Read, Edit, Write, Bash]
416
+ prompt: "You work across frontend, backend, and shared code modules"
417
+
418
+ documentation_writer:
419
+ description: "Documentation specialist with access to code and docs"
420
+ directory: ["./docs", "./src", "./examples"] # Multiple directories as array
421
+ model: sonnet
422
+ allowed_tools: [Read, Write, Edit]
423
+ prompt: "You maintain documentation based on code and examples"
424
+ ```
425
+
426
+ When using multiple directories:
427
+ - The first directory in the array is the primary working directory
428
+ - Additional directories are accessible via the `--add-dir` flag in Claude
429
+ - All directories must exist or the configuration will fail validation
430
+
401
431
  #### Mixed Permission Modes
402
432
 
403
433
  You can have different permission modes for different instances:
@@ -419,7 +449,7 @@ swarm:
419
449
  description: "Worker with restricted permissions"
420
450
  directory: ./sensitive
421
451
  model: sonnet
422
- allowed_tools: [Read, "Bash(ls:*)"] # Only allow read and ls commands
452
+ allowed_tools: [Read, Bash] # Allow read and bash commands
423
453
 
424
454
  trusted_worker:
425
455
  description: "Trusted worker with more permissions"
@@ -450,21 +480,77 @@ claude-swarm --prompt "Fix the bug in the payment module"
450
480
  claude-swarm --session-id 20241206_143022
451
481
  claude-swarm --session-id ~/path/to/session
452
482
 
453
- # List available sessions
454
- claude-swarm list-sessions
455
- claude-swarm list-sessions --limit 20
456
-
457
483
  # Show version
458
484
  claude-swarm version
459
485
 
460
- # Start permission MCP server (for testing/debugging)
461
- claude-swarm tools-mcp --allowed-tools 'mcp__frontend__*,mcp__backend__*'
462
- claude-swarm tools-mcp --allowed-tools 'Read,Edit' --disallowed-tools 'Edit(*.log)'
486
+ # Note: The permission MCP server has been deprecated.
487
+ # Tool permissions are now handled through allowed_tools and disallowed_tools in your configuration.
463
488
 
464
489
  # Internal command for MCP server (used by connected instances)
465
490
  claude-swarm mcp-serve INSTANCE_NAME --config CONFIG_FILE --session-timestamp TIMESTAMP
466
491
  ```
467
492
 
493
+ ### Session Monitoring
494
+
495
+ Claude Swarm provides commands to monitor and inspect running sessions:
496
+
497
+ ```bash
498
+ # List running swarm sessions with costs and uptime
499
+ claude-swarm ps
500
+
501
+ # Show detailed information about a session including instance hierarchy
502
+ claude-swarm show 20250617_235233
503
+
504
+ # Watch live logs from a session
505
+ claude-swarm watch 20250617_235233
506
+
507
+ # Watch logs starting from the last 50 lines
508
+ claude-swarm watch 20250617_235233 -n 50
509
+
510
+ # List all available sessions (including completed ones)
511
+ claude-swarm list-sessions
512
+ claude-swarm list-sessions --limit 20
513
+
514
+ # Clean up stale session symlinks
515
+ claude-swarm clean
516
+
517
+ # Remove sessions older than 30 days
518
+ claude-swarm clean --days 30
519
+ ```
520
+
521
+ Example output from `claude-swarm ps`:
522
+ ```
523
+ ⚠️ Total cost does not include the cost of the main instance
524
+
525
+ SESSION_ID SWARM_NAME TOTAL_COST UPTIME DIRECTORY
526
+ -------------------------------------------------------------------------------
527
+ 20250617_235233 Feature Development $0.3847 15m .
528
+ 20250617_143022 Bug Investigation $1.2156 1h ./shopify
529
+ 20250617_091547 Multi-Module Dev $0.8932 30m ./frontend, ./backend, ./shared
530
+ ```
531
+
532
+ Note: The total cost shown reflects only the costs of connected instances called via MCP. The main instance cost is not tracked when running interactively.
533
+
534
+ Example output from `claude-swarm show`:
535
+ ```
536
+ Session: 20250617_235233
537
+ Swarm: Feature Development
538
+ Total Cost: $0.3847 (excluding main instance)
539
+ Start Directory: /Users/paulo/project
540
+
541
+ Instance Hierarchy:
542
+ --------------------------------------------------
543
+ ├─ orchestrator [main] (orchestrator_e85036fc)
544
+ Cost: n/a (interactive) | Calls: 0
545
+ └─ test_archaeologist (test_archaeologist_c504ca5f)
546
+ Cost: $0.1925 | Calls: 1
547
+ └─ pr_analyst (pr_analyst_bfbefe56)
548
+ Cost: $0.1922 | Calls: 1
549
+
550
+ Note: Main instance (orchestrator) cost is not tracked in interactive mode.
551
+ View costs directly in the Claude interface.
552
+ ```
553
+
468
554
  ### Session Management and Restoration (Experimental)
469
555
 
470
556
  Claude Swarm provides experimental session management with restoration capabilities. **Note: This feature is experimental and has limitations - the main instance's conversation context is not fully restored.**
@@ -477,7 +563,7 @@ All session files are organized in `~/.claude-swarm/sessions/{project}/{timestam
477
563
  - `{instance_name}.mcp.json`: MCP configuration files
478
564
  - `session.log`: Human-readable request/response tracking
479
565
  - `session.log.json`: All events in JSONL format (one JSON per line)
480
- - `permissions.log`: Permission checks and decisions
566
+ # Note: permissions.log is no longer generated as the permission MCP server has been deprecated
481
567
 
482
568
  #### Listing Sessions
483
569
  View your previous Claude Swarm sessions:
@@ -503,10 +589,10 @@ Resume a previous session with all instances restored to their Claude session st
503
589
 
504
590
  ```bash
505
591
  # Resume by session ID
506
- claude-swarm --session-id 20241206_143022
592
+ claude-swarm --session-id 20250617_143022
507
593
 
508
594
  # Resume by full path
509
- claude-swarm --session-id ~/.claude-swarm/sessions/my-project/20241206_143022
595
+ claude-swarm --session-id ~/.claude-swarm/sessions/my-project/20250617_143022
510
596
  ```
511
597
 
512
598
  This will:
@@ -535,15 +621,11 @@ This will:
535
621
  2. **MCP Generation**: For each instance, it generates an MCP configuration file that includes:
536
622
  - Any explicitly defined MCP servers
537
623
  - MCP servers for each connected instance (using `claude-swarm mcp-serve`)
538
- - A permission MCP server (unless using `--vibe` mode)
539
- 3. **Tool Permissions**: Claude Swarm automatically manages tool permissions:
540
- - Each instance's configured tools are allowed via the permission MCP
541
- - Supports wildcard patterns (e.g., `mcp__frontend__*` allows all frontend MCP tools)
624
+ 3. **Tool Permissions**: Claude Swarm manages tool permissions through configuration:
625
+ - Each instance's `allowed_tools` specifies which tools it can use
626
+ - Connected instances are accessible via `mcp__<instance_name>__*` pattern
542
627
  - Disallowed tools take precedence over allowed tools for fine-grained control
543
- - Eliminates the need to manually accept each tool or use global `--vibe` mode
544
628
  - Per-instance `vibe: true` skips all permission checks for that specific instance
545
- - The permission MCP uses `--permission-prompt-tool` to check tool access
546
- - Permission decisions are logged to `~/.claude-swarm/sessions/{project}/{timestamp}/permissions.log`
547
629
  4. **Session Persistence**: Claude Swarm automatically tracks session state:
548
630
  - Generates a shared session path for all instances
549
631
  - Each instance's Claude session ID is captured and saved
data/claude-swarm.yml CHANGED
@@ -1,42 +1,26 @@
1
1
  version: 1
2
2
  swarm:
3
3
  name: "Swarm Name"
4
- main: lead_developer
4
+ main: claude_swarm_architect
5
5
  instances:
6
- lead_developer:
7
- description: "Lead developer who coordinates the team and makes architectural decisions"
8
- directory: .
9
- model: sonnet
10
- prompt: "You are the lead developer coordinating the team"
11
- allowed_tools: [Read, Edit, Bash, Write]
12
- connections: [frontend_dev, backend_dev]
6
+ claude_swarm_architect:
7
+ description: "Lead architect"
8
+ directory:
9
+ - .
10
+ - /Users/paulo/src/github.com/shopify-playground/claudeception
11
+ model: opus
12
+ prompt: "You are an expert in Claude swarm architecture"
13
+ vibe: true
14
+ connections: [claudeception_architect]
13
15
 
14
16
  # Example instances (uncomment and modify as needed):
15
17
 
16
- frontend_dev:
17
- description: "Frontend developer specializing in React and modern web technologies"
18
- directory: .
19
- model: sonnet
20
- prompt: "You specialize in frontend development with React, TypeScript, and modern web technologies"
21
- allowed_tools: [Read, Edit, Write, "Bash(npm:*)", "Bash(yarn:*)", "Bash(pnpm:*)"]
18
+ claudeception_architect:
19
+ description: "You are an expert in Claudeception architecture"
20
+ directory:
21
+ - .
22
+ - /Users/paulo/src/github.com/shopify-playground/claudeception
23
+ model: opus
24
+ prompt: "You are an expert in Claudeception architecture"
25
+ vibe: true
22
26
 
23
- backend_dev:
24
- description: "Backend developer focusing on APIs, databases, and server architecture"
25
- directory: .
26
- model: sonnet
27
- prompt: "You specialize in backend development, APIs, databases, and server architecture"
28
- allowed_tools: [Read, Edit, Write, Bash]
29
-
30
- # devops_engineer:
31
- # description: "DevOps engineer managing infrastructure, CI/CD, and deployments"
32
- # directory: .
33
- # model: sonnet
34
- # prompt: "You specialize in infrastructure, CI/CD, containerization, and deployment"
35
- # allowed_tools: [Read, Edit, Write, "Bash(docker:*)", "Bash(kubectl:*)", "Bash(terraform:*)"]
36
-
37
- # qa_engineer:
38
- # description: "QA engineer ensuring quality through comprehensive testing"
39
- # directory: ./tests
40
- # model: sonnet
41
- # prompt: "You specialize in testing, quality assurance, and test automation"
42
- # allowed_tools: [Read, Edit, Write, Bash]
@@ -58,7 +58,7 @@ swarm:
58
58
  allowed_tools:
59
59
  - Edit
60
60
  - Write
61
- - "Bash(npm:*, yarn:*, jest:*)"
61
+ - Bash
62
62
 
63
63
  ui_designer:
64
64
  description: "UI/UX specialist creating responsive designs and managing design system"
@@ -91,7 +91,7 @@ swarm:
91
91
  allowed_tools:
92
92
  - Edit
93
93
  - Write
94
- - "Bash(go:*, docker:*, make:*)"
94
+ - Bash
95
95
 
96
96
  api_gateway_dev:
97
97
  description: "API gateway developer managing request routing and rate limiting"
@@ -101,7 +101,7 @@ swarm:
101
101
  allowed_tools:
102
102
  - Edit
103
103
  - Write
104
- - "Bash(go:*, docker:*, kong:*)"
104
+ - Bash
105
105
 
106
106
  core_service_dev:
107
107
  description: "Core business logic service developer"
@@ -111,7 +111,7 @@ swarm:
111
111
  allowed_tools:
112
112
  - Edit
113
113
  - Write
114
- - "Bash(python:*, pip:*, pytest:*, docker:*)"
114
+ - Bash
115
115
 
116
116
  shared_lib_dev:
117
117
  description: "Shared libraries developer maintaining common code across services"
@@ -122,7 +122,7 @@ swarm:
122
122
  allowed_tools:
123
123
  - Edit
124
124
  - Write
125
- - "Bash(npm:*, go:*, python:*)"
125
+ - Bash
126
126
 
127
127
  # Mobile Team
128
128
  mobile_lead:
@@ -143,7 +143,7 @@ swarm:
143
143
  allowed_tools:
144
144
  - Edit
145
145
  - Write
146
- - "Bash(swift:*, xcodebuild:*, pod:*, fastlane:*)"
146
+ - Bash
147
147
 
148
148
  android_senior:
149
149
  description: "Senior Android developer creating Kotlin applications"
@@ -153,7 +153,7 @@ swarm:
153
153
  allowed_tools:
154
154
  - Edit
155
155
  - Write
156
- - "Bash(gradle:*, adb:*, fastlane:*)"
156
+ - Bash
157
157
 
158
158
  # Data Team
159
159
  data_lead:
@@ -175,7 +175,7 @@ swarm:
175
175
  allowed_tools:
176
176
  - Edit
177
177
  - Write
178
- - "Bash(python:*, airflow:*, spark:*, dbt:*)"
178
+ - Bash
179
179
 
180
180
  ml_engineer:
181
181
  description: "ML engineer developing and deploying machine learning models"
@@ -185,7 +185,7 @@ swarm:
185
185
  allowed_tools:
186
186
  - Edit
187
187
  - Write
188
- - "Bash(python:*, jupyter:*, mlflow:*, docker:*)"
188
+ - Bash
189
189
 
190
190
  analytics_dev:
191
191
  description: "Analytics developer creating dashboards and reports"
@@ -195,7 +195,7 @@ swarm:
195
195
  allowed_tools:
196
196
  - Edit
197
197
  - Write
198
- - "Bash(python:*, sql:*)"
198
+ - Bash
199
199
 
200
200
  # DevOps & Infrastructure
201
201
  devops_lead:
@@ -217,7 +217,7 @@ swarm:
217
217
  allowed_tools:
218
218
  - Edit
219
219
  - Write
220
- - "Bash(kubectl:*, helm:*, prometheus:*, grafana:*)"
220
+ - Bash
221
221
 
222
222
  platform_engineer:
223
223
  description: "Platform engineer managing Kubernetes and container infrastructure"
@@ -227,7 +227,7 @@ swarm:
227
227
  allowed_tools:
228
228
  - Edit
229
229
  - Write
230
- - "Bash(kubectl:*, helm:*, docker:*, istioctl:*)"
230
+ - Bash
231
231
 
232
232
  cloud_architect:
233
233
  description: "Cloud architect managing AWS/GCP infrastructure and costs"
@@ -237,7 +237,7 @@ swarm:
237
237
  allowed_tools:
238
238
  - Edit
239
239
  - Write
240
- - "Bash(terraform:*, aws:*, gcloud:*)"
240
+ - Bash
241
241
 
242
242
  # Quality & Security
243
243
  qa_lead:
@@ -259,7 +259,7 @@ swarm:
259
259
  allowed_tools:
260
260
  - Edit
261
261
  - Write
262
- - "Bash(npm:*, cypress:*, playwright:*)"
262
+ - Bash
263
263
 
264
264
  backend_qa:
265
265
  description: "Backend QA engineer creating API tests and integration tests"
@@ -269,7 +269,7 @@ swarm:
269
269
  allowed_tools:
270
270
  - Edit
271
271
  - Write
272
- - "Bash(python:*, pytest:*, postman:*, k6:*)"
272
+ - Bash
273
273
 
274
274
  mobile_qa:
275
275
  description: "Mobile QA engineer testing iOS and Android applications"
@@ -279,7 +279,7 @@ swarm:
279
279
  allowed_tools:
280
280
  - Edit
281
281
  - Write
282
- - "Bash(appium:*, xctest:*, espresso:*)"
282
+ - Bash
283
283
 
284
284
  security_lead:
285
285
  description: "Security lead ensuring application and infrastructure security"
@@ -290,4 +290,4 @@ swarm:
290
290
  allowed_tools:
291
291
  - Read
292
292
  - Edit
293
- - "Bash(trivy:*, snyk:*, owasp:*)"
293
+ - Bash
@@ -70,7 +70,7 @@ swarm:
70
70
  - Read
71
71
  - Edit
72
72
  - Write
73
- - "Bash(bundle:*)"
73
+ - Bash
74
74
 
75
75
  integration_test_expert:
76
76
  description: "Integration test specialist for controllers, API endpoints, and request specs"
@@ -111,7 +111,7 @@ swarm:
111
111
  - Read
112
112
  - Edit
113
113
  - Write
114
- - "Bash(bundle:*, rails:*)"
114
+ - Bash
115
115
 
116
116
  system_test_expert:
117
117
  description: "System test specialist for end-to-end user flows and JavaScript interactions"
@@ -154,7 +154,7 @@ swarm:
154
154
  - Read
155
155
  - Edit
156
156
  - Write
157
- - "Bash(bundle:*)"
157
+ - Bash
158
158
 
159
159
  factory_specialist:
160
160
  description: "Test data specialist managing factories, traits, and test data generation"
@@ -198,7 +198,7 @@ swarm:
198
198
  - Read
199
199
  - Edit
200
200
  - Write
201
- - "Bash(bundle:*)"
201
+ - Bash
202
202
 
203
203
  test_quality_reviewer:
204
204
  description: "Test quality assurance specialist ensuring best practices, coverage, and maintainability"
@@ -243,4 +243,4 @@ swarm:
243
243
  Provide actionable feedback to improve test quality and coverage.
244
244
  allowed_tools:
245
245
  - Read
246
- - "Bash(bundle:*, rubocop:*)"
246
+ - Bash
@@ -0,0 +1,26 @@
1
+ version: 1
2
+ swarm:
3
+ name: "Monitoring Demo"
4
+ main: coordinator
5
+ instances:
6
+ coordinator:
7
+ description: "Main coordinator managing the team"
8
+ directory: .
9
+ model: haiku
10
+ connections: [analyzer, reporter]
11
+ prompt: "You coordinate analysis and reporting tasks"
12
+ allowed_tools: [Read, Edit]
13
+
14
+ analyzer:
15
+ description: "Data analyzer processing information"
16
+ directory: ./data
17
+ model: haiku
18
+ prompt: "You analyze data and provide insights"
19
+ allowed_tools: [Read, Bash]
20
+
21
+ reporter:
22
+ description: "Report generator creating summaries"
23
+ directory: ./reports
24
+ model: haiku
25
+ prompt: "You generate reports from analysis"
26
+ allowed_tools: [Write, Edit]