@cluesmith/codev 2.0.0-rc.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (507) hide show
  1. package/bin/af.js +2 -2
  2. package/bin/consult.js +1 -1
  3. package/bin/porch.js +6 -35
  4. package/dashboard/dist/assets/index-4n9zpWLY.css +32 -0
  5. package/dashboard/dist/assets/index-b38SaXk5.js +136 -0
  6. package/dashboard/dist/assets/index-b38SaXk5.js.map +1 -0
  7. package/dashboard/dist/index.html +14 -0
  8. package/dist/agent-farm/cli.d.ts.map +1 -1
  9. package/dist/agent-farm/cli.js +179 -118
  10. package/dist/agent-farm/cli.js.map +1 -1
  11. package/dist/agent-farm/commands/architect.d.ts +3 -3
  12. package/dist/agent-farm/commands/architect.d.ts.map +1 -1
  13. package/dist/agent-farm/commands/architect.js +20 -147
  14. package/dist/agent-farm/commands/architect.js.map +1 -1
  15. package/dist/agent-farm/commands/attach.d.ts +13 -0
  16. package/dist/agent-farm/commands/attach.d.ts.map +1 -0
  17. package/dist/agent-farm/commands/attach.js +144 -0
  18. package/dist/agent-farm/commands/attach.js.map +1 -0
  19. package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
  20. package/dist/agent-farm/commands/cleanup.js +35 -19
  21. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  22. package/dist/agent-farm/commands/consult.d.ts +3 -4
  23. package/dist/agent-farm/commands/consult.d.ts.map +1 -1
  24. package/dist/agent-farm/commands/consult.js +27 -37
  25. package/dist/agent-farm/commands/consult.js.map +1 -1
  26. package/dist/agent-farm/commands/index.d.ts +2 -2
  27. package/dist/agent-farm/commands/index.d.ts.map +1 -1
  28. package/dist/agent-farm/commands/index.js +2 -2
  29. package/dist/agent-farm/commands/index.js.map +1 -1
  30. package/dist/agent-farm/commands/open.d.ts +4 -2
  31. package/dist/agent-farm/commands/open.d.ts.map +1 -1
  32. package/dist/agent-farm/commands/open.js +33 -83
  33. package/dist/agent-farm/commands/open.js.map +1 -1
  34. package/dist/agent-farm/commands/send.d.ts +1 -1
  35. package/dist/agent-farm/commands/send.d.ts.map +1 -1
  36. package/dist/agent-farm/commands/send.js +70 -79
  37. package/dist/agent-farm/commands/send.js.map +1 -1
  38. package/dist/agent-farm/commands/shell.d.ts +15 -0
  39. package/dist/agent-farm/commands/shell.d.ts.map +1 -0
  40. package/dist/agent-farm/commands/shell.js +50 -0
  41. package/dist/agent-farm/commands/shell.js.map +1 -0
  42. package/dist/agent-farm/commands/spawn-roles.d.ts +80 -0
  43. package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -0
  44. package/dist/agent-farm/commands/spawn-roles.js +278 -0
  45. package/dist/agent-farm/commands/spawn-roles.js.map +1 -0
  46. package/dist/agent-farm/commands/spawn-worktree.d.ts +96 -0
  47. package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -0
  48. package/dist/agent-farm/commands/spawn-worktree.js +305 -0
  49. package/dist/agent-farm/commands/spawn-worktree.js.map +1 -0
  50. package/dist/agent-farm/commands/spawn.d.ts +5 -1
  51. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  52. package/dist/agent-farm/commands/spawn.js +242 -586
  53. package/dist/agent-farm/commands/spawn.js.map +1 -1
  54. package/dist/agent-farm/commands/start.d.ts +10 -20
  55. package/dist/agent-farm/commands/start.d.ts.map +1 -1
  56. package/dist/agent-farm/commands/start.js +45 -491
  57. package/dist/agent-farm/commands/start.js.map +1 -1
  58. package/dist/agent-farm/commands/status.d.ts +2 -0
  59. package/dist/agent-farm/commands/status.d.ts.map +1 -1
  60. package/dist/agent-farm/commands/status.js +75 -24
  61. package/dist/agent-farm/commands/status.js.map +1 -1
  62. package/dist/agent-farm/commands/stop.d.ts +6 -0
  63. package/dist/agent-farm/commands/stop.d.ts.map +1 -1
  64. package/dist/agent-farm/commands/stop.js +49 -109
  65. package/dist/agent-farm/commands/stop.js.map +1 -1
  66. package/dist/agent-farm/commands/tower-cloud.d.ts +48 -0
  67. package/dist/agent-farm/commands/tower-cloud.d.ts.map +1 -0
  68. package/dist/agent-farm/commands/tower-cloud.js +293 -0
  69. package/dist/agent-farm/commands/tower-cloud.js.map +1 -0
  70. package/dist/agent-farm/commands/tower.d.ts +9 -0
  71. package/dist/agent-farm/commands/tower.d.ts.map +1 -1
  72. package/dist/agent-farm/commands/tower.js +59 -19
  73. package/dist/agent-farm/commands/tower.js.map +1 -1
  74. package/dist/agent-farm/db/index.d.ts +6 -2
  75. package/dist/agent-farm/db/index.d.ts.map +1 -1
  76. package/dist/agent-farm/db/index.js +301 -19
  77. package/dist/agent-farm/db/index.js.map +1 -1
  78. package/dist/agent-farm/db/migrate.d.ts +0 -4
  79. package/dist/agent-farm/db/migrate.d.ts.map +1 -1
  80. package/dist/agent-farm/db/migrate.js +6 -55
  81. package/dist/agent-farm/db/migrate.js.map +1 -1
  82. package/dist/agent-farm/db/schema.d.ts +3 -3
  83. package/dist/agent-farm/db/schema.d.ts.map +1 -1
  84. package/dist/agent-farm/db/schema.js +25 -19
  85. package/dist/agent-farm/db/schema.js.map +1 -1
  86. package/dist/agent-farm/db/types.d.ts +3 -13
  87. package/dist/agent-farm/db/types.d.ts.map +1 -1
  88. package/dist/agent-farm/db/types.js +3 -11
  89. package/dist/agent-farm/db/types.js.map +1 -1
  90. package/dist/agent-farm/hq-connector.d.ts +2 -6
  91. package/dist/agent-farm/hq-connector.d.ts.map +1 -1
  92. package/dist/agent-farm/hq-connector.js +2 -17
  93. package/dist/agent-farm/hq-connector.js.map +1 -1
  94. package/dist/agent-farm/lib/cloud-config.d.ts +59 -0
  95. package/dist/agent-farm/lib/cloud-config.d.ts.map +1 -0
  96. package/dist/agent-farm/lib/cloud-config.js +143 -0
  97. package/dist/agent-farm/lib/cloud-config.js.map +1 -0
  98. package/dist/agent-farm/lib/device-name.d.ts +25 -0
  99. package/dist/agent-farm/lib/device-name.d.ts.map +1 -0
  100. package/dist/agent-farm/lib/device-name.js +46 -0
  101. package/dist/agent-farm/lib/device-name.js.map +1 -0
  102. package/dist/agent-farm/lib/nonce-store.d.ts +28 -0
  103. package/dist/agent-farm/lib/nonce-store.d.ts.map +1 -0
  104. package/dist/agent-farm/lib/nonce-store.js +60 -0
  105. package/dist/agent-farm/lib/nonce-store.js.map +1 -0
  106. package/dist/agent-farm/lib/token-exchange.d.ts +18 -0
  107. package/dist/agent-farm/lib/token-exchange.d.ts.map +1 -0
  108. package/dist/agent-farm/lib/token-exchange.js +48 -0
  109. package/dist/agent-farm/lib/token-exchange.js.map +1 -0
  110. package/dist/agent-farm/lib/tower-client.d.ts +163 -0
  111. package/dist/agent-farm/lib/tower-client.d.ts.map +1 -0
  112. package/dist/agent-farm/lib/tower-client.js +233 -0
  113. package/dist/agent-farm/lib/tower-client.js.map +1 -0
  114. package/dist/agent-farm/lib/tunnel-client.d.ts +117 -0
  115. package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -0
  116. package/dist/agent-farm/lib/tunnel-client.js +504 -0
  117. package/dist/agent-farm/lib/tunnel-client.js.map +1 -0
  118. package/dist/agent-farm/servers/tower-instances.d.ts +82 -0
  119. package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -0
  120. package/dist/agent-farm/servers/tower-instances.js +454 -0
  121. package/dist/agent-farm/servers/tower-instances.js.map +1 -0
  122. package/dist/agent-farm/servers/tower-routes.d.ts +34 -0
  123. package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -0
  124. package/dist/agent-farm/servers/tower-routes.js +1445 -0
  125. package/dist/agent-farm/servers/tower-routes.js.map +1 -0
  126. package/dist/agent-farm/servers/tower-server.d.ts +5 -2
  127. package/dist/agent-farm/servers/tower-server.d.ts.map +1 -1
  128. package/dist/agent-farm/servers/tower-server.js +157 -475
  129. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  130. package/dist/agent-farm/servers/tower-terminals.d.ts +119 -0
  131. package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -0
  132. package/dist/agent-farm/servers/tower-terminals.js +629 -0
  133. package/dist/agent-farm/servers/tower-terminals.js.map +1 -0
  134. package/dist/agent-farm/servers/tower-tunnel.d.ts +34 -0
  135. package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -0
  136. package/dist/agent-farm/servers/tower-tunnel.js +473 -0
  137. package/dist/agent-farm/servers/tower-tunnel.js.map +1 -0
  138. package/dist/agent-farm/servers/tower-types.d.ts +86 -0
  139. package/dist/agent-farm/servers/tower-types.d.ts.map +1 -0
  140. package/dist/agent-farm/servers/tower-types.js +6 -0
  141. package/dist/agent-farm/servers/tower-types.js.map +1 -0
  142. package/dist/agent-farm/servers/tower-utils.d.ts +58 -0
  143. package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -0
  144. package/dist/agent-farm/servers/tower-utils.js +182 -0
  145. package/dist/agent-farm/servers/tower-utils.js.map +1 -0
  146. package/dist/agent-farm/servers/tower-websocket.d.ts +25 -0
  147. package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -0
  148. package/dist/agent-farm/servers/tower-websocket.js +171 -0
  149. package/dist/agent-farm/servers/tower-websocket.js.map +1 -0
  150. package/dist/agent-farm/state.d.ts +6 -12
  151. package/dist/agent-farm/state.d.ts.map +1 -1
  152. package/dist/agent-farm/state.js +34 -49
  153. package/dist/agent-farm/state.js.map +1 -1
  154. package/dist/agent-farm/types.d.ts +49 -26
  155. package/dist/agent-farm/types.d.ts.map +1 -1
  156. package/dist/agent-farm/utils/config.d.ts +0 -5
  157. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  158. package/dist/agent-farm/utils/config.js +12 -44
  159. package/dist/agent-farm/utils/config.js.map +1 -1
  160. package/dist/agent-farm/utils/deps.d.ts.map +1 -1
  161. package/dist/agent-farm/utils/deps.js +0 -32
  162. package/dist/agent-farm/utils/deps.js.map +1 -1
  163. package/dist/agent-farm/utils/file-tabs.d.ts +27 -0
  164. package/dist/agent-farm/utils/file-tabs.d.ts.map +1 -0
  165. package/dist/agent-farm/utils/file-tabs.js +46 -0
  166. package/dist/agent-farm/utils/file-tabs.js.map +1 -0
  167. package/dist/agent-farm/utils/gate-status.d.ts +16 -0
  168. package/dist/agent-farm/utils/gate-status.d.ts.map +1 -0
  169. package/dist/agent-farm/utils/gate-status.js +79 -0
  170. package/dist/agent-farm/utils/gate-status.js.map +1 -0
  171. package/dist/agent-farm/utils/gate-watcher.d.ts +38 -0
  172. package/dist/agent-farm/utils/gate-watcher.d.ts.map +1 -0
  173. package/dist/agent-farm/utils/gate-watcher.js +122 -0
  174. package/dist/agent-farm/utils/gate-watcher.js.map +1 -0
  175. package/dist/agent-farm/utils/index.d.ts +0 -1
  176. package/dist/agent-farm/utils/index.d.ts.map +1 -1
  177. package/dist/agent-farm/utils/index.js +0 -1
  178. package/dist/agent-farm/utils/index.js.map +1 -1
  179. package/dist/agent-farm/utils/notifications.d.ts +30 -0
  180. package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
  181. package/dist/agent-farm/utils/notifications.js +121 -0
  182. package/dist/agent-farm/utils/notifications.js.map +1 -0
  183. package/dist/agent-farm/utils/server-utils.d.ts +5 -5
  184. package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
  185. package/dist/agent-farm/utils/server-utils.js +5 -16
  186. package/dist/agent-farm/utils/server-utils.js.map +1 -1
  187. package/dist/agent-farm/utils/session.d.ts +32 -0
  188. package/dist/agent-farm/utils/session.d.ts.map +1 -0
  189. package/dist/agent-farm/utils/session.js +57 -0
  190. package/dist/agent-farm/utils/session.js.map +1 -0
  191. package/dist/agent-farm/utils/shell.d.ts +9 -22
  192. package/dist/agent-farm/utils/shell.d.ts.map +1 -1
  193. package/dist/agent-farm/utils/shell.js +34 -34
  194. package/dist/agent-farm/utils/shell.js.map +1 -1
  195. package/dist/cli.d.ts.map +1 -1
  196. package/dist/cli.js +11 -54
  197. package/dist/cli.js.map +1 -1
  198. package/dist/commands/adopt.d.ts.map +1 -1
  199. package/dist/commands/adopt.js +49 -4
  200. package/dist/commands/adopt.js.map +1 -1
  201. package/dist/commands/consult/index.d.ts +13 -2
  202. package/dist/commands/consult/index.d.ts.map +1 -1
  203. package/dist/commands/consult/index.js +245 -29
  204. package/dist/commands/consult/index.js.map +1 -1
  205. package/dist/commands/doctor.d.ts.map +1 -1
  206. package/dist/commands/doctor.js +96 -79
  207. package/dist/commands/doctor.js.map +1 -1
  208. package/dist/commands/init.d.ts.map +1 -1
  209. package/dist/commands/init.js +52 -3
  210. package/dist/commands/init.js.map +1 -1
  211. package/dist/commands/porch/build-counter.d.ts +5 -0
  212. package/dist/commands/porch/build-counter.d.ts.map +1 -0
  213. package/dist/commands/porch/build-counter.js +5 -0
  214. package/dist/commands/porch/build-counter.js.map +1 -0
  215. package/dist/commands/porch/checks.d.ts +17 -29
  216. package/dist/commands/porch/checks.d.ts.map +1 -1
  217. package/dist/commands/porch/checks.js +96 -144
  218. package/dist/commands/porch/checks.js.map +1 -1
  219. package/dist/commands/porch/index.d.ts +25 -43
  220. package/dist/commands/porch/index.d.ts.map +1 -1
  221. package/dist/commands/porch/index.js +466 -1238
  222. package/dist/commands/porch/index.js.map +1 -1
  223. package/dist/commands/porch/next.d.ts +22 -0
  224. package/dist/commands/porch/next.d.ts.map +1 -0
  225. package/dist/commands/porch/next.js +571 -0
  226. package/dist/commands/porch/next.js.map +1 -0
  227. package/dist/commands/porch/plan.d.ts +70 -0
  228. package/dist/commands/porch/plan.d.ts.map +1 -0
  229. package/dist/commands/porch/plan.js +190 -0
  230. package/dist/commands/porch/plan.js.map +1 -0
  231. package/dist/commands/porch/prompts.d.ts +19 -0
  232. package/dist/commands/porch/prompts.d.ts.map +1 -0
  233. package/dist/commands/porch/prompts.js +277 -0
  234. package/dist/commands/porch/prompts.js.map +1 -0
  235. package/dist/commands/porch/protocol.d.ts +59 -0
  236. package/dist/commands/porch/protocol.d.ts.map +1 -0
  237. package/dist/commands/porch/protocol.js +294 -0
  238. package/dist/commands/porch/protocol.js.map +1 -0
  239. package/dist/commands/porch/state.d.ts +36 -107
  240. package/dist/commands/porch/state.d.ts.map +1 -1
  241. package/dist/commands/porch/state.js +120 -699
  242. package/dist/commands/porch/state.js.map +1 -1
  243. package/dist/commands/porch/types.d.ts +99 -164
  244. package/dist/commands/porch/types.d.ts.map +1 -1
  245. package/dist/commands/porch/types.js +2 -1
  246. package/dist/commands/porch/types.js.map +1 -1
  247. package/dist/commands/porch/verdict.d.ts +31 -0
  248. package/dist/commands/porch/verdict.d.ts.map +1 -0
  249. package/dist/commands/porch/verdict.js +59 -0
  250. package/dist/commands/porch/verdict.js.map +1 -0
  251. package/dist/commands/update.d.ts.map +1 -1
  252. package/dist/commands/update.js +31 -0
  253. package/dist/commands/update.js.map +1 -1
  254. package/dist/lib/scaffold.d.ts +37 -0
  255. package/dist/lib/scaffold.d.ts.map +1 -1
  256. package/dist/lib/scaffold.js +114 -0
  257. package/dist/lib/scaffold.js.map +1 -1
  258. package/dist/terminal/index.d.ts +8 -0
  259. package/dist/terminal/index.d.ts.map +1 -0
  260. package/dist/terminal/index.js +5 -0
  261. package/dist/terminal/index.js.map +1 -0
  262. package/dist/terminal/pty-manager.d.ts +69 -0
  263. package/dist/terminal/pty-manager.d.ts.map +1 -0
  264. package/dist/terminal/pty-manager.js +377 -0
  265. package/dist/terminal/pty-manager.js.map +1 -0
  266. package/dist/terminal/pty-session.d.ts +104 -0
  267. package/dist/terminal/pty-session.d.ts.map +1 -0
  268. package/dist/terminal/pty-session.js +327 -0
  269. package/dist/terminal/pty-session.js.map +1 -0
  270. package/dist/terminal/ring-buffer.d.ts +34 -0
  271. package/dist/terminal/ring-buffer.d.ts.map +1 -0
  272. package/dist/terminal/ring-buffer.js +94 -0
  273. package/dist/terminal/ring-buffer.js.map +1 -0
  274. package/dist/terminal/session-manager.d.ts +115 -0
  275. package/dist/terminal/session-manager.d.ts.map +1 -0
  276. package/dist/terminal/session-manager.js +582 -0
  277. package/dist/terminal/session-manager.js.map +1 -0
  278. package/dist/terminal/shellper-client.d.ts +66 -0
  279. package/dist/terminal/shellper-client.d.ts.map +1 -0
  280. package/dist/terminal/shellper-client.js +234 -0
  281. package/dist/terminal/shellper-client.js.map +1 -0
  282. package/dist/terminal/shellper-main.d.ts +19 -0
  283. package/dist/terminal/shellper-main.d.ts.map +1 -0
  284. package/dist/terminal/shellper-main.js +153 -0
  285. package/dist/terminal/shellper-main.js.map +1 -0
  286. package/dist/terminal/shellper-process.d.ts +75 -0
  287. package/dist/terminal/shellper-process.d.ts.map +1 -0
  288. package/dist/terminal/shellper-process.js +279 -0
  289. package/dist/terminal/shellper-process.js.map +1 -0
  290. package/dist/terminal/shellper-protocol.d.ts +115 -0
  291. package/dist/terminal/shellper-protocol.d.ts.map +1 -0
  292. package/dist/terminal/shellper-protocol.js +214 -0
  293. package/dist/terminal/shellper-protocol.js.map +1 -0
  294. package/dist/terminal/shellper-replay-buffer.d.ts +38 -0
  295. package/dist/terminal/shellper-replay-buffer.d.ts.map +1 -0
  296. package/dist/terminal/shellper-replay-buffer.js +94 -0
  297. package/dist/terminal/shellper-replay-buffer.js.map +1 -0
  298. package/dist/terminal/ws-protocol.d.ts +27 -0
  299. package/dist/terminal/ws-protocol.d.ts.map +1 -0
  300. package/dist/terminal/ws-protocol.js +44 -0
  301. package/dist/terminal/ws-protocol.js.map +1 -0
  302. package/package.json +19 -5
  303. package/skeleton/.claude/skills/af/SKILL.md +89 -0
  304. package/skeleton/.claude/skills/codev/SKILL.md +41 -0
  305. package/skeleton/.claude/skills/consult/SKILL.md +81 -0
  306. package/skeleton/.claude/skills/generate-image/SKILL.md +56 -0
  307. package/skeleton/DEPENDENCIES.md +4 -62
  308. package/skeleton/builders.md +1 -1
  309. package/skeleton/consult-types/impl-review.md +18 -9
  310. package/skeleton/consult-types/integration-review.md +1 -1
  311. package/skeleton/consult-types/plan-review.md +1 -1
  312. package/skeleton/consult-types/pr-ready.md +1 -1
  313. package/skeleton/consult-types/spec-review.md +1 -1
  314. package/skeleton/porch/prompts/defend.md +1 -1
  315. package/skeleton/porch/prompts/evaluate.md +2 -2
  316. package/skeleton/porch/prompts/implement.md +1 -1
  317. package/skeleton/porch/prompts/plan.md +1 -1
  318. package/skeleton/porch/prompts/review.md +4 -4
  319. package/skeleton/porch/prompts/specify.md +1 -1
  320. package/skeleton/porch/prompts/understand.md +2 -2
  321. package/skeleton/protocol-schema.json +282 -0
  322. package/skeleton/protocols/bugfix/builder-prompt.md +60 -0
  323. package/skeleton/protocols/bugfix/prompts/fix.md +77 -0
  324. package/skeleton/protocols/bugfix/prompts/investigate.md +77 -0
  325. package/skeleton/protocols/bugfix/prompts/pr.md +84 -0
  326. package/skeleton/protocols/bugfix/protocol.json +20 -33
  327. package/skeleton/protocols/experiment/builder-prompt.md +52 -0
  328. package/skeleton/protocols/experiment/protocol.json +101 -0
  329. package/skeleton/protocols/experiment/protocol.md +3 -3
  330. package/skeleton/protocols/experiment/templates/notes.md +1 -1
  331. package/skeleton/protocols/maintain/builder-prompt.md +46 -0
  332. package/skeleton/protocols/maintain/prompts/audit.md +111 -0
  333. package/skeleton/protocols/maintain/prompts/clean.md +91 -0
  334. package/skeleton/protocols/maintain/prompts/sync.md +113 -0
  335. package/skeleton/protocols/maintain/prompts/verify.md +110 -0
  336. package/skeleton/protocols/maintain/protocol.json +141 -0
  337. package/skeleton/protocols/maintain/protocol.md +17 -11
  338. package/skeleton/protocols/protocol-schema.json +54 -1
  339. package/skeleton/protocols/spir/builder-prompt.md +66 -0
  340. package/skeleton/protocols/spir/prompts/implement.md +208 -0
  341. package/skeleton/protocols/{spider → spir}/prompts/plan.md +6 -70
  342. package/skeleton/protocols/{spider → spir}/prompts/review.md +20 -39
  343. package/skeleton/protocols/{spider → spir}/prompts/specify.md +33 -61
  344. package/skeleton/protocols/spir/protocol.json +156 -0
  345. package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
  346. package/skeleton/protocols/{spider → spir}/templates/plan.md +14 -0
  347. package/skeleton/protocols/spir/templates/review.md +89 -0
  348. package/skeleton/protocols/tick/builder-prompt.md +56 -0
  349. package/skeleton/protocols/tick/protocol.json +7 -2
  350. package/skeleton/protocols/tick/protocol.md +18 -18
  351. package/skeleton/protocols/tick/templates/review.md +1 -1
  352. package/skeleton/resources/commands/agent-farm.md +63 -46
  353. package/skeleton/resources/commands/codev.md +0 -2
  354. package/skeleton/resources/commands/overview.md +7 -17
  355. package/skeleton/resources/workflow-reference.md +4 -4
  356. package/skeleton/roles/architect.md +152 -315
  357. package/skeleton/roles/builder.md +120 -214
  358. package/skeleton/roles/consultant.md +6 -6
  359. package/skeleton/templates/AGENTS.md +2 -2
  360. package/skeleton/templates/CLAUDE.md +2 -2
  361. package/skeleton/templates/cheatsheet.md +7 -5
  362. package/skeleton/templates/projectlist.md +1 -1
  363. package/templates/dashboard/index.html +17 -43
  364. package/templates/dashboard/js/dialogs.js +7 -7
  365. package/templates/dashboard/js/files.js +2 -2
  366. package/templates/dashboard/js/main.js +4 -4
  367. package/templates/dashboard/js/projects.js +3 -3
  368. package/templates/dashboard/js/tabs.js +1 -1
  369. package/templates/dashboard/js/utils.js +22 -87
  370. package/templates/open.html +26 -0
  371. package/templates/tower.html +731 -91
  372. package/dist/agent-farm/commands/kickoff.d.ts +0 -20
  373. package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
  374. package/dist/agent-farm/commands/kickoff.js +0 -337
  375. package/dist/agent-farm/commands/kickoff.js.map +0 -1
  376. package/dist/agent-farm/commands/rename.d.ts +0 -13
  377. package/dist/agent-farm/commands/rename.d.ts.map +0 -1
  378. package/dist/agent-farm/commands/rename.js +0 -33
  379. package/dist/agent-farm/commands/rename.js.map +0 -1
  380. package/dist/agent-farm/commands/tutorial.d.ts +0 -10
  381. package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
  382. package/dist/agent-farm/commands/tutorial.js +0 -49
  383. package/dist/agent-farm/commands/tutorial.js.map +0 -1
  384. package/dist/agent-farm/commands/util.d.ts +0 -15
  385. package/dist/agent-farm/commands/util.d.ts.map +0 -1
  386. package/dist/agent-farm/commands/util.js +0 -108
  387. package/dist/agent-farm/commands/util.js.map +0 -1
  388. package/dist/agent-farm/servers/dashboard-server.d.ts +0 -7
  389. package/dist/agent-farm/servers/dashboard-server.d.ts.map +0 -1
  390. package/dist/agent-farm/servers/dashboard-server.js +0 -1872
  391. package/dist/agent-farm/servers/dashboard-server.js.map +0 -1
  392. package/dist/agent-farm/servers/open-server.d.ts +0 -7
  393. package/dist/agent-farm/servers/open-server.d.ts.map +0 -1
  394. package/dist/agent-farm/servers/open-server.js +0 -315
  395. package/dist/agent-farm/servers/open-server.js.map +0 -1
  396. package/dist/agent-farm/tutorial/index.d.ts +0 -8
  397. package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
  398. package/dist/agent-farm/tutorial/index.js +0 -8
  399. package/dist/agent-farm/tutorial/index.js.map +0 -1
  400. package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
  401. package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
  402. package/dist/agent-farm/tutorial/prompts.js +0 -147
  403. package/dist/agent-farm/tutorial/prompts.js.map +0 -1
  404. package/dist/agent-farm/tutorial/runner.d.ts +0 -52
  405. package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
  406. package/dist/agent-farm/tutorial/runner.js +0 -204
  407. package/dist/agent-farm/tutorial/runner.js.map +0 -1
  408. package/dist/agent-farm/tutorial/state.d.ts +0 -26
  409. package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
  410. package/dist/agent-farm/tutorial/state.js +0 -89
  411. package/dist/agent-farm/tutorial/state.js.map +0 -1
  412. package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
  413. package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
  414. package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
  415. package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
  416. package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
  417. package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
  418. package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
  419. package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
  420. package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
  421. package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
  422. package/dist/agent-farm/tutorial/steps/index.js +0 -10
  423. package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
  424. package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
  425. package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
  426. package/dist/agent-farm/tutorial/steps/planning.js +0 -143
  427. package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
  428. package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
  429. package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
  430. package/dist/agent-farm/tutorial/steps/review.js +0 -78
  431. package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
  432. package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
  433. package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
  434. package/dist/agent-farm/tutorial/steps/setup.js +0 -126
  435. package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
  436. package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
  437. package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
  438. package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
  439. package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
  440. package/dist/agent-farm/utils/orphan-handler.d.ts +0 -27
  441. package/dist/agent-farm/utils/orphan-handler.d.ts.map +0 -1
  442. package/dist/agent-farm/utils/orphan-handler.js +0 -149
  443. package/dist/agent-farm/utils/orphan-handler.js.map +0 -1
  444. package/dist/agent-farm/utils/port-registry.d.ts +0 -58
  445. package/dist/agent-farm/utils/port-registry.d.ts.map +0 -1
  446. package/dist/agent-farm/utils/port-registry.js +0 -166
  447. package/dist/agent-farm/utils/port-registry.js.map +0 -1
  448. package/dist/agent-farm/utils/terminal-ports.d.ts +0 -18
  449. package/dist/agent-farm/utils/terminal-ports.d.ts.map +0 -1
  450. package/dist/agent-farm/utils/terminal-ports.js +0 -35
  451. package/dist/agent-farm/utils/terminal-ports.js.map +0 -1
  452. package/dist/commands/pcheck/cache.d.ts +0 -48
  453. package/dist/commands/pcheck/cache.d.ts.map +0 -1
  454. package/dist/commands/pcheck/cache.js +0 -170
  455. package/dist/commands/pcheck/cache.js.map +0 -1
  456. package/dist/commands/pcheck/evaluator.d.ts +0 -15
  457. package/dist/commands/pcheck/evaluator.d.ts.map +0 -1
  458. package/dist/commands/pcheck/evaluator.js +0 -246
  459. package/dist/commands/pcheck/evaluator.js.map +0 -1
  460. package/dist/commands/pcheck/index.d.ts +0 -12
  461. package/dist/commands/pcheck/index.d.ts.map +0 -1
  462. package/dist/commands/pcheck/index.js +0 -249
  463. package/dist/commands/pcheck/index.js.map +0 -1
  464. package/dist/commands/pcheck/parser.d.ts +0 -39
  465. package/dist/commands/pcheck/parser.d.ts.map +0 -1
  466. package/dist/commands/pcheck/parser.js +0 -155
  467. package/dist/commands/pcheck/parser.js.map +0 -1
  468. package/dist/commands/pcheck/types.d.ts +0 -82
  469. package/dist/commands/pcheck/types.d.ts.map +0 -1
  470. package/dist/commands/pcheck/types.js +0 -5
  471. package/dist/commands/pcheck/types.js.map +0 -1
  472. package/dist/commands/porch/consultation.d.ts +0 -56
  473. package/dist/commands/porch/consultation.d.ts.map +0 -1
  474. package/dist/commands/porch/consultation.js +0 -330
  475. package/dist/commands/porch/consultation.js.map +0 -1
  476. package/dist/commands/porch/notifications.d.ts +0 -99
  477. package/dist/commands/porch/notifications.d.ts.map +0 -1
  478. package/dist/commands/porch/notifications.js +0 -223
  479. package/dist/commands/porch/notifications.js.map +0 -1
  480. package/dist/commands/porch/plan-parser.d.ts +0 -38
  481. package/dist/commands/porch/plan-parser.d.ts.map +0 -1
  482. package/dist/commands/porch/plan-parser.js +0 -166
  483. package/dist/commands/porch/plan-parser.js.map +0 -1
  484. package/dist/commands/porch/protocol-loader.d.ts +0 -46
  485. package/dist/commands/porch/protocol-loader.d.ts.map +0 -1
  486. package/dist/commands/porch/protocol-loader.js +0 -253
  487. package/dist/commands/porch/protocol-loader.js.map +0 -1
  488. package/dist/commands/porch/signal-parser.d.ts +0 -88
  489. package/dist/commands/porch/signal-parser.d.ts.map +0 -1
  490. package/dist/commands/porch/signal-parser.js +0 -148
  491. package/dist/commands/porch/signal-parser.js.map +0 -1
  492. package/dist/commands/tower.d.ts +0 -16
  493. package/dist/commands/tower.d.ts.map +0 -1
  494. package/dist/commands/tower.js +0 -21
  495. package/dist/commands/tower.js.map +0 -1
  496. package/skeleton/config.json +0 -7
  497. package/skeleton/porch/protocols/bugfix.json +0 -85
  498. package/skeleton/porch/protocols/spider.json +0 -135
  499. package/skeleton/porch/protocols/tick.json +0 -76
  500. package/skeleton/protocols/spider/prompts/defend.md +0 -215
  501. package/skeleton/protocols/spider/prompts/evaluate.md +0 -241
  502. package/skeleton/protocols/spider/prompts/implement.md +0 -149
  503. package/skeleton/protocols/spider/protocol.json +0 -210
  504. package/skeleton/protocols/spider/templates/review.md +0 -207
  505. package/templates/dashboard/css/activity.css +0 -151
  506. package/templates/dashboard/js/activity.js +0 -112
  507. /package/skeleton/protocols/{spider → spir}/templates/spec.md +0 -0
@@ -1,211 +1,170 @@
1
1
  # Role: Builder
2
2
 
3
- A Builder is a focused implementation agent that works on a single spec in an isolated git worktree. Builders are spawned by the Architect and report their status back.
3
+ A Builder is an implementation agent that works on a single project in an isolated git worktree.
4
4
 
5
- > **Quick Reference**: See `codev/resources/workflow-reference.md` for stage diagrams and common commands.
5
+ ## Two Operating Modes
6
6
 
7
- ## Output Formatting
7
+ Builders run in one of two modes, determined by how they were spawned:
8
8
 
9
- When referencing files, use standard file paths or open them directly with `af open`:
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 |
10
13
 
11
- ```bash
12
- # Open a file for review in the dashboard
13
- af open src/lib/auth.ts
14
+ ## Strict Mode (Default)
14
15
 
15
- # Check your status
16
- af status
16
+ Spawned with: `af spawn -p XXXX`
17
17
 
18
- # Send a message to the architect
19
- af send architect "Question about the spec..."
20
- ```
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**.
21
19
 
22
- The `af` commands work from worktrees - they automatically find the main repository's state.
20
+ ### The Core Loop
23
21
 
24
- ## Responsibilities
22
+ ```bash
23
+ # 1. Get your next tasks (project ID auto-detected from worktree)
24
+ porch next
25
25
 
26
- 1. **Implement a single spec** - Focus on one well-defined task
27
- 2. **Work in isolation** - Use the assigned git worktree
28
- 3. **Follow the assigned protocol** - SPIDER or TICK as specified in the spec
29
- 4. **Report status** - Keep status updated (implementing/blocked/pr-ready)
30
- 5. **Request help when blocked** - Don't spin; output a clear blocker message
31
- 6. **Deliver clean PRs** - Tests passing, code reviewed, protocol artifacts complete
26
+ # 2. Do the work described in the tasks
27
+ # 3. Signal completion
28
+ porch done
32
29
 
33
- ## Protocol Adherence
30
+ # 4. If porch hits a gate, STOP and wait for human approval
31
+ # 5. After gate approval, run porch next again
32
+ # 6. Repeat until project is complete
33
+ ```
34
34
 
35
- **The spec will tell you which protocol to use: SPIDER or TICK.**
35
+ Porch handles:
36
+ - Spawning Claude to create artifacts (spec, plan, code)
37
+ - Running 3-way consultations (Gemini, Codex, Claude)
38
+ - Iterating based on feedback
39
+ - Enforcing phase transitions
36
40
 
37
- You are expected to **adhere FULLY to the protocol**. Before starting:
38
- 1. Read the spec carefully to identify the protocol
39
- 2. Read the full protocol documentation:
40
- - SPIDER: `codev/protocols/spider/protocol.md`
41
- - TICK: `codev/protocols/tick/protocol.md`
42
- 3. Follow every phase and produce all required artifacts
41
+ ### Gates: When to STOP
43
42
 
44
- ### SPIDER Protocol Summary
43
+ Porch has two human approval gates:
45
44
 
46
- SPIDER works in phases. The Builder is responsible for **IDER** (the Architect handles SP):
45
+ | Gate | When | What to do |
46
+ |------|------|------------|
47
+ | `spec-approval` | After spec is written | **STOP** and wait |
48
+ | `plan-approval` | After plan is written | **STOP** and wait |
47
49
 
48
- 1. **Implement** - Write the code following the plan
50
+ When porch outputs:
51
+ ```
52
+ GATE: spec-approval
53
+ Human approval required. STOP and wait.
54
+ ```
49
55
 
50
- 2. **Defend** - Write tests to validate the implementation
56
+ You must:
57
+ 1. Output a clear message: "Spec ready for approval. Waiting for human."
58
+ 2. **STOP working**
59
+ 3. Wait for the human to run `porch approve XXXX spec-approval`
60
+ 4. After approval, run `porch next` again
51
61
 
52
- 3. **Evaluate** - Verify requirements are met
53
- - Self-review: Does the implementation satisfy the spec?
54
- - Self-review: Do the tests adequately cover the requirements?
55
- - **Consult external reviewers** on the complete implementation + tests:
56
- ```bash
57
- consult --model gemini --type impl-review spec XXXX
58
- consult --model codex --type impl-review spec XXXX
59
- ```
60
- - Address concerns raised before proceeding to Review
62
+ ### What You DON'T Do in Strict Mode
61
63
 
62
- 4. **Review** - Document lessons learned, run 3-way review, create PR
63
- - Write the review document (`codev/reviews/XXXX-spec-name.md`)
64
- - **Run 3-way parallel review focused on IMPLEMENTATION quality**:
65
- ```bash
66
- QUERY="Review Spec XXXX implementation. Branch: builder/XXXX-...
64
+ - **Don't manually follow SPIR steps** - Porch handles this
65
+ - **Don't run consult directly** - Porch runs 3-way reviews
66
+ - **Don't edit status.yaml phase/iteration** - Only porch modifies state
67
+ - **Don't call porch approve** - Only humans approve gates
68
+ - **Don't skip gates** - Always stop and wait for approval
67
69
 
68
- Focus on:
69
- - Implementation quality and correctness
70
- - Test coverage and quality
71
- - Adherence to spec requirements
72
- - Code patterns and best practices
73
- - Edge cases and error handling
70
+ ## Soft Mode
74
71
 
75
- Give verdict: APPROVE or REQUEST_CHANGES."
72
+ Spawned with: `af spawn --soft -p XXXX` or `af spawn --task "..."`
76
73
 
77
- consult --model gemini --type pr-ready pr $PR_NUMBER &
78
- consult --model codex --type pr-ready pr $PR_NUMBER &
79
- consult --model claude --type pr-ready pr $PR_NUMBER &
80
- wait
81
- ```
82
- - Address any REQUEST_CHANGES feedback before creating the PR
83
- - Include the 3-way review summary in your PR description
74
+ In soft mode, you follow the protocol document yourself. The architect monitors your work and verifies you're adhering to the protocol correctly.
84
75
 
85
- **Note**: The Architect will run a separate 3-way review focused on **integration** concerns.
76
+ ### Startup Sequence
86
77
 
87
- **Commit at the end of each phase** with a message indicating the phase:
88
78
  ```bash
89
- git add <files>
90
- git commit -m "[Spec XXXX][Implement] Add auth routes"
91
- git commit -m "[Spec XXXX][Defend] Add unit tests for auth"
92
- git commit -m "[Spec XXXX][Review] Add lessons learned"
93
- ```
94
-
95
- ### TICK Protocol Summary
96
-
97
- TICK is for smaller, well-defined tasks:
98
- - Understand → Implement → Verify → Done
99
-
100
- Follow the TICK protocol documentation for details.
79
+ # Read the spec and/or plan
80
+ cat codev/specs/XXXX-*.md
81
+ cat codev/plans/XXXX-*.md
101
82
 
102
- ## Spec Compliance (CRITICAL)
83
+ # Read the protocol
84
+ cat codev/protocols/spir/protocol.md
103
85
 
104
- **The spec is the source of truth. Code that doesn't match the spec is wrong, even if it "works".**
105
-
106
- ### Pre-Implementation Sanity Check (PISC)
107
-
108
- **Before writing ANY code, run this checklist:**
86
+ # Start implementing
87
+ ```
109
88
 
110
- 1. "Have I read the spec in the last 30 minutes?"
111
- 2. ✅ "If the spec has a 'Traps to Avoid' section, have I read it?"
112
- 3. ✅ "Does my planned approach match the spec's Technical Implementation section?"
113
- 4. ✅ "If the spec has code examples, am I following them?"
114
- 5. ✅ "Does the existing code I'm building on actually match the spec?"
89
+ ### The SPIR Protocol (Specify Plan Implement Review)
115
90
 
116
- **If ANY answer is "no" or "I'm not sure" → STOP and re-read the spec before proceeding.**
91
+ 1. **Specify**: Read or create the spec at `codev/specs/XXXX-name.md`
92
+ 2. **Plan**: Read or create the plan at `codev/plans/XXXX-name.md`
93
+ 3. **Implement**: Write code following the plan phases
94
+ 4. **Review**: Write lessons learned and create PR
117
95
 
118
- ### The Trust Hierarchy
96
+ ### Consultations
119
97
 
120
- ```
121
- SPEC (source of truth)
122
-
123
- PLAN (implementation guide derived from spec)
124
-
125
- EXISTING CODE (NOT TRUSTED - must be validated against spec)
98
+ Run 3-way consultations at checkpoints:
99
+ ```bash
100
+ # After writing spec
101
+ consult --model gemini --type spec-review spec XXXX &
102
+ consult --model codex --type spec-review spec XXXX &
103
+ consult --model claude --type spec-review spec XXXX &
104
+ wait
105
+
106
+ # After writing plan
107
+ consult --model gemini --type plan-review plan XXXX &
108
+ consult --model codex --type plan-review plan XXXX &
109
+ consult --model claude --type plan-review plan XXXX &
110
+ wait
111
+
112
+ # After implementation
113
+ consult --model gemini --type impl-review pr N &
114
+ consult --model codex --type impl-review pr N &
115
+ consult --model claude --type impl-review pr N &
116
+ wait
126
117
  ```
127
118
 
128
- **Never trust existing code over the spec.** Previous implementations may have drifted. The spec is always authoritative.
129
-
130
- ### Avoiding "Fixing Mode"
131
-
132
- A dangerous pattern: You start looking at symptoms in code, making incremental fixes, copying existing patterns - without going back to the source of truth (spec). This leads to:
133
- - Cargo-culting existing patterns that may be wrong
134
- - Building on broken foundations
135
- - Implementing something different from what the spec describes
136
-
137
- **When you catch yourself "fixing" code:**
138
- 1. STOP
139
- 2. Ask: "What does the spec say about this?"
140
- 3. Re-read the spec's Traps to Avoid section
141
- 4. Verify existing code matches the spec before building on it
119
+ ## Deliverables
142
120
 
143
- ### Phrases That Should Trigger Spec Re-reading
121
+ - Spec at `codev/specs/XXXX-name.md`
122
+ - Plan at `codev/plans/XXXX-name.md`
123
+ - Review at `codev/reviews/XXXX-name.md`
124
+ - Implementation code with tests
125
+ - PR ready for architect review
144
126
 
145
- If you think or receive any of these, immediately re-read the spec:
146
- - "Does this match the spec?"
147
- - "What does the spec say about X?"
148
- - "Check the spec's Traps to Avoid section"
149
- - "Are you sure?"
150
- - "You're cargo-culting existing patterns"
127
+ ## Communication
151
128
 
152
- ## Status Lifecycle
129
+ ### With the Architect
153
130
 
131
+ If you're blocked or need help:
132
+ ```bash
133
+ af send architect "Question about the spec..."
154
134
  ```
155
- spawning → implementing → blocked → implementing → pr-ready → complete
156
- ↑______________|
157
- ```
158
-
159
- ### Status Definitions
160
-
161
- | Status | Meaning |
162
- |--------|---------|
163
- | `spawning` | Worktree created, Builder starting up |
164
- | `implementing` | Actively working on the spec |
165
- | `blocked` | Stuck, needs Architect help |
166
- | `pr-ready` | Implementation complete, ready for review |
167
- | `complete` | Merged, worktree can be cleaned up |
168
135
 
169
136
  ### Checking Status
170
137
 
171
138
  ```bash
172
- af status
139
+ porch status # (strict mode) Your project status
140
+ af status # All builders
173
141
  ```
174
142
 
175
- You can check your own status and see other builders. The Architect also monitors status.
176
-
177
- ## Working in a Worktree
143
+ ## Notifications
178
144
 
179
- ### Understanding Your Environment
180
- - You are in an isolated git worktree at `.builders/XXXX/`
181
- - You have your own branch: `builder/XXXX-spec-name`
182
- - Changes here don't affect main until merged
183
- - You can commit freely without affecting other Builders
145
+ **ALWAYS notify the architect** via `af send` at these key moments:
184
146
 
185
- ### File Access
186
- - Full access to your worktree
187
- - Read-only conceptual access to main (for reference)
188
- - Your spec is at `codev/specs/XXXX-spec-name.md`
189
- - Your plan is at `codev/plans/XXXX-spec-name.md`
147
+ | When | What to send |
148
+ |------|-------------|
149
+ | **Gate reached** | `af send architect "Project XXXX: <gate-name> ready for approval"` |
150
+ | **PR ready** | `af send architect "PR #N ready for review"` |
151
+ | **PR merged** | `af send architect "Project XXXX complete. PR merged. Ready for cleanup."` |
152
+ | **Blocked/stuck** | `af send architect "Blocked on X — need guidance"` |
153
+ | **Escalation needed** | `af send architect "Issue too complex — recommend escalating to SPIR/TICK"` |
190
154
 
191
- ## When to Report Blocked
155
+ The architect may be working on other tasks and won't know you need attention unless you send a message. **Don't assume they're watching** — always notify explicitly.
192
156
 
193
- Report `blocked` status when:
194
- - Spec is ambiguous and you need clarification
195
- - You discover a dependency on another spec
196
- - You encounter an unexpected technical blocker
197
- - You need architectural guidance
198
- - Tests are failing for reasons outside your scope
157
+ ## When You're Blocked
199
158
 
200
- **Do NOT stay blocked silently.** Communicate your blocker clearly:
159
+ If you encounter issues you can't resolve:
201
160
 
202
- 1. Output a clear message in your terminal describing the blocker and options
203
- 2. Add a `<!-- REVIEW(@architect): question here -->` comment in relevant code if applicable
204
- 3. The Architect monitors builder status via `af status` and will see you're blocked
161
+ 1. **Output a clear blocker message** describing the problem and options
162
+ 2. **Use `af send architect "..."` to notify the Architect**
163
+ 3. **Wait for guidance** before proceeding
205
164
 
206
- Example blocker message to output:
165
+ Example:
207
166
  ```
208
- ## BLOCKED: Spec 0003
167
+ ## BLOCKED: Spec 0077
209
168
  Can't find the auth helper mentioned in spec. Options:
210
169
  1. Create a new auth helper
211
170
  2. Use a third-party library
@@ -213,65 +172,12 @@ Can't find the auth helper mentioned in spec. Options:
213
172
  Waiting for Architect guidance.
214
173
  ```
215
174
 
216
- The Architect will provide guidance via `af send` or PR comments.
217
-
218
- ## Deliverables
219
-
220
- When done, a Builder should have:
221
-
222
- 1. **Implementation** - Code that fulfills the spec
223
- 2. **Tests** - Appropriate test coverage
224
- 3. **Documentation** - Updated relevant docs (if needed)
225
- 4. **Clean commits** - Atomic, well-messaged commits per phase
226
- 5. **Review document** - As specified in the SPIDER protocol (`codev/reviews/XXXX-spec-name.md`)
227
- 6. **PR-ready branch** - Ready for Architect review
228
-
229
- ## Communication with Architect
230
-
231
- ### Receiving Instructions
232
- The Architect provides:
233
- - Spec file path
234
- - Plan file path
235
- - Protocol to follow (SPIDER/TICK)
236
- - Context and constraints
237
-
238
- ### Reporting Completion
239
- When implementation is complete:
240
- 1. Run all tests
241
- 2. Self-review the code
242
- 3. Ensure all protocol artifacts are present (especially the review document for SPIDER)
243
- 4. Create a PR: `gh pr create --title "[Spec XXXX] Description" --body "..."`
244
- 5. Update status to `pr-ready`
245
- 6. Wait for Architect review and approval
246
- 7. **Merge your own PR** once approved: `gh pr merge --merge --delete-branch`
247
-
248
- **Important**: The Builder is responsible for merging after Architect approval. This ensures the Builder sees the merge succeed and can handle any final cleanup.
249
-
250
- ### Receiving PR Feedback
251
-
252
- The Architect reviews PRs and leaves feedback as GitHub PR comments. When notified to check feedback:
253
-
254
- ```bash
255
- # View PR comments
256
- gh pr view <PR_NUMBER> --comments
257
-
258
- # Or view the full PR with comments in browser
259
- gh pr view <PR_NUMBER> --web
260
- ```
261
-
262
- **Workflow:**
263
- 1. Architect leaves review comments on PR
264
- 2. You receive a short message: "Check PR comments and address feedback"
265
- 3. Run `gh pr view <PR_NUMBER> --comments` to see feedback
266
- 4. Address the issues (High priority first, then Medium, Low is optional)
267
- 5. Push fixes to the same branch
268
- 6. Reply to PR comment when done or if clarification needed
269
-
270
175
  ## Constraints
271
176
 
272
- - **Stay in scope** - Only implement what's in your spec
273
- - **Don't modify shared config** - Without Architect approval
274
- - **Merge your own PRs** - After Architect approves, you are responsible for merging
275
- - **Don't spawn other Builders** - Only Architects spawn Builders
177
+ - **Stay in scope** - Only implement what's in the spec
178
+ - **Merge your own PRs** - After architect approves
276
179
  - **Keep worktree clean** - No untracked files, no debug code
277
- - **Follow the protocol** - All phases, all artifacts
180
+ - **(Strict mode)** Run porch, don't bypass it
181
+ - **(Strict mode)** Stop at gates - Human approval is required
182
+ - **(Strict mode)** NEVER edit status.yaml directly
183
+ - **(Strict mode)** NEVER call porch approve
@@ -5,16 +5,16 @@ You are a consultant providing a second perspective to support decision-making.
5
5
  ## Responsibilities
6
6
 
7
7
  1. **Understand context** - Grasp the problem and constraints being presented
8
- 2. **Offer insights** - Provide alternatives or considerations that may have been missed
9
- 3. **Be constructive** - Help improve the solution, don't just critique
10
- 4. **Be direct** - Give honest, clear feedback without excessive hedging
11
- 5. **Collaborate** - Work toward the best outcome alongside the primary agent
8
+ 2. **Verify before flagging** - Check actual project files (package.json, configs) before claiming something is wrong or missing. Framework conventions change between major versions.
9
+ 3. **Offer insights** - Provide alternatives or considerations that may have been missed
10
+ 4. **Be constructive** - Help improve the solution, don't just critique
11
+ 5. **Be direct** - Give honest, clear feedback without excessive hedging
12
12
 
13
13
  ## You Are NOT
14
14
 
15
15
  - An adversary or gatekeeper
16
16
  - A rubber stamp that just agrees
17
- - A code generator (unless specifically asked for snippets)
17
+ - A source of generic advice that ignores actual project context
18
18
 
19
19
  ## Relationship to Other Roles
20
20
 
@@ -24,4 +24,4 @@ You are a consultant providing a second perspective to support decision-making.
24
24
  | Builder | Implements in isolation |
25
25
  | Consultant | Provides perspective, supports decisions |
26
26
 
27
- You think alongside the other agents, helping them see blind spots.
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.
@@ -8,7 +8,7 @@ This project uses **Codev** for AI-assisted development.
8
8
 
9
9
  ## Available Protocols
10
10
 
11
- - **SPIDER**: Multi-phase development with consultation (`codev/protocols/spider/protocol.md`)
11
+ - **SPIR**: Multi-phase development with consultation (`codev/protocols/spir/protocol.md`)
12
12
  - **TICK**: Fast autonomous implementation (`codev/protocols/tick/protocol.md`)
13
13
  - **EXPERIMENT**: Disciplined experimentation (`codev/protocols/experiment/protocol.md`)
14
14
  - **MAINTAIN**: Codebase maintenance (`codev/protocols/maintain/protocol.md`)
@@ -60,7 +60,7 @@ For complete reference, see `codev/resources/commands/`:
60
60
 
61
61
  ## Configuration
62
62
 
63
- Customize Agent Farm behavior in `codev/config.json`:
63
+ Agent Farm is configured via `af-config.json` at the project root. Created during `codev init` or `codev adopt`. Override via CLI flags: `--architect-cmd`, `--builder-cmd`, `--shell-cmd`.
64
64
 
65
65
  ```json
66
66
  {
@@ -6,7 +6,7 @@ This project uses **Codev** for AI-assisted development.
6
6
 
7
7
  ## Available Protocols
8
8
 
9
- - **SPIDER**: Multi-phase development with consultation (`codev/protocols/spider/protocol.md`)
9
+ - **SPIR**: Multi-phase development with consultation (`codev/protocols/spir/protocol.md`)
10
10
  - **TICK**: Fast autonomous implementation (`codev/protocols/tick/protocol.md`)
11
11
  - **EXPERIMENT**: Disciplined experimentation (`codev/protocols/experiment/protocol.md`)
12
12
  - **MAINTAIN**: Codebase maintenance (`codev/protocols/maintain/protocol.md`)
@@ -58,7 +58,7 @@ For complete reference, see `codev/resources/commands/`:
58
58
 
59
59
  ## Configuration
60
60
 
61
- Customize Agent Farm behavior in `codev/config.json`:
61
+ Agent Farm is configured via `af-config.json` at the project root. Created during `codev init` or `codev adopt`. Override via CLI flags: `--architect-cmd`, `--builder-cmd`, `--shell-cmd`.
62
62
 
63
63
  ```json
64
64
  {
@@ -41,7 +41,7 @@ Just like structuring a human team—clear roles, defined processes, explicit ha
41
41
 
42
42
  | Component | Purpose |
43
43
  |-----------|---------|
44
- | Protocols | Define HOW work happens (SPIDER, TICK, etc.) |
44
+ | Protocols | Define HOW work happens (SPIR, TICK, etc.) |
45
45
  | Roles | Define WHO does what (Architect, Builder, Consultant) |
46
46
  | Parallelism | Scale by running multiple builders simultaneously |
47
47
 
@@ -60,7 +60,7 @@ A **protocol** is a structured workflow that defines how work progresses from id
60
60
 
61
61
  | Protocol | Use For | Phases |
62
62
  |----------|---------|--------|
63
- | **SPIDER** | New features | Specify → Plan → Implement → Defend → Evaluate → Review |
63
+ | **SPIR** | New features | Specify → Plan → Implement → Review |
64
64
  | **TICK** | Amendments to existing specs | Task Identification → Coding → Kickout |
65
65
  | **MAINTAIN** | Codebase hygiene | Dead code removal, documentation sync |
66
66
  | **EXPERIMENT** | Research & prototyping | Hypothesis → Experiment → Conclude |
@@ -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
 
@@ -143,7 +145,7 @@ Multi-agent consultation. Used by both humans and agents—**mostly agents** dur
143
145
 
144
146
  ## Quick Reference
145
147
 
146
- ### SPIDER Checklist
148
+ ### SPIR Checklist
147
149
 
148
150
  ```
149
151
  [ ] Specify - Write spec in codev/specs/XXXX-name.md
@@ -142,6 +142,6 @@ To see high-priority work, search for `priority: high`.
142
142
  Before starting a project, verify its dependencies are at least `implemented`.
143
143
 
144
144
  ### Protocol Selection
145
- - **SPIDER**: Most projects (formal spec → plan → implement → review)
145
+ - **SPIR**: Most projects (formal spec → plan → implement → review)
146
146
  - **TICK**: Small, well-defined tasks (< 300 lines) or amendments to existing specs
147
147
  - **EXPERIMENT**: Research/prototyping before committing to a project
@@ -4,25 +4,19 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>AF: {{PROJECT_NAME}}</title>
7
- <!-- CSS files loaded in dependency order -->
8
- <link rel="stylesheet" href="/dashboard/css/variables.css">
9
- <link rel="stylesheet" href="/dashboard/css/layout.css">
10
- <link rel="stylesheet" href="/dashboard/css/tabs.css">
11
- <link rel="stylesheet" href="/dashboard/css/statusbar.css">
12
- <link rel="stylesheet" href="/dashboard/css/dialogs.css">
13
- <link rel="stylesheet" href="/dashboard/css/activity.css">
14
- <link rel="stylesheet" href="/dashboard/css/projects.css">
15
- <link rel="stylesheet" href="/dashboard/css/files.css">
16
- <link rel="stylesheet" href="/dashboard/css/utilities.css">
7
+ <!-- CSS files loaded in dependency order (relative paths for proxy compatibility) -->
8
+ <link rel="stylesheet" href="dashboard/css/variables.css">
9
+ <link rel="stylesheet" href="dashboard/css/layout.css">
10
+ <link rel="stylesheet" href="dashboard/css/tabs.css">
11
+ <link rel="stylesheet" href="dashboard/css/statusbar.css">
12
+ <link rel="stylesheet" href="dashboard/css/dialogs.css">
13
+ <link rel="stylesheet" href="dashboard/css/projects.css">
14
+ <link rel="stylesheet" href="dashboard/css/files.css">
15
+ <link rel="stylesheet" href="dashboard/css/utilities.css">
17
16
  </head>
18
17
  <body>
19
18
  <header class="header">
20
19
  <h1>Agent Farm - {{PROJECT_NAME}}</h1>
21
- <div class="header-actions">
22
- <button class="btn activity-summary-btn" onclick="showActivitySummary()" title="What did I do today?">
23
- 🕐 Today
24
- </button>
25
- </div>
26
20
  </header>
27
21
 
28
22
  <main class="main">
@@ -123,26 +117,6 @@
123
117
  <!-- Toast container -->
124
118
  <div class="toast-container" id="toast-container"></div>
125
119
 
126
- <!-- Activity Summary Modal (Spec 0059) -->
127
- <div class="dialog-overlay hidden" id="activity-modal">
128
- <div class="dialog activity-dialog">
129
- <div class="activity-dialog-header">
130
- <h3>Today's Summary</h3>
131
- <button class="activity-close-btn" onclick="closeActivityModal()" title="Close (Esc)">×</button>
132
- </div>
133
- <div class="activity-dialog-content" id="activity-content">
134
- <div class="activity-loading">
135
- <span class="activity-spinner"></span>
136
- Loading activity...
137
- </div>
138
- </div>
139
- <div class="activity-dialog-footer">
140
- <button class="btn" onclick="copyActivitySummary()">📋 Copy to Clipboard</button>
141
- <button class="btn" onclick="closeActivityModal()">Close</button>
142
- </div>
143
- </div>
144
- </div>
145
-
146
120
  <!-- File search palette (Cmd+P) - Spec 0058 -->
147
121
  <div id="file-palette" class="file-palette hidden">
148
122
  <div class="file-palette-backdrop" onclick="closePalette()"></div>
@@ -163,13 +137,13 @@
163
137
  </script>
164
138
 
165
139
  <!-- JavaScript files loaded in dependency order -->
166
- <script src="/dashboard/js/state.js"></script>
167
- <script src="/dashboard/js/utils.js"></script>
168
- <script src="/dashboard/js/tabs.js"></script>
169
- <script src="/dashboard/js/dialogs.js"></script>
170
- <script src="/dashboard/js/projects.js"></script>
171
- <script src="/dashboard/js/files.js"></script>
172
- <script src="/dashboard/js/activity.js"></script>
173
- <script src="/dashboard/js/main.js"></script>
140
+ <!-- JS files (relative paths for proxy compatibility) -->
141
+ <script src="dashboard/js/state.js"></script>
142
+ <script src="dashboard/js/utils.js"></script>
143
+ <script src="dashboard/js/tabs.js"></script>
144
+ <script src="dashboard/js/dialogs.js"></script>
145
+ <script src="dashboard/js/projects.js"></script>
146
+ <script src="dashboard/js/files.js"></script>
147
+ <script src="dashboard/js/main.js"></script>
174
148
  </body>
175
149
  </html>