@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
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.5.0-beta.1",
3
+ "description": "First published 0.5 beta — same code as the beta.0 dev cut, bumped at release time",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Release:**\n- First @beta-tagged release of the 0.5 skill-first architecture. Code is identical to the 0.5.0-beta.0 dev cut; the bump happens automatically via `pnpm version prerelease --preid beta` inside `pnpm release:beta`, so beta.0 was never published to npm.\n\nAll migration work (command→skill for 5 skills, safe-file-delete for 6 legacy commands + multi-agent + iFlow + Ralph Loop, breaking-change gate, worktree backup exclusion) is defined in the 0.5.0-beta.0 manifest and applies when upgrading from 0.4.x.",
7
+ "migrations": [],
8
+ "notes": "If upgrading from 0.4.x: run `trellis update --migrate` — the gate in the 0.5.0-beta.0 manifest requires the flag. See the 0.5.0-beta.0 changelog for the full migration story."
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.5.0-beta.2",
3
+ "description": "Bug fix: [b] Backup-rename in the migration confirm prompt now writes an inline .backup copy instead of silently behaving identically to [r] Rename anyway",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Bug Fixes:**\n- fix(update): `backup-rename` actually writes inline `.backup` copy (25a3337) — previously `[b] Backup original, then proceed` and `[r] Rename anyway` executed the exact same code path. Both relied on the full project snapshot at `.trellis/.backup-<timestamp>/`, making the prompt's promise of \"keeps a .backup copy\" misleading. Now `backup-rename` writes `<new-path>.backup` (for rename) or `<from>.backup` (for delete) alongside the normal operation so users can diff/merge their customizations against the new template without digging through the full snapshot. Prompt labels updated to state the concrete artifact path.",
7
+ "migrations": [],
8
+ "notes": "Pure CLI-side bug fix — no project file migrations. Run `trellis update` to sync to the new CLI behavior."
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.5.0-beta.3",
3
+ "description": "Bug fix: update.skip no longer leaves breaking-release upgrades half-migrated — skip is bypassed for safe-file-delete and template writes when manifest is breaking + recommendMigrate + user passed --migrate",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Bug Fixes:**\n- fix(update): bypass `update.skip` across safe-file-delete + template writes for breaking releases. Previously, projects with paths under `update.skip` in `.trellis/config.yaml` would upgrade inconsistently when crossing a breaking release: `rename` migrations already ignored skip, but `safe-file-delete` and template writes honored it. Result: users ended up half-migrated — old deprecated files persisted under skip-protected paths, new commands like `continue.md` never landed, and every future update re-flagged the same mess.\n\n Now when the current upgrade spans a manifest with `breaking: true + recommendMigrate: true` and the user passed `--migrate`, `update.skip` is bypassed for all three operations: rename / safe-file-delete / template writes. User customizations are still guarded by the per-file `Modified by you` confirm prompt at write time, and the hash check in `allowed_hashes` is still the ultimate safety net for safe-file-delete (user-modified files stay put with a `skip-modified` warning regardless).\n\n Non-breaking updates continue to respect `update.skip` as before — only breaking releases trigger the bypass.\n\n A new yellow `⚠ update.skip BYPASSED` notice appears in the breaking-change warning block so users aren't surprised when skip-protected files get cleaned up during the migration.",
7
+ "migrations": [],
8
+ "notes": "Pure CLI-side bug fix — no project file migrations. If upgrading from 0.4.x with an `update.skip` in config.yaml, this release finally lets the 0.5.0-beta.0 breaking migration complete cleanly: run `trellis update --migrate` to finish any half-migrated state from prior 0.5 beta upgrades."
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.5.0-beta.4",
3
+ "description": "Critical bug fix: workflow.md is now included in update's template set — previously excluded, causing 0.4.x → 0.5 upgrades to silently leave workflow.md at the old structure that 0.5's get_context.py / hooks can't parse",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Bug Fixes:**\n- fix(update): include workflow.md in `collectTemplateFiles` — `.trellis/workflow.md` was explicitly excluded from `trellis update`'s template set on the assumption that it's \"user-customizable documentation, written once at init\". That assumption broke in 0.5.0 because workflow.md started carrying **script-parsed structure**: `## Phase Index` (read by `get_context.py --mode phase`), `## Phase 1/2/3` headings (inlined into SessionStart payload), and `[workflow-state:STATUS]` tag blocks (consumed by the per-turn breadcrumb hook). Users upgrading from 0.4.x → 0.5 ended up with `get_context.py` reporting `Phase Index section not found in workflow.md` and the `/continue` command unable to route. workflow.md is now included in the normal update flow — unmodified copies auto-update, user-modified copies go through the existing \"Modified by you\" confirm prompt with diff. `workspace/index.md` stays excluded (it's runtime-appended by `add_session.py`, no script-parsed structure).",
7
+ "migrations": [],
8
+ "notes": "Pure CLI-side bug fix — no project file migrations. If you upgraded to any 0.5.0-beta.0..beta.3 and see `Phase Index section not found in workflow.md` from `get_context.py`, this release fixes it: run `trellis update --migrate`. Unmodified workflow.md auto-updates; if you customized it, you'll see the \"Modified by you\" confirm prompt with a diff — pick `Overwrite` to get the new 0.5.0 structure, or merge your edits manually into the new template."
9
+ }
@@ -0,0 +1,222 @@
1
+ {
2
+ "version": "0.5.0-beta.5",
3
+ "description": "Sub-agent rename + remove model: opus from all agent templates. Prefixes implement/check/research with trellis- to prevent accidental invocation by user's own agents or the main agent's description heuristics. Drops hardcoded model: opus from agent frontmatter across all 10 platforms — this caused Cursor users real cost pain because Cursor mapped opus to Claude Opus (~5x Sonnet pricing).",
4
+ "breaking": true,
5
+ "recommendMigrate": true,
6
+ "changelog": "**Breaking Changes:**\n- rename(agents): `implement` / `check` / `research` sub-agents are now `trellis-implement` / `trellis-check` / `trellis-research` across all 10 platforms (claude, cursor, opencode, codex, kiro, gemini, qoder, codebuddy, copilot, droid). Generic names were colliding with user-defined agents and being matched by the main agent's description heuristics on some platforms. Prefixing with `trellis-` makes them unambiguously Trellis sub-agents. `workflow.md`, copilot start prompt, `shared-hooks/inject-subagent-context.py`, and configurator detection all updated to use the new names.\n\n**Bug Fixes:**\n- fix(agents): drop `model: opus` from all 18 markdown agent frontmatters + the example `Task()` calls in `copilot/prompts/start.prompt.md`. On Claude Code this merely hardcoded Opus for all sub-agent runs (ignoring user preference); on Cursor it actively mapped to Claude Opus billing at ~5x Sonnet cost and surprised users; on Gemini/Droid/Codebuddy/Qoder `opus` isn't even a valid model identifier. Agents now inherit whatever model the user configured for their platform.",
7
+ "migrationGuide": "## Sub-Agent Rename: `implement` / `check` / `research` → `trellis-*`\n\nbeta.5 renames the three core sub-agents to add a `trellis-` prefix across all 10 agent-capable platforms (Claude, Cursor, OpenCode, Codex, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid). The generic names (`implement`, `check`, `research`) were colliding with user-defined agents in some setups.\n\n### What changes\n\n| Old name | New name |\n|---|---|\n| `implement` | `trellis-implement` |\n| `check` | `trellis-check` |\n| `research` | `trellis-research` |\n\nPaths per platform:\n\n- **Claude / OpenCode / Cursor / etc.**: `.<platform>/agents/implement.md` → `.<platform>/agents/trellis-implement.md`\n- **Codex**: `.codex/agents/implement.toml` → `.codex/agents/trellis-implement.toml`\n- **Kiro**: `.kiro/agents/implement.json` → `.kiro/agents/trellis-implement.json`\n\n### Side-effect: removed `model: opus` from agent templates\n\nAgent YAML frontmatter no longer hardcodes a model. Falls back to whatever the platform default is. If you pinned opus explicitly for a reason (budget, performance), re-add `model: opus` to your local agent files after migrate.\n\n### How to upgrade\n\n```bash\ntrellis update --migrate\n```\n\n30 rename entries run. Unmodified agent files are renamed silently; customized ones (e.g. you tweaked the agent prompt) land on the standard `Modified by you` confirm prompt — pressing Enter (backup-rename) is safe.\n\n### What to check after migrate\n\n1. **Any code that spawns agents by name** — shell scripts, CI jobs, or other automation calling `Task(subagent_type=\"implement\")` must update to `Task(subagent_type=\"trellis-implement\")`.\n2. **Aliases / hot keys** — if you had a keyboard shortcut or prompt alias that referenced `implement` / `check` / `research`, update it.\n3. **Model pin** — if you customized `model: opus` in agent frontmatter, re-add it. Trellis no longer pins a model by default.",
8
+ "aiInstructions": "When helping a user migrate to 0.5.0-beta.5:\n\n1. **Grep for bare agent names in user code**: look for `Task(subagent_type=\"implement\"|\"check\"|\"research\")` in any .md / .ts / .py / shell files. Rename each to the `trellis-` prefixed version.\n\n2. **Check agent customizations**: diff the user's `.<platform>/agents/{implement,check,research}.*` against the new `trellis-*` templates. If they had custom content, help merge it into the new file.\n\n3. **Model pinning**: if their agent frontmatter had `model: opus` and they still want it pinned, re-add it after migrate. beta.5 removes the default pin in favor of platform-default.\n\n4. **Run migrate**: `trellis update --migrate`. Hash-verified renames — pristine files renamed silently, customized files land on the confirm prompt (Enter = backup-rename is safe).\n\n5. **Verify clean second run**: after migrate, running `trellis update` again should report \"Already up to date!\". Any diff indicates a rename that didn't complete (user chose skip on a modified file).",
9
+ "migrations": [
10
+ {
11
+ "type": "rename",
12
+ "from": ".claude/agents/implement.md",
13
+ "to": ".claude/agents/trellis-implement.md",
14
+ "description": "v0.5.0-beta.5: prefix claude sub-agent with trellis- to prevent accidental invocation",
15
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
16
+ },
17
+ {
18
+ "type": "rename",
19
+ "from": ".claude/agents/check.md",
20
+ "to": ".claude/agents/trellis-check.md",
21
+ "description": "v0.5.0-beta.5: prefix claude sub-agent with trellis- to prevent accidental invocation",
22
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
23
+ },
24
+ {
25
+ "type": "rename",
26
+ "from": ".claude/agents/research.md",
27
+ "to": ".claude/agents/trellis-research.md",
28
+ "description": "v0.5.0-beta.5: prefix claude sub-agent with trellis- to prevent accidental invocation",
29
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
30
+ },
31
+ {
32
+ "type": "rename",
33
+ "from": ".cursor/agents/implement.md",
34
+ "to": ".cursor/agents/trellis-implement.md",
35
+ "description": "v0.5.0-beta.5: prefix cursor sub-agent with trellis- to prevent accidental invocation",
36
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
37
+ },
38
+ {
39
+ "type": "rename",
40
+ "from": ".cursor/agents/check.md",
41
+ "to": ".cursor/agents/trellis-check.md",
42
+ "description": "v0.5.0-beta.5: prefix cursor sub-agent with trellis- to prevent accidental invocation",
43
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
44
+ },
45
+ {
46
+ "type": "rename",
47
+ "from": ".cursor/agents/research.md",
48
+ "to": ".cursor/agents/trellis-research.md",
49
+ "description": "v0.5.0-beta.5: prefix cursor sub-agent with trellis- to prevent accidental invocation",
50
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
51
+ },
52
+ {
53
+ "type": "rename",
54
+ "from": ".opencode/agents/implement.md",
55
+ "to": ".opencode/agents/trellis-implement.md",
56
+ "description": "v0.5.0-beta.5: prefix opencode sub-agent with trellis- to prevent accidental invocation",
57
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
58
+ },
59
+ {
60
+ "type": "rename",
61
+ "from": ".opencode/agents/check.md",
62
+ "to": ".opencode/agents/trellis-check.md",
63
+ "description": "v0.5.0-beta.5: prefix opencode sub-agent with trellis- to prevent accidental invocation",
64
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
65
+ },
66
+ {
67
+ "type": "rename",
68
+ "from": ".opencode/agents/research.md",
69
+ "to": ".opencode/agents/trellis-research.md",
70
+ "description": "v0.5.0-beta.5: prefix opencode sub-agent with trellis- to prevent accidental invocation",
71
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
72
+ },
73
+ {
74
+ "type": "rename",
75
+ "from": ".codex/agents/implement.toml",
76
+ "to": ".codex/agents/trellis-implement.toml",
77
+ "description": "v0.5.0-beta.5: prefix codex sub-agent with trellis- to prevent accidental invocation",
78
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
79
+ },
80
+ {
81
+ "type": "rename",
82
+ "from": ".codex/agents/check.toml",
83
+ "to": ".codex/agents/trellis-check.toml",
84
+ "description": "v0.5.0-beta.5: prefix codex sub-agent with trellis- to prevent accidental invocation",
85
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
86
+ },
87
+ {
88
+ "type": "rename",
89
+ "from": ".codex/agents/research.toml",
90
+ "to": ".codex/agents/trellis-research.toml",
91
+ "description": "v0.5.0-beta.5: prefix codex sub-agent with trellis- to prevent accidental invocation",
92
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
93
+ },
94
+ {
95
+ "type": "rename",
96
+ "from": ".kiro/agents/implement.json",
97
+ "to": ".kiro/agents/trellis-implement.json",
98
+ "description": "v0.5.0-beta.5: prefix kiro sub-agent with trellis- to prevent accidental invocation",
99
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
100
+ },
101
+ {
102
+ "type": "rename",
103
+ "from": ".kiro/agents/check.json",
104
+ "to": ".kiro/agents/trellis-check.json",
105
+ "description": "v0.5.0-beta.5: prefix kiro sub-agent with trellis- to prevent accidental invocation",
106
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
107
+ },
108
+ {
109
+ "type": "rename",
110
+ "from": ".kiro/agents/research.json",
111
+ "to": ".kiro/agents/trellis-research.json",
112
+ "description": "v0.5.0-beta.5: prefix kiro sub-agent with trellis- to prevent accidental invocation",
113
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
114
+ },
115
+ {
116
+ "type": "rename",
117
+ "from": ".gemini/agents/implement.md",
118
+ "to": ".gemini/agents/trellis-implement.md",
119
+ "description": "v0.5.0-beta.5: prefix gemini sub-agent with trellis- to prevent accidental invocation",
120
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
121
+ },
122
+ {
123
+ "type": "rename",
124
+ "from": ".gemini/agents/check.md",
125
+ "to": ".gemini/agents/trellis-check.md",
126
+ "description": "v0.5.0-beta.5: prefix gemini sub-agent with trellis- to prevent accidental invocation",
127
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
128
+ },
129
+ {
130
+ "type": "rename",
131
+ "from": ".gemini/agents/research.md",
132
+ "to": ".gemini/agents/trellis-research.md",
133
+ "description": "v0.5.0-beta.5: prefix gemini sub-agent with trellis- to prevent accidental invocation",
134
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
135
+ },
136
+ {
137
+ "type": "rename",
138
+ "from": ".qoder/agents/implement.md",
139
+ "to": ".qoder/agents/trellis-implement.md",
140
+ "description": "v0.5.0-beta.5: prefix qoder sub-agent with trellis- to prevent accidental invocation",
141
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
142
+ },
143
+ {
144
+ "type": "rename",
145
+ "from": ".qoder/agents/check.md",
146
+ "to": ".qoder/agents/trellis-check.md",
147
+ "description": "v0.5.0-beta.5: prefix qoder sub-agent with trellis- to prevent accidental invocation",
148
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
149
+ },
150
+ {
151
+ "type": "rename",
152
+ "from": ".qoder/agents/research.md",
153
+ "to": ".qoder/agents/trellis-research.md",
154
+ "description": "v0.5.0-beta.5: prefix qoder sub-agent with trellis- to prevent accidental invocation",
155
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
156
+ },
157
+ {
158
+ "type": "rename",
159
+ "from": ".codebuddy/agents/implement.md",
160
+ "to": ".codebuddy/agents/trellis-implement.md",
161
+ "description": "v0.5.0-beta.5: prefix codebuddy sub-agent with trellis- to prevent accidental invocation",
162
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
163
+ },
164
+ {
165
+ "type": "rename",
166
+ "from": ".codebuddy/agents/check.md",
167
+ "to": ".codebuddy/agents/trellis-check.md",
168
+ "description": "v0.5.0-beta.5: prefix codebuddy sub-agent with trellis- to prevent accidental invocation",
169
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
170
+ },
171
+ {
172
+ "type": "rename",
173
+ "from": ".codebuddy/agents/research.md",
174
+ "to": ".codebuddy/agents/trellis-research.md",
175
+ "description": "v0.5.0-beta.5: prefix codebuddy sub-agent with trellis- to prevent accidental invocation",
176
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
177
+ },
178
+ {
179
+ "type": "rename",
180
+ "from": ".github/agents/implement.agent.md",
181
+ "to": ".github/agents/trellis-implement.agent.md",
182
+ "description": "v0.5.0-beta.5: prefix copilot sub-agent with trellis- to prevent accidental invocation",
183
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
184
+ },
185
+ {
186
+ "type": "rename",
187
+ "from": ".github/agents/check.agent.md",
188
+ "to": ".github/agents/trellis-check.agent.md",
189
+ "description": "v0.5.0-beta.5: prefix copilot sub-agent with trellis- to prevent accidental invocation",
190
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
191
+ },
192
+ {
193
+ "type": "rename",
194
+ "from": ".github/agents/research.agent.md",
195
+ "to": ".github/agents/trellis-research.agent.md",
196
+ "description": "v0.5.0-beta.5: prefix copilot sub-agent with trellis- to prevent accidental invocation",
197
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
198
+ },
199
+ {
200
+ "type": "rename",
201
+ "from": ".factory/droids/implement.md",
202
+ "to": ".factory/droids/trellis-implement.md",
203
+ "description": "v0.5.0-beta.5: prefix droid sub-agent with trellis- to prevent accidental invocation",
204
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
205
+ },
206
+ {
207
+ "type": "rename",
208
+ "from": ".factory/droids/check.md",
209
+ "to": ".factory/droids/trellis-check.md",
210
+ "description": "v0.5.0-beta.5: prefix droid sub-agent with trellis- to prevent accidental invocation",
211
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
212
+ },
213
+ {
214
+ "type": "rename",
215
+ "from": ".factory/droids/research.md",
216
+ "to": ".factory/droids/trellis-research.md",
217
+ "description": "v0.5.0-beta.5: prefix droid sub-agent with trellis- to prevent accidental invocation",
218
+ "reason": "Generic names like 'implement'/'check'/'research' can collide with the user's own agent definitions or get picked up by the main agent's description heuristics. Prefixing with 'trellis-' makes them explicit Trellis agents."
219
+ }
220
+ ],
221
+ "notes": "This is a breaking rename for sub-agent invocation. The migration is automatic for unmodified agent files (hash-matched via .trellis/.template-hashes.json). If you customized an agent, you'll see the usual `Modified by you` confirm prompt with diff — pick `[1] Overwrite` to adopt the new name, or `[3] Skip` if you've built your own workflow on the old names (in which case you must update `workflow.md`, any skill prompts, and hook constants yourself).\n\n`update.skip` is BYPASSED for this release (breaking + recommendMigrate both true, invoked with `--migrate`) to prevent a half-migrated state where workflow.md points to `trellis-implement` but your `.claude/agents/` still has `implement.md`.\n\nAction required: run `trellis update --migrate`."
222
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.5.0-beta.6",
3
+ "description": "Fix codex trellis-check agent: change from read-only to workspace-write, rewrite developer_instructions to match other platforms' self-fix behavior per workflow.md contract.",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Bug Fixes:**\n- fix(codex): `trellis-check.toml` was shipped with `sandbox_mode = \"read-only\"` and 'Read-only Trellis reviewer' framing, which directly contradicted `workflow.md` (the check agent is supposed to auto-fix issues it finds — all other platforms' check agents have Write+Edit tools). Codex users running `trellis-check` could report findings but not fix them, forcing a manual roundtrip through the main agent. Changed to `sandbox_mode = \"workspace-write\"` and rewrote developer_instructions to instruct self-fix + re-run lint/type-check until green, matching the behavior contract of every other platform.",
7
+ "migrations": [],
8
+ "notes": "Pure template-content fix for codex users. No path migrations — `trellis update` will flag `.codex/agents/trellis-check.toml` as a template update and either auto-update (if unmodified) or prompt for confirm (if you customized it)."
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.5.0-beta.7",
3
+ "description": "Fix opencode plugin loader incompatibility with OpenCode 1.2.x. Plugins shipped `export default { id, server: async (...) => hooks }` object shape; OpenCode iterates `Object.entries(mod)` and calls each export as a function (`packages/opencode/src/plugin/index.ts:90 — for ([_, fn] of Object.entries(mod)) await fn(input)`), which crashes with `TypeError: fn is not a function`. Fixed by changing all 3 plugins to the current factory-function shape: `export default async (input) => hooks`.",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Bug Fixes:**\n- fix(opencode): plugins now use the factory-function export shape (`export default async ({ directory, client }) => hooks`) that OpenCode 1.2.x requires. The previous `{ id, server }` object shape crashed OpenCode on startup with `TypeError: fn3 is not a function. (In 'fn3(input)', 'fn3' is an instance of Object)` at `src/plugin/index.ts:90:28`, because OpenCode 1.2.x iterates every module export with `Object.entries(mod)` and calls each one as a function (`for ([_, fn] of Object.entries(mod)) await fn(input)`). The `server:` field was never unwrapped by the runtime. Affects all 3 plugins: `inject-subagent-context.js`, `inject-workflow-state.js`, `session-start.js`.\n Users on any trellis version that configured opencode — including 0.4.x stable — were affected as soon as they updated opencode to 1.2.x. Upgrade to this version to restore opencode startup.",
7
+ "migrations": [],
8
+ "notes": "Pure template-content fix for opencode users. No path migrations. `trellis update` auto-updates the 3 plugin files (unmodified copies) or prompts for confirm with diff (if you customized them)."
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.5.0-beta.8",
3
+ "description": "Two Windows/opencode-user bug fixes: (1) add collectTemplates for opencode so `trellis update` actually delivers opencode plugin/agent/lib changes (was the only platform with no update tracking); (2) pin CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1 in .claude/settings.json so Bash tool cwd changes don't leak into hook invocations (fixes Windows ENOENT on hook paths after cd).",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Bug Fixes:**\n- fix(update): opencode templates now participate in `trellis update` hash tracking. Before this, `packages/cli/src/configurators/index.ts:184` had `opencode: { configure: configureOpenCode }` with no `collectTemplates` — every other configured platform (claude, cursor, codex, kiro, gemini, qoder, codebuddy, copilot, droid) had one. Result: when beta.7 fixed the opencode plugin factory-function shape, upgraders running `trellis update` would see every other platform update but `.opencode/plugins/*.js` remain untouched — still crashing with `TypeError: fn3 is not a function`. Any future opencode-side change had the same fate. Fixed by adding `collectOpenCodeTemplates()` that walks the opencode template directory and enumerates agents, plugins, lib, package.json plus common commands/skills. `configureOpenCode` was refactored to use the same enumeration, guaranteeing init and update produce byte-identical file sets.\n- fix(claude): `.claude/settings.json` now pins `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1` in its `env` block. Without this, a user who runs `cd frontend/` via Bash tool leaves cwd stuck in `frontend/`, and the next UserPromptSubmit hook (which resolves `python .claude/hooks/inject-workflow-state.py` relative to cwd) crashes on Windows with `[Errno 2] No such file or directory` because `.claude/` is at the real project root one level up. The env-var approach is read by Claude Code internally — works identically on Windows / macOS / Linux, doesn't depend on shell variable expansion (the alternative `$CLAUDE_PROJECT_DIR` approach is broken on Windows cmd/PowerShell per CC issue #6023).",
7
+ "migrations": [],
8
+ "notes": "If you're on any beta < 0.5.0-beta.7 with opencode configured, upgrading auto-updates the 3 plugin files + agents + lib + package.json to current templates (hash-matched). If you customized `.claude/settings.json`, you'll get the standard 'Modified by you' confirm prompt — pick `[1] Overwrite` to adopt the new env block, or `[3] Skip` and manually add `\"env\": { \"CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR\": \"1\" }` to your settings to get the Windows hook-path fix."
9
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "version": "0.5.0-beta.9",
3
+ "description": "Five coordinated improvements accumulated since beta.8: (1) task.json schema unified across all writers + phase.py/create_bootstrap.py orphan cleanup, (2) workflow tightening — task-creation triggers + research sub-agent delegation, (3) Qoder session-boundary commands split out of the skill matcher into native /trellis-{continue,finish-work}, (4) polyrepo layout detection via sibling .git scan, (5) joiner onboarding task auto-generated for new developers on existing Trellis projects + both bootstrap / joiner PRDs rewritten as AI-facing instructions.",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Internal cleanup (no user-facing behavior change):**\n- chore(schema): `task.json` shape unified across all three writers. `packages/cli/src/utils/task-json.ts` introduces a shared `TaskJson` type + `emptyTaskJson(overrides)` factory mirroring the 24-field canonical shape produced by `.trellis/scripts/common/task_store.py cmd_create`. `init.ts getBootstrapTaskJson` and `update.ts` migration-task block now route through the factory. Follows the `quality-guidelines.md` spec lesson 'Schema Deprecation: Audit ALL Writers, Not Just the Creator' captured in 0.5.0-beta.0 — `cmd_create` was cleaned up at the time, but the two TS writers were missed.\n- chore(schema): migration tasks no longer write legacy `current_phase: 0` / `next_action: [...]` fields. These reference the removed Multi-Agent Pipeline and no active reader consumes them in 0.5.\n- chore(bootstrap): bootstrap task's project-type checklist moves from structured `subtasks: [{name, status}]` in task.json to markdown `- [ ]` items in prd.md. Task.json `subtasks` is now canonical `string[]` (child task dir names) across all tasks.\n- chore(cleanup): `.trellis/scripts/common/phase.py` removed. Orphan code (no importers in 0.5); was kept around from the Multi-Agent Pipeline era and not captured by 0.5.0-beta.0's 138-entry safe-file-delete (which only targeted `multi_agent/*`). Hash-verified delete — pristine copies auto-removed, locally modified copies preserved with a warning.\n- chore(cleanup): `.trellis/scripts/create_bootstrap.py` removed. Legacy 4th task.json writer with its own 13-field divergent shape; replaced by `init.ts getBootstrapTaskJson` in 0.4 but the Python file was never deleted. Never invoked by any command. Same hash-verified delete mechanism; three historical hashes included to cover 0.3+ users.\n- chore(cleanup): `TaskData` TypedDict (`common/types.py`) no longer declares `current_phase: int` / `next_action: list[dict]` — dead schema fields.\n- docs: spec directory-trees in `script-conventions.md` (template + local) drop `phase.py` / `create_bootstrap.py` / the full `multi_agent/` block (which was actually removed in 0.5.0-beta.0 but kept appearing in shipped spec docs).\n- chore(pkg): remove 5 orphan `.md` files from `packages/cli/src/templates/markdown/spec/` (`spec/backend/{index,directory-structure,script-conventions}.md` + `spec/guides/{code-reuse,cross-platform}-thinking-guide.md`). These were accidentally added in early 0.1.x releases alongside the proper `.md.txt` stub templates but never imported by `markdown/index.ts` — they shipped in dist/ as dead weight (~35 KB) but never landed on user disks, so no migration entry is needed. Fixes a ~2-year-old duplication bug.\n\n**Workflow tightening (all platforms):**\n- feat(workflow): `workflow.md [workflow-state:no_task]` block + `shared-hooks/inject-workflow-state.py` + OpenCode plugin now enumerate explicit trigger words (`重构` / `抽成` / `独立` / `分发` / `拆出来` / `搞一个` / `做成` / `接入` / `集成` / `refactor` / `rewrite` / `extract` / `productize` / `publish` / `build X` / `design Y`) that REQUIRE task creation, plus a strict three-condition exemption rule (zero file writes + one-reply answer + no external research). Default stance: when in doubt, create a task.\n- feat(workflow): `common/skills/brainstorm.md` gains a 'Delegate to trellis-research sub-agent' section with explicit anti-pattern guidance — 10+ inline WebFetch/WebSearch calls in the main conversation burn tokens and leak raw tool output into context. Correct pattern: spawn trellis-research via Task tool; the sub-agent persists findings to `{TASK_DIR}/research/<topic>.md` and returns only path + one-line summary.\n- feat(workflow): `workflow.md [workflow-state:in_progress]` flow names the actual agent types (`trellis-implement → trellis-check → trellis-update-spec → finish`) instead of generic verbs.\n\n**Qoder UX fix:**\n- feat(qoder): deliver session-boundary commands as native Qoder Custom Commands (`.qoder/commands/trellis-{finish-work,continue}.md`) with YAML frontmatter (`name` + `description`), per docs.qoder.com/en/cli/user-guide/command. Previously these were buried in the skill matcher alongside the 5 auto-trigger workflows, so users had no deterministic way to invoke them — they had to hope their chat wording matched the skill's description. Now they type `/trellis-finish-work` or `/trellis-continue` explicitly.\n- chore(qoder): the 5 auto-trigger workflows (brainstorm, before-dev, check, update-spec, break-loop) stay as `.qoder/skills/trellis-{name}/SKILL.md`. `start` is filtered out because Qoder is agent-capable and its SessionStart hook already injects the workflow overview (same rule that applies to every other agent-capable platform).\n- chore(shared): new `wrapWithCommandFrontmatter` + `COMMAND_DESCRIPTIONS` registry in `configurators/shared.ts` — short, human-facing, imperative one-liners for the `/` palette, distinct from the long auto-trigger prose in `SKILL_DESCRIPTIONS` (written for the skill matcher, not a command list).\n- chore(migration): upgraders have their old `.qoder/skills/trellis-{finish-work,continue}/SKILL.md` hash-verified and auto-deleted on `trellis update` (pristine copies removed silently, locally-modified copies land on the standard confirm prompt).\n\n**New features:**\n- feat(cli): polyrepo detection via sibling `.git` scan. `detectMonorepo()` now has a 7th parser that scans up to 2 levels deep for sibling `.git` directories or worktree gitlinks, firing only when all 6 workspace parsers miss and no submodules are declared (workspace configs always win). `DetectedPackage` gains `isGitRepo` (mutually exclusive with `isSubmodule`); `writeMonorepoConfig` emits `git: true` to bridge to the runtime schema already consumed by `get_git_packages()` in `config.py`. `--monorepo` failure now prints a 7-marker checklist and a manual `config.yaml` example. Init confirm prompt labels polyrepo packages with `(git repo)`.\n- feat(cli): joiner onboarding task auto-generated when a new developer runs `trellis init` on an existing Trellis project (fresh clone / new machine). Three-branch dispatch on `.trellis/` × `.trellis/.developer`: no `.trellis/` = creator bootstrap (unchanged), `.trellis/` + no `.developer` = **joiner** (`00-join-<slug>`), both = no-op. The `.developer` file is gitignored, so it's a clean per-checkout signal; `workspace/<name>/` cannot be used because it's committed. Wired in both the main dispatch AND `handleReinit`'s `doAddDeveloper` branch (the latter is the default path for `trellis init --user <name>` on existing checkouts). Failures surface as `console.warn` instead of being silently swallowed.\n- feat(cli): `trellis init` bootstrap + joiner PRDs rewritten as AI-facing instructions. Previously framed as user-facing docs (`Welcome, do X, ask AI Y`); now framed as instructions TO the AI agent that runs the onboarding task (`You (the AI) are running this task; here's how to onboard them`). Includes runtime-mechanics explainer (SessionStart hook, workflow-state tag, implement/check sub-agents, jsonl manifests) and a suggested opening line. Same content reach, much better first-session UX.",
7
+ "migrations": [
8
+ {
9
+ "type": "safe-file-delete",
10
+ "from": ".trellis/scripts/common/phase.py",
11
+ "description": "Remove orphan phase.py — no importers; legacy from Multi-Agent Pipeline",
12
+ "allowed_hashes": [
13
+ "412b7096ef0e48b8a95a79060121a586e0d9d44f1b350d6ed818c6f84330bb01"
14
+ ]
15
+ },
16
+ {
17
+ "type": "safe-file-delete",
18
+ "from": ".trellis/scripts/create_bootstrap.py",
19
+ "description": "Remove dead create_bootstrap.py — replaced by TS init.ts getBootstrapTaskJson in 0.4; never invoked by any command",
20
+ "allowed_hashes": [
21
+ "33b40df671ba7828fd8d3ba8c019823a8b03e938797b1cae218c55d6c7ebe57a",
22
+ "ce1503c052dadf2470ddb1cade42f331c0fd70d34e895d8d07044ba27548e17e",
23
+ "aa5dd1f39a77b2f4bb827fd14ce7a83fb51870e77f556fe508afce3f8eac0b4e"
24
+ ]
25
+ },
26
+ {
27
+ "type": "safe-file-delete",
28
+ "from": ".qoder/skills/trellis-finish-work/SKILL.md",
29
+ "description": "Qoder session-boundary skill → moved to .qoder/commands/trellis-finish-work.md",
30
+ "reason": "In 0.5.0-beta.9, Qoder session-boundary commands move out of the skill matcher into native Custom Commands so users can invoke them deterministically as `/trellis-finish-work`.",
31
+ "allowed_hashes": [
32
+ "c0f3ffa74e1e9990f93e5d44d03bd088c8698da1db4750b74d3eee4809a84aea",
33
+ "2027d8ea610e0a929a7ce147b29045406db8a8c9c2a767f98d779e5d53162f0c"
34
+ ]
35
+ },
36
+ {
37
+ "type": "safe-file-delete",
38
+ "from": ".qoder/skills/trellis-continue/SKILL.md",
39
+ "description": "Qoder session-boundary skill → moved to .qoder/commands/trellis-continue.md",
40
+ "reason": "In 0.5.0-beta.9, Qoder session-boundary commands move out of the skill matcher into native Custom Commands so users can invoke them deterministically as `/trellis-continue`.",
41
+ "allowed_hashes": [
42
+ "914545dab290e508a4c6b84d0a9f8debe68bcf9117cebe0fa85be0ef709d8fc1",
43
+ "3d2c83ad710b3b667851e28a473fb259a1330475e6b7417c769432f4a55a76f9"
44
+ ]
45
+ }
46
+ ],
47
+ "notes": "Code cleanup + additive features; no user task.json mutations. Python readers (`task.py`, `get_context.py`) treat missing canonical fields as null, so legacy tasks keep working. Newly-created bootstrap / migration tasks from this version onward produce the canonical shape. Qoder users who had the two session-boundary skills installed will see them auto-removed (pristine) or prompted for confirm (modified); the new `.qoder/commands/*.md` are written by the standard configure step on `trellis update`."
48
+ }
@@ -1,9 +1,8 @@
1
1
  ---
2
- name: check
2
+ name: trellis-check
3
3
  description: |
4
4
  Code quality check expert. Reviews code changes against specs and self-fixes issues.
5
5
  tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa
6
- model: opus
7
6
  ---
8
7
  # Check Agent
9
8
 
@@ -65,32 +64,6 @@ If failed, fix issues and re-run.
65
64
 
66
65
  ---
67
66
 
68
- ## Completion Markers (Ralph Loop)
69
-
70
- **CRITICAL**: You are in a loop controlled by the Ralph Loop system.
71
- The loop will NOT stop until you output ALL required completion markers.
72
-
73
- Completion markers are generated from `check.jsonl` in the task directory.
74
- Each entry's `reason` field becomes a marker: `{REASON}_FINISH`
75
-
76
- For example, if check.jsonl contains:
77
- ```json
78
- {"file": "...", "reason": "TypeCheck"}
79
- {"file": "...", "reason": "Lint"}
80
- {"file": "...", "reason": "CodeReview"}
81
- ```
82
-
83
- You MUST output these markers when each check passes:
84
- - `TYPECHECK_FINISH` - After typecheck passes
85
- - `LINT_FINISH` - After lint passes
86
- - `CODEREVIEW_FINISH` - After code review passes
87
-
88
- If check.jsonl doesn't exist or has no reasons, output: `ALL_CHECKS_FINISH`
89
-
90
- **The loop will block you from stopping until all markers are present in your output.**
91
-
92
- ---
93
-
94
67
  ## Report Format
95
68
 
96
69
  ```markdown
@@ -112,11 +85,10 @@ If check.jsonl doesn't exist or has no reasons, output: `ALL_CHECKS_FINISH`
112
85
 
113
86
  ### Verification Results
114
87
 
115
- - TypeCheck: Passed TYPECHECK_FINISH
116
- - Lint: Passed LINT_FINISH
88
+ - TypeCheck: Passed
89
+ - Lint: Passed
117
90
 
118
91
  ### Summary
119
92
 
120
93
  Checked X files, found Y issues, all fixed.
121
- ALL_CHECKS_FINISH
122
94
  ```
@@ -1,9 +1,8 @@
1
1
  ---
2
- name: implement
2
+ name: trellis-implement
3
3
  description: |
4
4
  Code implementation expert. Understands specs and requirements, then implements features. No git commit allowed.
5
5
  tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa
6
- model: opus
7
6
  ---
8
7
  # Implement Agent
9
8
 
@@ -0,0 +1,137 @@
1
+ ---
2
+ name: trellis-research
3
+ description: |
4
+ Code and tech search expert. Finds files, patterns, and tech solutions, and PERSISTS every finding to the current task's research/ directory. No code modifications outside that directory.
5
+ tools: Read, Write, Glob, Grep, Bash, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa, Skill, mcp__chrome-devtools__*
6
+ ---
7
+ # Research Agent
8
+
9
+ You are the Research Agent in the Trellis workflow.
10
+
11
+ ## Core Principle
12
+
13
+ **You do one thing: find, explain, and PERSIST information.**
14
+
15
+ Conversations get compacted; files don't. Every research output MUST end up as a file under `{TASK_DIR}/research/`. Returning findings only through the chat reply is a failure — the caller cannot read them next session.
16
+
17
+ ---
18
+
19
+ ## Core Responsibilities
20
+
21
+ 1. **Internal Search** — locate files/components, understand code logic, discover patterns (Glob, Grep, Read)
22
+ 2. **External Search** — library docs, API references, best practices (web search)
23
+ 3. **Persist** — write each research topic to `{TASK_DIR}/research/<topic>.md`
24
+ 4. **Report** — return file paths + one-line summaries to the main agent (not full content)
25
+
26
+ ---
27
+
28
+ ## Workflow
29
+
30
+ ### Step 1: Resolve Current Task
31
+
32
+ Read `.trellis/.current-task` → task directory (e.g. `.trellis/tasks/04-17-foo/`). If empty or missing, ask the user where to write output; do NOT guess.
33
+
34
+ Ensure `{TASK_DIR}/research/` exists:
35
+
36
+ ```bash
37
+ mkdir -p <TASK_DIR>/research
38
+ ```
39
+
40
+ ### Step 2: Understand Search Request
41
+
42
+ Classify: internal / external / mixed. Determine scope (global / specific directory) and expected shape (file list / pattern notes / tech comparison).
43
+
44
+ ### Step 3: Execute Search
45
+
46
+ Run independent searches in parallel (Glob + Grep + web) for efficiency.
47
+
48
+ ### Step 4: Persist Each Topic
49
+
50
+ For each distinct research topic, Write a markdown file at `{TASK_DIR}/research/<topic-slug>.md`. Use the File Format below.
51
+
52
+ ### Step 5: Report to Main Agent
53
+
54
+ Reply with ONLY:
55
+
56
+ - List of files written (paths relative to repo root)
57
+ - One-line summary per file
58
+ - Any critical caveats that the main agent needs to know right now
59
+
60
+ Do NOT paste full research content into the reply. The files are the contract.
61
+
62
+ ---
63
+
64
+ ## Scope Limits (Strict)
65
+
66
+ ### Write ALLOWED
67
+
68
+ - `{TASK_DIR}/research/*.md` — your own output
69
+ - Creating `{TASK_DIR}/research/` if it doesn't exist (via `mkdir -p`)
70
+
71
+ ### Write FORBIDDEN
72
+
73
+ - Code files (`src/`, `lib/`, …)
74
+ - Spec files (`.trellis/spec/`) — main agent should use `update-spec` skill instead
75
+ - `.trellis/scripts/`, `.trellis/workflow.md`, platform config (`.claude/`, `.cursor/`, etc.)
76
+ - Other task directories
77
+ - Any git operation (commit / push / branch / merge)
78
+
79
+ If the user asks you to edit code, decline and suggest spawning `implement` instead.
80
+
81
+ ---
82
+
83
+ ## File Format
84
+
85
+ Each `{TASK_DIR}/research/<topic>.md` should follow:
86
+
87
+ ```markdown
88
+ # Research: <topic>
89
+
90
+ - **Query**: <original query>
91
+ - **Scope**: <internal / external / mixed>
92
+ - **Date**: <YYYY-MM-DD>
93
+
94
+ ## Findings
95
+
96
+ ### Files Found
97
+
98
+ | File Path | Description |
99
+ |---|---|
100
+ | `src/services/xxx.ts` | Main implementation |
101
+ | `src/types/xxx.ts` | Type definitions |
102
+
103
+ ### Code Patterns
104
+
105
+ <describe patterns, cite file:line>
106
+
107
+ ### External References
108
+
109
+ - [Library X docs](url) — <why relevant, version constraints>
110
+
111
+ ### Related Specs
112
+
113
+ - `.trellis/spec/xxx.md` — <description>
114
+
115
+ ## Caveats / Not Found
116
+
117
+ <anything incomplete or uncertain>
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Guidelines
123
+
124
+ ### DO
125
+
126
+ - Provide specific file paths and line numbers
127
+ - Quote actual code snippets
128
+ - Persist every topic to its own file
129
+ - Return file paths in your reply, not the full content
130
+ - Mark "not found" explicitly when searches come up empty
131
+
132
+ ### DON'T
133
+
134
+ - Don't write code or modify files outside `{TASK_DIR}/research/`
135
+ - Don't guess uncertain info
136
+ - Don't paste full research text into the reply (files are the deliverable)
137
+ - Don't propose improvements or critique implementation (that's not your role)