@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
@@ -0,0 +1,208 @@
1
+ # IMPLEMENT Phase Prompt
2
+
3
+ You are executing the **IMPLEMENT** phase of the SPIR protocol.
4
+
5
+ ## Your Goal
6
+
7
+ Write clean, well-structured code AND tests that implement the current plan phase.
8
+
9
+ ## Context
10
+
11
+ - **Project ID**: {{project_id}}
12
+ - **Project Title**: {{title}}
13
+ - **Current State**: {{current_state}}
14
+ - **Plan Phase**: {{plan_phase_id}} - {{plan_phase_title}}
15
+
16
+ ## ⚠️ SCOPE RESTRICTION — READ THIS FIRST
17
+
18
+ **You are implementing ONLY the current plan phase: {{plan_phase_id}} ({{plan_phase_title}}).**
19
+
20
+ - **DO NOT** implement other phases. Other phases will be handled in subsequent porch iterations.
21
+ - **DO NOT** read the full plan file and implement everything you see.
22
+ - The plan phase details are included below under "Current Plan Phase Details". That is your ONLY scope.
23
+ - If you need to reference the spec for requirements, read `codev/specs/{{project_id}}-*.md` but ONLY implement what the current phase requires.
24
+
25
+ ## What Happens After You Finish
26
+
27
+ When you signal `PHASE_COMPLETE`, porch will:
28
+ 1. Run 3-way consultation (Gemini, Codex, Claude) on your implementation
29
+ 2. Check that tests exist and pass
30
+ 3. If reviewers request changes, you'll be respawned with their feedback
31
+ 4. Once approved, porch commits and moves to the next plan phase
32
+
33
+ ## Spec Compliance (CRITICAL)
34
+
35
+ **The spec is the source of truth. Code that doesn't match the spec is wrong, even if it "works".**
36
+
37
+ ### Trust Hierarchy
38
+
39
+ ```
40
+ SPEC (source of truth)
41
+
42
+ PLAN (implementation guide derived from spec)
43
+
44
+ EXISTING CODE (NOT TRUSTED - must be validated against spec)
45
+ ```
46
+
47
+ **Never trust existing code over the spec.** Previous implementations may have drifted.
48
+
49
+ ### Pre-Implementation Sanity Check (PISC)
50
+
51
+ **Before writing ANY code:**
52
+
53
+ 1. ✅ "Have I read the spec in the last 30 minutes?"
54
+ 2. ✅ "If the spec has a 'Traps to Avoid' section, have I read it?"
55
+ 3. ✅ "Does my approach match the spec's Technical Implementation section?"
56
+ 4. ✅ "If the spec has code examples, am I following them?"
57
+ 5. ✅ "Does the existing code I'm building on actually match the spec?"
58
+
59
+ **If ANY answer is "no" or "unsure" → STOP and re-read the spec.**
60
+
61
+ ### Avoiding "Fixing Mode"
62
+
63
+ A dangerous pattern: You start looking at symptoms in code, making incremental fixes, copying existing patterns - without going back to the spec. This leads to:
64
+ - Cargo-culting patterns that may be wrong
65
+ - Building on broken foundations
66
+ - Implementing something different from the spec
67
+
68
+ **When you catch yourself "fixing" code:**
69
+ 1. STOP
70
+ 2. Ask: "What does the spec say about this?"
71
+ 3. Re-read the spec's Traps to Avoid section
72
+ 4. Verify existing code matches the spec before building on it
73
+
74
+ ## Prerequisites
75
+
76
+ Before implementing, verify:
77
+ 1. Previous phase (if any) is committed to git
78
+ 2. You've read the plan phase you're implementing
79
+ 3. You understand the success criteria for this phase
80
+ 4. Dependencies from earlier phases are available
81
+
82
+ ## Process
83
+
84
+ ### 1. Review the Plan Phase
85
+
86
+ Read the current phase in the plan:
87
+ - What is the objective?
88
+ - What files need to be created/modified?
89
+ - What are the success criteria?
90
+ - What dependencies exist?
91
+
92
+ ### 2. Set Up
93
+
94
+ - Verify you're on the correct branch
95
+ - Check that previous phase is committed: `git log --oneline -5`
96
+ - Ensure build passes before starting: `npm run build` (or equivalent)
97
+
98
+ ### 3. Implement the Code
99
+
100
+ Write the code following these principles:
101
+
102
+ **Code Quality Standards**:
103
+ - Self-documenting code (clear names, obvious structure)
104
+ - No commented-out code
105
+ - No debug prints in final code
106
+ - Explicit error handling
107
+ - Follow project style guide
108
+
109
+ **Implementation Approach**:
110
+ - Work on one file at a time
111
+ - Make small, incremental changes
112
+ - Document complex logic with comments
113
+
114
+ ### 4. Write Tests
115
+
116
+ **Tests are required.** For each piece of functionality you implement:
117
+
118
+ - Write unit tests for core logic
119
+ - Write integration tests if the phase involves multiple components
120
+ - Test error cases and edge conditions
121
+ - Ensure tests are deterministic (no flaky tests)
122
+
123
+ **Test file locations** (follow project conventions):
124
+ - `tests/` or `__tests__/` directories
125
+ - `*.test.ts` or `*.spec.ts` naming
126
+
127
+ ### 5. Verify Everything Works
128
+
129
+ Run both build and tests:
130
+
131
+ ```bash
132
+ npm run build # Must pass
133
+ npm test # Must pass
134
+ ```
135
+
136
+ **Important**: Don't assume these commands exist. Check `package.json` first.
137
+
138
+ Fix any errors before signaling completion.
139
+
140
+ ### 6. Self-Review
141
+
142
+ Before signaling completion:
143
+ - Read through all code changes
144
+ - Read through all test changes
145
+ - Verify code matches the spec requirements
146
+ - Ensure no accidental debug code
147
+ - Check test coverage is adequate
148
+
149
+ ## Output
150
+
151
+ When complete, you should have:
152
+ - Modified/created source files as specified in the plan phase
153
+ - Tests covering the new functionality
154
+ - All build checks passing
155
+ - All tests passing
156
+
157
+ ## Signals
158
+
159
+ When implementation AND tests are complete and passing:
160
+
161
+ ```
162
+ <signal>PHASE_COMPLETE</signal>
163
+ ```
164
+
165
+ If you encounter a blocker:
166
+
167
+ ```
168
+ <signal>BLOCKED:reason goes here</signal>
169
+ ```
170
+
171
+ If you need spec/plan clarification:
172
+
173
+ ```
174
+ <signal type=AWAITING_INPUT>
175
+ Your specific questions here
176
+ </signal>
177
+ ```
178
+
179
+ ## Important Notes
180
+
181
+ 1. **Follow the plan** - Implement what's specified, not more
182
+ 2. **Don't over-engineer** - Simplest solution that works
183
+ 3. **Don't skip error handling** - But don't go overboard either
184
+ 4. **Keep changes focused** - Only touch files in this phase
185
+ 5. **Build AND tests must pass** - Don't signal complete until both pass
186
+ 6. **Write tests** - Every implementation phase needs tests
187
+
188
+ ## What NOT to Do
189
+
190
+ - Don't modify files outside this phase's scope
191
+ - Don't add features not in the spec
192
+ - Don't leave TODO comments for later (fix now or note as blocker)
193
+ - Don't skip writing tests
194
+ - Don't use `git add .` or `git add -A` when you commit (security risk)
195
+
196
+ ## Handling Problems
197
+
198
+ **If the plan is unclear**:
199
+ Signal `AWAITING_INPUT` with your specific question.
200
+
201
+ **If you discover the spec is wrong**:
202
+ Signal `BLOCKED` and explain the issue. The Architect may need to update the spec.
203
+
204
+ **If a dependency is missing**:
205
+ Signal `BLOCKED` with details about what's missing.
206
+
207
+ **If build or tests fail and you can't fix it**:
208
+ Signal `BLOCKED` with the error message.
@@ -1,6 +1,6 @@
1
1
  # PLAN Phase Prompt
2
2
 
3
- You are executing the **PLAN** phase of the SPIDER protocol.
3
+ You are executing the **PLAN** phase of the SPIR protocol.
4
4
 
5
5
  ## Your Goal
6
6
 
@@ -14,10 +14,6 @@ Transform the approved specification into an executable implementation plan with
14
14
  - **Spec File**: `codev/specs/{{project_id}}-{{title}}.md`
15
15
  - **Plan File**: `codev/plans/{{project_id}}-{{title}}.md`
16
16
 
17
- ## CRITICAL: Multi-Agent Consultation is MANDATORY
18
-
19
- The SPIDER protocol **requires** consultation with GPT-5 Codex AND Gemini Pro at specific checkpoints. This is BLOCKING - you cannot proceed without completing consultations.
20
-
21
17
  ## Prerequisites
22
18
 
23
19
  Before planning, verify:
@@ -72,51 +68,15 @@ Phase 3: API Endpoints (depends on Phase 2)
72
68
  Phase 4: Frontend Integration (depends on Phase 3)
73
69
  ```
74
70
 
75
- ### 5. MANDATORY: First Consultation (After Draft)
76
-
77
- After completing the initial plan draft:
78
-
79
- ```bash
80
- # Run consultations in parallel (REQUIRED)
81
- consult --model gemini plan {{project_id}} &
82
- consult --model codex plan {{project_id}} &
83
- wait
84
- ```
85
-
86
- - Review ALL feedback from both models
87
- - Update the plan with incorporated feedback
88
- - Add a **Consultation Log** section documenting:
89
- - Key feedback received
90
- - Changes made in response
91
- - Any feedback intentionally not incorporated (with reasoning)
92
-
93
- ### 6. Human Review
94
-
95
- After consultation feedback is incorporated:
96
- - Present the plan for human review
97
- - Wait for approval or change requests
98
- - If changes requested, make them and proceed to Step 7
99
-
100
- ### 7. MANDATORY: Second Consultation (After Human Feedback)
101
-
102
- After incorporating human feedback:
71
+ ### 5. Finalize
103
72
 
104
- ```bash
105
- # Run consultations again (REQUIRED)
106
- consult --model gemini plan {{project_id}} &
107
- consult --model codex plan {{project_id}} &
108
- wait
109
- ```
110
-
111
- - Update Consultation Log with new feedback
112
- - Incorporate changes
113
- - Prepare final plan for approval
73
+ After completing the plan draft, signal completion. Porch will run 3-way consultation (Gemini, Codex, Claude) automatically via the verify step. If reviewers request changes, you'll be respawned with their feedback.
114
74
 
115
75
  ## Output
116
76
 
117
77
  Create the plan file at `codev/plans/{{project_id}}-{{title}}.md`.
118
78
 
119
- Use the plan template from `codev/protocols/spider/templates/plan.md` if available.
79
+ Use the plan template from `codev/protocols/spir/templates/plan.md` if available.
120
80
 
121
81
  ### Plan Structure
122
82
 
@@ -148,18 +108,6 @@ Brief summary of what will be implemented.
148
108
  - [Risk 1]: [Mitigation]
149
109
  - [Risk 2]: [Mitigation]
150
110
 
151
- ## Consultation Log
152
-
153
- ### First Consultation (After Draft)
154
- - **Gemini Feedback**: [Summary]
155
- - **Codex Feedback**: [Summary]
156
- - **Changes Made**: [List]
157
- - **Not Incorporated**: [List with reasons]
158
-
159
- ### Second Consultation (After Human Feedback)
160
- - **Gemini Feedback**: [Summary]
161
- - **Codex Feedback**: [Summary]
162
- - **Changes Made**: [List]
163
111
  ```
164
112
 
165
113
  ## Signals
@@ -171,16 +119,6 @@ Emit appropriate signals based on your progress:
171
119
  <signal>PLAN_DRAFTED</signal>
172
120
  ```
173
121
 
174
- - After incorporating consultation feedback:
175
- ```
176
- <signal>CONSULTATION_INCORPORATED</signal>
177
- ```
178
-
179
- - After final plan is ready for human approval:
180
- ```
181
- <signal>PLAN_READY_FOR_APPROVAL</signal>
182
- ```
183
-
184
122
  ## Commit Cadence
185
123
 
186
124
  Make commits at these milestones:
@@ -196,16 +134,14 @@ git add codev/plans/{{project_id}}-{{title}}.md
196
134
 
197
135
  ## Important Notes
198
136
 
199
- 1. **Consultation is MANDATORY** - Cannot skip GPT-5 + Gemini reviews
200
- 2. **No time estimates** - Don't include hours/days/weeks
137
+ 1. **No time estimates** - Don't include hours/days/weeks
201
138
  3. **Be specific about files** - Exact paths, not "the config file"
202
139
  4. **Keep phases small** - 1-3 files per phase is ideal
203
140
  5. **Document dependencies clearly** - Prevents blocked work
204
- 6. **Document consultations** - Maintain the Consultation Log section
205
141
 
206
142
  ## What NOT to Do
207
143
 
208
- - Don't skip consultations (they are BLOCKING)
144
+ - Don't run `consult` commands yourself (porch handles consultations)
209
145
  - Don't write code (that's for Implement phase)
210
146
  - Don't estimate time (meaningless in AI development)
211
147
  - Don't create phases that can't be independently tested
@@ -1,14 +1,10 @@
1
1
  # REVIEW Phase Prompt
2
2
 
3
- You are executing the **REVIEW** phase of the SPIDER protocol.
3
+ You are executing the **REVIEW** phase of the SPIR protocol.
4
4
 
5
5
  ## Your Goal
6
6
 
7
- Perform a comprehensive review, document lessons learned, run final consultation, and prepare for PR submission.
8
-
9
- ## CRITICAL: Final Consultation Before PR
10
-
11
- The SPIDER protocol **requires** a final consultation with GPT-5 Codex AND Gemini Pro before submitting the PR. This ensures the complete implementation is reviewed.
7
+ Perform a comprehensive review, document lessons learned, and prepare for PR submission.
12
8
 
13
9
  ## Context
14
10
 
@@ -92,7 +88,7 @@ Brief description of what was implemented.
92
88
  - [Insight 2]
93
89
 
94
90
  ### Methodology Improvements
95
- - [Suggested improvement to SPIDER protocol]
91
+ - [Suggested improvement to SPIR protocol]
96
92
  - [Suggested improvement to tooling]
97
93
 
98
94
  ## Technical Debt
@@ -118,29 +114,14 @@ Before PR:
118
114
  - [ ] No uncommitted changes: `git status`
119
115
  - [ ] Review document complete
120
116
 
121
- ### 6. MANDATORY: Final Consultation (PR-Ready Review)
117
+ ### 6. Create Pull Request
122
118
 
123
- **Before creating the PR, run final consultation:**
119
+ **IMPORTANT: Create the PR BEFORE signaling completion.** The PR must exist so that
120
+ porch consultation reviews the actual PR, and the architect can review a real PR
121
+ when the pr-ready gate fires.
124
122
 
125
123
  ```bash
126
- # Run consultations in parallel (REQUIRED)
127
- consult --model gemini --type pr-ready spec {{project_id}} &
128
- consult --model codex --type pr-ready spec {{project_id}} &
129
- wait
130
- ```
131
-
132
- - Review ALL feedback from both models
133
- - Address any final issues identified
134
- - This is the last chance to catch problems before PR
135
-
136
- ### 7. Create Pull Request
137
-
138
- Prepare PR with:
139
-
140
- **Title**: `[Spec {{project_id}}] {{title}}`
141
-
142
- **Body**:
143
- ```markdown
124
+ gh pr create --title "[Spec {{project_id}}] {{title}}" --body "$(cat <<'EOF'
144
125
  ## Summary
145
126
  [Brief description of the implementation]
146
127
 
@@ -158,37 +139,37 @@ Link: codev/specs/{{project_id}}-{{title}}.md
158
139
 
159
140
  ## Review
160
141
  Link: codev/reviews/{{project_id}}-{{title}}.md
142
+ EOF
143
+ )"
161
144
  ```
162
145
 
146
+ ### 7. Signal Completion
147
+
148
+ After the PR is created, signal completion. Porch will run 3-way consultation
149
+ (Gemini, Codex, Claude) automatically via the verify step. If reviewers request
150
+ changes, you'll be respawned with their feedback.
151
+
163
152
  ## Output
164
153
 
165
154
  - Review document at `codev/reviews/{{project_id}}-{{title}}.md`
166
155
  - Updated documentation (if needed)
167
- - Pull request ready for submission
156
+ - Pull request created and ready for review
168
157
 
169
158
  ## Signals
170
159
 
171
- Emit appropriate signals based on your progress:
172
-
173
160
  - After review document is complete:
174
161
  ```
175
162
  <signal>REVIEW_COMPLETE</signal>
176
163
  ```
177
164
 
178
- - After PR is created:
179
- ```
180
- <signal>PR_CREATED</signal>
181
- ```
182
-
183
- - When ready for Architect review:
165
+ - After PR is created — signal completion so porch runs consultation:
184
166
  ```
185
167
  <signal>PR_READY</signal>
186
168
  ```
187
169
 
188
170
  ## Important Notes
189
171
 
190
- 1. **Final consultation is MANDATORY** - Cannot skip GPT-5 + Gemini reviews before PR
191
- 2. **Be honest in lessons learned** - Future you will thank present you
172
+ 1. **Be honest in lessons learned** - Future you will thank present you
192
173
  3. **Document deviations** - They're not failures, they're learnings
193
174
  4. **Update methodology** - If you found a better way, document it
194
175
  5. **Don't skip the checklist** - It catches last-minute issues
@@ -196,7 +177,7 @@ Emit appropriate signals based on your progress:
196
177
 
197
178
  ## What NOT to Do
198
179
 
199
- - Don't skip final consultation (it's BLOCKING)
180
+ - Don't run `consult` commands yourself (porch handles consultations)
200
181
  - Don't skip lessons learned ("nothing to report")
201
182
  - Don't merge your own PR (Architect handles integration)
202
183
  - Don't leave uncommitted changes
@@ -1,6 +1,6 @@
1
1
  # SPECIFY Phase Prompt
2
2
 
3
- You are executing the **SPECIFY** phase of the SPIDER protocol.
3
+ You are executing the **SPECIFY** phase of the SPIR protocol.
4
4
 
5
5
  ## Your Goal
6
6
 
@@ -13,13 +13,25 @@ Create a comprehensive specification document that thoroughly explores the probl
13
13
  - **Current State**: {{current_state}}
14
14
  - **Spec File**: `codev/specs/{{project_id}}-{{title}}.md`
15
15
 
16
- ## CRITICAL: Multi-Agent Consultation is MANDATORY
16
+ ## Process
17
17
 
18
- The SPIDER protocol **requires** consultation with GPT-5 Codex AND Gemini Pro at specific checkpoints. This is BLOCKING - you cannot proceed without completing consultations.
18
+ ### 0. Check for Existing Spec (ALWAYS DO THIS FIRST)
19
19
 
20
- ## Process
20
+ **Before asking ANY questions**, check if a spec already exists:
21
+
22
+ ```bash
23
+ ls codev/specs/{{project_id}}-*.md
24
+ ```
25
+
26
+ **If a spec file exists:**
27
+ 1. READ IT COMPLETELY - the answers to your questions are already there
28
+ 2. The spec author has already made the key decisions
29
+ 3. DO NOT ask clarifying questions - proceed directly to consultation
30
+ 4. Your job is to REVIEW and IMPROVE the existing spec, not rewrite it from scratch
31
+
32
+ **If no spec exists:** Proceed to Step 1 below.
21
33
 
22
- ### 1. Clarifying Questions (ALWAYS START HERE)
34
+ ### 1. Clarifying Questions (ONLY IF NO SPEC EXISTS)
23
35
 
24
36
  Before writing anything, ask clarifying questions to understand:
25
37
  - What problem is being solved?
@@ -28,7 +40,9 @@ Before writing anything, ask clarifying questions to understand:
28
40
  - What's in scope vs out of scope?
29
41
  - What does success look like?
30
42
 
31
- If this is your first iteration, ask these questions now and wait for answers.
43
+ If this is your first iteration AND no spec exists, ask these questions now and wait for answers.
44
+
45
+ **CRITICAL**: Do NOT ask questions if a spec already exists. The spec IS the answer.
32
46
 
33
47
  **On subsequent iterations**: If questions were already answered, acknowledge the answers and proceed to the next step.
34
48
 
@@ -62,45 +76,9 @@ Define measurable acceptance criteria:
62
76
  - Non-functional requirements (performance, security)
63
77
  - Test scenarios
64
78
 
65
- ### 6. MANDATORY: First Consultation (After Draft)
66
-
67
- After completing the initial spec draft:
68
-
69
- ```bash
70
- # Run consultations in parallel (REQUIRED)
71
- consult --model gemini spec {{project_id}} &
72
- consult --model codex spec {{project_id}} &
73
- wait
74
- ```
75
-
76
- - Review ALL feedback from both models
77
- - Update the spec with incorporated feedback
78
- - Add a **Consultation Log** section documenting:
79
- - Key feedback received
80
- - Changes made in response
81
- - Any feedback intentionally not incorporated (with reasoning)
79
+ ### 6. Finalize
82
80
 
83
- ### 7. Human Review
84
-
85
- After consultation feedback is incorporated:
86
- - Present the spec for human review
87
- - Wait for approval or change requests
88
- - If changes requested, make them and proceed to Step 8
89
-
90
- ### 8. MANDATORY: Second Consultation (After Human Feedback)
91
-
92
- After incorporating human feedback:
93
-
94
- ```bash
95
- # Run consultations again (REQUIRED)
96
- consult --model gemini spec {{project_id}} &
97
- consult --model codex spec {{project_id}} &
98
- wait
99
- ```
100
-
101
- - Update Consultation Log with new feedback
102
- - Incorporate changes
103
- - Prepare final spec for approval
81
+ After completing the spec draft, signal completion. Porch will run 3-way consultation (Gemini, Codex, Claude) automatically via the verify step. If reviewers request changes, you'll be respawned with their feedback.
104
82
 
105
83
  ## Output
106
84
 
@@ -111,8 +89,6 @@ Create or update the specification file at `codev/specs/{{project_id}}-{{title}}
111
89
  - Plan: `codev/plans/{{project_id}}-{{title}}.md`
112
90
  - Review: `codev/reviews/{{project_id}}-{{title}}.md`
113
91
 
114
- Include a **Consultation Log** section in the spec documenting all consultation feedback.
115
-
116
92
  ## Signals
117
93
 
118
94
  Emit appropriate signals based on your progress:
@@ -134,15 +110,6 @@ Emit appropriate signals based on your progress:
134
110
  <signal>SPEC_DRAFTED</signal>
135
111
  ```
136
112
 
137
- - After incorporating consultation feedback:
138
- ```
139
- <signal>CONSULTATION_INCORPORATED</signal>
140
- ```
141
-
142
- - After final spec is ready for human approval:
143
- ```
144
- <signal>SPEC_READY_FOR_APPROVAL</signal>
145
- ```
146
113
 
147
114
  ## Commit Cadence
148
115
 
@@ -159,15 +126,13 @@ git add codev/specs/{{project_id}}-{{title}}.md
159
126
 
160
127
  ## Important Notes
161
128
 
162
- 1. **Consultation is MANDATORY** - Cannot skip GPT-5 + Gemini reviews
163
- 2. **Be thorough** - A good spec prevents implementation problems
129
+ 1. **Be thorough** - A good spec prevents implementation problems
164
130
  3. **Be specific** - Vague specs lead to wrong implementations
165
131
  4. **Include examples** - Concrete examples clarify intent
166
- 5. **Document consultations** - Maintain the Consultation Log section
167
132
 
168
133
  ## What NOT to Do
169
134
 
170
- - Don't skip consultations (they are BLOCKING)
135
+ - Don't run `consult` commands yourself (porch handles consultations)
171
136
  - Don't include implementation details (that's for the Plan phase)
172
137
  - Don't estimate time (AI makes time estimates meaningless)
173
138
  - Don't start coding (you're in Specify, not Implement)
@@ -1,8 +1,14 @@
1
1
  {
2
2
  "$schema": "../../protocol-schema.json",
3
- "name": "spider",
4
- "version": "2.0.0",
5
- "description": "Specification-driven development with build-verify cycles",
3
+ "name": "spir",
4
+ "alias": "spider",
5
+ "version": "2.2.0",
6
+ "description": "SPIR: Specify → Plan → Implement → Review with build-verify cycles",
7
+ "input": {
8
+ "type": "spec",
9
+ "required": false,
10
+ "default_for": ["--project", "-p"]
11
+ },
6
12
  "phases": [
7
13
  {
8
14
  "id": "specify",
@@ -18,7 +24,7 @@
18
24
  "models": ["gemini", "codex", "claude"],
19
25
  "parallel": true
20
26
  },
21
- "max_iterations": 3,
27
+ "max_iterations": 7,
22
28
  "on_complete": {
23
29
  "commit": true,
24
30
  "push": true
@@ -40,14 +46,15 @@
40
46
  "models": ["gemini", "codex", "claude"],
41
47
  "parallel": true
42
48
  },
43
- "max_iterations": 3,
49
+ "max_iterations": 7,
44
50
  "on_complete": {
45
51
  "commit": true,
46
52
  "push": true
47
53
  },
48
54
  "checks": {
49
55
  "plan_exists": "test -f codev/plans/${PROJECT_ID}-*.md",
50
- "has_phases_json": "grep -q '\"phases\":' codev/plans/${PROJECT_ID}-*.md"
56
+ "has_phases_json": "grep -q '\"phases\":' codev/plans/${PROJECT_ID}-*.md",
57
+ "min_two_phases": "grep -o '\"id\": *\"[^\"]*\"' codev/plans/${PROJECT_ID}-*.md | wc -l | awk '$1 >= 2 {exit 0} {exit 1}'"
51
58
  },
52
59
  "gate": "plan-approval",
53
60
  "next": "implement"
@@ -66,7 +73,7 @@
66
73
  "models": ["gemini", "codex", "claude"],
67
74
  "parallel": true
68
75
  },
69
- "max_iterations": 3,
76
+ "max_iterations": 7,
70
77
  "on_complete": {
71
78
  "commit": true,
72
79
  "push": true
@@ -78,7 +85,8 @@
78
85
  "max_retries": 2
79
86
  },
80
87
  "tests": {
81
- "command": "npm test",
88
+ "command": "npm test -- --exclude='**/e2e/**'",
89
+ "description": "Unit tests only - e2e tests run in review phase",
82
90
  "on_fail": "retry",
83
91
  "max_retries": 2
84
92
  }
@@ -102,11 +110,22 @@
102
110
  "models": ["gemini", "codex", "claude"],
103
111
  "parallel": true
104
112
  },
105
- "max_iterations": 3,
113
+ "max_iterations": 7,
106
114
  "on_complete": {
107
115
  "commit": true,
108
116
  "push": true
109
117
  },
118
+ "checks": {
119
+ "pr_exists": {
120
+ "command": "gh pr list --head \"$(git branch --show-current)\" --json number --jq 'length' | grep -q '^[1-9]'",
121
+ "description": "PR must be created before signaling completion"
122
+ },
123
+ "e2e_tests": {
124
+ "command": "npm run test:e2e 2>&1 || echo 'e2e tests skipped (not configured)'",
125
+ "description": "Full e2e test suite - only runs in review phase",
126
+ "optional": true
127
+ }
128
+ },
110
129
  "gate": "pr-ready",
111
130
  "next": null
112
131
  }
@@ -127,7 +146,8 @@
127
146
  "commit_has_code": "git log -1 --name-only --pretty=format: | grep -qE '\\.(ts|tsx|js|jsx|py|go|rs)$'"
128
147
  },
129
148
  "defaults": {
130
- "max_iterations": 3,
149
+ "mode": "strict",
150
+ "max_iterations": 7,
131
151
  "verify": {
132
152
  "models": ["gemini", "codex", "claude"],
133
153
  "parallel": true