@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.
Files changed (312) hide show
  1. package/dashboard/dist/assets/index-B-s8BA2l.js +135 -0
  2. package/dashboard/dist/assets/index-B-s8BA2l.js.map +1 -0
  3. package/dashboard/dist/assets/index-DB2AxRP7.css +32 -0
  4. package/dashboard/dist/index.html +2 -2
  5. package/dist/agent-farm/cli.d.ts.map +1 -1
  6. package/dist/agent-farm/cli.js +32 -14
  7. package/dist/agent-farm/cli.js.map +1 -1
  8. package/dist/agent-farm/commands/architect.d.ts +1 -1
  9. package/dist/agent-farm/commands/architect.js +3 -3
  10. package/dist/agent-farm/commands/architect.js.map +1 -1
  11. package/dist/agent-farm/commands/attach.d.ts +19 -0
  12. package/dist/agent-farm/commands/attach.d.ts.map +1 -1
  13. package/dist/agent-farm/commands/attach.js +172 -12
  14. package/dist/agent-farm/commands/attach.js.map +1 -1
  15. package/dist/agent-farm/commands/cleanup.js +6 -6
  16. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  17. package/dist/agent-farm/commands/open.js +5 -5
  18. package/dist/agent-farm/commands/open.js.map +1 -1
  19. package/dist/agent-farm/commands/send.d.ts +22 -2
  20. package/dist/agent-farm/commands/send.d.ts.map +1 -1
  21. package/dist/agent-farm/commands/send.js +100 -181
  22. package/dist/agent-farm/commands/send.js.map +1 -1
  23. package/dist/agent-farm/commands/shell.js +5 -5
  24. package/dist/agent-farm/commands/shell.js.map +1 -1
  25. package/dist/agent-farm/commands/spawn-roles.d.ts +3 -9
  26. package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -1
  27. package/dist/agent-farm/commands/spawn-roles.js +14 -53
  28. package/dist/agent-farm/commands/spawn-roles.js.map +1 -1
  29. package/dist/agent-farm/commands/spawn-worktree.d.ts +11 -17
  30. package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
  31. package/dist/agent-farm/commands/spawn-worktree.js +32 -13
  32. package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
  33. package/dist/agent-farm/commands/spawn.d.ts +8 -6
  34. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  35. package/dist/agent-farm/commands/spawn.js +183 -69
  36. package/dist/agent-farm/commands/spawn.js.map +1 -1
  37. package/dist/agent-farm/commands/start.d.ts +4 -4
  38. package/dist/agent-farm/commands/start.js +16 -16
  39. package/dist/agent-farm/commands/start.js.map +1 -1
  40. package/dist/agent-farm/commands/status.d.ts +1 -1
  41. package/dist/agent-farm/commands/status.d.ts.map +1 -1
  42. package/dist/agent-farm/commands/status.js +15 -26
  43. package/dist/agent-farm/commands/status.js.map +1 -1
  44. package/dist/agent-farm/commands/stop.d.ts +4 -4
  45. package/dist/agent-farm/commands/stop.js +9 -9
  46. package/dist/agent-farm/commands/stop.js.map +1 -1
  47. package/dist/agent-farm/db/index.d.ts.map +1 -1
  48. package/dist/agent-farm/db/index.js +82 -7
  49. package/dist/agent-farm/db/index.js.map +1 -1
  50. package/dist/agent-farm/db/schema.d.ts +2 -2
  51. package/dist/agent-farm/db/schema.d.ts.map +1 -1
  52. package/dist/agent-farm/db/schema.js +21 -4
  53. package/dist/agent-farm/db/schema.js.map +1 -1
  54. package/dist/agent-farm/lib/tower-client.d.ts +36 -26
  55. package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
  56. package/dist/agent-farm/lib/tower-client.js +50 -25
  57. package/dist/agent-farm/lib/tower-client.js.map +1 -1
  58. package/dist/agent-farm/lib/tunnel-client.d.ts +12 -2
  59. package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -1
  60. package/dist/agent-farm/lib/tunnel-client.js +59 -1
  61. package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
  62. package/dist/agent-farm/servers/overview.d.ts +111 -0
  63. package/dist/agent-farm/servers/overview.d.ts.map +1 -0
  64. package/dist/agent-farm/servers/overview.js +385 -0
  65. package/dist/agent-farm/servers/overview.js.map +1 -0
  66. package/dist/agent-farm/servers/tower-instances.d.ts +18 -20
  67. package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
  68. package/dist/agent-farm/servers/tower-instances.js +97 -100
  69. package/dist/agent-farm/servers/tower-instances.js.map +1 -1
  70. package/dist/agent-farm/servers/tower-messages.d.ts +87 -0
  71. package/dist/agent-farm/servers/tower-messages.d.ts.map +1 -0
  72. package/dist/agent-farm/servers/tower-messages.js +202 -0
  73. package/dist/agent-farm/servers/tower-messages.js.map +1 -0
  74. package/dist/agent-farm/servers/tower-routes.d.ts +1 -1
  75. package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
  76. package/dist/agent-farm/servers/tower-routes.js +343 -174
  77. package/dist/agent-farm/servers/tower-routes.js.map +1 -1
  78. package/dist/agent-farm/servers/tower-server.js +50 -21
  79. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  80. package/dist/agent-farm/servers/tower-terminals.d.ts +35 -31
  81. package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
  82. package/dist/agent-farm/servers/tower-terminals.js +208 -184
  83. package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
  84. package/dist/agent-farm/servers/tower-tunnel.d.ts +2 -2
  85. package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -1
  86. package/dist/agent-farm/servers/tower-tunnel.js +12 -12
  87. package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
  88. package/dist/agent-farm/servers/tower-types.d.ts +8 -12
  89. package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
  90. package/dist/agent-farm/servers/tower-utils.d.ts +9 -9
  91. package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
  92. package/dist/agent-farm/servers/tower-utils.js +18 -18
  93. package/dist/agent-farm/servers/tower-utils.js.map +1 -1
  94. package/dist/agent-farm/servers/tower-websocket.d.ts +2 -2
  95. package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -1
  96. package/dist/agent-farm/servers/tower-websocket.js +39 -18
  97. package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
  98. package/dist/agent-farm/types.d.ts +5 -6
  99. package/dist/agent-farm/types.d.ts.map +1 -1
  100. package/dist/agent-farm/utils/agent-names.d.ts +85 -0
  101. package/dist/agent-farm/utils/agent-names.d.ts.map +1 -0
  102. package/dist/agent-farm/utils/agent-names.js +140 -0
  103. package/dist/agent-farm/utils/agent-names.js.map +1 -0
  104. package/dist/agent-farm/utils/config.d.ts +1 -1
  105. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  106. package/dist/agent-farm/utils/config.js +16 -16
  107. package/dist/agent-farm/utils/config.js.map +1 -1
  108. package/dist/agent-farm/utils/file-tabs.d.ts +3 -3
  109. package/dist/agent-farm/utils/file-tabs.d.ts.map +1 -1
  110. package/dist/agent-farm/utils/file-tabs.js +9 -9
  111. package/dist/agent-farm/utils/file-tabs.js.map +1 -1
  112. package/dist/agent-farm/utils/index.d.ts +0 -1
  113. package/dist/agent-farm/utils/index.d.ts.map +1 -1
  114. package/dist/agent-farm/utils/index.js +0 -1
  115. package/dist/agent-farm/utils/index.js.map +1 -1
  116. package/dist/agent-farm/utils/message-format.d.ts +17 -0
  117. package/dist/agent-farm/utils/message-format.d.ts.map +1 -0
  118. package/dist/agent-farm/utils/message-format.js +41 -0
  119. package/dist/agent-farm/utils/message-format.js.map +1 -0
  120. package/dist/agent-farm/utils/notifications.d.ts +4 -4
  121. package/dist/agent-farm/utils/notifications.d.ts.map +1 -1
  122. package/dist/agent-farm/utils/notifications.js +18 -18
  123. package/dist/agent-farm/utils/notifications.js.map +1 -1
  124. package/dist/cli.d.ts.map +1 -1
  125. package/dist/cli.js +26 -1
  126. package/dist/cli.js.map +1 -1
  127. package/dist/commands/adopt.d.ts +2 -2
  128. package/dist/commands/adopt.d.ts.map +1 -1
  129. package/dist/commands/adopt.js +13 -15
  130. package/dist/commands/adopt.js.map +1 -1
  131. package/dist/commands/consult/index.d.ts +26 -2
  132. package/dist/commands/consult/index.d.ts.map +1 -1
  133. package/dist/commands/consult/index.js +296 -83
  134. package/dist/commands/consult/index.js.map +1 -1
  135. package/dist/commands/consult/metrics.d.ts +90 -0
  136. package/dist/commands/consult/metrics.d.ts.map +1 -0
  137. package/dist/commands/consult/metrics.js +203 -0
  138. package/dist/commands/consult/metrics.js.map +1 -0
  139. package/dist/commands/consult/stats.d.ts +18 -0
  140. package/dist/commands/consult/stats.d.ts.map +1 -0
  141. package/dist/commands/consult/stats.js +150 -0
  142. package/dist/commands/consult/stats.js.map +1 -0
  143. package/dist/commands/consult/usage-extractor.d.ts +38 -0
  144. package/dist/commands/consult/usage-extractor.d.ts.map +1 -0
  145. package/dist/commands/consult/usage-extractor.js +99 -0
  146. package/dist/commands/consult/usage-extractor.js.map +1 -0
  147. package/dist/commands/doctor.d.ts.map +1 -1
  148. package/dist/commands/doctor.js +11 -9
  149. package/dist/commands/doctor.js.map +1 -1
  150. package/dist/commands/import.js +4 -4
  151. package/dist/commands/import.js.map +1 -1
  152. package/dist/commands/init.d.ts +2 -2
  153. package/dist/commands/init.d.ts.map +1 -1
  154. package/dist/commands/init.js +13 -15
  155. package/dist/commands/init.js.map +1 -1
  156. package/dist/commands/porch/index.d.ts +6 -6
  157. package/dist/commands/porch/index.d.ts.map +1 -1
  158. package/dist/commands/porch/index.js +37 -37
  159. package/dist/commands/porch/index.js.map +1 -1
  160. package/dist/commands/porch/next.d.ts +1 -1
  161. package/dist/commands/porch/next.d.ts.map +1 -1
  162. package/dist/commands/porch/next.js +86 -92
  163. package/dist/commands/porch/next.js.map +1 -1
  164. package/dist/commands/porch/notify.d.ts +11 -0
  165. package/dist/commands/porch/notify.d.ts.map +1 -0
  166. package/dist/commands/porch/notify.js +30 -0
  167. package/dist/commands/porch/notify.js.map +1 -0
  168. package/dist/commands/porch/plan.d.ts +1 -1
  169. package/dist/commands/porch/plan.d.ts.map +1 -1
  170. package/dist/commands/porch/plan.js +3 -3
  171. package/dist/commands/porch/plan.js.map +1 -1
  172. package/dist/commands/porch/prompts.d.ts +10 -1
  173. package/dist/commands/porch/prompts.d.ts.map +1 -1
  174. package/dist/commands/porch/prompts.js +59 -35
  175. package/dist/commands/porch/prompts.js.map +1 -1
  176. package/dist/commands/porch/protocol.d.ts +1 -1
  177. package/dist/commands/porch/protocol.d.ts.map +1 -1
  178. package/dist/commands/porch/protocol.js +8 -8
  179. package/dist/commands/porch/protocol.js.map +1 -1
  180. package/dist/commands/porch/state.d.ts +6 -6
  181. package/dist/commands/porch/state.d.ts.map +1 -1
  182. package/dist/commands/porch/state.js +14 -12
  183. package/dist/commands/porch/state.js.map +1 -1
  184. package/dist/commands/update.d.ts.map +1 -1
  185. package/dist/commands/update.js +10 -11
  186. package/dist/commands/update.js.map +1 -1
  187. package/dist/lib/github.d.ts +81 -0
  188. package/dist/lib/github.d.ts.map +1 -0
  189. package/dist/lib/github.js +141 -0
  190. package/dist/lib/github.js.map +1 -0
  191. package/dist/lib/scaffold.d.ts +13 -21
  192. package/dist/lib/scaffold.d.ts.map +1 -1
  193. package/dist/lib/scaffold.js +34 -57
  194. package/dist/lib/scaffold.js.map +1 -1
  195. package/dist/lib/skeleton.d.ts +7 -7
  196. package/dist/lib/skeleton.d.ts.map +1 -1
  197. package/dist/lib/skeleton.js +10 -10
  198. package/dist/lib/skeleton.js.map +1 -1
  199. package/dist/terminal/index.d.ts +14 -0
  200. package/dist/terminal/index.d.ts.map +1 -1
  201. package/dist/terminal/index.js +12 -0
  202. package/dist/terminal/index.js.map +1 -1
  203. package/dist/terminal/pty-manager.d.ts +1 -1
  204. package/dist/terminal/pty-manager.d.ts.map +1 -1
  205. package/dist/terminal/pty-manager.js +10 -7
  206. package/dist/terminal/pty-manager.js.map +1 -1
  207. package/dist/terminal/pty-session.js +3 -3
  208. package/dist/terminal/pty-session.js.map +1 -1
  209. package/dist/terminal/session-manager.d.ts +64 -0
  210. package/dist/terminal/session-manager.d.ts.map +1 -1
  211. package/dist/terminal/session-manager.js +299 -10
  212. package/dist/terminal/session-manager.js.map +1 -1
  213. package/dist/terminal/shellper-client.d.ts +2 -1
  214. package/dist/terminal/shellper-client.d.ts.map +1 -1
  215. package/dist/terminal/shellper-client.js +4 -2
  216. package/dist/terminal/shellper-client.js.map +1 -1
  217. package/dist/terminal/shellper-main.js +33 -4
  218. package/dist/terminal/shellper-main.js.map +1 -1
  219. package/dist/terminal/shellper-process.d.ts +24 -7
  220. package/dist/terminal/shellper-process.d.ts.map +1 -1
  221. package/dist/terminal/shellper-process.js +139 -36
  222. package/dist/terminal/shellper-process.js.map +1 -1
  223. package/dist/terminal/shellper-protocol.d.ts +1 -0
  224. package/dist/terminal/shellper-protocol.d.ts.map +1 -1
  225. package/dist/terminal/shellper-protocol.js.map +1 -1
  226. package/package.json +4 -1
  227. package/skeleton/.claude/skills/af/SKILL.md +7 -7
  228. package/skeleton/.claude/skills/consult/SKILL.md +1 -1
  229. package/skeleton/builders.md +2 -2
  230. package/skeleton/maintain/.gitkeep +1 -1
  231. package/skeleton/porch/prompts/specify.md +1 -1
  232. package/skeleton/protocols/bugfix/prompts/pr.md +15 -4
  233. package/skeleton/protocols/experiment/protocol.md +17 -17
  234. package/skeleton/protocols/maintain/prompts/audit.md +2 -2
  235. package/skeleton/protocols/maintain/prompts/sync.md +1 -1
  236. package/skeleton/protocols/maintain/prompts/verify.md +1 -1
  237. package/skeleton/protocols/maintain/protocol.md +8 -9
  238. package/skeleton/protocols/maintain/templates/maintenance-run.md +2 -2
  239. package/skeleton/protocols/spir/protocol.json +5 -5
  240. package/skeleton/protocols/spir/protocol.md +8 -8
  241. package/skeleton/protocols/tick/protocol.md +31 -31
  242. package/skeleton/resources/commands/agent-farm.md +14 -14
  243. package/skeleton/resources/commands/codev.md +0 -1
  244. package/skeleton/resources/commands/consult.md +3 -3
  245. package/skeleton/resources/spikes.md +3 -3
  246. package/skeleton/resources/workflow-reference.md +14 -14
  247. package/skeleton/roles/architect.md +25 -25
  248. package/skeleton/roles/builder.md +1 -1
  249. package/skeleton/roles/consultant.md +6 -0
  250. package/skeleton/templates/AGENTS.md +5 -5
  251. package/skeleton/templates/CLAUDE.md +5 -5
  252. package/skeleton/templates/lifecycle.md +9 -9
  253. package/templates/open.html +19 -16
  254. package/templates/tower.html +54 -94
  255. package/templates/vendor/marked.min.js +6 -0
  256. package/templates/vendor/prism-bash.min.js +1 -0
  257. package/templates/vendor/prism-css.min.js +1 -0
  258. package/templates/vendor/prism-javascript.min.js +1 -0
  259. package/templates/vendor/prism-json.min.js +1 -0
  260. package/templates/vendor/prism-markdown.min.js +1 -0
  261. package/templates/vendor/prism-markup.min.js +1 -0
  262. package/templates/vendor/prism-python.min.js +1 -0
  263. package/templates/vendor/prism-tomorrow.min.css +1 -0
  264. package/templates/vendor/prism-typescript.min.js +1 -0
  265. package/templates/vendor/prism-yaml.min.js +1 -0
  266. package/templates/vendor/prism.min.js +1 -0
  267. package/templates/vendor/purify.min.js +3 -0
  268. package/dashboard/dist/assets/index-4n9zpWLY.css +0 -32
  269. package/dashboard/dist/assets/index-b38SaXk5.js +0 -136
  270. package/dashboard/dist/assets/index-b38SaXk5.js.map +0 -1
  271. package/dist/agent-farm/hq-connector.d.ts +0 -19
  272. package/dist/agent-farm/hq-connector.d.ts.map +0 -1
  273. package/dist/agent-farm/hq-connector.js +0 -351
  274. package/dist/agent-farm/hq-connector.js.map +0 -1
  275. package/dist/agent-farm/utils/deps.d.ts +0 -51
  276. package/dist/agent-farm/utils/deps.d.ts.map +0 -1
  277. package/dist/agent-farm/utils/deps.js +0 -162
  278. package/dist/agent-farm/utils/deps.js.map +0 -1
  279. package/dist/agent-farm/utils/gate-status.d.ts +0 -16
  280. package/dist/agent-farm/utils/gate-status.d.ts.map +0 -1
  281. package/dist/agent-farm/utils/gate-status.js +0 -79
  282. package/dist/agent-farm/utils/gate-status.js.map +0 -1
  283. package/dist/agent-farm/utils/gate-watcher.d.ts +0 -38
  284. package/dist/agent-farm/utils/gate-watcher.d.ts.map +0 -1
  285. package/dist/agent-farm/utils/gate-watcher.js +0 -122
  286. package/dist/agent-farm/utils/gate-watcher.js.map +0 -1
  287. package/dist/agent-farm/utils/session.d.ts +0 -32
  288. package/dist/agent-farm/utils/session.d.ts.map +0 -1
  289. package/dist/agent-farm/utils/session.js +0 -57
  290. package/dist/agent-farm/utils/session.js.map +0 -1
  291. package/dist/lib/projectlist-parser.d.ts +0 -70
  292. package/dist/lib/projectlist-parser.d.ts.map +0 -1
  293. package/dist/lib/projectlist-parser.js +0 -200
  294. package/dist/lib/projectlist-parser.js.map +0 -1
  295. package/skeleton/templates/projectlist-archive.md +0 -21
  296. package/skeleton/templates/projectlist.md +0 -147
  297. package/templates/dashboard/css/dialogs.css +0 -149
  298. package/templates/dashboard/css/files.css +0 -558
  299. package/templates/dashboard/css/layout.css +0 -133
  300. package/templates/dashboard/css/projects.css +0 -501
  301. package/templates/dashboard/css/statusbar.css +0 -23
  302. package/templates/dashboard/css/tabs.css +0 -314
  303. package/templates/dashboard/css/utilities.css +0 -50
  304. package/templates/dashboard/css/variables.css +0 -45
  305. package/templates/dashboard/index.html +0 -149
  306. package/templates/dashboard/js/dialogs.js +0 -368
  307. package/templates/dashboard/js/files.js +0 -448
  308. package/templates/dashboard/js/main.js +0 -476
  309. package/templates/dashboard/js/projects.js +0 -544
  310. package/templates/dashboard/js/state.js +0 -91
  311. package/templates/dashboard/js/tabs.js +0 -518
  312. 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., `0042`)
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 0042
170
- af spawn -p 0042
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 0042 --files "src/auth.ts,tests/auth.test.ts"
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
- 0042 │ auth-feature │ implementing│ builder/0042-auth │
202
- 0043 │ api-refactor │ pr-ready │ builder/0043-api │
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 0042
235
+ af cleanup -p 42
236
236
 
237
237
  # Force cleanup (may lose work)
238
- af cleanup -p 0042 --force
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., `0042`)
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 0042 "Focus on the auth module first"
273
+ af send 42 "Focus on the auth module first"
274
274
 
275
275
  # Interrupt and send new instructions
276
- af send 0042 --interrupt "Stop that. Try a different approach."
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 0042 --file src/api.ts "Review this implementation"
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 0042 "auth-rework"
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 0042 --builder-cmd "claude --model haiku"
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/0042-*.md`)
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/0042-*.md`)
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 0042...
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
- └── 0062/
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/0062/spike-name.ts
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/0062/spike-name.ts`
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 adds to projectlist, writes spec
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 0044
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 0044 "Check PR comments and address feedback"
89
+ af send 44 "Check PR comments and address feedback"
90
90
 
91
91
  # Open a file for review
92
- af open codev/specs/0044-name.md
92
+ af open codev/specs/44-name.md
93
93
 
94
94
  # Clean up after merge
95
- af cleanup -p 0044
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 0044
132
- consult --model codex --type spec-review spec 0044
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 0044
136
- consult --model codex --type plan-review plan 0044
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 0044
140
- consult --model codex --type impl-review spec 0044
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 0044 &
152
- consult --model codex --type spec-review spec 0044 &
153
- consult --model claude --type spec-review spec 0044 &
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 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
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 0001 # Remove completed builder
38
+ af cleanup -p 1 # Remove completed builder
39
39
  af dash start/stop # Dashboard management
40
- af send 0001 "message" # Short message to builder
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 0001 # Check project state
49
- porch approve 0001 spec-approval # Approve a gate
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. **Maintain project list** - Track all projects in `codev/projectlist.md`
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. Reserve project number in projectlist.md
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 0042
82
+ af spawn -p 42
83
83
 
84
84
  # With project title (if no spec exists yet)
85
- af spawn -p 0042 -t "user-authentication"
85
+ af spawn -p 42 -t "user-authentication"
86
86
 
87
87
  # Or: Soft mode (builder follows protocol independently)
88
- af spawn --soft -p 0042
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/spir_0042_user-authentication/codev/specs/0042-user-authentication.md
98
+ cat worktrees/spir_42_user-authentication/codev/specs/42-user-authentication.md
99
99
 
100
100
  # Approve if satisfactory
101
- porch approve 0042 spec-approval
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/spir_0042_user-authentication/codev/plans/0042-user-authentication.md
107
+ cat worktrees/spir_42_user-authentication/codev/plans/42-user-authentication.md
108
108
 
109
109
  # Approve if satisfactory
110
- porch approve 0042 plan-approval
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 0042 # Detailed state for one project (strict mode)
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 0042 "PR approved, please merge"
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 0042
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. **Reserve project numbers first** - Update projectlist.md before spawning
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
- **`codev/projectlist.md` is the canonical source of truth.**
168
+ **GitHub Issues are the canonical source of truth for project tracking.**
169
169
 
170
170
  ```bash
171
171
  # See what needs work
172
- cat codev/projectlist.md
172
+ gh issue list --label "priority:high"
173
173
 
174
- # Find high-priority items
175
- grep -A5 "priority: high" codev/projectlist.md
174
+ # View a specific project
175
+ gh issue view 42
176
176
  ```
177
177
 
178
178
  Update status as projects progress:
@@ -164,7 +164,7 @@ If you encounter issues you can't resolve:
164
164
 
165
165
  Example:
166
166
  ```
167
- ## BLOCKED: Spec 0077
167
+ ## BLOCKED: Spec 77
168
168
  Can't find the auth helper mentioned in spec. Options:
169
169
  1. Create a new auth helper
170
170
  2. Use a third-party library
@@ -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/0001-feature-name.md`
34
- - Plan: `codev/plans/0001-feature-name.md`
35
- - Review: `codev/reviews/0001-feature-name.md`
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 0001] Description of change
44
- [Spec 0001][Phase: implement] feat: Add feature
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/0001-feature-name.md`
32
- - Plan: `codev/plans/0001-feature-name.md`
33
- - Review: `codev/reviews/0001-feature-name.md`
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 0001] Description of change
42
- [Spec 0001][Phase: implement] feat: Add feature
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/NNNN-name.md`
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/NNNN-name.md`
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/NNNN-name.md`
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/NNNN-name.md`
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. The notes field in `projectlist.md` should explain why.
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
- All project tracking happens in `codev/projectlist.md`. To manage projects:
128
+ Project tracking uses **GitHub Issues**. To manage projects:
129
129
 
130
- - **Add a project:** Tell the Architect what you want to build
131
- - **Update status:** Ask the Architect to update the project 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 Projects tab in the dashboard or read `projectlist.md`
133
+ - **View progress:** Check the Work tab in the dashboard or `gh issue list`
134
134
 
135
135
  ---
136
136
 
@@ -3,12 +3,12 @@
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <title>Annotate: {{FILE}}</title>
6
- <link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css" rel="stylesheet">
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="https://cdn.jsdelivr.net/npm/marked@12/marked.min.js"><\/script>');
11
- document.write('<script src="https://cdn.jsdelivr.net/npm/dompurify@3/dist/purify.min.js"><\/script>');
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="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
551
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-javascript.min.js"></script>
552
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-typescript.min.js"></script>
553
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-python.min.js"></script>
554
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-bash.min.js"></script>
555
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-markdown.min.js"></script>
556
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-json.min.js"></script>
557
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-yaml.min.js"></script>
558
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-css.min.js"></script>
559
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-markup.min.js"></script>
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
- const dialogWidth = 700;
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 - 20;
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
  }