@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,398 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Multi-Agent Pipeline: Cleanup Worktree.
4
-
5
- Usage:
6
- python3 cleanup.py <branch-name> Remove specific worktree
7
- python3 cleanup.py --list List all worktrees
8
- python3 cleanup.py --merged Remove merged worktrees
9
- python3 cleanup.py --all Remove all worktrees (with confirmation)
10
-
11
- Options:
12
- -y, --yes Skip confirmation prompts
13
- --keep-branch Don't delete the git branch
14
-
15
- This script:
16
- 1. Archives task directory to archive/{YYYY-MM}/
17
- 2. Removes agent from registry
18
- 3. Removes git worktree
19
- 4. Optionally deletes git branch
20
- """
21
-
22
- from __future__ import annotations
23
-
24
- import argparse
25
- import json
26
- import shutil
27
- import subprocess
28
- import sys
29
- from pathlib import Path
30
-
31
- import _bootstrap # noqa: F401 — adds parent scripts/ dir to sys.path
32
-
33
- from common.git import run_git
34
- from common.log import Colors, log_info, log_success, log_warn, log_error
35
- from common.paths import FILE_TASK_JSON, get_repo_root
36
- from common.registry import (
37
- registry_get_file,
38
- registry_get_task_dir,
39
- registry_remove_by_id,
40
- registry_remove_by_worktree,
41
- registry_search_agent,
42
- )
43
- from common.task_utils import (
44
- archive_task_complete,
45
- is_safe_task_path,
46
- )
47
-
48
- # Colors, log_info, log_success, log_warn, log_error
49
- # are now imported from common.log above.
50
-
51
-
52
- def confirm(prompt: str, skip_confirm: bool) -> bool:
53
- """Ask for confirmation."""
54
- if skip_confirm:
55
- return True
56
-
57
- if not sys.stdin.isatty():
58
- log_error("Non-interactive mode detected. Use -y to skip confirmation.")
59
- return False
60
-
61
- response = input(f"{prompt} [y/N] ")
62
- return response.lower() in ("y", "yes")
63
-
64
-
65
- def _warn_submodule_prs(task_dir_abs: Path) -> None:
66
- """Print reminders for any open submodule PRs found in task.json."""
67
- task_json = task_dir_abs / FILE_TASK_JSON
68
- if not task_json.is_file():
69
- return
70
-
71
- try:
72
- task_data = json.loads(task_json.read_text(encoding="utf-8"))
73
- except (json.JSONDecodeError, OSError):
74
- return
75
-
76
- submodule_prs = task_data.get("submodule_prs")
77
- if not isinstance(submodule_prs, dict) or not submodule_prs:
78
- return
79
-
80
- for name, url in submodule_prs.items():
81
- log_warn(f"Submodule PR still open: {name} -> {url}")
82
- log_info("Remember to close/merge submodule PRs before cleanup")
83
-
84
-
85
- # =============================================================================
86
- # Commands
87
- # =============================================================================
88
-
89
-
90
- def cmd_list(repo_root: Path) -> int:
91
- """List worktrees."""
92
- print(f"{Colors.BLUE}=== Git Worktrees ==={Colors.NC}")
93
- print()
94
-
95
- subprocess.run(["git", "worktree", "list"], cwd=repo_root)
96
- print()
97
-
98
- # Show registry info
99
- registry_file = registry_get_file(repo_root)
100
- if registry_file and registry_file.is_file():
101
- print(f"{Colors.BLUE}=== Registered Agents ==={Colors.NC}")
102
- print()
103
-
104
- data = json.loads(registry_file.read_text(encoding="utf-8"))
105
- agents = data.get("agents", [])
106
-
107
- if agents:
108
- for agent in agents:
109
- print(
110
- f" {agent.get('id', '?')}: PID={agent.get('pid', '?')} [{agent.get('worktree_path', '?')}]"
111
- )
112
- else:
113
- print(" (none)")
114
- print()
115
-
116
- return 0
117
-
118
-
119
- def archive_task(worktree_path: str, repo_root: Path) -> None:
120
- """Archive task directory."""
121
- task_dir = registry_get_task_dir(worktree_path, repo_root)
122
-
123
- if not task_dir or not is_safe_task_path(task_dir, repo_root):
124
- return
125
-
126
- task_dir_abs = repo_root / task_dir
127
- if not task_dir_abs.is_dir():
128
- return
129
-
130
- result = archive_task_complete(task_dir_abs, repo_root)
131
- if "archived_to" in result:
132
- dest = Path(result["archived_to"])
133
- log_success(f"Archived task: {dest.name} -> archive/{dest.parent.name}/")
134
-
135
-
136
- def cleanup_registry_only(search: str, repo_root: Path, skip_confirm: bool) -> int:
137
- """Cleanup from registry only (no worktree)."""
138
- agent_info = registry_search_agent(search, repo_root)
139
-
140
- if not agent_info:
141
- log_error(f"No agent found in registry matching: {search}")
142
- return 1
143
-
144
- agent_id = agent_info.get("id", "?")
145
- task_dir = agent_info.get("task_dir", "?")
146
-
147
- print()
148
- print(f"{Colors.BLUE}=== Cleanup Agent (no worktree) ==={Colors.NC}")
149
- print(f" Agent ID: {agent_id}")
150
- print(f" Task Dir: {task_dir}")
151
- print()
152
-
153
- if not confirm("Archive task and remove from registry?", skip_confirm):
154
- log_info("Aborted")
155
- return 0
156
-
157
- # Check for submodule PRs and archive task directory
158
- if task_dir and is_safe_task_path(task_dir, repo_root):
159
- task_dir_abs = repo_root / task_dir
160
- if task_dir_abs.is_dir():
161
- _warn_submodule_prs(task_dir_abs)
162
- result = archive_task_complete(task_dir_abs, repo_root)
163
- if "archived_to" in result:
164
- dest = Path(result["archived_to"])
165
- log_success(
166
- f"Archived task: {dest.name} -> archive/{dest.parent.name}/"
167
- )
168
- else:
169
- log_warn("Invalid task_dir in registry, skipping archive")
170
-
171
- # Remove from registry
172
- registry_remove_by_id(agent_id, repo_root)
173
- log_success(f"Removed from registry: {agent_id}")
174
-
175
- log_success("Cleanup complete")
176
- return 0
177
-
178
-
179
- def cleanup_worktree(
180
- branch: str, repo_root: Path, skip_confirm: bool, keep_branch: bool
181
- ) -> int:
182
- """Cleanup single worktree."""
183
- # Find worktree path for branch
184
- _, worktree_list, _ = run_git(
185
- ["worktree", "list", "--porcelain"], cwd=repo_root
186
- )
187
-
188
- worktree_path = None
189
- current_worktree = None
190
-
191
- for line in worktree_list.splitlines():
192
- if line.startswith("worktree "):
193
- current_worktree = line[9:] # Remove "worktree " prefix
194
- elif line.startswith("branch refs/heads/"):
195
- current_branch = line[18:] # Remove "branch refs/heads/" prefix
196
- if current_branch == branch:
197
- worktree_path = current_worktree
198
- break
199
-
200
- if not worktree_path:
201
- # No worktree found, try to cleanup from registry only
202
- log_warn(f"No worktree found for: {branch}")
203
- log_info("Trying to cleanup from registry...")
204
- return cleanup_registry_only(branch, repo_root, skip_confirm)
205
-
206
- print()
207
- print(f"{Colors.BLUE}=== Cleanup Worktree ==={Colors.NC}")
208
- print(f" Branch: {branch}")
209
- print(f" Worktree: {worktree_path}")
210
- print()
211
-
212
- if not confirm("Remove this worktree?", skip_confirm):
213
- log_info("Aborted")
214
- return 0
215
-
216
- # 1. Archive task (and check for submodule PRs)
217
- task_dir = registry_get_task_dir(worktree_path, repo_root)
218
- if task_dir and is_safe_task_path(task_dir, repo_root):
219
- task_dir_abs_for_warn = repo_root / task_dir
220
- if task_dir_abs_for_warn.is_dir():
221
- _warn_submodule_prs(task_dir_abs_for_warn)
222
- archive_task(worktree_path, repo_root)
223
-
224
- # 2. Remove from registry
225
- registry_remove_by_worktree(worktree_path, repo_root)
226
- log_info("Removed from registry")
227
-
228
- # 3. Remove worktree
229
- log_info("Removing worktree...")
230
- ret, _, _ = run_git(
231
- ["worktree", "remove", worktree_path, "--force"], cwd=repo_root
232
- )
233
- if ret != 0:
234
- # Try removing directory manually
235
- try:
236
- shutil.rmtree(worktree_path)
237
- except Exception as e:
238
- log_error(f"Failed to remove worktree: {e}")
239
-
240
- log_success("Worktree removed")
241
-
242
- # 4. Delete branch (optional)
243
- if not keep_branch:
244
- log_info("Deleting branch...")
245
- ret, _, _ = run_git(["branch", "-D", branch], cwd=repo_root)
246
- if ret != 0:
247
- log_warn("Could not delete branch (may be checked out elsewhere)")
248
-
249
- log_success(f"Cleanup complete for: {branch}")
250
- return 0
251
-
252
-
253
- def cmd_merged(repo_root: Path, skip_confirm: bool, keep_branch: bool) -> int:
254
- """Cleanup merged worktrees."""
255
- # Get main branch
256
- _, head_out, _ = run_git(
257
- ["symbolic-ref", "refs/remotes/origin/HEAD"], cwd=repo_root
258
- )
259
- main_branch = head_out.strip().replace("refs/remotes/origin/", "") or "main"
260
-
261
- print(f"{Colors.BLUE}=== Finding Merged Worktrees ==={Colors.NC}")
262
- print()
263
-
264
- # Get merged branches
265
- _, merged_out, _ = run_git(
266
- ["branch", "--merged", main_branch], cwd=repo_root
267
- )
268
- merged_branches = []
269
- for line in merged_out.splitlines():
270
- branch = line.strip().lstrip("* ")
271
- if branch and branch != main_branch:
272
- merged_branches.append(branch)
273
-
274
- if not merged_branches:
275
- log_info("No merged branches found")
276
- return 0
277
-
278
- # Get worktree list
279
- _, worktree_list, _ = run_git(["worktree", "list"], cwd=repo_root)
280
-
281
- worktree_branches = []
282
- for branch in merged_branches:
283
- if f"[{branch}]" in worktree_list:
284
- worktree_branches.append(branch)
285
- print(f" - {branch}")
286
-
287
- if not worktree_branches:
288
- log_info("No merged worktrees found")
289
- return 0
290
-
291
- print()
292
- if not confirm("Remove these merged worktrees?", skip_confirm):
293
- log_info("Aborted")
294
- return 0
295
-
296
- for branch in worktree_branches:
297
- cleanup_worktree(branch, repo_root, True, keep_branch)
298
-
299
- return 0
300
-
301
-
302
- def cmd_all(repo_root: Path, skip_confirm: bool, keep_branch: bool) -> int:
303
- """Cleanup all worktrees."""
304
- print(f"{Colors.BLUE}=== All Worktrees ==={Colors.NC}")
305
- print()
306
-
307
- # Get worktree list
308
- _, worktree_list, _ = run_git(
309
- ["worktree", "list", "--porcelain"], cwd=repo_root
310
- )
311
-
312
- worktrees = []
313
- main_worktree = str(repo_root.resolve())
314
-
315
- for line in worktree_list.splitlines():
316
- if line.startswith("worktree "):
317
- wt = line[9:]
318
- if wt != main_worktree:
319
- worktrees.append(wt)
320
-
321
- if not worktrees:
322
- log_info("No worktrees to remove")
323
- return 0
324
-
325
- for wt in worktrees:
326
- print(f" - {wt}")
327
-
328
- print()
329
- print(f"{Colors.RED}WARNING: This will remove ALL worktrees!{Colors.NC}")
330
-
331
- if not confirm("Are you sure?", skip_confirm):
332
- log_info("Aborted")
333
- return 0
334
-
335
- # Get branch for each worktree
336
- for wt in worktrees:
337
- # Find branch name from worktree list
338
- _, wt_list, _ = run_git(["worktree", "list"], cwd=repo_root)
339
- for line in wt_list.splitlines():
340
- if wt in line:
341
- # Extract branch from [branch] format
342
- import re
343
-
344
- match = re.search(r"\[([^\]]+)\]", line)
345
- if match:
346
- branch = match.group(1)
347
- cleanup_worktree(branch, repo_root, True, keep_branch)
348
- break
349
-
350
- return 0
351
-
352
-
353
- # =============================================================================
354
- # Main
355
- # =============================================================================
356
-
357
-
358
- def main() -> int:
359
- """Main entry point."""
360
- parser = argparse.ArgumentParser(
361
- description="Multi-Agent Pipeline: Cleanup Worktree"
362
- )
363
- parser.add_argument("branch", nargs="?", help="Branch name to cleanup")
364
- parser.add_argument("-y", "--yes", action="store_true", help="Skip confirmation")
365
- parser.add_argument(
366
- "--keep-branch", action="store_true", help="Don't delete git branch"
367
- )
368
- parser.add_argument("--list", action="store_true", help="List all worktrees")
369
- parser.add_argument("--merged", action="store_true", help="Remove merged worktrees")
370
- parser.add_argument("--all", action="store_true", help="Remove all worktrees")
371
-
372
- args = parser.parse_args()
373
- repo_root = get_repo_root()
374
-
375
- if args.list:
376
- return cmd_list(repo_root)
377
- elif args.merged:
378
- return cmd_merged(repo_root, args.yes, args.keep_branch)
379
- elif args.all:
380
- return cmd_all(repo_root, args.yes, args.keep_branch)
381
- elif args.branch:
382
- return cleanup_worktree(args.branch, repo_root, args.yes, args.keep_branch)
383
- else:
384
- print("""Usage:
385
- python3 cleanup.py <branch-name> Remove specific worktree
386
- python3 cleanup.py --list List all worktrees
387
- python3 cleanup.py --merged Remove merged worktrees
388
- python3 cleanup.py --all Remove all worktrees
389
-
390
- Options:
391
- -y, --yes Skip confirmation
392
- --keep-branch Don't delete git branch
393
- """)
394
- return 1
395
-
396
-
397
- if __name__ == "__main__":
398
- sys.exit(main())