@cluesmith/codev 3.0.0-rc.1 → 3.0.0-rc.11

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 (328) hide show
  1. package/LICENSE +201 -0
  2. package/bin/af.js +2 -2
  3. package/bin/afx.js +8 -0
  4. package/bin/consult.js +2 -1
  5. package/bin/team.js +2 -1
  6. package/{dashboard/dist/assets/index-nr0cXxtf.css → dashboard-dist/assets/index-Bs8I7N2s.css} +1 -1
  7. package/dashboard-dist/assets/index-CkNo2z6t.js +195 -0
  8. package/dashboard-dist/assets/index-CkNo2z6t.js.map +1 -0
  9. package/dashboard-dist/dist/assets/index-Bs8I7N2s.css +32 -0
  10. package/dashboard-dist/dist/assets/index-CkNo2z6t.js +195 -0
  11. package/dashboard-dist/dist/assets/index-CkNo2z6t.js.map +1 -0
  12. package/{dashboard → dashboard-dist}/dist/index.html +2 -2
  13. package/dashboard-dist/index.html +14 -0
  14. package/dist/agent-farm/cli.d.ts.map +1 -1
  15. package/dist/agent-farm/cli.js +17 -14
  16. package/dist/agent-farm/cli.js.map +1 -1
  17. package/dist/agent-farm/commands/architect.d.ts +4 -4
  18. package/dist/agent-farm/commands/architect.d.ts.map +1 -1
  19. package/dist/agent-farm/commands/architect.js +23 -12
  20. package/dist/agent-farm/commands/architect.js.map +1 -1
  21. package/dist/agent-farm/commands/attach.js +8 -8
  22. package/dist/agent-farm/commands/attach.js.map +1 -1
  23. package/dist/agent-farm/commands/bench.d.ts +1 -1
  24. package/dist/agent-farm/commands/bench.js +1 -1
  25. package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
  26. package/dist/agent-farm/commands/cleanup.js +10 -5
  27. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  28. package/dist/agent-farm/commands/cron.js +1 -1
  29. package/dist/agent-farm/commands/cron.js.map +1 -1
  30. package/dist/agent-farm/commands/db.d.ts +3 -3
  31. package/dist/agent-farm/commands/db.js +4 -4
  32. package/dist/agent-farm/commands/db.js.map +1 -1
  33. package/dist/agent-farm/commands/open.js +2 -2
  34. package/dist/agent-farm/commands/open.js.map +1 -1
  35. package/dist/agent-farm/commands/rename.js +1 -1
  36. package/dist/agent-farm/commands/rename.js.map +1 -1
  37. package/dist/agent-farm/commands/send.d.ts +4 -1
  38. package/dist/agent-farm/commands/send.d.ts.map +1 -1
  39. package/dist/agent-farm/commands/send.js +8 -5
  40. package/dist/agent-farm/commands/send.js.map +1 -1
  41. package/dist/agent-farm/commands/shell.js +3 -3
  42. package/dist/agent-farm/commands/shell.js.map +1 -1
  43. package/dist/agent-farm/commands/spawn-roles.d.ts +2 -1
  44. package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -1
  45. package/dist/agent-farm/commands/spawn-roles.js +1 -1
  46. package/dist/agent-farm/commands/spawn-roles.js.map +1 -1
  47. package/dist/agent-farm/commands/spawn-worktree.d.ts +49 -10
  48. package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
  49. package/dist/agent-farm/commands/spawn-worktree.js +356 -51
  50. package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
  51. package/dist/agent-farm/commands/spawn.d.ts +6 -6
  52. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  53. package/dist/agent-farm/commands/spawn.js +182 -74
  54. package/dist/agent-farm/commands/spawn.js.map +1 -1
  55. package/dist/agent-farm/commands/status.d.ts.map +1 -1
  56. package/dist/agent-farm/commands/status.js +48 -3
  57. package/dist/agent-farm/commands/status.js.map +1 -1
  58. package/dist/agent-farm/commands/team-update.d.ts +1 -1
  59. package/dist/agent-farm/commands/team-update.d.ts.map +1 -1
  60. package/dist/agent-farm/commands/team-update.js +8 -5
  61. package/dist/agent-farm/commands/team-update.js.map +1 -1
  62. package/dist/agent-farm/commands/team.d.ts +1 -1
  63. package/dist/agent-farm/commands/team.d.ts.map +1 -1
  64. package/dist/agent-farm/commands/team.js +7 -3
  65. package/dist/agent-farm/commands/team.js.map +1 -1
  66. package/dist/agent-farm/commands/tower-cloud.d.ts +2 -2
  67. package/dist/agent-farm/commands/tower-cloud.js +3 -3
  68. package/dist/agent-farm/commands/tower-cloud.js.map +1 -1
  69. package/dist/agent-farm/commands/tower.js +2 -2
  70. package/dist/agent-farm/commands/tower.js.map +1 -1
  71. package/dist/agent-farm/lib/cloud-config.js +2 -2
  72. package/dist/agent-farm/lib/cloud-config.js.map +1 -1
  73. package/dist/agent-farm/lib/tower-client.d.ts +6 -230
  74. package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
  75. package/dist/agent-farm/lib/tower-client.js +6 -293
  76. package/dist/agent-farm/lib/tower-client.js.map +1 -1
  77. package/dist/agent-farm/lib/tunnel-client.js +1 -1
  78. package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
  79. package/dist/agent-farm/servers/message-write.d.ts +24 -0
  80. package/dist/agent-farm/servers/message-write.d.ts.map +1 -0
  81. package/dist/agent-farm/servers/message-write.js +63 -0
  82. package/dist/agent-farm/servers/message-write.js.map +1 -0
  83. package/dist/agent-farm/servers/overview.d.ts +10 -8
  84. package/dist/agent-farm/servers/overview.d.ts.map +1 -1
  85. package/dist/agent-farm/servers/overview.js +78 -38
  86. package/dist/agent-farm/servers/overview.js.map +1 -1
  87. package/dist/agent-farm/servers/send-buffer.d.ts +4 -3
  88. package/dist/agent-farm/servers/send-buffer.d.ts.map +1 -1
  89. package/dist/agent-farm/servers/send-buffer.js +7 -4
  90. package/dist/agent-farm/servers/send-buffer.js.map +1 -1
  91. package/dist/agent-farm/servers/tower-cron-parser.js +1 -1
  92. package/dist/agent-farm/servers/tower-cron-parser.js.map +1 -1
  93. package/dist/agent-farm/servers/tower-cron.d.ts.map +1 -1
  94. package/dist/agent-farm/servers/tower-cron.js +4 -5
  95. package/dist/agent-farm/servers/tower-cron.js.map +1 -1
  96. package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
  97. package/dist/agent-farm/servers/tower-instances.js +15 -13
  98. package/dist/agent-farm/servers/tower-instances.js.map +1 -1
  99. package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
  100. package/dist/agent-farm/servers/tower-routes.js +9 -16
  101. package/dist/agent-farm/servers/tower-routes.js.map +1 -1
  102. package/dist/agent-farm/servers/tower-server.js +1 -1
  103. package/dist/agent-farm/servers/tower-terminals.d.ts +2 -2
  104. package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
  105. package/dist/agent-farm/servers/tower-terminals.js +64 -36
  106. package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
  107. package/dist/agent-farm/servers/tower-tunnel.js +2 -2
  108. package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
  109. package/dist/agent-farm/servers/tower-utils.d.ts +9 -6
  110. package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
  111. package/dist/agent-farm/servers/tower-utils.js +13 -7
  112. package/dist/agent-farm/servers/tower-utils.js.map +1 -1
  113. package/dist/agent-farm/types.d.ts +13 -0
  114. package/dist/agent-farm/types.d.ts.map +1 -1
  115. package/dist/agent-farm/utils/config.d.ts +11 -0
  116. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  117. package/dist/agent-farm/utils/config.js +39 -17
  118. package/dist/agent-farm/utils/config.js.map +1 -1
  119. package/dist/agent-farm/utils/harness.d.ts +85 -0
  120. package/dist/agent-farm/utils/harness.d.ts.map +1 -0
  121. package/dist/agent-farm/utils/harness.js +212 -0
  122. package/dist/agent-farm/utils/harness.js.map +1 -0
  123. package/dist/agent-farm/utils/roles.d.ts +11 -4
  124. package/dist/agent-farm/utils/roles.d.ts.map +1 -1
  125. package/dist/agent-farm/utils/roles.js +21 -6
  126. package/dist/agent-farm/utils/roles.js.map +1 -1
  127. package/dist/cli.d.ts +1 -1
  128. package/dist/cli.d.ts.map +1 -1
  129. package/dist/cli.js +40 -5
  130. package/dist/cli.js.map +1 -1
  131. package/dist/commands/adopt.d.ts.map +1 -1
  132. package/dist/commands/adopt.js +16 -45
  133. package/dist/commands/adopt.js.map +1 -1
  134. package/dist/commands/consult/index.d.ts +37 -3
  135. package/dist/commands/consult/index.d.ts.map +1 -1
  136. package/dist/commands/consult/index.js +281 -194
  137. package/dist/commands/consult/index.js.map +1 -1
  138. package/dist/commands/doctor.d.ts.map +1 -1
  139. package/dist/commands/doctor.js +121 -31
  140. package/dist/commands/doctor.js.map +1 -1
  141. package/dist/commands/init.d.ts.map +1 -1
  142. package/dist/commands/init.js +13 -43
  143. package/dist/commands/init.js.map +1 -1
  144. package/dist/commands/porch/artifacts.d.ts +69 -0
  145. package/dist/commands/porch/artifacts.d.ts.map +1 -0
  146. package/dist/commands/porch/artifacts.js +368 -0
  147. package/dist/commands/porch/artifacts.js.map +1 -0
  148. package/dist/commands/porch/checks.d.ts +14 -3
  149. package/dist/commands/porch/checks.d.ts.map +1 -1
  150. package/dist/commands/porch/checks.js +150 -4
  151. package/dist/commands/porch/checks.js.map +1 -1
  152. package/dist/commands/porch/config.d.ts +6 -9
  153. package/dist/commands/porch/config.d.ts.map +1 -1
  154. package/dist/commands/porch/config.js +12 -37
  155. package/dist/commands/porch/config.js.map +1 -1
  156. package/dist/commands/porch/index.d.ts +12 -7
  157. package/dist/commands/porch/index.d.ts.map +1 -1
  158. package/dist/commands/porch/index.js +273 -82
  159. package/dist/commands/porch/index.js.map +1 -1
  160. package/dist/commands/porch/next.d.ts.map +1 -1
  161. package/dist/commands/porch/next.js +142 -75
  162. package/dist/commands/porch/next.js.map +1 -1
  163. package/dist/commands/porch/notify.d.ts +2 -2
  164. package/dist/commands/porch/notify.js +5 -5
  165. package/dist/commands/porch/notify.js.map +1 -1
  166. package/dist/commands/porch/prompts.d.ts +2 -1
  167. package/dist/commands/porch/prompts.d.ts.map +1 -1
  168. package/dist/commands/porch/prompts.js +34 -38
  169. package/dist/commands/porch/prompts.js.map +1 -1
  170. package/dist/commands/porch/protocol.d.ts +4 -3
  171. package/dist/commands/porch/protocol.d.ts.map +1 -1
  172. package/dist/commands/porch/protocol.js +21 -21
  173. package/dist/commands/porch/protocol.js.map +1 -1
  174. package/dist/commands/porch/state.d.ts +27 -2
  175. package/dist/commands/porch/state.d.ts.map +1 -1
  176. package/dist/commands/porch/state.js +100 -9
  177. package/dist/commands/porch/state.js.map +1 -1
  178. package/dist/commands/porch/types.d.ts +10 -2
  179. package/dist/commands/porch/types.d.ts.map +1 -1
  180. package/dist/commands/sync.d.ts +26 -0
  181. package/dist/commands/sync.d.ts.map +1 -0
  182. package/dist/commands/sync.js +207 -0
  183. package/dist/commands/sync.js.map +1 -0
  184. package/dist/commands/update.d.ts +15 -2
  185. package/dist/commands/update.d.ts.map +1 -1
  186. package/dist/commands/update.js +159 -202
  187. package/dist/commands/update.js.map +1 -1
  188. package/dist/lib/config.d.ts +96 -0
  189. package/dist/lib/config.d.ts.map +1 -0
  190. package/dist/lib/config.js +165 -0
  191. package/dist/lib/config.js.map +1 -0
  192. package/dist/lib/forge-contracts.d.ts +100 -0
  193. package/dist/lib/forge-contracts.d.ts.map +1 -0
  194. package/dist/lib/forge-contracts.js +35 -0
  195. package/dist/lib/forge-contracts.js.map +1 -0
  196. package/dist/lib/forge.d.ts +102 -0
  197. package/dist/lib/forge.d.ts.map +1 -0
  198. package/dist/lib/forge.js +376 -0
  199. package/dist/lib/forge.js.map +1 -0
  200. package/dist/lib/github.d.ts +68 -60
  201. package/dist/lib/github.d.ts.map +1 -1
  202. package/dist/lib/github.js +160 -169
  203. package/dist/lib/github.js.map +1 -1
  204. package/dist/lib/skeleton.d.ts +15 -5
  205. package/dist/lib/skeleton.d.ts.map +1 -1
  206. package/dist/lib/skeleton.js +82 -7
  207. package/dist/lib/skeleton.js.map +1 -1
  208. package/dist/lib/team-github.d.ts +7 -3
  209. package/dist/lib/team-github.d.ts.map +1 -1
  210. package/dist/lib/team-github.js +29 -19
  211. package/dist/lib/team-github.js.map +1 -1
  212. package/dist/terminal/pty-manager.d.ts.map +1 -1
  213. package/dist/terminal/pty-manager.js +2 -0
  214. package/dist/terminal/pty-manager.js.map +1 -1
  215. package/dist/terminal/ws-protocol.d.ts +10 -8
  216. package/dist/terminal/ws-protocol.d.ts.map +1 -1
  217. package/dist/terminal/ws-protocol.js +3 -0
  218. package/dist/terminal/ws-protocol.js.map +1 -1
  219. package/package.json +27 -24
  220. package/scripts/forge/gitea/auth-status.sh +3 -0
  221. package/scripts/forge/gitea/issue-comment.sh +3 -0
  222. package/scripts/forge/gitea/issue-list.sh +3 -0
  223. package/scripts/forge/gitea/issue-view.sh +3 -0
  224. package/scripts/forge/gitea/pr-exists.sh +6 -0
  225. package/scripts/forge/gitea/pr-list.sh +3 -0
  226. package/scripts/forge/gitea/pr-merge.sh +3 -0
  227. package/scripts/forge/gitea/pr-view.sh +3 -0
  228. package/scripts/forge/gitea/recently-closed.sh +3 -0
  229. package/scripts/forge/gitea/recently-merged.sh +3 -0
  230. package/scripts/forge/gitea/repo-archive.sh +11 -0
  231. package/scripts/forge/gitea/user-identity.sh +3 -0
  232. package/scripts/forge/github/auth-status.sh +4 -0
  233. package/scripts/forge/github/issue-comment.sh +5 -0
  234. package/scripts/forge/github/issue-list.sh +4 -0
  235. package/scripts/forge/github/issue-view.sh +5 -0
  236. package/scripts/forge/github/on-it-timestamps.sh +8 -0
  237. package/scripts/forge/github/pr-diff.sh +10 -0
  238. package/scripts/forge/github/pr-exists.sh +7 -0
  239. package/scripts/forge/github/pr-list.sh +4 -0
  240. package/scripts/forge/github/pr-merge.sh +5 -0
  241. package/scripts/forge/github/pr-search.sh +5 -0
  242. package/scripts/forge/github/pr-view.sh +11 -0
  243. package/scripts/forge/github/recently-closed.sh +15 -0
  244. package/scripts/forge/github/recently-merged.sh +15 -0
  245. package/scripts/forge/github/repo-archive.sh +10 -0
  246. package/scripts/forge/github/team-activity.sh +5 -0
  247. package/scripts/forge/github/user-identity.sh +4 -0
  248. package/scripts/forge/gitlab/auth-status.sh +3 -0
  249. package/scripts/forge/gitlab/issue-comment.sh +3 -0
  250. package/scripts/forge/gitlab/issue-list.sh +3 -0
  251. package/scripts/forge/gitlab/issue-view.sh +3 -0
  252. package/scripts/forge/gitlab/pr-diff.sh +3 -0
  253. package/scripts/forge/gitlab/pr-exists.sh +5 -0
  254. package/scripts/forge/gitlab/pr-list.sh +3 -0
  255. package/scripts/forge/gitlab/pr-merge.sh +3 -0
  256. package/scripts/forge/gitlab/pr-search.sh +3 -0
  257. package/scripts/forge/gitlab/pr-view.sh +3 -0
  258. package/scripts/forge/gitlab/recently-closed.sh +3 -0
  259. package/scripts/forge/gitlab/recently-merged.sh +3 -0
  260. package/scripts/forge/gitlab/repo-archive.sh +12 -0
  261. package/scripts/forge/gitlab/user-identity.sh +3 -0
  262. package/skeleton/.claude/skills/afx/SKILL.md +144 -0
  263. package/skeleton/.claude/skills/codev/SKILL.md +3 -3
  264. package/skeleton/.claude/skills/consult/SKILL.md +1 -1
  265. package/skeleton/.claude/skills/porch/SKILL.md +2 -2
  266. package/skeleton/DEPENDENCIES.md +1 -1
  267. package/skeleton/builders.md +4 -4
  268. package/skeleton/protocol-schema.json +2 -2
  269. package/skeleton/protocols/air/builder-prompt.md +6 -6
  270. package/skeleton/protocols/air/prompts/pr.md +17 -5
  271. package/skeleton/protocols/air/protocol.md +1 -2
  272. package/skeleton/protocols/aspir/builder-prompt.md +28 -6
  273. package/skeleton/protocols/aspir/prompts/review.md +11 -0
  274. package/skeleton/protocols/aspir/protocol.json +9 -1
  275. package/skeleton/protocols/aspir/protocol.md +1 -1
  276. package/skeleton/protocols/aspir/templates/plan.md +0 -20
  277. package/skeleton/protocols/aspir/templates/spec.md +0 -28
  278. package/skeleton/protocols/bugfix/builder-prompt.md +6 -6
  279. package/skeleton/protocols/bugfix/prompts/pr.md +16 -4
  280. package/skeleton/protocols/experiment/builder-prompt.md +15 -0
  281. package/skeleton/protocols/experiment/protocol.md +1 -6
  282. package/skeleton/protocols/maintain/builder-prompt.md +12 -11
  283. package/skeleton/protocols/maintain/prompts/maintain.md +88 -0
  284. package/skeleton/protocols/maintain/prompts/review.md +84 -0
  285. package/skeleton/protocols/maintain/protocol.json +14 -68
  286. package/skeleton/protocols/maintain/protocol.md +111 -409
  287. package/skeleton/protocols/maintain/templates/maintenance-run.md +18 -49
  288. package/skeleton/protocols/protocol-schema.json +1 -1
  289. package/skeleton/protocols/spike/builder-prompt.md +1 -1
  290. package/skeleton/protocols/spike/protocol.md +4 -4
  291. package/skeleton/protocols/spir/builder-prompt.md +28 -5
  292. package/skeleton/protocols/spir/prompts/review.md +11 -0
  293. package/skeleton/protocols/spir/protocol.json +9 -1
  294. package/skeleton/protocols/spir/protocol.md +2 -2
  295. package/skeleton/protocols/spir/templates/plan.md +0 -20
  296. package/skeleton/protocols/spir/templates/spec.md +0 -28
  297. package/skeleton/resources/commands/agent-farm.md +84 -84
  298. package/skeleton/resources/commands/codev.md +1 -1
  299. package/skeleton/resources/commands/consult.md +16 -7
  300. package/skeleton/resources/commands/overview.md +14 -15
  301. package/skeleton/resources/risk-triage.md +1 -1
  302. package/skeleton/resources/workflow-reference.md +14 -14
  303. package/skeleton/roles/architect.md +55 -43
  304. package/skeleton/roles/builder.md +22 -14
  305. package/skeleton/templates/AGENTS.md +4 -3
  306. package/skeleton/templates/CLAUDE.md +4 -3
  307. package/skeleton/templates/cheatsheet.md +11 -12
  308. package/templates/3d-viewer.html +16 -18
  309. package/templates/tower.html +1 -1
  310. package/dashboard/dist/assets/index-CiIBsixF.js +0 -194
  311. package/dashboard/dist/assets/index-CiIBsixF.js.map +0 -1
  312. package/skeleton/.claude/skills/af/SKILL.md +0 -146
  313. package/skeleton/porch/prompts/understand.md +0 -61
  314. package/skeleton/porch/prompts/verify.md +0 -58
  315. package/skeleton/protocols/maintain/prompts/audit.md +0 -111
  316. package/skeleton/protocols/maintain/prompts/clean.md +0 -91
  317. package/skeleton/protocols/maintain/prompts/sync.md +0 -113
  318. package/skeleton/protocols/maintain/prompts/verify.md +0 -110
  319. package/skeleton/protocols/tick/builder-prompt.md +0 -65
  320. package/skeleton/protocols/tick/consult-types/impl-review.md +0 -72
  321. package/skeleton/protocols/tick/consult-types/plan-review.md +0 -59
  322. package/skeleton/protocols/tick/consult-types/pr-review.md +0 -72
  323. package/skeleton/protocols/tick/consult-types/spec-review.md +0 -55
  324. package/skeleton/protocols/tick/protocol.json +0 -151
  325. package/skeleton/protocols/tick/protocol.md +0 -277
  326. package/skeleton/protocols/tick/templates/plan.md +0 -67
  327. package/skeleton/protocols/tick/templates/review.md +0 -89
  328. package/skeleton/protocols/tick/templates/spec.md +0 -61
@@ -1,277 +0,0 @@
1
- # TICK Protocol
2
- **T**ask **I**dentification, **C**oding, **K**ickout
3
-
4
- ## Overview
5
-
6
- TICK is an **amendment workflow** for existing SPIR specifications. Rather than creating new standalone specs, TICK modifies existing spec and plan documents in-place, tracking changes in an "Amendments" section.
7
-
8
- **Core Principle**: TICK is for *refining* existing specs. SPIR is for *creating* new specs.
9
-
10
- **Key Insight**: TICKs are not small SPIRs - they're amendments to existing SPIRs. This eliminates the "TICK vs SPIR" decision problem and keeps related work together.
11
-
12
- ## When to Use TICK
13
-
14
- ### Use TICK when:
15
- - Making **amendments to an existing SPIR spec** that is already `integrated`
16
- - Small scope (< 300 lines of new/changed code)
17
- - Requirements are clear and well-defined
18
- - No fundamental architecture changes
19
- - Examples:
20
- - Adding a feature to an existing system (e.g., "add password reset to user auth")
21
- - Bug fixes that extend existing functionality
22
- - Configuration changes with logic
23
- - Utility function additions to existing modules
24
- - Refactoring within an existing feature
25
-
26
- ### Use SPIR instead when:
27
- - Creating a **new feature from scratch** (no existing spec to amend)
28
- - Major architecture changes (scope too large for amendment)
29
- - Unclear requirements needing exploration
30
- - > 300 lines of code
31
- - Multiple stakeholders need alignment
32
-
33
- ### Cannot Use TICK when:
34
- - No relevant SPIR spec exists (create a new SPIR spec instead)
35
- - Target spec is not yet `integrated` (complete the SPIR cycle first)
36
-
37
- ## Amendment Workflow
38
-
39
- ### Phase 1: Identify Target Spec
40
-
41
- **Input**: User describes the amendment needed
42
-
43
- **Agent Actions**:
44
- 1. Analyze the amendment requirements
45
- 2. Search for the relevant existing spec to amend
46
- 3. Verify the spec exists and is `integrated`
47
- 4. Load current spec and plan documents
48
- 5. Determine next TICK number (count existing TICK entries + 1)
49
-
50
- **Example**:
51
- ```
52
- User: "Use TICK to add password reset to the auth system"
53
- Agent finds: specs/2-user-authentication.md (status: integrated)
54
- Agent determines: Next TICK is TICK-001 (first amendment)
55
- ```
56
-
57
- ### Phase 2: Specification Amendment (Autonomous)
58
-
59
- **Agent Actions**:
60
- 1. Analyze what needs to change in the spec
61
- 2. Update relevant sections of `specs/NNN-name.md`:
62
- - Problem Statement (if scope expands)
63
- - Success Criteria (if new criteria added)
64
- - Solution Approaches (if design changes)
65
- - Any other section that needs updating
66
- 3. Add entry to "Amendments" section at bottom:
67
- ```markdown
68
- ### TICK-001: [Title] (YYYY-MM-DD)
69
-
70
- **Summary**: [One-line description]
71
-
72
- **Problem Addressed**:
73
- [Why this amendment was needed]
74
-
75
- **Spec Changes**:
76
- - [Section]: [What changed]
77
-
78
- **Plan Changes**:
79
- - [Phase/steps]: [What was added/modified]
80
-
81
- **Review**: See `reviews/NNN-name-tick-001.md`
82
- ```
83
- 4. **COMMIT**: `[TICK NNN-NNN] Spec: [description]`
84
-
85
- ### Phase 3: Planning Amendment (Autonomous)
86
-
87
- **Agent Actions**:
88
- 1. Update `plans/NNN-name.md` with new implementation steps
89
- 2. Add/modify phases as needed
90
- 3. Add entry to "Amendment History" section at bottom:
91
- ```markdown
92
- ### TICK-001: [Title] (YYYY-MM-DD)
93
-
94
- **Changes**:
95
- - [Phase added]: [Description]
96
- - [Implementation steps]: [What was updated]
97
-
98
- **Review**: See `reviews/NNN-name-tick-001.md`
99
- ```
100
- 4. **COMMIT**: `[TICK NNN-NNN] Plan: [description]`
101
-
102
- ### Phase 4: Implementation (Autonomous)
103
-
104
- **Agent Actions**:
105
- 1. Execute implementation steps from the plan
106
- 2. Write code following fail-fast principles
107
- 3. Test functionality
108
- 4. **COMMIT**: `[TICK NNN-NNN] Impl: [description]`
109
-
110
- ### Phase 5: Review (User Checkpoint)
111
-
112
- **Agent Actions**:
113
- 1. Create review document: `reviews/NNN-name-tick-NNN.md`
114
- - What was amended and why
115
- - Changes made to spec and plan
116
- - Implementation challenges
117
- - Lessons learned
118
- 2. **Multi-Agent Consultation** (MANDATORY):
119
- - Consult GPT-5 AND Gemini Pro
120
- - Focus: Code quality, missed issues, improvements
121
- - Update review with consultation feedback
122
- 3. **Update Architecture Documentation** (if applicable)
123
- 4. **COMMIT**: `[TICK NNN-NNN] Review: [description]`
124
- 5. **PRESENT TO USER**: Show summary with consultation insights
125
-
126
- **User Actions**:
127
- - Review completed work
128
- - Provide feedback
129
- - Request changes OR approve
130
-
131
- **If Changes Requested**:
132
- - Agent makes changes
133
- - Commits: `[TICK NNN-NNN] Fixes: [description]`
134
- - Updates review document
135
- - Repeats until user approval
136
-
137
- ## File Naming Convention
138
-
139
- TICK amendments modify existing files and create new review files:
140
-
141
- | File Type | Pattern | Example |
142
- |-----------|---------|---------|
143
- | Spec (modified) | `specs/NNN-name.md` | `specs/2-user-authentication.md` |
144
- | Plan (modified) | `plans/NNN-name.md` | `plans/2-user-authentication.md` |
145
- | Review (new) | `reviews/NNN-name-tick-NNN.md` | `reviews/2-user-authentication-tick-001.md` |
146
-
147
- **Note**: Spec and plan files are modified in-place. Only the review file is new.
148
-
149
- ## Git Commit Strategy
150
-
151
- **TICK commits reference the parent spec and TICK number**:
152
-
153
- ```
154
- [TICK 2-001] Spec: Add password reset feature
155
- [TICK 2-001] Plan: Add password reset implementation
156
- [TICK 2-001] Impl: Add password reset feature
157
- [TICK 2-001] Review: Password reset implementation
158
- [TICK 2-001] Fixes: Address review feedback
159
- ```
160
-
161
- The format `[TICK <parent>-<tick>]` identifies:
162
- - `<parent>`: Parent spec number (e.g., 2)
163
- - `<tick>`: TICK amendment number (e.g., 001, 002, 003)
164
-
165
- ## Key Differences from SPIR
166
-
167
- | Aspect | SPIR | TICK |
168
- |--------|--------|------|
169
- | Purpose | Create new features | Amend existing features |
170
- | File creation | Creates new spec/plan/review | Modifies spec/plan, creates review |
171
- | Sequential numbering | Gets new number (1, 2) | Uses parent's number (2-001) |
172
- | Scope | Any size | < 300 lines typically |
173
- | Prerequisites | None | Existing integrated spec required |
174
- | User checkpoints | Multiple (spec, plan, phases) | Two (start, end) |
175
- | Multi-agent consultation | Throughout | End only (review) |
176
-
177
- ## Protocol Selection Guide
178
-
179
- ```
180
- Is there an existing spec to amend?
181
- ├── NO → Use SPIR (create new spec)
182
- └── YES → Is it integrated?
183
- ├── NO → Complete SPIR cycle first
184
- └── YES → Is the change small (<300 LOC)?
185
- ├── YES → Use TICK (amend existing spec)
186
- └── NO → Use SPIR (scope too large)
187
- ```
188
-
189
- **Mental Model**:
190
- - SPIR = Create new feature from scratch
191
- - TICK = Refine/extend existing feature
192
-
193
- ## Example TICK Workflow
194
-
195
- **User**: "Add password reset to the user authentication system"
196
-
197
- **Agent**:
198
- 1. **Identify**: Finds `specs/2-user-authentication.md` (integrated)
199
- 2. **Amend Spec** (30 seconds):
200
- - Updates Success Criteria with password reset requirements
201
- - Adds TICK-001 entry to Amendments section
202
- - Commit: `[TICK 2-001] Spec: Add password reset feature`
203
- 3. **Amend Plan** (30 seconds):
204
- - Adds Phase 4: Password Reset Email Service
205
- - Adds TICK-001 entry to Amendment History
206
- - Commit: `[TICK 2-001] Plan: Add password reset implementation`
207
- 4. **Implement** (2 minutes):
208
- - Creates password reset endpoint
209
- - Implements email service
210
- - Tests functionality
211
- - Commit: `[TICK 2-001] Impl: Add password reset feature`
212
- 5. **Review** (1 minute):
213
- - Creates `reviews/2-user-authentication-tick-001.md`
214
- - Runs 3-way consultation (Gemini, Codex, Claude)
215
- - Commit: `[TICK 2-001] Review: Password reset implementation`
216
- - Shows user the completed work
217
-
218
- **Total Time**: ~4 minutes for simple amendment
219
-
220
- ## Multiple TICKs per Spec
221
-
222
- A single spec can have multiple TICK amendments over its lifetime:
223
-
224
- ```markdown
225
- ## Amendments
226
-
227
- ### TICK-003: Add MFA support (2025-03-15)
228
- ...
229
-
230
- ### TICK-002: Add session timeout (2025-02-01)
231
- ...
232
-
233
- ### TICK-001: Add password reset (2025-01-15)
234
- ...
235
- ```
236
-
237
- TICKs are listed in reverse chronological order (newest first). Each TICK builds on the previous state of the spec.
238
-
239
- ## Migration from Standalone TICK
240
-
241
- Existing standalone TICK projects (created before this protocol change) are grandfathered in. No migration required.
242
-
243
- **Optional Migration** (if desired):
244
- 1. Identify the "parent spec" the TICK logically extends
245
- 2. Move TICK content into an amendment entry in the parent spec
246
- 3. Archive the standalone files with a note: "Migrated to spec NNN as TICK-NNN"
247
- 4. Update the GitHub Issue to reflect the change
248
-
249
- ## Benefits
250
-
251
- 1. **Single source of truth**: Spec file shows complete feature evolution
252
- 2. **Clear history**: Amendments section documents all changes chronologically
253
- 3. **Reduced fragmentation**: Related work stays together
254
- 4. **Simpler mental model**: "New vs amendment" is clearer than "SPIR vs TICK"
255
- 5. **Preserved context**: Looking at a spec shows all refinements
256
-
257
- ## Limitations
258
-
259
- 1. **Requires existing spec**: Cannot use TICK for greenfield work
260
- 2. **Spec can grow large**: Many TICKs add content (consider: >5 TICKs suggests need for new spec)
261
- 3. **Merge conflicts**: Multiple TICKs on same spec may conflict
262
- 4. **No course correction**: Can't adjust mid-implementation
263
-
264
- ## Best Practices
265
-
266
- 1. **Verify spec is integrated**: Never TICK a spec that isn't complete
267
- 2. **Keep TICKs small**: If scope grows, consider new SPIR spec
268
- 3. **Clear summaries**: Amendment entries should be self-explanatory
269
- 4. **Test before review**: Always test functionality before presenting
270
- 5. **Honest documentation**: Document all deviations in review
271
-
272
- ## Templates
273
-
274
- TICK uses the standard SPIR templates with amendments sections:
275
- - Spec template: `codev/protocols/spir/templates/spec.md` (includes Amendments section)
276
- - Plan template: `codev/protocols/spir/templates/plan.md` (includes Amendment History section)
277
- - Review template: `codev/protocols/tick/templates/review.md` (TICK-specific)
@@ -1,67 +0,0 @@
1
- # TICK Plan: [Title]
2
-
3
- ## Metadata
4
- - **ID**: ####-[short-name]
5
- - **Protocol**: TICK
6
- - **Specification**: [Link to spec file]
7
- - **Created**: [YYYY-MM-DD]
8
- - **Status**: autonomous
9
-
10
- ## Implementation Approach
11
- [Brief description of chosen approach from specification]
12
-
13
- ## Implementation Steps
14
-
15
- ### Step 1: [Action]
16
- **Files**: [list files to create/modify]
17
- **Changes**: [what to do]
18
-
19
- ### Step 2: [Action]
20
- **Files**: [list files to create/modify]
21
- **Changes**: [what to do]
22
-
23
- ### Step 3: [Action]
24
- **Files**: [list files to create/modify]
25
- **Changes**: [what to do]
26
-
27
- [Add more steps as needed - keep sequential]
28
-
29
- ## Files to Create/Modify
30
-
31
- ### New Files
32
- - `path/to/file1.ts` - [purpose]
33
- - `path/to/file2.ts` - [purpose]
34
-
35
- ### Modified Files
36
- - `path/to/existing1.ts` - [what changes]
37
- - `path/to/existing2.ts` - [what changes]
38
-
39
- ## Testing Strategy
40
-
41
- ### Manual Testing
42
- 1. [Test scenario 1]
43
- 2. [Test scenario 2]
44
- 3. [Test scenario 3]
45
-
46
- ### Automated Tests (if applicable)
47
- - [Test file 1: what to test]
48
- - [Test file 2: what to test]
49
-
50
- ## Success Criteria
51
- - [ ] All steps completed
52
- - [ ] Manual tests pass
53
- - [ ] No breaking changes
54
- - [ ] Code committed
55
-
56
- ## Risks
57
- | Risk | If Occurs |
58
- |------|-----------|
59
- | [Risk 1] | [Fallback plan] |
60
- | [Risk 2] | [Fallback plan] |
61
-
62
- ## Dependencies
63
- - [Dependency 1]
64
- - [Dependency 2]
65
-
66
- ## Notes
67
- [Any implementation notes or considerations]
@@ -1,89 +0,0 @@
1
- # TICK Review: [Title]
2
-
3
- ## Metadata
4
- - **ID**: ####-[short-name]
5
- - **Protocol**: TICK
6
- - **Date**: [YYYY-MM-DD]
7
- - **Specification**: [Link to spec file]
8
- - **Plan**: [Link to plan file]
9
- - **Status**: [completed/needs-fixes]
10
-
11
- ## Implementation Summary
12
- [Brief description of what was implemented]
13
-
14
- ## Success Criteria Status
15
- - [ ] [Criterion 1 from spec]
16
- - [ ] [Criterion 2 from spec]
17
- - [ ] [Criterion 3 from spec]
18
- - [ ] Tests passed
19
- - [ ] No breaking changes
20
-
21
- ## Files Changed
22
-
23
- ### Created
24
- - `path/to/file1.ts` - [purpose]
25
- - `path/to/file2.ts` - [purpose]
26
-
27
- ### Modified
28
- - `path/to/existing1.ts` - [changes made]
29
- - `path/to/existing2.ts` - [changes made]
30
-
31
- ## Deviations from Plan
32
- [None if plan was followed exactly, otherwise list what changed and why]
33
-
34
- ## Testing Results
35
-
36
- ### Manual Tests
37
- 1. [Scenario 1] - ✅/❌
38
- 2. [Scenario 2] - ✅/❌
39
- 3. [Scenario 3] - ✅/❌
40
-
41
- ### Automated Tests (if applicable)
42
- - [Test result summary]
43
-
44
- ## Challenges Encountered
45
- 1. [Challenge 1]
46
- - **Solution**: [How resolved]
47
- 2. [Challenge 2]
48
- - **Solution**: [How resolved]
49
-
50
- ## Lessons Learned
51
-
52
- ### What Went Well
53
- - [Success point 1]
54
- - [Success point 2]
55
-
56
- ### What Could Improve
57
- - [Improvement area 1]
58
- - [Improvement area 2]
59
-
60
- ## Consultation Feedback
61
-
62
- [For each phase that had consultation, summarize every reviewer's concerns and how the builder responded. Use **Addressed** (fixed), **Rebutted** (disagreed with reasoning), or **N/A** (out of scope/moot) for each concern. If all reviewers approved with no concerns: "No concerns raised — all consultations approved."]
63
-
64
- ### [Phase] Phase (Round N)
65
-
66
- #### Gemini
67
- - **Concern**: [Summary of concern]
68
- - **Addressed**: [What was changed]
69
-
70
- #### Codex
71
- - **Concern**: [Summary of concern]
72
- - **Rebutted**: [Why current approach is correct]
73
-
74
- #### Claude
75
- - No concerns raised (APPROVE)
76
-
77
- ## TICK Protocol Feedback
78
- - **Autonomous execution**: [Worked well / Issues encountered]
79
- - **Single-phase approach**: [Appropriate / Should have used SPIR]
80
- - **Speed vs quality trade-off**: [Balanced / Too fast / Too slow]
81
- - **End-only consultation**: [Caught issues / Missed opportunities]
82
-
83
- ## Follow-Up Actions
84
- - [ ] [Any remaining work]
85
- - [ ] [Technical debt created]
86
- - [ ] [Future enhancements]
87
-
88
- ## Conclusion
89
- [Brief summary of outcome and whether TICK was appropriate for this task]
@@ -1,61 +0,0 @@
1
- # TICK Specification: [Title]
2
-
3
- ## Metadata
4
- - **ID**: ####-[short-name]
5
- - **Protocol**: TICK
6
- - **Created**: [YYYY-MM-DD]
7
- - **Status**: autonomous
8
-
9
- ## Task Description
10
- [What needs to be built? Be specific and concise.]
11
-
12
- ## Scope
13
-
14
- ### In Scope
15
- - [Feature/change 1]
16
- - [Feature/change 2]
17
- - [Feature/change 3]
18
-
19
- ### Out of Scope
20
- - [What we're NOT doing]
21
- - [Future considerations]
22
-
23
- ## Success Criteria
24
- - [ ] [Specific, testable criterion 1]
25
- - [ ] [Specific, testable criterion 2]
26
- - [ ] [Specific, testable criterion 3]
27
- - [ ] Tests pass
28
- - [ ] No breaking changes
29
-
30
- ## Constraints
31
- - [Technical limitation 1]
32
- - [Technical limitation 2]
33
- - [Time/scope constraints]
34
-
35
- ## Assumptions
36
- - [Assumption 1]
37
- - [Assumption 2]
38
- - [Dependencies]
39
-
40
- ## Implementation Approach
41
- [Brief description of how this will be implemented - single approach only]
42
-
43
- ### Key Changes
44
- - [File/component 1: what will change]
45
- - [File/component 2: what will change]
46
- - [File/component 3: what will change]
47
-
48
- ## Risks
49
- | Risk | Mitigation |
50
- |------|------------|
51
- | [Risk 1] | [How to handle] |
52
- | [Risk 2] | [How to handle] |
53
-
54
- ## Testing Approach
55
- ### Test Scenarios
56
- 1. [Happy path scenario]
57
- 2. [Edge case scenario]
58
- 3. [Error scenario]
59
-
60
- ## Notes
61
- [Any additional context]