@cluesmith/codev 2.0.0-rc.23 → 2.0.0-rc.25
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/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +52 -52
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/consult.js +1 -1
- package/dist/agent-farm/commands/consult.js.map +1 -1
- package/dist/agent-farm/commands/index.d.ts +1 -2
- package/dist/agent-farm/commands/index.d.ts.map +1 -1
- package/dist/agent-farm/commands/index.js +1 -2
- package/dist/agent-farm/commands/index.js.map +1 -1
- package/dist/agent-farm/commands/{util.d.ts → shell.d.ts} +4 -4
- package/dist/agent-farm/commands/shell.d.ts.map +1 -0
- package/dist/agent-farm/commands/{util.js → shell.js} +4 -4
- package/dist/agent-farm/commands/shell.js.map +1 -0
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +361 -66
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/start.js +5 -4
- package/dist/agent-farm/commands/start.js.map +1 -1
- package/dist/agent-farm/commands/tower.d.ts.map +1 -1
- package/dist/agent-farm/commands/tower.js +2 -1
- package/dist/agent-farm/commands/tower.js.map +1 -1
- package/dist/agent-farm/hq-connector.d.ts +2 -2
- package/dist/agent-farm/hq-connector.js +2 -2
- package/dist/agent-farm/servers/dashboard-server.js +153 -6
- package/dist/agent-farm/servers/dashboard-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +374 -0
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/types.d.ts +38 -0
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/notifications.d.ts +30 -0
- package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
- package/dist/agent-farm/utils/notifications.js +121 -0
- package/dist/agent-farm/utils/notifications.js.map +1 -0
- package/dist/agent-farm/utils/server-utils.d.ts +2 -1
- package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
- package/dist/agent-farm/utils/server-utils.js +11 -1
- package/dist/agent-farm/utils/server-utils.js.map +1 -1
- package/dist/agent-farm/utils/shell.d.ts +1 -0
- package/dist/agent-farm/utils/shell.d.ts.map +1 -1
- package/dist/agent-farm/utils/shell.js +2 -0
- package/dist/agent-farm/utils/shell.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +0 -37
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.js +3 -3
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/porch/protocol.d.ts.map +1 -1
- package/dist/commands/porch/protocol.js +13 -5
- package/dist/commands/porch/protocol.js.map +1 -1
- package/dist/commands/porch/run.d.ts.map +1 -1
- package/dist/commands/porch/run.js +5 -0
- package/dist/commands/porch/run.js.map +1 -1
- package/package.json +3 -1
- package/skeleton/protocol-schema.json +282 -0
- package/skeleton/protocols/bugfix/builder-prompt.md +49 -0
- package/skeleton/protocols/bugfix/protocol.json +14 -2
- package/skeleton/protocols/experiment/builder-prompt.md +47 -0
- package/skeleton/protocols/experiment/protocol.json +101 -0
- package/skeleton/protocols/maintain/builder-prompt.md +41 -0
- package/skeleton/protocols/maintain/protocol.json +114 -0
- package/skeleton/protocols/protocol-schema.json +53 -0
- package/skeleton/protocols/spider/builder-prompt.md +53 -0
- package/skeleton/protocols/spider/protocol.json +20 -4
- package/skeleton/protocols/spider/protocol.md +26 -16
- package/skeleton/protocols/tick/builder-prompt.md +51 -0
- package/skeleton/protocols/tick/protocol.json +7 -2
- package/skeleton/resources/commands/agent-farm.md +23 -41
- package/skeleton/resources/commands/overview.md +5 -5
- package/skeleton/resources/workflow-reference.md +2 -2
- package/skeleton/roles/architect.md +49 -33
- package/skeleton/roles/builder.md +77 -108
- package/skeleton/templates/cheatsheet.md +4 -2
- package/templates/tower.html +455 -14
- package/dist/agent-farm/commands/kickoff.d.ts +0 -20
- package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
- package/dist/agent-farm/commands/kickoff.js +0 -343
- package/dist/agent-farm/commands/kickoff.js.map +0 -1
- package/dist/agent-farm/commands/tutorial.d.ts +0 -10
- package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
- package/dist/agent-farm/commands/tutorial.js +0 -49
- package/dist/agent-farm/commands/tutorial.js.map +0 -1
- package/dist/agent-farm/commands/util.d.ts.map +0 -1
- package/dist/agent-farm/commands/util.js.map +0 -1
- package/dist/agent-farm/tutorial/index.d.ts +0 -8
- package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/index.js +0 -8
- package/dist/agent-farm/tutorial/index.js.map +0 -1
- package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
- package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/prompts.js +0 -147
- package/dist/agent-farm/tutorial/prompts.js.map +0 -1
- package/dist/agent-farm/tutorial/runner.d.ts +0 -52
- package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/runner.js +0 -204
- package/dist/agent-farm/tutorial/runner.js.map +0 -1
- package/dist/agent-farm/tutorial/state.d.ts +0 -26
- package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/state.js +0 -89
- package/dist/agent-farm/tutorial/state.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
- package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
- package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
- package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/index.js +0 -10
- package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/planning.js +0 -143
- package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/review.js +0 -78
- package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/setup.js +0 -126
- package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
- package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
- package/dist/commands/tower.d.ts +0 -16
- package/dist/commands/tower.d.ts.map +0 -1
- package/dist/commands/tower.js +0 -21
- package/dist/commands/tower.js.map +0 -1
|
@@ -77,7 +77,7 @@ AI agents must stop and wait for human action at these gates.
|
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
79
|
# Start the dashboard
|
|
80
|
-
af start
|
|
80
|
+
af dash start
|
|
81
81
|
|
|
82
82
|
# Spawn a builder for a project
|
|
83
83
|
af spawn -p 0044
|
|
@@ -95,7 +95,7 @@ af open codev/specs/0044-name.md
|
|
|
95
95
|
af cleanup -p 0044
|
|
96
96
|
|
|
97
97
|
# Stop everything
|
|
98
|
-
af stop
|
|
98
|
+
af dash stop
|
|
99
99
|
```
|
|
100
100
|
|
|
101
101
|
### Builder Commands
|
|
@@ -1,38 +1,48 @@
|
|
|
1
1
|
# Role: Architect
|
|
2
2
|
|
|
3
|
-
The Architect is the **project manager and gatekeeper** who decides what to build, spawns
|
|
3
|
+
The Architect is the **project manager and gatekeeper** who decides what to build, spawns builders, approves gates, and ensures integration quality.
|
|
4
4
|
|
|
5
5
|
> **Quick Reference**: See `codev/resources/workflow-reference.md` for stage diagrams and common commands.
|
|
6
6
|
|
|
7
|
-
## Key Concept:
|
|
7
|
+
## Key Concept: Spawning Builders
|
|
8
8
|
|
|
9
|
-
Builders
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
Specify → Plan → Implement → Review
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
The Architect does NOT write specs or plans. The builder does that. The Architect:
|
|
9
|
+
Builders work autonomously in isolated git worktrees. The Architect:
|
|
16
10
|
1. **Decides** what to build
|
|
17
|
-
2. **Spawns** builders via `af
|
|
18
|
-
3. **Approves** gates (spec-approval, plan-approval)
|
|
11
|
+
2. **Spawns** builders via `af spawn`
|
|
12
|
+
3. **Approves** gates (spec-approval, plan-approval) when in strict mode
|
|
19
13
|
4. **Reviews** PRs for integration concerns
|
|
20
14
|
|
|
15
|
+
### Two Builder Modes
|
|
16
|
+
|
|
17
|
+
| Mode | Command | Use When |
|
|
18
|
+
|------|---------|----------|
|
|
19
|
+
| **Strict** (default) | `af spawn -p XXXX` | Porch orchestrates - runs autonomously to completion |
|
|
20
|
+
| **Soft** | `af spawn --soft -p XXXX` | AI follows protocol - you verify compliance |
|
|
21
|
+
|
|
22
|
+
**Strict mode** (default): Porch orchestrates the builder with automated gates, 3-way consultations, and enforced phase transitions. More likely to complete autonomously without intervention.
|
|
23
|
+
|
|
24
|
+
**Soft mode**: Builder reads and follows the protocol document, but you monitor progress and verify the AI is adhering to the protocol correctly. Use when you want more hands-on oversight.
|
|
25
|
+
|
|
21
26
|
## Key Tools
|
|
22
27
|
|
|
23
28
|
### Agent Farm CLI (`af`)
|
|
24
29
|
|
|
25
30
|
```bash
|
|
26
|
-
af
|
|
27
|
-
af
|
|
28
|
-
af
|
|
29
|
-
af
|
|
30
|
-
af
|
|
31
|
+
af spawn -p 0001 # Strict mode (default) - porch-driven
|
|
32
|
+
af spawn -p 0001 -t "feature" # Strict mode with title (no spec yet)
|
|
33
|
+
af spawn -p 0001 --resume # Resume existing porch state
|
|
34
|
+
af spawn --soft -p 0001 # Soft mode - protocol-guided
|
|
35
|
+
af spawn --task "fix the bug" # Ad-hoc task builder (soft mode)
|
|
36
|
+
af spawn --worktree # Worktree with no initial prompt
|
|
37
|
+
af status # Check all builders
|
|
38
|
+
af cleanup -p 0001 # Remove completed builder
|
|
39
|
+
af dash start/stop # Dashboard management
|
|
40
|
+
af send 0001 "message" # Short message to builder
|
|
31
41
|
```
|
|
32
42
|
|
|
33
43
|
**Note:** `af`, `consult`, `porch`, and `codev` are global commands. They work from any directory.
|
|
34
44
|
|
|
35
|
-
### Porch CLI
|
|
45
|
+
### Porch CLI (for strict mode)
|
|
36
46
|
|
|
37
47
|
```bash
|
|
38
48
|
porch status 0001 # Check project state
|
|
@@ -54,8 +64,8 @@ wait
|
|
|
54
64
|
|
|
55
65
|
1. **Decide what to build** - Identify features, prioritize work
|
|
56
66
|
2. **Maintain project list** - Track all projects in `codev/projectlist.md`
|
|
57
|
-
3. **
|
|
58
|
-
4. **Approve gates** - Review specs and plans, approve to continue
|
|
67
|
+
3. **Spawn builders** - Choose soft or strict mode based on needs
|
|
68
|
+
4. **Approve gates** - (Strict mode) Review specs and plans, approve to continue
|
|
59
69
|
5. **Monitor progress** - Track builder status, unblock when stuck
|
|
60
70
|
6. **Integration review** - Review PRs for architectural fit
|
|
61
71
|
7. **Manage releases** - Group projects into releases
|
|
@@ -66,13 +76,19 @@ wait
|
|
|
66
76
|
|
|
67
77
|
```bash
|
|
68
78
|
# 1. Reserve project number in projectlist.md
|
|
69
|
-
# 2.
|
|
70
|
-
af kickoff -p 0042 --title "user-authentication"
|
|
71
|
-
```
|
|
79
|
+
# 2. Spawn the builder
|
|
72
80
|
|
|
73
|
-
|
|
81
|
+
# Default: Strict mode (porch-driven with gates)
|
|
82
|
+
af spawn -p 0042
|
|
83
|
+
|
|
84
|
+
# With project title (if no spec exists yet)
|
|
85
|
+
af spawn -p 0042 -t "user-authentication"
|
|
86
|
+
|
|
87
|
+
# Or: Soft mode (builder follows protocol independently)
|
|
88
|
+
af spawn --soft -p 0042
|
|
89
|
+
```
|
|
74
90
|
|
|
75
|
-
### 2. Approving Gates
|
|
91
|
+
### 2. Approving Gates (Strict Mode Only)
|
|
76
92
|
|
|
77
93
|
The builder stops at gates requiring approval:
|
|
78
94
|
|
|
@@ -98,7 +114,7 @@ porch approve 0042 plan-approval
|
|
|
98
114
|
|
|
99
115
|
```bash
|
|
100
116
|
af status # Overview of all builders
|
|
101
|
-
porch status 0042 # Detailed state for one project
|
|
117
|
+
porch status 0042 # Detailed state for one project (strict mode)
|
|
102
118
|
```
|
|
103
119
|
|
|
104
120
|
### 4. Integration Review
|
|
@@ -137,14 +153,13 @@ af cleanup -p 0042
|
|
|
137
153
|
## Critical Rules
|
|
138
154
|
|
|
139
155
|
### NEVER Do These:
|
|
140
|
-
1. **DO NOT
|
|
141
|
-
2. **DO NOT
|
|
142
|
-
3. **DO NOT
|
|
143
|
-
4. **DO NOT use `af send` for long messages** - Use GitHub PR comments instead
|
|
156
|
+
1. **DO NOT merge PRs yourself** - Let builders merge their own PRs
|
|
157
|
+
2. **DO NOT commit directly to main** - All changes go through builder PRs
|
|
158
|
+
3. **DO NOT use `af send` for long messages** - Use GitHub PR comments instead
|
|
144
159
|
|
|
145
160
|
### ALWAYS Do These:
|
|
146
|
-
1. **Reserve project numbers first** - Update projectlist.md before
|
|
147
|
-
2. **Review artifacts before approving gates** - Read the spec/plan carefully
|
|
161
|
+
1. **Reserve project numbers first** - Update projectlist.md before spawning
|
|
162
|
+
2. **Review artifacts before approving gates** - (Strict mode) Read the spec/plan carefully
|
|
148
163
|
3. **Use PR comments for feedback** - Not tmux send-keys
|
|
149
164
|
4. **Let builders own their work** - Guide, don't take over
|
|
150
165
|
|
|
@@ -167,7 +182,7 @@ Update status as projects progress:
|
|
|
167
182
|
|
|
168
183
|
When a builder reports blocked:
|
|
169
184
|
|
|
170
|
-
1. Check their status: `porch status <id>`
|
|
185
|
+
1. Check their status: `af status` or `porch status <id>`
|
|
171
186
|
2. Read their output in the terminal: `http://localhost:<port>`
|
|
172
187
|
3. Provide guidance via short `af send` message
|
|
173
188
|
4. Or answer their question directly if they asked one
|
|
@@ -201,7 +216,8 @@ Before approving implementations with UX requirements:
|
|
|
201
216
|
|
|
202
217
|
| Task | Command |
|
|
203
218
|
|------|---------|
|
|
204
|
-
| Start
|
|
219
|
+
| Start feature (strict, default) | `af spawn -p <id>` |
|
|
220
|
+
| Start feature (soft) | `af spawn --soft -p <id>` |
|
|
205
221
|
| Check all builders | `af status` |
|
|
206
222
|
| Check one project | `porch status <id>` |
|
|
207
223
|
| Approve spec | `porch approve <id> spec-approval` |
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
# Role: Builder
|
|
2
2
|
|
|
3
|
-
A Builder is
|
|
3
|
+
A Builder is an implementation agent that works on a single project in an isolated git worktree.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Two Operating Modes
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Builders run in one of two modes, determined by how they were spawned:
|
|
8
|
+
|
|
9
|
+
| Mode | Command | Behavior |
|
|
10
|
+
|------|---------|----------|
|
|
11
|
+
| **Strict** (default) | `af spawn -p XXXX` | Porch orchestrates - runs autonomously to completion |
|
|
12
|
+
| **Soft** | `af spawn --soft -p XXXX` | AI follows protocol - architect verifies compliance |
|
|
13
|
+
|
|
14
|
+
## Strict Mode (Default)
|
|
15
|
+
|
|
16
|
+
Spawned with: `af spawn -p XXXX`
|
|
17
|
+
|
|
18
|
+
In strict mode, porch orchestrates your work and drives the protocol to completion autonomously. Your job is simple: **run porch until the project completes**.
|
|
19
|
+
|
|
20
|
+
### The Core Loop
|
|
8
21
|
|
|
9
22
|
```bash
|
|
10
23
|
# 1. Check your current state
|
|
@@ -18,32 +31,13 @@ porch run
|
|
|
18
31
|
# 5. Repeat until project is complete
|
|
19
32
|
```
|
|
20
33
|
|
|
21
|
-
|
|
34
|
+
Porch handles:
|
|
22
35
|
- Spawning Claude to create artifacts (spec, plan, code)
|
|
23
36
|
- Running 3-way consultations (Gemini, Codex, Claude)
|
|
24
37
|
- Iterating based on feedback
|
|
25
38
|
- Enforcing phase transitions
|
|
26
39
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
When you start, run:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
# See where you are
|
|
33
|
-
porch status
|
|
34
|
-
|
|
35
|
-
# Start the loop
|
|
36
|
-
porch run
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
Porch will:
|
|
40
|
-
1. Show you the current phase
|
|
41
|
-
2. Spawn Claude to do the work
|
|
42
|
-
3. Run 3-way verification
|
|
43
|
-
4. Iterate if needed (up to 7 times)
|
|
44
|
-
5. Either advance or hit a gate
|
|
45
|
-
|
|
46
|
-
## Gates: When to STOP
|
|
40
|
+
### Gates: When to STOP
|
|
47
41
|
|
|
48
42
|
Porch has two human approval gates:
|
|
49
43
|
|
|
@@ -52,8 +46,7 @@ Porch has two human approval gates:
|
|
|
52
46
|
| `spec-approval` | After spec is written | **STOP** and wait |
|
|
53
47
|
| `plan-approval` | After plan is written | **STOP** and wait |
|
|
54
48
|
|
|
55
|
-
When porch outputs
|
|
56
|
-
|
|
49
|
+
When porch outputs:
|
|
57
50
|
```
|
|
58
51
|
GATE: spec-approval
|
|
59
52
|
Human approval required. STOP and wait.
|
|
@@ -65,77 +58,70 @@ You must:
|
|
|
65
58
|
3. Wait for the human to run `porch approve XXXX spec-approval`
|
|
66
59
|
4. After approval, run `porch run` again
|
|
67
60
|
|
|
68
|
-
|
|
61
|
+
### What You DON'T Do in Strict Mode
|
|
69
62
|
|
|
70
|
-
|
|
63
|
+
- **Don't manually follow SPIDER steps** - Porch handles this
|
|
64
|
+
- **Don't run consult directly** - Porch runs 3-way reviews
|
|
65
|
+
- **Don't edit status.yaml phase/iteration** - Only porch modifies state
|
|
66
|
+
- **Don't call porch approve** - Only humans approve gates
|
|
67
|
+
- **Don't skip gates** - Always stop and wait for approval
|
|
71
68
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
│ porch run → Claude writes spec
|
|
76
|
-
│ → 3-way review (iterate if needed)
|
|
77
|
-
│ → GATE: spec-approval (STOP)
|
|
78
|
-
│
|
|
79
|
-
▼
|
|
80
|
-
PLAN ────────────────────────────────────────────────────────►
|
|
81
|
-
│
|
|
82
|
-
│ porch run → Claude writes plan
|
|
83
|
-
│ → 3-way review (iterate if needed)
|
|
84
|
-
│ → GATE: plan-approval (STOP)
|
|
85
|
-
│
|
|
86
|
-
▼
|
|
87
|
-
IMPLEMENT → DEFEND → EVALUATE (per phase) ───────────────────►
|
|
88
|
-
│
|
|
89
|
-
│ porch run → Claude implements phase
|
|
90
|
-
│ → Claude writes tests
|
|
91
|
-
│ → 3-way review (iterate if needed)
|
|
92
|
-
│ → Advance to next phase
|
|
93
|
-
│
|
|
94
|
-
▼
|
|
95
|
-
REVIEW ──────────────────────────────────────────────────────►
|
|
96
|
-
│
|
|
97
|
-
│ porch run → Claude writes review doc
|
|
98
|
-
│ → Creates PR
|
|
99
|
-
│ → Project complete
|
|
100
|
-
│
|
|
101
|
-
▼
|
|
102
|
-
DONE
|
|
103
|
-
```
|
|
69
|
+
## Soft Mode
|
|
70
|
+
|
|
71
|
+
Spawned with: `af spawn --soft -p XXXX` or `af spawn --task "..."`
|
|
104
72
|
|
|
105
|
-
|
|
73
|
+
In soft mode, you follow the protocol document yourself. The architect monitors your work and verifies you're adhering to the protocol correctly.
|
|
106
74
|
|
|
107
|
-
###
|
|
75
|
+
### Startup Sequence
|
|
108
76
|
|
|
109
|
-
Run `porch status` with the project ID:
|
|
110
77
|
```bash
|
|
111
|
-
|
|
78
|
+
# Read the spec and/or plan
|
|
79
|
+
cat codev/specs/XXXX-*.md
|
|
80
|
+
cat codev/plans/XXXX-*.md
|
|
81
|
+
|
|
82
|
+
# Read the protocol
|
|
83
|
+
cat codev/protocols/spider/protocol.md
|
|
84
|
+
|
|
85
|
+
# Start implementing
|
|
112
86
|
```
|
|
113
87
|
|
|
114
|
-
###
|
|
88
|
+
### The SPIR Protocol (Specify → Plan → Implement → Review)
|
|
115
89
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
90
|
+
1. **Specify**: Read or create the spec at `codev/specs/XXXX-name.md`
|
|
91
|
+
2. **Plan**: Read or create the plan at `codev/plans/XXXX-name.md`
|
|
92
|
+
3. **Implement**: Write code following the plan phases
|
|
93
|
+
4. **Review**: Write lessons learned and create PR
|
|
119
94
|
|
|
120
|
-
###
|
|
95
|
+
### Consultations
|
|
121
96
|
|
|
122
|
-
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
97
|
+
Run 3-way consultations at checkpoints:
|
|
98
|
+
```bash
|
|
99
|
+
# After writing spec
|
|
100
|
+
consult --model gemini --type spec-review spec XXXX &
|
|
101
|
+
consult --model codex --type spec-review spec XXXX &
|
|
102
|
+
consult --model claude --type spec-review spec XXXX &
|
|
103
|
+
wait
|
|
104
|
+
|
|
105
|
+
# After writing plan
|
|
106
|
+
consult --model gemini --type plan-review plan XXXX &
|
|
107
|
+
consult --model codex --type plan-review plan XXXX &
|
|
108
|
+
consult --model claude --type plan-review plan XXXX &
|
|
109
|
+
wait
|
|
110
|
+
|
|
111
|
+
# After implementation
|
|
112
|
+
consult --model gemini --type impl-review pr N &
|
|
113
|
+
consult --model codex --type impl-review pr N &
|
|
114
|
+
consult --model claude --type impl-review pr N &
|
|
115
|
+
wait
|
|
128
116
|
```
|
|
129
117
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
## What You DON'T Do
|
|
118
|
+
## Deliverables
|
|
133
119
|
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
138
|
-
-
|
|
120
|
+
- Spec at `codev/specs/XXXX-name.md`
|
|
121
|
+
- Plan at `codev/plans/XXXX-name.md`
|
|
122
|
+
- Review at `codev/reviews/XXXX-name.md`
|
|
123
|
+
- Implementation code with tests
|
|
124
|
+
- PR ready for architect review
|
|
139
125
|
|
|
140
126
|
## Communication
|
|
141
127
|
|
|
@@ -149,36 +135,19 @@ af send architect "Question about the spec..."
|
|
|
149
135
|
### Checking Status
|
|
150
136
|
|
|
151
137
|
```bash
|
|
152
|
-
# Your project status
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
# All builders
|
|
156
|
-
af status
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
## Deliverables
|
|
160
|
-
|
|
161
|
-
When porch completes the REVIEW phase, you'll have:
|
|
162
|
-
- Spec at `codev/specs/XXXX-name.md`
|
|
163
|
-
- Plan at `codev/plans/XXXX-name.md`
|
|
164
|
-
- Review at `codev/reviews/XXXX-name.md`
|
|
165
|
-
- Implementation code with tests
|
|
166
|
-
- PR ready for architect review
|
|
167
|
-
|
|
168
|
-
After architect approves the PR, merge it:
|
|
169
|
-
```bash
|
|
170
|
-
gh pr merge --merge --delete-branch
|
|
138
|
+
porch status # (strict mode) Your project status
|
|
139
|
+
af status # All builders
|
|
171
140
|
```
|
|
172
141
|
|
|
173
142
|
## When You're Blocked
|
|
174
143
|
|
|
175
|
-
If
|
|
144
|
+
If you encounter issues you can't resolve:
|
|
176
145
|
|
|
177
146
|
1. **Output a clear blocker message** describing the problem and options
|
|
178
147
|
2. **Use `af send architect "..."` ** to notify the Architect
|
|
179
148
|
3. **Wait for guidance** before proceeding
|
|
180
149
|
|
|
181
|
-
Example
|
|
150
|
+
Example:
|
|
182
151
|
```
|
|
183
152
|
## BLOCKED: Spec 0077
|
|
184
153
|
Can't find the auth helper mentioned in spec. Options:
|
|
@@ -190,10 +159,10 @@ Waiting for Architect guidance.
|
|
|
190
159
|
|
|
191
160
|
## Constraints
|
|
192
161
|
|
|
193
|
-
- **Run porch, don't bypass it** - Porch is the source of truth
|
|
194
|
-
- **Stop at gates** - Human approval is required
|
|
195
162
|
- **Stay in scope** - Only implement what's in the spec
|
|
196
163
|
- **Merge your own PRs** - After architect approves
|
|
197
|
-
- **NEVER edit status.yaml directly** - Only porch commands modify state
|
|
198
|
-
- **NEVER call porch approve** - Gates require human instruction
|
|
199
164
|
- **Keep worktree clean** - No untracked files, no debug code
|
|
165
|
+
- **(Strict mode)** Run porch, don't bypass it
|
|
166
|
+
- **(Strict mode)** Stop at gates - Human approval is required
|
|
167
|
+
- **(Strict mode)** NEVER edit status.yaml directly
|
|
168
|
+
- **(Strict mode)** NEVER call porch approve
|
|
@@ -110,13 +110,15 @@ Architect-Builder orchestration. Used by both **humans and agents**—agents use
|
|
|
110
110
|
|
|
111
111
|
| Command | Description |
|
|
112
112
|
|---------|-------------|
|
|
113
|
-
| `af start` | Start dashboard (port 4200, 4300, etc.) |
|
|
114
|
-
| `af stop` | Stop all processes |
|
|
113
|
+
| `af dash start` | Start dashboard (port 4200, 4300, etc.) |
|
|
114
|
+
| `af dash stop` | Stop all processes |
|
|
115
115
|
| `af spawn -p <id>` | Spawn a builder for project |
|
|
116
116
|
| `af status` | Check status of all builders |
|
|
117
117
|
| `af send <target> <msg>` | Send message (builder↔architect) |
|
|
118
118
|
| `af cleanup -p <id>` | Clean up a builder worktree |
|
|
119
|
+
| `af shell` | Spawn a utility shell |
|
|
119
120
|
| `af open <file>` | Open file in dashboard viewer |
|
|
121
|
+
| `af tower start` | Start cross-project tower |
|
|
120
122
|
|
|
121
123
|
### consult
|
|
122
124
|
|