codeswarm 0.1.0
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/.codeswarm/skills/prd_template.md +98 -0
- package/AGENT_TIPS.md +206 -0
- package/BROWSER_TESTING.md +177 -0
- package/COORDINATOR.md +151 -0
- package/LICENSE +21 -0
- package/README.md +253 -0
- package/TASK_PROTOCOL.md +111 -0
- package/WORKFLOWS.md +174 -0
- package/bin/codeswarm.js +15 -0
- package/config.yaml +55 -0
- package/coordinator.sh +1762 -0
- package/dashboard/package-lock.json +1036 -0
- package/dashboard/package.json +14 -0
- package/dashboard/public/index.html +758 -0
- package/dashboard/server.js +444 -0
- package/docs/prd-example.md +90 -0
- package/docs/prd-template.md +45 -0
- package/orchestrate.sh +467 -0
- package/package.json +62 -0
- package/playwright.config.ts +19 -0
- package/setup.sh +142 -0
package/README.md
ADDED
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# 🤖 Codeswarm — Multi-Agent AI Orchestration Framework
|
|
2
|
+
|
|
3
|
+
> Coordinate **Claude Code**, **Gemini CLI**, **Codex CLI**, **Amp**, and **OpenCode** as a unified development team with a planner-driven feedback loop.
|
|
4
|
+
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](https://www.npmjs.com/package/codeswarm)
|
|
7
|
+
[](https://nodejs.org)
|
|
8
|
+
|
|
9
|
+
## Why Codeswarm?
|
|
10
|
+
|
|
11
|
+
Instead of running one AI agent at a time, Codeswarm assigns **different roles** to multiple AI agents:
|
|
12
|
+
|
|
13
|
+
- 🧠 **Planner** — Reads your task or PRD, creates a structured execution plan
|
|
14
|
+
- ⚡ **Executor** — Implements the changes according to the plan
|
|
15
|
+
- 🔍 **Reviewer** — Reviews the diff, runs quality checks, provides feedback
|
|
16
|
+
- 🎨 **Frontend Dev** — Handles UI-specific tasks (optional)
|
|
17
|
+
|
|
18
|
+
The planner dynamically issues directives (`EXECUTE`, `REVIEW`, `APPROVE`, `SKIP`, `DONE`) creating an autonomous feedback loop until the work is approved.
|
|
19
|
+
|
|
20
|
+
## Architecture
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
┌─────────────┐
|
|
24
|
+
┌─────│ PLANNER │─────┐
|
|
25
|
+
│ └─────────────┘ │
|
|
26
|
+
│ │ directives │
|
|
27
|
+
│ ▼ │
|
|
28
|
+
│ ┌─────────────┐ │
|
|
29
|
+
replan │ │ EXECUTOR │ │ re-consult on
|
|
30
|
+
request │ └─────────────┘ │ major issues
|
|
31
|
+
│ │ code changes │
|
|
32
|
+
│ ▼ │
|
|
33
|
+
│ ┌─────────────┐ │
|
|
34
|
+
│ │ REVIEWER │─────┘
|
|
35
|
+
│ └──────┬──────┘
|
|
36
|
+
│ ┌─────┴─────┐
|
|
37
|
+
▼ APPROVED NEEDS_CHANGES
|
|
38
|
+
DONE ✓ → loop back to EXECUTOR
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Quick Start
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Install globally
|
|
45
|
+
npm install -g codeswarm
|
|
46
|
+
|
|
47
|
+
# Run with a PRD file
|
|
48
|
+
codeswarm --project ~/my-app --prd docs/feature.md
|
|
49
|
+
|
|
50
|
+
# Run with a task description
|
|
51
|
+
codeswarm --project ~/my-app --task "Add user authentication with JWT"
|
|
52
|
+
|
|
53
|
+
# Run with JSON PRD (ralph-style)
|
|
54
|
+
codeswarm --project ~/my-app --prd prd.json
|
|
55
|
+
|
|
56
|
+
# Use specific agents
|
|
57
|
+
codeswarm --project ~/my-app \
|
|
58
|
+
--task "Fix pagination bug" \
|
|
59
|
+
--planner codex \
|
|
60
|
+
--executor claude \
|
|
61
|
+
--reviewer gemini,amp
|
|
62
|
+
|
|
63
|
+
# Run a complex workflow with a custom plan and dashboard
|
|
64
|
+
codeswarm --project ~/my-project \
|
|
65
|
+
--plan "docs/plan.md" \
|
|
66
|
+
--planner codex \
|
|
67
|
+
--executor claude \
|
|
68
|
+
--reviewer gemini,amp \
|
|
69
|
+
--dashboard
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Features
|
|
73
|
+
|
|
74
|
+
### 🔀 Agent-Agnostic Orchestration
|
|
75
|
+
Mix and match any combination of supported AI coding agents per role:
|
|
76
|
+
|
|
77
|
+
| Agent | CLI | Use As |
|
|
78
|
+
|-------|-----|--------|
|
|
79
|
+
| **Claude Code** | `claude` | Planner, Executor, Reviewer |
|
|
80
|
+
| **Gemini CLI** | `gemini` | Planner, Executor, Reviewer |
|
|
81
|
+
| **Codex CLI** | `codex` | Planner, Executor, Reviewer |
|
|
82
|
+
| **Amp** | `amp` | Executor, Reviewer |
|
|
83
|
+
| **OpenCode** | `opencode` | Executor, Reviewer |
|
|
84
|
+
|
|
85
|
+
### 📋 PRD-First Workflow
|
|
86
|
+
Feed a Product Requirements Document (PRD) and Codeswarm breaks it into ordered, dependency-aware user stories:
|
|
87
|
+
|
|
88
|
+
- **Markdown PRD** — `### US-001: Title` format with acceptance criteria
|
|
89
|
+
- **JSON PRD** — Ralph-compatible `prd.json` with `userStories` array
|
|
90
|
+
- **Auto-generate** — Provide `--task` and the planner generates a PRD first
|
|
91
|
+
|
|
92
|
+
### 📊 Real-Time Dashboard
|
|
93
|
+
Built-in monitoring dashboard with WebSocket live updates:
|
|
94
|
+
|
|
95
|
+
- Agent flow visualization (who's running what)
|
|
96
|
+
- **Log search** with `Ctrl+F` — search within agent output logs
|
|
97
|
+
- **Log download** — export raw agent logs
|
|
98
|
+
- **Phase detection** — see if agent is Reading, Implementing, Testing, Building
|
|
99
|
+
- **PRD progress** — per-story acceptance criteria pass/fail tracking
|
|
100
|
+
- **Directive timeline** — visual history of EXECUTE → REVIEW → APPROVE flow
|
|
101
|
+
- Subtask progress with live status updates
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Start with dashboard
|
|
105
|
+
codeswarm --project ~/my-app --prd docs/feature.md --dashboard
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 🛡️ Safety Features
|
|
109
|
+
- **Watchdog timer** — kills stuck agents that produce no output
|
|
110
|
+
- **Retry logic** — handles transient agent failures (API timeouts, connection resets)
|
|
111
|
+
- **Session audit trail** — every prompt/log/directive saved to `.codeswarm/sessions/`
|
|
112
|
+
- **Dry-run mode** — preview all prompts without executing agents
|
|
113
|
+
|
|
114
|
+
## Project Structure
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
codeswarm/
|
|
118
|
+
├── bin/
|
|
119
|
+
│ └── codeswarm.js # CLI entry point (npm global binary)
|
|
120
|
+
├── coordinator.sh # Core orchestration engine (v7.0)
|
|
121
|
+
├── orchestrate.sh # Legacy sequential pipeline
|
|
122
|
+
├── setup.sh # Dependency installer
|
|
123
|
+
├── config.yaml # Default agent roles, models, timeouts
|
|
124
|
+
├── dashboard/
|
|
125
|
+
│ ├── server.js # Express + WebSocket dashboard server
|
|
126
|
+
│ ├── package.json # Dashboard dependencies
|
|
127
|
+
│ └── public/
|
|
128
|
+
│ └── index.html # Dashboard SPA (dark theme, live UI)
|
|
129
|
+
├── .codeswarm/
|
|
130
|
+
│ └── skills/
|
|
131
|
+
│ └── prd_template.md # PRD generation skill for planner agents
|
|
132
|
+
├── docs/
|
|
133
|
+
│ ├── prd-template.md # PRD format template
|
|
134
|
+
│ └── prd-example.md # Example PRD
|
|
135
|
+
├── COORDINATOR.md # Coordinator architecture docs
|
|
136
|
+
├── AGENT_TIPS.md # Per-agent configuration tips
|
|
137
|
+
├── TASK_PROTOCOL.md # How agents communicate via shared files
|
|
138
|
+
├── BROWSER_TESTING.md # Frontend testing with Playwright MCP
|
|
139
|
+
├── WORKFLOWS.md # Workflow definitions
|
|
140
|
+
├── playwright.config.ts # Playwright test configuration
|
|
141
|
+
└── package.json # npm package manifest
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## CLI Reference
|
|
145
|
+
|
|
146
|
+
| Flag | Description | Default |
|
|
147
|
+
|------|-------------|---------|
|
|
148
|
+
| `--project` | Target project directory | **required** |
|
|
149
|
+
| `--task` | Task description (auto-generates PRD) | — |
|
|
150
|
+
| `--prd` | PRD file path (`.md` or `.json`) | — |
|
|
151
|
+
| `--plan` | Existing plan file (skip planning) | — |
|
|
152
|
+
| `--planner` | Agent for planning | `codex` |
|
|
153
|
+
| `--executor` | Agent for execution | `claude` |
|
|
154
|
+
| `--reviewer` | Agent(s) for review (comma-separated) | `gemini` |
|
|
155
|
+
| `--fe-dev` | Frontend executor agent | — |
|
|
156
|
+
| `--fe-reviewer` | Frontend reviewer agent(s) | — |
|
|
157
|
+
| `--max-rounds` | Max planner rounds | `10` |
|
|
158
|
+
| `--max-iterations` | Max execute→review cycles per subtask | `5` |
|
|
159
|
+
| `--dashboard` | Start real-time dashboard | `false` |
|
|
160
|
+
| `--tmux` | Use tmux for agent terminals | `false` |
|
|
161
|
+
| `--dry-run` | Print prompts without executing | `false` |
|
|
162
|
+
| `--verbose` | Show full agent output | `false` |
|
|
163
|
+
| `--context` | Comma-separated context files | — |
|
|
164
|
+
|
|
165
|
+
## Configuration
|
|
166
|
+
|
|
167
|
+
Edit `config.yaml` to set defaults:
|
|
168
|
+
|
|
169
|
+
```yaml
|
|
170
|
+
roles:
|
|
171
|
+
planner: claude
|
|
172
|
+
executor: gemini
|
|
173
|
+
reviewer: codex
|
|
174
|
+
|
|
175
|
+
models:
|
|
176
|
+
claude: opus
|
|
177
|
+
gemini: "" # uses default
|
|
178
|
+
codex: "" # uses default
|
|
179
|
+
|
|
180
|
+
timeouts:
|
|
181
|
+
planner: 300
|
|
182
|
+
executor: 600
|
|
183
|
+
reviewer: 300
|
|
184
|
+
|
|
185
|
+
hooks:
|
|
186
|
+
after_plan: "" # e.g. "./hooks/validate-plan.sh"
|
|
187
|
+
after_execute: "" # e.g. "npm run build && npm test"
|
|
188
|
+
after_review: "" # e.g. "./hooks/notify-slack.sh"
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Session Artifacts
|
|
192
|
+
|
|
193
|
+
After a run, find everything under your project:
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
<project>/.codeswarm/
|
|
197
|
+
├── task.md # Current task plan
|
|
198
|
+
├── sessions/session_<timestamp>/
|
|
199
|
+
│ ├── coordinator.log # Full orchestration log
|
|
200
|
+
│ ├── metadata.json # Agent roles metadata
|
|
201
|
+
│ ├── prompt_001_codex.md # Exact prompt sent to planner
|
|
202
|
+
│ ├── log_001_codex.md # Planner output
|
|
203
|
+
│ ├── prompt_002_claude.md # Executor prompt
|
|
204
|
+
│ ├── log_002_claude.md # Executor output
|
|
205
|
+
│ ├── prompt_003_gemini.md # Reviewer prompt
|
|
206
|
+
│ ├── log_003_gemini.md # Reviewer output
|
|
207
|
+
│ └── directives/
|
|
208
|
+
│ ├── directive_001.md # EXECUTE #1
|
|
209
|
+
│ ├── directive_002.md # REVIEW #1
|
|
210
|
+
│ └── directive_003.md # APPROVE #1
|
|
211
|
+
└── docs/tasks/ # Archived completed tasks
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Documentation
|
|
215
|
+
|
|
216
|
+
| Document | Description |
|
|
217
|
+
|----------|-------------|
|
|
218
|
+
| [COORDINATOR.md](./COORDINATOR.md) | Architecture deep-dive and flow diagram |
|
|
219
|
+
| [TASK_PROTOCOL.md](./TASK_PROTOCOL.md) | How agents communicate via shared files |
|
|
220
|
+
| [AGENT_TIPS.md](./AGENT_TIPS.md) | Per-agent configuration and tips |
|
|
221
|
+
| [BROWSER_TESTING.md](./BROWSER_TESTING.md) | Frontend testing with Playwright MCP |
|
|
222
|
+
| [WORKFLOWS.md](./WORKFLOWS.md) | Workflow definitions |
|
|
223
|
+
| [config.yaml](./config.yaml) | Default role assignments and settings |
|
|
224
|
+
|
|
225
|
+
## Requirements
|
|
226
|
+
|
|
227
|
+
- **Node.js** ≥ 18
|
|
228
|
+
- **Bash** ≥ 4.0
|
|
229
|
+
- At least one AI coding CLI installed:
|
|
230
|
+
- [Claude Code](https://github.com/anthropics/claude-code): `npm i -g @anthropic/claude-code`
|
|
231
|
+
- [Gemini CLI](https://github.com/google-gemini/gemini-cli): `npm i -g @anthropic/gemini-cli`
|
|
232
|
+
- [Codex CLI](https://github.com/openai/codex): `npm i -g @openai/codex`
|
|
233
|
+
- [Amp](https://ampcode.com): Install from website
|
|
234
|
+
- [OpenCode](https://opencode.ai): Install from website
|
|
235
|
+
- **jq** (optional, for JSON PRD support): `brew install jq`
|
|
236
|
+
|
|
237
|
+
## Contributing
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
# Clone the repo
|
|
241
|
+
git clone https://github.com/mskutlu/codeswarm.git
|
|
242
|
+
cd codeswarm
|
|
243
|
+
|
|
244
|
+
# Install dependencies
|
|
245
|
+
./setup.sh
|
|
246
|
+
|
|
247
|
+
# Run tests
|
|
248
|
+
./coordinator.sh --project /tmp/test-project --prd docs/prd-example.md --dry-run
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## License
|
|
252
|
+
|
|
253
|
+
MIT © [mskutlu](https://github.com/mskutlu)
|
package/TASK_PROTOCOL.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Task Protocol — Inter-Agent Communication
|
|
2
|
+
|
|
3
|
+
This document defines how agents communicate through the shared `.codeswarm/` directory.
|
|
4
|
+
|
|
5
|
+
## Directory Structure
|
|
6
|
+
|
|
7
|
+
Every project that uses the orchestrator gets a `.codeswarm/` directory:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
<project-root>/
|
|
11
|
+
└── .codeswarm/
|
|
12
|
+
├── plan.md # Planner output
|
|
13
|
+
├── execution.log # Executor output
|
|
14
|
+
├── review.md # Reviewer output
|
|
15
|
+
├── test-report.md # Browser test results
|
|
16
|
+
├── screenshots/ # Browser test screenshots
|
|
17
|
+
│ ├── step-01-login.png
|
|
18
|
+
│ ├── step-02-navigate.png
|
|
19
|
+
│ └── ...
|
|
20
|
+
└── report-<timestamp>.md # Final orchestration report
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Message Format
|
|
24
|
+
|
|
25
|
+
All inter-agent files use **Markdown** with structured sections. This ensures both humans and agents can read them.
|
|
26
|
+
|
|
27
|
+
### Plan (plan.md)
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
# Implementation Plan
|
|
31
|
+
|
|
32
|
+
## Task Summary
|
|
33
|
+
<What needs to be done>
|
|
34
|
+
|
|
35
|
+
## File Changes
|
|
36
|
+
### [MODIFY] src/main/java/com/app/Service.java
|
|
37
|
+
- Add new method `processLeave()`
|
|
38
|
+
- Inject `NotificationService`
|
|
39
|
+
|
|
40
|
+
### [NEW] src/main/java/com/app/dto/LeaveRequestDTO.java
|
|
41
|
+
- Fields: employeeId, startDate, endDate, type
|
|
42
|
+
|
|
43
|
+
## Testing Strategy
|
|
44
|
+
- Unit test for `processLeave()`
|
|
45
|
+
- Integration test for API endpoint
|
|
46
|
+
|
|
47
|
+
## Risk Assessment
|
|
48
|
+
- Breaking change to existing API contract
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Execution Log (execution.log)
|
|
52
|
+
|
|
53
|
+
Raw output from the executor agent. Contains:
|
|
54
|
+
- Files read and modified
|
|
55
|
+
- Commands executed (build, test)
|
|
56
|
+
- Any errors or warnings
|
|
57
|
+
- Deviations from the plan
|
|
58
|
+
|
|
59
|
+
### Review (review.md)
|
|
60
|
+
|
|
61
|
+
```markdown
|
|
62
|
+
# Code Review Report
|
|
63
|
+
|
|
64
|
+
## Summary
|
|
65
|
+
**Verdict:** APPROVED | NEEDS_CHANGES | REJECTED
|
|
66
|
+
|
|
67
|
+
## Findings
|
|
68
|
+
### Critical
|
|
69
|
+
- None
|
|
70
|
+
|
|
71
|
+
### Warnings
|
|
72
|
+
- Missing null check in processLeave() line 45
|
|
73
|
+
|
|
74
|
+
### Suggestions
|
|
75
|
+
- Consider using Optional<> for return type
|
|
76
|
+
|
|
77
|
+
## Plan Adherence
|
|
78
|
+
All planned changes implemented correctly.
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Agent Prompting Rules
|
|
82
|
+
|
|
83
|
+
1. **Planner** receives: task description + project context
|
|
84
|
+
2. **Executor** receives: task description + plan.md content
|
|
85
|
+
3. **Reviewer** receives: task description + plan.md + git diff
|
|
86
|
+
|
|
87
|
+
Each agent should:
|
|
88
|
+
- Stay in its role (don't plan during execution, don't execute during review)
|
|
89
|
+
- Reference file paths relative to project root
|
|
90
|
+
- Use structured markdown for outputs
|
|
91
|
+
- Flag blockers immediately
|
|
92
|
+
|
|
93
|
+
## IDE Integration (Windsurf / Antigravity)
|
|
94
|
+
|
|
95
|
+
IDEs can participate by:
|
|
96
|
+
1. **Reading** `.codeswarm/plan.md` to understand what the CLI agents planned
|
|
97
|
+
2. **Editing** files interactively when the executor needs human guidance
|
|
98
|
+
3. **Running** browser tests using IDE's built-in browser tools
|
|
99
|
+
4. **Reviewing** by opening `review.md` in the IDE's markdown preview
|
|
100
|
+
|
|
101
|
+
### Windsurf Integration
|
|
102
|
+
```
|
|
103
|
+
# In Windsurf, open the project and use Cascade to review:
|
|
104
|
+
"Read .codeswarm/plan.md and implement the changes described in it"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Antigravity Integration
|
|
108
|
+
```
|
|
109
|
+
# In Antigravity, use the built-in browser for visual testing:
|
|
110
|
+
"Read .codeswarm/plan.md, implement changes, then use browser to verify at http://localhost:4200"
|
|
111
|
+
```
|
package/WORKFLOWS.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Advanced Workflows & Examples
|
|
2
|
+
|
|
3
|
+
## Workflow 1: Full-Stack Feature (Backend + Frontend)
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# Step 1: Plan with Claude Opus across both repos
|
|
7
|
+
./orchestrate.sh \
|
|
8
|
+
--project ~/IdeaProjects/blue-flow \
|
|
9
|
+
--task "Add leave approval notification: create REST endpoint in blue-flow, \
|
|
10
|
+
add Kafka event, consume in derin-ui-manager to show real-time toast" \
|
|
11
|
+
--planner claude --model opus
|
|
12
|
+
|
|
13
|
+
# Step 2: Execute backend with Gemini
|
|
14
|
+
./orchestrate.sh \
|
|
15
|
+
--project ~/IdeaProjects/blue-flow \
|
|
16
|
+
--task "Implement the backend changes from plan" \
|
|
17
|
+
--skip-plan --executor gemini --skip-review
|
|
18
|
+
|
|
19
|
+
# Step 3: Execute frontend with Gemini
|
|
20
|
+
./orchestrate.sh \
|
|
21
|
+
--project ~/WebstormProjects/derin-ui-manager \
|
|
22
|
+
--task "Implement the frontend notification toast from plan in blue-flow/.agentic/plan.md" \
|
|
23
|
+
--skip-plan --executor gemini --skip-review
|
|
24
|
+
|
|
25
|
+
# Step 4: Review everything with Codex
|
|
26
|
+
./orchestrate.sh \
|
|
27
|
+
--project ~/IdeaProjects/blue-flow \
|
|
28
|
+
--task "Review all changes for leave approval notification" \
|
|
29
|
+
--skip-plan --reviewer codex
|
|
30
|
+
|
|
31
|
+
# Step 5: Browser test the frontend
|
|
32
|
+
./orchestrate.sh \
|
|
33
|
+
--project ~/WebstormProjects/derin-ui-manager \
|
|
34
|
+
--task "Test leave approval notification appears after triggering approval" \
|
|
35
|
+
--skip-plan --skip-review --browser-test --test-url "http://localhost:4200"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Workflow 2: Bug Fix Pipeline
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# All-in-one: plan, fix, review
|
|
44
|
+
./orchestrate.sh \
|
|
45
|
+
--project ~/IdeaProjects/derin-purchase \
|
|
46
|
+
--task "Fix: Purchase order total calculation returns 0 when \
|
|
47
|
+
discount percentage is applied. Error in PurchaseOrderService.calculateTotal()"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Workflow 3: Code Review Only
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Use Codex to review current uncommitted changes
|
|
56
|
+
cd ~/IdeaProjects/blue-planning
|
|
57
|
+
codex review
|
|
58
|
+
|
|
59
|
+
# Or via orchestrator with only review phase
|
|
60
|
+
./orchestrate.sh \
|
|
61
|
+
--project ~/IdeaProjects/blue-planning \
|
|
62
|
+
--task "Review uncommitted changes for quality and security" \
|
|
63
|
+
--skip-plan --skip-review \
|
|
64
|
+
--reviewer codex
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Workflow 4: Multi-Agent with Claude Agent Teams
|
|
70
|
+
|
|
71
|
+
Use Claude's native `--agents` flag for intra-Claude orchestration:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
claude --agents '{
|
|
75
|
+
"planner": {
|
|
76
|
+
"description": "Plans architecture changes",
|
|
77
|
+
"prompt": "You are a senior architect. Analyze tasks and produce detailed plans.",
|
|
78
|
+
"model": "opus",
|
|
79
|
+
"allowedTools": ["Read", "Bash(find:*,grep:*,cat:*)"]
|
|
80
|
+
},
|
|
81
|
+
"coder": {
|
|
82
|
+
"description": "Implements code changes",
|
|
83
|
+
"prompt": "You implement changes following the plan precisely.",
|
|
84
|
+
"model": "sonnet",
|
|
85
|
+
"allowedTools": ["Read", "Edit", "Bash"]
|
|
86
|
+
},
|
|
87
|
+
"tester": {
|
|
88
|
+
"description": "Tests changes",
|
|
89
|
+
"prompt": "You write and run tests. Use browser tools for UI testing.",
|
|
90
|
+
"model": "sonnet",
|
|
91
|
+
"allowedTools": ["Read", "Bash", "Browser"]
|
|
92
|
+
}
|
|
93
|
+
}' --add-dir ~/IdeaProjects/blue-flow
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Workflow 5: Parallel Multi-Project
|
|
99
|
+
|
|
100
|
+
Run agents in parallel across related services:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
#!/bin/bash
|
|
104
|
+
# parallel-deploy.sh — Fix the same issue across multiple services
|
|
105
|
+
|
|
106
|
+
TASK="Update blue-citrus-tools dependency to 0.4.84 and fix any compilation errors"
|
|
107
|
+
|
|
108
|
+
for PROJECT in blue-planning blue-material-recipe blue-inventory-production derin-execution derin-purchase; do
|
|
109
|
+
echo "Processing $PROJECT..."
|
|
110
|
+
./orchestrate.sh \
|
|
111
|
+
--project ~/IdeaProjects/$PROJECT \
|
|
112
|
+
--task "$TASK" &
|
|
113
|
+
done
|
|
114
|
+
|
|
115
|
+
wait
|
|
116
|
+
echo "All projects updated!"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Workflow 6: Frontend Visual Regression
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Generate baseline screenshots
|
|
125
|
+
./orchestrate.sh \
|
|
126
|
+
--project ~/WebstormProjects/derin-ui-manager \
|
|
127
|
+
--task "Take screenshots of every page: login, dashboard, inventory, \
|
|
128
|
+
planning, materials, quality control, settings" \
|
|
129
|
+
--skip-plan --skip-review --browser-test --test-url "http://localhost:4200"
|
|
130
|
+
|
|
131
|
+
# After making changes, generate new screenshots and compare
|
|
132
|
+
./orchestrate.sh \
|
|
133
|
+
--project ~/WebstormProjects/derin-ui-manager \
|
|
134
|
+
--task "Take the same screenshots as before and compare with \
|
|
135
|
+
baseline in .agentic/screenshots/. Report any visual differences." \
|
|
136
|
+
--skip-plan --skip-review --browser-test --test-url "http://localhost:4200"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Workflow 7: Using Windsurf as Executor
|
|
142
|
+
|
|
143
|
+
When you prefer interactive development:
|
|
144
|
+
|
|
145
|
+
1. Run the planner:
|
|
146
|
+
```bash
|
|
147
|
+
./orchestrate.sh --project ~/IdeaProjects/blue-flow \
|
|
148
|
+
--task "Add batch confirmation cancellation endpoint" \
|
|
149
|
+
--planner claude --model opus \
|
|
150
|
+
--skip-review
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
2. Open the project in Windsurf and tell Cascade:
|
|
154
|
+
> "Read `.agentic/plan.md` and implement all the changes described in it"
|
|
155
|
+
|
|
156
|
+
3. After implementing, run the reviewer:
|
|
157
|
+
```bash
|
|
158
|
+
./orchestrate.sh --project ~/IdeaProjects/blue-flow \
|
|
159
|
+
--task "Review batch confirmation cancellation implementation" \
|
|
160
|
+
--skip-plan --reviewer codex
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Workflow 8: Database Migration
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
./orchestrate.sh \
|
|
169
|
+
--project ~/IdeaProjects/blue-migration \
|
|
170
|
+
--task "Create Liquibase migration for new leave_requests table: \
|
|
171
|
+
columns: id (bigserial), employee_id (bigint FK), start_date, end_date, \
|
|
172
|
+
type (varchar), status (varchar), created_at, updated_at. \
|
|
173
|
+
Add indexes on employee_id and status. Follow existing changelog patterns."
|
|
174
|
+
```
|
package/bin/codeswarm.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const { execFileSync } = require('child_process');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
const coordinator = path.join(__dirname, '..', 'coordinator.sh');
|
|
6
|
+
const args = process.argv.slice(2);
|
|
7
|
+
|
|
8
|
+
try {
|
|
9
|
+
execFileSync('bash', [coordinator, ...args], {
|
|
10
|
+
stdio: 'inherit',
|
|
11
|
+
env: { ...process.env, CODESWARM_ROOT: path.join(__dirname, '..') }
|
|
12
|
+
});
|
|
13
|
+
} catch (e) {
|
|
14
|
+
process.exit(e.status || 1);
|
|
15
|
+
}
|
package/config.yaml
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Default agent role assignments
|
|
2
|
+
# Override with CLI flags: --planner, --executor, --reviewer
|
|
3
|
+
|
|
4
|
+
roles:
|
|
5
|
+
planner: claude # claude | gemini | codex | amp | opencode
|
|
6
|
+
executor: gemini # claude | gemini | codex | amp | opencode
|
|
7
|
+
reviewer: codex # claude | gemini | codex | amp | opencode
|
|
8
|
+
|
|
9
|
+
# Model preferences per agent
|
|
10
|
+
models:
|
|
11
|
+
claude: opus # opus | sonnet | haiku (alias or full name e.g. claude-opus-4-6-20260212)
|
|
12
|
+
gemini: "" # leave empty for default, or specify e.g. gemini-2.5-pro
|
|
13
|
+
codex: "" # leave empty for default, or specify e.g. o3
|
|
14
|
+
amp: "" # leave empty for default
|
|
15
|
+
opencode: "" # leave empty for default
|
|
16
|
+
|
|
17
|
+
# Permission modes
|
|
18
|
+
permissions:
|
|
19
|
+
planner: plan # plan = read-only, no edits
|
|
20
|
+
executor: auto_edit # auto_edit = auto-approve file edits
|
|
21
|
+
reviewer: plan # plan = read-only analysis
|
|
22
|
+
|
|
23
|
+
# Shared workspace settings
|
|
24
|
+
workspace:
|
|
25
|
+
agentic_dir: .agentic # created inside each project
|
|
26
|
+
plan_file: plan.md
|
|
27
|
+
execution_log: execution.log
|
|
28
|
+
review_file: review.md
|
|
29
|
+
screenshots_dir: screenshots
|
|
30
|
+
test_report: test-report.md
|
|
31
|
+
|
|
32
|
+
# Browser testing (Playwright MCP)
|
|
33
|
+
browser_testing:
|
|
34
|
+
enabled: false
|
|
35
|
+
browser: chromium # chromium | firefox | webkit
|
|
36
|
+
headless: true # set false to watch the browser
|
|
37
|
+
base_url: "http://localhost:4200"
|
|
38
|
+
credentials:
|
|
39
|
+
username: "admin"
|
|
40
|
+
password: "admin"
|
|
41
|
+
screenshot_on_step: true
|
|
42
|
+
timeout_ms: 30000
|
|
43
|
+
|
|
44
|
+
# Timeouts (seconds)
|
|
45
|
+
timeouts:
|
|
46
|
+
planner: 300
|
|
47
|
+
executor: 600
|
|
48
|
+
reviewer: 300
|
|
49
|
+
browser_test: 120
|
|
50
|
+
|
|
51
|
+
# Hooks (optional scripts to run between phases)
|
|
52
|
+
hooks:
|
|
53
|
+
after_plan: "" # e.g. "./hooks/validate-plan.sh"
|
|
54
|
+
after_execute: "" # e.g. "npm run build && npm test"
|
|
55
|
+
after_review: "" # e.g. "./hooks/notify-slack.sh"
|