@jahanxu/trellis 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/LICENSE +235 -0
  2. package/README.md +212 -0
  3. package/bin/trellis.js +3 -0
  4. package/dist/cli/index.d.ts +3 -0
  5. package/dist/cli/index.d.ts.map +1 -0
  6. package/dist/cli/index.js +97 -0
  7. package/dist/cli/index.js.map +1 -0
  8. package/dist/commands/init.d.ts +21 -0
  9. package/dist/commands/init.d.ts.map +1 -0
  10. package/dist/commands/init.js +527 -0
  11. package/dist/commands/init.js.map +1 -0
  12. package/dist/commands/update.d.ts +27 -0
  13. package/dist/commands/update.d.ts.map +1 -0
  14. package/dist/commands/update.js +1289 -0
  15. package/dist/commands/update.js.map +1 -0
  16. package/dist/configurators/antigravity.d.ts +8 -0
  17. package/dist/configurators/antigravity.d.ts.map +1 -0
  18. package/dist/configurators/antigravity.js +18 -0
  19. package/dist/configurators/antigravity.js.map +1 -0
  20. package/dist/configurators/claude.d.ts +32 -0
  21. package/dist/configurators/claude.d.ts.map +1 -0
  22. package/dist/configurators/claude.js +98 -0
  23. package/dist/configurators/claude.js.map +1 -0
  24. package/dist/configurators/codex.d.ts +8 -0
  25. package/dist/configurators/codex.d.ts.map +1 -0
  26. package/dist/configurators/codex.js +20 -0
  27. package/dist/configurators/codex.js.map +1 -0
  28. package/dist/configurators/cursor.d.ts +5 -0
  29. package/dist/configurators/cursor.d.ts.map +1 -0
  30. package/dist/configurators/cursor.js +52 -0
  31. package/dist/configurators/cursor.js.map +1 -0
  32. package/dist/configurators/gemini.d.ts +8 -0
  33. package/dist/configurators/gemini.d.ts.map +1 -0
  34. package/dist/configurators/gemini.js +52 -0
  35. package/dist/configurators/gemini.js.map +1 -0
  36. package/dist/configurators/iflow.d.ts +33 -0
  37. package/dist/configurators/iflow.d.ts.map +1 -0
  38. package/dist/configurators/iflow.js +99 -0
  39. package/dist/configurators/iflow.js.map +1 -0
  40. package/dist/configurators/index.d.ts +55 -0
  41. package/dist/configurators/index.d.ts.map +1 -0
  42. package/dist/configurators/index.js +220 -0
  43. package/dist/configurators/index.js.map +1 -0
  44. package/dist/configurators/kilo.d.ts +8 -0
  45. package/dist/configurators/kilo.d.ts.map +1 -0
  46. package/dist/configurators/kilo.js +51 -0
  47. package/dist/configurators/kilo.js.map +1 -0
  48. package/dist/configurators/kiro.d.ts +8 -0
  49. package/dist/configurators/kiro.d.ts.map +1 -0
  50. package/dist/configurators/kiro.js +20 -0
  51. package/dist/configurators/kiro.js.map +1 -0
  52. package/dist/configurators/opencode.d.ts +32 -0
  53. package/dist/configurators/opencode.d.ts.map +1 -0
  54. package/dist/configurators/opencode.js +92 -0
  55. package/dist/configurators/opencode.js.map +1 -0
  56. package/dist/configurators/shared.d.ts +12 -0
  57. package/dist/configurators/shared.d.ts.map +1 -0
  58. package/dist/configurators/shared.js +21 -0
  59. package/dist/configurators/shared.js.map +1 -0
  60. package/dist/configurators/workflow.d.ts +28 -0
  61. package/dist/configurators/workflow.d.ts.map +1 -0
  62. package/dist/configurators/workflow.js +134 -0
  63. package/dist/configurators/workflow.js.map +1 -0
  64. package/dist/constants/paths.d.ts +68 -0
  65. package/dist/constants/paths.d.ts.map +1 -0
  66. package/dist/constants/paths.js +77 -0
  67. package/dist/constants/paths.js.map +1 -0
  68. package/dist/constants/version.d.ts +9 -0
  69. package/dist/constants/version.d.ts.map +1 -0
  70. package/dist/constants/version.js +15 -0
  71. package/dist/constants/version.js.map +1 -0
  72. package/dist/index.d.ts +9 -0
  73. package/dist/index.d.ts.map +1 -0
  74. package/dist/index.js +9 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/migrations/index.d.ts +54 -0
  77. package/dist/migrations/index.d.ts.map +1 -0
  78. package/dist/migrations/index.js +160 -0
  79. package/dist/migrations/index.js.map +1 -0
  80. package/dist/migrations/manifests/0.1.9.json +30 -0
  81. package/dist/migrations/manifests/0.2.0.json +49 -0
  82. package/dist/migrations/manifests/0.2.12.json +9 -0
  83. package/dist/migrations/manifests/0.2.13.json +9 -0
  84. package/dist/migrations/manifests/0.2.14.json +175 -0
  85. package/dist/migrations/manifests/0.2.15.json +33 -0
  86. package/dist/migrations/manifests/0.3.0-beta.0.json +278 -0
  87. package/dist/migrations/manifests/0.3.0-beta.1.json +9 -0
  88. package/dist/migrations/manifests/0.3.0-beta.10.json +9 -0
  89. package/dist/migrations/manifests/0.3.0-beta.11.json +9 -0
  90. package/dist/migrations/manifests/0.3.0-beta.12.json +9 -0
  91. package/dist/migrations/manifests/0.3.0-beta.13.json +9 -0
  92. package/dist/migrations/manifests/0.3.0-beta.14.json +9 -0
  93. package/dist/migrations/manifests/0.3.0-beta.15.json +9 -0
  94. package/dist/migrations/manifests/0.3.0-beta.16.json +9 -0
  95. package/dist/migrations/manifests/0.3.0-beta.2.json +9 -0
  96. package/dist/migrations/manifests/0.3.0-beta.3.json +9 -0
  97. package/dist/migrations/manifests/0.3.0-beta.4.json +9 -0
  98. package/dist/migrations/manifests/0.3.0-beta.5.json +9 -0
  99. package/dist/migrations/manifests/0.3.0-beta.6.json +9 -0
  100. package/dist/migrations/manifests/0.3.0-beta.7.json +11 -0
  101. package/dist/migrations/manifests/0.3.0-beta.8.json +9 -0
  102. package/dist/migrations/manifests/0.3.0-beta.9.json +9 -0
  103. package/dist/migrations/manifests/0.3.0-rc.0.json +9 -0
  104. package/dist/migrations/manifests/0.3.0-rc.1.json +9 -0
  105. package/dist/migrations/manifests/0.3.0-rc.2.json +9 -0
  106. package/dist/migrations/manifests/0.3.0-rc.3.json +9 -0
  107. package/dist/migrations/manifests/0.3.0-rc.4.json +9 -0
  108. package/dist/migrations/manifests/0.3.0-rc.5.json +9 -0
  109. package/dist/migrations/manifests/0.3.0-rc.6.json +9 -0
  110. package/dist/migrations/manifests/0.3.0.json +11 -0
  111. package/dist/templates/antigravity/index.d.ts +12 -0
  112. package/dist/templates/antigravity/index.d.ts.map +1 -0
  113. package/dist/templates/antigravity/index.js +29 -0
  114. package/dist/templates/antigravity/index.js.map +1 -0
  115. package/dist/templates/claude/agents/check.md +122 -0
  116. package/dist/templates/claude/agents/debug.md +106 -0
  117. package/dist/templates/claude/agents/dispatch.md +214 -0
  118. package/dist/templates/claude/agents/implement.md +96 -0
  119. package/dist/templates/claude/agents/plan.md +396 -0
  120. package/dist/templates/claude/agents/research.md +120 -0
  121. package/dist/templates/claude/commands/trellis/before-backend-dev.md +13 -0
  122. package/dist/templates/claude/commands/trellis/before-frontend-dev.md +13 -0
  123. package/dist/templates/claude/commands/trellis/before-role-work.md +364 -0
  124. package/dist/templates/claude/commands/trellis/brainstorm.md +474 -0
  125. package/dist/templates/claude/commands/trellis/break-loop.md +125 -0
  126. package/dist/templates/claude/commands/trellis/check-backend.md +13 -0
  127. package/dist/templates/claude/commands/trellis/check-cross-layer.md +153 -0
  128. package/dist/templates/claude/commands/trellis/check-frontend.md +13 -0
  129. package/dist/templates/claude/commands/trellis/create-command.md +154 -0
  130. package/dist/templates/claude/commands/trellis/finish-work.md +153 -0
  131. package/dist/templates/claude/commands/trellis/handoff.md +445 -0
  132. package/dist/templates/claude/commands/trellis/integrate-skill.md +219 -0
  133. package/dist/templates/claude/commands/trellis/onboard.md +358 -0
  134. package/dist/templates/claude/commands/trellis/parallel.md +193 -0
  135. package/dist/templates/claude/commands/trellis/pick-task.md +515 -0
  136. package/dist/templates/claude/commands/trellis/record-session.md +62 -0
  137. package/dist/templates/claude/commands/trellis/start.md +373 -0
  138. package/dist/templates/claude/commands/trellis/update-spec.md +354 -0
  139. package/dist/templates/claude/hooks/inject-subagent-context.py +873 -0
  140. package/dist/templates/claude/hooks/ralph-loop.py +388 -0
  141. package/dist/templates/claude/hooks/session-start.py +200 -0
  142. package/dist/templates/claude/index.d.ts +54 -0
  143. package/dist/templates/claude/index.d.ts.map +1 -0
  144. package/dist/templates/claude/index.js +85 -0
  145. package/dist/templates/claude/index.js.map +1 -0
  146. package/dist/templates/claude/settings.json +41 -0
  147. package/dist/templates/codex/index.d.ts +18 -0
  148. package/dist/templates/codex/index.d.ts.map +1 -0
  149. package/dist/templates/codex/index.js +40 -0
  150. package/dist/templates/codex/index.js.map +1 -0
  151. package/dist/templates/codex/skills/before-backend-dev/SKILL.md +18 -0
  152. package/dist/templates/codex/skills/before-frontend-dev/SKILL.md +18 -0
  153. package/dist/templates/codex/skills/brainstorm/SKILL.md +479 -0
  154. package/dist/templates/codex/skills/break-loop/SKILL.md +130 -0
  155. package/dist/templates/codex/skills/check-backend/SKILL.md +18 -0
  156. package/dist/templates/codex/skills/check-cross-layer/SKILL.md +158 -0
  157. package/dist/templates/codex/skills/check-frontend/SKILL.md +18 -0
  158. package/dist/templates/codex/skills/create-command/SKILL.md +101 -0
  159. package/dist/templates/codex/skills/finish-work/SKILL.md +148 -0
  160. package/dist/templates/codex/skills/integrate-skill/SKILL.md +221 -0
  161. package/dist/templates/codex/skills/onboard/SKILL.md +363 -0
  162. package/dist/templates/codex/skills/record-session/SKILL.md +67 -0
  163. package/dist/templates/codex/skills/start/SKILL.md +330 -0
  164. package/dist/templates/codex/skills/update-spec/SKILL.md +335 -0
  165. package/dist/templates/cursor/commands/trellis-before-backend-dev.md +13 -0
  166. package/dist/templates/cursor/commands/trellis-before-frontend-dev.md +13 -0
  167. package/dist/templates/cursor/commands/trellis-brainstorm.md +474 -0
  168. package/dist/templates/cursor/commands/trellis-break-loop.md +107 -0
  169. package/dist/templates/cursor/commands/trellis-check-backend.md +13 -0
  170. package/dist/templates/cursor/commands/trellis-check-cross-layer.md +153 -0
  171. package/dist/templates/cursor/commands/trellis-check-frontend.md +13 -0
  172. package/dist/templates/cursor/commands/trellis-create-command.md +154 -0
  173. package/dist/templates/cursor/commands/trellis-finish-work.md +143 -0
  174. package/dist/templates/cursor/commands/trellis-integrate-skill.md +219 -0
  175. package/dist/templates/cursor/commands/trellis-onboard.md +358 -0
  176. package/dist/templates/cursor/commands/trellis-record-session.md +62 -0
  177. package/dist/templates/cursor/commands/trellis-start.md +366 -0
  178. package/dist/templates/cursor/commands/trellis-update-spec.md +354 -0
  179. package/dist/templates/cursor/index.d.ts +24 -0
  180. package/dist/templates/cursor/index.d.ts.map +1 -0
  181. package/dist/templates/cursor/index.js +44 -0
  182. package/dist/templates/cursor/index.js.map +1 -0
  183. package/dist/templates/extract.d.ts +166 -0
  184. package/dist/templates/extract.d.ts.map +1 -0
  185. package/dist/templates/extract.js +296 -0
  186. package/dist/templates/extract.js.map +1 -0
  187. package/dist/templates/gemini/commands/trellis/before-backend-dev.toml +17 -0
  188. package/dist/templates/gemini/commands/trellis/before-frontend-dev.toml +17 -0
  189. package/dist/templates/gemini/commands/trellis/brainstorm.toml +420 -0
  190. package/dist/templates/gemini/commands/trellis/break-loop.toml +129 -0
  191. package/dist/templates/gemini/commands/trellis/check-backend.toml +17 -0
  192. package/dist/templates/gemini/commands/trellis/check-cross-layer.toml +147 -0
  193. package/dist/templates/gemini/commands/trellis/check-frontend.toml +17 -0
  194. package/dist/templates/gemini/commands/trellis/create-command.toml +119 -0
  195. package/dist/templates/gemini/commands/trellis/finish-work.toml +133 -0
  196. package/dist/templates/gemini/commands/trellis/integrate-skill.toml +104 -0
  197. package/dist/templates/gemini/commands/trellis/onboard.toml +111 -0
  198. package/dist/templates/gemini/commands/trellis/record-session.toml +66 -0
  199. package/dist/templates/gemini/commands/trellis/start.toml +292 -0
  200. package/dist/templates/gemini/commands/trellis/update-spec.toml +132 -0
  201. package/dist/templates/gemini/index.d.ts +21 -0
  202. package/dist/templates/gemini/index.d.ts.map +1 -0
  203. package/dist/templates/gemini/index.js +44 -0
  204. package/dist/templates/gemini/index.js.map +1 -0
  205. package/dist/templates/iflow/agents/check.md +122 -0
  206. package/dist/templates/iflow/agents/debug.md +106 -0
  207. package/dist/templates/iflow/agents/dispatch.md +214 -0
  208. package/dist/templates/iflow/agents/implement.md +96 -0
  209. package/dist/templates/iflow/agents/plan.md +396 -0
  210. package/dist/templates/iflow/agents/research.md +120 -0
  211. package/dist/templates/iflow/commands/trellis/before-backend-dev.md +13 -0
  212. package/dist/templates/iflow/commands/trellis/before-frontend-dev.md +13 -0
  213. package/dist/templates/iflow/commands/trellis/brainstorm.md +474 -0
  214. package/dist/templates/iflow/commands/trellis/break-loop.md +125 -0
  215. package/dist/templates/iflow/commands/trellis/check-backend.md +13 -0
  216. package/dist/templates/iflow/commands/trellis/check-cross-layer.md +153 -0
  217. package/dist/templates/iflow/commands/trellis/check-frontend.md +13 -0
  218. package/dist/templates/iflow/commands/trellis/create-command.md +152 -0
  219. package/dist/templates/iflow/commands/trellis/finish-work.md +153 -0
  220. package/dist/templates/iflow/commands/trellis/integrate-skill.md +219 -0
  221. package/dist/templates/iflow/commands/trellis/onboard.md +358 -0
  222. package/dist/templates/iflow/commands/trellis/parallel.md +193 -0
  223. package/dist/templates/iflow/commands/trellis/record-session.md +62 -0
  224. package/dist/templates/iflow/commands/trellis/start.md +373 -0
  225. package/dist/templates/iflow/commands/trellis/update-spec.md +354 -0
  226. package/dist/templates/iflow/hooks/inject-subagent-context.py +788 -0
  227. package/dist/templates/iflow/hooks/ralph-loop.py +388 -0
  228. package/dist/templates/iflow/hooks/session-start.py +143 -0
  229. package/dist/templates/iflow/index.d.ts +54 -0
  230. package/dist/templates/iflow/index.d.ts.map +1 -0
  231. package/dist/templates/iflow/index.js +85 -0
  232. package/dist/templates/iflow/index.js.map +1 -0
  233. package/dist/templates/iflow/settings.json +40 -0
  234. package/dist/templates/kilo/commands/trellis/before-backend-dev.md +13 -0
  235. package/dist/templates/kilo/commands/trellis/before-frontend-dev.md +13 -0
  236. package/dist/templates/kilo/commands/trellis/brainstorm.md +474 -0
  237. package/dist/templates/kilo/commands/trellis/break-loop.md +125 -0
  238. package/dist/templates/kilo/commands/trellis/check-backend.md +13 -0
  239. package/dist/templates/kilo/commands/trellis/check-cross-layer.md +153 -0
  240. package/dist/templates/kilo/commands/trellis/check-frontend.md +13 -0
  241. package/dist/templates/kilo/commands/trellis/create-command.md +152 -0
  242. package/dist/templates/kilo/commands/trellis/finish-work.md +129 -0
  243. package/dist/templates/kilo/commands/trellis/integrate-skill.md +219 -0
  244. package/dist/templates/kilo/commands/trellis/onboard.md +358 -0
  245. package/dist/templates/kilo/commands/trellis/parallel.md +194 -0
  246. package/dist/templates/kilo/commands/trellis/record-session.md +62 -0
  247. package/dist/templates/kilo/commands/trellis/start.md +321 -0
  248. package/dist/templates/kilo/commands/trellis/update-spec.md +285 -0
  249. package/dist/templates/kilo/index.d.ts +16 -0
  250. package/dist/templates/kilo/index.d.ts.map +1 -0
  251. package/dist/templates/kilo/index.js +39 -0
  252. package/dist/templates/kilo/index.js.map +1 -0
  253. package/dist/templates/kiro/index.d.ts +18 -0
  254. package/dist/templates/kiro/index.d.ts.map +1 -0
  255. package/dist/templates/kiro/index.js +40 -0
  256. package/dist/templates/kiro/index.js.map +1 -0
  257. package/dist/templates/kiro/skills/before-backend-dev/SKILL.md +18 -0
  258. package/dist/templates/kiro/skills/before-frontend-dev/SKILL.md +18 -0
  259. package/dist/templates/kiro/skills/brainstorm/SKILL.md +479 -0
  260. package/dist/templates/kiro/skills/break-loop/SKILL.md +130 -0
  261. package/dist/templates/kiro/skills/check-backend/SKILL.md +18 -0
  262. package/dist/templates/kiro/skills/check-cross-layer/SKILL.md +158 -0
  263. package/dist/templates/kiro/skills/check-frontend/SKILL.md +18 -0
  264. package/dist/templates/kiro/skills/create-command/SKILL.md +101 -0
  265. package/dist/templates/kiro/skills/finish-work/SKILL.md +148 -0
  266. package/dist/templates/kiro/skills/integrate-skill/SKILL.md +221 -0
  267. package/dist/templates/kiro/skills/onboard/SKILL.md +363 -0
  268. package/dist/templates/kiro/skills/record-session/SKILL.md +67 -0
  269. package/dist/templates/kiro/skills/start/SKILL.md +330 -0
  270. package/dist/templates/kiro/skills/update-spec/SKILL.md +335 -0
  271. package/dist/templates/markdown/agents.md +18 -0
  272. package/dist/templates/markdown/gitignore.txt +12 -0
  273. package/dist/templates/markdown/index.d.ts +27 -0
  274. package/dist/templates/markdown/index.d.ts.map +1 -0
  275. package/dist/templates/markdown/index.js +52 -0
  276. package/dist/templates/markdown/index.js.map +1 -0
  277. package/dist/templates/markdown/spec/backend/database-guidelines.md.txt +51 -0
  278. package/dist/templates/markdown/spec/backend/directory-structure.md.txt +54 -0
  279. package/dist/templates/markdown/spec/backend/error-handling.md.txt +51 -0
  280. package/dist/templates/markdown/spec/backend/index.md +40 -0
  281. package/dist/templates/markdown/spec/backend/index.md.txt +38 -0
  282. package/dist/templates/markdown/spec/backend/logging-guidelines.md.txt +51 -0
  283. package/dist/templates/markdown/spec/backend/quality-guidelines.md.txt +51 -0
  284. package/dist/templates/markdown/spec/backend/script-conventions.md +467 -0
  285. package/dist/templates/markdown/spec/frontend/component-guidelines.md.txt +59 -0
  286. package/dist/templates/markdown/spec/frontend/directory-structure.md.txt +54 -0
  287. package/dist/templates/markdown/spec/frontend/hook-guidelines.md.txt +51 -0
  288. package/dist/templates/markdown/spec/frontend/index.md.txt +39 -0
  289. package/dist/templates/markdown/spec/frontend/quality-guidelines.md.txt +51 -0
  290. package/dist/templates/markdown/spec/frontend/state-management.md.txt +51 -0
  291. package/dist/templates/markdown/spec/frontend/type-safety.md.txt +51 -0
  292. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md +118 -0
  293. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +92 -0
  294. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +94 -0
  295. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md +394 -0
  296. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +319 -0
  297. package/dist/templates/markdown/spec/guides/index.md.txt +79 -0
  298. package/dist/templates/markdown/workspace-index.md +123 -0
  299. package/dist/templates/markdown/worktree.yaml.txt +58 -0
  300. package/dist/templates/opencode/agents/check.md +146 -0
  301. package/dist/templates/opencode/agents/debug.md +129 -0
  302. package/dist/templates/opencode/agents/dispatch.md +223 -0
  303. package/dist/templates/opencode/agents/implement.md +120 -0
  304. package/dist/templates/opencode/agents/research.md +147 -0
  305. package/dist/templates/opencode/agents/trellis-plan.md +427 -0
  306. package/dist/templates/opencode/commands/trellis/before-backend-dev.md +13 -0
  307. package/dist/templates/opencode/commands/trellis/before-frontend-dev.md +13 -0
  308. package/dist/templates/opencode/commands/trellis/brainstorm.md +474 -0
  309. package/dist/templates/opencode/commands/trellis/break-loop.md +125 -0
  310. package/dist/templates/opencode/commands/trellis/check-backend.md +13 -0
  311. package/dist/templates/opencode/commands/trellis/check-cross-layer.md +153 -0
  312. package/dist/templates/opencode/commands/trellis/check-frontend.md +13 -0
  313. package/dist/templates/opencode/commands/trellis/create-command.md +154 -0
  314. package/dist/templates/opencode/commands/trellis/finish-work.md +144 -0
  315. package/dist/templates/opencode/commands/trellis/integrate-skill.md +219 -0
  316. package/dist/templates/opencode/commands/trellis/migrate-specs.md +0 -0
  317. package/dist/templates/opencode/commands/trellis/onboard.md +358 -0
  318. package/dist/templates/opencode/commands/trellis/parallel.md +194 -0
  319. package/dist/templates/opencode/commands/trellis/record-session.md +62 -0
  320. package/dist/templates/opencode/commands/trellis/start.md +338 -0
  321. package/dist/templates/opencode/commands/trellis/update-spec.md +354 -0
  322. package/dist/templates/opencode/lib/trellis-context.js +436 -0
  323. package/dist/templates/opencode/package.json +5 -0
  324. package/dist/templates/opencode/plugin/inject-subagent-context.js +538 -0
  325. package/dist/templates/opencode/plugin/session-start.js +192 -0
  326. package/dist/templates/trellis/VERSION +1 -0
  327. package/dist/templates/trellis/deliverables/README.md +51 -0
  328. package/dist/templates/trellis/gitignore.txt +29 -0
  329. package/dist/templates/trellis/index.d.ts +49 -0
  330. package/dist/templates/trellis/index.d.ts.map +1 -0
  331. package/dist/templates/trellis/index.js +92 -0
  332. package/dist/templates/trellis/index.js.map +1 -0
  333. package/dist/templates/trellis/paths.README.md +277 -0
  334. package/dist/templates/trellis/paths.yaml +41 -0
  335. package/dist/templates/trellis/pool/implementations.json +5 -0
  336. package/dist/templates/trellis/pool/prototypes.json +5 -0
  337. package/dist/templates/trellis/pool/requirements.json +5 -0
  338. package/dist/templates/trellis/scripts/__init__.py +5 -0
  339. package/dist/templates/trellis/scripts/add_session.py +391 -0
  340. package/dist/templates/trellis/scripts/common/__init__.py +80 -0
  341. package/dist/templates/trellis/scripts/common/cli_adapter.py +522 -0
  342. package/dist/templates/trellis/scripts/common/developer.py +189 -0
  343. package/dist/templates/trellis/scripts/common/git_context.py +383 -0
  344. package/dist/templates/trellis/scripts/common/paths.py +346 -0
  345. package/dist/templates/trellis/scripts/common/phase.py +253 -0
  346. package/dist/templates/trellis/scripts/common/project_paths.py +189 -0
  347. package/dist/templates/trellis/scripts/common/registry.py +365 -0
  348. package/dist/templates/trellis/scripts/common/task_queue.py +255 -0
  349. package/dist/templates/trellis/scripts/common/task_utils.py +177 -0
  350. package/dist/templates/trellis/scripts/common/worktree.py +218 -0
  351. package/dist/templates/trellis/scripts/create_bootstrap.py +290 -0
  352. package/dist/templates/trellis/scripts/get_context.py +16 -0
  353. package/dist/templates/trellis/scripts/get_developer.py +26 -0
  354. package/dist/templates/trellis/scripts/handoff_generator.py +380 -0
  355. package/dist/templates/trellis/scripts/init_developer.py +51 -0
  356. package/dist/templates/trellis/scripts/multi_agent/__init__.py +5 -0
  357. package/dist/templates/trellis/scripts/multi_agent/cleanup.py +403 -0
  358. package/dist/templates/trellis/scripts/multi_agent/create_pr.py +329 -0
  359. package/dist/templates/trellis/scripts/multi_agent/plan.py +233 -0
  360. package/dist/templates/trellis/scripts/multi_agent/start.py +461 -0
  361. package/dist/templates/trellis/scripts/multi_agent/status.py +817 -0
  362. package/dist/templates/trellis/scripts/pool.py +373 -0
  363. package/dist/templates/trellis/scripts/task.py +1162 -0
  364. package/dist/templates/trellis/scripts-shell-archive/add-session.sh +384 -0
  365. package/dist/templates/trellis/scripts-shell-archive/common/developer.sh +129 -0
  366. package/dist/templates/trellis/scripts-shell-archive/common/git-context.sh +263 -0
  367. package/dist/templates/trellis/scripts-shell-archive/common/paths.sh +208 -0
  368. package/dist/templates/trellis/scripts-shell-archive/common/phase.sh +150 -0
  369. package/dist/templates/trellis/scripts-shell-archive/common/registry.sh +247 -0
  370. package/dist/templates/trellis/scripts-shell-archive/common/task-queue.sh +142 -0
  371. package/dist/templates/trellis/scripts-shell-archive/common/task-utils.sh +151 -0
  372. package/dist/templates/trellis/scripts-shell-archive/common/worktree.sh +128 -0
  373. package/dist/templates/trellis/scripts-shell-archive/create-bootstrap.sh +299 -0
  374. package/dist/templates/trellis/scripts-shell-archive/get-context.sh +7 -0
  375. package/dist/templates/trellis/scripts-shell-archive/get-developer.sh +15 -0
  376. package/dist/templates/trellis/scripts-shell-archive/init-developer.sh +34 -0
  377. package/dist/templates/trellis/scripts-shell-archive/multi-agent/cleanup.sh +396 -0
  378. package/dist/templates/trellis/scripts-shell-archive/multi-agent/create-pr.sh +241 -0
  379. package/dist/templates/trellis/scripts-shell-archive/multi-agent/plan.sh +207 -0
  380. package/dist/templates/trellis/scripts-shell-archive/multi-agent/start.sh +317 -0
  381. package/dist/templates/trellis/scripts-shell-archive/multi-agent/status.sh +828 -0
  382. package/dist/templates/trellis/scripts-shell-archive/task.sh +1204 -0
  383. package/dist/templates/trellis/spec/roles/designer/index.md +243 -0
  384. package/dist/templates/trellis/spec/roles/designer/mock-data-standards.md +481 -0
  385. package/dist/templates/trellis/spec/roles/designer/prototype-guidelines.md +429 -0
  386. package/dist/templates/trellis/spec/roles/frontend-impl/api-integration.md +565 -0
  387. package/dist/templates/trellis/spec/roles/frontend-impl/index.md +321 -0
  388. package/dist/templates/trellis/spec/roles/frontend-impl/state-management.md +599 -0
  389. package/dist/templates/trellis/spec/roles/pm/index.md +112 -0
  390. package/dist/templates/trellis/spec/roles/pm/prd-template.md +124 -0
  391. package/dist/templates/trellis/tasks/.gitkeep +0 -0
  392. package/dist/templates/trellis/workflow.md +416 -0
  393. package/dist/templates/trellis/worktree.yaml +47 -0
  394. package/dist/types/ai-tools.d.ts +56 -0
  395. package/dist/types/ai-tools.d.ts.map +1 -0
  396. package/dist/types/ai-tools.js +103 -0
  397. package/dist/types/ai-tools.js.map +1 -0
  398. package/dist/types/migration.d.ts +86 -0
  399. package/dist/types/migration.d.ts.map +1 -0
  400. package/dist/types/migration.js +8 -0
  401. package/dist/types/migration.js.map +1 -0
  402. package/dist/utils/compare-versions.d.ts +12 -0
  403. package/dist/utils/compare-versions.d.ts.map +1 -0
  404. package/dist/utils/compare-versions.js +76 -0
  405. package/dist/utils/compare-versions.js.map +1 -0
  406. package/dist/utils/file-writer.d.ts +23 -0
  407. package/dist/utils/file-writer.d.ts.map +1 -0
  408. package/dist/utils/file-writer.js +140 -0
  409. package/dist/utils/file-writer.js.map +1 -0
  410. package/dist/utils/project-detector.d.ts +16 -0
  411. package/dist/utils/project-detector.d.ts.map +1 -0
  412. package/dist/utils/project-detector.js +186 -0
  413. package/dist/utils/project-detector.js.map +1 -0
  414. package/dist/utils/template-fetcher.d.ts +51 -0
  415. package/dist/utils/template-fetcher.d.ts.map +1 -0
  416. package/dist/utils/template-fetcher.js +174 -0
  417. package/dist/utils/template-fetcher.js.map +1 -0
  418. package/dist/utils/template-hash.d.ts +78 -0
  419. package/dist/utils/template-hash.d.ts.map +1 -0
  420. package/dist/utils/template-hash.js +233 -0
  421. package/dist/utils/template-hash.js.map +1 -0
  422. package/package.json +87 -0
@@ -0,0 +1,366 @@
1
+ # Start Session
2
+
3
+ Initialize your AI development session and begin working on tasks.
4
+
5
+ ---
6
+
7
+ ## Operation Types
8
+
9
+ Operations in this document are categorized as:
10
+
11
+ | Marker | Meaning | Executor |
12
+ |--------|---------|----------|
13
+ | `[AI]` | Bash scripts or file reads executed by AI | You (AI) |
14
+ | `[USER]` | Slash commands executed by user | User |
15
+
16
+ ---
17
+
18
+ ## Initialization
19
+
20
+ ### Step 1: Understand Trellis Workflow `[AI]`
21
+
22
+ First, read the workflow guide to understand the development process:
23
+
24
+ ```bash
25
+ cat .trellis/workflow.md # Development process, conventions, and quick start guide
26
+ ```
27
+
28
+ ### Step 2: Get Current Status `[AI]`
29
+
30
+ ```bash
31
+ python3 ./.trellis/scripts/get_context.py
32
+ ```
33
+
34
+ This returns:
35
+ - Developer identity
36
+ - Git status (branch, uncommitted changes)
37
+ - Recent commits
38
+ - Active tasks
39
+ - Journal file status
40
+
41
+ ### Step 3: Read Project Code-Spec Index `[AI]`
42
+
43
+ Based on the upcoming task, read appropriate code-spec docs:
44
+
45
+ **For Frontend Work**:
46
+ ```bash
47
+ cat .trellis/spec/frontend/index.md
48
+ ```
49
+
50
+ **For Backend Work**:
51
+ ```bash
52
+ cat .trellis/spec/backend/index.md
53
+ ```
54
+
55
+ **For Cross-Layer Features**:
56
+ ```bash
57
+ cat .trellis/spec/guides/index.md
58
+ cat .trellis/spec/guides/cross-layer-thinking-guide.md
59
+ ```
60
+
61
+ ### Step 4: Check Active Tasks `[AI]`
62
+
63
+ ```bash
64
+ python3 ./.trellis/scripts/task.py list
65
+ ```
66
+
67
+ If continuing previous work, review the task file.
68
+
69
+ ### Step 5: Report Ready Status and Ask for Tasks
70
+
71
+ Output a summary:
72
+
73
+ ```markdown
74
+ ## Session Initialized
75
+
76
+ | Item | Status |
77
+ |------|--------|
78
+ | Developer | {name} |
79
+ | Branch | {branch} |
80
+ | Uncommitted | {count} file(s) |
81
+ | Journal | {file} ({lines}/2000 lines) |
82
+ | Active Tasks | {count} |
83
+
84
+ Ready for your task. What would you like to work on?
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Task Classification
90
+
91
+ When user describes a task, classify it:
92
+
93
+ | Type | Criteria | Workflow |
94
+ |------|----------|----------|
95
+ | **Question** | User asks about code, architecture, or how something works | Answer directly |
96
+ | **Trivial Fix** | Typo fix, comment update, single-line change, < 5 minutes | Direct Edit |
97
+ | **Simple Task** | Clear goal, 1-2 files, well-defined scope | Quick confirm → Task Workflow |
98
+ | **Complex Task** | Vague goal, multiple files, architectural decisions | **Brainstorm → Task Workflow** |
99
+
100
+ ### Decision Rule
101
+
102
+ > **If in doubt, use Brainstorm + Task Workflow.**
103
+ >
104
+ > Task Workflow ensures code-specs are injected to the right context, resulting in higher quality code.
105
+ > The overhead is minimal, but the benefit is significant.
106
+
107
+ ---
108
+
109
+ ## Question / Trivial Fix
110
+
111
+ For questions or trivial fixes, work directly:
112
+
113
+ 1. Answer question or make the fix
114
+ 2. If code was changed, remind user to run `/trellis-finish-work`
115
+
116
+ ---
117
+
118
+ ## Simple Task
119
+
120
+ For simple, well-defined tasks:
121
+
122
+ 1. Quick confirm: "I understand you want to [goal]. Ready to proceed?"
123
+ 2. If yes, proceed to **Task Workflow Phase 1 Path B** (create task, write PRD, then research)
124
+ 3. If no, clarify and confirm again
125
+
126
+ ---
127
+
128
+ ## Complex Task - Brainstorm First
129
+
130
+ For complex or vague tasks, use `/trellis-brainstorm` first to clarify requirements before implementation.
131
+
132
+ Summary:
133
+
134
+ 1. **Acknowledge and classify** - State your understanding
135
+ 2. **Create task directory** - Track evolving requirements in `prd.md`
136
+ 3. **Ask questions one at a time** - Update PRD after each answer
137
+ 4. **Propose approaches** - For architectural decisions
138
+ 5. **Confirm final requirements** - Get explicit approval
139
+ 6. **Proceed to Task Workflow** - With clear requirements in PRD
140
+
141
+ ---
142
+
143
+ ## Task Workflow (Development Tasks)
144
+
145
+ **Why this workflow?**
146
+ - Run a dedicated research pass before coding
147
+ - Configure specs in jsonl context files
148
+ - Implement using injected context
149
+ - Verify with a separate check pass
150
+ - Result: Code that follows project conventions automatically
151
+
152
+ ### Overview: Two Entry Points
153
+
154
+ ```
155
+ From Brainstorm (Complex Task):
156
+ PRD confirmed → Research → Configure Context → Activate → Implement → Check → Complete
157
+
158
+ From Simple Task:
159
+ Confirm → Create Task → Write PRD → Research → Configure Context → Activate → Implement → Check → Complete
160
+ ```
161
+
162
+ **Key principle: Research happens AFTER requirements are clear (PRD exists).**
163
+
164
+ ---
165
+
166
+ ### Phase 1: Establish Requirements
167
+
168
+ #### Path A: From Brainstorm (skip to Phase 2)
169
+
170
+ PRD and task directory already exist from brainstorm. Skip directly to Phase 2.
171
+
172
+ #### Path B: From Simple Task
173
+
174
+ **Step 1: Confirm Understanding** `[AI]`
175
+
176
+ Quick confirm:
177
+ - What is the goal?
178
+ - What type of development? (frontend / backend / fullstack)
179
+ - Any specific requirements or constraints?
180
+
181
+ If unclear, ask clarifying questions.
182
+
183
+ **Step 2: Create Task Directory** `[AI]`
184
+
185
+ ```bash
186
+ TASK_DIR=$(python3 ./.trellis/scripts/task.py create "<title>" --slug <name>)
187
+ ```
188
+
189
+ **Step 3: Write PRD** `[AI]`
190
+
191
+ Create `prd.md` in the task directory with:
192
+
193
+ ```markdown
194
+ # <Task Title>
195
+
196
+ ## Goal
197
+ <What we're trying to achieve>
198
+
199
+ ## Requirements
200
+ - <Requirement 1>
201
+ - <Requirement 2>
202
+
203
+ ## Acceptance Criteria
204
+ - [ ] <Criterion 1>
205
+ - [ ] <Criterion 2>
206
+
207
+ ## Technical Notes
208
+ <Any technical decisions or constraints>
209
+ ```
210
+
211
+ ---
212
+
213
+ ### Phase 2: Prepare for Implementation (shared)
214
+
215
+ > Both paths converge here. PRD and task directory must exist before proceeding.
216
+
217
+ **Step 4: Code-Spec Depth Check** `[AI]`
218
+
219
+ If the task touches infra or cross-layer contracts, do not start implementation until code-spec depth is defined.
220
+
221
+ Trigger this requirement when the change includes any of:
222
+ - New or changed command/API signatures
223
+ - Database schema or migration changes
224
+ - Infra integrations (storage, queue, cache, secrets, env contracts)
225
+ - Cross-layer payload transformations
226
+
227
+ Must-have before proceeding:
228
+ - [ ] Target code-spec files to update are identified
229
+ - [ ] Concrete contract is defined (signature, fields, env keys)
230
+ - [ ] Validation and error matrix is defined
231
+ - [ ] At least one Good/Base/Bad case is defined
232
+
233
+ **Step 5: Research the Codebase** `[AI]`
234
+
235
+ Based on the confirmed PRD, run a focused research pass and produce:
236
+
237
+ 1. Relevant spec files in `.trellis/spec/`
238
+ 2. Existing code patterns to follow (2-3 examples)
239
+ 3. Files that will likely need modification
240
+
241
+ Use this output format:
242
+
243
+ ```markdown
244
+ ## Relevant Specs
245
+ - <path>: <why it's relevant>
246
+
247
+ ## Code Patterns Found
248
+ - <pattern>: <example file path>
249
+
250
+ ## Files to Modify
251
+ - <path>: <what change>
252
+ ```
253
+
254
+ **Step 6: Configure Context** `[AI]`
255
+
256
+ Initialize default context:
257
+
258
+ ```bash
259
+ python3 ./.trellis/scripts/task.py init-context "$TASK_DIR" <type>
260
+ # type: backend | frontend | fullstack
261
+ ```
262
+
263
+ Add specs found in your research pass:
264
+
265
+ ```bash
266
+ # For each relevant spec and code pattern:
267
+ python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" implement "<path>" "<reason>"
268
+ python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" check "<path>" "<reason>"
269
+ ```
270
+
271
+ **Step 7: Activate Task** `[AI]`
272
+
273
+ ```bash
274
+ python3 ./.trellis/scripts/task.py start "$TASK_DIR"
275
+ ```
276
+
277
+ This sets `.current-task` so hooks can inject context.
278
+
279
+ ---
280
+
281
+ ### Phase 3: Execute (shared)
282
+
283
+ **Step 8: Implement** `[AI]`
284
+
285
+ Implement the task described in `prd.md`.
286
+
287
+ - Follow all specs injected into implement context
288
+ - Keep changes scoped to requirements
289
+ - Run lint and typecheck before finishing
290
+
291
+ **Step 9: Check Quality** `[AI]`
292
+
293
+ Run a quality pass against check context:
294
+
295
+ - Review all code changes against the specs
296
+ - Fix issues directly
297
+ - Ensure lint and typecheck pass
298
+
299
+ **Step 10: Complete** `[AI]`
300
+
301
+ 1. Verify lint and typecheck pass
302
+ 2. Report what was implemented
303
+ 3. Remind user to:
304
+ - Test the changes
305
+ - Commit when ready
306
+ - Run `/trellis-record-session` to record this session
307
+
308
+ ---
309
+
310
+ ## User Available Commands `[USER]`
311
+
312
+ The following slash commands are for users (not AI):
313
+
314
+ | Command | Description |
315
+ |---------|-------------|
316
+ | `/trellis-start` | Start development session (this command) |
317
+ | `/trellis-brainstorm` | Clarify vague requirements before implementation |
318
+ | `/trellis-before-frontend-dev` | Read frontend guidelines |
319
+ | `/trellis-before-backend-dev` | Read backend guidelines |
320
+ | `/trellis-check-frontend` | Check frontend code |
321
+ | `/trellis-check-backend` | Check backend code |
322
+ | `/trellis-check-cross-layer` | Cross-layer verification |
323
+ | `/trellis-finish-work` | Pre-commit checklist |
324
+ | `/trellis-record-session` | Record session progress |
325
+
326
+ ---
327
+
328
+ ## AI Executed Scripts `[AI]`
329
+
330
+ | Script | Purpose |
331
+ |--------|---------|
332
+ | `python3 ./.trellis/scripts/task.py create "<title>" [--slug <name>]` | Create task directory |
333
+ | `python3 ./.trellis/scripts/task.py list` | List active tasks |
334
+ | `python3 ./.trellis/scripts/task.py archive <name>` | Archive task |
335
+ | `python3 ./.trellis/scripts/get_context.py` | Get session context |
336
+
337
+ ---
338
+
339
+ ## Platform Detection
340
+
341
+ Trellis auto-detects your platform based on config directories. For Cursor users, ensure detection works correctly:
342
+
343
+ | Condition | Detected Platform |
344
+ |-----------|-------------------|
345
+ | Only `.cursor/` exists | `cursor` ✅ |
346
+ | Both `.cursor/` and `.claude/` exist | `claude` (default) |
347
+
348
+ If auto-detection fails, set manually:
349
+
350
+ ```bash
351
+ export TRELLIS_PLATFORM=cursor
352
+ ```
353
+
354
+ Or prefix commands:
355
+
356
+ ```bash
357
+ TRELLIS_PLATFORM=cursor python3 ./.trellis/scripts/task.py list
358
+ ```
359
+
360
+ ---
361
+
362
+ ## Session End Reminder
363
+
364
+ **IMPORTANT**: When a task or session is completed, remind the user:
365
+
366
+ > Before ending this session, please run `/trellis-record-session` to record what we accomplished.
@@ -0,0 +1,354 @@
1
+ # Update Code-Spec - Capture Executable Contracts
2
+
3
+ When you learn something valuable (from debugging, implementing, or discussion), use this command to update the relevant code-spec documents.
4
+
5
+ **Timing**: After completing a task, fixing a bug, or discovering a new pattern
6
+
7
+ ---
8
+
9
+ ## Code-Spec First Rule (CRITICAL)
10
+
11
+ In this project, "spec" for implementation work means **code-spec**:
12
+ - Executable contracts (not principle-only text)
13
+ - Concrete signatures, payload fields, env keys, and boundary behavior
14
+ - Testable validation/error behavior
15
+
16
+ If the change touches infra or cross-layer contracts, code-spec depth is mandatory.
17
+
18
+ ### Mandatory Triggers
19
+
20
+ Apply code-spec depth when the change includes any of:
21
+ - New/changed command or API signature
22
+ - Cross-layer request/response contract change
23
+ - Database schema/migration change
24
+ - Infra integration (storage, queue, cache, secrets, env wiring)
25
+
26
+ ### Mandatory Output (7 Sections)
27
+
28
+ For triggered tasks, include all sections below:
29
+ 1. Scope / Trigger
30
+ 2. Signatures (command/API/DB)
31
+ 3. Contracts (request/response/env)
32
+ 4. Validation & Error Matrix
33
+ 5. Good/Base/Bad Cases
34
+ 6. Tests Required (with assertion points)
35
+ 7. Wrong vs Correct (at least one pair)
36
+
37
+ ---
38
+
39
+ ## When to Update Code-Specs
40
+
41
+ | Trigger | Example | Target Spec |
42
+ |---------|---------|-------------|
43
+ | **Implemented a feature** | Added template download with giget | Relevant `backend/` or `frontend/` file |
44
+ | **Made a design decision** | Used type field + mapping table for extensibility | Relevant code-spec + "Design Decisions" section |
45
+ | **Fixed a bug** | Found a subtle issue with error handling | `backend/error-handling.md` |
46
+ | **Discovered a pattern** | Found a better way to structure code | Relevant `backend/` or `frontend/` file |
47
+ | **Hit a gotcha** | Learned that X must be done before Y | Relevant code-spec + "Common Mistakes" section |
48
+ | **Established a convention** | Team agreed on naming pattern | `quality-guidelines.md` |
49
+ | **New thinking trigger** | "Don't forget to check X before doing Y" | `guides/*.md` (as a checklist item, not detailed rules) |
50
+
51
+ **Key Insight**: Code-spec updates are NOT just for problems. Every feature implementation contains design decisions and contracts that future AI/developers need to execute safely.
52
+
53
+ ---
54
+
55
+ ## Spec Structure Overview
56
+
57
+ ```
58
+ .trellis/spec/
59
+ ├── backend/ # Backend coding standards
60
+ │ ├── index.md # Overview and links
61
+ │ └── *.md # Topic-specific guidelines
62
+ ├── frontend/ # Frontend coding standards
63
+ │ ├── index.md # Overview and links
64
+ │ └── *.md # Topic-specific guidelines
65
+ └── guides/ # Thinking checklists (NOT coding specs!)
66
+ ├── index.md # Guide index
67
+ └── *.md # Topic-specific guides
68
+ ```
69
+
70
+ ### CRITICAL: Code-Spec vs Guide - Know the Difference
71
+
72
+ | Type | Location | Purpose | Content Style |
73
+ |------|----------|---------|---------------|
74
+ | **Code-Spec** | `backend/*.md`, `frontend/*.md` | Tell AI "how to implement safely" | Signatures, contracts, matrices, cases, test points |
75
+ | **Guide** | `guides/*.md` | Help AI "what to think about" | Checklists, questions, pointers to specs |
76
+
77
+ **Decision Rule**: Ask yourself:
78
+
79
+ - "This is **how to write** the code" → Put in `backend/` or `frontend/`
80
+ - "This is **what to consider** before writing" → Put in `guides/`
81
+
82
+ **Example**:
83
+
84
+ | Learning | Wrong Location | Correct Location |
85
+ |----------|----------------|------------------|
86
+ | "Use `reconfigure()` not `TextIOWrapper` for Windows stdout" | ❌ `guides/cross-platform-thinking-guide.md` | ✅ `backend/script-conventions.md` |
87
+ | "Remember to check encoding when writing cross-platform code" | ❌ `backend/script-conventions.md` | ✅ `guides/cross-platform-thinking-guide.md` |
88
+
89
+ **Guides should be short checklists that point to specs**, not duplicate the detailed rules.
90
+
91
+ ---
92
+
93
+ ## Update Process
94
+
95
+ ### Step 1: Identify What You Learned
96
+
97
+ Answer these questions:
98
+
99
+ 1. **What did you learn?** (Be specific)
100
+ 2. **Why is it important?** (What problem does it prevent?)
101
+ 3. **Where does it belong?** (Which spec file?)
102
+
103
+ ### Step 2: Classify the Update Type
104
+
105
+ | Type | Description | Action |
106
+ |------|-------------|--------|
107
+ | **Design Decision** | Why we chose approach X over Y | Add to "Design Decisions" section |
108
+ | **Project Convention** | How we do X in this project | Add to relevant section with examples |
109
+ | **New Pattern** | A reusable approach discovered | Add to "Patterns" section |
110
+ | **Forbidden Pattern** | Something that causes problems | Add to "Anti-patterns" or "Don't" section |
111
+ | **Common Mistake** | Easy-to-make error | Add to "Common Mistakes" section |
112
+ | **Convention** | Agreed-upon standard | Add to relevant section |
113
+ | **Gotcha** | Non-obvious behavior | Add warning callout |
114
+
115
+ ### Step 3: Read the Target Code-Spec
116
+
117
+ Before editing, read the current code-spec to:
118
+ - Understand existing structure
119
+ - Avoid duplicating content
120
+ - Find the right section for your update
121
+
122
+ ```bash
123
+ cat .trellis/spec/<category>/<file>.md
124
+ ```
125
+
126
+ ### Step 4: Make the Update
127
+
128
+ Follow these principles:
129
+
130
+ 1. **Be Specific**: Include concrete examples, not just abstract rules
131
+ 2. **Explain Why**: State the problem this prevents
132
+ 3. **Show Contracts**: Add signatures, payload fields, and error behavior
133
+ 4. **Show Code**: Add code snippets for key patterns
134
+ 5. **Keep it Short**: One concept per section
135
+
136
+ ### Step 5: Update the Index (if needed)
137
+
138
+ If you added a new section or the code-spec status changed, update the category's `index.md`.
139
+
140
+ ---
141
+
142
+ ## Update Templates
143
+
144
+ ### Mandatory Template for Infra/Cross-Layer Work
145
+
146
+ ```markdown
147
+ ## Scenario: <name>
148
+
149
+ ### 1. Scope / Trigger
150
+ - Trigger: <why this requires code-spec depth>
151
+
152
+ ### 2. Signatures
153
+ - Backend command/API/DB signature(s)
154
+
155
+ ### 3. Contracts
156
+ - Request fields (name, type, constraints)
157
+ - Response fields (name, type, constraints)
158
+ - Environment keys (required/optional)
159
+
160
+ ### 4. Validation & Error Matrix
161
+ - <condition> -> <error>
162
+
163
+ ### 5. Good/Base/Bad Cases
164
+ - Good: ...
165
+ - Base: ...
166
+ - Bad: ...
167
+
168
+ ### 6. Tests Required
169
+ - Unit/Integration/E2E with assertion points
170
+
171
+ ### 7. Wrong vs Correct
172
+ #### Wrong
173
+ ...
174
+ #### Correct
175
+ ...
176
+ ```
177
+
178
+ ### Adding a Design Decision
179
+
180
+ ```markdown
181
+ ### Design Decision: [Decision Name]
182
+
183
+ **Context**: What problem were we solving?
184
+
185
+ **Options Considered**:
186
+ 1. Option A - brief description
187
+ 2. Option B - brief description
188
+
189
+ **Decision**: We chose Option X because...
190
+
191
+ **Example**:
192
+ \`\`\`typescript
193
+ // How it's implemented
194
+ code example
195
+ \`\`\`
196
+
197
+ **Extensibility**: How to extend this in the future...
198
+ ```
199
+
200
+ ### Adding a Project Convention
201
+
202
+ ```markdown
203
+ ### Convention: [Convention Name]
204
+
205
+ **What**: Brief description of the convention.
206
+
207
+ **Why**: Why we do it this way in this project.
208
+
209
+ **Example**:
210
+ \`\`\`typescript
211
+ // How to follow this convention
212
+ code example
213
+ \`\`\`
214
+
215
+ **Related**: Links to related conventions or specs.
216
+ ```
217
+
218
+ ### Adding a New Pattern
219
+
220
+ ```markdown
221
+ ### Pattern Name
222
+
223
+ **Problem**: What problem does this solve?
224
+
225
+ **Solution**: Brief description of the approach.
226
+
227
+ **Example**:
228
+ \`\`\`
229
+ // Good
230
+ code example
231
+
232
+ // Bad
233
+ code example
234
+ \`\`\`
235
+
236
+ **Why**: Explanation of why this works better.
237
+ ```
238
+
239
+ ### Adding a Forbidden Pattern
240
+
241
+ ```markdown
242
+ ### Don't: Pattern Name
243
+
244
+ **Problem**:
245
+ \`\`\`
246
+ // Don't do this
247
+ bad code example
248
+ \`\`\`
249
+
250
+ **Why it's bad**: Explanation of the issue.
251
+
252
+ **Instead**:
253
+ \`\`\`
254
+ // Do this instead
255
+ good code example
256
+ \`\`\`
257
+ ```
258
+
259
+ ### Adding a Common Mistake
260
+
261
+ ```markdown
262
+ ### Common Mistake: Description
263
+
264
+ **Symptom**: What goes wrong
265
+
266
+ **Cause**: Why this happens
267
+
268
+ **Fix**: How to correct it
269
+
270
+ **Prevention**: How to avoid it in the future
271
+ ```
272
+
273
+ ### Adding a Gotcha
274
+
275
+ ```markdown
276
+ > **Warning**: Brief description of the non-obvious behavior.
277
+ >
278
+ > Details about when this happens and how to handle it.
279
+ ```
280
+
281
+ ---
282
+
283
+ ## Interactive Mode
284
+
285
+ If you're unsure what to update, answer these prompts:
286
+
287
+ 1. **What did you just finish?**
288
+ - [ ] Fixed a bug
289
+ - [ ] Implemented a feature
290
+ - [ ] Refactored code
291
+ - [ ] Had a discussion about approach
292
+
293
+ 2. **What did you learn or decide?**
294
+ - Design decision (why X over Y)
295
+ - Project convention (how we do X)
296
+ - Non-obvious behavior (gotcha)
297
+ - Better approach (pattern)
298
+
299
+ 3. **Would future AI/developers need to know this?**
300
+ - To understand how the code works → Yes, update spec
301
+ - To maintain or extend the feature → Yes, update spec
302
+ - To avoid repeating mistakes → Yes, update spec
303
+ - Purely one-off implementation detail → Maybe skip
304
+
305
+ 4. **Which area does it relate to?**
306
+ - [ ] Backend code
307
+ - [ ] Frontend code
308
+ - [ ] Cross-layer data flow
309
+ - [ ] Code organization/reuse
310
+ - [ ] Quality/testing
311
+
312
+ ---
313
+
314
+ ## Quality Checklist
315
+
316
+ Before finishing your code-spec update:
317
+
318
+ - [ ] Is the content specific and actionable?
319
+ - [ ] Did you include a code example?
320
+ - [ ] Did you explain WHY, not just WHAT?
321
+ - [ ] Did you include executable signatures/contracts?
322
+ - [ ] Did you include validation and error matrix?
323
+ - [ ] Did you include Good/Base/Bad cases?
324
+ - [ ] Did you include required tests with assertion points?
325
+ - [ ] Is it in the right code-spec file?
326
+ - [ ] Does it duplicate existing content?
327
+ - [ ] Would a new team member understand it?
328
+
329
+ ---
330
+
331
+ ## Relationship to Other Commands
332
+
333
+ ```
334
+ Development Flow:
335
+ Learn something → /trellis-update-spec → Knowledge captured
336
+ ↑ ↓
337
+ /trellis-break-loop ←──────────────────── Future sessions benefit
338
+ (deep bug analysis)
339
+ ```
340
+
341
+ - `/trellis-break-loop` - Analyzes bugs deeply, often reveals spec updates needed
342
+ - `/trellis-update-spec` - Actually makes the updates (this command)
343
+ - `/trellis-finish-work` - Reminds you to check if specs need updates
344
+
345
+ ---
346
+
347
+ ## Core Philosophy
348
+
349
+ > **Code-specs are living documents. Every debugging session, every "aha moment" is an opportunity to make the implementation contract clearer.**
350
+
351
+ The goal is **institutional memory**:
352
+ - What one person learns, everyone benefits from
353
+ - What AI learns in one session, persists to future sessions
354
+ - Mistakes become documented guardrails