@cluesmith/codev 2.0.0-rc.9 → 2.0.1

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 (537) hide show
  1. package/bin/af.js +2 -2
  2. package/bin/consult.js +1 -1
  3. package/dashboard/dist/assets/index-4n9zpWLY.css +32 -0
  4. package/dashboard/dist/assets/index-b38SaXk5.js +136 -0
  5. package/dashboard/dist/assets/index-b38SaXk5.js.map +1 -0
  6. package/dashboard/dist/index.html +14 -0
  7. package/dist/agent-farm/cli.d.ts.map +1 -1
  8. package/dist/agent-farm/cli.js +179 -104
  9. package/dist/agent-farm/cli.js.map +1 -1
  10. package/dist/agent-farm/commands/architect.d.ts +3 -3
  11. package/dist/agent-farm/commands/architect.d.ts.map +1 -1
  12. package/dist/agent-farm/commands/architect.js +20 -147
  13. package/dist/agent-farm/commands/architect.js.map +1 -1
  14. package/dist/agent-farm/commands/attach.d.ts +13 -0
  15. package/dist/agent-farm/commands/attach.d.ts.map +1 -0
  16. package/dist/agent-farm/commands/attach.js +144 -0
  17. package/dist/agent-farm/commands/attach.js.map +1 -0
  18. package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
  19. package/dist/agent-farm/commands/cleanup.js +35 -19
  20. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  21. package/dist/agent-farm/commands/consult.d.ts +3 -4
  22. package/dist/agent-farm/commands/consult.d.ts.map +1 -1
  23. package/dist/agent-farm/commands/consult.js +27 -37
  24. package/dist/agent-farm/commands/consult.js.map +1 -1
  25. package/dist/agent-farm/commands/index.d.ts +2 -2
  26. package/dist/agent-farm/commands/index.d.ts.map +1 -1
  27. package/dist/agent-farm/commands/index.js +2 -2
  28. package/dist/agent-farm/commands/index.js.map +1 -1
  29. package/dist/agent-farm/commands/open.d.ts +4 -2
  30. package/dist/agent-farm/commands/open.d.ts.map +1 -1
  31. package/dist/agent-farm/commands/open.js +33 -83
  32. package/dist/agent-farm/commands/open.js.map +1 -1
  33. package/dist/agent-farm/commands/send.d.ts +1 -1
  34. package/dist/agent-farm/commands/send.d.ts.map +1 -1
  35. package/dist/agent-farm/commands/send.js +70 -79
  36. package/dist/agent-farm/commands/send.js.map +1 -1
  37. package/dist/agent-farm/commands/shell.d.ts +15 -0
  38. package/dist/agent-farm/commands/shell.d.ts.map +1 -0
  39. package/dist/agent-farm/commands/shell.js +50 -0
  40. package/dist/agent-farm/commands/shell.js.map +1 -0
  41. package/dist/agent-farm/commands/spawn-roles.d.ts +80 -0
  42. package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -0
  43. package/dist/agent-farm/commands/spawn-roles.js +278 -0
  44. package/dist/agent-farm/commands/spawn-roles.js.map +1 -0
  45. package/dist/agent-farm/commands/spawn-worktree.d.ts +96 -0
  46. package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -0
  47. package/dist/agent-farm/commands/spawn-worktree.js +305 -0
  48. package/dist/agent-farm/commands/spawn-worktree.js.map +1 -0
  49. package/dist/agent-farm/commands/spawn.d.ts +5 -1
  50. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  51. package/dist/agent-farm/commands/spawn.js +241 -561
  52. package/dist/agent-farm/commands/spawn.js.map +1 -1
  53. package/dist/agent-farm/commands/start.d.ts +10 -20
  54. package/dist/agent-farm/commands/start.d.ts.map +1 -1
  55. package/dist/agent-farm/commands/start.js +45 -449
  56. package/dist/agent-farm/commands/start.js.map +1 -1
  57. package/dist/agent-farm/commands/status.d.ts +2 -0
  58. package/dist/agent-farm/commands/status.d.ts.map +1 -1
  59. package/dist/agent-farm/commands/status.js +75 -24
  60. package/dist/agent-farm/commands/status.js.map +1 -1
  61. package/dist/agent-farm/commands/stop.d.ts +6 -0
  62. package/dist/agent-farm/commands/stop.d.ts.map +1 -1
  63. package/dist/agent-farm/commands/stop.js +49 -109
  64. package/dist/agent-farm/commands/stop.js.map +1 -1
  65. package/dist/agent-farm/commands/tower-cloud.d.ts +48 -0
  66. package/dist/agent-farm/commands/tower-cloud.d.ts.map +1 -0
  67. package/dist/agent-farm/commands/tower-cloud.js +293 -0
  68. package/dist/agent-farm/commands/tower-cloud.js.map +1 -0
  69. package/dist/agent-farm/commands/tower.d.ts +9 -0
  70. package/dist/agent-farm/commands/tower.d.ts.map +1 -1
  71. package/dist/agent-farm/commands/tower.js +59 -19
  72. package/dist/agent-farm/commands/tower.js.map +1 -1
  73. package/dist/agent-farm/db/index.d.ts +6 -2
  74. package/dist/agent-farm/db/index.d.ts.map +1 -1
  75. package/dist/agent-farm/db/index.js +301 -19
  76. package/dist/agent-farm/db/index.js.map +1 -1
  77. package/dist/agent-farm/db/migrate.d.ts +0 -4
  78. package/dist/agent-farm/db/migrate.d.ts.map +1 -1
  79. package/dist/agent-farm/db/migrate.js +6 -55
  80. package/dist/agent-farm/db/migrate.js.map +1 -1
  81. package/dist/agent-farm/db/schema.d.ts +3 -3
  82. package/dist/agent-farm/db/schema.d.ts.map +1 -1
  83. package/dist/agent-farm/db/schema.js +25 -19
  84. package/dist/agent-farm/db/schema.js.map +1 -1
  85. package/dist/agent-farm/db/types.d.ts +3 -13
  86. package/dist/agent-farm/db/types.d.ts.map +1 -1
  87. package/dist/agent-farm/db/types.js +3 -11
  88. package/dist/agent-farm/db/types.js.map +1 -1
  89. package/dist/agent-farm/hq-connector.d.ts +2 -6
  90. package/dist/agent-farm/hq-connector.d.ts.map +1 -1
  91. package/dist/agent-farm/hq-connector.js +2 -17
  92. package/dist/agent-farm/hq-connector.js.map +1 -1
  93. package/dist/agent-farm/lib/cloud-config.d.ts +59 -0
  94. package/dist/agent-farm/lib/cloud-config.d.ts.map +1 -0
  95. package/dist/agent-farm/lib/cloud-config.js +143 -0
  96. package/dist/agent-farm/lib/cloud-config.js.map +1 -0
  97. package/dist/agent-farm/lib/device-name.d.ts +25 -0
  98. package/dist/agent-farm/lib/device-name.d.ts.map +1 -0
  99. package/dist/agent-farm/lib/device-name.js +46 -0
  100. package/dist/agent-farm/lib/device-name.js.map +1 -0
  101. package/dist/agent-farm/lib/nonce-store.d.ts +28 -0
  102. package/dist/agent-farm/lib/nonce-store.d.ts.map +1 -0
  103. package/dist/agent-farm/lib/nonce-store.js +60 -0
  104. package/dist/agent-farm/lib/nonce-store.js.map +1 -0
  105. package/dist/agent-farm/lib/token-exchange.d.ts +18 -0
  106. package/dist/agent-farm/lib/token-exchange.d.ts.map +1 -0
  107. package/dist/agent-farm/lib/token-exchange.js +48 -0
  108. package/dist/agent-farm/lib/token-exchange.js.map +1 -0
  109. package/dist/agent-farm/lib/tower-client.d.ts +163 -0
  110. package/dist/agent-farm/lib/tower-client.d.ts.map +1 -0
  111. package/dist/agent-farm/lib/tower-client.js +233 -0
  112. package/dist/agent-farm/lib/tower-client.js.map +1 -0
  113. package/dist/agent-farm/lib/tunnel-client.d.ts +117 -0
  114. package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -0
  115. package/dist/agent-farm/lib/tunnel-client.js +504 -0
  116. package/dist/agent-farm/lib/tunnel-client.js.map +1 -0
  117. package/dist/agent-farm/servers/tower-instances.d.ts +82 -0
  118. package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -0
  119. package/dist/agent-farm/servers/tower-instances.js +454 -0
  120. package/dist/agent-farm/servers/tower-instances.js.map +1 -0
  121. package/dist/agent-farm/servers/tower-routes.d.ts +34 -0
  122. package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -0
  123. package/dist/agent-farm/servers/tower-routes.js +1445 -0
  124. package/dist/agent-farm/servers/tower-routes.js.map +1 -0
  125. package/dist/agent-farm/servers/tower-server.d.ts +5 -2
  126. package/dist/agent-farm/servers/tower-server.d.ts.map +1 -1
  127. package/dist/agent-farm/servers/tower-server.js +157 -475
  128. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  129. package/dist/agent-farm/servers/tower-terminals.d.ts +119 -0
  130. package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -0
  131. package/dist/agent-farm/servers/tower-terminals.js +629 -0
  132. package/dist/agent-farm/servers/tower-terminals.js.map +1 -0
  133. package/dist/agent-farm/servers/tower-tunnel.d.ts +34 -0
  134. package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -0
  135. package/dist/agent-farm/servers/tower-tunnel.js +480 -0
  136. package/dist/agent-farm/servers/tower-tunnel.js.map +1 -0
  137. package/dist/agent-farm/servers/tower-types.d.ts +86 -0
  138. package/dist/agent-farm/servers/tower-types.d.ts.map +1 -0
  139. package/dist/agent-farm/servers/tower-types.js +6 -0
  140. package/dist/agent-farm/servers/tower-types.js.map +1 -0
  141. package/dist/agent-farm/servers/tower-utils.d.ts +58 -0
  142. package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -0
  143. package/dist/agent-farm/servers/tower-utils.js +182 -0
  144. package/dist/agent-farm/servers/tower-utils.js.map +1 -0
  145. package/dist/agent-farm/servers/tower-websocket.d.ts +25 -0
  146. package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -0
  147. package/dist/agent-farm/servers/tower-websocket.js +171 -0
  148. package/dist/agent-farm/servers/tower-websocket.js.map +1 -0
  149. package/dist/agent-farm/state.d.ts +6 -2
  150. package/dist/agent-farm/state.d.ts.map +1 -1
  151. package/dist/agent-farm/state.js +34 -25
  152. package/dist/agent-farm/state.js.map +1 -1
  153. package/dist/agent-farm/types.d.ts +49 -26
  154. package/dist/agent-farm/types.d.ts.map +1 -1
  155. package/dist/agent-farm/utils/config.d.ts +0 -5
  156. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  157. package/dist/agent-farm/utils/config.js +12 -44
  158. package/dist/agent-farm/utils/config.js.map +1 -1
  159. package/dist/agent-farm/utils/deps.d.ts.map +1 -1
  160. package/dist/agent-farm/utils/deps.js +0 -32
  161. package/dist/agent-farm/utils/deps.js.map +1 -1
  162. package/dist/agent-farm/utils/file-tabs.d.ts +27 -0
  163. package/dist/agent-farm/utils/file-tabs.d.ts.map +1 -0
  164. package/dist/agent-farm/utils/file-tabs.js +46 -0
  165. package/dist/agent-farm/utils/file-tabs.js.map +1 -0
  166. package/dist/agent-farm/utils/gate-status.d.ts +16 -0
  167. package/dist/agent-farm/utils/gate-status.d.ts.map +1 -0
  168. package/dist/agent-farm/utils/gate-status.js +79 -0
  169. package/dist/agent-farm/utils/gate-status.js.map +1 -0
  170. package/dist/agent-farm/utils/gate-watcher.d.ts +38 -0
  171. package/dist/agent-farm/utils/gate-watcher.d.ts.map +1 -0
  172. package/dist/agent-farm/utils/gate-watcher.js +122 -0
  173. package/dist/agent-farm/utils/gate-watcher.js.map +1 -0
  174. package/dist/agent-farm/utils/index.d.ts +0 -1
  175. package/dist/agent-farm/utils/index.d.ts.map +1 -1
  176. package/dist/agent-farm/utils/index.js +0 -1
  177. package/dist/agent-farm/utils/index.js.map +1 -1
  178. package/dist/agent-farm/utils/notifications.d.ts +30 -0
  179. package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
  180. package/dist/agent-farm/utils/notifications.js +121 -0
  181. package/dist/agent-farm/utils/notifications.js.map +1 -0
  182. package/dist/agent-farm/utils/server-utils.d.ts +5 -5
  183. package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
  184. package/dist/agent-farm/utils/server-utils.js +5 -16
  185. package/dist/agent-farm/utils/server-utils.js.map +1 -1
  186. package/dist/agent-farm/utils/session.d.ts +32 -0
  187. package/dist/agent-farm/utils/session.d.ts.map +1 -0
  188. package/dist/agent-farm/utils/session.js +57 -0
  189. package/dist/agent-farm/utils/session.js.map +1 -0
  190. package/dist/agent-farm/utils/shell.d.ts +9 -22
  191. package/dist/agent-farm/utils/shell.d.ts.map +1 -1
  192. package/dist/agent-farm/utils/shell.js +34 -34
  193. package/dist/agent-farm/utils/shell.js.map +1 -1
  194. package/dist/cli.d.ts.map +1 -1
  195. package/dist/cli.js +6 -37
  196. package/dist/cli.js.map +1 -1
  197. package/dist/commands/adopt.d.ts.map +1 -1
  198. package/dist/commands/adopt.js +33 -4
  199. package/dist/commands/adopt.js.map +1 -1
  200. package/dist/commands/consult/index.d.ts +13 -2
  201. package/dist/commands/consult/index.d.ts.map +1 -1
  202. package/dist/commands/consult/index.js +244 -29
  203. package/dist/commands/consult/index.js.map +1 -1
  204. package/dist/commands/doctor.d.ts.map +1 -1
  205. package/dist/commands/doctor.js +96 -79
  206. package/dist/commands/doctor.js.map +1 -1
  207. package/dist/commands/init.d.ts.map +1 -1
  208. package/dist/commands/init.js +36 -3
  209. package/dist/commands/init.js.map +1 -1
  210. package/dist/commands/porch/build-counter.d.ts +5 -0
  211. package/dist/commands/porch/build-counter.d.ts.map +1 -0
  212. package/dist/commands/porch/build-counter.js +5 -0
  213. package/dist/commands/porch/build-counter.js.map +1 -0
  214. package/dist/commands/porch/checks.d.ts +3 -2
  215. package/dist/commands/porch/checks.d.ts.map +1 -1
  216. package/dist/commands/porch/checks.js +8 -2
  217. package/dist/commands/porch/checks.js.map +1 -1
  218. package/dist/commands/porch/index.d.ts +4 -0
  219. package/dist/commands/porch/index.d.ts.map +1 -1
  220. package/dist/commands/porch/index.js +109 -70
  221. package/dist/commands/porch/index.js.map +1 -1
  222. package/dist/commands/porch/next.d.ts +22 -0
  223. package/dist/commands/porch/next.d.ts.map +1 -0
  224. package/dist/commands/porch/next.js +571 -0
  225. package/dist/commands/porch/next.js.map +1 -0
  226. package/dist/commands/porch/plan.d.ts +11 -1
  227. package/dist/commands/porch/plan.d.ts.map +1 -1
  228. package/dist/commands/porch/plan.js +33 -5
  229. package/dist/commands/porch/plan.js.map +1 -1
  230. package/dist/commands/porch/prompts.d.ts.map +1 -1
  231. package/dist/commands/porch/prompts.js +44 -26
  232. package/dist/commands/porch/prompts.js.map +1 -1
  233. package/dist/commands/porch/protocol.d.ts +6 -4
  234. package/dist/commands/porch/protocol.d.ts.map +1 -1
  235. package/dist/commands/porch/protocol.js +59 -15
  236. package/dist/commands/porch/protocol.js.map +1 -1
  237. package/dist/commands/porch/state.d.ts +29 -2
  238. package/dist/commands/porch/state.d.ts.map +1 -1
  239. package/dist/commands/porch/state.js +71 -3
  240. package/dist/commands/porch/state.js.map +1 -1
  241. package/dist/commands/porch/types.d.ts +45 -2
  242. package/dist/commands/porch/types.d.ts.map +1 -1
  243. package/dist/commands/porch/verdict.d.ts +31 -0
  244. package/dist/commands/porch/verdict.d.ts.map +1 -0
  245. package/dist/commands/porch/verdict.js +59 -0
  246. package/dist/commands/porch/verdict.js.map +1 -0
  247. package/dist/commands/update.d.ts.map +1 -1
  248. package/dist/commands/update.js +18 -6
  249. package/dist/commands/update.js.map +1 -1
  250. package/dist/lib/scaffold.d.ts +13 -0
  251. package/dist/lib/scaffold.d.ts.map +1 -1
  252. package/dist/lib/scaffold.js +36 -0
  253. package/dist/lib/scaffold.js.map +1 -1
  254. package/dist/terminal/index.d.ts +8 -0
  255. package/dist/terminal/index.d.ts.map +1 -0
  256. package/dist/terminal/index.js +5 -0
  257. package/dist/terminal/index.js.map +1 -0
  258. package/dist/terminal/pty-manager.d.ts +69 -0
  259. package/dist/terminal/pty-manager.d.ts.map +1 -0
  260. package/dist/terminal/pty-manager.js +377 -0
  261. package/dist/terminal/pty-manager.js.map +1 -0
  262. package/dist/terminal/pty-session.d.ts +104 -0
  263. package/dist/terminal/pty-session.d.ts.map +1 -0
  264. package/dist/terminal/pty-session.js +327 -0
  265. package/dist/terminal/pty-session.js.map +1 -0
  266. package/dist/terminal/ring-buffer.d.ts +34 -0
  267. package/dist/terminal/ring-buffer.d.ts.map +1 -0
  268. package/dist/terminal/ring-buffer.js +94 -0
  269. package/dist/terminal/ring-buffer.js.map +1 -0
  270. package/dist/terminal/session-manager.d.ts +115 -0
  271. package/dist/terminal/session-manager.d.ts.map +1 -0
  272. package/dist/terminal/session-manager.js +582 -0
  273. package/dist/terminal/session-manager.js.map +1 -0
  274. package/dist/terminal/shellper-client.d.ts +66 -0
  275. package/dist/terminal/shellper-client.d.ts.map +1 -0
  276. package/dist/terminal/shellper-client.js +234 -0
  277. package/dist/terminal/shellper-client.js.map +1 -0
  278. package/dist/terminal/shellper-main.d.ts +19 -0
  279. package/dist/terminal/shellper-main.d.ts.map +1 -0
  280. package/dist/terminal/shellper-main.js +153 -0
  281. package/dist/terminal/shellper-main.js.map +1 -0
  282. package/dist/terminal/shellper-process.d.ts +75 -0
  283. package/dist/terminal/shellper-process.d.ts.map +1 -0
  284. package/dist/terminal/shellper-process.js +279 -0
  285. package/dist/terminal/shellper-process.js.map +1 -0
  286. package/dist/terminal/shellper-protocol.d.ts +115 -0
  287. package/dist/terminal/shellper-protocol.d.ts.map +1 -0
  288. package/dist/terminal/shellper-protocol.js +214 -0
  289. package/dist/terminal/shellper-protocol.js.map +1 -0
  290. package/dist/terminal/shellper-replay-buffer.d.ts +38 -0
  291. package/dist/terminal/shellper-replay-buffer.d.ts.map +1 -0
  292. package/dist/terminal/shellper-replay-buffer.js +94 -0
  293. package/dist/terminal/shellper-replay-buffer.js.map +1 -0
  294. package/dist/terminal/ws-protocol.d.ts +27 -0
  295. package/dist/terminal/ws-protocol.d.ts.map +1 -0
  296. package/dist/terminal/ws-protocol.js +44 -0
  297. package/dist/terminal/ws-protocol.js.map +1 -0
  298. package/package.json +17 -5
  299. package/skeleton/.claude/skills/af/SKILL.md +89 -0
  300. package/skeleton/.claude/skills/codev/SKILL.md +41 -0
  301. package/skeleton/.claude/skills/consult/SKILL.md +81 -0
  302. package/skeleton/.claude/skills/generate-image/SKILL.md +56 -0
  303. package/skeleton/DEPENDENCIES.md +4 -62
  304. package/skeleton/builders.md +1 -1
  305. package/skeleton/consult-types/impl-review.md +18 -9
  306. package/skeleton/consult-types/integration-review.md +1 -1
  307. package/skeleton/consult-types/plan-review.md +1 -1
  308. package/skeleton/consult-types/pr-ready.md +1 -1
  309. package/skeleton/consult-types/spec-review.md +1 -1
  310. package/skeleton/porch/prompts/defend.md +1 -1
  311. package/skeleton/porch/prompts/evaluate.md +2 -2
  312. package/skeleton/porch/prompts/implement.md +1 -1
  313. package/skeleton/porch/prompts/plan.md +1 -1
  314. package/skeleton/porch/prompts/review.md +4 -4
  315. package/skeleton/porch/prompts/specify.md +1 -1
  316. package/skeleton/porch/prompts/understand.md +2 -2
  317. package/skeleton/protocol-schema.json +282 -0
  318. package/skeleton/protocols/bugfix/builder-prompt.md +60 -0
  319. package/skeleton/protocols/bugfix/prompts/fix.md +77 -0
  320. package/skeleton/protocols/bugfix/prompts/investigate.md +77 -0
  321. package/skeleton/protocols/bugfix/prompts/pr.md +84 -0
  322. package/skeleton/protocols/bugfix/protocol.json +20 -33
  323. package/skeleton/protocols/experiment/builder-prompt.md +52 -0
  324. package/skeleton/protocols/experiment/protocol.json +101 -0
  325. package/skeleton/protocols/experiment/protocol.md +3 -3
  326. package/skeleton/protocols/experiment/templates/notes.md +1 -1
  327. package/skeleton/protocols/maintain/builder-prompt.md +46 -0
  328. package/skeleton/protocols/maintain/prompts/audit.md +111 -0
  329. package/skeleton/protocols/maintain/prompts/clean.md +91 -0
  330. package/skeleton/protocols/maintain/prompts/sync.md +113 -0
  331. package/skeleton/protocols/maintain/prompts/verify.md +110 -0
  332. package/skeleton/protocols/maintain/protocol.json +141 -0
  333. package/skeleton/protocols/maintain/protocol.md +17 -11
  334. package/skeleton/protocols/protocol-schema.json +54 -1
  335. package/skeleton/protocols/spir/builder-prompt.md +66 -0
  336. package/skeleton/protocols/spir/prompts/implement.md +208 -0
  337. package/skeleton/protocols/{spider → spir}/prompts/plan.md +6 -70
  338. package/skeleton/protocols/{spider → spir}/prompts/review.md +20 -39
  339. package/skeleton/protocols/{spider → spir}/prompts/specify.md +24 -59
  340. package/skeleton/protocols/{spider → spir}/protocol.json +30 -10
  341. package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
  342. package/skeleton/protocols/spir/templates/review.md +89 -0
  343. package/skeleton/protocols/tick/builder-prompt.md +56 -0
  344. package/skeleton/protocols/tick/protocol.json +7 -2
  345. package/skeleton/protocols/tick/protocol.md +18 -18
  346. package/skeleton/protocols/tick/templates/review.md +1 -1
  347. package/skeleton/resources/commands/agent-farm.md +63 -46
  348. package/skeleton/resources/commands/codev.md +0 -2
  349. package/skeleton/resources/commands/overview.md +7 -17
  350. package/skeleton/resources/workflow-reference.md +4 -4
  351. package/skeleton/roles/architect.md +151 -306
  352. package/skeleton/roles/builder.md +115 -332
  353. package/skeleton/roles/consultant.md +6 -6
  354. package/skeleton/templates/AGENTS.md +2 -2
  355. package/skeleton/templates/CLAUDE.md +2 -2
  356. package/skeleton/templates/cheatsheet.md +7 -5
  357. package/skeleton/templates/projectlist.md +1 -1
  358. package/templates/dashboard/index.html +17 -16
  359. package/templates/dashboard/js/dialogs.js +7 -7
  360. package/templates/dashboard/js/files.js +2 -2
  361. package/templates/dashboard/js/main.js +4 -4
  362. package/templates/dashboard/js/projects.js +3 -3
  363. package/templates/dashboard/js/tabs.js +1 -1
  364. package/templates/dashboard/js/utils.js +22 -1
  365. package/templates/open.html +26 -0
  366. package/templates/tower.html +731 -91
  367. package/dist/agent-farm/commands/kickoff.d.ts +0 -20
  368. package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
  369. package/dist/agent-farm/commands/kickoff.js +0 -273
  370. package/dist/agent-farm/commands/kickoff.js.map +0 -1
  371. package/dist/agent-farm/commands/rename.d.ts +0 -13
  372. package/dist/agent-farm/commands/rename.d.ts.map +0 -1
  373. package/dist/agent-farm/commands/rename.js +0 -33
  374. package/dist/agent-farm/commands/rename.js.map +0 -1
  375. package/dist/agent-farm/commands/tutorial.d.ts +0 -10
  376. package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
  377. package/dist/agent-farm/commands/tutorial.js +0 -49
  378. package/dist/agent-farm/commands/tutorial.js.map +0 -1
  379. package/dist/agent-farm/commands/util.d.ts +0 -15
  380. package/dist/agent-farm/commands/util.d.ts.map +0 -1
  381. package/dist/agent-farm/commands/util.js +0 -108
  382. package/dist/agent-farm/commands/util.js.map +0 -1
  383. package/dist/agent-farm/servers/dashboard-server.d.ts +0 -7
  384. package/dist/agent-farm/servers/dashboard-server.d.ts.map +0 -1
  385. package/dist/agent-farm/servers/dashboard-server.js +0 -1858
  386. package/dist/agent-farm/servers/dashboard-server.js.map +0 -1
  387. package/dist/agent-farm/servers/open-server.d.ts +0 -7
  388. package/dist/agent-farm/servers/open-server.d.ts.map +0 -1
  389. package/dist/agent-farm/servers/open-server.js +0 -315
  390. package/dist/agent-farm/servers/open-server.js.map +0 -1
  391. package/dist/agent-farm/tutorial/index.d.ts +0 -8
  392. package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
  393. package/dist/agent-farm/tutorial/index.js +0 -8
  394. package/dist/agent-farm/tutorial/index.js.map +0 -1
  395. package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
  396. package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
  397. package/dist/agent-farm/tutorial/prompts.js +0 -147
  398. package/dist/agent-farm/tutorial/prompts.js.map +0 -1
  399. package/dist/agent-farm/tutorial/runner.d.ts +0 -52
  400. package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
  401. package/dist/agent-farm/tutorial/runner.js +0 -204
  402. package/dist/agent-farm/tutorial/runner.js.map +0 -1
  403. package/dist/agent-farm/tutorial/state.d.ts +0 -26
  404. package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
  405. package/dist/agent-farm/tutorial/state.js +0 -89
  406. package/dist/agent-farm/tutorial/state.js.map +0 -1
  407. package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
  408. package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
  409. package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
  410. package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
  411. package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
  412. package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
  413. package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
  414. package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
  415. package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
  416. package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
  417. package/dist/agent-farm/tutorial/steps/index.js +0 -10
  418. package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
  419. package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
  420. package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
  421. package/dist/agent-farm/tutorial/steps/planning.js +0 -143
  422. package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
  423. package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
  424. package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
  425. package/dist/agent-farm/tutorial/steps/review.js +0 -78
  426. package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
  427. package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
  428. package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
  429. package/dist/agent-farm/tutorial/steps/setup.js +0 -126
  430. package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
  431. package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
  432. package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
  433. package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
  434. package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
  435. package/dist/agent-farm/utils/orphan-handler.d.ts +0 -27
  436. package/dist/agent-farm/utils/orphan-handler.d.ts.map +0 -1
  437. package/dist/agent-farm/utils/orphan-handler.js +0 -149
  438. package/dist/agent-farm/utils/orphan-handler.js.map +0 -1
  439. package/dist/agent-farm/utils/port-registry.d.ts +0 -58
  440. package/dist/agent-farm/utils/port-registry.d.ts.map +0 -1
  441. package/dist/agent-farm/utils/port-registry.js +0 -166
  442. package/dist/agent-farm/utils/port-registry.js.map +0 -1
  443. package/dist/agent-farm/utils/terminal-ports.d.ts +0 -18
  444. package/dist/agent-farm/utils/terminal-ports.d.ts.map +0 -1
  445. package/dist/agent-farm/utils/terminal-ports.js +0 -35
  446. package/dist/agent-farm/utils/terminal-ports.js.map +0 -1
  447. package/dist/commands/pcheck/cache.d.ts +0 -48
  448. package/dist/commands/pcheck/cache.d.ts.map +0 -1
  449. package/dist/commands/pcheck/cache.js +0 -170
  450. package/dist/commands/pcheck/cache.js.map +0 -1
  451. package/dist/commands/pcheck/evaluator.d.ts +0 -15
  452. package/dist/commands/pcheck/evaluator.d.ts.map +0 -1
  453. package/dist/commands/pcheck/evaluator.js +0 -246
  454. package/dist/commands/pcheck/evaluator.js.map +0 -1
  455. package/dist/commands/pcheck/index.d.ts +0 -12
  456. package/dist/commands/pcheck/index.d.ts.map +0 -1
  457. package/dist/commands/pcheck/index.js +0 -249
  458. package/dist/commands/pcheck/index.js.map +0 -1
  459. package/dist/commands/pcheck/parser.d.ts +0 -39
  460. package/dist/commands/pcheck/parser.d.ts.map +0 -1
  461. package/dist/commands/pcheck/parser.js +0 -155
  462. package/dist/commands/pcheck/parser.js.map +0 -1
  463. package/dist/commands/pcheck/types.d.ts +0 -82
  464. package/dist/commands/pcheck/types.d.ts.map +0 -1
  465. package/dist/commands/pcheck/types.js +0 -5
  466. package/dist/commands/pcheck/types.js.map +0 -1
  467. package/dist/commands/porch/claude.d.ts +0 -29
  468. package/dist/commands/porch/claude.d.ts.map +0 -1
  469. package/dist/commands/porch/claude.js +0 -79
  470. package/dist/commands/porch/claude.js.map +0 -1
  471. package/dist/commands/porch/consultation.d.ts +0 -56
  472. package/dist/commands/porch/consultation.d.ts.map +0 -1
  473. package/dist/commands/porch/consultation.js +0 -330
  474. package/dist/commands/porch/consultation.js.map +0 -1
  475. package/dist/commands/porch/notifications.d.ts +0 -99
  476. package/dist/commands/porch/notifications.d.ts.map +0 -1
  477. package/dist/commands/porch/notifications.js +0 -223
  478. package/dist/commands/porch/notifications.js.map +0 -1
  479. package/dist/commands/porch/plan-parser.d.ts +0 -38
  480. package/dist/commands/porch/plan-parser.d.ts.map +0 -1
  481. package/dist/commands/porch/plan-parser.js +0 -166
  482. package/dist/commands/porch/plan-parser.js.map +0 -1
  483. package/dist/commands/porch/protocol-loader.d.ts +0 -46
  484. package/dist/commands/porch/protocol-loader.d.ts.map +0 -1
  485. package/dist/commands/porch/protocol-loader.js +0 -262
  486. package/dist/commands/porch/protocol-loader.js.map +0 -1
  487. package/dist/commands/porch/repl.d.ts +0 -33
  488. package/dist/commands/porch/repl.d.ts.map +0 -1
  489. package/dist/commands/porch/repl.js +0 -206
  490. package/dist/commands/porch/repl.js.map +0 -1
  491. package/dist/commands/porch/run.d.ts +0 -15
  492. package/dist/commands/porch/run.d.ts.map +0 -1
  493. package/dist/commands/porch/run.js +0 -551
  494. package/dist/commands/porch/run.js.map +0 -1
  495. package/dist/commands/porch/signal-parser.d.ts +0 -102
  496. package/dist/commands/porch/signal-parser.d.ts.map +0 -1
  497. package/dist/commands/porch/signal-parser.js +0 -199
  498. package/dist/commands/porch/signal-parser.js.map +0 -1
  499. package/dist/commands/porch/signals.d.ts +0 -35
  500. package/dist/commands/porch/signals.d.ts.map +0 -1
  501. package/dist/commands/porch/signals.js +0 -76
  502. package/dist/commands/porch/signals.js.map +0 -1
  503. package/dist/commands/porch2/checks.d.ts +0 -29
  504. package/dist/commands/porch2/checks.d.ts.map +0 -1
  505. package/dist/commands/porch2/checks.js +0 -141
  506. package/dist/commands/porch2/checks.js.map +0 -1
  507. package/dist/commands/porch2/index.d.ts +0 -38
  508. package/dist/commands/porch2/index.d.ts.map +0 -1
  509. package/dist/commands/porch2/index.js +0 -483
  510. package/dist/commands/porch2/index.js.map +0 -1
  511. package/dist/commands/porch2/plan.d.ts +0 -70
  512. package/dist/commands/porch2/plan.d.ts.map +0 -1
  513. package/dist/commands/porch2/plan.js +0 -227
  514. package/dist/commands/porch2/plan.js.map +0 -1
  515. package/dist/commands/porch2/protocol.d.ts +0 -37
  516. package/dist/commands/porch2/protocol.d.ts.map +0 -1
  517. package/dist/commands/porch2/protocol.js +0 -183
  518. package/dist/commands/porch2/protocol.js.map +0 -1
  519. package/dist/commands/porch2/state.d.ts +0 -35
  520. package/dist/commands/porch2/state.d.ts.map +0 -1
  521. package/dist/commands/porch2/state.js +0 -124
  522. package/dist/commands/porch2/state.js.map +0 -1
  523. package/dist/commands/porch2/types.d.ts +0 -79
  524. package/dist/commands/porch2/types.d.ts.map +0 -1
  525. package/dist/commands/porch2/types.js +0 -8
  526. package/dist/commands/porch2/types.js.map +0 -1
  527. package/dist/commands/tower.d.ts +0 -16
  528. package/dist/commands/tower.d.ts.map +0 -1
  529. package/dist/commands/tower.js +0 -21
  530. package/dist/commands/tower.js.map +0 -1
  531. package/skeleton/config.json +0 -7
  532. package/skeleton/protocols/spider/prompts/defend.md +0 -215
  533. package/skeleton/protocols/spider/prompts/evaluate.md +0 -241
  534. package/skeleton/protocols/spider/prompts/implement.md +0 -149
  535. package/skeleton/protocols/spider/templates/review.md +0 -207
  536. /package/skeleton/protocols/{spider → spir}/templates/plan.md +0 -0
  537. /package/skeleton/protocols/{spider → spir}/templates/spec.md +0 -0
@@ -1,332 +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
-
15
- # Check your status
16
- af status
17
-
18
- # Send a message to the architect
19
- af send architect "Question about the spec..."
20
- ```
21
-
22
- The `af` commands work from worktrees - they automatically find the main repository's state.
23
-
24
- ## Responsibilities
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
32
-
33
- ## Protocol Adherence
34
-
35
- **The spec will tell you which protocol to use: SPIDER or TICK.**
36
-
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
43
-
44
- ## CRITICAL: Porch Protocol Enforcement
45
-
46
- **You are operating under protocol orchestration. Porch is the gatekeeper.**
47
-
48
- Porch (`porch`) is the authoritative source of truth for your current state, what to do next, and whether you can advance. You MUST follow porch's instructions.
49
-
50
- ### MANDATORY BEHAVIORS
51
-
52
- 1. **FIRST ACTION**: Run `porch status {PROJECT_ID}` to see your current state
53
- 2. **BEFORE ANY WORK**: Read porch's instructions carefully
54
- 3. **AFTER COMPLETING WORK**: Run `porch check {PROJECT_ID}` to verify criteria
55
- 4. **TO ADVANCE**: Run `porch done {PROJECT_ID}` - porch will verify and advance
56
- 5. **AT GATES**: Run `porch gate {PROJECT_ID}` and **STOP**. Wait for human.
57
-
58
- ### PORCH IS AUTHORITATIVE
59
-
60
- - Porch tells you what phase you're in
61
- - Porch tells you what to do next
62
- - Porch runs the checks that determine if you're done
63
- - Porch controls advancement between phases
64
- - You CANNOT skip phases or ignore porch
14
+ ## Strict Mode (Default)
65
15
 
66
- ### WHEN PORCH SAYS STOP, YOU STOP
16
+ Spawned with: `af spawn -p XXXX`
67
17
 
68
- If porch output contains **"STOP"** or **"WAIT"**, you must stop working and wait for human intervention. Do not try to proceed.
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**.
69
19
 
70
- ```
71
- GATE: spec_approval
72
-
73
- Human approval required. STOP and wait.
74
- Do not proceed until gate is approved.
75
-
76
- STATUS: WAITING FOR HUMAN APPROVAL
77
- ```
78
-
79
- When you see output like this, **STOP IMMEDIATELY**. Output a message indicating you're waiting for approval and do not continue until the gate is approved.
80
-
81
- ### Porch Command Reference
82
-
83
- ```bash
84
- porch status <id> # See current state and instructions
85
- porch check <id> # Run checks for current phase
86
- porch done <id> # Advance to next phase (if checks pass)
87
- porch gate <id> # Request human approval
88
- ```
89
-
90
- ### Example Workflow
20
+ ### The Core Loop
91
21
 
92
22
  ```bash
93
- # Start of session - check where you are
94
- porch status 0074
95
-
96
- # After implementing code
97
- porch check 0074
98
-
99
- # If checks pass, advance
100
- porch done 0074
23
+ # 1. Get your next tasks (project ID auto-detected from worktree)
24
+ porch next
101
25
 
102
- # If gate is required
103
- porch gate 0074
104
- # OUTPUT: "STOP and wait" → STOP HERE, wait for human
26
+ # 2. Do the work described in the tasks
27
+ # 3. Signal completion
28
+ porch done
105
29
 
106
- # After human approves, continue
107
- porch status 0074
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
108
33
  ```
109
34
 
110
- ### SPIDER Protocol Execution
111
-
112
- As a builder with porch, you execute the **full SPIDER protocol**:
113
-
114
- 1. **Specify**: Write the spec (`codev/specs/XXXX-name.md`)
115
- - Write the spec with all required sections
116
- - **Run 3-way consultation** and add a `## Consultation` section summarizing findings:
117
- ```bash
118
- consult --model gemini --type spec-review spec XXXX
119
- consult --model codex --type spec-review spec XXXX
120
- consult --model claude --type spec-review spec XXXX
121
- ```
122
- - **NO phases in spec** - phases belong in the plan, not the spec
123
- - **COMMIT** the spec file
124
- - Run `porch done` → hits `spec_approval` gate
125
- - Run `porch gate` → **STOP and wait for human**
126
-
127
- 2. **Plan**: Write the plan (`codev/plans/XXXX-name.md`)
128
- - Write the plan with numbered phases and a JSON phases block
129
- - **Run 3-way consultation** and add a `## Consultation` section
130
- - **COMMIT** the plan file
131
- - Run `porch done` → hits `plan_approval` gate
132
- - Run `porch gate` → **STOP and wait for human**
133
-
134
- 3-5. **Implement → Defend → Evaluate** (per plan phase): See detailed section below
135
-
136
- 6. **Review** - Document lessons learned, run 3-way review, create PR
137
- - Write the review document (`codev/reviews/XXXX-spec-name.md`)
138
- - **Run 3-way parallel review focused on IMPLEMENTATION quality**:
139
- ```bash
140
- consult --model gemini --type pr-ready pr $PR_NUMBER &
141
- consult --model codex --type pr-ready pr $PR_NUMBER &
142
- consult --model claude --type pr-ready pr $PR_NUMBER &
143
- wait
144
- ```
145
- - Address any REQUEST_CHANGES feedback before creating the PR
146
- - Include the 3-way review summary in your PR description
147
-
148
- **Note**: The Architect will run a separate 3-way review focused on **integration** concerns.
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
149
40
 
150
- ### 🚨 CRITICAL: Implement Defend → Evaluate Cycle 🚨
41
+ ### Gates: When to STOP
151
42
 
152
- **For EACH plan phase (phase_1, phase_2, etc.), you MUST complete the full I→D→E cycle WITH commits and porch calls.**
43
+ Porch has two human approval gates:
153
44
 
154
- **This is NOT optional. Porch runs phase completion checks that verify your commit.**
155
-
156
- #### The Required Workflow (for each plan phase):
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 |
157
49
 
50
+ When porch outputs:
158
51
  ```
159
- ┌─────────────────────────────────────────────────────────────┐
160
- │ PHASE N: [Title from plan] │
161
- ├─────────────────────────────────────────────────────────────┤
162
- │ 1. IMPLEMENT │
163
- │ - Write the code for this phase │
164
- │ - Run `porch done XXXX` → advances to defend │
165
- │ │
166
- │ 2. DEFEND │
167
- │ - Write tests for the code │
168
- │ - Run `porch done XXXX` → advances to evaluate │
169
- │ │
170
- │ 3. EVALUATE │
171
- │ - Run 3-way consultation on implementation │
172
- │ - Address any feedback │
173
- │ - **COMMIT everything** (code + tests + consultation) │
174
- │ - Run `porch done XXXX` → runs PHASE COMPLETION CHECKS │
175
- │ │
176
- │ Phase completion checks verify your commit has: │
177
- │ ✓ Build passes │
178
- │ ✓ Tests pass │
179
- │ ✓ Commit includes code files │
180
- │ ✓ Commit includes test files │
181
- │ ✓ Commit message mentions 3-way review │
182
- │ │
183
- │ If checks fail → FIX and try `porch done` again │
184
- │ If checks pass → Advances to next phase │
185
- └─────────────────────────────────────────────────────────────┘
52
+ GATE: spec-approval
53
+ Human approval required. STOP and wait.
186
54
  ```
187
55
 
188
- #### Example Commit Message (end of phase):
189
-
190
- ```
191
- [Spec 0074][Phase 1] Remove backend activity code
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
192
61
 
193
- - Removed ActivitySummary types and interfaces
194
- - Removed getGitCommits, getModifiedFiles, getGitHubPRs functions
195
- - Removed /api/activity-summary endpoint
196
- - Added tests for remaining endpoints
197
-
198
- 3-way review: Gemini APPROVE, Codex APPROVE, Claude APPROVE
199
- ```
62
+ ### What You DON'T Do in Strict Mode
200
63
 
201
- #### What Happens If You Skip This
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
202
69
 
203
- If you do NOT call `porch done` after each stage:
204
- - Porch doesn't know you finished
205
- - Phase completion checks never run
206
- - Your work is not validated
207
- - The Architect will reject your PR
70
+ ## Soft Mode
208
71
 
209
- **DO NOT just implement everything and skip porch calls.**
72
+ Spawned with: `af spawn --soft -p XXXX` or `af spawn --task "..."`
210
73
 
211
- Each `porch done` is a checkpoint that:
212
- 1. Validates your work meets criteria
213
- 2. Records your progress
214
- 3. Ensures quality gates are enforced
74
+ In soft mode, you follow the protocol document yourself. The architect monitors your work and verifies you're adhering to the protocol correctly.
215
75
 
216
- ### TICK Protocol Summary
76
+ ### Startup Sequence
217
77
 
218
- TICK is for smaller, well-defined tasks:
219
- - Understand Implement Verify → Done
220
-
221
- Follow the TICK protocol documentation for details.
78
+ ```bash
79
+ # Read the spec and/or plan
80
+ cat codev/specs/XXXX-*.md
81
+ cat codev/plans/XXXX-*.md
222
82
 
223
- ## Spec Compliance (CRITICAL)
83
+ # Read the protocol
84
+ cat codev/protocols/spir/protocol.md
224
85
 
225
- **The spec is the source of truth. Code that doesn't match the spec is wrong, even if it "works".**
86
+ # Start implementing
87
+ ```
226
88
 
227
- ### Pre-Implementation Sanity Check (PISC)
89
+ ### The SPIR Protocol (Specify → Plan → Implement → Review)
228
90
 
229
- **Before writing ANY code, run this checklist:**
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
230
95
 
231
- 1. ✅ "Have I read the spec in the last 30 minutes?"
232
- 2. ✅ "If the spec has a 'Traps to Avoid' section, have I read it?"
233
- 3. ✅ "Does my planned approach match the spec's Technical Implementation section?"
234
- 4. ✅ "If the spec has code examples, am I following them?"
235
- 5. ✅ "Does the existing code I'm building on actually match the spec?"
96
+ ### Consultations
236
97
 
237
- **If ANY answer is "no" or "I'm not sure" → STOP and re-read the spec before proceeding.**
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
238
105
 
239
- ### The Trust Hierarchy
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
240
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
241
117
  ```
242
- SPEC (source of truth)
243
-
244
- PLAN (implementation guide derived from spec)
245
-
246
- EXISTING CODE (NOT TRUSTED - must be validated against spec)
247
- ```
248
-
249
- **Never trust existing code over the spec.** Previous implementations may have drifted. The spec is always authoritative.
250
-
251
- ### Avoiding "Fixing Mode"
252
118
 
253
- 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:
254
- - Cargo-culting existing patterns that may be wrong
255
- - Building on broken foundations
256
- - Implementing something different from what the spec describes
257
-
258
- **When you catch yourself "fixing" code:**
259
- 1. STOP
260
- 2. Ask: "What does the spec say about this?"
261
- 3. Re-read the spec's Traps to Avoid section
262
- 4. Verify existing code matches the spec before building on it
119
+ ## Deliverables
263
120
 
264
- ### 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
265
126
 
266
- If you think or receive any of these, immediately re-read the spec:
267
- - "Does this match the spec?"
268
- - "What does the spec say about X?"
269
- - "Check the spec's Traps to Avoid section"
270
- - "Are you sure?"
271
- - "You're cargo-culting existing patterns"
127
+ ## Communication
272
128
 
273
- ## Status Lifecycle
129
+ ### With the Architect
274
130
 
131
+ If you're blocked or need help:
132
+ ```bash
133
+ af send architect "Question about the spec..."
275
134
  ```
276
- spawning → implementing → blocked → implementing → pr-ready → complete
277
- ↑______________|
278
- ```
279
-
280
- ### Status Definitions
281
-
282
- | Status | Meaning |
283
- |--------|---------|
284
- | `spawning` | Worktree created, Builder starting up |
285
- | `implementing` | Actively working on the spec |
286
- | `blocked` | Stuck, needs Architect help |
287
- | `pr-ready` | Implementation complete, ready for review |
288
- | `complete` | Merged, worktree can be cleaned up |
289
135
 
290
136
  ### Checking Status
291
137
 
292
138
  ```bash
293
- af status
139
+ porch status # (strict mode) Your project status
140
+ af status # All builders
294
141
  ```
295
142
 
296
- You can check your own status and see other builders. The Architect also monitors status.
297
-
298
- ## Working in a Worktree
143
+ ## Notifications
299
144
 
300
- ### Understanding Your Environment
301
- - You are in an isolated git worktree at `.builders/XXXX/`
302
- - You have your own branch: `builder/XXXX-spec-name`
303
- - Changes here don't affect main until merged
304
- - You can commit freely without affecting other Builders
145
+ **ALWAYS notify the architect** via `af send` at these key moments:
305
146
 
306
- ### File Access
307
- - Full access to your worktree
308
- - Read-only conceptual access to main (for reference)
309
- - Your spec is at `codev/specs/XXXX-spec-name.md`
310
- - 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"` |
311
154
 
312
- ## 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.
313
156
 
314
- Report `blocked` status when:
315
- - Spec is ambiguous and you need clarification
316
- - You discover a dependency on another spec
317
- - You encounter an unexpected technical blocker
318
- - You need architectural guidance
319
- - Tests are failing for reasons outside your scope
157
+ ## When You're Blocked
320
158
 
321
- **Do NOT stay blocked silently.** Communicate your blocker clearly:
159
+ If you encounter issues you can't resolve:
322
160
 
323
- 1. Output a clear message in your terminal describing the blocker and options
324
- 2. Add a `<!-- REVIEW(@architect): question here -->` comment in relevant code if applicable
325
- 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
326
164
 
327
- Example blocker message to output:
165
+ Example:
328
166
  ```
329
- ## BLOCKED: Spec 0003
167
+ ## BLOCKED: Spec 0077
330
168
  Can't find the auth helper mentioned in spec. Options:
331
169
  1. Create a new auth helper
332
170
  2. Use a third-party library
@@ -334,67 +172,12 @@ Can't find the auth helper mentioned in spec. Options:
334
172
  Waiting for Architect guidance.
335
173
  ```
336
174
 
337
- The Architect will provide guidance via `af send` or PR comments.
338
-
339
- ## Deliverables
340
-
341
- When done, a Builder should have:
342
-
343
- 1. **Implementation** - Code that fulfills the spec
344
- 2. **Tests** - Appropriate test coverage
345
- 3. **Documentation** - Updated relevant docs (if needed)
346
- 4. **Clean commits** - Atomic, well-messaged commits per phase
347
- 5. **Review document** - As specified in the SPIDER protocol (`codev/reviews/XXXX-spec-name.md`)
348
- 6. **PR-ready branch** - Ready for Architect review
349
-
350
- ## Communication with Architect
351
-
352
- ### Receiving Instructions
353
- The Architect provides:
354
- - Spec file path
355
- - Plan file path
356
- - Protocol to follow (SPIDER/TICK)
357
- - Context and constraints
358
-
359
- ### Reporting Completion
360
- When implementation is complete:
361
- 1. Run all tests
362
- 2. Self-review the code
363
- 3. Ensure all protocol artifacts are present (especially the review document for SPIDER)
364
- 4. Create a PR: `gh pr create --title "[Spec XXXX] Description" --body "..."`
365
- 5. Update status to `pr-ready`
366
- 6. Wait for Architect review and approval
367
- 7. **Merge your own PR** once approved: `gh pr merge --merge --delete-branch`
368
-
369
- **Important**: The Builder is responsible for merging after Architect approval. This ensures the Builder sees the merge succeed and can handle any final cleanup.
370
-
371
- ### Receiving PR Feedback
372
-
373
- The Architect reviews PRs and leaves feedback as GitHub PR comments. When notified to check feedback:
374
-
375
- ```bash
376
- # View PR comments
377
- gh pr view <PR_NUMBER> --comments
378
-
379
- # Or view the full PR with comments in browser
380
- gh pr view <PR_NUMBER> --web
381
- ```
382
-
383
- **Workflow:**
384
- 1. Architect leaves review comments on PR
385
- 2. You receive a short message: "Check PR comments and address feedback"
386
- 3. Run `gh pr view <PR_NUMBER> --comments` to see feedback
387
- 4. Address the issues (High priority first, then Medium, Low is optional)
388
- 5. Push fixes to the same branch
389
- 6. Reply to PR comment when done or if clarification needed
390
-
391
175
  ## Constraints
392
176
 
393
- - **Stay in scope** - Only implement what's in your spec
394
- - **Don't modify shared config** - Without Architect approval
395
- - **Merge your own PRs** - After Architect approves, you are responsible for merging
396
- - **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
397
179
  - **Keep worktree clean** - No untracked files, no debug code
398
- - **Follow the protocol** - All phases, all artifacts
399
- - **NEVER edit status.yaml directly** - Only porch commands modify project state
400
- - **NEVER call porch approve unless explicitly told to by the human** - Gates require human instruction to approve
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