@cluesmith/codev 2.0.0-rc.6 → 2.0.0-rc.61

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 (377) hide show
  1. package/bin/af.js +2 -2
  2. package/bin/consult.js +1 -1
  3. package/bin/porch.js +6 -35
  4. package/dashboard/dist/assets/index-CXloFYpB.css +32 -0
  5. package/dashboard/dist/assets/index-Ca2fjOJf.js +131 -0
  6. package/dashboard/dist/assets/index-Ca2fjOJf.js.map +1 -0
  7. package/dashboard/dist/index.html +14 -0
  8. package/dist/agent-farm/cli.d.ts.map +1 -1
  9. package/dist/agent-farm/cli.js +94 -65
  10. package/dist/agent-farm/cli.js.map +1 -1
  11. package/dist/agent-farm/commands/architect.d.ts.map +1 -1
  12. package/dist/agent-farm/commands/architect.js +13 -6
  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 +202 -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 +30 -3
  20. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  21. package/dist/agent-farm/commands/consult.js +1 -1
  22. package/dist/agent-farm/commands/consult.js.map +1 -1
  23. package/dist/agent-farm/commands/index.d.ts +2 -2
  24. package/dist/agent-farm/commands/index.d.ts.map +1 -1
  25. package/dist/agent-farm/commands/index.js +2 -2
  26. package/dist/agent-farm/commands/index.js.map +1 -1
  27. package/dist/agent-farm/commands/open.d.ts +4 -2
  28. package/dist/agent-farm/commands/open.d.ts.map +1 -1
  29. package/dist/agent-farm/commands/open.js +34 -70
  30. package/dist/agent-farm/commands/open.js.map +1 -1
  31. package/dist/agent-farm/commands/send.d.ts.map +1 -1
  32. package/dist/agent-farm/commands/send.js +55 -17
  33. package/dist/agent-farm/commands/send.js.map +1 -1
  34. package/dist/agent-farm/commands/shell.d.ts +15 -0
  35. package/dist/agent-farm/commands/shell.d.ts.map +1 -0
  36. package/dist/agent-farm/commands/shell.js +61 -0
  37. package/dist/agent-farm/commands/shell.js.map +1 -0
  38. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  39. package/dist/agent-farm/commands/spawn.js +503 -226
  40. package/dist/agent-farm/commands/spawn.js.map +1 -1
  41. package/dist/agent-farm/commands/start.d.ts +3 -0
  42. package/dist/agent-farm/commands/start.d.ts.map +1 -1
  43. package/dist/agent-farm/commands/start.js +58 -265
  44. package/dist/agent-farm/commands/start.js.map +1 -1
  45. package/dist/agent-farm/commands/status.d.ts +2 -0
  46. package/dist/agent-farm/commands/status.d.ts.map +1 -1
  47. package/dist/agent-farm/commands/status.js +61 -3
  48. package/dist/agent-farm/commands/status.js.map +1 -1
  49. package/dist/agent-farm/commands/stop.d.ts +6 -0
  50. package/dist/agent-farm/commands/stop.d.ts.map +1 -1
  51. package/dist/agent-farm/commands/stop.js +116 -12
  52. package/dist/agent-farm/commands/stop.js.map +1 -1
  53. package/dist/agent-farm/commands/tower.d.ts +9 -0
  54. package/dist/agent-farm/commands/tower.d.ts.map +1 -1
  55. package/dist/agent-farm/commands/tower.js +59 -19
  56. package/dist/agent-farm/commands/tower.js.map +1 -1
  57. package/dist/agent-farm/db/index.d.ts.map +1 -1
  58. package/dist/agent-farm/db/index.js +124 -0
  59. package/dist/agent-farm/db/index.js.map +1 -1
  60. package/dist/agent-farm/db/schema.d.ts +2 -2
  61. package/dist/agent-farm/db/schema.d.ts.map +1 -1
  62. package/dist/agent-farm/db/schema.js +26 -5
  63. package/dist/agent-farm/db/schema.js.map +1 -1
  64. package/dist/agent-farm/db/types.d.ts +3 -0
  65. package/dist/agent-farm/db/types.d.ts.map +1 -1
  66. package/dist/agent-farm/db/types.js +3 -0
  67. package/dist/agent-farm/db/types.js.map +1 -1
  68. package/dist/agent-farm/hq-connector.d.ts +2 -6
  69. package/dist/agent-farm/hq-connector.d.ts.map +1 -1
  70. package/dist/agent-farm/hq-connector.js +2 -17
  71. package/dist/agent-farm/hq-connector.js.map +1 -1
  72. package/dist/agent-farm/lib/tower-client.d.ts +157 -0
  73. package/dist/agent-farm/lib/tower-client.d.ts.map +1 -0
  74. package/dist/agent-farm/lib/tower-client.js +223 -0
  75. package/dist/agent-farm/lib/tower-client.js.map +1 -0
  76. package/dist/agent-farm/servers/tower-server.js +2340 -109
  77. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  78. package/dist/agent-farm/state.d.ts +4 -10
  79. package/dist/agent-farm/state.d.ts.map +1 -1
  80. package/dist/agent-farm/state.js +30 -31
  81. package/dist/agent-farm/state.js.map +1 -1
  82. package/dist/agent-farm/types.d.ts +48 -1
  83. package/dist/agent-farm/types.d.ts.map +1 -1
  84. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  85. package/dist/agent-farm/utils/config.js +13 -14
  86. package/dist/agent-farm/utils/config.js.map +1 -1
  87. package/dist/agent-farm/utils/deps.d.ts.map +1 -1
  88. package/dist/agent-farm/utils/deps.js +0 -16
  89. package/dist/agent-farm/utils/deps.js.map +1 -1
  90. package/dist/agent-farm/utils/notifications.d.ts +30 -0
  91. package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
  92. package/dist/agent-farm/utils/notifications.js +121 -0
  93. package/dist/agent-farm/utils/notifications.js.map +1 -0
  94. package/dist/agent-farm/utils/port-registry.d.ts +0 -1
  95. package/dist/agent-farm/utils/port-registry.d.ts.map +1 -1
  96. package/dist/agent-farm/utils/port-registry.js +1 -1
  97. package/dist/agent-farm/utils/port-registry.js.map +1 -1
  98. package/dist/agent-farm/utils/server-utils.d.ts +4 -4
  99. package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
  100. package/dist/agent-farm/utils/server-utils.js +4 -15
  101. package/dist/agent-farm/utils/server-utils.js.map +1 -1
  102. package/dist/agent-farm/utils/shell.d.ts +9 -22
  103. package/dist/agent-farm/utils/shell.d.ts.map +1 -1
  104. package/dist/agent-farm/utils/shell.js +34 -34
  105. package/dist/agent-farm/utils/shell.js.map +1 -1
  106. package/dist/agent-farm/utils/terminal-ports.d.ts +1 -1
  107. package/dist/agent-farm/utils/terminal-ports.js +1 -1
  108. package/dist/cli.d.ts.map +1 -1
  109. package/dist/cli.js +9 -54
  110. package/dist/cli.js.map +1 -1
  111. package/dist/commands/adopt.d.ts.map +1 -1
  112. package/dist/commands/adopt.js +49 -4
  113. package/dist/commands/adopt.js.map +1 -1
  114. package/dist/commands/consult/index.d.ts +2 -0
  115. package/dist/commands/consult/index.d.ts.map +1 -1
  116. package/dist/commands/consult/index.js +103 -6
  117. package/dist/commands/consult/index.js.map +1 -1
  118. package/dist/commands/doctor.d.ts.map +1 -1
  119. package/dist/commands/doctor.js +0 -15
  120. package/dist/commands/doctor.js.map +1 -1
  121. package/dist/commands/init.d.ts.map +1 -1
  122. package/dist/commands/init.js +41 -2
  123. package/dist/commands/init.js.map +1 -1
  124. package/dist/commands/porch/build-counter.d.ts +5 -0
  125. package/dist/commands/porch/build-counter.d.ts.map +1 -0
  126. package/dist/commands/porch/build-counter.js +5 -0
  127. package/dist/commands/porch/build-counter.js.map +1 -0
  128. package/dist/commands/porch/checks.d.ts +17 -29
  129. package/dist/commands/porch/checks.d.ts.map +1 -1
  130. package/dist/commands/porch/checks.js +96 -144
  131. package/dist/commands/porch/checks.js.map +1 -1
  132. package/dist/commands/porch/index.d.ts +21 -43
  133. package/dist/commands/porch/index.d.ts.map +1 -1
  134. package/dist/commands/porch/index.js +418 -1123
  135. package/dist/commands/porch/index.js.map +1 -1
  136. package/dist/commands/porch/next.d.ts +22 -0
  137. package/dist/commands/porch/next.d.ts.map +1 -0
  138. package/dist/commands/porch/next.js +481 -0
  139. package/dist/commands/porch/next.js.map +1 -0
  140. package/dist/commands/porch/plan.d.ts +70 -0
  141. package/dist/commands/porch/plan.d.ts.map +1 -0
  142. package/dist/commands/porch/plan.js +190 -0
  143. package/dist/commands/porch/plan.js.map +1 -0
  144. package/dist/commands/porch/prompts.d.ts +19 -0
  145. package/dist/commands/porch/prompts.d.ts.map +1 -0
  146. package/dist/commands/porch/prompts.js +255 -0
  147. package/dist/commands/porch/prompts.js.map +1 -0
  148. package/dist/commands/porch/protocol.d.ts +59 -0
  149. package/dist/commands/porch/protocol.d.ts.map +1 -0
  150. package/dist/commands/porch/protocol.js +294 -0
  151. package/dist/commands/porch/protocol.js.map +1 -0
  152. package/dist/commands/porch/state.d.ts +23 -112
  153. package/dist/commands/porch/state.d.ts.map +1 -1
  154. package/dist/commands/porch/state.js +81 -699
  155. package/dist/commands/porch/state.js.map +1 -1
  156. package/dist/commands/porch/types.d.ts +99 -164
  157. package/dist/commands/porch/types.d.ts.map +1 -1
  158. package/dist/commands/porch/types.js +2 -1
  159. package/dist/commands/porch/types.js.map +1 -1
  160. package/dist/commands/porch/verdict.d.ts +31 -0
  161. package/dist/commands/porch/verdict.d.ts.map +1 -0
  162. package/dist/commands/porch/verdict.js +59 -0
  163. package/dist/commands/porch/verdict.js.map +1 -0
  164. package/dist/commands/update.d.ts.map +1 -1
  165. package/dist/commands/update.js +31 -0
  166. package/dist/commands/update.js.map +1 -1
  167. package/dist/lib/scaffold.d.ts +37 -0
  168. package/dist/lib/scaffold.d.ts.map +1 -1
  169. package/dist/lib/scaffold.js +114 -0
  170. package/dist/lib/scaffold.js.map +1 -1
  171. package/dist/terminal/index.d.ts +8 -0
  172. package/dist/terminal/index.d.ts.map +1 -0
  173. package/dist/terminal/index.js +5 -0
  174. package/dist/terminal/index.js.map +1 -0
  175. package/dist/terminal/pty-manager.d.ts +60 -0
  176. package/dist/terminal/pty-manager.d.ts.map +1 -0
  177. package/dist/terminal/pty-manager.js +334 -0
  178. package/dist/terminal/pty-manager.js.map +1 -0
  179. package/dist/terminal/pty-session.d.ts +79 -0
  180. package/dist/terminal/pty-session.d.ts.map +1 -0
  181. package/dist/terminal/pty-session.js +215 -0
  182. package/dist/terminal/pty-session.js.map +1 -0
  183. package/dist/terminal/ring-buffer.d.ts +27 -0
  184. package/dist/terminal/ring-buffer.d.ts.map +1 -0
  185. package/dist/terminal/ring-buffer.js +74 -0
  186. package/dist/terminal/ring-buffer.js.map +1 -0
  187. package/dist/terminal/ws-protocol.d.ts +27 -0
  188. package/dist/terminal/ws-protocol.d.ts.map +1 -0
  189. package/dist/terminal/ws-protocol.js +44 -0
  190. package/dist/terminal/ws-protocol.js.map +1 -0
  191. package/package.json +18 -5
  192. package/skeleton/.claude/skills/af/SKILL.md +74 -0
  193. package/skeleton/.claude/skills/codev/SKILL.md +41 -0
  194. package/skeleton/.claude/skills/consult/SKILL.md +81 -0
  195. package/skeleton/.claude/skills/generate-image/SKILL.md +56 -0
  196. package/skeleton/DEPENDENCIES.md +3 -29
  197. package/skeleton/builders.md +1 -1
  198. package/skeleton/consult-types/impl-review.md +9 -0
  199. package/skeleton/porch/prompts/defend.md +1 -1
  200. package/skeleton/porch/prompts/evaluate.md +2 -2
  201. package/skeleton/porch/prompts/implement.md +1 -1
  202. package/skeleton/porch/prompts/plan.md +1 -1
  203. package/skeleton/porch/prompts/review.md +4 -4
  204. package/skeleton/porch/prompts/specify.md +1 -1
  205. package/skeleton/porch/prompts/understand.md +2 -2
  206. package/skeleton/protocol-schema.json +282 -0
  207. package/skeleton/protocols/bugfix/builder-prompt.md +54 -0
  208. package/skeleton/protocols/bugfix/prompts/fix.md +77 -0
  209. package/skeleton/protocols/bugfix/prompts/investigate.md +77 -0
  210. package/skeleton/protocols/bugfix/prompts/pr.md +61 -0
  211. package/skeleton/protocols/bugfix/protocol.json +19 -2
  212. package/skeleton/protocols/experiment/builder-prompt.md +52 -0
  213. package/skeleton/protocols/experiment/protocol.json +101 -0
  214. package/skeleton/protocols/experiment/protocol.md +3 -3
  215. package/skeleton/protocols/experiment/templates/notes.md +1 -1
  216. package/skeleton/protocols/maintain/builder-prompt.md +46 -0
  217. package/skeleton/protocols/maintain/prompts/audit.md +111 -0
  218. package/skeleton/protocols/maintain/prompts/clean.md +91 -0
  219. package/skeleton/protocols/maintain/prompts/sync.md +113 -0
  220. package/skeleton/protocols/maintain/prompts/verify.md +110 -0
  221. package/skeleton/protocols/maintain/protocol.json +141 -0
  222. package/skeleton/protocols/maintain/protocol.md +14 -8
  223. package/skeleton/protocols/protocol-schema.json +54 -1
  224. package/skeleton/protocols/spir/builder-prompt.md +59 -0
  225. package/skeleton/protocols/spir/prompts/implement.md +208 -0
  226. package/skeleton/protocols/{spider → spir}/prompts/plan.md +6 -70
  227. package/skeleton/protocols/{spider → spir}/prompts/review.md +7 -25
  228. package/skeleton/protocols/{spider → spir}/prompts/specify.md +33 -61
  229. package/skeleton/protocols/spir/protocol.json +152 -0
  230. package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
  231. package/skeleton/protocols/{spider → spir}/templates/plan.md +14 -0
  232. package/skeleton/protocols/{spider → spir}/templates/review.md +1 -1
  233. package/skeleton/protocols/tick/builder-prompt.md +56 -0
  234. package/skeleton/protocols/tick/protocol.json +7 -2
  235. package/skeleton/protocols/tick/protocol.md +18 -18
  236. package/skeleton/protocols/tick/templates/review.md +1 -1
  237. package/skeleton/resources/commands/agent-farm.md +25 -43
  238. package/skeleton/resources/commands/overview.md +7 -17
  239. package/skeleton/resources/workflow-reference.md +4 -4
  240. package/skeleton/roles/architect.md +152 -315
  241. package/skeleton/roles/builder.md +109 -218
  242. package/skeleton/templates/AGENTS.md +2 -2
  243. package/skeleton/templates/CLAUDE.md +2 -2
  244. package/skeleton/templates/cheatsheet.md +7 -5
  245. package/skeleton/templates/projectlist.md +1 -1
  246. package/templates/dashboard/index.html +17 -43
  247. package/templates/dashboard/js/dialogs.js +7 -7
  248. package/templates/dashboard/js/files.js +2 -2
  249. package/templates/dashboard/js/main.js +4 -4
  250. package/templates/dashboard/js/projects.js +3 -3
  251. package/templates/dashboard/js/tabs.js +1 -1
  252. package/templates/dashboard/js/utils.js +22 -87
  253. package/templates/open.html +26 -0
  254. package/templates/tower.html +542 -27
  255. package/dist/agent-farm/commands/kickoff.d.ts +0 -19
  256. package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
  257. package/dist/agent-farm/commands/kickoff.js +0 -331
  258. package/dist/agent-farm/commands/kickoff.js.map +0 -1
  259. package/dist/agent-farm/commands/rename.d.ts +0 -13
  260. package/dist/agent-farm/commands/rename.d.ts.map +0 -1
  261. package/dist/agent-farm/commands/rename.js +0 -33
  262. package/dist/agent-farm/commands/rename.js.map +0 -1
  263. package/dist/agent-farm/commands/tutorial.d.ts +0 -10
  264. package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
  265. package/dist/agent-farm/commands/tutorial.js +0 -49
  266. package/dist/agent-farm/commands/tutorial.js.map +0 -1
  267. package/dist/agent-farm/commands/util.d.ts +0 -15
  268. package/dist/agent-farm/commands/util.d.ts.map +0 -1
  269. package/dist/agent-farm/commands/util.js +0 -108
  270. package/dist/agent-farm/commands/util.js.map +0 -1
  271. package/dist/agent-farm/servers/dashboard-server.d.ts +0 -7
  272. package/dist/agent-farm/servers/dashboard-server.d.ts.map +0 -1
  273. package/dist/agent-farm/servers/dashboard-server.js +0 -1872
  274. package/dist/agent-farm/servers/dashboard-server.js.map +0 -1
  275. package/dist/agent-farm/servers/open-server.d.ts +0 -7
  276. package/dist/agent-farm/servers/open-server.d.ts.map +0 -1
  277. package/dist/agent-farm/servers/open-server.js +0 -315
  278. package/dist/agent-farm/servers/open-server.js.map +0 -1
  279. package/dist/agent-farm/tutorial/index.d.ts +0 -8
  280. package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
  281. package/dist/agent-farm/tutorial/index.js +0 -8
  282. package/dist/agent-farm/tutorial/index.js.map +0 -1
  283. package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
  284. package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
  285. package/dist/agent-farm/tutorial/prompts.js +0 -147
  286. package/dist/agent-farm/tutorial/prompts.js.map +0 -1
  287. package/dist/agent-farm/tutorial/runner.d.ts +0 -52
  288. package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
  289. package/dist/agent-farm/tutorial/runner.js +0 -204
  290. package/dist/agent-farm/tutorial/runner.js.map +0 -1
  291. package/dist/agent-farm/tutorial/state.d.ts +0 -26
  292. package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
  293. package/dist/agent-farm/tutorial/state.js +0 -89
  294. package/dist/agent-farm/tutorial/state.js.map +0 -1
  295. package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
  296. package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
  297. package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
  298. package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
  299. package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
  300. package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
  301. package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
  302. package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
  303. package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
  304. package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
  305. package/dist/agent-farm/tutorial/steps/index.js +0 -10
  306. package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
  307. package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
  308. package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
  309. package/dist/agent-farm/tutorial/steps/planning.js +0 -143
  310. package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
  311. package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
  312. package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
  313. package/dist/agent-farm/tutorial/steps/review.js +0 -78
  314. package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
  315. package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
  316. package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
  317. package/dist/agent-farm/tutorial/steps/setup.js +0 -126
  318. package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
  319. package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
  320. package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
  321. package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
  322. package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
  323. package/dist/commands/pcheck/cache.d.ts +0 -48
  324. package/dist/commands/pcheck/cache.d.ts.map +0 -1
  325. package/dist/commands/pcheck/cache.js +0 -170
  326. package/dist/commands/pcheck/cache.js.map +0 -1
  327. package/dist/commands/pcheck/evaluator.d.ts +0 -15
  328. package/dist/commands/pcheck/evaluator.d.ts.map +0 -1
  329. package/dist/commands/pcheck/evaluator.js +0 -246
  330. package/dist/commands/pcheck/evaluator.js.map +0 -1
  331. package/dist/commands/pcheck/index.d.ts +0 -12
  332. package/dist/commands/pcheck/index.d.ts.map +0 -1
  333. package/dist/commands/pcheck/index.js +0 -249
  334. package/dist/commands/pcheck/index.js.map +0 -1
  335. package/dist/commands/pcheck/parser.d.ts +0 -39
  336. package/dist/commands/pcheck/parser.d.ts.map +0 -1
  337. package/dist/commands/pcheck/parser.js +0 -155
  338. package/dist/commands/pcheck/parser.js.map +0 -1
  339. package/dist/commands/pcheck/types.d.ts +0 -82
  340. package/dist/commands/pcheck/types.d.ts.map +0 -1
  341. package/dist/commands/pcheck/types.js +0 -5
  342. package/dist/commands/pcheck/types.js.map +0 -1
  343. package/dist/commands/porch/consultation.d.ts +0 -56
  344. package/dist/commands/porch/consultation.d.ts.map +0 -1
  345. package/dist/commands/porch/consultation.js +0 -330
  346. package/dist/commands/porch/consultation.js.map +0 -1
  347. package/dist/commands/porch/notifications.d.ts +0 -99
  348. package/dist/commands/porch/notifications.d.ts.map +0 -1
  349. package/dist/commands/porch/notifications.js +0 -223
  350. package/dist/commands/porch/notifications.js.map +0 -1
  351. package/dist/commands/porch/plan-parser.d.ts +0 -38
  352. package/dist/commands/porch/plan-parser.d.ts.map +0 -1
  353. package/dist/commands/porch/plan-parser.js +0 -166
  354. package/dist/commands/porch/plan-parser.js.map +0 -1
  355. package/dist/commands/porch/protocol-loader.d.ts +0 -46
  356. package/dist/commands/porch/protocol-loader.d.ts.map +0 -1
  357. package/dist/commands/porch/protocol-loader.js +0 -253
  358. package/dist/commands/porch/protocol-loader.js.map +0 -1
  359. package/dist/commands/porch/signal-parser.d.ts +0 -88
  360. package/dist/commands/porch/signal-parser.d.ts.map +0 -1
  361. package/dist/commands/porch/signal-parser.js +0 -148
  362. package/dist/commands/porch/signal-parser.js.map +0 -1
  363. package/dist/commands/tower.d.ts +0 -16
  364. package/dist/commands/tower.d.ts.map +0 -1
  365. package/dist/commands/tower.js +0 -21
  366. package/dist/commands/tower.js.map +0 -1
  367. package/skeleton/config.json +0 -7
  368. package/skeleton/porch/protocols/bugfix.json +0 -85
  369. package/skeleton/porch/protocols/spider.json +0 -135
  370. package/skeleton/porch/protocols/tick.json +0 -76
  371. package/skeleton/protocols/spider/prompts/defend.md +0 -215
  372. package/skeleton/protocols/spider/prompts/evaluate.md +0 -241
  373. package/skeleton/protocols/spider/prompts/implement.md +0 -149
  374. package/skeleton/protocols/spider/protocol.json +0 -210
  375. package/templates/dashboard/css/activity.css +0 -151
  376. package/templates/dashboard/js/activity.js +0 -112
  377. /package/skeleton/protocols/{spider → spir}/templates/spec.md +0 -0
@@ -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,22 +114,9 @@ Before PR:
118
114
  - [ ] No uncommitted changes: `git status`
119
115
  - [ ] Review document complete
120
116
 
121
- ### 6. MANDATORY: Final Consultation (PR-Ready Review)
122
-
123
- **Before creating the PR, run final consultation:**
124
-
125
- ```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
117
+ ### 6. Create Pull Request
135
118
 
136
- ### 7. Create Pull Request
119
+ After the review document is complete, 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.
137
120
 
138
121
  Prepare PR with:
139
122
 
@@ -187,8 +170,7 @@ Emit appropriate signals based on your progress:
187
170
 
188
171
  ## Important Notes
189
172
 
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
173
+ 1. **Be honest in lessons learned** - Future you will thank present you
192
174
  3. **Document deviations** - They're not failures, they're learnings
193
175
  4. **Update methodology** - If you found a better way, document it
194
176
  5. **Don't skip the checklist** - It catches last-minute issues
@@ -196,7 +178,7 @@ Emit appropriate signals based on your progress:
196
178
 
197
179
  ## What NOT to Do
198
180
 
199
- - Don't skip final consultation (it's BLOCKING)
181
+ - Don't run `consult` commands yourself (porch handles consultations)
200
182
  - Don't skip lessons learned ("nothing to report")
201
183
  - Don't merge your own PR (Architect handles integration)
202
184
  - 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)
82
-
83
- ### 7. Human Review
79
+ ### 6. Finalize
84
80
 
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,31 +89,27 @@ 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:
119
95
 
120
- - When waiting for clarifying question answers:
96
+ - When waiting for clarifying question answers, **include your questions in the signal**:
121
97
  ```
122
- <signal>AWAITING_INPUT</signal>
98
+ <signal type=AWAITING_INPUT>
99
+ Please answer these questions:
100
+ 1. What should the primary use case be - internal tooling or customer-facing?
101
+ 2. What are the key constraints we should consider?
102
+ 3. Who are the main stakeholders?
103
+ </signal>
123
104
  ```
124
105
 
106
+ The content inside the signal tag is displayed prominently to the user.
107
+
125
108
  - After completing the initial spec draft:
126
109
  ```
127
110
  <signal>SPEC_DRAFTED</signal>
128
111
  ```
129
112
 
130
- - After incorporating consultation feedback:
131
- ```
132
- <signal>CONSULTATION_INCORPORATED</signal>
133
- ```
134
-
135
- - After final spec is ready for human approval:
136
- ```
137
- <signal>SPEC_READY_FOR_APPROVAL</signal>
138
- ```
139
113
 
140
114
  ## Commit Cadence
141
115
 
@@ -152,15 +126,13 @@ git add codev/specs/{{project_id}}-{{title}}.md
152
126
 
153
127
  ## Important Notes
154
128
 
155
- 1. **Consultation is MANDATORY** - Cannot skip GPT-5 + Gemini reviews
156
- 2. **Be thorough** - A good spec prevents implementation problems
129
+ 1. **Be thorough** - A good spec prevents implementation problems
157
130
  3. **Be specific** - Vague specs lead to wrong implementations
158
131
  4. **Include examples** - Concrete examples clarify intent
159
- 5. **Document consultations** - Maintain the Consultation Log section
160
132
 
161
133
  ## What NOT to Do
162
134
 
163
- - Don't skip consultations (they are BLOCKING)
135
+ - Don't run `consult` commands yourself (porch handles consultations)
164
136
  - Don't include implementation details (that's for the Plan phase)
165
137
  - Don't estimate time (AI makes time estimates meaningless)
166
138
  - Don't start coding (you're in Specify, not Implement)
@@ -0,0 +1,152 @@
1
+ {
2
+ "$schema": "../../protocol-schema.json",
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
+ },
12
+ "phases": [
13
+ {
14
+ "id": "specify",
15
+ "name": "Specify",
16
+ "description": "Write specification with 3-way review",
17
+ "type": "build_verify",
18
+ "build": {
19
+ "prompt": "specify.md",
20
+ "artifact": "codev/specs/${PROJECT_ID}-*.md"
21
+ },
22
+ "verify": {
23
+ "type": "spec-review",
24
+ "models": ["gemini", "codex", "claude"],
25
+ "parallel": true
26
+ },
27
+ "max_iterations": 7,
28
+ "on_complete": {
29
+ "commit": true,
30
+ "push": true
31
+ },
32
+ "gate": "spec-approval",
33
+ "next": "plan"
34
+ },
35
+ {
36
+ "id": "plan",
37
+ "name": "Plan",
38
+ "description": "Write implementation plan with 3-way review",
39
+ "type": "build_verify",
40
+ "build": {
41
+ "prompt": "plan.md",
42
+ "artifact": "codev/plans/${PROJECT_ID}-*.md"
43
+ },
44
+ "verify": {
45
+ "type": "plan-review",
46
+ "models": ["gemini", "codex", "claude"],
47
+ "parallel": true
48
+ },
49
+ "max_iterations": 7,
50
+ "on_complete": {
51
+ "commit": true,
52
+ "push": true
53
+ },
54
+ "checks": {
55
+ "plan_exists": "test -f 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}'"
58
+ },
59
+ "gate": "plan-approval",
60
+ "next": "implement"
61
+ },
62
+ {
63
+ "id": "implement",
64
+ "name": "Implement",
65
+ "description": "Implement code with 3-way review per plan phase",
66
+ "type": "per_plan_phase",
67
+ "build": {
68
+ "prompt": "implement.md",
69
+ "artifact": "src/**/*.{ts,tsx,js,jsx}"
70
+ },
71
+ "verify": {
72
+ "type": "impl-review",
73
+ "models": ["gemini", "codex", "claude"],
74
+ "parallel": true
75
+ },
76
+ "max_iterations": 7,
77
+ "on_complete": {
78
+ "commit": true,
79
+ "push": true
80
+ },
81
+ "checks": {
82
+ "build": {
83
+ "command": "npm run build",
84
+ "on_fail": "retry",
85
+ "max_retries": 2
86
+ },
87
+ "tests": {
88
+ "command": "npm test -- --exclude='**/e2e/**'",
89
+ "description": "Unit tests only - e2e tests run in review phase",
90
+ "on_fail": "retry",
91
+ "max_retries": 2
92
+ }
93
+ },
94
+ "transition": {
95
+ "on_complete": "implement",
96
+ "on_all_phases_complete": "review"
97
+ }
98
+ },
99
+ {
100
+ "id": "review",
101
+ "name": "Review",
102
+ "description": "Final review and PR with 3-way review",
103
+ "type": "build_verify",
104
+ "build": {
105
+ "prompt": "review.md",
106
+ "artifact": "codev/reviews/${PROJECT_ID}-*.md"
107
+ },
108
+ "verify": {
109
+ "type": "pr-ready",
110
+ "models": ["gemini", "codex", "claude"],
111
+ "parallel": true
112
+ },
113
+ "max_iterations": 7,
114
+ "on_complete": {
115
+ "commit": true,
116
+ "push": true
117
+ },
118
+ "checks": {
119
+ "e2e_tests": {
120
+ "command": "npm run test:e2e 2>&1 || echo 'e2e tests skipped (not configured)'",
121
+ "description": "Full e2e test suite - only runs in review phase",
122
+ "optional": true
123
+ }
124
+ },
125
+ "gate": "pr-ready",
126
+ "next": null
127
+ }
128
+ ],
129
+ "signals": {
130
+ "PHASE_COMPLETE": {
131
+ "description": "Signal current build phase is complete",
132
+ "transitions_to": "verify"
133
+ },
134
+ "BLOCKED": {
135
+ "description": "Signal implementation is blocked",
136
+ "requires": "reason"
137
+ }
138
+ },
139
+ "phase_completion": {
140
+ "build_succeeds": "npm run build 2>&1",
141
+ "tests_pass": "npm test 2>&1",
142
+ "commit_has_code": "git log -1 --name-only --pretty=format: | grep -qE '\\.(ts|tsx|js|jsx|py|go|rs)$'"
143
+ },
144
+ "defaults": {
145
+ "mode": "strict",
146
+ "max_iterations": 7,
147
+ "verify": {
148
+ "models": ["gemini", "codex", "claude"],
149
+ "parallel": true
150
+ }
151
+ }
152
+ }
@@ -1,9 +1,19 @@
1
- # SPIDER Protocol
1
+ # SPIR Protocol
2
+
3
+ > **SPIR** = **S**pecify → **P**lan → **I**mplement → **R**eview
4
+ >
5
+ > Each phase has one build-verify cycle with 3-way consultation.
2
6
 
3
7
  > **Quick Reference**: See `codev/resources/workflow-reference.md` for stage diagrams and common commands.
4
8
 
5
9
  ## Prerequisites
6
10
 
11
+ **Clean Worktree Before Spawning Builders**:
12
+ - All specs, plans, and local changes **MUST be committed** before `af spawn`
13
+ - Builders work in git worktrees branched from HEAD — uncommitted files are invisible
14
+ - This includes `codev update` results, spec drafts, and plan approvals
15
+ - The `af spawn` command enforces this (use `--force` to override)
16
+
7
17
  **Required for Multi-Agent Consultation**:
8
18
  - The `consult` CLI must be available (installed with `npm install -g @cluesmith/codev`)
9
19
  - At least one consultation backend: `claude`, `gemini-cli`, or `codex`
@@ -14,17 +24,17 @@
14
24
  ### Multi-Agent Consultation (ENABLED BY DEFAULT)
15
25
 
16
26
  **DEFAULT BEHAVIOR:**
17
- Multi-agent consultation is **ENABLED BY DEFAULT** when using SPIDER protocol.
27
+ Multi-agent consultation is **ENABLED BY DEFAULT** when using SPIR protocol.
18
28
 
19
29
  **DEFAULT AGENTS:**
20
30
  - **GPT-5 Codex**: Primary reviewer for architecture, feasibility, and code quality
21
31
  - **Gemini Pro**: Secondary reviewer for completeness, edge cases, and alternative approaches
22
32
 
23
33
  **DISABLING CONSULTATION:**
24
- To run SPIDER without consultation, say "without consultation" when starting work.
34
+ To run SPIR without consultation, say "without consultation" when starting work.
25
35
 
26
36
  **CUSTOM AGENTS:**
27
- The user can specify different agents by saying: "use SPIDER with consultation from [agent1] and [agent2]"
37
+ The user can specify different agents by saying: "use SPIR with consultation from [agent1] and [agent2]"
28
38
 
29
39
  **CONSULTATION BEHAVIOR:**
30
40
  - DEFAULT: MANDATORY consultation with GPT-5 and Gemini Pro at EVERY checkpoint
@@ -40,13 +50,21 @@ The user can specify different agents by saying: "use SPIDER with consultation f
40
50
  - **Review**: After review document
41
51
 
42
52
  ## Overview
43
- SPIDER is a structured development protocol that emphasizes specification-driven development with iterative implementation and continuous review. It builds upon the DAPPER methodology with a focus on context-first development and multi-agent collaboration.
53
+ SPIR is a structured development protocol that emphasizes specification-driven development with iterative implementation and continuous review. It builds upon the DAPPER methodology with a focus on context-first development and multi-agent collaboration.
54
+
55
+ **The SPIR Model**:
56
+ - **S - Specify**: Write specification with 3-way review → Gate: `spec-approval`
57
+ - **P - Plan**: Write implementation plan with 3-way review → Gate: `plan-approval`
58
+ - **I - Implement**: Execute each plan phase with build-verify cycle (one cycle per phase)
59
+ - **R - Review**: Final review and PR preparation with 3-way review
60
+
61
+ Each phase follows a build-verify loop: build the artifact, then verify with 3-way consultation (Gemini, Codex, Claude).
44
62
 
45
63
  **Core Principle**: Each feature is tracked through exactly THREE documents - a specification, a plan, and a review with lessons learned - all sharing the same filename and sequential identifier.
46
64
 
47
- ## When to Use SPIDER
65
+ ## When to Use SPIR
48
66
 
49
- ### Use SPIDER for:
67
+ ### Use SPIR for:
50
68
  - New feature development
51
69
  - Architecture changes
52
70
  - Complex refactoring
@@ -54,7 +72,7 @@ SPIDER is a structured development protocol that emphasizes specification-driven
54
72
  - API design and implementation
55
73
  - Performance optimization initiatives
56
74
 
57
- ### Skip SPIDER for:
75
+ ### Skip SPIR for:
58
76
  - Simple bug fixes (< 10 lines)
59
77
  - Documentation updates
60
78
  - Configuration changes
@@ -224,25 +242,21 @@ Each phase should be:
224
242
  **Template**: `templates/plan.md`
225
243
  **Review Required**: Yes - Technical lead approval AFTER consultations
226
244
 
227
- ### (IDE) - Implementation Loop
228
-
229
- Execute for each phase in the plan. This is a strict cycle that must be completed in order.
245
+ ### I - Implement (Per Plan Phase)
230
246
 
231
- **⚠️ MANDATORY**: The I-D-E cycle MUST be completed for EACH PHASE, not just at the end of all phases. Skipping D (Defend) or E (Evaluate) for any phase is a PROTOCOL VIOLATION.
247
+ Execute for each phase in the plan. Each phase follows a build-verify cycle.
232
248
 
233
249
  **CRITICAL PRECONDITION**: Before starting any phase, verify the previous phase was committed to git. No phase can begin without the prior phase's commit.
234
250
 
235
- **Phase Completion Process**:
236
- 1. **Implement** - Build the code for this phase
237
- 2. **Defend** - Write comprehensive tests that guard functionality
238
- 3. **Evaluate** - Assess and discuss with user
251
+ **Build-Verify Cycle Per Phase**:
252
+ 1. **Build** - Implement code and tests for this phase
253
+ 2. **Verify** - 3-way consultation (Gemini, Codex, Claude)
254
+ 3. **Iterate** - Address feedback until verification passes
239
255
  4. **Commit** - Single atomic commit for the phase (MANDATORY before next phase)
240
256
  5. **Proceed** - Move to next phase only after commit
241
257
 
242
258
  **Handling Failures**:
243
- - If **Defend** phase reveals gaps → return to **Implement** to fix
244
- - If **Evaluation** reveals unmet criteria → return to **Implement**
245
- - If user requests changes → return to **Implement**
259
+ - If verification reveals gaps → iterate and fix
246
260
  - If fundamental plan flaws found → mark phase as `blocked` and revise plan
247
261
 
248
262
  **Commit Requirements**:
@@ -586,12 +600,12 @@ Implements bcrypt-based password hashing with configurable rounds
586
600
 
587
601
  ### Branch Naming
588
602
  ```
589
- spider/####-<spec-name>/<phase-name>
603
+ spir/####-<spec-name>/<phase-name>
590
604
  ```
591
605
 
592
606
  Example:
593
607
  ```
594
- spider/0001-user-authentication/database-schema
608
+ spir/0001-user-authentication/database-schema
595
609
  ```
596
610
 
597
611
 
@@ -17,6 +17,20 @@
17
17
  - [ ] Zero critical security issues
18
18
  - [ ] Documentation complete
19
19
 
20
+ ## Phases (Machine Readable)
21
+
22
+ <!-- REQUIRED: porch uses this JSON to track phase progress. Update this when adding/removing phases. -->
23
+
24
+ ```json
25
+ {
26
+ "phases": [
27
+ {"id": "phase_1", "title": "Phase 1 Title Here"},
28
+ {"id": "phase_2", "title": "Phase 2 Title Here"},
29
+ {"id": "phase_3", "title": "Phase 3 Title Here"}
30
+ ]
31
+ }
32
+ ```
33
+
20
34
  ## Phase Breakdown
21
35
 
22
36
  ### Phase 1: [Descriptive Name]
@@ -106,7 +106,7 @@
106
106
 
107
107
  ## Methodology Feedback
108
108
 
109
- ### SP(IDE)R Protocol Effectiveness
109
+ ### SPIR Protocol Effectiveness
110
110
  - **Specification Phase**: [Was it thorough enough? Too detailed?]
111
111
  - **Planning Phase**: [Were estimates accurate? Phases well-sized?]
112
112
  - **Implementation Loop**: [Did IDE cycle work well?]
@@ -0,0 +1,56 @@
1
+ # {{protocol_name}} Builder ({{mode}} mode)
2
+
3
+ You are implementing {{input_description}}.
4
+
5
+ {{#if mode_soft}}
6
+ ## Mode: SOFT
7
+ You are running in SOFT mode. This means:
8
+ - You follow the TICK protocol yourself (no porch orchestration)
9
+ - The architect monitors your work and verifies you're adhering to the protocol
10
+ - Run consultations manually when the protocol calls for them
11
+ - You have flexibility in execution, but must stay compliant with the protocol
12
+ {{/if}}
13
+
14
+ {{#if mode_strict}}
15
+ ## Mode: STRICT
16
+ You are running in STRICT mode. This means:
17
+ - Porch orchestrates your work
18
+ - Run: `porch run {{project_id}}`
19
+ - Follow porch signals and gate approvals
20
+
21
+ ### ABSOLUTE RESTRICTIONS (STRICT MODE)
22
+ - **NEVER edit `status.yaml` directly** — only porch commands may modify project state
23
+ - **NEVER call `porch approve` without explicit human approval** — only run it after the architect says to
24
+ - **NEVER skip the 3-way review** — always follow porch next → porch done cycle
25
+ {{/if}}
26
+
27
+ ## Protocol
28
+ Follow the TICK protocol: `codev/protocols/tick/protocol.md`
29
+
30
+ TICK is for amendments to existing SPIR specifications. You will:
31
+ 1. Identify the target spec to amend
32
+ 2. Update the spec with the amendment
33
+ 3. Update the plan
34
+ 4. Implement the changes
35
+ 5. Defend with tests
36
+ 6. Create review
37
+
38
+ {{#if spec}}
39
+ ## Target Spec
40
+ The spec to amend is at: `{{spec.path}}`
41
+ {{/if}}
42
+
43
+ {{#if plan}}
44
+ ## Target Plan
45
+ The plan to amend is at: `{{plan.path}}`
46
+ {{/if}}
47
+
48
+ {{#if task}}
49
+ ## Amendment Description
50
+ {{task_text}}
51
+ {{/if}}
52
+
53
+ ## Getting Started
54
+ 1. Read the TICK protocol thoroughly
55
+ 2. Identify what needs to change in the existing spec
56
+ 3. Follow the amendment workflow
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "$schema": "../../protocol-schema.json",
3
3
  "name": "tick",
4
- "version": "1.0.0",
5
- "description": "Amendment workflow for existing SPIDER specifications",
4
+ "version": "1.1.0",
5
+ "description": "Amendment workflow for existing SPIR specifications",
6
+ "input": {
7
+ "type": "spec",
8
+ "required": false
9
+ },
6
10
  "phases": [
7
11
  {
8
12
  "id": "identify",
@@ -138,6 +142,7 @@
138
142
  }
139
143
  },
140
144
  "defaults": {
145
+ "mode": "soft",
141
146
  "consultation": {
142
147
  "enabled": true,
143
148
  "models": ["gemini", "codex"],