@blulotus/trellis 0.7.0 → 0.7.1

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 (335) hide show
  1. package/README.md +2 -2
  2. package/dist/cli/index.js +2 -29
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/init.d.ts +0 -22
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +5 -12
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/mem.d.ts +2 -2
  9. package/dist/commands/mem.d.ts.map +1 -1
  10. package/dist/commands/mem.js +7 -40
  11. package/dist/commands/mem.js.map +1 -1
  12. package/dist/commands/uninstall.d.ts +1 -1
  13. package/dist/commands/uninstall.d.ts.map +1 -1
  14. package/dist/commands/uninstall.js +4 -34
  15. package/dist/commands/uninstall.js.map +1 -1
  16. package/dist/commands/update.d.ts.map +1 -1
  17. package/dist/commands/update.js +2 -20
  18. package/dist/commands/update.js.map +1 -1
  19. package/dist/configurators/index.d.ts.map +1 -1
  20. package/dist/configurators/index.js +7 -73
  21. package/dist/configurators/index.js.map +1 -1
  22. package/dist/configurators/shared.d.ts +18 -70
  23. package/dist/configurators/shared.d.ts.map +1 -1
  24. package/dist/configurators/shared.js +20 -299
  25. package/dist/configurators/shared.js.map +1 -1
  26. package/dist/migrations/manifests/0.1.9.json +0 -12
  27. package/dist/migrations/manifests/0.2.14.json +0 -84
  28. package/dist/migrations/manifests/0.3.0-beta.0.json +0 -87
  29. package/dist/migrations/manifests/0.3.4.json +1 -13
  30. package/dist/migrations/manifests/0.4.0-beta.1.json +24 -176
  31. package/dist/migrations/manifests/0.5.0-beta.0.json +67 -1203
  32. package/dist/migrations/manifests/0.5.0-beta.15.json +0 -96
  33. package/dist/migrations/manifests/0.5.0-beta.5.json +0 -168
  34. package/dist/migrations/manifests/0.5.0-beta.9.json +0 -20
  35. package/dist/migrations/manifests/0.6.0-beta.23.json +0 -66
  36. package/dist/migrations/manifests/0.6.3.json +1 -16
  37. package/dist/migrations/manifests/0.6.6.json +1 -9
  38. package/dist/migrations/manifests/0.7.0.json +9 -0
  39. package/dist/migrations/manifests/0.7.1.json +9 -0
  40. package/dist/migrations/manifests/0.8.0.json +9 -0
  41. package/dist/templates/codex/hooks/session-start.py +37 -13
  42. package/dist/templates/codex/hooks.json +5 -0
  43. package/dist/templates/common/bundled-skills/trellis-meta/SKILL.md +5 -5
  44. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-agents.md +0 -10
  45. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-hooks.md +1 -1
  46. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +1 -13
  47. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/overview.md +2 -2
  48. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/bundled-skills.md +9 -28
  49. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/generated-files.md +5 -5
  50. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/overview.md +1 -1
  51. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/agents.md +1 -17
  52. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/hooks-and-settings.md +4 -12
  53. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/overview.md +6 -6
  54. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/platform-map.md +5 -75
  55. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/skills-and-commands.md +0 -16
  56. package/dist/templates/common/bundled-skills/trellis-session-insight/SKILL.md +1 -1
  57. package/dist/templates/common/bundled-skills/trellis-session-insight/references/cli-quick-reference.md +2 -3
  58. package/dist/templates/common/commands/continue.md +24 -4
  59. package/dist/templates/common/commands/finish-work.md +19 -9
  60. package/dist/templates/common/commands/start.md +38 -29
  61. package/dist/templates/extract.d.ts +0 -10
  62. package/dist/templates/extract.d.ts.map +1 -1
  63. package/dist/templates/extract.js +0 -24
  64. package/dist/templates/extract.js.map +1 -1
  65. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +7 -9
  66. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +4 -8
  67. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +5 -5
  68. package/dist/templates/shared-hooks/index.d.ts +11 -43
  69. package/dist/templates/shared-hooks/index.d.ts.map +1 -1
  70. package/dist/templates/shared-hooks/index.js +9 -86
  71. package/dist/templates/shared-hooks/index.js.map +1 -1
  72. package/dist/templates/shared-hooks/inject-spec-context.py +1 -1
  73. package/dist/templates/shared-hooks/inject-subagent-context.py +23 -85
  74. package/dist/templates/shared-hooks/inject-workflow-state.py +56 -86
  75. package/dist/templates/shared-hooks/session-start.py +76 -98
  76. package/dist/templates/trellis/index.d.ts +0 -1
  77. package/dist/templates/trellis/index.d.ts.map +1 -1
  78. package/dist/templates/trellis/index.js +0 -2
  79. package/dist/templates/trellis/index.js.map +1 -1
  80. package/dist/templates/trellis/scripts/add_session.py +4 -4
  81. package/dist/templates/trellis/scripts/common/__init__.py +2 -0
  82. package/dist/templates/trellis/scripts/common/active_task.py +80 -152
  83. package/dist/templates/trellis/scripts/common/git_context.py +1 -1
  84. package/dist/templates/trellis/scripts/common/session_context.py +2 -2
  85. package/dist/templates/trellis/scripts/common/spec_inject.py +2 -2
  86. package/dist/templates/trellis/scripts/common/task_store.py +8 -28
  87. package/dist/templates/trellis/scripts/common/workflow_phase.py +4 -8
  88. package/dist/templates/trellis/scripts/get_context.py +2 -2
  89. package/dist/templates/trellis/scripts/init_developer.py +1 -1
  90. package/dist/templates/trellis/scripts/task.py +90 -57
  91. package/dist/templates/trellis/workflow.md +44 -66
  92. package/dist/types/ai-tools.d.ts +10 -10
  93. package/dist/types/ai-tools.d.ts.map +1 -1
  94. package/dist/types/ai-tools.js +3 -434
  95. package/dist/types/ai-tools.js.map +1 -1
  96. package/dist/utils/uninstall-scrubbers.d.ts +3 -18
  97. package/dist/utils/uninstall-scrubbers.d.ts.map +1 -1
  98. package/dist/utils/uninstall-scrubbers.js +24 -154
  99. package/dist/utils/uninstall-scrubbers.js.map +1 -1
  100. package/package.json +2 -2
  101. package/dist/configurators/antigravity.d.ts +0 -7
  102. package/dist/configurators/antigravity.d.ts.map +0 -1
  103. package/dist/configurators/antigravity.js +0 -11
  104. package/dist/configurators/antigravity.js.map +0 -1
  105. package/dist/configurators/codebuddy.d.ts +0 -10
  106. package/dist/configurators/codebuddy.d.ts.map +0 -1
  107. package/dist/configurators/codebuddy.js +0 -24
  108. package/dist/configurators/codebuddy.js.map +0 -1
  109. package/dist/configurators/copilot.d.ts +0 -14
  110. package/dist/configurators/copilot.d.ts.map +0 -1
  111. package/dist/configurators/copilot.js +0 -46
  112. package/dist/configurators/copilot.js.map +0 -1
  113. package/dist/configurators/cursor.d.ts +0 -10
  114. package/dist/configurators/cursor.d.ts.map +0 -1
  115. package/dist/configurators/cursor.js +0 -23
  116. package/dist/configurators/cursor.js.map +0 -1
  117. package/dist/configurators/devin.d.ts +0 -8
  118. package/dist/configurators/devin.d.ts.map +0 -1
  119. package/dist/configurators/devin.js +0 -12
  120. package/dist/configurators/devin.js.map +0 -1
  121. package/dist/configurators/droid.d.ts +0 -10
  122. package/dist/configurators/droid.d.ts.map +0 -1
  123. package/dist/configurators/droid.js +0 -24
  124. package/dist/configurators/droid.js.map +0 -1
  125. package/dist/configurators/dsh.d.ts +0 -26
  126. package/dist/configurators/dsh.d.ts.map +0 -1
  127. package/dist/configurators/dsh.js +0 -76
  128. package/dist/configurators/dsh.js.map +0 -1
  129. package/dist/configurators/gemini.d.ts +0 -18
  130. package/dist/configurators/gemini.d.ts.map +0 -1
  131. package/dist/configurators/gemini.js +0 -39
  132. package/dist/configurators/gemini.js.map +0 -1
  133. package/dist/configurators/grok.d.ts +0 -17
  134. package/dist/configurators/grok.d.ts.map +0 -1
  135. package/dist/configurators/grok.js +0 -38
  136. package/dist/configurators/grok.js.map +0 -1
  137. package/dist/configurators/kilo.d.ts +0 -7
  138. package/dist/configurators/kilo.d.ts.map +0 -1
  139. package/dist/configurators/kilo.js +0 -11
  140. package/dist/configurators/kilo.js.map +0 -1
  141. package/dist/configurators/kimi.d.ts +0 -26
  142. package/dist/configurators/kimi.d.ts.map +0 -1
  143. package/dist/configurators/kimi.js +0 -74
  144. package/dist/configurators/kimi.js.map +0 -1
  145. package/dist/configurators/kiro.d.ts +0 -11
  146. package/dist/configurators/kiro.d.ts.map +0 -1
  147. package/dist/configurators/kiro.js +0 -30
  148. package/dist/configurators/kiro.js.map +0 -1
  149. package/dist/configurators/omp.d.ts +0 -6
  150. package/dist/configurators/omp.d.ts.map +0 -1
  151. package/dist/configurators/omp.js +0 -28
  152. package/dist/configurators/omp.js.map +0 -1
  153. package/dist/configurators/opencode.d.ts +0 -5
  154. package/dist/configurators/opencode.d.ts.map +0 -1
  155. package/dist/configurators/opencode.js +0 -84
  156. package/dist/configurators/opencode.js.map +0 -1
  157. package/dist/configurators/pi.d.ts +0 -5
  158. package/dist/configurators/pi.d.ts.map +0 -1
  159. package/dist/configurators/pi.js +0 -39
  160. package/dist/configurators/pi.js.map +0 -1
  161. package/dist/configurators/qoder.d.ts +0 -12
  162. package/dist/configurators/qoder.d.ts.map +0 -1
  163. package/dist/configurators/qoder.js +0 -30
  164. package/dist/configurators/qoder.js.map +0 -1
  165. package/dist/configurators/reasonix.d.ts +0 -17
  166. package/dist/configurators/reasonix.d.ts.map +0 -1
  167. package/dist/configurators/reasonix.js +0 -37
  168. package/dist/configurators/reasonix.js.map +0 -1
  169. package/dist/configurators/snow.d.ts +0 -25
  170. package/dist/configurators/snow.d.ts.map +0 -1
  171. package/dist/configurators/snow.js +0 -69
  172. package/dist/configurators/snow.js.map +0 -1
  173. package/dist/configurators/trae.d.ts +0 -16
  174. package/dist/configurators/trae.d.ts.map +0 -1
  175. package/dist/configurators/trae.js +0 -34
  176. package/dist/configurators/trae.js.map +0 -1
  177. package/dist/configurators/zcode.d.ts +0 -23
  178. package/dist/configurators/zcode.d.ts.map +0 -1
  179. package/dist/configurators/zcode.js +0 -63
  180. package/dist/configurators/zcode.js.map +0 -1
  181. package/dist/templates/codebuddy/agents/trellis-check.md +0 -115
  182. package/dist/templates/codebuddy/agents/trellis-implement.md +0 -115
  183. package/dist/templates/codebuddy/agents/trellis-research.md +0 -137
  184. package/dist/templates/codebuddy/index.d.ts +0 -15
  185. package/dist/templates/codebuddy/index.d.ts.map +0 -1
  186. package/dist/templates/codebuddy/index.js +0 -15
  187. package/dist/templates/codebuddy/index.js.map +0 -1
  188. package/dist/templates/codebuddy/settings.json +0 -69
  189. package/dist/templates/copilot/copilot-instructions.md +0 -11
  190. package/dist/templates/copilot/hooks/session-start.py +0 -564
  191. package/dist/templates/copilot/hooks.json +0 -19
  192. package/dist/templates/copilot/index.d.ts +0 -28
  193. package/dist/templates/copilot/index.d.ts.map +0 -1
  194. package/dist/templates/copilot/index.js +0 -61
  195. package/dist/templates/copilot/index.js.map +0 -1
  196. package/dist/templates/copilot/prompts/before-dev.prompt.md +0 -39
  197. package/dist/templates/copilot/prompts/brainstorm.prompt.md +0 -173
  198. package/dist/templates/copilot/prompts/break-loop.prompt.md +0 -129
  199. package/dist/templates/copilot/prompts/check-cross-layer.prompt.md +0 -170
  200. package/dist/templates/copilot/prompts/check.prompt.md +0 -110
  201. package/dist/templates/copilot/prompts/create-command.prompt.md +0 -116
  202. package/dist/templates/copilot/prompts/finish-work.prompt.md +0 -99
  203. package/dist/templates/copilot/prompts/integrate-skill.prompt.md +0 -223
  204. package/dist/templates/copilot/prompts/onboard.prompt.md +0 -362
  205. package/dist/templates/copilot/prompts/parallel.prompt.md +0 -204
  206. package/dist/templates/copilot/prompts/record-session.prompt.md +0 -66
  207. package/dist/templates/copilot/prompts/start.prompt.md +0 -63
  208. package/dist/templates/copilot/prompts/update-spec.prompt.md +0 -358
  209. package/dist/templates/cursor/agents/trellis-check.md +0 -114
  210. package/dist/templates/cursor/agents/trellis-implement.md +0 -114
  211. package/dist/templates/cursor/agents/trellis-research.md +0 -136
  212. package/dist/templates/cursor/hooks.json +0 -24
  213. package/dist/templates/cursor/index.d.ts +0 -13
  214. package/dist/templates/cursor/index.d.ts.map +0 -1
  215. package/dist/templates/cursor/index.js +0 -13
  216. package/dist/templates/cursor/index.js.map +0 -1
  217. package/dist/templates/droid/droids/trellis-check.md +0 -107
  218. package/dist/templates/droid/droids/trellis-implement.md +0 -107
  219. package/dist/templates/droid/droids/trellis-research.md +0 -137
  220. package/dist/templates/droid/index.d.ts +0 -15
  221. package/dist/templates/droid/index.d.ts.map +0 -1
  222. package/dist/templates/droid/index.js +0 -15
  223. package/dist/templates/droid/index.js.map +0 -1
  224. package/dist/templates/droid/settings.json +0 -69
  225. package/dist/templates/dsh/DSH.md +0 -80
  226. package/dist/templates/dsh/agents/trellis-check.md +0 -99
  227. package/dist/templates/dsh/agents/trellis-implement.md +0 -106
  228. package/dist/templates/dsh/agents/trellis-research.md +0 -134
  229. package/dist/templates/dsh/index.d.ts +0 -22
  230. package/dist/templates/dsh/index.d.ts.map +0 -1
  231. package/dist/templates/dsh/index.js +0 -27
  232. package/dist/templates/dsh/index.js.map +0 -1
  233. package/dist/templates/gemini/agents/trellis-check.md +0 -107
  234. package/dist/templates/gemini/agents/trellis-implement.md +0 -107
  235. package/dist/templates/gemini/agents/trellis-research.md +0 -136
  236. package/dist/templates/gemini/index.d.ts +0 -13
  237. package/dist/templates/gemini/index.d.ts.map +0 -1
  238. package/dist/templates/gemini/index.js +0 -13
  239. package/dist/templates/gemini/index.js.map +0 -1
  240. package/dist/templates/gemini/settings.json +0 -40
  241. package/dist/templates/grok/agents/trellis-check.md +0 -106
  242. package/dist/templates/grok/agents/trellis-implement.md +0 -121
  243. package/dist/templates/grok/agents/trellis-research.md +0 -146
  244. package/dist/templates/grok/index.d.ts +0 -16
  245. package/dist/templates/grok/index.d.ts.map +0 -1
  246. package/dist/templates/grok/index.js +0 -19
  247. package/dist/templates/grok/index.js.map +0 -1
  248. package/dist/templates/kimi/agents/trellis-check.md +0 -104
  249. package/dist/templates/kimi/agents/trellis-implement.md +0 -120
  250. package/dist/templates/kimi/agents/trellis-research.md +0 -144
  251. package/dist/templates/kimi/index.d.ts +0 -20
  252. package/dist/templates/kimi/index.d.ts.map +0 -1
  253. package/dist/templates/kimi/index.js +0 -23
  254. package/dist/templates/kimi/index.js.map +0 -1
  255. package/dist/templates/kiro/agents/trellis-check.json +0 -26
  256. package/dist/templates/kiro/agents/trellis-implement.json +0 -26
  257. package/dist/templates/kiro/agents/trellis-research.json +0 -30
  258. package/dist/templates/kiro/agents/trellis.json +0 -34
  259. package/dist/templates/kiro/hooks/trellis-workflow-state.kiro.hook +0 -14
  260. package/dist/templates/kiro/index.d.ts +0 -32
  261. package/dist/templates/kiro/index.d.ts.map +0 -1
  262. package/dist/templates/kiro/index.js +0 -28
  263. package/dist/templates/kiro/index.js.map +0 -1
  264. package/dist/templates/omp/agents/trellis-check.md +0 -41
  265. package/dist/templates/omp/agents/trellis-implement.md +0 -55
  266. package/dist/templates/omp/agents/trellis-research.md +0 -30
  267. package/dist/templates/omp/extensions/trellis/index.ts.txt +0 -592
  268. package/dist/templates/omp/index.d.ts +0 -4
  269. package/dist/templates/omp/index.d.ts.map +0 -1
  270. package/dist/templates/omp/index.js +0 -9
  271. package/dist/templates/omp/index.js.map +0 -1
  272. package/dist/templates/opencode/agents/trellis-check.md +0 -122
  273. package/dist/templates/opencode/agents/trellis-implement.md +0 -123
  274. package/dist/templates/opencode/agents/trellis-research.md +0 -145
  275. package/dist/templates/opencode/lib/context-visibility.js +0 -86
  276. package/dist/templates/opencode/lib/session-utils.js +0 -526
  277. package/dist/templates/opencode/lib/trellis-context.js +0 -627
  278. package/dist/templates/opencode/package.json +0 -5
  279. package/dist/templates/opencode/plugins/inject-spec-context.js +0 -121
  280. package/dist/templates/opencode/plugins/inject-subagent-context.js +0 -569
  281. package/dist/templates/opencode/plugins/inject-workflow-state.js +0 -340
  282. package/dist/templates/opencode/plugins/session-start.js +0 -74
  283. package/dist/templates/pi/agents/trellis-check.md +0 -37
  284. package/dist/templates/pi/agents/trellis-implement.md +0 -52
  285. package/dist/templates/pi/agents/trellis-research.md +0 -25
  286. package/dist/templates/pi/extensions/trellis/index.ts.txt +0 -2033
  287. package/dist/templates/pi/index.d.ts +0 -5
  288. package/dist/templates/pi/index.d.ts.map +0 -1
  289. package/dist/templates/pi/index.js +0 -12
  290. package/dist/templates/pi/index.js.map +0 -1
  291. package/dist/templates/pi/settings.json +0 -9
  292. package/dist/templates/qoder/agents/trellis-check.md +0 -108
  293. package/dist/templates/qoder/agents/trellis-implement.md +0 -108
  294. package/dist/templates/qoder/agents/trellis-research.md +0 -137
  295. package/dist/templates/qoder/index.d.ts +0 -15
  296. package/dist/templates/qoder/index.d.ts.map +0 -1
  297. package/dist/templates/qoder/index.js +0 -15
  298. package/dist/templates/qoder/index.js.map +0 -1
  299. package/dist/templates/qoder/settings.json +0 -59
  300. package/dist/templates/reasonix/agents/trellis-check.md +0 -36
  301. package/dist/templates/reasonix/agents/trellis-implement.md +0 -51
  302. package/dist/templates/reasonix/index.d.ts +0 -13
  303. package/dist/templates/reasonix/index.d.ts.map +0 -1
  304. package/dist/templates/reasonix/index.js +0 -16
  305. package/dist/templates/reasonix/index.js.map +0 -1
  306. package/dist/templates/shared-hooks/inject-shell-session-context.py +0 -292
  307. package/dist/templates/snow/SNOW.md +0 -86
  308. package/dist/templates/snow/agents/trellis-check.md +0 -136
  309. package/dist/templates/snow/agents/trellis-implement.md +0 -158
  310. package/dist/templates/snow/agents/trellis-research.md +0 -114
  311. package/dist/templates/snow/hooks/beforeSubAgentStart.json +0 -15
  312. package/dist/templates/snow/hooks/onSessionStart.json +0 -15
  313. package/dist/templates/snow/hooks/onUserMessage.json +0 -15
  314. package/dist/templates/snow/hooks/write-trellis-context.py +0 -644
  315. package/dist/templates/snow/index.d.ts +0 -26
  316. package/dist/templates/snow/index.d.ts.map +0 -1
  317. package/dist/templates/snow/index.js +0 -36
  318. package/dist/templates/snow/index.js.map +0 -1
  319. package/dist/templates/trae/agents/trellis-check.md +0 -108
  320. package/dist/templates/trae/agents/trellis-implement.md +0 -108
  321. package/dist/templates/trae/agents/trellis-research.md +0 -137
  322. package/dist/templates/trae/hooks.json +0 -39
  323. package/dist/templates/trae/index.d.ts +0 -15
  324. package/dist/templates/trae/index.d.ts.map +0 -1
  325. package/dist/templates/trae/index.js +0 -15
  326. package/dist/templates/trae/index.js.map +0 -1
  327. package/dist/templates/trellis/scripts/common/cli_adapter.py +0 -982
  328. package/dist/templates/zcode/agents/trellis-check.md +0 -110
  329. package/dist/templates/zcode/agents/trellis-implement.md +0 -116
  330. package/dist/templates/zcode/agents/trellis-research.md +0 -133
  331. package/dist/templates/zcode/config.json +0 -52
  332. package/dist/templates/zcode/index.d.ts +0 -25
  333. package/dist/templates/zcode/index.d.ts.map +0 -1
  334. package/dist/templates/zcode/index.js +0 -29
  335. package/dist/templates/zcode/index.js.map +0 -1
@@ -36,7 +36,6 @@ export const commonGitContext = readTemplate("scripts/common/git_context.py");
36
36
  export const commonTaskQueue = readTemplate("scripts/common/task_queue.py");
37
37
  export const commonTaskUtils = readTemplate("scripts/common/task_utils.py");
38
38
  export const commonActiveTask = readTemplate("scripts/common/active_task.py");
39
- export const commonCliAdapter = readTemplate("scripts/common/cli_adapter.py");
40
39
  export const commonConfig = readTemplate("scripts/common/config.py");
41
40
  export const commonIo = readTemplate("scripts/common/io.py");
42
41
  export const commonLog = readTemplate("scripts/common/log.py");
@@ -85,7 +84,6 @@ export function getAllScripts() {
85
84
  scripts.set("common/task_queue.py", commonTaskQueue);
86
85
  scripts.set("common/task_utils.py", commonTaskUtils);
87
86
  scripts.set("common/active_task.py", commonActiveTask);
88
- scripts.set("common/cli_adapter.py", commonCliAdapter);
89
87
  scripts.set("common/config.py", commonConfig);
90
88
  scripts.set("common/io.py", commonIo);
91
89
  scripts.set("common/log.py", commonLog);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,16 @@
4
4
  Add a new session to journal file and update index.md.
5
5
 
6
6
  Usage:
7
- python3 add_session.py --title "Title" --commit "hash" --summary "Summary" [--package cli]
8
- python3 add_session.py --title "Title" --branch "feat/my-branch"
7
+ python add_session.py --title "Title" --commit "hash" --summary "Summary" [--package cli]
8
+ python add_session.py --title "Title" --branch "feat/my-branch"
9
9
 
10
10
  # Pipe detailed content via stdin (use --stdin to opt in):
11
- cat << 'EOF' | python3 add_session.py --stdin --title "Title" --summary "Summary"
11
+ cat << 'EOF' | python add_session.py --stdin --title "Title" --summary "Summary"
12
12
  <session content here>
13
13
  EOF
14
14
 
15
15
  # Structured content (repeatable; a section with no bullets is omitted):
16
- python3 add_session.py --title "Title" --change "Did X" --test "Ran Y" --next-step "Do Z"
16
+ python add_session.py --title "Title" --change "Did X" --test "Ran Y" --next-step "Do Z"
17
17
 
18
18
  Branch resolution order:
19
19
  1. --branch CLI arg (explicit)
@@ -86,6 +86,8 @@ from .paths import (
86
86
  from .active_task import (
87
87
  ActiveTask,
88
88
  clear_active_task,
89
+ is_session_engaged,
90
+ mark_session_engaged,
89
91
  resolve_active_task,
90
92
  resolve_context_key,
91
93
  set_active_task,
@@ -24,15 +24,16 @@ DIR_TASKS = "tasks"
24
24
  DIR_RUNTIME = ".runtime"
25
25
  DIR_SESSIONS = "sessions"
26
26
  DIR_SHELL_TICKETS = "shell-tickets"
27
- # Pre-0.6.13 name, when the bridge was Cursor-only. Still read so a session that
28
- # was mid-command across an upgrade does not silently degrade; never written.
29
- # Tickets are 30-second ephemera, so the old directory ages out by itself —
30
- # there is nothing to migrate, only a glob on a directory that is normally
31
- # absent. The alternative (ignore it) would land its one lost command on the
32
- # platform that works today.
33
- DIR_LEGACY_CURSOR_SHELL_TICKETS = "cursor-shell"
27
+ # Session engagement lives in its own runtime directory, NOT as a field on the
28
+ # session file. `clear_task_from_sessions` (archive) and `clear_active_task`
29
+ # (`task.py finish`) both *delete* the session file, which would silently
30
+ # un-engage a session that is mid-Phase-3 dropping the per-turn breadcrumb
31
+ # that enforces 3.4 commit. Keeping the flag on a separate path also leaves the
32
+ # `sessions/` file count that `_resolve_single_session_fallback` depends on
33
+ # exactly as it was.
34
+ DIR_ENGAGED = "engaged"
34
35
  SHELL_TICKET_TTL_SECONDS = 30
35
- TASK_SESSION_COMMANDS = {"start", "current", "finish"}
36
+ TASK_SESSION_COMMANDS = {"start", "current", "finish", "engage"}
36
37
 
37
38
  _SESSION_KEYS = ("session_id", "sessionId", "sessionID")
38
39
  _CONVERSATION_KEYS = ("conversation_id", "conversationId", "conversationID")
@@ -41,39 +42,15 @@ _NESTED_KEYS = ("input", "properties", "event", "hook_input", "hookInput")
41
42
  _KNOWN_PLATFORMS = {
42
43
  "claude",
43
44
  "codex",
44
- "cursor",
45
- "opencode",
46
- "gemini",
47
- "droid",
48
- "qoder",
49
- "codebuddy",
50
- "kiro",
51
- "copilot",
52
- "pi",
53
- "trae",
54
- "grok",
55
- "kimi",
56
- "zcode",
57
- "snow",
58
- "dsh",
59
45
  }
60
46
 
61
47
  # Every name below records how it was checked. Do NOT add a name by analogy
62
- # with a neighbour: a 2026-08-05 audit of the then-current 21 platforms found
63
- # 12 declared names had never existed anywhere — they were pattern-guessed from
64
- # `<PLATFORM>_SESSION_ID` shape no vendor agreed to, and the uniformity was the
65
- # only "evidence" behind them. A platform with no verified name belongs in no
66
- # table; it resolves through TRELLIS_CONTEXT_ID or its hook/plugin bridge.
48
+ # with a neighbour: a 2026-08-05 audit found several declared names had never
49
+ # existed anywhere — they were pattern-guessed from `<PLATFORM>_SESSION_ID`
50
+ # shape no vendor agreed to, and the uniformity was the only "evidence" behind
51
+ # them. A platform with no verified name belongs in no table; it resolves
52
+ # through TRELLIS_CONTEXT_ID or its hook bridge.
67
53
  _ENV_SESSION_KEYS: tuple[tuple[str, tuple[str, ...]], ...] = (
68
- # REAL (reported 2026-08-13 against DSH 0.1.0-rc.6 by @SajoLuo, from a live
69
- # run: DSH exports DSH_SESSION_ID plus DSH_SHELL=1 into its managed shell).
70
- # MUST STAY FIRST. A DSH session can inherit an outer host's identity — a
71
- # DSH launched from Codex still carries CODEX_THREAD_ID — and the untargeted
72
- # lookup below walks this table in order, so any earlier entry would claim
73
- # the session and write a foreign `codex_<thread>` pointer for DSH work.
74
- # DSH_SESSION_ID is the only name here no other vendor sets, so first place
75
- # is safe: it cannot mis-claim a non-DSH session.
76
- ("dsh", ("DSH_SESSION_ID",)),
77
54
  # REAL, undocumented (verified 2026-08-05 in a live Claude Code 2.1.221 bash
78
55
  # child; absent from code.claude.com/docs/en/env-vars). CLAUDE_SESSION_ID
79
56
  # was removed here — verified absent from that same live environment.
@@ -82,80 +59,9 @@ _ENV_SESSION_KEYS: tuple[tuple[str, tuple[str, ...]], ...] = (
82
59
  # into shell children, absent from the parent env; openai/codex#19937).
83
60
  # CODEX_SESSION_ID was removed — absent from a live `codex exec` env.
84
61
  ("codex", ("CODEX_THREAD_ID",)),
85
- # REAL but HOOK-SCOPE ONLY (verified 2026-08-05): set by Gemini's
86
- # hookRunner.ts. Its shell tool builds the child env in
87
- # shellExecutionService.ts and adds only GEMINI_CLI/TERM/PAGER/GIT_PAGER, so
88
- # this never reaches a bash child — it resolves only inside a hook process.
89
- ("gemini", ("GEMINI_SESSION_ID",)),
90
- # REAL but HOOK-SCOPE ONLY (verified 2026-08-05): docs.qoder.com/zh/
91
- # extensions/hooks documents it as injected during hook execution by the
92
- # Qoder *IDE plugin*. Absent from the Qoder CLI hook docs and from Lingma.
93
- ("qoder", ("QODER_SESSION_ID",)),
94
- # UNVERIFIED (2026-08-05): absent from kiro.dev/docs/hooks/, but Dynatrace
95
- # dtctl, oh-my-agent and gastown all key agent detection on it and one notes
96
- # it is "set in both interactive and --no-interactive". Kept because that is
97
- # absence of evidence, not evidence of absence. To settle: run
98
- # `env | grep KIRO` from a Kiro shell-tool call on a machine with Kiro.
99
- ("kiro", ("KIRO_SESSION_ID",)),
100
- # UNVERIFIED (2026-08-05): absent from docs.github.com/en/copilot/reference/
101
- # hooks-reference and from the CLI programmatic reference. To settle: run
102
- # `copilot help environment` (the authoritative list per those docs) — not
103
- # runnable here, the CLI is not installed and copilot-cli ships no source.
104
- ("copilot", ("COPILOT_SESSION_ID", "COPILOT_SESSIONID")),
105
- # REASONED, UNVERIFIED (2026-08-05): ZCode is closed-source and not
106
- # installable here. It mirrors Claude's naming elsewhere (CLAUDE_PLUGIN_ROOT
107
- # / CLAUDE_PLUGIN_DATA compat aliases are in its docs), and the previously
108
- # declared CLAUDE_SESSION_ID does not exist on Claude Code either — so the
109
- # name ZCode would actually reuse is CLAUDE_CODE_SESSION_ID. Try that first,
110
- # keep the historical name as a fallback: if neither exists nothing changes.
111
- # Platform-scoped lookup (_iter_env_keys filters by platform name), so the
112
- # entry only fires once the resolver detected "zcode" — no collision with
113
- # the claude entry above.
114
- ("zcode", ("CLAUDE_CODE_SESSION_ID", "CLAUDE_SESSION_ID")),
115
- # REAL by vendor design (verified 2026-08-05): Snow's sessionIdentityEnv.ts
116
- # exports SNOW_SESSION_ID into hook/terminal/sub-agent children and names
117
- # Trellis in its source header. TRELLIS_CONTEXT_ID stays the preferred
118
- # override — Snow sets that too.
119
- ("snow", ("SNOW_SESSION_ID",)),
120
- )
121
- _ENV_CONVERSATION_KEYS: tuple[tuple[str, tuple[str, ...]], ...] = (
122
- # REAL in cursor-agent (CLI), undocumented (verified 2026-08-05: the value
123
- # matches ~/.cursor/chats/<ws>/<id>). The Cursor *IDE* is unverified — a
124
- # 2026-05 forum request for it drew no staff reply. The invented
125
- # CURSOR_SESSION_ID was removed from the session table: empty in a live
126
- # cursor-agent shell. Cursor's other path is the shell ticket below
127
- # (_lookup_shell_ticket_context_key), which is not Cursor-specific.
128
- ("cursor", ("CURSOR_CONVERSATION_ID", "CURSOR_CONVERSATIONID")),
129
- )
130
- _ENV_TRANSCRIPT_KEYS: tuple[tuple[str, tuple[str, ...]], ...] = (
131
- # REAL but HOOK-SCOPE ONLY (verified 2026-08-05): documented for Cursor hook
132
- # scripts; empty in the agent's own shell env.
133
- ("cursor", ("CURSOR_TRANSCRIPT_PATH",)),
134
- # UNVERIFIED — never researched. The 2026-08-05 audit covered the session
135
- # table only, so do not infer these are real *or* fake from that work
136
- # (CLAUDE_/CODEX_TRANSCRIPT_PATH were removed because those two *were*
137
- # checked: absent from docs and from live envs). To settle each: run
138
- # `env | grep _TRANSCRIPT_PATH` inside a hook and inside a shell-tool call.
139
- ("gemini", ("GEMINI_TRANSCRIPT_PATH",)),
140
- ("droid", ("FACTORY_TRANSCRIPT_PATH", "DROID_TRANSCRIPT_PATH")),
141
- ("qoder", ("QODER_TRANSCRIPT_PATH",)),
142
- ("codebuddy", ("CODEBUDDY_TRANSCRIPT_PATH",)),
143
62
  )
144
63
  _ENV_PLATFORM_ALIASES = {
145
64
  "claude-code": "claude",
146
- "factory": "droid",
147
- "factory-ai": "droid",
148
- "github-copilot": "copilot",
149
- }
150
- # ZCode intentionally reuses Claude's session env var name. Hooks know the host
151
- # is ZCode, while later shell commands see only the shared env name and resolve
152
- # it through the claude entry. Canonicalize both paths to one runtime filename.
153
- _CONTEXT_KEY_PLATFORM_ALIASES = {
154
- "zcode": "claude",
155
- # Factory Droid's config directory is `.factory/`, so a hook that names its
156
- # platform after the directory it was installed in reports "factory". Its
157
- # sibling hooks report "droid". One runtime filename either way.
158
- "factory": "droid",
159
65
  }
160
66
 
161
67
 
@@ -238,6 +144,10 @@ def _runtime_sessions_dir(repo_root: Path) -> Path:
238
144
  return repo_root / DIR_WORKFLOW / DIR_RUNTIME / DIR_SESSIONS
239
145
 
240
146
 
147
+ def _runtime_engaged_dir(repo_root: Path) -> Path:
148
+ return repo_root / DIR_WORKFLOW / DIR_RUNTIME / DIR_ENGAGED
149
+
150
+
241
151
  def _sanitize_key(raw: str) -> str:
242
152
  safe = re.sub(r"[^A-Za-z0-9._-]+", "_", raw.strip())
243
153
  safe = safe.strip("._-")
@@ -284,13 +194,10 @@ def _detect_platform(platform_input: dict[str, Any] | None, platform: str | None
284
194
  value = _string_value(platform_input.get(key))
285
195
  if value:
286
196
  return _sanitize_key(value) or "session"
287
- if _string_value(platform_input.get("cursor_version")):
288
- return "cursor"
289
197
  return "session"
290
198
 
291
199
 
292
200
  def _context_key(platform_name: str, kind: str, value: str) -> str:
293
- platform_name = _CONTEXT_KEY_PLATFORM_ALIASES.get(platform_name, platform_name)
294
201
  if kind == "transcript":
295
202
  return f"{platform_name}_transcript_{_hash_value(value)}"
296
203
  safe_value = _sanitize_key(value)
@@ -337,18 +244,6 @@ def _lookup_env_context_key(platform_name: str | None) -> str | None:
337
244
  if value:
338
245
  return _context_key(name, "session", value)
339
246
 
340
- for name, keys in _iter_env_keys(_ENV_CONVERSATION_KEYS, env_platform_name):
341
- for key in keys:
342
- value = _string_value(os.environ.get(key))
343
- if value:
344
- return _context_key(name, "conversation", value)
345
-
346
- for name, keys in _iter_env_keys(_ENV_TRANSCRIPT_KEYS, env_platform_name):
347
- for key in keys:
348
- value = _string_value(os.environ.get(key))
349
- if value:
350
- return _context_key(name, "transcript", value)
351
-
352
247
  return None
353
248
 
354
249
 
@@ -364,10 +259,7 @@ def _find_repo_root_from_cwd() -> Path | None:
364
259
 
365
260
  def _shell_ticket_dirs(repo_root: Path) -> tuple[Path, ...]:
366
261
  runtime_dir = repo_root / DIR_WORKFLOW / DIR_RUNTIME
367
- return (
368
- runtime_dir / DIR_SHELL_TICKETS,
369
- runtime_dir / DIR_LEGACY_CURSOR_SHELL_TICKETS,
370
- )
262
+ return (runtime_dir / DIR_SHELL_TICKETS,)
371
263
 
372
264
 
373
265
  def _remove_file(path: Path) -> bool:
@@ -451,7 +343,8 @@ def _matching_ticket_context_key(
451
343
  """Accept a ticket on its merits, never on which platform wrote it.
452
344
 
453
345
  The `platform` field a ticket carries is debugging metadata; gating on it
454
- was what kept this bridge invisible to every platform but Cursor.
346
+ would make this bridge invisible to every platform but the one that wrote
347
+ the ticket.
455
348
  """
456
349
  ticket = _read_json(ticket_path)
457
350
  if ticket is None:
@@ -507,28 +400,6 @@ def resolve_context_key(
507
400
  scripts and subprocesses. It does not store the task itself.
508
401
  """
509
402
  if allow_environment_context:
510
- # The optional dsh-trellis plugin contributes this managed DSH_* value
511
- # per shell execution from the current DSH session header. DSH scrubs
512
- # ambient DSH_* values before rebuilding that namespace, so this value
513
- # cannot be inherited from an outer Claude/Codex Trellis session. It
514
- # must outrank the generic override below, which ordinary child
515
- # processes inherit indiscriminately.
516
- dsh_override = _string_value(os.environ.get("DSH_TRELLIS_CONTEXT_ID"))
517
- if dsh_override:
518
- return _sanitize_key(dsh_override) or _hash_value(dsh_override)
519
-
520
- # A real DSH managed shell rebuilds the complete DSH_* namespace: the
521
- # paired sentinel and session id cannot be inherited from an outer
522
- # Trellis host. Prefer that canonical env-table identity over
523
- # a generic override that ordinary process inheritance may carry in.
524
- if (
525
- _string_value(os.environ.get("DSH_SHELL")) == "1"
526
- and _string_value(os.environ.get("DSH_SESSION_ID"))
527
- ):
528
- dsh_context_key = _lookup_env_context_key("dsh")
529
- if dsh_context_key:
530
- return dsh_context_key
531
-
532
403
  override = _string_value(os.environ.get("TRELLIS_CONTEXT_ID"))
533
404
  if override:
534
405
  return _sanitize_key(override) or _hash_value(override)
@@ -615,6 +486,10 @@ def _context_path(repo_root: Path, context_key: str) -> Path:
615
486
  return _runtime_sessions_dir(repo_root) / f"{context_key}.json"
616
487
 
617
488
 
489
+ def _engaged_path(repo_root: Path, context_key: str) -> Path:
490
+ return _runtime_engaged_dir(repo_root) / f"{context_key}.json"
491
+
492
+
618
493
  def resolve_active_task(
619
494
  repo_root: Path,
620
495
  platform_input: dict[str, Any] | None = None,
@@ -628,8 +503,8 @@ def resolve_active_task(
628
503
  A stale session task is returned as stale. Missing context identity or a
629
504
  missing/empty session context falls back to single-session inference: if
630
505
  exactly one session file exists in the runtime, return its task with
631
- source_type="session-fallback" — covers pull-based platform sub-agents
632
- (copilot, gemini, qoder) that don't inherit the parent's session id. ≥2
506
+ source_type="session-fallback" — covers pull-based sub-agents that don't
507
+ inherit the parent's session id. ≥2
633
508
  files or 0 files yield ActiveTask(None) — refuses to guess across windows.
634
509
  """
635
510
  context_key = resolve_context_key(
@@ -703,6 +578,59 @@ def _context_metadata(
703
578
  return metadata
704
579
 
705
580
 
581
+ def mark_session_engaged(
582
+ repo_root: Path,
583
+ platform_input: dict[str, Any] | None = None,
584
+ platform: str | None = None,
585
+ ) -> str | None:
586
+ """Opt this session into the Trellis workflow.
587
+
588
+ Context injection is opt-in: `session-start.py` and `inject-workflow-state.py`
589
+ emit nothing until a session is engaged. The user engages by invoking one of
590
+ the three lifecycle entry points (`trellis-start` / `trellis-continue` /
591
+ `trellis-finish-work`), each of which runs `task.py engage` as its first
592
+ step.
593
+
594
+ Returns the context key on success, or None when no session identity is
595
+ available. Callers must surface that as an error — reporting success without
596
+ a written flag would leave the hooks permanently silent and the user with no
597
+ way to tell why.
598
+ """
599
+ context_key = resolve_context_key(platform_input, platform)
600
+ if not context_key:
601
+ return None
602
+
603
+ engaged_path = _engaged_path(repo_root, context_key)
604
+ record = _read_json(engaged_path) or {}
605
+ record.update(_context_metadata(platform_input, platform, context_key))
606
+ record["engaged"] = True
607
+ # Re-running an entry point in the same session must not reset when the
608
+ # session first opted in; `last_seen_at` above already carries recency.
609
+ record.setdefault("engaged_at", _utc_now())
610
+ if not _write_json(engaged_path, record):
611
+ return None
612
+ return context_key
613
+
614
+
615
+ def is_session_engaged(
616
+ repo_root: Path,
617
+ platform_input: dict[str, Any] | None = None,
618
+ platform: str | None = None,
619
+ ) -> bool:
620
+ """Report whether THIS session opted into the Trellis workflow.
621
+
622
+ Deliberately has no single-session fallback, unlike `resolve_active_task`:
623
+ inheriting engagement from a file another window left behind is exactly the
624
+ failure the opt-in model exists to prevent. A new session that never ran an
625
+ entry point must stay silent even while a task is mid-flight.
626
+ """
627
+ context_key = resolve_context_key(platform_input, platform)
628
+ if not context_key:
629
+ return False
630
+ record = _read_json(_engaged_path(repo_root, context_key)) or {}
631
+ return record.get("engaged") is True
632
+
633
+
706
634
  def set_active_task(
707
635
  task_path: str,
708
636
  repo_root: Path,
@@ -69,7 +69,7 @@ def main() -> None:
69
69
  )
70
70
  parser.add_argument(
71
71
  "--platform",
72
- help="Platform name for --mode phase, e.g. cursor, claude-code. Filters platform-tagged blocks.",
72
+ help="Platform name for --mode phase, e.g. claude, codex. Filters platform-tagged blocks.",
73
73
  )
74
74
  parser.add_argument(
75
75
  "--file",
@@ -599,7 +599,7 @@ def get_context_text(repo_root: Path | None = None) -> str:
599
599
  lines.append("## DEVELOPER")
600
600
  if not developer:
601
601
  lines.append(
602
- f"ERROR: Not initialized. Run: python3 ./{DIR_WORKFLOW}/{DIR_SCRIPTS}/init_developer.py <name>"
602
+ f"ERROR: Not initialized. Run: python ./{DIR_WORKFLOW}/{DIR_SCRIPTS}/init_developer.py <name>"
603
603
  )
604
604
  return "\n".join(lines)
605
605
 
@@ -818,7 +818,7 @@ def get_context_text_record(repo_root: Path | None = None) -> str:
818
818
  developer = get_developer(repo_root)
819
819
  if not developer:
820
820
  lines.append(
821
- f"ERROR: Not initialized. Run: python3 ./{DIR_WORKFLOW}/{DIR_SCRIPTS}/init_developer.py <name>"
821
+ f"ERROR: Not initialized. Run: python ./{DIR_WORKFLOW}/{DIR_SCRIPTS}/init_developer.py <name>"
822
822
  )
823
823
  return "\n".join(lines)
824
824
 
@@ -295,7 +295,7 @@ def assemble_payload(
295
295
  _all_index_lines = [_index_line(m) for m in matches]
296
296
  _summary_upper = (
297
297
  f"- (+{len(matches)} more governing specs over budget — run "
298
- f"python3 ./.trellis/scripts/get_context.py --mode spec "
298
+ f"python ./.trellis/scripts/get_context.py --mode spec "
299
299
  f"--file {edited_rel} to list them)"
300
300
  )
301
301
  _summary_reserve = len("\n\n" + _index_block([_summary_upper]))
@@ -409,7 +409,7 @@ def assemble_payload(
409
409
  noun = "spec" if dropped == 1 else "specs"
410
410
  summary = (
411
411
  f"- (+{dropped} more governing {noun} over budget — run "
412
- f"python3 ./.trellis/scripts/get_context.py --mode spec "
412
+ f"python ./.trellis/scripts/get_context.py --mode spec "
413
413
  f"--file {edited_rel} to list them)"
414
414
  )
415
415
  if fits(_index_block([*chosen, summary])):
@@ -119,32 +119,14 @@ def _repo_relative_path(path: Path, repo_root: Path) -> str:
119
119
  # Keep in sync with src/types/ai-tools.ts AI_TOOLS entries — these are the
120
120
  # platforms listed in workflow.md's "agent-capable" Skill Routing block.
121
121
  # Codex is checked separately because explicit inline mode does not consume
122
- # JSONL. Kilo / Antigravity / Devin are NOT in this list either: they load
123
- # specs through skills instead of JSONL.
124
- _SUBAGENT_CONFIG_DIRS: tuple[str, ...] = (
125
- ".claude",
126
- ".cursor",
127
- ".kiro",
128
- ".gemini",
129
- ".opencode",
130
- ".qoder",
131
- ".codebuddy",
132
- ".factory", # Factory Droid
133
- ".github/copilot",
134
- ".pi", # Pi Agent
135
- ".trae", # Trae IDE
136
- ".omp", # Oh My Pi
137
- ".zcode", # ZCode
138
- ".grok", # Grok Build
139
- ".kimi-code", # Kimi Code
140
- ".dsh", # DeepSeek Harness
141
- )
122
+ # JSONL.
123
+ _SUBAGENT_CONFIG_DIRS: tuple[str, ...] = (".claude",)
142
124
  _CODEX_CONFIG_DIR = ".codex"
143
125
 
144
126
  _SEED_EXAMPLE = (
145
127
  "Fill with {\"file\": \"<path>\", \"reason\": \"<why>\"}. "
146
128
  "Put spec/research files only — no code paths. "
147
- "Run `python3 .trellis/scripts/get_context.py --mode packages` to list available specs. "
129
+ "Run `python .trellis/scripts/get_context.py --mode packages` to list available specs. "
148
130
  "Delete this line once real entries are added."
149
131
  )
150
132
 
@@ -428,8 +410,6 @@ def cmd_create(args: argparse.Namespace) -> int:
428
410
 
429
411
  # Seed implement.jsonl / check.jsonl for sub-agent-capable platforms.
430
412
  # Agent curates real entries during planning when the task needs them.
431
- # Agent-less platforms (Kilo / Antigravity / Devin) skip this — they
432
- # load specs via the trellis-before-dev skill instead of JSONL.
433
413
  seeded_jsonl = False
434
414
  if _has_subagent_platform(repo_root):
435
415
  for jsonl_name in ("implement.jsonl", "check.jsonl"):
@@ -871,7 +851,7 @@ def cmd_set_branch(args: argparse.Namespace) -> int:
871
851
 
872
852
  if not branch:
873
853
  print(colored("Error: Missing arguments", Colors.RED))
874
- print("Usage: python3 task.py set-branch <task-dir> <branch-name>")
854
+ print("Usage: python task.py set-branch <task-dir> <branch-name>")
875
855
  return 1
876
856
 
877
857
  if not target_dir:
@@ -908,8 +888,8 @@ def cmd_set_base_branch(args: argparse.Namespace) -> int:
908
888
 
909
889
  if not base_branch:
910
890
  print(colored("Error: Missing arguments", Colors.RED))
911
- print("Usage: python3 task.py set-base-branch <task-dir> <base-branch>")
912
- print("Example: python3 task.py set-base-branch <dir> develop")
891
+ print("Usage: python task.py set-base-branch <task-dir> <base-branch>")
892
+ print("Example: python task.py set-base-branch <dir> develop")
913
893
  print()
914
894
  print("This sets the target branch for PR (the branch your feature will merge into).")
915
895
  return 1
@@ -949,7 +929,7 @@ def cmd_set_scope(args: argparse.Namespace) -> int:
949
929
 
950
930
  if not scope:
951
931
  print(colored("Error: Missing arguments", Colors.RED))
952
- print("Usage: python3 task.py set-scope <task-dir> <scope>")
932
+ print("Usage: python task.py set-scope <task-dir> <scope>")
953
933
  return 1
954
934
 
955
935
  if not target_dir:
@@ -987,7 +967,7 @@ def cmd_set_meta(args: argparse.Namespace) -> int:
987
967
 
988
968
  if not key:
989
969
  print(colored("Error: Missing arguments", Colors.RED))
990
- print("Usage: python3 task.py set-meta <task-dir> <key> <value>")
970
+ print("Usage: python task.py set-meta <task-dir> <key> <value>")
991
971
  return 1
992
972
 
993
973
  if not target_dir:
@@ -8,9 +8,9 @@ platform-specific blocks.
8
8
 
9
9
  Platform marker syntax in workflow.md:
10
10
 
11
- [Claude Code, Cursor, ...]
11
+ [Claude Code, ...]
12
12
  agent-capable content
13
- [/Claude Code, Cursor, ...]
13
+ [/Claude Code, ...]
14
14
 
15
15
  Provides:
16
16
  get_phase_index - Extract the Phase Index section (no --step)
@@ -133,7 +133,7 @@ def get_step(step_id: str) -> str:
133
133
 
134
134
 
135
135
  def _platform_matches(platform: str, block_names: list[str]) -> bool:
136
- """Case-insensitive fuzzy match: accept 'cursor', 'Cursor', 'claude-code', 'Claude Code'."""
136
+ """Case-insensitive fuzzy match: accept 'codex', 'Codex', 'claude-code', 'Claude Code'."""
137
137
  needle = platform.lower().replace("-", "").replace("_", "").replace(" ", "")
138
138
  for name in block_names:
139
139
  hay = name.lower().replace("-", "").replace("_", "").replace(" ", "")
@@ -155,9 +155,6 @@ _PLATFORM_MARKER_LABELS: dict[str, str] = {
155
155
  # registry id keeps a non-empty routing section, so a missing entry fails
156
156
  # there rather than silently blanking that platform's routing.
157
157
  "claude": "Claude Code",
158
- "kimi": "Kimi Code",
159
- "omp": "Oh My Pi",
160
- "dsh": "DeepSeek Harness",
161
158
  }
162
159
 
163
160
 
@@ -168,8 +165,7 @@ def resolve_effective_platform(platform: str, config: dict) -> str:
168
165
  default or ``"codex-inline"`` when explicitly configured in
169
166
  ``.trellis/config.yaml``. ``sub-agent`` remains an alias for ``auto``.
170
167
  ``filter_platform`` then surfaces blocks whose marker lists include the
171
- namespaced name (e.g. ``[codex-sub-agent, ...]`` or ``[codex-inline, Kilo,
172
- Antigravity, Devin]``).
168
+ namespaced name (e.g. ``[codex-sub-agent, ...]`` or ``[codex-inline]``).
173
169
 
174
170
  Native Codex context injection supports the ``auto`` default. Invalid
175
171
  explicit values fall back to ``inline`` safely; this renderer deliberately
@@ -3,8 +3,8 @@
3
3
  Get Session Context for AI Agent.
4
4
 
5
5
  Usage:
6
- python3 get_context.py Output context in text format
7
- python3 get_context.py --json Output context in JSON format
6
+ python get_context.py Output context in text format
7
+ python get_context.py --json Output context in JSON format
8
8
  """
9
9
 
10
10
  from __future__ import annotations
@@ -3,7 +3,7 @@
3
3
  Initialize developer for workflow.
4
4
 
5
5
  Usage:
6
- python3 init_developer.py <developer-name>
6
+ python init_developer.py <developer-name>
7
7
 
8
8
  This creates:
9
9
  - .trellis/.developer file with developer info