@cluesmith/codev 2.0.2 → 2.0.6
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/dashboard/dist/assets/index-B-s8BA2l.js +135 -0
- package/dashboard/dist/assets/index-B-s8BA2l.js.map +1 -0
- package/dashboard/dist/assets/index-DB2AxRP7.css +32 -0
- package/dashboard/dist/index.html +2 -2
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +32 -14
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/architect.d.ts +1 -1
- package/dist/agent-farm/commands/architect.js +3 -3
- package/dist/agent-farm/commands/architect.js.map +1 -1
- package/dist/agent-farm/commands/attach.d.ts +19 -0
- package/dist/agent-farm/commands/attach.d.ts.map +1 -1
- package/dist/agent-farm/commands/attach.js +172 -12
- package/dist/agent-farm/commands/attach.js.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +6 -6
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/open.js +5 -5
- package/dist/agent-farm/commands/open.js.map +1 -1
- package/dist/agent-farm/commands/send.d.ts +22 -2
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +100 -181
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/shell.js +5 -5
- package/dist/agent-farm/commands/shell.js.map +1 -1
- package/dist/agent-farm/commands/spawn-roles.d.ts +3 -9
- package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-roles.js +14 -53
- package/dist/agent-farm/commands/spawn-roles.js.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts +11 -17
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.js +32 -13
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
- package/dist/agent-farm/commands/spawn.d.ts +8 -6
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +183 -69
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/start.d.ts +4 -4
- package/dist/agent-farm/commands/start.js +16 -16
- package/dist/agent-farm/commands/start.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts +1 -1
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +15 -26
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/commands/stop.d.ts +4 -4
- package/dist/agent-farm/commands/stop.js +9 -9
- package/dist/agent-farm/commands/stop.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +82 -7
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +2 -2
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +21 -4
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/lib/tower-client.d.ts +36 -26
- package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tower-client.js +50 -25
- package/dist/agent-farm/lib/tower-client.js.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.d.ts +12 -2
- package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.js +59 -1
- package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
- package/dist/agent-farm/servers/overview.d.ts +111 -0
- package/dist/agent-farm/servers/overview.d.ts.map +1 -0
- package/dist/agent-farm/servers/overview.js +385 -0
- package/dist/agent-farm/servers/overview.js.map +1 -0
- package/dist/agent-farm/servers/tower-instances.d.ts +18 -20
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js +97 -100
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-messages.d.ts +87 -0
- package/dist/agent-farm/servers/tower-messages.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-messages.js +202 -0
- package/dist/agent-farm/servers/tower-messages.js.map +1 -0
- package/dist/agent-farm/servers/tower-routes.d.ts +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +343 -174
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +50 -21
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts +35 -31
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +208 -184
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.d.ts +2 -2
- package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.js +12 -12
- package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
- package/dist/agent-farm/servers/tower-types.d.ts +8 -12
- package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.d.ts +9 -9
- package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.js +18 -18
- package/dist/agent-farm/servers/tower-utils.js.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.d.ts +2 -2
- package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.js +39 -18
- package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
- package/dist/agent-farm/types.d.ts +5 -6
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/agent-names.d.ts +85 -0
- package/dist/agent-farm/utils/agent-names.d.ts.map +1 -0
- package/dist/agent-farm/utils/agent-names.js +140 -0
- package/dist/agent-farm/utils/agent-names.js.map +1 -0
- package/dist/agent-farm/utils/config.d.ts +1 -1
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +16 -16
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/file-tabs.d.ts +3 -3
- package/dist/agent-farm/utils/file-tabs.d.ts.map +1 -1
- package/dist/agent-farm/utils/file-tabs.js +9 -9
- package/dist/agent-farm/utils/file-tabs.js.map +1 -1
- package/dist/agent-farm/utils/index.d.ts +0 -1
- package/dist/agent-farm/utils/index.d.ts.map +1 -1
- package/dist/agent-farm/utils/index.js +0 -1
- package/dist/agent-farm/utils/index.js.map +1 -1
- package/dist/agent-farm/utils/message-format.d.ts +17 -0
- package/dist/agent-farm/utils/message-format.d.ts.map +1 -0
- package/dist/agent-farm/utils/message-format.js +41 -0
- package/dist/agent-farm/utils/message-format.js.map +1 -0
- package/dist/agent-farm/utils/notifications.d.ts +4 -4
- package/dist/agent-farm/utils/notifications.d.ts.map +1 -1
- package/dist/agent-farm/utils/notifications.js +18 -18
- package/dist/agent-farm/utils/notifications.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +26 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts +2 -2
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +13 -15
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/consult/index.d.ts +26 -2
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +296 -83
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/consult/metrics.d.ts +90 -0
- package/dist/commands/consult/metrics.d.ts.map +1 -0
- package/dist/commands/consult/metrics.js +203 -0
- package/dist/commands/consult/metrics.js.map +1 -0
- package/dist/commands/consult/stats.d.ts +18 -0
- package/dist/commands/consult/stats.d.ts.map +1 -0
- package/dist/commands/consult/stats.js +150 -0
- package/dist/commands/consult/stats.js.map +1 -0
- package/dist/commands/consult/usage-extractor.d.ts +38 -0
- package/dist/commands/consult/usage-extractor.d.ts.map +1 -0
- package/dist/commands/consult/usage-extractor.js +99 -0
- package/dist/commands/consult/usage-extractor.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +11 -9
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/import.js +4 -4
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +13 -15
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/porch/index.d.ts +6 -6
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +37 -37
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts +1 -1
- package/dist/commands/porch/next.d.ts.map +1 -1
- package/dist/commands/porch/next.js +86 -92
- package/dist/commands/porch/next.js.map +1 -1
- package/dist/commands/porch/notify.d.ts +11 -0
- package/dist/commands/porch/notify.d.ts.map +1 -0
- package/dist/commands/porch/notify.js +30 -0
- package/dist/commands/porch/notify.js.map +1 -0
- package/dist/commands/porch/plan.d.ts +1 -1
- package/dist/commands/porch/plan.d.ts.map +1 -1
- package/dist/commands/porch/plan.js +3 -3
- package/dist/commands/porch/plan.js.map +1 -1
- package/dist/commands/porch/prompts.d.ts +10 -1
- package/dist/commands/porch/prompts.d.ts.map +1 -1
- package/dist/commands/porch/prompts.js +59 -35
- package/dist/commands/porch/prompts.js.map +1 -1
- package/dist/commands/porch/protocol.d.ts +1 -1
- package/dist/commands/porch/protocol.d.ts.map +1 -1
- package/dist/commands/porch/protocol.js +8 -8
- package/dist/commands/porch/protocol.js.map +1 -1
- package/dist/commands/porch/state.d.ts +6 -6
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +14 -12
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +10 -11
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/github.d.ts +81 -0
- package/dist/lib/github.d.ts.map +1 -0
- package/dist/lib/github.js +141 -0
- package/dist/lib/github.js.map +1 -0
- package/dist/lib/scaffold.d.ts +13 -21
- package/dist/lib/scaffold.d.ts.map +1 -1
- package/dist/lib/scaffold.js +34 -57
- package/dist/lib/scaffold.js.map +1 -1
- package/dist/lib/skeleton.d.ts +7 -7
- package/dist/lib/skeleton.d.ts.map +1 -1
- package/dist/lib/skeleton.js +10 -10
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/terminal/index.d.ts +14 -0
- package/dist/terminal/index.d.ts.map +1 -1
- package/dist/terminal/index.js +12 -0
- package/dist/terminal/index.js.map +1 -1
- package/dist/terminal/pty-manager.d.ts +1 -1
- package/dist/terminal/pty-manager.d.ts.map +1 -1
- package/dist/terminal/pty-manager.js +10 -7
- package/dist/terminal/pty-manager.js.map +1 -1
- package/dist/terminal/pty-session.js +3 -3
- package/dist/terminal/pty-session.js.map +1 -1
- package/dist/terminal/session-manager.d.ts +64 -0
- package/dist/terminal/session-manager.d.ts.map +1 -1
- package/dist/terminal/session-manager.js +299 -10
- package/dist/terminal/session-manager.js.map +1 -1
- package/dist/terminal/shellper-client.d.ts +2 -1
- package/dist/terminal/shellper-client.d.ts.map +1 -1
- package/dist/terminal/shellper-client.js +4 -2
- package/dist/terminal/shellper-client.js.map +1 -1
- package/dist/terminal/shellper-main.js +33 -4
- package/dist/terminal/shellper-main.js.map +1 -1
- package/dist/terminal/shellper-process.d.ts +24 -7
- package/dist/terminal/shellper-process.d.ts.map +1 -1
- package/dist/terminal/shellper-process.js +139 -36
- package/dist/terminal/shellper-process.js.map +1 -1
- package/dist/terminal/shellper-protocol.d.ts +1 -0
- package/dist/terminal/shellper-protocol.d.ts.map +1 -1
- package/dist/terminal/shellper-protocol.js.map +1 -1
- package/package.json +4 -1
- package/skeleton/.claude/skills/af/SKILL.md +7 -7
- package/skeleton/.claude/skills/consult/SKILL.md +1 -1
- package/skeleton/builders.md +2 -2
- package/skeleton/maintain/.gitkeep +1 -1
- package/skeleton/porch/prompts/specify.md +1 -1
- package/skeleton/protocols/bugfix/prompts/pr.md +15 -4
- package/skeleton/protocols/experiment/protocol.md +17 -17
- package/skeleton/protocols/maintain/prompts/audit.md +2 -2
- package/skeleton/protocols/maintain/prompts/sync.md +1 -1
- package/skeleton/protocols/maintain/prompts/verify.md +1 -1
- package/skeleton/protocols/maintain/protocol.md +8 -9
- package/skeleton/protocols/maintain/templates/maintenance-run.md +2 -2
- package/skeleton/protocols/spir/protocol.json +5 -5
- package/skeleton/protocols/spir/protocol.md +8 -8
- package/skeleton/protocols/tick/protocol.md +31 -31
- package/skeleton/resources/commands/agent-farm.md +14 -14
- package/skeleton/resources/commands/codev.md +0 -1
- package/skeleton/resources/commands/consult.md +3 -3
- package/skeleton/resources/spikes.md +3 -3
- package/skeleton/resources/workflow-reference.md +14 -14
- package/skeleton/roles/architect.md +25 -25
- package/skeleton/roles/builder.md +1 -1
- package/skeleton/roles/consultant.md +6 -0
- package/skeleton/templates/AGENTS.md +5 -5
- package/skeleton/templates/CLAUDE.md +5 -5
- package/skeleton/templates/lifecycle.md +9 -9
- package/templates/open.html +19 -16
- package/templates/tower.html +54 -94
- package/templates/vendor/marked.min.js +6 -0
- package/templates/vendor/prism-bash.min.js +1 -0
- package/templates/vendor/prism-css.min.js +1 -0
- package/templates/vendor/prism-javascript.min.js +1 -0
- package/templates/vendor/prism-json.min.js +1 -0
- package/templates/vendor/prism-markdown.min.js +1 -0
- package/templates/vendor/prism-markup.min.js +1 -0
- package/templates/vendor/prism-python.min.js +1 -0
- package/templates/vendor/prism-tomorrow.min.css +1 -0
- package/templates/vendor/prism-typescript.min.js +1 -0
- package/templates/vendor/prism-yaml.min.js +1 -0
- package/templates/vendor/prism.min.js +1 -0
- package/templates/vendor/purify.min.js +3 -0
- package/dashboard/dist/assets/index-4n9zpWLY.css +0 -32
- package/dashboard/dist/assets/index-b38SaXk5.js +0 -136
- package/dashboard/dist/assets/index-b38SaXk5.js.map +0 -1
- package/dist/agent-farm/hq-connector.d.ts +0 -19
- package/dist/agent-farm/hq-connector.d.ts.map +0 -1
- package/dist/agent-farm/hq-connector.js +0 -351
- package/dist/agent-farm/hq-connector.js.map +0 -1
- package/dist/agent-farm/utils/deps.d.ts +0 -51
- package/dist/agent-farm/utils/deps.d.ts.map +0 -1
- package/dist/agent-farm/utils/deps.js +0 -162
- package/dist/agent-farm/utils/deps.js.map +0 -1
- package/dist/agent-farm/utils/gate-status.d.ts +0 -16
- package/dist/agent-farm/utils/gate-status.d.ts.map +0 -1
- package/dist/agent-farm/utils/gate-status.js +0 -79
- package/dist/agent-farm/utils/gate-status.js.map +0 -1
- package/dist/agent-farm/utils/gate-watcher.d.ts +0 -38
- package/dist/agent-farm/utils/gate-watcher.d.ts.map +0 -1
- package/dist/agent-farm/utils/gate-watcher.js +0 -122
- package/dist/agent-farm/utils/gate-watcher.js.map +0 -1
- package/dist/agent-farm/utils/session.d.ts +0 -32
- package/dist/agent-farm/utils/session.d.ts.map +0 -1
- package/dist/agent-farm/utils/session.js +0 -57
- package/dist/agent-farm/utils/session.js.map +0 -1
- package/dist/lib/projectlist-parser.d.ts +0 -70
- package/dist/lib/projectlist-parser.d.ts.map +0 -1
- package/dist/lib/projectlist-parser.js +0 -200
- package/dist/lib/projectlist-parser.js.map +0 -1
- package/skeleton/templates/projectlist-archive.md +0 -21
- package/skeleton/templates/projectlist.md +0 -147
- package/templates/dashboard/css/dialogs.css +0 -149
- package/templates/dashboard/css/files.css +0 -558
- package/templates/dashboard/css/layout.css +0 -133
- package/templates/dashboard/css/projects.css +0 -501
- package/templates/dashboard/css/statusbar.css +0 -23
- package/templates/dashboard/css/tabs.css +0 -314
- package/templates/dashboard/css/utilities.css +0 -50
- package/templates/dashboard/css/variables.css +0 -45
- package/templates/dashboard/index.html +0 -149
- package/templates/dashboard/js/dialogs.js +0 -368
- package/templates/dashboard/js/files.js +0 -448
- package/templates/dashboard/js/main.js +0 -476
- package/templates/dashboard/js/projects.js +0 -544
- package/templates/dashboard/js/state.js +0 -91
- package/templates/dashboard/js/tabs.js +0 -518
- package/templates/dashboard/js/utils.js +0 -191
|
@@ -148,7 +148,7 @@ af spawn [options]
|
|
|
148
148
|
```
|
|
149
149
|
|
|
150
150
|
**Options:**
|
|
151
|
-
- `-p, --project <id>` - Spawn builder for a spec (e.g., `
|
|
151
|
+
- `-p, --project <id>` - Spawn builder for a spec (e.g., `42`)
|
|
152
152
|
- `--task <text>` - Spawn builder with a task description
|
|
153
153
|
- `--protocol <name>` - Spawn builder to run a protocol
|
|
154
154
|
- `--shell` - Spawn a bare Claude session
|
|
@@ -166,8 +166,8 @@ Creates a new builder in an isolated git worktree. The builder gets:
|
|
|
166
166
|
**Examples:**
|
|
167
167
|
|
|
168
168
|
```bash
|
|
169
|
-
# Spawn builder for spec
|
|
170
|
-
af spawn -p
|
|
169
|
+
# Spawn builder for spec 42
|
|
170
|
+
af spawn -p 42
|
|
171
171
|
|
|
172
172
|
# Spawn with task description
|
|
173
173
|
af spawn --task "Fix login bug in auth module"
|
|
@@ -176,7 +176,7 @@ af spawn --task "Fix login bug in auth module"
|
|
|
176
176
|
af spawn --shell
|
|
177
177
|
|
|
178
178
|
# Spawn with context files
|
|
179
|
-
af spawn -p
|
|
179
|
+
af spawn -p 42 --files "src/auth.ts,tests/auth.test.ts"
|
|
180
180
|
```
|
|
181
181
|
|
|
182
182
|
---
|
|
@@ -198,8 +198,8 @@ Displays the current state of all builders and the architect:
|
|
|
198
198
|
│ ID │ Name │ Status │ Branch │
|
|
199
199
|
├────────┼──────────────┼─────────────┼─────────┤
|
|
200
200
|
│ arch │ Architect │ running │ main │
|
|
201
|
-
│
|
|
202
|
-
│
|
|
201
|
+
│ 42 │ auth-feature │ implementing│ builder/42-auth │
|
|
202
|
+
│ 43 │ api-refactor │ pr-ready │ builder/43-api │
|
|
203
203
|
└────────┴──────────────┴─────────────┴─────────┘
|
|
204
204
|
```
|
|
205
205
|
|
|
@@ -232,10 +232,10 @@ Removes a builder's worktree and associated resources. By default, refuses to de
|
|
|
232
232
|
|
|
233
233
|
```bash
|
|
234
234
|
# Clean up completed builder
|
|
235
|
-
af cleanup -p
|
|
235
|
+
af cleanup -p 42
|
|
236
236
|
|
|
237
237
|
# Force cleanup (may lose work)
|
|
238
|
-
af cleanup -p
|
|
238
|
+
af cleanup -p 42 --force
|
|
239
239
|
```
|
|
240
240
|
|
|
241
241
|
---
|
|
@@ -249,7 +249,7 @@ af send [builder] [message] [options]
|
|
|
249
249
|
```
|
|
250
250
|
|
|
251
251
|
**Arguments:**
|
|
252
|
-
- `builder` - Builder ID (e.g., `
|
|
252
|
+
- `builder` - Builder ID (e.g., `42`)
|
|
253
253
|
- `message` - Message to send
|
|
254
254
|
|
|
255
255
|
**Options:**
|
|
@@ -270,16 +270,16 @@ Sends text to a builder's terminal. Useful for:
|
|
|
270
270
|
|
|
271
271
|
```bash
|
|
272
272
|
# Send message to builder
|
|
273
|
-
af send
|
|
273
|
+
af send 42 "Focus on the auth module first"
|
|
274
274
|
|
|
275
275
|
# Interrupt and send new instructions
|
|
276
|
-
af send
|
|
276
|
+
af send 42 --interrupt "Stop that. Try a different approach."
|
|
277
277
|
|
|
278
278
|
# Send to all builders
|
|
279
279
|
af send --all "Time to wrap up, create PRs"
|
|
280
280
|
|
|
281
281
|
# Include file content
|
|
282
|
-
af send
|
|
282
|
+
af send 42 --file src/api.ts "Review this implementation"
|
|
283
283
|
```
|
|
284
284
|
|
|
285
285
|
---
|
|
@@ -352,7 +352,7 @@ af rename <id> <name>
|
|
|
352
352
|
**Example:**
|
|
353
353
|
|
|
354
354
|
```bash
|
|
355
|
-
af rename
|
|
355
|
+
af rename 42 "auth-rework"
|
|
356
356
|
```
|
|
357
357
|
|
|
358
358
|
---
|
|
@@ -528,7 +528,7 @@ Or override via CLI flags:
|
|
|
528
528
|
|
|
529
529
|
```bash
|
|
530
530
|
af start --architect-cmd "claude --model opus"
|
|
531
|
-
af spawn -p
|
|
531
|
+
af spawn -p 42 --builder-cmd "claude --model haiku"
|
|
532
532
|
```
|
|
533
533
|
|
|
534
534
|
---
|
|
@@ -30,7 +30,6 @@ Creates a minimal codev project structure:
|
|
|
30
30
|
- `codev/specs/` - Specification files
|
|
31
31
|
- `codev/plans/` - Implementation plans
|
|
32
32
|
- `codev/reviews/` - Review documents
|
|
33
|
-
- `codev/projectlist.md` - Project tracking
|
|
34
33
|
- `CLAUDE.md` / `AGENTS.md` - AI agent instructions
|
|
35
34
|
- `.gitignore` - Standard ignores
|
|
36
35
|
|
|
@@ -77,7 +77,7 @@ consult -m <model> spec <number>
|
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
**Arguments:**
|
|
80
|
-
- `number` - Spec number to review (e.g., `42` for `codev/specs/
|
|
80
|
+
- `number` - Spec number to review (e.g., `42` for `codev/specs/42-*.md`)
|
|
81
81
|
|
|
82
82
|
**Description:**
|
|
83
83
|
|
|
@@ -111,7 +111,7 @@ consult -m <model> plan <number>
|
|
|
111
111
|
```
|
|
112
112
|
|
|
113
113
|
**Arguments:**
|
|
114
|
-
- `number` - Plan number to review (e.g., `42` for `codev/plans/
|
|
114
|
+
- `number` - Plan number to review (e.g., `42` for `codev/plans/42-*.md`)
|
|
115
115
|
|
|
116
116
|
**Description:**
|
|
117
117
|
|
|
@@ -310,7 +310,7 @@ cp $(npm root -g)/@cluesmith/codev/skeleton/roles/consultant.md codev/roles/
|
|
|
310
310
|
All consultations are logged to `.consult/history.log`:
|
|
311
311
|
|
|
312
312
|
```
|
|
313
|
-
2024-01-15T10:30:00.000Z model=gemini duration=142.3s query=Review spec
|
|
313
|
+
2024-01-15T10:30:00.000Z model=gemini duration=142.3s query=Review spec 42...
|
|
314
314
|
```
|
|
315
315
|
|
|
316
316
|
---
|
|
@@ -43,7 +43,7 @@ Store spikes in `codev/spikes/{spec-number}/`:
|
|
|
43
43
|
|
|
44
44
|
```
|
|
45
45
|
codev/spikes/
|
|
46
|
-
└──
|
|
46
|
+
└── 62/
|
|
47
47
|
├── spike-api-behavior.ts
|
|
48
48
|
├── spike-event-handoff.ts
|
|
49
49
|
└── spike-storage-roundtrip.ts
|
|
@@ -63,7 +63,7 @@ Each spike file should:
|
|
|
63
63
|
* 2. [Another test case]
|
|
64
64
|
* 3. [Edge case]
|
|
65
65
|
*
|
|
66
|
-
* Run with: npx tsx codev/spikes/
|
|
66
|
+
* Run with: npx tsx codev/spikes/62/spike-name.ts
|
|
67
67
|
*/
|
|
68
68
|
|
|
69
69
|
// Self-contained, runnable code that validates the assumption
|
|
@@ -115,4 +115,4 @@ Why:
|
|
|
115
115
|
- Keeps build fast and focused on production code
|
|
116
116
|
- Prevents spike code from accidentally shipping
|
|
117
117
|
|
|
118
|
-
Run spikes directly: `npx tsx codev/spikes/
|
|
118
|
+
Run spikes directly: `npx tsx codev/spikes/62/spike-name.ts`
|
|
@@ -10,7 +10,7 @@ Quick reference for the 7-stage project workflow. For protocol details, see `cod
|
|
|
10
10
|
│ │
|
|
11
11
|
│ → 1. CONCEIVED │
|
|
12
12
|
│ User describes project concept │
|
|
13
|
-
│ Architect
|
|
13
|
+
│ Architect creates GitHub Issue, writes spec │
|
|
14
14
|
│ Architect does 3-way spec review │
|
|
15
15
|
│ ⏸️ HUMAN GATE: Approve spec │
|
|
16
16
|
│ │
|
|
@@ -80,19 +80,19 @@ AI agents must stop and wait for human action at these gates.
|
|
|
80
80
|
af dash start
|
|
81
81
|
|
|
82
82
|
# Spawn a builder for a project
|
|
83
|
-
af spawn -p
|
|
83
|
+
af spawn -p 44
|
|
84
84
|
|
|
85
85
|
# Check all builder statuses
|
|
86
86
|
af status
|
|
87
87
|
|
|
88
88
|
# Send message to builder
|
|
89
|
-
af send
|
|
89
|
+
af send 44 "Check PR comments and address feedback"
|
|
90
90
|
|
|
91
91
|
# Open a file for review
|
|
92
|
-
af open codev/specs/
|
|
92
|
+
af open codev/specs/44-name.md
|
|
93
93
|
|
|
94
94
|
# Clean up after merge
|
|
95
|
-
af cleanup -p
|
|
95
|
+
af cleanup -p 44
|
|
96
96
|
|
|
97
97
|
# Stop everything
|
|
98
98
|
af dash stop
|
|
@@ -128,16 +128,16 @@ codev import github:owner/repo --dry-run
|
|
|
128
128
|
|
|
129
129
|
```bash
|
|
130
130
|
# Spec review (during Stage 1)
|
|
131
|
-
consult --model gemini --type spec-review spec
|
|
132
|
-
consult --model codex --type spec-review spec
|
|
131
|
+
consult --model gemini --type spec-review spec 44
|
|
132
|
+
consult --model codex --type spec-review spec 44
|
|
133
133
|
|
|
134
134
|
# Plan review (during Stage 2)
|
|
135
|
-
consult --model gemini --type plan-review plan
|
|
136
|
-
consult --model codex --type plan-review plan
|
|
135
|
+
consult --model gemini --type plan-review plan 44
|
|
136
|
+
consult --model codex --type plan-review plan 44
|
|
137
137
|
|
|
138
138
|
# Implementation review (during Stage 4, after each phase)
|
|
139
|
-
consult --model gemini --type impl-review spec
|
|
140
|
-
consult --model codex --type impl-review spec
|
|
139
|
+
consult --model gemini --type impl-review spec 44
|
|
140
|
+
consult --model codex --type impl-review spec 44
|
|
141
141
|
|
|
142
142
|
# PR ready review (during Stage 5)
|
|
143
143
|
consult --model gemini --type pr-ready pr 88
|
|
@@ -148,9 +148,9 @@ consult --model gemini --type integration-review pr 88
|
|
|
148
148
|
consult --model codex --type integration-review pr 88
|
|
149
149
|
|
|
150
150
|
# Parallel 3-way reviews (run all three concurrently)
|
|
151
|
-
consult --model gemini --type spec-review spec
|
|
152
|
-
consult --model codex --type spec-review spec
|
|
153
|
-
consult --model claude --type spec-review spec
|
|
151
|
+
consult --model gemini --type spec-review spec 44 &
|
|
152
|
+
consult --model codex --type spec-review spec 44 &
|
|
153
|
+
consult --model claude --type spec-review spec 44 &
|
|
154
154
|
wait
|
|
155
155
|
```
|
|
156
156
|
|
|
@@ -28,16 +28,16 @@ Builders work autonomously in isolated git worktrees. The Architect:
|
|
|
28
28
|
### Agent Farm CLI (`af`)
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
af spawn -p
|
|
32
|
-
af spawn -p
|
|
33
|
-
af spawn -p
|
|
34
|
-
af spawn --soft -p
|
|
31
|
+
af spawn -p 1 # Strict mode (default) - porch-driven
|
|
32
|
+
af spawn -p 1 -t "feature" # Strict mode with title (no spec yet)
|
|
33
|
+
af spawn -p 1 --resume # Resume existing porch state
|
|
34
|
+
af spawn --soft -p 1 # Soft mode - protocol-guided
|
|
35
35
|
af spawn --task "fix the bug" # Ad-hoc task builder (soft mode)
|
|
36
36
|
af spawn --worktree # Worktree with no initial prompt
|
|
37
37
|
af status # Check all builders
|
|
38
|
-
af cleanup -p
|
|
38
|
+
af cleanup -p 1 # Remove completed builder
|
|
39
39
|
af dash start/stop # Dashboard management
|
|
40
|
-
af send
|
|
40
|
+
af send 1 "message" # Short message to builder
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
**Note:** `af`, `consult`, `porch`, and `codev` are global commands. They work from any directory.
|
|
@@ -45,8 +45,8 @@ af send 0001 "message" # Short message to builder
|
|
|
45
45
|
### Porch CLI (for strict mode)
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
|
-
porch status
|
|
49
|
-
porch approve
|
|
48
|
+
porch status 1 # Check project state
|
|
49
|
+
porch approve 1 spec-approval # Approve a gate
|
|
50
50
|
porch pending # List pending gates
|
|
51
51
|
```
|
|
52
52
|
|
|
@@ -63,7 +63,7 @@ wait
|
|
|
63
63
|
## Responsibilities
|
|
64
64
|
|
|
65
65
|
1. **Decide what to build** - Identify features, prioritize work
|
|
66
|
-
2. **
|
|
66
|
+
2. **Track projects** - Use GitHub Issues as the project registry
|
|
67
67
|
3. **Spawn builders** - Choose soft or strict mode based on needs
|
|
68
68
|
4. **Approve gates** - (Strict mode) Review specs and plans, approve to continue
|
|
69
69
|
5. **Monitor progress** - Track builder status, unblock when stuck
|
|
@@ -75,17 +75,17 @@ wait
|
|
|
75
75
|
### 1. Starting a New Feature
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
|
-
# 1.
|
|
78
|
+
# 1. Create a GitHub Issue for the feature
|
|
79
79
|
# 2. Spawn the builder
|
|
80
80
|
|
|
81
81
|
# Default: Strict mode (porch-driven with gates)
|
|
82
|
-
af spawn -p
|
|
82
|
+
af spawn -p 42
|
|
83
83
|
|
|
84
84
|
# With project title (if no spec exists yet)
|
|
85
|
-
af spawn -p
|
|
85
|
+
af spawn -p 42 -t "user-authentication"
|
|
86
86
|
|
|
87
87
|
# Or: Soft mode (builder follows protocol independently)
|
|
88
|
-
af spawn --soft -p
|
|
88
|
+
af spawn --soft -p 42
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
### 2. Approving Gates (Strict Mode Only)
|
|
@@ -95,26 +95,26 @@ The builder stops at gates requiring approval:
|
|
|
95
95
|
**spec-approval** - After builder writes the spec
|
|
96
96
|
```bash
|
|
97
97
|
# Review the spec in the builder's worktree
|
|
98
|
-
cat worktrees/
|
|
98
|
+
cat worktrees/spir_42_user-authentication/codev/specs/42-user-authentication.md
|
|
99
99
|
|
|
100
100
|
# Approve if satisfactory
|
|
101
|
-
porch approve
|
|
101
|
+
porch approve 42 spec-approval
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
**plan-approval** - After builder writes the plan
|
|
105
105
|
```bash
|
|
106
106
|
# Review the plan
|
|
107
|
-
cat worktrees/
|
|
107
|
+
cat worktrees/spir_42_user-authentication/codev/plans/42-user-authentication.md
|
|
108
108
|
|
|
109
109
|
# Approve if satisfactory
|
|
110
|
-
porch approve
|
|
110
|
+
porch approve 42 plan-approval
|
|
111
111
|
```
|
|
112
112
|
|
|
113
113
|
### 3. Monitoring Progress
|
|
114
114
|
|
|
115
115
|
```bash
|
|
116
116
|
af status # Overview of all builders
|
|
117
|
-
porch status
|
|
117
|
+
porch status 42 # Detailed state for one project (strict mode)
|
|
118
118
|
```
|
|
119
119
|
|
|
120
120
|
### 4. Integration Review
|
|
@@ -139,7 +139,7 @@ Integration looks good. No conflicts with existing modules.
|
|
|
139
139
|
Architect integration review"
|
|
140
140
|
|
|
141
141
|
# Notify builder
|
|
142
|
-
af send
|
|
142
|
+
af send 42 "PR approved, please merge"
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
### 5. Cleanup
|
|
@@ -147,7 +147,7 @@ af send 0042 "PR approved, please merge"
|
|
|
147
147
|
After builder merges and work is integrated:
|
|
148
148
|
|
|
149
149
|
```bash
|
|
150
|
-
af cleanup -p
|
|
150
|
+
af cleanup -p 42
|
|
151
151
|
```
|
|
152
152
|
|
|
153
153
|
## Critical Rules
|
|
@@ -158,21 +158,21 @@ af cleanup -p 0042
|
|
|
158
158
|
3. **DO NOT use `af send` for long messages** - Use GitHub PR comments instead
|
|
159
159
|
|
|
160
160
|
### ALWAYS Do These:
|
|
161
|
-
1. **
|
|
161
|
+
1. **Create GitHub Issues first** - Track projects as issues before spawning
|
|
162
162
|
2. **Review artifacts before approving gates** - (Strict mode) Read the spec/plan carefully
|
|
163
163
|
3. **Use PR comments for feedback** - Not terminal send-keys
|
|
164
164
|
4. **Let builders own their work** - Guide, don't take over
|
|
165
165
|
|
|
166
166
|
## Project Tracking
|
|
167
167
|
|
|
168
|
-
|
|
168
|
+
**GitHub Issues are the canonical source of truth for project tracking.**
|
|
169
169
|
|
|
170
170
|
```bash
|
|
171
171
|
# See what needs work
|
|
172
|
-
|
|
172
|
+
gh issue list --label "priority:high"
|
|
173
173
|
|
|
174
|
-
#
|
|
175
|
-
|
|
174
|
+
# View a specific project
|
|
175
|
+
gh issue view 42
|
|
176
176
|
```
|
|
177
177
|
|
|
178
178
|
Update status as projects progress:
|
|
@@ -25,3 +25,9 @@ You are a consultant providing a second perspective to support decision-making.
|
|
|
25
25
|
| Consultant | Provides perspective, supports decisions |
|
|
26
26
|
|
|
27
27
|
You think alongside the other agents, helping them see blind spots. You have filesystem access — use it to verify your claims against the actual codebase.
|
|
28
|
+
|
|
29
|
+
## File Access Rules
|
|
30
|
+
|
|
31
|
+
- **ALWAYS read files directly from disk** when reviewing specs, plans, or code. File paths are provided in the query — open and read them.
|
|
32
|
+
- **NEVER rely on `git diff` or `git log -p` as your primary review source.** Diffs are lossy, get truncated, and miss uncommitted work. Read the actual files instead.
|
|
33
|
+
- If you need to understand what changed, read the full file first, then optionally use `git diff` as a secondary reference.
|
|
@@ -30,9 +30,9 @@ This project uses **Codev** for AI-assisted development.
|
|
|
30
30
|
## File Naming Convention
|
|
31
31
|
|
|
32
32
|
Use sequential numbering with descriptive names:
|
|
33
|
-
- Specification: `codev/specs/
|
|
34
|
-
- Plan: `codev/plans/
|
|
35
|
-
- Review: `codev/reviews/
|
|
33
|
+
- Specification: `codev/specs/1-feature-name.md`
|
|
34
|
+
- Plan: `codev/plans/1-feature-name.md`
|
|
35
|
+
- Review: `codev/reviews/1-feature-name.md`
|
|
36
36
|
|
|
37
37
|
## Git Workflow
|
|
38
38
|
|
|
@@ -40,8 +40,8 @@ Use sequential numbering with descriptive names:
|
|
|
40
40
|
|
|
41
41
|
Commit messages format:
|
|
42
42
|
```
|
|
43
|
-
[Spec
|
|
44
|
-
[Spec
|
|
43
|
+
[Spec 1] Description of change
|
|
44
|
+
[Spec 1][Phase: implement] feat: Add feature
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
## CLI Commands
|
|
@@ -28,9 +28,9 @@ This project uses **Codev** for AI-assisted development.
|
|
|
28
28
|
## File Naming Convention
|
|
29
29
|
|
|
30
30
|
Use sequential numbering with descriptive names:
|
|
31
|
-
- Specification: `codev/specs/
|
|
32
|
-
- Plan: `codev/plans/
|
|
33
|
-
- Review: `codev/reviews/
|
|
31
|
+
- Specification: `codev/specs/1-feature-name.md`
|
|
32
|
+
- Plan: `codev/plans/1-feature-name.md`
|
|
33
|
+
- Review: `codev/reviews/1-feature-name.md`
|
|
34
34
|
|
|
35
35
|
## Git Workflow
|
|
36
36
|
|
|
@@ -38,8 +38,8 @@ Use sequential numbering with descriptive names:
|
|
|
38
38
|
|
|
39
39
|
Commit messages format:
|
|
40
40
|
```
|
|
41
|
-
[Spec
|
|
42
|
-
[Spec
|
|
41
|
+
[Spec 1] Description of change
|
|
42
|
+
[Spec 1][Phase: implement] feat: Add feature
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
## CLI Commands
|
|
@@ -18,7 +18,7 @@ conceived → specified → planned → implementing → implemented → committ
|
|
|
18
18
|
|
|
19
19
|
**What happens next:** The Architect (AI) writes a specification. The human reviews and approves it.
|
|
20
20
|
|
|
21
|
-
**Artifact:** Draft specification in `codev/specs/
|
|
21
|
+
**Artifact:** Draft specification in `codev/specs/NNN-name.md`
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
@@ -30,7 +30,7 @@ conceived → specified → planned → implementing → implemented → committ
|
|
|
30
30
|
|
|
31
31
|
**What happens next:** The Architect creates an implementation plan.
|
|
32
32
|
|
|
33
|
-
**Artifact:** Approved specification in `codev/specs/
|
|
33
|
+
**Artifact:** Approved specification in `codev/specs/NNN-name.md`
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
@@ -42,7 +42,7 @@ conceived → specified → planned → implementing → implemented → committ
|
|
|
42
42
|
|
|
43
43
|
**What happens next:** A Builder is spawned to implement the plan.
|
|
44
44
|
|
|
45
|
-
**Artifact:** Implementation plan in `codev/plans/
|
|
45
|
+
**Artifact:** Implementation plan in `codev/plans/NNN-name.md`
|
|
46
46
|
|
|
47
47
|
---
|
|
48
48
|
|
|
@@ -90,7 +90,7 @@ conceived → specified → planned → implementing → implemented → committ
|
|
|
90
90
|
|
|
91
91
|
**What happens next:** Nothing - the project is complete! A review document captures lessons learned.
|
|
92
92
|
|
|
93
|
-
**Artifact:** Review document in `codev/reviews/
|
|
93
|
+
**Artifact:** Review document in `codev/reviews/NNN-name.md`
|
|
94
94
|
|
|
95
95
|
---
|
|
96
96
|
|
|
@@ -100,7 +100,7 @@ Projects can also end up in terminal states if they won't be completed:
|
|
|
100
100
|
|
|
101
101
|
### Abandoned
|
|
102
102
|
|
|
103
|
-
The project was canceled or rejected. It will not be implemented.
|
|
103
|
+
The project was canceled or rejected. It will not be implemented. Close the GitHub Issue with a comment explaining why.
|
|
104
104
|
|
|
105
105
|
### On-Hold
|
|
106
106
|
|
|
@@ -125,12 +125,12 @@ conceived → [HUMAN APPROVES] → specified → planned → implementing → im
|
|
|
125
125
|
|
|
126
126
|
## Managing Projects
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
Project tracking uses **GitHub Issues**. To manage projects:
|
|
129
129
|
|
|
130
|
-
- **Add a project:**
|
|
131
|
-
- **Update status:**
|
|
130
|
+
- **Add a project:** Create a GitHub Issue describing what you want to build
|
|
131
|
+
- **Update status:** Update issue labels and comments as work progresses
|
|
132
132
|
- **Approve stages:** Review the spec/plan and tell the Architect to mark it approved
|
|
133
|
-
- **View progress:** Check the
|
|
133
|
+
- **View progress:** Check the Work tab in the dashboard or `gh issue list`
|
|
134
134
|
|
|
135
135
|
---
|
|
136
136
|
|
package/templates/open.html
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<title>Annotate: {{FILE}}</title>
|
|
6
|
-
<link href="
|
|
6
|
+
<link href="vendor/prism-tomorrow.min.css" rel="stylesheet">
|
|
7
7
|
<!-- Markdown preview dependencies (loaded only for .md files) -->
|
|
8
8
|
<script>
|
|
9
9
|
if ({{IS_MARKDOWN}}) {
|
|
10
|
-
document.write('<script src="
|
|
11
|
-
document.write('<script src="
|
|
10
|
+
document.write('<script src="vendor/marked.min.js"><\/script>');
|
|
11
|
+
document.write('<script src="vendor/purify.min.js"><\/script>');
|
|
12
12
|
}
|
|
13
13
|
</script>
|
|
14
14
|
<style>
|
|
@@ -547,16 +547,16 @@
|
|
|
547
547
|
<div id="annotationsList"></div>
|
|
548
548
|
</div>
|
|
549
549
|
|
|
550
|
-
<script src="
|
|
551
|
-
<script src="
|
|
552
|
-
<script src="
|
|
553
|
-
<script src="
|
|
554
|
-
<script src="
|
|
555
|
-
<script src="
|
|
556
|
-
<script src="
|
|
557
|
-
<script src="
|
|
558
|
-
<script src="
|
|
559
|
-
<script src="
|
|
550
|
+
<script src="vendor/prism.min.js"></script>
|
|
551
|
+
<script src="vendor/prism-javascript.min.js"></script>
|
|
552
|
+
<script src="vendor/prism-typescript.min.js"></script>
|
|
553
|
+
<script src="vendor/prism-python.min.js"></script>
|
|
554
|
+
<script src="vendor/prism-bash.min.js"></script>
|
|
555
|
+
<script src="vendor/prism-markdown.min.js"></script>
|
|
556
|
+
<script src="vendor/prism-json.min.js"></script>
|
|
557
|
+
<script src="vendor/prism-yaml.min.js"></script>
|
|
558
|
+
<script src="vendor/prism-css.min.js"></script>
|
|
559
|
+
<script src="vendor/prism-markup.min.js"></script>
|
|
560
560
|
|
|
561
561
|
<script>
|
|
562
562
|
// State
|
|
@@ -988,17 +988,20 @@
|
|
|
988
988
|
// Position dialog next to click
|
|
989
989
|
const dialog = document.querySelector('.dialog');
|
|
990
990
|
const rect = event.target.getBoundingClientRect();
|
|
991
|
-
|
|
991
|
+
// Use actual rendered width (CSS max-width: 90vw constrains on mobile)
|
|
992
|
+
const dialogWidth = Math.min(700, window.innerWidth * 0.9);
|
|
992
993
|
const dialogHeight = 350;
|
|
994
|
+
const margin = 10;
|
|
993
995
|
|
|
994
996
|
// Position to the right of the line number, with some padding
|
|
995
997
|
let left = rect.right + 10;
|
|
996
998
|
let top = rect.top;
|
|
997
999
|
|
|
998
1000
|
// Keep dialog in viewport
|
|
999
|
-
if (left + dialogWidth > window.innerWidth) {
|
|
1000
|
-
left = window.innerWidth - dialogWidth
|
|
1001
|
+
if (left + dialogWidth > window.innerWidth - margin) {
|
|
1002
|
+
left = (window.innerWidth - dialogWidth) / 2;
|
|
1001
1003
|
}
|
|
1004
|
+
if (left < margin) left = margin;
|
|
1002
1005
|
if (top + dialogHeight > window.innerHeight) {
|
|
1003
1006
|
top = window.innerHeight - dialogHeight - 20;
|
|
1004
1007
|
}
|