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/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: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
6
+ [![npm version](https://img.shields.io/npm/v/codeswarm.svg)](https://www.npmjs.com/package/codeswarm)
7
+ [![Node.js](https://img.shields.io/badge/Node.js-18+-green.svg)](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)
@@ -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
+ ```
@@ -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"