@mindfoldhq/trellis 0.4.0 → 0.5.0-beta.10

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 (427) hide show
  1. package/dist/cli/index.js +0 -1
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/commands/init.d.ts +10 -1
  4. package/dist/commands/init.d.ts.map +1 -1
  5. package/dist/commands/init.js +382 -120
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/update.d.ts +5 -0
  8. package/dist/commands/update.d.ts.map +1 -1
  9. package/dist/commands/update.js +178 -61
  10. package/dist/commands/update.js.map +1 -1
  11. package/dist/configurators/antigravity.d.ts +3 -4
  12. package/dist/configurators/antigravity.d.ts.map +1 -1
  13. package/dist/configurators/antigravity.js +17 -10
  14. package/dist/configurators/antigravity.js.map +1 -1
  15. package/dist/configurators/claude.d.ts +5 -28
  16. package/dist/configurators/claude.d.ts.map +1 -1
  17. package/dist/configurators/claude.js +30 -51
  18. package/dist/configurators/claude.js.map +1 -1
  19. package/dist/configurators/codebuddy.d.ts +6 -7
  20. package/dist/configurators/codebuddy.d.ts.map +1 -1
  21. package/dist/configurators/codebuddy.js +23 -51
  22. package/dist/configurators/codebuddy.js.map +1 -1
  23. package/dist/configurators/codex.d.ts +3 -6
  24. package/dist/configurators/codex.d.ts.map +1 -1
  25. package/dist/configurators/codex.js +29 -12
  26. package/dist/configurators/codex.js.map +1 -1
  27. package/dist/configurators/copilot.d.ts +6 -5
  28. package/dist/configurators/copilot.d.ts.map +1 -1
  29. package/dist/configurators/copilot.js +42 -13
  30. package/dist/configurators/copilot.js.map +1 -1
  31. package/dist/configurators/cursor.d.ts +6 -1
  32. package/dist/configurators/cursor.d.ts.map +1 -1
  33. package/dist/configurators/cursor.js +22 -45
  34. package/dist/configurators/cursor.js.map +1 -1
  35. package/dist/configurators/droid.d.ts +6 -1
  36. package/dist/configurators/droid.d.ts.map +1 -1
  37. package/dist/configurators/droid.js +23 -41
  38. package/dist/configurators/droid.js.map +1 -1
  39. package/dist/configurators/gemini.d.ts +8 -4
  40. package/dist/configurators/gemini.d.ts.map +1 -1
  41. package/dist/configurators/gemini.js +28 -47
  42. package/dist/configurators/gemini.js.map +1 -1
  43. package/dist/configurators/index.d.ts +1 -1
  44. package/dist/configurators/index.d.ts.map +1 -1
  45. package/dist/configurators/index.js +146 -100
  46. package/dist/configurators/index.js.map +1 -1
  47. package/dist/configurators/kilo.d.ts +3 -4
  48. package/dist/configurators/kilo.d.ts.map +1 -1
  49. package/dist/configurators/kilo.js +19 -46
  50. package/dist/configurators/kilo.js.map +1 -1
  51. package/dist/configurators/kiro.d.ts +4 -4
  52. package/dist/configurators/kiro.d.ts.map +1 -1
  53. package/dist/configurators/kiro.js +18 -14
  54. package/dist/configurators/kiro.js.map +1 -1
  55. package/dist/configurators/opencode.d.ts +7 -25
  56. package/dist/configurators/opencode.d.ts.map +1 -1
  57. package/dist/configurators/opencode.js +57 -56
  58. package/dist/configurators/opencode.js.map +1 -1
  59. package/dist/configurators/qoder.d.ts +6 -3
  60. package/dist/configurators/qoder.d.ts.map +1 -1
  61. package/dist/configurators/qoder.js +27 -46
  62. package/dist/configurators/qoder.js.map +1 -1
  63. package/dist/configurators/shared.d.ts +68 -3
  64. package/dist/configurators/shared.d.ts.map +1 -1
  65. package/dist/configurators/shared.js +274 -3
  66. package/dist/configurators/shared.js.map +1 -1
  67. package/dist/configurators/windsurf.d.ts +3 -4
  68. package/dist/configurators/windsurf.d.ts.map +1 -1
  69. package/dist/configurators/windsurf.js +17 -10
  70. package/dist/configurators/windsurf.js.map +1 -1
  71. package/dist/configurators/workflow.d.ts +0 -3
  72. package/dist/configurators/workflow.d.ts.map +1 -1
  73. package/dist/configurators/workflow.js +1 -7
  74. package/dist/configurators/workflow.js.map +1 -1
  75. package/dist/migrations/manifests/0.4.0.json +1 -1
  76. package/dist/migrations/manifests/0.5.0-beta.0.json +1646 -0
  77. package/dist/migrations/manifests/0.5.0-beta.1.json +9 -0
  78. package/dist/migrations/manifests/0.5.0-beta.2.json +9 -0
  79. package/dist/migrations/manifests/0.5.0-beta.3.json +9 -0
  80. package/dist/migrations/manifests/0.5.0-beta.4.json +9 -0
  81. package/dist/migrations/manifests/0.5.0-beta.5.json +222 -0
  82. package/dist/migrations/manifests/0.5.0-beta.6.json +9 -0
  83. package/dist/migrations/manifests/0.5.0-beta.7.json +9 -0
  84. package/dist/migrations/manifests/0.5.0-beta.8.json +9 -0
  85. package/dist/migrations/manifests/0.5.0-beta.9.json +48 -0
  86. package/dist/templates/claude/agents/{check.md → trellis-check.md} +3 -31
  87. package/dist/templates/claude/agents/{implement.md → trellis-implement.md} +1 -2
  88. package/dist/templates/claude/agents/trellis-research.md +137 -0
  89. package/dist/templates/claude/index.d.ts +5 -37
  90. package/dist/templates/claude/index.d.ts.map +1 -1
  91. package/dist/templates/claude/index.js +3 -42
  92. package/dist/templates/claude/index.js.map +1 -1
  93. package/dist/templates/claude/settings.json +6 -4
  94. package/dist/templates/{iflow/agents/check.md → codebuddy/agents/trellis-check.md} +3 -31
  95. package/dist/templates/{iflow/agents/implement.md → codebuddy/agents/trellis-implement.md} +1 -2
  96. package/dist/templates/codebuddy/agents/trellis-research.md +137 -0
  97. package/dist/templates/codebuddy/index.d.ts +6 -16
  98. package/dist/templates/codebuddy/index.d.ts.map +1 -1
  99. package/dist/templates/codebuddy/index.js +6 -36
  100. package/dist/templates/codebuddy/index.js.map +1 -1
  101. package/dist/templates/codebuddy/settings.json +59 -0
  102. package/dist/templates/codex/agents/trellis-check.toml +38 -0
  103. package/dist/templates/codex/agents/{implement.toml → trellis-implement.toml} +1 -1
  104. package/dist/templates/codex/agents/trellis-research.toml +60 -0
  105. package/dist/templates/codex/config.toml +10 -0
  106. package/dist/templates/codex/hooks/session-start.py +65 -29
  107. package/dist/templates/codex/hooks.json +11 -0
  108. package/dist/templates/codex/index.d.ts +0 -1
  109. package/dist/templates/codex/index.d.ts.map +1 -1
  110. package/dist/templates/codex/index.js +1 -8
  111. package/dist/templates/codex/index.js.map +1 -1
  112. package/dist/templates/codex/skills/start/SKILL.md +1 -1
  113. package/dist/templates/common/commands/continue.md +51 -0
  114. package/dist/templates/common/commands/finish-work.md +32 -0
  115. package/dist/templates/common/commands/start.md +56 -0
  116. package/dist/templates/common/index.d.ts +28 -0
  117. package/dist/templates/common/index.d.ts.map +1 -0
  118. package/dist/templates/common/index.js +55 -0
  119. package/dist/templates/common/index.js.map +1 -0
  120. package/dist/templates/{droid/commands/trellis → common/skills}/brainstorm.md +51 -12
  121. package/dist/templates/{iflow/commands/trellis → common/skills}/break-loop.md +4 -4
  122. package/dist/templates/common/skills/check.md +87 -0
  123. package/dist/templates/{codebuddy/commands/trellis → common/skills}/update-spec.md +18 -21
  124. package/dist/templates/copilot/hooks/session-start.py +65 -29
  125. package/dist/templates/copilot/hooks.json +8 -0
  126. package/dist/templates/copilot/prompts/start.prompt.md +13 -16
  127. package/dist/templates/cursor/agents/trellis-check.md +94 -0
  128. package/dist/templates/cursor/agents/trellis-implement.md +94 -0
  129. package/dist/templates/cursor/agents/trellis-research.md +137 -0
  130. package/dist/templates/cursor/hooks.json +24 -0
  131. package/dist/templates/cursor/index.d.ts +6 -17
  132. package/dist/templates/cursor/index.d.ts.map +1 -1
  133. package/dist/templates/cursor/index.js +6 -37
  134. package/dist/templates/cursor/index.js.map +1 -1
  135. package/dist/templates/droid/droids/trellis-check.md +94 -0
  136. package/dist/templates/droid/droids/trellis-implement.md +94 -0
  137. package/dist/templates/droid/droids/trellis-research.md +137 -0
  138. package/dist/templates/droid/index.d.ts +7 -19
  139. package/dist/templates/droid/index.d.ts.map +1 -1
  140. package/dist/templates/droid/index.js +7 -39
  141. package/dist/templates/droid/index.js.map +1 -1
  142. package/dist/templates/droid/settings.json +59 -0
  143. package/dist/templates/extract.d.ts +7 -193
  144. package/dist/templates/extract.d.ts.map +1 -1
  145. package/dist/templates/extract.js +7 -310
  146. package/dist/templates/extract.js.map +1 -1
  147. package/dist/templates/gemini/agents/trellis-check.md +94 -0
  148. package/dist/templates/gemini/agents/trellis-implement.md +94 -0
  149. package/dist/templates/gemini/agents/trellis-research.md +137 -0
  150. package/dist/templates/gemini/index.d.ts +6 -14
  151. package/dist/templates/gemini/index.d.ts.map +1 -1
  152. package/dist/templates/gemini/index.js +6 -37
  153. package/dist/templates/gemini/index.js.map +1 -1
  154. package/dist/templates/gemini/settings.json +28 -0
  155. package/dist/templates/kiro/agents/trellis-check.json +13 -0
  156. package/dist/templates/kiro/agents/trellis-implement.json +13 -0
  157. package/dist/templates/kiro/agents/trellis-research.json +21 -0
  158. package/dist/templates/kiro/index.d.ts +11 -11
  159. package/dist/templates/kiro/index.d.ts.map +1 -1
  160. package/dist/templates/kiro/index.js +11 -33
  161. package/dist/templates/kiro/index.js.map +1 -1
  162. package/dist/templates/opencode/agents/{check.md → trellis-check.md} +3 -30
  163. package/dist/templates/opencode/agents/{implement.md → trellis-implement.md} +1 -1
  164. package/dist/templates/opencode/agents/{research.md → trellis-research.md} +1 -2
  165. package/dist/templates/opencode/plugins/inject-subagent-context.js +18 -190
  166. package/dist/templates/opencode/plugins/inject-workflow-state.js +172 -0
  167. package/dist/templates/opencode/plugins/session-start.js +76 -39
  168. package/dist/templates/qoder/agents/trellis-check.md +94 -0
  169. package/dist/templates/qoder/agents/trellis-implement.md +94 -0
  170. package/dist/templates/qoder/agents/trellis-research.md +137 -0
  171. package/dist/templates/qoder/index.d.ts +7 -10
  172. package/dist/templates/qoder/index.d.ts.map +1 -1
  173. package/dist/templates/qoder/index.js +7 -32
  174. package/dist/templates/qoder/index.js.map +1 -1
  175. package/dist/templates/qoder/settings.json +47 -0
  176. package/dist/templates/shared-hooks/index.d.ts +19 -0
  177. package/dist/templates/shared-hooks/index.d.ts.map +1 -0
  178. package/dist/templates/shared-hooks/index.js +30 -0
  179. package/dist/templates/shared-hooks/index.js.map +1 -0
  180. package/dist/templates/{iflow/hooks → shared-hooks}/inject-subagent-context.py +77 -266
  181. package/dist/templates/shared-hooks/inject-workflow-state.py +244 -0
  182. package/dist/templates/{claude/hooks → shared-hooks}/session-start.py +172 -55
  183. package/dist/templates/template-utils.d.ts +26 -0
  184. package/dist/templates/template-utils.d.ts.map +1 -0
  185. package/dist/templates/template-utils.js +60 -0
  186. package/dist/templates/template-utils.js.map +1 -0
  187. package/dist/templates/trellis/config.yaml +6 -0
  188. package/dist/templates/trellis/index.d.ts +1 -15
  189. package/dist/templates/trellis/index.d.ts.map +1 -1
  190. package/dist/templates/trellis/index.js +2 -29
  191. package/dist/templates/trellis/index.js.map +1 -1
  192. package/dist/templates/trellis/scripts/common/cli_adapter.py +31 -8
  193. package/dist/templates/trellis/scripts/common/config.py +126 -1
  194. package/dist/templates/trellis/scripts/common/git_context.py +25 -2
  195. package/dist/templates/trellis/scripts/common/task_context.py +23 -28
  196. package/dist/templates/trellis/scripts/common/task_store.py +0 -12
  197. package/dist/templates/trellis/scripts/common/types.py +0 -2
  198. package/dist/templates/trellis/scripts/common/workflow_phase.py +176 -0
  199. package/dist/templates/trellis/scripts/task.py +13 -35
  200. package/dist/templates/trellis/workflow.md +283 -298
  201. package/dist/types/ai-tools.d.ts +30 -3
  202. package/dist/types/ai-tools.d.ts.map +1 -1
  203. package/dist/types/ai-tools.js +119 -15
  204. package/dist/types/ai-tools.js.map +1 -1
  205. package/dist/types/migration.d.ts +8 -1
  206. package/dist/types/migration.d.ts.map +1 -1
  207. package/dist/utils/project-detector.d.ts +2 -0
  208. package/dist/utils/project-detector.d.ts.map +1 -1
  209. package/dist/utils/project-detector.js +120 -11
  210. package/dist/utils/project-detector.js.map +1 -1
  211. package/dist/utils/task-json.d.ts +46 -0
  212. package/dist/utils/task-json.d.ts.map +1 -0
  213. package/dist/utils/task-json.js +49 -0
  214. package/dist/utils/task-json.js.map +1 -0
  215. package/package.json +3 -2
  216. package/dist/configurators/iflow.d.ts +0 -33
  217. package/dist/configurators/iflow.d.ts.map +0 -1
  218. package/dist/configurators/iflow.js +0 -99
  219. package/dist/configurators/iflow.js.map +0 -1
  220. package/dist/templates/antigravity/index.d.ts +0 -12
  221. package/dist/templates/antigravity/index.d.ts.map +0 -1
  222. package/dist/templates/antigravity/index.js +0 -29
  223. package/dist/templates/antigravity/index.js.map +0 -1
  224. package/dist/templates/claude/agents/debug.md +0 -106
  225. package/dist/templates/claude/agents/dispatch.md +0 -213
  226. package/dist/templates/claude/agents/plan.md +0 -396
  227. package/dist/templates/claude/agents/research.md +0 -120
  228. package/dist/templates/claude/commands/trellis/brainstorm.md +0 -487
  229. package/dist/templates/claude/commands/trellis/break-loop.md +0 -125
  230. package/dist/templates/claude/commands/trellis/check-cross-layer.md +0 -153
  231. package/dist/templates/claude/commands/trellis/check.md +0 -25
  232. package/dist/templates/claude/commands/trellis/create-command.md +0 -154
  233. package/dist/templates/claude/commands/trellis/finish-work.md +0 -153
  234. package/dist/templates/claude/commands/trellis/integrate-skill.md +0 -219
  235. package/dist/templates/claude/commands/trellis/onboard.md +0 -358
  236. package/dist/templates/claude/commands/trellis/parallel.md +0 -192
  237. package/dist/templates/claude/commands/trellis/record-session.md +0 -62
  238. package/dist/templates/claude/commands/trellis/start.md +0 -393
  239. package/dist/templates/claude/commands/trellis/update-spec.md +0 -354
  240. package/dist/templates/claude/hooks/inject-subagent-context.py +0 -803
  241. package/dist/templates/claude/hooks/ralph-loop.py +0 -396
  242. package/dist/templates/codebuddy/commands/trellis/before-dev.md +0 -29
  243. package/dist/templates/codebuddy/commands/trellis/brainstorm.md +0 -487
  244. package/dist/templates/codebuddy/commands/trellis/break-loop.md +0 -107
  245. package/dist/templates/codebuddy/commands/trellis/check-cross-layer.md +0 -153
  246. package/dist/templates/codebuddy/commands/trellis/check.md +0 -25
  247. package/dist/templates/codebuddy/commands/trellis/create-command.md +0 -154
  248. package/dist/templates/codebuddy/commands/trellis/finish-work.md +0 -143
  249. package/dist/templates/codebuddy/commands/trellis/integrate-skill.md +0 -219
  250. package/dist/templates/codebuddy/commands/trellis/onboard.md +0 -358
  251. package/dist/templates/codebuddy/commands/trellis/record-session.md +0 -61
  252. package/dist/templates/codebuddy/commands/trellis/start.md +0 -373
  253. package/dist/templates/codex/agents/check.toml +0 -23
  254. package/dist/templates/codex/agents/research.toml +0 -26
  255. package/dist/templates/codex/codex-skills/parallel/SKILL.md +0 -194
  256. package/dist/templates/cursor/commands/trellis-before-dev.md +0 -29
  257. package/dist/templates/cursor/commands/trellis-brainstorm.md +0 -487
  258. package/dist/templates/cursor/commands/trellis-break-loop.md +0 -107
  259. package/dist/templates/cursor/commands/trellis-check-cross-layer.md +0 -153
  260. package/dist/templates/cursor/commands/trellis-check.md +0 -25
  261. package/dist/templates/cursor/commands/trellis-create-command.md +0 -154
  262. package/dist/templates/cursor/commands/trellis-finish-work.md +0 -143
  263. package/dist/templates/cursor/commands/trellis-integrate-skill.md +0 -219
  264. package/dist/templates/cursor/commands/trellis-onboard.md +0 -358
  265. package/dist/templates/cursor/commands/trellis-record-session.md +0 -62
  266. package/dist/templates/cursor/commands/trellis-start.md +0 -373
  267. package/dist/templates/cursor/commands/trellis-update-spec.md +0 -354
  268. package/dist/templates/droid/commands/trellis/before-dev.md +0 -33
  269. package/dist/templates/droid/commands/trellis/break-loop.md +0 -111
  270. package/dist/templates/droid/commands/trellis/check-cross-layer.md +0 -157
  271. package/dist/templates/droid/commands/trellis/check.md +0 -29
  272. package/dist/templates/droid/commands/trellis/create-command.md +0 -158
  273. package/dist/templates/droid/commands/trellis/finish-work.md +0 -147
  274. package/dist/templates/droid/commands/trellis/integrate-skill.md +0 -223
  275. package/dist/templates/droid/commands/trellis/onboard.md +0 -362
  276. package/dist/templates/droid/commands/trellis/record-session.md +0 -66
  277. package/dist/templates/droid/commands/trellis/start.md +0 -377
  278. package/dist/templates/droid/commands/trellis/update-spec.md +0 -358
  279. package/dist/templates/gemini/commands/trellis/before-dev.toml +0 -33
  280. package/dist/templates/gemini/commands/trellis/brainstorm.toml +0 -435
  281. package/dist/templates/gemini/commands/trellis/break-loop.toml +0 -129
  282. package/dist/templates/gemini/commands/trellis/check-cross-layer.toml +0 -147
  283. package/dist/templates/gemini/commands/trellis/check.toml +0 -29
  284. package/dist/templates/gemini/commands/trellis/create-command.toml +0 -119
  285. package/dist/templates/gemini/commands/trellis/finish-work.toml +0 -133
  286. package/dist/templates/gemini/commands/trellis/integrate-skill.toml +0 -104
  287. package/dist/templates/gemini/commands/trellis/onboard.toml +0 -111
  288. package/dist/templates/gemini/commands/trellis/record-session.toml +0 -66
  289. package/dist/templates/gemini/commands/trellis/start.toml +0 -354
  290. package/dist/templates/gemini/commands/trellis/update-spec.toml +0 -132
  291. package/dist/templates/iflow/agents/debug.md +0 -106
  292. package/dist/templates/iflow/agents/dispatch.md +0 -213
  293. package/dist/templates/iflow/agents/plan.md +0 -396
  294. package/dist/templates/iflow/agents/research.md +0 -120
  295. package/dist/templates/iflow/commands/trellis/before-dev.md +0 -29
  296. package/dist/templates/iflow/commands/trellis/brainstorm.md +0 -487
  297. package/dist/templates/iflow/commands/trellis/check-cross-layer.md +0 -153
  298. package/dist/templates/iflow/commands/trellis/check.md +0 -25
  299. package/dist/templates/iflow/commands/trellis/create-command.md +0 -152
  300. package/dist/templates/iflow/commands/trellis/finish-work.md +0 -153
  301. package/dist/templates/iflow/commands/trellis/integrate-skill.md +0 -219
  302. package/dist/templates/iflow/commands/trellis/onboard.md +0 -358
  303. package/dist/templates/iflow/commands/trellis/parallel.md +0 -192
  304. package/dist/templates/iflow/commands/trellis/record-session.md +0 -62
  305. package/dist/templates/iflow/commands/trellis/start.md +0 -393
  306. package/dist/templates/iflow/commands/trellis/update-spec.md +0 -354
  307. package/dist/templates/iflow/hooks/ralph-loop.py +0 -395
  308. package/dist/templates/iflow/hooks/session-start.py +0 -403
  309. package/dist/templates/iflow/index.d.ts +0 -54
  310. package/dist/templates/iflow/index.d.ts.map +0 -1
  311. package/dist/templates/iflow/index.js +0 -85
  312. package/dist/templates/iflow/index.js.map +0 -1
  313. package/dist/templates/iflow/settings.json +0 -60
  314. package/dist/templates/kilo/index.d.ts +0 -16
  315. package/dist/templates/kilo/index.d.ts.map +0 -1
  316. package/dist/templates/kilo/index.js +0 -39
  317. package/dist/templates/kilo/index.js.map +0 -1
  318. package/dist/templates/kilo/workflows/before-dev.md +0 -29
  319. package/dist/templates/kilo/workflows/brainstorm.md +0 -487
  320. package/dist/templates/kilo/workflows/break-loop.md +0 -125
  321. package/dist/templates/kilo/workflows/check-cross-layer.md +0 -153
  322. package/dist/templates/kilo/workflows/check.md +0 -25
  323. package/dist/templates/kilo/workflows/create-command.md +0 -152
  324. package/dist/templates/kilo/workflows/finish-work.md +0 -129
  325. package/dist/templates/kilo/workflows/integrate-skill.md +0 -219
  326. package/dist/templates/kilo/workflows/onboard.md +0 -358
  327. package/dist/templates/kilo/workflows/parallel.md +0 -193
  328. package/dist/templates/kilo/workflows/record-session.md +0 -62
  329. package/dist/templates/kilo/workflows/start.md +0 -387
  330. package/dist/templates/kilo/workflows/update-spec.md +0 -285
  331. package/dist/templates/kiro/skills/before-dev/SKILL.md +0 -34
  332. package/dist/templates/kiro/skills/brainstorm/SKILL.md +0 -492
  333. package/dist/templates/kiro/skills/break-loop/SKILL.md +0 -130
  334. package/dist/templates/kiro/skills/check/SKILL.md +0 -30
  335. package/dist/templates/kiro/skills/check-cross-layer/SKILL.md +0 -158
  336. package/dist/templates/kiro/skills/create-command/SKILL.md +0 -101
  337. package/dist/templates/kiro/skills/finish-work/SKILL.md +0 -148
  338. package/dist/templates/kiro/skills/integrate-skill/SKILL.md +0 -221
  339. package/dist/templates/kiro/skills/onboard/SKILL.md +0 -363
  340. package/dist/templates/kiro/skills/record-session/SKILL.md +0 -67
  341. package/dist/templates/kiro/skills/start/SKILL.md +0 -351
  342. package/dist/templates/kiro/skills/update-spec/SKILL.md +0 -335
  343. package/dist/templates/markdown/spec/backend/directory-structure.md +0 -292
  344. package/dist/templates/markdown/spec/backend/index.md +0 -40
  345. package/dist/templates/markdown/spec/backend/script-conventions.md +0 -742
  346. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md +0 -118
  347. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md +0 -394
  348. package/dist/templates/opencode/agents/debug.md +0 -129
  349. package/dist/templates/opencode/agents/dispatch.md +0 -223
  350. package/dist/templates/opencode/agents/trellis-plan.md +0 -427
  351. package/dist/templates/opencode/commands/trellis/before-dev.md +0 -29
  352. package/dist/templates/opencode/commands/trellis/brainstorm.md +0 -487
  353. package/dist/templates/opencode/commands/trellis/break-loop.md +0 -125
  354. package/dist/templates/opencode/commands/trellis/check-cross-layer.md +0 -153
  355. package/dist/templates/opencode/commands/trellis/check.md +0 -25
  356. package/dist/templates/opencode/commands/trellis/create-command.md +0 -154
  357. package/dist/templates/opencode/commands/trellis/finish-work.md +0 -144
  358. package/dist/templates/opencode/commands/trellis/integrate-skill.md +0 -219
  359. package/dist/templates/opencode/commands/trellis/migrate-specs.md +0 -0
  360. package/dist/templates/opencode/commands/trellis/onboard.md +0 -358
  361. package/dist/templates/opencode/commands/trellis/parallel.md +0 -193
  362. package/dist/templates/opencode/commands/trellis/record-session.md +0 -62
  363. package/dist/templates/opencode/commands/trellis/start.md +0 -351
  364. package/dist/templates/opencode/commands/trellis/update-spec.md +0 -354
  365. package/dist/templates/qoder/skills/before-dev/SKILL.md +0 -34
  366. package/dist/templates/qoder/skills/brainstorm/SKILL.md +0 -492
  367. package/dist/templates/qoder/skills/break-loop/SKILL.md +0 -130
  368. package/dist/templates/qoder/skills/check/SKILL.md +0 -30
  369. package/dist/templates/qoder/skills/check-cross-layer/SKILL.md +0 -158
  370. package/dist/templates/qoder/skills/create-command/SKILL.md +0 -101
  371. package/dist/templates/qoder/skills/finish-work/SKILL.md +0 -134
  372. package/dist/templates/qoder/skills/integrate-skill/SKILL.md +0 -221
  373. package/dist/templates/qoder/skills/onboard/SKILL.md +0 -363
  374. package/dist/templates/qoder/skills/record-session/SKILL.md +0 -67
  375. package/dist/templates/qoder/skills/start/SKILL.md +0 -388
  376. package/dist/templates/qoder/skills/update-spec/SKILL.md +0 -290
  377. package/dist/templates/trellis/scripts/common/phase.py +0 -254
  378. package/dist/templates/trellis/scripts/common/registry.py +0 -335
  379. package/dist/templates/trellis/scripts/common/worktree.py +0 -305
  380. package/dist/templates/trellis/scripts/create_bootstrap.py +0 -298
  381. package/dist/templates/trellis/scripts/multi_agent/__init__.py +0 -5
  382. package/dist/templates/trellis/scripts/multi_agent/_bootstrap.py +0 -17
  383. package/dist/templates/trellis/scripts/multi_agent/cleanup.py +0 -398
  384. package/dist/templates/trellis/scripts/multi_agent/create_pr.py +0 -620
  385. package/dist/templates/trellis/scripts/multi_agent/plan.py +0 -213
  386. package/dist/templates/trellis/scripts/multi_agent/start.py +0 -539
  387. package/dist/templates/trellis/scripts/multi_agent/status.py +0 -76
  388. package/dist/templates/trellis/scripts/multi_agent/status_display.py +0 -542
  389. package/dist/templates/trellis/scripts/multi_agent/status_monitor.py +0 -225
  390. package/dist/templates/trellis/scripts-shell-archive/add-session.sh +0 -384
  391. package/dist/templates/trellis/scripts-shell-archive/common/developer.sh +0 -129
  392. package/dist/templates/trellis/scripts-shell-archive/common/git-context.sh +0 -263
  393. package/dist/templates/trellis/scripts-shell-archive/common/paths.sh +0 -208
  394. package/dist/templates/trellis/scripts-shell-archive/common/phase.sh +0 -150
  395. package/dist/templates/trellis/scripts-shell-archive/common/registry.sh +0 -247
  396. package/dist/templates/trellis/scripts-shell-archive/common/task-queue.sh +0 -142
  397. package/dist/templates/trellis/scripts-shell-archive/common/task-utils.sh +0 -151
  398. package/dist/templates/trellis/scripts-shell-archive/common/worktree.sh +0 -128
  399. package/dist/templates/trellis/scripts-shell-archive/create-bootstrap.sh +0 -299
  400. package/dist/templates/trellis/scripts-shell-archive/get-context.sh +0 -7
  401. package/dist/templates/trellis/scripts-shell-archive/get-developer.sh +0 -15
  402. package/dist/templates/trellis/scripts-shell-archive/init-developer.sh +0 -34
  403. package/dist/templates/trellis/scripts-shell-archive/multi-agent/cleanup.sh +0 -396
  404. package/dist/templates/trellis/scripts-shell-archive/multi-agent/create-pr.sh +0 -241
  405. package/dist/templates/trellis/scripts-shell-archive/multi-agent/plan.sh +0 -207
  406. package/dist/templates/trellis/scripts-shell-archive/multi-agent/start.sh +0 -317
  407. package/dist/templates/trellis/scripts-shell-archive/multi-agent/status.sh +0 -828
  408. package/dist/templates/trellis/scripts-shell-archive/task.sh +0 -1204
  409. package/dist/templates/trellis/worktree.yaml +0 -47
  410. package/dist/templates/windsurf/index.d.ts +0 -21
  411. package/dist/templates/windsurf/index.d.ts.map +0 -1
  412. package/dist/templates/windsurf/index.js +0 -44
  413. package/dist/templates/windsurf/index.js.map +0 -1
  414. package/dist/templates/windsurf/workflows/trellis-before-dev.md +0 -31
  415. package/dist/templates/windsurf/workflows/trellis-brainstorm.md +0 -491
  416. package/dist/templates/windsurf/workflows/trellis-break-loop.md +0 -111
  417. package/dist/templates/windsurf/workflows/trellis-check-cross-layer.md +0 -157
  418. package/dist/templates/windsurf/workflows/trellis-check.md +0 -27
  419. package/dist/templates/windsurf/workflows/trellis-create-command.md +0 -154
  420. package/dist/templates/windsurf/workflows/trellis-finish-work.md +0 -147
  421. package/dist/templates/windsurf/workflows/trellis-integrate-skill.md +0 -220
  422. package/dist/templates/windsurf/workflows/trellis-onboard.md +0 -362
  423. package/dist/templates/windsurf/workflows/trellis-record-session.md +0 -66
  424. package/dist/templates/windsurf/workflows/trellis-start.md +0 -373
  425. package/dist/templates/windsurf/workflows/trellis-update-spec.md +0 -358
  426. /package/dist/templates/{claude/commands/trellis → common/skills}/before-dev.md +0 -0
  427. /package/dist/templates/{claude/hooks → shared-hooks}/statusline.py +0 -0
@@ -1,388 +0,0 @@
1
- ---
2
- name: start
3
- description: "Initializes an AI development session by reading workflow guides, developer identity, git status, active tasks, and project guidelines from .trellis/. Classifies incoming tasks and routes to brainstorm, direct edit, or task workflow. Use when beginning a new coding session, resuming work, starting a new task, or re-establishing project context."
4
- ---
5
-
6
- # Start Session
7
-
8
- Initialize your AI development session and begin working on tasks.
9
-
10
- ---
11
-
12
- ## Operation Types
13
-
14
- | Marker | Meaning | Executor |
15
- |--------|---------|----------|
16
- | `[AI]` | Bash scripts or Task calls executed by AI | You (AI) |
17
- | `[USER]` | Skills executed by user | User |
18
-
19
- ---
20
-
21
- ## Initialization `[AI]`
22
-
23
- ### Step 1: Understand Development Workflow
24
-
25
- First, read the workflow guide to understand the development process:
26
-
27
- ```bash
28
- cat .trellis/workflow.md
29
- ```
30
-
31
- **Follow the instructions in workflow.md** - it contains:
32
- - Core principles (Read Before Write, Follow Standards, etc.)
33
- - File system structure
34
- - Development process
35
- - Best practices
36
-
37
- ### Step 2: Get Current Context
38
-
39
- ```bash
40
- python3 ./.trellis/scripts/get_context.py
41
- ```
42
-
43
- This shows: developer identity, git status, current task (if any), active tasks.
44
-
45
- ### Step 3: Read Guidelines Index
46
-
47
- ```bash
48
- python3 ./.trellis/scripts/get_context.py --mode packages
49
- ```
50
-
51
- This shows available packages and their spec layers. Read the relevant spec indexes:
52
-
53
- ```bash
54
- cat .trellis/spec/<package>/<layer>/index.md # Package-specific guidelines
55
- cat .trellis/spec/guides/index.md # Thinking guides (always read)
56
- ```
57
-
58
- > **Important**: The index files are navigation — they list the actual guideline files (e.g., `error-handling.md`, `conventions.md`, `mock-strategies.md`).
59
- > At this step, just read the indexes to understand what's available.
60
- > When you start actual development, you MUST go back and read the specific guideline files relevant to your task, as listed in the index's Pre-Development Checklist.
61
-
62
- ### Step 4: Report and Ask
63
-
64
- Report what you learned and ask: "What would you like to work on?"
65
-
66
- ---
67
-
68
- ## Task Classification
69
-
70
- When user describes a task, classify it:
71
-
72
- | Type | Criteria | Workflow |
73
- |------|----------|----------|
74
- | **Question** | User asks about code, architecture, or how something works | Answer directly |
75
- | **Trivial Fix** | Typo fix, comment update, single-line change | Direct Edit |
76
- | **Simple Task** | Clear goal, 1-2 files, well-defined scope | Quick confirm → Implement |
77
- | **Complex Task** | Vague goal, multiple files, architectural decisions | **Brainstorm → Task Workflow** |
78
-
79
- ### Classification Signals
80
-
81
- **Trivial/Simple indicators:**
82
- - User specifies exact file and change
83
- - "Fix the typo in X"
84
- - "Add field Y to component Z"
85
- - Clear acceptance criteria already stated
86
-
87
- **Complex indicators:**
88
- - "I want to add a feature for..."
89
- - "Can you help me improve..."
90
- - Mentions multiple areas or systems
91
- - No clear implementation path
92
- - User seems unsure about approach
93
-
94
- ### Decision Rule
95
-
96
- > **If in doubt, use Brainstorm + Task Workflow.**
97
- >
98
- > Task Workflow ensures specs are injected to agents, resulting in higher quality code.
99
- > The overhead is minimal, but the benefit is significant.
100
-
101
- ---
102
-
103
- ## Question / Trivial Fix
104
-
105
- For questions or trivial fixes, work directly:
106
-
107
- 1. Answer question or make the fix
108
- 2. If code was changed, remind user to run `$finish-work`
109
-
110
- ---
111
-
112
- ## Simple Task
113
-
114
- For simple, well-defined tasks:
115
-
116
- 1. Quick confirm: "I understand you want to [goal]. Shall I proceed?"
117
- 2. If no, clarify and confirm again
118
- 3. **If yes: execute ALL steps below without stopping. Do NOT ask for additional confirmation between steps.**
119
- - Create task directory (Phase 1 Path B, Step 2)
120
- - Write PRD (Step 3)
121
- - Research codebase (Phase 2, Step 5)
122
- - Configure context (Step 6)
123
- - Activate task (Step 7)
124
- - Implement (Phase 3, Step 8)
125
- - Check quality (Step 9)
126
- - Complete (Step 10)
127
-
128
- ---
129
-
130
- ## Complex Task - Brainstorm First
131
-
132
- For complex or vague tasks, **automatically start the brainstorm process** — do NOT skip directly to implementation.
133
-
134
- See the `$brainstorm` skill for the full process. Summary:
135
-
136
- 1. **Acknowledge and classify** - State your understanding
137
- 2. **Create task directory** - Track evolving requirements in `prd.md`
138
- 3. **Ask questions one at a time** - Update PRD after each answer
139
- 4. **Propose approaches** - For architectural decisions
140
- 5. **Confirm final requirements** - Get explicit approval
141
- 6. **Proceed to Task Workflow** - With clear requirements in PRD
142
-
143
- > **Subtask Decomposition**: If brainstorm reveals multiple independent work items,
144
- > consider creating subtasks using `--parent` flag or `add-subtask` command.
145
- > See the brainstorm skill's Step 8 for details.
146
-
147
- ---
148
-
149
- ## Task Workflow (Development Tasks)
150
-
151
- **Why this workflow?**
152
- - Research Agent analyzes what specs are needed
153
- - Specs are configured in jsonl files
154
- - Implement Agent receives specs via Hook injection
155
- - Check Agent verifies against specs
156
- - Result: Code that follows project conventions automatically
157
-
158
- ### Overview: Two Entry Points
159
-
160
- ```
161
- From Brainstorm (Complex Task):
162
- PRD confirmed → Research → Configure Context → Activate → Implement → Check → Complete
163
-
164
- From Simple Task:
165
- Confirm → Create Task → Write PRD → Research → Configure Context → Activate → Implement → Check → Complete
166
- ```
167
-
168
- **Key principle: Research happens AFTER requirements are clear (PRD exists).**
169
-
170
- ---
171
-
172
- ### Phase 1: Establish Requirements
173
-
174
- #### Path A: From Brainstorm (skip to Phase 2)
175
-
176
- PRD and task directory already exist from brainstorm. Skip directly to Phase 2.
177
-
178
- #### Path B: From Simple Task
179
-
180
- **Step 1: Confirm Understanding** `[AI]`
181
-
182
- Quick confirm:
183
- - What is the goal?
184
- - What type of development? (frontend / backend / fullstack)
185
- - Any specific requirements or constraints?
186
-
187
- **Step 2: Create Task Directory** `[AI]`
188
-
189
- ```bash
190
- TASK_DIR=$(python3 ./.trellis/scripts/task.py create "<title>" --slug <name>)
191
- ```
192
-
193
- **Step 3: Write PRD** `[AI]`
194
-
195
- Create `prd.md` in the task directory with:
196
-
197
- ```markdown
198
- # <Task Title>
199
-
200
- ## Goal
201
- <What we're trying to achieve>
202
-
203
- ## Requirements
204
- - <Requirement 1>
205
- - <Requirement 2>
206
-
207
- ## Acceptance Criteria
208
- - [ ] <Criterion 1>
209
- - [ ] <Criterion 2>
210
-
211
- ## Technical Notes
212
- <Any technical decisions or constraints>
213
- ```
214
-
215
- ---
216
-
217
- ### Phase 2: Prepare for Implementation (shared)
218
-
219
- > Both paths converge here. PRD and task directory must exist before proceeding.
220
-
221
- **Step 4: Code-Spec Depth Check** `[AI]`
222
-
223
- If the task touches infra or cross-layer contracts, do not start implementation until code-spec depth is defined.
224
-
225
- Trigger this requirement when the change includes any of:
226
- - New or changed command/API signatures
227
- - Database schema or migration changes
228
- - Infra integrations (storage, queue, cache, secrets, env contracts)
229
- - Cross-layer payload transformations
230
-
231
- Must-have before proceeding:
232
- - [ ] Target spec files to update are identified
233
- - [ ] Concrete contract is defined (signature, fields, env keys)
234
- - [ ] Validation and error matrix is defined
235
- - [ ] At least one Good/Base/Bad case is defined
236
-
237
- **Step 5: Research the Codebase** `[AI]`
238
-
239
- Based on the confirmed PRD, call Research Agent to find relevant specs and patterns:
240
-
241
- ```
242
- Task(
243
- subagent_type: "research",
244
- prompt: "Analyze the codebase for this task:
245
-
246
- Task: <goal from PRD>
247
- Type: <frontend/backend/fullstack>
248
-
249
- Please find:
250
- 1. Relevant spec files in .trellis/spec/
251
- 2. Existing code patterns to follow (find 2-3 examples)
252
- 3. Files that will likely need modification
253
-
254
- Output:
255
- ## Relevant Specs
256
- - <path>: <why it's relevant>
257
-
258
- ## Code Patterns Found
259
- - <pattern>: <example file path>
260
-
261
- ## Files to Modify
262
- - <path>: <what change>",
263
- model: "opus"
264
- )
265
- ```
266
-
267
- **Step 6: Configure Context** `[AI]`
268
-
269
- Initialize default context:
270
-
271
- ```bash
272
- python3 ./.trellis/scripts/task.py init-context "$TASK_DIR" <type>
273
- # type: backend | frontend | fullstack
274
- ```
275
-
276
- Add specs found by Research Agent:
277
-
278
- ```bash
279
- # For each relevant spec and code pattern:
280
- python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" implement "<path>" "<reason>"
281
- python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" check "<path>" "<reason>"
282
- ```
283
-
284
- **Step 7: Activate Task** `[AI]`
285
-
286
- ```bash
287
- python3 ./.trellis/scripts/task.py start "$TASK_DIR"
288
- ```
289
-
290
- This sets `.current-task` so hooks can inject context.
291
-
292
- ---
293
-
294
- ### Phase 3: Execute (shared)
295
-
296
- **Step 8: Implement** `[AI]`
297
-
298
- Call Implement Agent (specs are auto-injected by hook):
299
-
300
- ```
301
- Task(
302
- subagent_type: "implement",
303
- prompt: "Implement the task described in prd.md.
304
-
305
- Follow all specs that have been injected into your context.
306
- Run lint and typecheck before finishing.",
307
- model: "opus"
308
- )
309
- ```
310
-
311
- **Step 9: Check Quality** `[AI]`
312
-
313
- Call Check Agent (specs are auto-injected by hook):
314
-
315
- ```
316
- Task(
317
- subagent_type: "check",
318
- prompt: "Review all code changes against the specs.
319
-
320
- Fix any issues you find directly.
321
- Ensure lint and typecheck pass.",
322
- model: "opus"
323
- )
324
- ```
325
-
326
- **Step 10: Complete** `[AI]`
327
-
328
- 1. Verify lint and typecheck pass
329
- 2. Report what was implemented
330
- 3. Remind user to:
331
- - Test the changes
332
- - Commit when ready
333
- - Run `$record-session` to record this session
334
-
335
- ---
336
-
337
- ## Continuing Existing Task
338
-
339
- If `get_context.py` shows a current task:
340
-
341
- 1. Read the task's `prd.md` to understand the goal
342
- 2. Check `task.json` for current status and phase
343
- 3. Ask user: "Continue working on <task-name>?"
344
-
345
- If yes, resume from the appropriate step (usually Step 7 or 8).
346
-
347
- ---
348
-
349
- ## Skills Reference
350
-
351
- ### User Skills `[USER]`
352
-
353
- | Command | When to Use |
354
- |---------|-------------|
355
- | `$start` | Begin a session (this skill) |
356
- | `$parallel` | Complex tasks needing isolated worktree |
357
- | `$finish-work` | Before committing changes |
358
- | `$record-session` | After completing a task |
359
-
360
- ### AI Scripts `[AI]`
361
-
362
- | Script | Purpose |
363
- |--------|---------|
364
- | `python3 ./.trellis/scripts/get_context.py` | Get session context |
365
- | `python3 ./.trellis/scripts/task.py create` | Create task directory |
366
- | `python3 ./.trellis/scripts/task.py init-context` | Initialize jsonl files |
367
- | `python3 ./.trellis/scripts/task.py add-context` | Add spec to jsonl |
368
- | `python3 ./.trellis/scripts/task.py start` | Set current task |
369
- | `python3 ./.trellis/scripts/task.py finish` | Clear current task |
370
- | `python3 ./.trellis/scripts/task.py archive` | Archive completed task |
371
-
372
- ### Sub Agents `[AI]`
373
-
374
- | Agent | Purpose | Hook Injection |
375
- |-------|---------|----------------|
376
- | research | Analyze codebase | No (reads directly) |
377
- | implement | Write code | Yes (implement.jsonl) |
378
- | check | Review & fix | Yes (check.jsonl) |
379
- | debug | Fix specific issues | Yes (debug.jsonl) |
380
-
381
- ---
382
-
383
- ## Key Principle
384
-
385
- > **Specs are injected, not remembered.**
386
- >
387
- > The Task Workflow ensures agents receive relevant specs automatically.
388
- > This is more reliable than hoping the AI "remembers" conventions.
@@ -1,290 +0,0 @@
1
- ---
2
- name: update-spec
3
- description: "Captures executable contracts and coding knowledge into .trellis/spec/ documents after implementation, debugging, or design decisions. Enforces code-spec depth for infra and cross-layer changes with mandatory sections for signatures, contracts, validation matrices, and test points. Use when a feature is implemented, a bug is fixed, a design decision is made, a new pattern is discovered, or cross-layer contracts change."
4
- ---
5
-
6
- # Update Spec - Capture Knowledge into Specifications
7
-
8
- When you learn something valuable (from debugging, implementing, or discussion), use this command to update the relevant spec documents.
9
-
10
- **Timing**: After completing a task, fixing a bug, or discovering a new pattern
11
-
12
- ---
13
-
14
- ## When to Update Specs
15
-
16
- | Trigger | Example | Target Spec |
17
- |---------|---------|-------------|
18
- | **Implemented a feature** | Added template download with giget | Relevant `backend/` or `frontend/` file |
19
- | **Made a design decision** | Used type field + mapping table for extensibility | Relevant spec + "Design Decisions" section |
20
- | **Fixed a bug** | Found a subtle issue with error handling | `backend/error-handling.md` |
21
- | **Discovered a pattern** | Found a better way to structure code | Relevant `backend/` or `frontend/` file |
22
- | **Hit a gotcha** | Learned that X must be done before Y | Relevant spec + "Common Mistakes" section |
23
- | **Established a convention** | Team agreed on naming pattern | `quality-guidelines.md` |
24
- | **New thinking trigger** | "Don't forget to check X before doing Y" | `guides/*.md` (as a checklist item, not detailed rules) |
25
-
26
- **Key Insight**: Spec updates are NOT just for problems. Every feature implementation contains design decisions and project conventions that future AI/developers need to know.
27
-
28
- ---
29
-
30
- ## Spec Structure Overview
31
-
32
- ```
33
- .trellis/spec/
34
- ├── backend/ # Backend coding standards
35
- │ ├── index.md # Overview and links
36
- │ └── *.md # Topic-specific guidelines
37
- ├── frontend/ # Frontend coding standards
38
- │ ├── index.md # Overview and links
39
- │ └── *.md # Topic-specific guidelines
40
- └── guides/ # Thinking checklists (NOT coding specs!)
41
- ├── index.md # Guide index
42
- └── *.md # Topic-specific guides
43
- ```
44
-
45
- ### CRITICAL: Spec vs Guide - Know the Difference
46
-
47
- | Type | Location | Purpose | Content Style |
48
- |------|----------|---------|---------------|
49
- | **Spec** | `backend/*.md`, `frontend/*.md` | Tell AI "how to write code" | Detailed rules, code examples, forbidden patterns |
50
- | **Guide** | `guides/*.md` | Help AI "what to think about" | Checklists, questions, pointers to specs |
51
-
52
- **Decision Rule**: Ask yourself:
53
-
54
- - "This is **how to write** the code" → Put in `backend/` or `frontend/`
55
- - "This is **what to consider** before writing" → Put in `guides/`
56
-
57
- **Example**:
58
-
59
- | Learning | Wrong Location | Correct Location |
60
- |----------|----------------|------------------|
61
- | "Use `reconfigure()` not `TextIOWrapper` for Windows stdout" | ❌ `guides/cross-platform-thinking-guide.md` | ✅ `backend/script-conventions.md` |
62
- | "Remember to check encoding when writing cross-platform code" | ❌ `backend/script-conventions.md` | ✅ `guides/cross-platform-thinking-guide.md` |
63
-
64
- **Guides should be short checklists that point to specs**, not duplicate the detailed rules.
65
-
66
- ---
67
-
68
- ## Update Process
69
-
70
- ### Step 1: Identify What You Learned
71
-
72
- Answer these questions:
73
-
74
- 1. **What did you learn?** (Be specific)
75
- 2. **Why is it important?** (What problem does it prevent?)
76
- 3. **Where does it belong?** (Which spec file?)
77
-
78
- ### Step 2: Classify the Update Type
79
-
80
- | Type | Description | Action |
81
- |------|-------------|--------|
82
- | **Design Decision** | Why we chose approach X over Y | Add to "Design Decisions" section |
83
- | **Project Convention** | How we do X in this project | Add to relevant section with examples |
84
- | **New Pattern** | A reusable approach discovered | Add to "Patterns" section |
85
- | **Forbidden Pattern** | Something that causes problems | Add to "Anti-patterns" or "Don't" section |
86
- | **Common Mistake** | Easy-to-make error | Add to "Common Mistakes" section |
87
- | **Convention** | Agreed-upon standard | Add to relevant section |
88
- | **Gotcha** | Non-obvious behavior | Add warning callout |
89
-
90
- ### Step 3: Read the Target Spec
91
-
92
- Before editing, read the current spec to:
93
- - Understand existing structure
94
- - Avoid duplicating content
95
- - Find the right section for your update
96
-
97
- ```bash
98
- cat .trellis/spec/<category>/<file>.md
99
- ```
100
-
101
- ### Step 4: Make the Update
102
-
103
- Follow these principles:
104
-
105
- 1. **Be Specific**: Include concrete examples, not just abstract rules
106
- 2. **Explain Why**: State the problem this prevents
107
- 3. **Show Code**: Add code snippets for patterns
108
- 4. **Keep it Short**: One concept per section
109
-
110
- ### Step 5: Update the Index (if needed)
111
-
112
- If you added a new section or the spec status changed, update the category's `index.md`.
113
-
114
- ---
115
-
116
- ## Update Templates
117
-
118
- ### Adding a Design Decision
119
-
120
- ```markdown
121
- ### Design Decision: [Decision Name]
122
-
123
- **Context**: What problem were we solving?
124
-
125
- **Options Considered**:
126
- 1. Option A - brief description
127
- 2. Option B - brief description
128
-
129
- **Decision**: We chose Option X because...
130
-
131
- **Example**:
132
- \`\`\`typescript
133
- // How it's implemented
134
- code example
135
- \`\`\`
136
-
137
- **Extensibility**: How to extend this in the future...
138
- ```
139
-
140
- ### Adding a Project Convention
141
-
142
- ```markdown
143
- ### Convention: [Convention Name]
144
-
145
- **What**: Brief description of the convention.
146
-
147
- **Why**: Why we do it this way in this project.
148
-
149
- **Example**:
150
- \`\`\`typescript
151
- // How to follow this convention
152
- code example
153
- \`\`\`
154
-
155
- **Related**: Links to related conventions or specs.
156
- ```
157
-
158
- ### Adding a New Pattern
159
-
160
- ```markdown
161
- ### Pattern Name
162
-
163
- **Problem**: What problem does this solve?
164
-
165
- **Solution**: Brief description of the approach.
166
-
167
- **Example**:
168
- \`\`\`
169
- // Good
170
- code example
171
-
172
- // Bad
173
- code example
174
- \`\`\`
175
-
176
- **Why**: Explanation of why this works better.
177
- ```
178
-
179
- ### Adding a Forbidden Pattern
180
-
181
- ```markdown
182
- ### Don't: Pattern Name
183
-
184
- **Problem**:
185
- \`\`\`
186
- // Don't do this
187
- bad code example
188
- \`\`\`
189
-
190
- **Why it's bad**: Explanation of the issue.
191
-
192
- **Instead**:
193
- \`\`\`
194
- // Do this instead
195
- good code example
196
- \`\`\`
197
- ```
198
-
199
- ### Adding a Common Mistake
200
-
201
- ```markdown
202
- ### Common Mistake: Description
203
-
204
- **Symptom**: What goes wrong
205
-
206
- **Cause**: Why this happens
207
-
208
- **Fix**: How to correct it
209
-
210
- **Prevention**: How to avoid it in the future
211
- ```
212
-
213
- ### Adding a Gotcha
214
-
215
- ```markdown
216
- > **Warning**: Brief description of the non-obvious behavior.
217
- >
218
- > Details about when this happens and how to handle it.
219
- ```
220
-
221
- ---
222
-
223
- ## Interactive Mode
224
-
225
- If you're unsure what to update, answer these prompts:
226
-
227
- 1. **What did you just finish?**
228
- - [ ] Fixed a bug
229
- - [ ] Implemented a feature
230
- - [ ] Refactored code
231
- - [ ] Had a discussion about approach
232
-
233
- 2. **What did you learn or decide?**
234
- - Design decision (why X over Y)
235
- - Project convention (how we do X)
236
- - Non-obvious behavior (gotcha)
237
- - Better approach (pattern)
238
-
239
- 3. **Would future AI/developers need to know this?**
240
- - To understand how the code works → Yes, update spec
241
- - To maintain or extend the feature → Yes, update spec
242
- - To avoid repeating mistakes → Yes, update spec
243
- - Purely one-off implementation detail → Maybe skip
244
-
245
- 4. **Which area does it relate to?**
246
- - [ ] Backend code
247
- - [ ] Frontend code
248
- - [ ] Cross-layer data flow
249
- - [ ] Code organization/reuse
250
- - [ ] Quality/testing
251
-
252
- ---
253
-
254
- ## Quality Checklist
255
-
256
- Before finishing your spec update:
257
-
258
- - [ ] Is the content specific and actionable?
259
- - [ ] Did you include a code example?
260
- - [ ] Did you explain WHY, not just WHAT?
261
- - [ ] Is it in the right spec file?
262
- - [ ] Does it duplicate existing content?
263
- - [ ] Would a new team member understand it?
264
-
265
- ---
266
-
267
- ## Relationship to Other Commands
268
-
269
- ```
270
- Development Flow:
271
- Learn something → $update-spec → Knowledge captured
272
- ↑ ↓
273
- $break-loop ←──────────────────── Future sessions benefit
274
- (deep bug analysis)
275
- ```
276
-
277
- - `$break-loop` - Analyzes bugs deeply, often reveals spec updates needed
278
- - `$update-spec` - Actually makes the updates (this skill)
279
- - `$finish-work` - Reminds you to check if specs need updates
280
-
281
- ---
282
-
283
- ## Core Philosophy
284
-
285
- > **Specs are living documents. Every debugging session, every "aha moment" is an opportunity to make the spec better.**
286
-
287
- The goal is **institutional memory**:
288
- - What one person learns, everyone benefits from
289
- - What AI learns in one session, persists to future sessions
290
- - Mistakes become documented guardrails