@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.
Files changed (132) hide show
  1. package/dist/agent-farm/cli.d.ts.map +1 -1
  2. package/dist/agent-farm/cli.js +52 -52
  3. package/dist/agent-farm/cli.js.map +1 -1
  4. package/dist/agent-farm/commands/consult.js +1 -1
  5. package/dist/agent-farm/commands/consult.js.map +1 -1
  6. package/dist/agent-farm/commands/index.d.ts +1 -2
  7. package/dist/agent-farm/commands/index.d.ts.map +1 -1
  8. package/dist/agent-farm/commands/index.js +1 -2
  9. package/dist/agent-farm/commands/index.js.map +1 -1
  10. package/dist/agent-farm/commands/{util.d.ts → shell.d.ts} +4 -4
  11. package/dist/agent-farm/commands/shell.d.ts.map +1 -0
  12. package/dist/agent-farm/commands/{util.js → shell.js} +4 -4
  13. package/dist/agent-farm/commands/shell.js.map +1 -0
  14. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  15. package/dist/agent-farm/commands/spawn.js +361 -66
  16. package/dist/agent-farm/commands/spawn.js.map +1 -1
  17. package/dist/agent-farm/commands/start.js +5 -4
  18. package/dist/agent-farm/commands/start.js.map +1 -1
  19. package/dist/agent-farm/commands/tower.d.ts.map +1 -1
  20. package/dist/agent-farm/commands/tower.js +2 -1
  21. package/dist/agent-farm/commands/tower.js.map +1 -1
  22. package/dist/agent-farm/hq-connector.d.ts +2 -2
  23. package/dist/agent-farm/hq-connector.js +2 -2
  24. package/dist/agent-farm/servers/dashboard-server.js +153 -6
  25. package/dist/agent-farm/servers/dashboard-server.js.map +1 -1
  26. package/dist/agent-farm/servers/tower-server.js +374 -0
  27. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  28. package/dist/agent-farm/types.d.ts +38 -0
  29. package/dist/agent-farm/types.d.ts.map +1 -1
  30. package/dist/agent-farm/utils/notifications.d.ts +30 -0
  31. package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
  32. package/dist/agent-farm/utils/notifications.js +121 -0
  33. package/dist/agent-farm/utils/notifications.js.map +1 -0
  34. package/dist/agent-farm/utils/server-utils.d.ts +2 -1
  35. package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
  36. package/dist/agent-farm/utils/server-utils.js +11 -1
  37. package/dist/agent-farm/utils/server-utils.js.map +1 -1
  38. package/dist/agent-farm/utils/shell.d.ts +1 -0
  39. package/dist/agent-farm/utils/shell.d.ts.map +1 -1
  40. package/dist/agent-farm/utils/shell.js +2 -0
  41. package/dist/agent-farm/utils/shell.js.map +1 -1
  42. package/dist/cli.d.ts.map +1 -1
  43. package/dist/cli.js +0 -37
  44. package/dist/cli.js.map +1 -1
  45. package/dist/commands/adopt.js +3 -3
  46. package/dist/commands/adopt.js.map +1 -1
  47. package/dist/commands/init.js +1 -1
  48. package/dist/commands/porch/protocol.d.ts.map +1 -1
  49. package/dist/commands/porch/protocol.js +13 -5
  50. package/dist/commands/porch/protocol.js.map +1 -1
  51. package/dist/commands/porch/run.d.ts.map +1 -1
  52. package/dist/commands/porch/run.js +5 -0
  53. package/dist/commands/porch/run.js.map +1 -1
  54. package/package.json +3 -1
  55. package/skeleton/protocol-schema.json +282 -0
  56. package/skeleton/protocols/bugfix/builder-prompt.md +49 -0
  57. package/skeleton/protocols/bugfix/protocol.json +14 -2
  58. package/skeleton/protocols/experiment/builder-prompt.md +47 -0
  59. package/skeleton/protocols/experiment/protocol.json +101 -0
  60. package/skeleton/protocols/maintain/builder-prompt.md +41 -0
  61. package/skeleton/protocols/maintain/protocol.json +114 -0
  62. package/skeleton/protocols/protocol-schema.json +53 -0
  63. package/skeleton/protocols/spider/builder-prompt.md +53 -0
  64. package/skeleton/protocols/spider/protocol.json +20 -4
  65. package/skeleton/protocols/spider/protocol.md +26 -16
  66. package/skeleton/protocols/tick/builder-prompt.md +51 -0
  67. package/skeleton/protocols/tick/protocol.json +7 -2
  68. package/skeleton/resources/commands/agent-farm.md +23 -41
  69. package/skeleton/resources/commands/overview.md +5 -5
  70. package/skeleton/resources/workflow-reference.md +2 -2
  71. package/skeleton/roles/architect.md +49 -33
  72. package/skeleton/roles/builder.md +77 -108
  73. package/skeleton/templates/cheatsheet.md +4 -2
  74. package/templates/tower.html +455 -14
  75. package/dist/agent-farm/commands/kickoff.d.ts +0 -20
  76. package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
  77. package/dist/agent-farm/commands/kickoff.js +0 -343
  78. package/dist/agent-farm/commands/kickoff.js.map +0 -1
  79. package/dist/agent-farm/commands/tutorial.d.ts +0 -10
  80. package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
  81. package/dist/agent-farm/commands/tutorial.js +0 -49
  82. package/dist/agent-farm/commands/tutorial.js.map +0 -1
  83. package/dist/agent-farm/commands/util.d.ts.map +0 -1
  84. package/dist/agent-farm/commands/util.js.map +0 -1
  85. package/dist/agent-farm/tutorial/index.d.ts +0 -8
  86. package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
  87. package/dist/agent-farm/tutorial/index.js +0 -8
  88. package/dist/agent-farm/tutorial/index.js.map +0 -1
  89. package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
  90. package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
  91. package/dist/agent-farm/tutorial/prompts.js +0 -147
  92. package/dist/agent-farm/tutorial/prompts.js.map +0 -1
  93. package/dist/agent-farm/tutorial/runner.d.ts +0 -52
  94. package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
  95. package/dist/agent-farm/tutorial/runner.js +0 -204
  96. package/dist/agent-farm/tutorial/runner.js.map +0 -1
  97. package/dist/agent-farm/tutorial/state.d.ts +0 -26
  98. package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
  99. package/dist/agent-farm/tutorial/state.js +0 -89
  100. package/dist/agent-farm/tutorial/state.js.map +0 -1
  101. package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
  102. package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
  103. package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
  104. package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
  105. package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
  106. package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
  107. package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
  108. package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
  109. package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
  110. package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
  111. package/dist/agent-farm/tutorial/steps/index.js +0 -10
  112. package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
  113. package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
  114. package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
  115. package/dist/agent-farm/tutorial/steps/planning.js +0 -143
  116. package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
  117. package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
  118. package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
  119. package/dist/agent-farm/tutorial/steps/review.js +0 -78
  120. package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
  121. package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
  122. package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
  123. package/dist/agent-farm/tutorial/steps/setup.js +0 -126
  124. package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
  125. package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
  126. package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
  127. package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
  128. package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
  129. package/dist/commands/tower.d.ts +0 -16
  130. package/dist/commands/tower.d.ts.map +0 -1
  131. package/dist/commands/tower.js +0 -21
  132. 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 porch-driven builders, approves gates, and ensures integration quality.
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: Porch-Driven Builders
7
+ ## Key Concept: Spawning Builders
8
8
 
9
- Builders run autonomously under porch control. The builder (Claude) executes the full protocol:
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 kickoff`
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 kickoff -p 0001 --title "feature-name" # Spawn porch-driven builder
27
- af status # Check all builders
28
- af cleanup -p 0001 # Remove completed builder
29
- af start/stop # Dashboard management
30
- af send 0001 "message" # Short message to builder
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. **Kickoff builders** - `af kickoff -p <id> --title "feature-name"`
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. Kickoff the builder
70
- af kickoff -p 0042 --title "user-authentication"
71
- ```
79
+ # 2. Spawn the builder
72
80
 
73
- The builder starts in an isolated worktree and runs `porch run` automatically.
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 write specs or plans** - The builder does this via porch
141
- 2. **DO NOT merge PRs yourself** - Let builders merge their own PRs
142
- 3. **DO NOT commit directly to main** - All changes go through builder PRs
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 kickoff
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 new feature | `af kickoff -p <id> --title "name"` |
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 a porch-driven implementation agent that works on a single project in an isolated git worktree.
3
+ A Builder is an implementation agent that works on a single project in an isolated git worktree.
4
4
 
5
- ## The Core Loop
5
+ ## Two Operating Modes
6
6
 
7
- Your job is simple: **run porch until the project completes**.
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
- That's it. Porch handles everything else:
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
- ## Startup Sequence
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 something like:
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
- ## What Porch Does
61
+ ### What You DON'T Do in Strict Mode
69
62
 
70
- Porch is the protocol orchestrator. It runs the SPIDER protocol for you:
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
- SPECIFY ─────────────────────────────────────────────────────►
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
- ## Troubleshooting
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
- ### Porch says "No project found"
75
+ ### Startup Sequence
108
76
 
109
- Run `porch status` with the project ID:
110
77
  ```bash
111
- porch status 0077
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
- ### Porch is stuck
88
+ ### The SPIR Protocol (Specify → Plan → Implement → Review)
115
89
 
116
- Check the iteration output files in `codev/projects/{id}-{name}/`:
117
- - `*-iter-N.txt` - Claude's output
118
- - `*-iter-N-{model}.txt` - Review feedback
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
- ### Need to provide context to Claude
95
+ ### Consultations
121
96
 
122
- Edit the `context` field in `codev/projects/{id}-{name}/status.yaml`:
123
- ```yaml
124
- context:
125
- user_answers: |
126
- 1. Answer to question 1
127
- 2. Answer to question 2
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
- Then run `porch run` again.
131
-
132
- ## What You DON'T Do
118
+ ## Deliverables
133
119
 
134
- - **Don't manually follow SPIDER steps** - Porch handles this
135
- - **Don't run consult directly** - Porch runs 3-way reviews
136
- - **Don't edit status.yaml phase/iteration** - Only porch modifies state
137
- - **Don't call porch approve** - Only humans approve gates
138
- - **Don't skip gates** - Always stop and wait for approval
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
- porch status
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 porch gets stuck or you encounter issues porch can't handle:
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 blocker message:
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