@mindfoldhq/trellis 0.4.0 → 0.5.0-beta.2

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 (394) 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 +0 -1
  4. package/dist/commands/init.d.ts.map +1 -1
  5. package/dist/commands/init.js +2 -4
  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 +100 -24
  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 +142 -98
  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 +3 -28
  56. package/dist/configurators/opencode.d.ts.map +1 -1
  57. package/dist/configurators/opencode.js +23 -48
  58. package/dist/configurators/opencode.js.map +1 -1
  59. package/dist/configurators/qoder.d.ts +6 -4
  60. package/dist/configurators/qoder.d.ts.map +1 -1
  61. package/dist/configurators/qoder.js +20 -47
  62. package/dist/configurators/qoder.js.map +1 -1
  63. package/dist/configurators/shared.d.ts +66 -3
  64. package/dist/configurators/shared.d.ts.map +1 -1
  65. package/dist/configurators/shared.js +251 -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 +1644 -0
  77. package/dist/templates/claude/agents/check.md +2 -29
  78. package/dist/templates/claude/agents/research.md +70 -52
  79. package/dist/templates/claude/index.d.ts +5 -37
  80. package/dist/templates/claude/index.d.ts.map +1 -1
  81. package/dist/templates/claude/index.js +3 -42
  82. package/dist/templates/claude/index.js.map +1 -1
  83. package/dist/templates/claude/settings.json +3 -4
  84. package/dist/templates/{iflow → codebuddy}/agents/check.md +3 -30
  85. package/dist/templates/{iflow → codebuddy}/agents/implement.md +1 -1
  86. package/dist/templates/codebuddy/agents/research.md +138 -0
  87. package/dist/templates/codebuddy/index.d.ts +6 -16
  88. package/dist/templates/codebuddy/index.d.ts.map +1 -1
  89. package/dist/templates/codebuddy/index.js +6 -36
  90. package/dist/templates/codebuddy/index.js.map +1 -1
  91. package/dist/templates/codebuddy/settings.json +59 -0
  92. package/dist/templates/codex/agents/research.toml +50 -16
  93. package/dist/templates/codex/config.toml +10 -0
  94. package/dist/templates/codex/hooks/session-start.py +65 -29
  95. package/dist/templates/codex/hooks.json +11 -0
  96. package/dist/templates/codex/index.d.ts +0 -1
  97. package/dist/templates/codex/index.d.ts.map +1 -1
  98. package/dist/templates/codex/index.js +1 -8
  99. package/dist/templates/codex/index.js.map +1 -1
  100. package/dist/templates/common/commands/continue.md +51 -0
  101. package/dist/templates/common/commands/finish-work.md +32 -0
  102. package/dist/templates/common/commands/start.md +56 -0
  103. package/dist/templates/common/index.d.ts +28 -0
  104. package/dist/templates/common/index.d.ts.map +1 -0
  105. package/dist/templates/common/index.js +55 -0
  106. package/dist/templates/common/index.js.map +1 -0
  107. package/dist/templates/{codebuddy/commands/trellis → common/skills}/brainstorm.md +4 -4
  108. package/dist/templates/{opencode/commands/trellis → common/skills}/break-loop.md +4 -4
  109. package/dist/templates/common/skills/check.md +87 -0
  110. package/dist/templates/{codebuddy/commands/trellis → common/skills}/update-spec.md +18 -21
  111. package/dist/templates/copilot/hooks/session-start.py +65 -29
  112. package/dist/templates/copilot/hooks.json +8 -0
  113. package/dist/templates/cursor/agents/check.md +95 -0
  114. package/dist/templates/cursor/agents/implement.md +95 -0
  115. package/dist/templates/cursor/agents/research.md +138 -0
  116. package/dist/templates/cursor/hooks.json +24 -0
  117. package/dist/templates/cursor/index.d.ts +6 -17
  118. package/dist/templates/cursor/index.d.ts.map +1 -1
  119. package/dist/templates/cursor/index.js +6 -37
  120. package/dist/templates/cursor/index.js.map +1 -1
  121. package/dist/templates/droid/droids/check.md +95 -0
  122. package/dist/templates/droid/droids/implement.md +95 -0
  123. package/dist/templates/droid/droids/research.md +138 -0
  124. package/dist/templates/droid/index.d.ts +7 -19
  125. package/dist/templates/droid/index.d.ts.map +1 -1
  126. package/dist/templates/droid/index.js +7 -39
  127. package/dist/templates/droid/index.js.map +1 -1
  128. package/dist/templates/droid/settings.json +59 -0
  129. package/dist/templates/extract.d.ts +7 -193
  130. package/dist/templates/extract.d.ts.map +1 -1
  131. package/dist/templates/extract.js +7 -310
  132. package/dist/templates/extract.js.map +1 -1
  133. package/dist/templates/gemini/agents/check.md +95 -0
  134. package/dist/templates/gemini/agents/implement.md +95 -0
  135. package/dist/templates/gemini/agents/research.md +138 -0
  136. package/dist/templates/gemini/index.d.ts +6 -14
  137. package/dist/templates/gemini/index.d.ts.map +1 -1
  138. package/dist/templates/gemini/index.js +6 -37
  139. package/dist/templates/gemini/index.js.map +1 -1
  140. package/dist/templates/gemini/settings.json +28 -0
  141. package/dist/templates/kiro/agents/check.json +13 -0
  142. package/dist/templates/kiro/agents/implement.json +13 -0
  143. package/dist/templates/kiro/agents/research.json +21 -0
  144. package/dist/templates/kiro/index.d.ts +11 -11
  145. package/dist/templates/kiro/index.d.ts.map +1 -1
  146. package/dist/templates/kiro/index.js +11 -33
  147. package/dist/templates/kiro/index.js.map +1 -1
  148. package/dist/templates/opencode/agents/check.md +3 -30
  149. package/dist/templates/opencode/agents/implement.md +1 -1
  150. package/dist/templates/opencode/agents/research.md +1 -2
  151. package/dist/templates/opencode/plugins/inject-subagent-context.js +9 -183
  152. package/dist/templates/opencode/plugins/inject-workflow-state.js +160 -0
  153. package/dist/templates/opencode/plugins/session-start.js +71 -32
  154. package/dist/templates/qoder/agents/check.md +95 -0
  155. package/dist/templates/qoder/agents/implement.md +95 -0
  156. package/dist/templates/qoder/agents/research.md +138 -0
  157. package/dist/templates/qoder/index.d.ts +7 -10
  158. package/dist/templates/qoder/index.d.ts.map +1 -1
  159. package/dist/templates/qoder/index.js +7 -32
  160. package/dist/templates/qoder/index.js.map +1 -1
  161. package/dist/templates/qoder/settings.json +47 -0
  162. package/dist/templates/shared-hooks/index.d.ts +19 -0
  163. package/dist/templates/shared-hooks/index.d.ts.map +1 -0
  164. package/dist/templates/shared-hooks/index.js +30 -0
  165. package/dist/templates/shared-hooks/index.js.map +1 -0
  166. package/dist/templates/{iflow/hooks → shared-hooks}/inject-subagent-context.py +74 -263
  167. package/dist/templates/shared-hooks/inject-workflow-state.py +231 -0
  168. package/dist/templates/{claude/hooks → shared-hooks}/session-start.py +162 -55
  169. package/dist/templates/template-utils.d.ts +26 -0
  170. package/dist/templates/template-utils.d.ts.map +1 -0
  171. package/dist/templates/template-utils.js +60 -0
  172. package/dist/templates/template-utils.js.map +1 -0
  173. package/dist/templates/trellis/index.d.ts +1 -14
  174. package/dist/templates/trellis/index.d.ts.map +1 -1
  175. package/dist/templates/trellis/index.js +2 -27
  176. package/dist/templates/trellis/index.js.map +1 -1
  177. package/dist/templates/trellis/scripts/common/cli_adapter.py +2 -2
  178. package/dist/templates/trellis/scripts/common/config.py +126 -1
  179. package/dist/templates/trellis/scripts/common/git_context.py +25 -2
  180. package/dist/templates/trellis/scripts/common/task_context.py +3 -23
  181. package/dist/templates/trellis/scripts/common/task_store.py +0 -12
  182. package/dist/templates/trellis/scripts/common/workflow_phase.py +176 -0
  183. package/dist/templates/trellis/scripts/task.py +6 -35
  184. package/dist/templates/trellis/workflow.md +274 -297
  185. package/dist/types/ai-tools.d.ts +21 -3
  186. package/dist/types/ai-tools.d.ts.map +1 -1
  187. package/dist/types/ai-tools.js +106 -15
  188. package/dist/types/ai-tools.js.map +1 -1
  189. package/dist/types/migration.d.ts +8 -1
  190. package/dist/types/migration.d.ts.map +1 -1
  191. package/package.json +3 -2
  192. package/dist/configurators/iflow.d.ts +0 -33
  193. package/dist/configurators/iflow.d.ts.map +0 -1
  194. package/dist/configurators/iflow.js +0 -99
  195. package/dist/configurators/iflow.js.map +0 -1
  196. package/dist/templates/antigravity/index.d.ts +0 -12
  197. package/dist/templates/antigravity/index.d.ts.map +0 -1
  198. package/dist/templates/antigravity/index.js +0 -29
  199. package/dist/templates/antigravity/index.js.map +0 -1
  200. package/dist/templates/claude/agents/debug.md +0 -106
  201. package/dist/templates/claude/agents/dispatch.md +0 -213
  202. package/dist/templates/claude/agents/plan.md +0 -396
  203. package/dist/templates/claude/commands/trellis/brainstorm.md +0 -487
  204. package/dist/templates/claude/commands/trellis/break-loop.md +0 -125
  205. package/dist/templates/claude/commands/trellis/check-cross-layer.md +0 -153
  206. package/dist/templates/claude/commands/trellis/check.md +0 -25
  207. package/dist/templates/claude/commands/trellis/create-command.md +0 -154
  208. package/dist/templates/claude/commands/trellis/finish-work.md +0 -153
  209. package/dist/templates/claude/commands/trellis/integrate-skill.md +0 -219
  210. package/dist/templates/claude/commands/trellis/onboard.md +0 -358
  211. package/dist/templates/claude/commands/trellis/parallel.md +0 -192
  212. package/dist/templates/claude/commands/trellis/record-session.md +0 -62
  213. package/dist/templates/claude/commands/trellis/start.md +0 -393
  214. package/dist/templates/claude/commands/trellis/update-spec.md +0 -354
  215. package/dist/templates/claude/hooks/inject-subagent-context.py +0 -803
  216. package/dist/templates/claude/hooks/ralph-loop.py +0 -396
  217. package/dist/templates/codebuddy/commands/trellis/before-dev.md +0 -29
  218. package/dist/templates/codebuddy/commands/trellis/break-loop.md +0 -107
  219. package/dist/templates/codebuddy/commands/trellis/check-cross-layer.md +0 -153
  220. package/dist/templates/codebuddy/commands/trellis/check.md +0 -25
  221. package/dist/templates/codebuddy/commands/trellis/create-command.md +0 -154
  222. package/dist/templates/codebuddy/commands/trellis/finish-work.md +0 -143
  223. package/dist/templates/codebuddy/commands/trellis/integrate-skill.md +0 -219
  224. package/dist/templates/codebuddy/commands/trellis/onboard.md +0 -358
  225. package/dist/templates/codebuddy/commands/trellis/record-session.md +0 -61
  226. package/dist/templates/codebuddy/commands/trellis/start.md +0 -373
  227. package/dist/templates/codex/codex-skills/parallel/SKILL.md +0 -194
  228. package/dist/templates/cursor/commands/trellis-before-dev.md +0 -29
  229. package/dist/templates/cursor/commands/trellis-brainstorm.md +0 -487
  230. package/dist/templates/cursor/commands/trellis-break-loop.md +0 -107
  231. package/dist/templates/cursor/commands/trellis-check-cross-layer.md +0 -153
  232. package/dist/templates/cursor/commands/trellis-check.md +0 -25
  233. package/dist/templates/cursor/commands/trellis-create-command.md +0 -154
  234. package/dist/templates/cursor/commands/trellis-finish-work.md +0 -143
  235. package/dist/templates/cursor/commands/trellis-integrate-skill.md +0 -219
  236. package/dist/templates/cursor/commands/trellis-onboard.md +0 -358
  237. package/dist/templates/cursor/commands/trellis-record-session.md +0 -62
  238. package/dist/templates/cursor/commands/trellis-start.md +0 -373
  239. package/dist/templates/cursor/commands/trellis-update-spec.md +0 -354
  240. package/dist/templates/droid/commands/trellis/before-dev.md +0 -33
  241. package/dist/templates/droid/commands/trellis/brainstorm.md +0 -491
  242. package/dist/templates/droid/commands/trellis/break-loop.md +0 -111
  243. package/dist/templates/droid/commands/trellis/check-cross-layer.md +0 -157
  244. package/dist/templates/droid/commands/trellis/check.md +0 -29
  245. package/dist/templates/droid/commands/trellis/create-command.md +0 -158
  246. package/dist/templates/droid/commands/trellis/finish-work.md +0 -147
  247. package/dist/templates/droid/commands/trellis/integrate-skill.md +0 -223
  248. package/dist/templates/droid/commands/trellis/onboard.md +0 -362
  249. package/dist/templates/droid/commands/trellis/record-session.md +0 -66
  250. package/dist/templates/droid/commands/trellis/start.md +0 -377
  251. package/dist/templates/droid/commands/trellis/update-spec.md +0 -358
  252. package/dist/templates/gemini/commands/trellis/before-dev.toml +0 -33
  253. package/dist/templates/gemini/commands/trellis/brainstorm.toml +0 -435
  254. package/dist/templates/gemini/commands/trellis/break-loop.toml +0 -129
  255. package/dist/templates/gemini/commands/trellis/check-cross-layer.toml +0 -147
  256. package/dist/templates/gemini/commands/trellis/check.toml +0 -29
  257. package/dist/templates/gemini/commands/trellis/create-command.toml +0 -119
  258. package/dist/templates/gemini/commands/trellis/finish-work.toml +0 -133
  259. package/dist/templates/gemini/commands/trellis/integrate-skill.toml +0 -104
  260. package/dist/templates/gemini/commands/trellis/onboard.toml +0 -111
  261. package/dist/templates/gemini/commands/trellis/record-session.toml +0 -66
  262. package/dist/templates/gemini/commands/trellis/start.toml +0 -354
  263. package/dist/templates/gemini/commands/trellis/update-spec.toml +0 -132
  264. package/dist/templates/iflow/agents/debug.md +0 -106
  265. package/dist/templates/iflow/agents/dispatch.md +0 -213
  266. package/dist/templates/iflow/agents/plan.md +0 -396
  267. package/dist/templates/iflow/agents/research.md +0 -120
  268. package/dist/templates/iflow/commands/trellis/before-dev.md +0 -29
  269. package/dist/templates/iflow/commands/trellis/brainstorm.md +0 -487
  270. package/dist/templates/iflow/commands/trellis/break-loop.md +0 -125
  271. package/dist/templates/iflow/commands/trellis/check-cross-layer.md +0 -153
  272. package/dist/templates/iflow/commands/trellis/check.md +0 -25
  273. package/dist/templates/iflow/commands/trellis/create-command.md +0 -152
  274. package/dist/templates/iflow/commands/trellis/finish-work.md +0 -153
  275. package/dist/templates/iflow/commands/trellis/integrate-skill.md +0 -219
  276. package/dist/templates/iflow/commands/trellis/onboard.md +0 -358
  277. package/dist/templates/iflow/commands/trellis/parallel.md +0 -192
  278. package/dist/templates/iflow/commands/trellis/record-session.md +0 -62
  279. package/dist/templates/iflow/commands/trellis/start.md +0 -393
  280. package/dist/templates/iflow/commands/trellis/update-spec.md +0 -354
  281. package/dist/templates/iflow/hooks/ralph-loop.py +0 -395
  282. package/dist/templates/iflow/hooks/session-start.py +0 -403
  283. package/dist/templates/iflow/index.d.ts +0 -54
  284. package/dist/templates/iflow/index.d.ts.map +0 -1
  285. package/dist/templates/iflow/index.js +0 -85
  286. package/dist/templates/iflow/index.js.map +0 -1
  287. package/dist/templates/iflow/settings.json +0 -60
  288. package/dist/templates/kilo/index.d.ts +0 -16
  289. package/dist/templates/kilo/index.d.ts.map +0 -1
  290. package/dist/templates/kilo/index.js +0 -39
  291. package/dist/templates/kilo/index.js.map +0 -1
  292. package/dist/templates/kilo/workflows/before-dev.md +0 -29
  293. package/dist/templates/kilo/workflows/brainstorm.md +0 -487
  294. package/dist/templates/kilo/workflows/break-loop.md +0 -125
  295. package/dist/templates/kilo/workflows/check-cross-layer.md +0 -153
  296. package/dist/templates/kilo/workflows/check.md +0 -25
  297. package/dist/templates/kilo/workflows/create-command.md +0 -152
  298. package/dist/templates/kilo/workflows/finish-work.md +0 -129
  299. package/dist/templates/kilo/workflows/integrate-skill.md +0 -219
  300. package/dist/templates/kilo/workflows/onboard.md +0 -358
  301. package/dist/templates/kilo/workflows/parallel.md +0 -193
  302. package/dist/templates/kilo/workflows/record-session.md +0 -62
  303. package/dist/templates/kilo/workflows/start.md +0 -387
  304. package/dist/templates/kilo/workflows/update-spec.md +0 -285
  305. package/dist/templates/kiro/skills/before-dev/SKILL.md +0 -34
  306. package/dist/templates/kiro/skills/brainstorm/SKILL.md +0 -492
  307. package/dist/templates/kiro/skills/break-loop/SKILL.md +0 -130
  308. package/dist/templates/kiro/skills/check/SKILL.md +0 -30
  309. package/dist/templates/kiro/skills/check-cross-layer/SKILL.md +0 -158
  310. package/dist/templates/kiro/skills/create-command/SKILL.md +0 -101
  311. package/dist/templates/kiro/skills/finish-work/SKILL.md +0 -148
  312. package/dist/templates/kiro/skills/integrate-skill/SKILL.md +0 -221
  313. package/dist/templates/kiro/skills/onboard/SKILL.md +0 -363
  314. package/dist/templates/kiro/skills/record-session/SKILL.md +0 -67
  315. package/dist/templates/kiro/skills/start/SKILL.md +0 -351
  316. package/dist/templates/kiro/skills/update-spec/SKILL.md +0 -335
  317. package/dist/templates/opencode/agents/debug.md +0 -129
  318. package/dist/templates/opencode/agents/dispatch.md +0 -223
  319. package/dist/templates/opencode/agents/trellis-plan.md +0 -427
  320. package/dist/templates/opencode/commands/trellis/before-dev.md +0 -29
  321. package/dist/templates/opencode/commands/trellis/brainstorm.md +0 -487
  322. package/dist/templates/opencode/commands/trellis/check-cross-layer.md +0 -153
  323. package/dist/templates/opencode/commands/trellis/check.md +0 -25
  324. package/dist/templates/opencode/commands/trellis/create-command.md +0 -154
  325. package/dist/templates/opencode/commands/trellis/finish-work.md +0 -144
  326. package/dist/templates/opencode/commands/trellis/integrate-skill.md +0 -219
  327. package/dist/templates/opencode/commands/trellis/migrate-specs.md +0 -0
  328. package/dist/templates/opencode/commands/trellis/onboard.md +0 -358
  329. package/dist/templates/opencode/commands/trellis/parallel.md +0 -193
  330. package/dist/templates/opencode/commands/trellis/record-session.md +0 -62
  331. package/dist/templates/opencode/commands/trellis/start.md +0 -351
  332. package/dist/templates/opencode/commands/trellis/update-spec.md +0 -354
  333. package/dist/templates/qoder/skills/before-dev/SKILL.md +0 -34
  334. package/dist/templates/qoder/skills/brainstorm/SKILL.md +0 -492
  335. package/dist/templates/qoder/skills/break-loop/SKILL.md +0 -130
  336. package/dist/templates/qoder/skills/check/SKILL.md +0 -30
  337. package/dist/templates/qoder/skills/check-cross-layer/SKILL.md +0 -158
  338. package/dist/templates/qoder/skills/create-command/SKILL.md +0 -101
  339. package/dist/templates/qoder/skills/finish-work/SKILL.md +0 -134
  340. package/dist/templates/qoder/skills/integrate-skill/SKILL.md +0 -221
  341. package/dist/templates/qoder/skills/onboard/SKILL.md +0 -363
  342. package/dist/templates/qoder/skills/record-session/SKILL.md +0 -67
  343. package/dist/templates/qoder/skills/start/SKILL.md +0 -388
  344. package/dist/templates/qoder/skills/update-spec/SKILL.md +0 -290
  345. package/dist/templates/trellis/scripts/common/phase.py +0 -254
  346. package/dist/templates/trellis/scripts/common/registry.py +0 -335
  347. package/dist/templates/trellis/scripts/common/worktree.py +0 -305
  348. package/dist/templates/trellis/scripts/multi_agent/__init__.py +0 -5
  349. package/dist/templates/trellis/scripts/multi_agent/_bootstrap.py +0 -17
  350. package/dist/templates/trellis/scripts/multi_agent/cleanup.py +0 -398
  351. package/dist/templates/trellis/scripts/multi_agent/create_pr.py +0 -620
  352. package/dist/templates/trellis/scripts/multi_agent/plan.py +0 -213
  353. package/dist/templates/trellis/scripts/multi_agent/start.py +0 -539
  354. package/dist/templates/trellis/scripts/multi_agent/status.py +0 -76
  355. package/dist/templates/trellis/scripts/multi_agent/status_display.py +0 -542
  356. package/dist/templates/trellis/scripts/multi_agent/status_monitor.py +0 -225
  357. package/dist/templates/trellis/scripts-shell-archive/add-session.sh +0 -384
  358. package/dist/templates/trellis/scripts-shell-archive/common/developer.sh +0 -129
  359. package/dist/templates/trellis/scripts-shell-archive/common/git-context.sh +0 -263
  360. package/dist/templates/trellis/scripts-shell-archive/common/paths.sh +0 -208
  361. package/dist/templates/trellis/scripts-shell-archive/common/phase.sh +0 -150
  362. package/dist/templates/trellis/scripts-shell-archive/common/registry.sh +0 -247
  363. package/dist/templates/trellis/scripts-shell-archive/common/task-queue.sh +0 -142
  364. package/dist/templates/trellis/scripts-shell-archive/common/task-utils.sh +0 -151
  365. package/dist/templates/trellis/scripts-shell-archive/common/worktree.sh +0 -128
  366. package/dist/templates/trellis/scripts-shell-archive/create-bootstrap.sh +0 -299
  367. package/dist/templates/trellis/scripts-shell-archive/get-context.sh +0 -7
  368. package/dist/templates/trellis/scripts-shell-archive/get-developer.sh +0 -15
  369. package/dist/templates/trellis/scripts-shell-archive/init-developer.sh +0 -34
  370. package/dist/templates/trellis/scripts-shell-archive/multi-agent/cleanup.sh +0 -396
  371. package/dist/templates/trellis/scripts-shell-archive/multi-agent/create-pr.sh +0 -241
  372. package/dist/templates/trellis/scripts-shell-archive/multi-agent/plan.sh +0 -207
  373. package/dist/templates/trellis/scripts-shell-archive/multi-agent/start.sh +0 -317
  374. package/dist/templates/trellis/scripts-shell-archive/multi-agent/status.sh +0 -828
  375. package/dist/templates/trellis/scripts-shell-archive/task.sh +0 -1204
  376. package/dist/templates/trellis/worktree.yaml +0 -47
  377. package/dist/templates/windsurf/index.d.ts +0 -21
  378. package/dist/templates/windsurf/index.d.ts.map +0 -1
  379. package/dist/templates/windsurf/index.js +0 -44
  380. package/dist/templates/windsurf/index.js.map +0 -1
  381. package/dist/templates/windsurf/workflows/trellis-before-dev.md +0 -31
  382. package/dist/templates/windsurf/workflows/trellis-brainstorm.md +0 -491
  383. package/dist/templates/windsurf/workflows/trellis-break-loop.md +0 -111
  384. package/dist/templates/windsurf/workflows/trellis-check-cross-layer.md +0 -157
  385. package/dist/templates/windsurf/workflows/trellis-check.md +0 -27
  386. package/dist/templates/windsurf/workflows/trellis-create-command.md +0 -154
  387. package/dist/templates/windsurf/workflows/trellis-finish-work.md +0 -147
  388. package/dist/templates/windsurf/workflows/trellis-integrate-skill.md +0 -220
  389. package/dist/templates/windsurf/workflows/trellis-onboard.md +0 -362
  390. package/dist/templates/windsurf/workflows/trellis-record-session.md +0 -66
  391. package/dist/templates/windsurf/workflows/trellis-start.md +0 -373
  392. package/dist/templates/windsurf/workflows/trellis-update-spec.md +0 -358
  393. /package/dist/templates/{claude/commands/trellis → common/skills}/before-dev.md +0 -0
  394. /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())