@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,254 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Phase Management Utilities.
4
-
5
- Centralized phase tracking for multi-agent pipeline.
6
-
7
- Provides:
8
- get_current_phase - Returns current phase number
9
- get_total_phases - Returns total phase count
10
- get_phase_action - Returns action name for phase
11
- get_phase_info - Returns "N/M (action)" format
12
- set_phase - Sets current_phase
13
- advance_phase - Advances to next phase
14
- get_phase_for_action - Returns phase number for action
15
- map_subagent_to_action - Map subagent type to action name
16
- is_phase_completed - Check if phase is completed
17
- is_current_action - Check if at specific action
18
- """
19
-
20
- from __future__ import annotations
21
-
22
- from pathlib import Path
23
-
24
- from .io import read_json, write_json
25
-
26
-
27
- # =============================================================================
28
- # Internal Helpers (operate on pre-loaded data dict)
29
- # =============================================================================
30
-
31
- def _total_phases(data: dict) -> int:
32
- """Get total phases from pre-loaded data."""
33
- next_action = data.get("next_action", [])
34
- return len(next_action) if isinstance(next_action, list) else 0
35
-
36
-
37
- def _phase_action(data: dict, phase: int) -> str:
38
- """Get action name for a phase from pre-loaded data."""
39
- next_action = data.get("next_action", [])
40
- if isinstance(next_action, list):
41
- for item in next_action:
42
- if isinstance(item, dict) and item.get("phase") == phase:
43
- return item.get("action", "unknown")
44
- return "unknown"
45
-
46
-
47
- def _phase_for_action(data: dict, action: str) -> int:
48
- """Get phase number for an action name from pre-loaded data."""
49
- next_action = data.get("next_action", [])
50
- if isinstance(next_action, list):
51
- for item in next_action:
52
- if isinstance(item, dict) and item.get("action") == action:
53
- return item.get("phase", 0)
54
- return 0
55
-
56
-
57
- # =============================================================================
58
- # Phase Functions
59
- # =============================================================================
60
-
61
- def get_current_phase(task_json: Path) -> int:
62
- """Get current phase number.
63
-
64
- Args:
65
- task_json: Path to task.json file.
66
-
67
- Returns:
68
- Current phase number, or 0 if not found.
69
- """
70
- data = read_json(task_json)
71
- if not data:
72
- return 0
73
- return data.get("current_phase", 0) or 0
74
-
75
-
76
- def get_total_phases(task_json: Path) -> int:
77
- """Get total number of phases.
78
-
79
- Args:
80
- task_json: Path to task.json file.
81
-
82
- Returns:
83
- Total phase count, or 0 if not found.
84
- """
85
- data = read_json(task_json)
86
- if not data:
87
- return 0
88
- return _total_phases(data)
89
-
90
-
91
- def get_phase_action(task_json: Path, phase: int) -> str:
92
- """Get action name for a specific phase.
93
-
94
- Args:
95
- task_json: Path to task.json file.
96
- phase: Phase number.
97
-
98
- Returns:
99
- Action name, or "unknown" if not found.
100
- """
101
- data = read_json(task_json)
102
- if not data:
103
- return "unknown"
104
- return _phase_action(data, phase)
105
-
106
-
107
- def get_phase_info(task_json: Path) -> str:
108
- """Get formatted phase info: "N/M (action)".
109
-
110
- Args:
111
- task_json: Path to task.json file.
112
-
113
- Returns:
114
- Formatted string like "1/4 (implement)".
115
- """
116
- data = read_json(task_json)
117
- if not data:
118
- return "N/A"
119
-
120
- current_phase = data.get("current_phase", 0) or 0
121
- total = _total_phases(data)
122
- action_name = _phase_action(data, current_phase)
123
-
124
- if current_phase == 0 or current_phase is None:
125
- return f"0/{total} (pending)"
126
- else:
127
- return f"{current_phase}/{total} ({action_name})"
128
-
129
-
130
- def set_phase(task_json: Path, phase: int) -> bool:
131
- """Set current phase to a specific value.
132
-
133
- Args:
134
- task_json: Path to task.json file.
135
- phase: Phase number to set.
136
-
137
- Returns:
138
- True on success, False on error.
139
- """
140
- data = read_json(task_json)
141
- if not data:
142
- return False
143
-
144
- data["current_phase"] = phase
145
- return write_json(task_json, data)
146
-
147
-
148
- def advance_phase(task_json: Path) -> bool:
149
- """Advance to next phase.
150
-
151
- Args:
152
- task_json: Path to task.json file.
153
-
154
- Returns:
155
- True on success, False on error or at final phase.
156
- """
157
- data = read_json(task_json)
158
- if not data:
159
- return False
160
-
161
- current = data.get("current_phase", 0) or 0
162
- total = _total_phases(data)
163
- next_phase = current + 1
164
-
165
- if next_phase > total:
166
- return False # Already at final phase
167
-
168
- data["current_phase"] = next_phase
169
- return write_json(task_json, data)
170
-
171
-
172
- def get_phase_for_action(task_json: Path, action: str) -> int:
173
- """Get phase number for a specific action name.
174
-
175
- Args:
176
- task_json: Path to task.json file.
177
- action: Action name.
178
-
179
- Returns:
180
- Phase number, or 0 if not found.
181
- """
182
- data = read_json(task_json)
183
- if not data:
184
- return 0
185
- return _phase_for_action(data, action)
186
-
187
-
188
- def map_subagent_to_action(subagent_type: str) -> str:
189
- """Map subagent type to action name.
190
-
191
- Used by hooks to determine which action a subagent corresponds to.
192
-
193
- Args:
194
- subagent_type: Subagent type string.
195
-
196
- Returns:
197
- Corresponding action name.
198
- """
199
- mapping = {
200
- "implement": "implement",
201
- "check": "check",
202
- "debug": "debug",
203
- "research": "research",
204
- }
205
- return mapping.get(subagent_type, subagent_type)
206
-
207
-
208
- def is_phase_completed(task_json: Path, phase: int) -> bool:
209
- """Check if a phase is completed (current_phase > phase).
210
-
211
- Args:
212
- task_json: Path to task.json file.
213
- phase: Phase number to check.
214
-
215
- Returns:
216
- True if phase is completed.
217
- """
218
- current = get_current_phase(task_json)
219
- return current > phase
220
-
221
-
222
- def is_current_action(task_json: Path, action: str) -> bool:
223
- """Check if we're at a specific action.
224
-
225
- Args:
226
- task_json: Path to task.json file.
227
- action: Action name to check.
228
-
229
- Returns:
230
- True if current phase matches the action.
231
- """
232
- data = read_json(task_json)
233
- if not data:
234
- return False
235
- current = data.get("current_phase", 0) or 0
236
- action_phase = _phase_for_action(data, action)
237
- return current == action_phase
238
-
239
-
240
- # =============================================================================
241
- # Main Entry (for testing)
242
- # =============================================================================
243
-
244
- if __name__ == "__main__":
245
- import sys
246
-
247
- if len(sys.argv) > 1:
248
- path = Path(sys.argv[1])
249
- print(f"Task JSON: {path}")
250
- print(f"Phase info: {get_phase_info(path)}")
251
- print(f"Current phase: {get_current_phase(path)}")
252
- print(f"Total phases: {get_total_phases(path)}")
253
- else:
254
- print("Usage: python3 phase.py <task.json>")
@@ -1,335 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Registry utility functions for multi-agent pipeline.
4
-
5
- Provides:
6
- registry_get_file - Get registry file path
7
- registry_get_agent_by_id - Find agent by ID
8
- registry_get_agent_by_worktree - Find agent by worktree path
9
- registry_get_task_dir - Get task dir for a worktree
10
- registry_remove_by_id - Remove agent by ID
11
- registry_remove_by_worktree - Remove agent by worktree path
12
- registry_add_agent - Add agent to registry
13
- registry_search_agent - Search agent by ID or task_dir
14
- registry_list_agents - List all agents
15
- """
16
-
17
- from __future__ import annotations
18
-
19
- from datetime import datetime
20
- from pathlib import Path
21
-
22
- from .io import read_json, write_json
23
- from .paths import get_repo_root
24
- from .worktree import get_agents_dir
25
-
26
-
27
- # =============================================================================
28
- # Internal Helpers
29
- # =============================================================================
30
-
31
- def _load_registry(
32
- repo_root: Path | None = None,
33
- ) -> tuple[Path | None, dict | None]:
34
- """Load registry file and data in one step.
35
-
36
- Returns:
37
- (registry_file_path, data_dict) — either may be None.
38
- """
39
- if repo_root is None:
40
- repo_root = get_repo_root()
41
-
42
- registry_file = registry_get_file(repo_root)
43
- if not registry_file or not registry_file.is_file():
44
- return registry_file, None
45
-
46
- data = read_json(registry_file)
47
- return registry_file, data
48
-
49
-
50
- # =============================================================================
51
- # Registry File Access
52
- # =============================================================================
53
-
54
- def registry_get_file(repo_root: Path | None = None) -> Path | None:
55
- """Get registry file path.
56
-
57
- Args:
58
- repo_root: Repository root path. Defaults to auto-detected.
59
-
60
- Returns:
61
- Path to registry.json, or None if agents dir not found.
62
- """
63
- if repo_root is None:
64
- repo_root = get_repo_root()
65
-
66
- agents_dir = get_agents_dir(repo_root)
67
- if agents_dir:
68
- return agents_dir / "registry.json"
69
- return None
70
-
71
-
72
- def _ensure_registry(repo_root: Path | None = None) -> Path | None:
73
- """Ensure registry file exists with valid structure.
74
-
75
- Args:
76
- repo_root: Repository root path. Defaults to auto-detected.
77
-
78
- Returns:
79
- Path to registry file, or None if cannot create.
80
- """
81
- if repo_root is None:
82
- repo_root = get_repo_root()
83
-
84
- registry_file = registry_get_file(repo_root)
85
- if not registry_file:
86
- return None
87
-
88
- agents_dir = registry_file.parent
89
-
90
- try:
91
- agents_dir.mkdir(parents=True, exist_ok=True)
92
-
93
- if not registry_file.exists():
94
- write_json(registry_file, {"agents": []})
95
-
96
- return registry_file
97
- except (OSError, IOError):
98
- return None
99
-
100
-
101
- # =============================================================================
102
- # Agent Lookup
103
- # =============================================================================
104
-
105
- def registry_get_agent_by_id(
106
- agent_id: str,
107
- repo_root: Path | None = None
108
- ) -> dict | None:
109
- """Get agent by ID.
110
-
111
- Args:
112
- agent_id: Agent ID.
113
- repo_root: Repository root path. Defaults to auto-detected.
114
-
115
- Returns:
116
- Agent dict, or None if not found.
117
- """
118
- _, data = _load_registry(repo_root)
119
- if not data:
120
- return None
121
-
122
- for agent in data.get("agents", []):
123
- if agent.get("id") == agent_id:
124
- return agent
125
-
126
- return None
127
-
128
-
129
- def registry_get_agent_by_worktree(
130
- worktree_path: str,
131
- repo_root: Path | None = None
132
- ) -> dict | None:
133
- """Get agent by worktree path.
134
-
135
- Args:
136
- worktree_path: Worktree path.
137
- repo_root: Repository root path. Defaults to auto-detected.
138
-
139
- Returns:
140
- Agent dict, or None if not found.
141
- """
142
- _, data = _load_registry(repo_root)
143
- if not data:
144
- return None
145
-
146
- for agent in data.get("agents", []):
147
- if agent.get("worktree_path") == worktree_path:
148
- return agent
149
-
150
- return None
151
-
152
-
153
- def registry_search_agent(
154
- search: str,
155
- repo_root: Path | None = None
156
- ) -> dict | None:
157
- """Search agent by ID or task_dir containing search term.
158
-
159
- Args:
160
- search: Search term.
161
- repo_root: Repository root path. Defaults to auto-detected.
162
-
163
- Returns:
164
- First matching agent dict, or None if not found.
165
- """
166
- _, data = _load_registry(repo_root)
167
- if not data:
168
- return None
169
-
170
- for agent in data.get("agents", []):
171
- # Exact ID match
172
- if agent.get("id") == search:
173
- return agent
174
- # Partial match on task_dir
175
- task_dir = agent.get("task_dir", "")
176
- if search in task_dir:
177
- return agent
178
-
179
- return None
180
-
181
-
182
- def registry_get_task_dir(
183
- worktree_path: str,
184
- repo_root: Path | None = None
185
- ) -> str | None:
186
- """Get task directory for a worktree.
187
-
188
- Args:
189
- worktree_path: Worktree path.
190
- repo_root: Repository root path. Defaults to auto-detected.
191
-
192
- Returns:
193
- Task directory path, or None if not found.
194
- """
195
- _, data = _load_registry(repo_root)
196
- if not data:
197
- return None
198
-
199
- for agent in data.get("agents", []):
200
- if agent.get("worktree_path") == worktree_path:
201
- return agent.get("task_dir")
202
-
203
- return None
204
-
205
-
206
- # =============================================================================
207
- # Agent Modification
208
- # =============================================================================
209
-
210
- def registry_remove_by_id(agent_id: str, repo_root: Path | None = None) -> bool:
211
- """Remove agent by ID.
212
-
213
- Args:
214
- agent_id: Agent ID.
215
- repo_root: Repository root path. Defaults to auto-detected.
216
-
217
- Returns:
218
- True on success.
219
- """
220
- registry_file, data = _load_registry(repo_root)
221
- if not registry_file or not data:
222
- return True # Nothing to remove
223
-
224
- agents = data.get("agents", [])
225
- data["agents"] = [a for a in agents if a.get("id") != agent_id]
226
-
227
- return write_json(registry_file, data)
228
-
229
-
230
- def registry_remove_by_worktree(
231
- worktree_path: str,
232
- repo_root: Path | None = None
233
- ) -> bool:
234
- """Remove agent by worktree path.
235
-
236
- Args:
237
- worktree_path: Worktree path.
238
- repo_root: Repository root path. Defaults to auto-detected.
239
-
240
- Returns:
241
- True on success.
242
- """
243
- registry_file, data = _load_registry(repo_root)
244
- if not registry_file or not data:
245
- return True # Nothing to remove
246
-
247
- agents = data.get("agents", [])
248
- data["agents"] = [a for a in agents if a.get("worktree_path") != worktree_path]
249
-
250
- return write_json(registry_file, data)
251
-
252
-
253
- def registry_add_agent(
254
- agent_id: str,
255
- worktree_path: str,
256
- pid: int,
257
- task_dir: str,
258
- repo_root: Path | None = None,
259
- platform: str = "claude",
260
- ) -> bool:
261
- """Add agent to registry (replaces if same ID exists).
262
-
263
- Args:
264
- agent_id: Agent ID.
265
- worktree_path: Worktree path.
266
- pid: Process ID.
267
- task_dir: Task directory path.
268
- repo_root: Repository root path. Defaults to auto-detected.
269
- platform: Platform used (e.g., 'claude', 'opencode', 'codex', 'kiro', 'antigravity'). Defaults to 'claude'.
270
-
271
- Returns:
272
- True on success.
273
- """
274
- if repo_root is None:
275
- repo_root = get_repo_root()
276
-
277
- registry_file = _ensure_registry(repo_root)
278
- if not registry_file:
279
- return False
280
-
281
- data = read_json(registry_file)
282
- if not data:
283
- data = {"agents": []}
284
-
285
- # Remove existing agent with same ID
286
- agents = data.get("agents", [])
287
- agents = [a for a in agents if a.get("id") != agent_id]
288
-
289
- # Create new agent record
290
- started_at = datetime.now().isoformat()
291
- new_agent = {
292
- "id": agent_id,
293
- "worktree_path": worktree_path,
294
- "pid": pid,
295
- "started_at": started_at,
296
- "task_dir": task_dir,
297
- "platform": platform,
298
- }
299
-
300
- agents.append(new_agent)
301
- data["agents"] = agents
302
-
303
- return write_json(registry_file, data)
304
-
305
-
306
- def registry_list_agents(repo_root: Path | None = None) -> list[dict]:
307
- """List all agents.
308
-
309
- Args:
310
- repo_root: Repository root path. Defaults to auto-detected.
311
-
312
- Returns:
313
- List of agent dicts.
314
- """
315
- _, data = _load_registry(repo_root)
316
- if not data:
317
- return []
318
-
319
- return data.get("agents", [])
320
-
321
-
322
- # =============================================================================
323
- # Main Entry (for testing)
324
- # =============================================================================
325
-
326
- if __name__ == "__main__":
327
- import json as json_mod
328
-
329
- repo = get_repo_root()
330
- print(f"Repository root: {repo}")
331
- print(f"Registry file: {registry_get_file(repo)}")
332
- print()
333
- print("Agents:")
334
- agents = registry_list_agents(repo)
335
- print(json_mod.dumps(agents, indent=2))