@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,118 +0,0 @@
1
- # Code Reuse Thinking Guide
2
-
3
- > **Purpose**: Stop and think before creating new code - does it already exist?
4
-
5
- ---
6
-
7
- ## The Problem
8
-
9
- **Duplicated code is the #1 source of inconsistency bugs.**
10
-
11
- When you copy-paste or rewrite existing logic:
12
- - Bug fixes don't propagate
13
- - Behavior diverges over time
14
- - Codebase becomes harder to understand
15
-
16
- ---
17
-
18
- ## Before Writing New Code
19
-
20
- ### Step 1: Search First
21
-
22
- ```bash
23
- # Search for similar function names
24
- grep -r "functionName" .
25
-
26
- # Search for similar logic
27
- grep -r "keyword" .
28
- ```
29
-
30
- ### Step 2: Ask These Questions
31
-
32
- | Question | If Yes... |
33
- |----------|-----------|
34
- | Does a similar function exist? | Use or extend it |
35
- | Is this pattern used elsewhere? | Follow the existing pattern |
36
- | Could this be a shared utility? | Create it in the right place |
37
- | Am I copying code from another file? | **STOP** - extract to shared |
38
-
39
- ---
40
-
41
- ## Common Duplication Patterns
42
-
43
- ### Pattern 1: Copy-Paste Functions
44
-
45
- **Bad**: Copying a validation function to another file
46
-
47
- **Good**: Extract to shared utilities, import where needed
48
-
49
- ### Pattern 2: Similar Components
50
-
51
- **Bad**: Creating a new component that's 80% similar to existing
52
-
53
- **Good**: Extend existing component with props/variants
54
-
55
- ### Pattern 3: Repeated Constants
56
-
57
- **Bad**: Defining the same constant in multiple files
58
-
59
- **Good**: Single source of truth, import everywhere
60
-
61
- ---
62
-
63
- ## When to Abstract
64
-
65
- **Abstract when**:
66
- - Same code appears 3+ times
67
- - Logic is complex enough to have bugs
68
- - Multiple people might need this
69
-
70
- **Don't abstract when**:
71
- - Only used once
72
- - Trivial one-liner
73
- - Abstraction would be more complex than duplication
74
-
75
- ---
76
-
77
- ## After Batch Modifications
78
-
79
- When you've made similar changes to multiple files:
80
-
81
- 1. **Review**: Did you catch all instances?
82
- 2. **Search**: Run grep to find any missed
83
- 3. **Consider**: Should this be abstracted?
84
-
85
- ---
86
-
87
- ## Checklist Before Commit
88
-
89
- - [ ] Searched for existing similar code
90
- - [ ] No copy-pasted logic that should be shared
91
- - [ ] Constants defined in one place
92
- - [ ] Similar patterns follow same structure
93
-
94
- ---
95
-
96
- ## Template File Registration (Trellis-specific)
97
-
98
- When adding new files to `src/templates/trellis/scripts/`:
99
-
100
- **CRITICAL**: New script files must be registered in THREE places:
101
-
102
- 1. **`src/templates/trellis/index.ts`**:
103
- - Add `export const xxxScript = readTemplate("scripts/path/file.py");`
104
- - Add to `getAllScripts()` Map
105
-
106
- 2. **`src/commands/update.ts`**:
107
- - Add to import statement
108
- - Add to `collectTemplateFiles()` Map
109
-
110
- **Why this matters**: Without registration, `trellis update` won't sync the file to user projects. Bug fixes and features won't propagate.
111
-
112
- ### Quick Checklist for New Scripts
113
-
114
- ```bash
115
- # After adding a new .py file, verify:
116
- grep -l "newFileName" src/templates/trellis/index.ts # Should match
117
- grep -l "newFileName" src/commands/update.ts # Should match
118
- ```
@@ -1,394 +0,0 @@
1
- # Cross-Platform Thinking Guide
2
-
3
- > **Purpose**: Catch platform-specific assumptions before they become bugs.
4
-
5
- ---
6
-
7
- ## Why This Matters
8
-
9
- **Most cross-platform bugs come from implicit assumptions**:
10
-
11
- - Assumed shebang works → breaks on Windows
12
- - Assumed `/` path separator → breaks on Windows
13
- - Assumed `\n` line endings → inconsistent behavior
14
- - Assumed command availability → `grep` vs `findstr`
15
-
16
- ---
17
-
18
- ## Platform Differences Checklist
19
-
20
- ### 1. Script Execution
21
-
22
- | Assumption | macOS/Linux | Windows |
23
- |------------|-------------|---------|
24
- | Shebang (`#!/usr/bin/env python3`) | ✅ Works | ❌ Ignored |
25
- | Direct execution (`./script.py`) | ✅ Works | ❌ Fails |
26
- | `python3` command | ✅ Always available | ⚠️ May need `python` |
27
- | `python` command | ⚠️ May be Python 2 | ✅ Usually Python 3 |
28
-
29
- **Rule 1**: Always use explicit `python3` in documentation, help text, and error messages.
30
-
31
- ```python
32
- # BAD - Assumes shebang works
33
- print("Usage: ./script.py <args>")
34
- print("Run: script.py <args>")
35
-
36
- # GOOD - Explicit interpreter
37
- print("Usage: python3 script.py <args>")
38
- print("Run: python3 ./script.py <args>")
39
- ```
40
-
41
- **Rule 2**: When calling Python from TypeScript/Node.js, detect the available command:
42
-
43
- ```typescript
44
- function getPythonCommand(): string {
45
- try {
46
- execSync("python3 --version", { stdio: "pipe" });
47
- return "python3";
48
- } catch {
49
- try {
50
- execSync("python --version", { stdio: "pipe" });
51
- return "python";
52
- } catch {
53
- return "python3"; // Default, will fail with clear error
54
- }
55
- }
56
- }
57
- ```
58
-
59
- **Rule 3**: When calling Python from Python, use `sys.executable`:
60
-
61
- ```python
62
- import sys
63
- import subprocess
64
-
65
- # BAD - Hardcoded command
66
- subprocess.run(["python3", "other_script.py"])
67
-
68
- # GOOD - Use current interpreter
69
- subprocess.run([sys.executable, "other_script.py"])
70
- ```
71
-
72
- ### 2. Path Handling
73
-
74
- | Assumption | macOS/Linux | Windows |
75
- |------------|-------------|---------|
76
- | `/` separator | ✅ Works | ⚠️ Sometimes works |
77
- | `\` separator | ❌ Escape char | ✅ Native |
78
- | `pathlib.Path` | ✅ Works | ✅ Works |
79
-
80
- **Rule**: Use `pathlib.Path` for all path operations.
81
-
82
- ```python
83
- # BAD - String concatenation
84
- path = base + "/" + filename
85
-
86
- # GOOD - pathlib
87
- from pathlib import Path
88
- path = Path(base) / filename
89
- ```
90
-
91
- ### 3. Line Endings
92
-
93
- | Format | macOS/Linux | Windows | Git |
94
- |--------|-------------|---------|-----|
95
- | `\n` (LF) | ✅ Native | ⚠️ Some tools | ✅ Normalized |
96
- | `\r\n` (CRLF) | ⚠️ Extra char | ✅ Native | Converted |
97
-
98
- **Rule**: Use `.gitattributes` to enforce consistent line endings.
99
-
100
- ```gitattributes
101
- * text=auto eol=lf
102
- *.sh text eol=lf
103
- *.py text eol=lf
104
- ```
105
-
106
- ### 4. Environment Variables
107
-
108
- | Variable | macOS/Linux | Windows |
109
- |----------|-------------|---------|
110
- | `HOME` | ✅ Set | ❌ Use `USERPROFILE` |
111
- | `PATH` separator | `:` | `;` |
112
- | Case sensitivity | ✅ Case-sensitive | ❌ Case-insensitive |
113
-
114
- **Rule**: Use `pathlib.Path.home()` instead of environment variables.
115
-
116
- ```python
117
- # BAD
118
- home = os.environ.get("HOME")
119
-
120
- # GOOD
121
- home = Path.home()
122
- ```
123
-
124
- ### 5. Command Availability
125
-
126
- | Command | macOS/Linux | Windows |
127
- |---------|-------------|---------|
128
- | `grep` | ✅ Built-in | ❌ Not available |
129
- | `find` | ✅ Built-in | ⚠️ Different syntax |
130
- | `cat` | ✅ Built-in | ❌ Use `type` |
131
- | `tail -f` | ✅ Built-in | ❌ Not available |
132
-
133
- **Rule**: Use Python standard library instead of shell commands when possible.
134
-
135
- ```python
136
- # BAD - tail -f is not available on Windows
137
- subprocess.run(["tail", "-f", log_file])
138
-
139
- # GOOD - Cross-platform implementation
140
- def tail_follow(file_path: Path) -> None:
141
- """Follow a file like 'tail -f', cross-platform compatible."""
142
- with open(file_path, "r", encoding="utf-8", errors="replace") as f:
143
- f.seek(0, 2) # Go to end
144
- while True:
145
- line = f.readline()
146
- if line:
147
- print(line, end="", flush=True)
148
- else:
149
- time.sleep(0.1)
150
- ```
151
-
152
- ### 6. File Encoding
153
-
154
- | Default Encoding | macOS/Linux | Windows |
155
- |------------------|-------------|---------|
156
- | Terminal | UTF-8 | Often CP1252 or GBK |
157
- | File I/O | UTF-8 | System locale |
158
- | Git output | UTF-8 | May vary |
159
-
160
- **Rule**: Always explicitly specify `encoding="utf-8"` and use `errors="replace"`.
161
-
162
- > **Checklist**: When writing scripts that print non-ASCII, did you configure stdout encoding?
163
- > See `backend/script-conventions.md` for the specific pattern.
164
-
165
- ```python
166
- # BAD - Relies on system default
167
- with open(file, "r") as f:
168
- content = f.read()
169
-
170
- result = subprocess.run(cmd, capture_output=True, text=True)
171
-
172
- # GOOD - Explicit encoding with error handling
173
- with open(file, "r", encoding="utf-8", errors="replace") as f:
174
- content = f.read()
175
-
176
- result = subprocess.run(
177
- cmd,
178
- capture_output=True,
179
- text=True,
180
- encoding="utf-8",
181
- errors="replace"
182
- )
183
- ```
184
-
185
- **Git commands**: Force UTF-8 output encoding:
186
-
187
- ```python
188
- # Force git to output UTF-8
189
- git_args = ["git", "-c", "i18n.logOutputEncoding=UTF-8"] + args
190
- result = subprocess.run(
191
- git_args,
192
- capture_output=True,
193
- text=True,
194
- encoding="utf-8",
195
- errors="replace"
196
- )
197
- ```
198
-
199
- ---
200
-
201
- ## Change Propagation Checklist
202
-
203
- When making platform-related changes, check **all these locations**:
204
-
205
- ### Documentation & Help Text
206
- - [ ] Docstrings at top of Python files
207
- - [ ] `--help` output / argparse descriptions
208
- - [ ] Usage examples in README
209
- - [ ] Error messages that suggest commands
210
- - [ ] Markdown documentation (`.md` files)
211
-
212
- ### Code Locations
213
- - [ ] `src/templates/` - Template files for new projects
214
- - [ ] `.trellis/scripts/` - Project's own scripts (if self-hosting)
215
- - [ ] `dist/` - Built output (rebuild after changes)
216
-
217
- ### Search Pattern
218
- ```bash
219
- # Find all places that might need updating
220
- grep -r "python [a-z]" --include="*.py" --include="*.md"
221
- grep -r "\./" --include="*.py" --include="*.md" | grep -v python3
222
- ```
223
-
224
- ---
225
-
226
- ## Pre-Commit Checklist
227
-
228
- Before committing cross-platform code:
229
-
230
- - [ ] All Python invocations use `python3` explicitly (docs) or `sys.executable` (code)
231
- - [ ] All paths use `pathlib.Path`
232
- - [ ] No hardcoded path separators (`/` or `\`)
233
- - [ ] No platform-specific commands without fallbacks (e.g., `tail -f`)
234
- - [ ] All file I/O specifies `encoding="utf-8"` and `errors="replace"`
235
- - [ ] All subprocess calls specify `encoding="utf-8"` and `errors="replace"`
236
- - [ ] Git commands use `-c i18n.logOutputEncoding=UTF-8`
237
- - [ ] External tool API formats verified from documentation
238
- - [ ] Documentation matches code behavior
239
- - [ ] Ran search to find all affected locations
240
-
241
- ### 7. External Tool API Contracts
242
-
243
- When integrating with external tools (Claude Code, Cursor, etc.), their API contracts are **implicit assumptions**.
244
-
245
- **Rule**: Verify API formats from official documentation, don't guess.
246
-
247
- ```python
248
- # BAD - Guessed format
249
- output = {"continue": True, "message": "..."}
250
-
251
- # GOOD - Verified format from documentation
252
- output = {
253
- "hookSpecificOutput": {
254
- "hookEventName": "SessionStart",
255
- "additionalContext": "..."
256
- }
257
- }
258
- ```
259
-
260
- > **Warning**: Different hook types may have different output formats.
261
- > Always check the specific documentation for each hook event.
262
-
263
- ---
264
-
265
- ## JSON/External Data Defensive Checks
266
-
267
- When parsing JSON or external data, TypeScript types are **compile-time only**. Runtime data may not match.
268
-
269
- **Rule**: Always add defensive checks for required fields before using them.
270
-
271
- ```typescript
272
- // BAD - Trusts TypeScript type definition
273
- interface MigrationItem {
274
- from: string; // TypeScript says required
275
- to?: string;
276
- }
277
-
278
- function process(item: MigrationItem) {
279
- const path = item.from; // Runtime: could be undefined!
280
- }
281
-
282
- // GOOD - Defensive check before use
283
- function process(item: MigrationItem) {
284
- if (!item.from) return; // Skip invalid data
285
- const path = item.from; // Now guaranteed
286
- }
287
- ```
288
-
289
- **When to apply**:
290
- - Parsing JSON files (manifests, configs)
291
- - API responses
292
- - User input
293
- - Any data from external sources
294
-
295
- **Pattern**: Check existence → then use
296
-
297
- ```typescript
298
- // Filter pattern - skip invalid items
299
- const validItems = items.filter(item => item.from && item.to);
300
-
301
- // Early return pattern - bail on invalid
302
- if (!data.requiredField) {
303
- console.warn("Missing required field");
304
- return defaultValue;
305
- }
306
- ```
307
-
308
- ---
309
-
310
- ## Common Mistakes
311
-
312
- ### 1. "It works on my Mac"
313
-
314
- ```python
315
- # Developer's Mac
316
- subprocess.run(["./script.py"]) # Works!
317
-
318
- # User's Windows
319
- subprocess.run(["./script.py"]) # FileNotFoundError
320
- ```
321
-
322
- ### 2. "The shebang should handle it"
323
-
324
- ```python
325
- #!/usr/bin/env python3
326
- # This line is IGNORED on Windows
327
- ```
328
-
329
- ### 3. "I updated the template"
330
-
331
- ```
332
- src/templates/script.py ← Updated
333
- .trellis/scripts/script.py ← Forgot to sync!
334
- ```
335
-
336
- ### 4. "Python 3 is always python3"
337
-
338
- ```bash
339
- # Developer's Mac/Linux
340
- python3 script.py # Works!
341
-
342
- # User's Windows (Python from python.org)
343
- python3 script.py # 'python3' is not recognized
344
- python script.py # Works!
345
- ```
346
-
347
- ### 5. "UTF-8 is the default everywhere"
348
-
349
- ```python
350
- # Developer's Mac (UTF-8 default)
351
- subprocess.run(cmd, capture_output=True, text=True) # Works!
352
-
353
- # User's Windows (GBK/CP1252 default)
354
- subprocess.run(cmd, capture_output=True, text=True) # Garbled Chinese/Unicode
355
- ```
356
-
357
- > **Note**: stdout encoding is also affected. See `backend/script-conventions.md` for the fix.
358
-
359
- ---
360
-
361
- ## Recovery: When You Find a Platform Bug
362
-
363
- 1. **Fix the immediate issue**
364
- 2. **Search for similar patterns** (grep the codebase)
365
- 3. **Update this guide** with the new pattern
366
- 4. **Add to pre-commit checklist** if recurring
367
-
368
- ---
369
-
370
- **Core Principle**: If it's not explicit, it's an assumption. And assumptions break.
371
-
372
- ---
373
-
374
- ## Release Checklist: Versioned Files
375
-
376
- When releasing a new version, ensure **all versioned files** are created/updated:
377
-
378
- - [ ] `src/migrations/manifests/{version}.json` - Migration manifest exists
379
- - [ ] Manifest has correct version, description, changelog
380
- - [ ] `pnpm build` copies manifests to `dist/`
381
- - [ ] Test upgrade path from older versions (not just adjacent)
382
-
383
- **Why this matters**: Missing manifests cause "path undefined" errors when users upgrade from older versions.
384
-
385
- ```bash
386
- # Verify all expected manifests exist
387
- ls src/migrations/manifests/
388
-
389
- # Test upgrade path
390
- node -e "
391
- const { getMigrationsForVersion } = require('./dist/migrations/index.js');
392
- console.log('From 0.2.12:', getMigrationsForVersion('0.2.12', 'CURRENT').length);
393
- "
394
- ```
@@ -1,129 +0,0 @@
1
- ---
2
- description: |
3
- Issue fixing expert. Understands issues, fixes against specs, and verifies fixes. Precise fixes only.
4
- mode: subagent
5
- permission:
6
- read: allow
7
- write: allow
8
- edit: allow
9
- bash: allow
10
- glob: allow
11
- grep: allow
12
- mcp__exa__*: allow
13
- ---
14
- # Debug Agent
15
-
16
- You are the Debug Agent in the Trellis workflow.
17
-
18
- ## Context Self-Loading
19
-
20
- **If you see "# Debug Agent Task" header with pre-loaded context above, skip this section.**
21
-
22
- Otherwise, load context yourself:
23
-
24
- 1. Read `.trellis/.current-task` → get task directory (e.g., `.trellis/tasks/xxx`)
25
- 2. Read `{task_dir}/debug.jsonl` (or `spec.jsonl` as fallback)
26
- 3. For each entry in JSONL:
27
- - If `path` is a file → Read it
28
- - If `path` is a directory → Read all `.md` files in it
29
- 4. Read `{task_dir}/codex-review-output.txt` if exists (Codex review results)
30
-
31
- Then proceed with the workflow below using the loaded context.
32
-
33
- ---
34
-
35
- ## Context
36
-
37
- Before debugging, read:
38
- - `.trellis/spec/` - Development guidelines
39
- - Error messages or issue descriptions provided
40
-
41
- ## Core Responsibilities
42
-
43
- 1. **Understand issues** - Analyze error messages or reported issues
44
- 2. **Fix against specs** - Fix issues following dev specs
45
- 3. **Verify fixes** - Run typecheck to ensure no new issues
46
- 4. **Report results** - Report fix status
47
-
48
- ---
49
-
50
- ## Workflow
51
-
52
- ### Step 1: Understand Issues
53
-
54
- Parse the issue, categorize by priority:
55
-
56
- - `[P1]` - Must fix (blocking)
57
- - `[P2]` - Should fix (important)
58
- - `[P3]` - Optional fix (nice to have)
59
-
60
- ### Step 2: Research if Needed
61
-
62
- If you need additional info:
63
-
64
- ```bash
65
- # Check knowledge base
66
- ls .trellis/big-question/
67
- ```
68
-
69
- ### Step 3: Fix One by One
70
-
71
- For each issue:
72
-
73
- 1. Locate the exact position
74
- 2. Fix following specs
75
- 3. Run typecheck to verify
76
-
77
- ### Step 4: Verify
78
-
79
- Run project's lint and typecheck commands to verify fixes.
80
-
81
- If fix introduces new issues:
82
-
83
- 1. Revert the fix
84
- 2. Use a more complete solution
85
- 3. Re-verify
86
-
87
- ---
88
-
89
- ## Report Format
90
-
91
- ```markdown
92
- ## Fix Report
93
-
94
- ### Issues Fixed
95
-
96
- 1. `[P1]` `<file>:<line>` - <what was fixed>
97
- 2. `[P2]` `<file>:<line>` - <what was fixed>
98
-
99
- ### Issues Not Fixed
100
-
101
- - `<file>:<line>` - <reason why not fixed>
102
-
103
- ### Verification
104
-
105
- - TypeCheck: Pass
106
- - Lint: Pass
107
-
108
- ### Summary
109
-
110
- Fixed X/Y issues. Z issues require discussion.
111
- ```
112
-
113
- ---
114
-
115
- ## Guidelines
116
-
117
- ### DO
118
-
119
- - Precise fixes for reported issues
120
- - Follow specs
121
- - Verify each fix
122
-
123
- ### DON'T
124
-
125
- - Don't refactor surrounding code
126
- - Don't add new features
127
- - Don't modify unrelated files
128
- - Don't use non-null assertion (`x!` operator)
129
- - Don't execute git commit