@pennixrv/trellis 0.7.0-beta.8 → 0.7.1-beta.0

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 (485) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/index.d.ts.map +1 -1
  3. package/dist/cli/index.js +14 -26
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/commands/ablate.js +1 -1
  6. package/dist/commands/ablate.js.map +1 -1
  7. package/dist/commands/init.d.ts.map +1 -1
  8. package/dist/commands/init.js +30 -56
  9. package/dist/commands/init.js.map +1 -1
  10. package/dist/commands/task-progress.d.ts +2 -0
  11. package/dist/commands/task-progress.d.ts.map +1 -1
  12. package/dist/commands/task-progress.js +37 -30
  13. package/dist/commands/task-progress.js.map +1 -1
  14. package/dist/commands/{channel → teamwork}/adapters/claude.d.ts +3 -3
  15. package/dist/commands/teamwork/adapters/claude.d.ts.map +1 -0
  16. package/dist/commands/{channel → teamwork}/adapters/claude.js +3 -3
  17. package/dist/commands/teamwork/adapters/claude.js.map +1 -0
  18. package/dist/commands/{channel → teamwork}/adapters/codex.d.ts +1 -15
  19. package/dist/commands/teamwork/adapters/codex.d.ts.map +1 -0
  20. package/dist/commands/{channel → teamwork}/adapters/codex.js +5 -42
  21. package/dist/commands/teamwork/adapters/codex.js.map +1 -0
  22. package/dist/commands/{channel → teamwork}/adapters/index.d.ts +6 -6
  23. package/dist/commands/teamwork/adapters/index.d.ts.map +1 -0
  24. package/dist/commands/{channel → teamwork}/adapters/index.js +16 -52
  25. package/dist/commands/teamwork/adapters/index.js.map +1 -0
  26. package/dist/commands/{channel → teamwork}/adapters/types.d.ts +2 -2
  27. package/dist/commands/teamwork/adapters/types.d.ts.map +1 -0
  28. package/dist/commands/teamwork/adapters/types.js.map +1 -0
  29. package/dist/commands/{channel → teamwork}/agent-loader.d.ts +2 -4
  30. package/dist/commands/teamwork/agent-loader.d.ts.map +1 -0
  31. package/dist/commands/{channel → teamwork}/agent-loader.js +4 -35
  32. package/dist/commands/teamwork/agent-loader.js.map +1 -0
  33. package/dist/commands/teamwork/artifact.d.ts +177 -0
  34. package/dist/commands/teamwork/artifact.d.ts.map +1 -0
  35. package/dist/commands/teamwork/artifact.js +908 -0
  36. package/dist/commands/teamwork/artifact.js.map +1 -0
  37. package/dist/commands/{channel → teamwork}/context-loader.d.ts +1 -1
  38. package/dist/commands/teamwork/context-loader.d.ts.map +1 -0
  39. package/dist/commands/{channel → teamwork}/context-loader.js +12 -12
  40. package/dist/commands/teamwork/context-loader.js.map +1 -0
  41. package/dist/commands/{channel → teamwork}/context-trust.d.ts +6 -6
  42. package/dist/commands/teamwork/context-trust.d.ts.map +1 -0
  43. package/dist/commands/{channel → teamwork}/context-trust.js +16 -16
  44. package/dist/commands/teamwork/context-trust.js.map +1 -0
  45. package/dist/commands/teamwork/context.d.ts +16 -0
  46. package/dist/commands/teamwork/context.d.ts.map +1 -0
  47. package/dist/commands/{channel → teamwork}/context.js +17 -17
  48. package/dist/commands/teamwork/context.js.map +1 -0
  49. package/dist/commands/teamwork/coordinator.d.ts +89 -0
  50. package/dist/commands/teamwork/coordinator.d.ts.map +1 -0
  51. package/dist/commands/teamwork/coordinator.js +1198 -0
  52. package/dist/commands/teamwork/coordinator.js.map +1 -0
  53. package/dist/commands/teamwork/create.d.ts +23 -0
  54. package/dist/commands/teamwork/create.d.ts.map +1 -0
  55. package/dist/commands/teamwork/create.js +39 -0
  56. package/dist/commands/teamwork/create.js.map +1 -0
  57. package/dist/commands/{channel → teamwork}/dev-parse-trace.d.ts +1 -1
  58. package/dist/commands/teamwork/dev-parse-trace.d.ts.map +1 -0
  59. package/dist/commands/{channel → teamwork}/dev-parse-trace.js +1 -1
  60. package/dist/commands/teamwork/dev-parse-trace.js.map +1 -0
  61. package/dist/commands/{channel → teamwork}/guard.d.ts +27 -46
  62. package/dist/commands/teamwork/guard.d.ts.map +1 -0
  63. package/dist/commands/{channel → teamwork}/guard.js +54 -156
  64. package/dist/commands/teamwork/guard.js.map +1 -0
  65. package/dist/commands/teamwork/index.d.ts +3 -0
  66. package/dist/commands/teamwork/index.d.ts.map +1 -0
  67. package/dist/commands/{channel → teamwork}/index.js +135 -165
  68. package/dist/commands/teamwork/index.js.map +1 -0
  69. package/dist/commands/{channel → teamwork}/interrupt.d.ts +1 -1
  70. package/dist/commands/teamwork/interrupt.d.ts.map +1 -0
  71. package/dist/commands/teamwork/interrupt.js +22 -0
  72. package/dist/commands/teamwork/interrupt.js.map +1 -0
  73. package/dist/commands/teamwork/kill.d.ts +7 -0
  74. package/dist/commands/teamwork/kill.d.ts.map +1 -0
  75. package/dist/commands/{channel → teamwork}/kill.js +21 -21
  76. package/dist/commands/teamwork/kill.js.map +1 -0
  77. package/dist/commands/teamwork/list.d.ts +17 -0
  78. package/dist/commands/teamwork/list.d.ts.map +1 -0
  79. package/dist/commands/{channel → teamwork}/list.js +18 -27
  80. package/dist/commands/teamwork/list.js.map +1 -0
  81. package/dist/commands/{channel → teamwork}/messages.d.ts +1 -1
  82. package/dist/commands/teamwork/messages.d.ts.map +1 -0
  83. package/dist/commands/{channel → teamwork}/messages.js +18 -18
  84. package/dist/commands/teamwork/messages.js.map +1 -0
  85. package/dist/commands/teamwork/profiles.d.ts +25 -0
  86. package/dist/commands/teamwork/profiles.d.ts.map +1 -0
  87. package/dist/commands/teamwork/profiles.js +125 -0
  88. package/dist/commands/teamwork/profiles.js.map +1 -0
  89. package/dist/commands/teamwork/rm.d.ts +27 -0
  90. package/dist/commands/teamwork/rm.d.ts.map +1 -0
  91. package/dist/commands/{channel → teamwork}/rm.js +21 -22
  92. package/dist/commands/teamwork/rm.js.map +1 -0
  93. package/dist/commands/teamwork/run.d.ts +29 -0
  94. package/dist/commands/{channel → teamwork}/run.d.ts.map +1 -1
  95. package/dist/commands/teamwork/run.js +129 -0
  96. package/dist/commands/teamwork/run.js.map +1 -0
  97. package/dist/commands/{channel → teamwork}/send.d.ts +1 -1
  98. package/dist/commands/teamwork/send.d.ts.map +1 -0
  99. package/dist/commands/{channel → teamwork}/send.js +7 -7
  100. package/dist/commands/teamwork/send.js.map +1 -0
  101. package/dist/commands/{channel → teamwork}/spawn.d.ts +8 -12
  102. package/dist/commands/teamwork/spawn.d.ts.map +1 -0
  103. package/dist/commands/{channel → teamwork}/spawn.js +51 -112
  104. package/dist/commands/teamwork/spawn.js.map +1 -0
  105. package/dist/commands/teamwork/store/events.d.ts +22 -0
  106. package/dist/commands/teamwork/store/events.d.ts.map +1 -0
  107. package/dist/commands/{channel → teamwork}/store/events.js +8 -8
  108. package/dist/commands/teamwork/store/events.js.map +1 -0
  109. package/dist/commands/teamwork/store/filter.d.ts +3 -0
  110. package/dist/commands/teamwork/store/filter.d.ts.map +1 -0
  111. package/dist/commands/teamwork/store/filter.js +2 -0
  112. package/dist/commands/teamwork/store/filter.js.map +1 -0
  113. package/dist/commands/{channel → teamwork}/store/lock.d.ts +1 -1
  114. package/dist/commands/teamwork/store/lock.d.ts.map +1 -0
  115. package/dist/commands/{channel → teamwork}/store/lock.js +2 -2
  116. package/dist/commands/teamwork/store/lock.js.map +1 -0
  117. package/dist/commands/{channel → teamwork}/store/paths.d.ts +18 -32
  118. package/dist/commands/teamwork/store/paths.d.ts.map +1 -0
  119. package/dist/commands/{channel → teamwork}/store/paths.js +42 -109
  120. package/dist/commands/teamwork/store/paths.js.map +1 -0
  121. package/dist/commands/teamwork/store/schema.d.ts +18 -0
  122. package/dist/commands/teamwork/store/schema.d.ts.map +1 -0
  123. package/dist/commands/teamwork/store/schema.js +23 -0
  124. package/dist/commands/teamwork/store/schema.js.map +1 -0
  125. package/dist/commands/{channel → teamwork}/store/thread-state.d.ts +3 -3
  126. package/dist/commands/teamwork/store/thread-state.d.ts.map +1 -0
  127. package/dist/commands/{channel → teamwork}/store/thread-state.js +1 -1
  128. package/dist/commands/teamwork/store/thread-state.js.map +1 -0
  129. package/dist/commands/teamwork/store/watch.d.ts +19 -0
  130. package/dist/commands/teamwork/store/watch.d.ts.map +1 -0
  131. package/dist/commands/{channel → teamwork}/store/watch.js +8 -8
  132. package/dist/commands/teamwork/store/watch.js.map +1 -0
  133. package/dist/commands/teamwork/supervisor/idle.d.ts.map +1 -0
  134. package/dist/commands/teamwork/supervisor/idle.js.map +1 -0
  135. package/dist/commands/{channel → teamwork}/supervisor/inbox.d.ts +2 -2
  136. package/dist/commands/teamwork/supervisor/inbox.d.ts.map +1 -0
  137. package/dist/commands/{channel → teamwork}/supervisor/inbox.js +14 -14
  138. package/dist/commands/teamwork/supervisor/inbox.js.map +1 -0
  139. package/dist/commands/{channel → teamwork}/supervisor/shutdown.d.ts +3 -6
  140. package/dist/commands/teamwork/supervisor/shutdown.d.ts.map +1 -0
  141. package/dist/commands/{channel → teamwork}/supervisor/shutdown.js +7 -17
  142. package/dist/commands/teamwork/supervisor/shutdown.js.map +1 -0
  143. package/dist/commands/{channel → teamwork}/supervisor/stdout.d.ts +3 -5
  144. package/dist/commands/teamwork/supervisor/stdout.d.ts.map +1 -0
  145. package/dist/commands/{channel → teamwork}/supervisor/stdout.js +12 -23
  146. package/dist/commands/teamwork/supervisor/stdout.js.map +1 -0
  147. package/dist/commands/teamwork/supervisor/turns.d.ts.map +1 -0
  148. package/dist/commands/teamwork/supervisor/turns.js.map +1 -0
  149. package/dist/commands/{channel → teamwork}/supervisor/warning.d.ts +5 -5
  150. package/dist/commands/teamwork/supervisor/warning.d.ts.map +1 -0
  151. package/dist/commands/{channel → teamwork}/supervisor/warning.js +6 -6
  152. package/dist/commands/teamwork/supervisor/warning.js.map +1 -0
  153. package/dist/commands/{channel → teamwork}/supervisor.d.ts +21 -21
  154. package/dist/commands/teamwork/supervisor.d.ts.map +1 -0
  155. package/dist/commands/{channel → teamwork}/supervisor.js +53 -63
  156. package/dist/commands/teamwork/supervisor.js.map +1 -0
  157. package/dist/commands/teamwork/teammate-adapters.d.ts +31 -0
  158. package/dist/commands/teamwork/teammate-adapters.d.ts.map +1 -0
  159. package/dist/commands/teamwork/teammate-adapters.js +96 -0
  160. package/dist/commands/teamwork/teammate-adapters.js.map +1 -0
  161. package/dist/commands/teamwork/teammate-config.d.ts +19 -0
  162. package/dist/commands/teamwork/teammate-config.d.ts.map +1 -0
  163. package/dist/commands/teamwork/teammate-config.js +97 -0
  164. package/dist/commands/teamwork/teammate-config.js.map +1 -0
  165. package/dist/commands/teamwork/teammate-launch.d.ts +58 -0
  166. package/dist/commands/teamwork/teammate-launch.d.ts.map +1 -0
  167. package/dist/commands/teamwork/teammate-launch.js +125 -0
  168. package/dist/commands/teamwork/teammate-launch.js.map +1 -0
  169. package/dist/commands/teamwork/text-body.d.ts +13 -0
  170. package/dist/commands/teamwork/text-body.d.ts.map +1 -0
  171. package/dist/commands/{channel → teamwork}/text-body.js +3 -3
  172. package/dist/commands/teamwork/text-body.js.map +1 -0
  173. package/dist/commands/teamwork/threads.d.ts +35 -0
  174. package/dist/commands/teamwork/threads.d.ts.map +1 -0
  175. package/dist/commands/{channel → teamwork}/threads.js +19 -19
  176. package/dist/commands/teamwork/threads.js.map +1 -0
  177. package/dist/commands/teamwork/title.d.ts +12 -0
  178. package/dist/commands/teamwork/title.d.ts.map +1 -0
  179. package/dist/commands/teamwork/title.js +24 -0
  180. package/dist/commands/teamwork/title.js.map +1 -0
  181. package/dist/commands/{channel → teamwork}/wait.d.ts +1 -5
  182. package/dist/commands/teamwork/wait.d.ts.map +1 -0
  183. package/dist/commands/{channel → teamwork}/wait.js +8 -21
  184. package/dist/commands/teamwork/wait.js.map +1 -0
  185. package/dist/commands/update.d.ts.map +1 -1
  186. package/dist/commands/update.js +48 -89
  187. package/dist/commands/update.js.map +1 -1
  188. package/dist/commands/workflow.d.ts +1 -1
  189. package/dist/commands/workflow.d.ts.map +1 -1
  190. package/dist/commands/workflow.js +9 -10
  191. package/dist/commands/workflow.js.map +1 -1
  192. package/dist/configurators/claude.d.ts +0 -17
  193. package/dist/configurators/claude.d.ts.map +1 -1
  194. package/dist/configurators/claude.js +2 -61
  195. package/dist/configurators/claude.js.map +1 -1
  196. package/dist/configurators/shared.d.ts.map +1 -1
  197. package/dist/configurators/shared.js +2 -2
  198. package/dist/configurators/shared.js.map +1 -1
  199. package/dist/configurators/snow.js +1 -1
  200. package/dist/configurators/snow.js.map +1 -1
  201. package/dist/configurators/workflow.d.ts +1 -1
  202. package/dist/configurators/workflow.js +5 -5
  203. package/dist/configurators/workflow.js.map +1 -1
  204. package/dist/constants/paths.d.ts +1 -1
  205. package/dist/constants/paths.d.ts.map +1 -1
  206. package/dist/constants/paths.js +1 -1
  207. package/dist/constants/paths.js.map +1 -1
  208. package/dist/migrations/manifests/0.7.0-beta.10.json +9 -0
  209. package/dist/migrations/manifests/0.7.0-beta.11.json +9 -0
  210. package/dist/migrations/manifests/0.7.0-beta.12.json +9 -0
  211. package/dist/migrations/manifests/0.7.0-beta.13.json +9 -0
  212. package/dist/migrations/manifests/0.7.0-beta.14.json +9 -0
  213. package/dist/migrations/manifests/0.7.0-beta.15.json +9 -0
  214. package/dist/migrations/manifests/0.7.0-beta.16.json +9 -0
  215. package/dist/migrations/manifests/0.7.0-beta.17.json +9 -0
  216. package/dist/migrations/manifests/0.7.0-beta.18.json +9 -0
  217. package/dist/migrations/manifests/0.7.0-beta.19.json +9 -0
  218. package/dist/migrations/manifests/0.7.0-beta.20.json +9 -0
  219. package/dist/migrations/manifests/0.7.0-beta.21.json +17 -0
  220. package/dist/migrations/manifests/0.7.0-beta.22.json +9 -0
  221. package/dist/migrations/manifests/0.7.0-beta.23.json +9 -0
  222. package/dist/migrations/manifests/0.7.0-beta.24.json +9 -0
  223. package/dist/migrations/manifests/0.7.0-beta.25.json +9 -0
  224. package/dist/migrations/manifests/0.7.0-beta.26.json +9 -0
  225. package/dist/migrations/manifests/0.7.0-beta.27.json +9 -0
  226. package/dist/migrations/manifests/0.7.0-beta.28.json +9 -0
  227. package/dist/migrations/manifests/0.7.0-beta.29.json +9 -0
  228. package/dist/migrations/manifests/0.7.0-beta.30.json +9 -0
  229. package/dist/migrations/manifests/0.7.0-beta.31.json +9 -0
  230. package/dist/migrations/manifests/0.7.0-beta.32.json +9 -0
  231. package/dist/migrations/manifests/0.7.0-beta.33.json +9 -0
  232. package/dist/migrations/manifests/0.7.0-beta.34.json +9 -0
  233. package/dist/migrations/manifests/0.7.0-beta.35.json +9 -0
  234. package/dist/migrations/manifests/0.7.0-beta.36.json +9 -0
  235. package/dist/migrations/manifests/0.7.0-beta.37.json +9 -0
  236. package/dist/migrations/manifests/0.7.0-beta.38.json +9 -0
  237. package/dist/migrations/manifests/0.7.0-beta.39.json +9 -0
  238. package/dist/migrations/manifests/0.7.0-beta.40.json +9 -0
  239. package/dist/migrations/manifests/0.7.0-beta.41.json +9 -0
  240. package/dist/migrations/manifests/0.7.0-beta.42.json +9 -0
  241. package/dist/migrations/manifests/0.7.0-beta.43.json +9 -0
  242. package/dist/migrations/manifests/0.7.0-beta.44.json +9 -0
  243. package/dist/migrations/manifests/0.7.0-beta.45.json +9 -0
  244. package/dist/migrations/manifests/0.7.0-beta.46.json +9 -0
  245. package/dist/migrations/manifests/0.7.0-beta.47.json +9 -0
  246. package/dist/migrations/manifests/0.7.0-beta.48.json +9 -0
  247. package/dist/migrations/manifests/0.7.0-beta.49.json +13 -0
  248. package/dist/migrations/manifests/0.7.0-beta.50.json +12 -0
  249. package/dist/migrations/manifests/0.7.0-beta.51.json +9 -0
  250. package/dist/migrations/manifests/0.7.0-beta.52.json +9 -0
  251. package/dist/migrations/manifests/0.7.0-beta.53.json +27 -0
  252. package/dist/migrations/manifests/0.7.0-beta.54.json +8 -0
  253. package/dist/migrations/manifests/0.7.0-beta.9.json +9 -0
  254. package/dist/migrations/manifests/0.7.1-beta.0.json +9 -0
  255. package/dist/migrations/manifests/0.7.1.json +9 -0
  256. package/dist/templates/claude/hooks/statusline.py +0 -7
  257. package/dist/templates/codex/hooks/session-start.py +31 -38
  258. package/dist/templates/common/bundled-skills/trellis-decision-space-construction-and-merging/SKILL.md +10 -0
  259. package/dist/templates/common/bundled-skills/trellis-decision-space-construction-and-merging/workflow.md +40 -0
  260. package/dist/templates/common/bundled-skills/trellis-delivery-review-and-closeout/SKILL.md +10 -0
  261. package/dist/templates/common/bundled-skills/trellis-delivery-review-and-closeout/workflow.md +55 -0
  262. package/dist/templates/common/bundled-skills/trellis-goal-exploration-and-requirements/SKILL.md +10 -0
  263. package/dist/templates/common/bundled-skills/trellis-goal-exploration-and-requirements/workflow.md +33 -0
  264. package/dist/templates/common/bundled-skills/trellis-meta/SKILL.md +25 -25
  265. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-agents.md +1 -1
  266. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +13 -19
  267. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-spec-structure.md +1 -1
  268. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-task-lifecycle.md +27 -75
  269. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-workflow.md +17 -56
  270. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/overview.md +1 -1
  271. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/bundled-skills.md +14 -11
  272. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/generated-files.md +0 -33
  273. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/multi-agent-teamwork.md +32 -0
  274. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/spec-system.md +1 -1
  275. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/task-system.md +25 -111
  276. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workflow.md +19 -60
  277. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/skills-and-commands.md +1 -1
  278. package/dist/templates/common/bundled-skills/trellis-session-insight/SKILL.md +1 -1
  279. package/dist/templates/common/bundled-skills/trellis-session-insight/references/cli-quick-reference.md +1 -1
  280. package/dist/templates/common/bundled-skills/trellis-solution-design-and-convergence/SKILL.md +10 -0
  281. package/dist/templates/common/bundled-skills/trellis-solution-design-and-convergence/workflow.md +36 -0
  282. package/dist/templates/common/bundled-skills/trellis-task-implementation/SKILL.md +10 -0
  283. package/dist/templates/common/bundled-skills/trellis-task-implementation/workflow.md +29 -0
  284. package/dist/templates/common/bundled-skills/trellis-teamwork/SKILL.md +73 -0
  285. package/dist/templates/common/bundled-skills/trellis-teamwork/references/coordination-modes.md +29 -0
  286. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-configuration-matrix.md +31 -0
  287. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-processes.md +37 -0
  288. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teamwork-plan-construction.md +78 -0
  289. package/dist/templates/common/commands/continue.md +9 -49
  290. package/dist/templates/common/commands/finish-work.md +10 -58
  291. package/dist/templates/common/commands/start.md +19 -49
  292. package/dist/templates/common/skills/brainstorm.md +11 -191
  293. package/dist/templates/copilot/hooks/session-start.py +30 -26
  294. package/dist/templates/copilot/prompts/brainstorm.prompt.md +7 -150
  295. package/dist/templates/copilot/prompts/finish-work.prompt.md +11 -88
  296. package/dist/templates/copilot/prompts/record-session.prompt.md +4 -12
  297. package/dist/templates/copilot/prompts/start.prompt.md +12 -10
  298. package/dist/templates/dsh/DSH.md +2 -2
  299. package/dist/templates/kiro/agents/trellis.json +2 -2
  300. package/dist/templates/markdown/agents.md +14 -3
  301. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +9 -8
  302. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +1 -1
  303. package/dist/templates/markdown/workspace-index.md +0 -1
  304. package/dist/templates/omp/extensions/trellis/index.ts.txt +28 -17
  305. package/dist/templates/opencode/lib/session-utils.js +20 -25
  306. package/dist/templates/opencode/lib/trellis-context.js +4 -76
  307. package/dist/templates/opencode/plugins/inject-subagent-context.js +5 -4
  308. package/dist/templates/opencode/plugins/inject-workflow-state.js +14 -17
  309. package/dist/templates/shared-hooks/inject-shell-session-context.py +3 -3
  310. package/dist/templates/shared-hooks/inject-subagent-context.py +445 -67
  311. package/dist/templates/shared-hooks/inject-workflow-state.py +44 -36
  312. package/dist/templates/shared-hooks/session-start.py +21 -33
  313. package/dist/templates/trellis/agents/delegated-worktree-primary-agent.md +18 -0
  314. package/dist/templates/trellis/agents/teammate-profiles.json +8 -0
  315. package/dist/templates/trellis/agents/teammate.md +63 -0
  316. package/dist/templates/trellis/config.yaml +29 -38
  317. package/dist/templates/trellis/gitignore.txt +1 -0
  318. package/dist/templates/trellis/index.d.ts +8 -12
  319. package/dist/templates/trellis/index.d.ts.map +1 -1
  320. package/dist/templates/trellis/index.js +14 -25
  321. package/dist/templates/trellis/index.js.map +1 -1
  322. package/dist/templates/trellis/scripts/add_session.py +1 -1
  323. package/dist/templates/trellis/scripts/common/__init__.py +0 -1
  324. package/dist/templates/trellis/scripts/common/active_task.py +136 -100
  325. package/dist/templates/trellis/scripts/common/config.py +7 -9
  326. package/dist/templates/trellis/scripts/common/git_context.py +1 -1
  327. package/dist/templates/trellis/scripts/common/io.py +19 -0
  328. package/dist/templates/trellis/scripts/common/paths.py +0 -1
  329. package/dist/templates/trellis/scripts/common/safe_commit.py +11 -90
  330. package/dist/templates/trellis/scripts/common/session_context.py +1 -8
  331. package/dist/templates/trellis/scripts/common/spec_match.py +1 -1
  332. package/dist/templates/trellis/scripts/common/task_context.py +152 -59
  333. package/dist/templates/trellis/scripts/common/task_continuity.py +598 -0
  334. package/dist/templates/trellis/scripts/common/task_store.py +70 -548
  335. package/dist/templates/trellis/scripts/common/task_utils.py +4 -98
  336. package/dist/templates/trellis/scripts/common/task_workflow.py +1096 -0
  337. package/dist/templates/trellis/scripts/common/tasks.py +5 -8
  338. package/dist/templates/trellis/scripts/common/workflow_phase.py +8 -7
  339. package/dist/templates/trellis/scripts/hooks/linear_sync.py +3 -3
  340. package/dist/templates/trellis/scripts/task.py +119 -377
  341. package/dist/templates/trellis/workflow.md +111 -699
  342. package/dist/utils/agent-refs.d.ts +5 -5
  343. package/dist/utils/agent-refs.js +6 -6
  344. package/dist/utils/file-writer.d.ts +3 -2
  345. package/dist/utils/file-writer.d.ts.map +1 -1
  346. package/dist/utils/file-writer.js +3 -2
  347. package/dist/utils/file-writer.js.map +1 -1
  348. package/dist/utils/managed-paths.d.ts +0 -7
  349. package/dist/utils/managed-paths.d.ts.map +1 -1
  350. package/dist/utils/managed-paths.js +0 -40
  351. package/dist/utils/managed-paths.js.map +1 -1
  352. package/dist/utils/manifest-prune.d.ts.map +1 -1
  353. package/dist/utils/manifest-prune.js +2 -11
  354. package/dist/utils/manifest-prune.js.map +1 -1
  355. package/dist/utils/uninstall-scrubbers.d.ts.map +1 -1
  356. package/dist/utils/uninstall-scrubbers.js +3 -3
  357. package/dist/utils/uninstall-scrubbers.js.map +1 -1
  358. package/dist/utils/workflow-resolver.d.ts +10 -16
  359. package/dist/utils/workflow-resolver.d.ts.map +1 -1
  360. package/dist/utils/workflow-resolver.js +25 -36
  361. package/dist/utils/workflow-resolver.js.map +1 -1
  362. package/package.json +2 -2
  363. package/dist/commands/channel/adapters/claude.d.ts.map +0 -1
  364. package/dist/commands/channel/adapters/claude.js.map +0 -1
  365. package/dist/commands/channel/adapters/codex.d.ts.map +0 -1
  366. package/dist/commands/channel/adapters/codex.js.map +0 -1
  367. package/dist/commands/channel/adapters/index.d.ts.map +0 -1
  368. package/dist/commands/channel/adapters/index.js.map +0 -1
  369. package/dist/commands/channel/adapters/types.d.ts.map +0 -1
  370. package/dist/commands/channel/adapters/types.js.map +0 -1
  371. package/dist/commands/channel/agent-loader.d.ts.map +0 -1
  372. package/dist/commands/channel/agent-loader.js.map +0 -1
  373. package/dist/commands/channel/context-loader.d.ts.map +0 -1
  374. package/dist/commands/channel/context-loader.js.map +0 -1
  375. package/dist/commands/channel/context-trust.d.ts.map +0 -1
  376. package/dist/commands/channel/context-trust.js.map +0 -1
  377. package/dist/commands/channel/context.d.ts +0 -16
  378. package/dist/commands/channel/context.d.ts.map +0 -1
  379. package/dist/commands/channel/context.js.map +0 -1
  380. package/dist/commands/channel/create.d.ts +0 -29
  381. package/dist/commands/channel/create.d.ts.map +0 -1
  382. package/dist/commands/channel/create.js +0 -47
  383. package/dist/commands/channel/create.js.map +0 -1
  384. package/dist/commands/channel/dev-parse-trace.d.ts.map +0 -1
  385. package/dist/commands/channel/dev-parse-trace.js.map +0 -1
  386. package/dist/commands/channel/guard.d.ts.map +0 -1
  387. package/dist/commands/channel/guard.js.map +0 -1
  388. package/dist/commands/channel/index.d.ts +0 -3
  389. package/dist/commands/channel/index.d.ts.map +0 -1
  390. package/dist/commands/channel/index.js.map +0 -1
  391. package/dist/commands/channel/interrupt.d.ts.map +0 -1
  392. package/dist/commands/channel/interrupt.js +0 -22
  393. package/dist/commands/channel/interrupt.js.map +0 -1
  394. package/dist/commands/channel/kill.d.ts +0 -7
  395. package/dist/commands/channel/kill.d.ts.map +0 -1
  396. package/dist/commands/channel/kill.js.map +0 -1
  397. package/dist/commands/channel/list.d.ts +0 -18
  398. package/dist/commands/channel/list.d.ts.map +0 -1
  399. package/dist/commands/channel/list.js.map +0 -1
  400. package/dist/commands/channel/messages.d.ts.map +0 -1
  401. package/dist/commands/channel/messages.js.map +0 -1
  402. package/dist/commands/channel/rm.d.ts +0 -27
  403. package/dist/commands/channel/rm.d.ts.map +0 -1
  404. package/dist/commands/channel/rm.js.map +0 -1
  405. package/dist/commands/channel/run.d.ts +0 -32
  406. package/dist/commands/channel/run.js +0 -141
  407. package/dist/commands/channel/run.js.map +0 -1
  408. package/dist/commands/channel/send.d.ts.map +0 -1
  409. package/dist/commands/channel/send.js.map +0 -1
  410. package/dist/commands/channel/spawn.d.ts.map +0 -1
  411. package/dist/commands/channel/spawn.js.map +0 -1
  412. package/dist/commands/channel/store/events.d.ts +0 -22
  413. package/dist/commands/channel/store/events.d.ts.map +0 -1
  414. package/dist/commands/channel/store/events.js.map +0 -1
  415. package/dist/commands/channel/store/filter.d.ts +0 -3
  416. package/dist/commands/channel/store/filter.d.ts.map +0 -1
  417. package/dist/commands/channel/store/filter.js +0 -2
  418. package/dist/commands/channel/store/filter.js.map +0 -1
  419. package/dist/commands/channel/store/lock.d.ts.map +0 -1
  420. package/dist/commands/channel/store/lock.js.map +0 -1
  421. package/dist/commands/channel/store/paths.d.ts.map +0 -1
  422. package/dist/commands/channel/store/paths.js.map +0 -1
  423. package/dist/commands/channel/store/schema.d.ts +0 -27
  424. package/dist/commands/channel/store/schema.d.ts.map +0 -1
  425. package/dist/commands/channel/store/schema.js +0 -34
  426. package/dist/commands/channel/store/schema.js.map +0 -1
  427. package/dist/commands/channel/store/thread-state.d.ts.map +0 -1
  428. package/dist/commands/channel/store/thread-state.js.map +0 -1
  429. package/dist/commands/channel/store/watch.d.ts +0 -19
  430. package/dist/commands/channel/store/watch.d.ts.map +0 -1
  431. package/dist/commands/channel/store/watch.js.map +0 -1
  432. package/dist/commands/channel/supervisor/idle.d.ts.map +0 -1
  433. package/dist/commands/channel/supervisor/idle.js.map +0 -1
  434. package/dist/commands/channel/supervisor/inbox.d.ts.map +0 -1
  435. package/dist/commands/channel/supervisor/inbox.js.map +0 -1
  436. package/dist/commands/channel/supervisor/shutdown.d.ts.map +0 -1
  437. package/dist/commands/channel/supervisor/shutdown.js.map +0 -1
  438. package/dist/commands/channel/supervisor/stdout.d.ts.map +0 -1
  439. package/dist/commands/channel/supervisor/stdout.js.map +0 -1
  440. package/dist/commands/channel/supervisor/turns.d.ts.map +0 -1
  441. package/dist/commands/channel/supervisor/turns.js.map +0 -1
  442. package/dist/commands/channel/supervisor/warning.d.ts.map +0 -1
  443. package/dist/commands/channel/supervisor/warning.js.map +0 -1
  444. package/dist/commands/channel/supervisor.d.ts.map +0 -1
  445. package/dist/commands/channel/supervisor.js.map +0 -1
  446. package/dist/commands/channel/text-body.d.ts +0 -13
  447. package/dist/commands/channel/text-body.d.ts.map +0 -1
  448. package/dist/commands/channel/text-body.js.map +0 -1
  449. package/dist/commands/channel/threads.d.ts +0 -39
  450. package/dist/commands/channel/threads.d.ts.map +0 -1
  451. package/dist/commands/channel/threads.js.map +0 -1
  452. package/dist/commands/channel/title.d.ts +0 -12
  453. package/dist/commands/channel/title.d.ts.map +0 -1
  454. package/dist/commands/channel/title.js +0 -24
  455. package/dist/commands/channel/title.js.map +0 -1
  456. package/dist/commands/channel/wait.d.ts.map +0 -1
  457. package/dist/commands/channel/wait.js.map +0 -1
  458. package/dist/commands/channel/workers.d.ts +0 -9
  459. package/dist/commands/channel/workers.d.ts.map +0 -1
  460. package/dist/commands/channel/workers.js +0 -31
  461. package/dist/commands/channel/workers.js.map +0 -1
  462. package/dist/templates/common/bundled-skills/trellis-channel/SKILL.md +0 -69
  463. package/dist/templates/common/bundled-skills/trellis-channel/references/command-reference.md +0 -549
  464. package/dist/templates/common/bundled-skills/trellis-channel/references/forum.md +0 -233
  465. package/dist/templates/common/bundled-skills/trellis-channel/references/progress-debugging.md +0 -237
  466. package/dist/templates/common/bundled-skills/trellis-channel/references/subnode-work.md +0 -193
  467. package/dist/templates/common/bundled-skills/trellis-channel/references/workers.md +0 -295
  468. package/dist/templates/common/bundled-skills/trellis-channel/references/workflows.md +0 -131
  469. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/multi-agent-channel.md +0 -70
  470. package/dist/templates/common/bundled-skills/trellis-research-record/SKILL.md +0 -14
  471. package/dist/templates/copilot/prompts/parallel.prompt.md +0 -204
  472. package/dist/templates/trellis/agents/check.md +0 -70
  473. package/dist/templates/trellis/agents/implement.md +0 -71
  474. package/dist/templates/trellis/agents/subnode.env +0 -4
  475. package/dist/templates/trellis/agents/subnode.md +0 -69
  476. package/dist/templates/trellis/scripts/common/context_projection.py +0 -508
  477. package/dist/templates/trellis/scripts/common/continuation_record.py +0 -450
  478. package/dist/templates/trellis/scripts/common/ownership_record.py +0 -439
  479. package/dist/templates/trellis/scripts/subnode_artifact.py +0 -597
  480. package/dist/templates/trellis/scripts/workspace_note.py +0 -126
  481. /package/dist/commands/{channel → teamwork}/adapters/types.js +0 -0
  482. /package/dist/commands/{channel → teamwork}/supervisor/idle.d.ts +0 -0
  483. /package/dist/commands/{channel → teamwork}/supervisor/idle.js +0 -0
  484. /package/dist/commands/{channel → teamwork}/supervisor/turns.d.ts +0 -0
  485. /package/dist/commands/{channel → teamwork}/supervisor/turns.js +0 -0
@@ -1,91 +1,43 @@
1
1
  # Change Local Task Lifecycle
2
2
 
3
- Task lifecycle includes creation, start, context configuration, finish, archive, parent/child tasks, and lifecycle hooks. The default customization targets are `.trellis/tasks/`, `.trellis/config.yaml`, and `.trellis/scripts/`.
3
+ Read the installed project's workflow and task record before changing task creation or lifecycle behavior. Task records remain in .trellis/tasks/ after completion or cancellation; Trellis does not archive task records.
4
4
 
5
- ## Read These Files First
5
+ ## Read these files first
6
6
 
7
- 1. `.trellis/workflow.md`
8
- 2. `.trellis/config.yaml`
9
- 3. `.trellis/scripts/task.py`
10
- 4. `.trellis/scripts/common/task_store.py`
11
- 5. `.trellis/scripts/common/task_utils.py`
12
- 6. The current task's `.trellis/tasks/<task>/task.json`
7
+ 1. .trellis/workflow.md
8
+ 2. .trellis/config.yaml
9
+ 3. .trellis/scripts/task.py
10
+ 4. .trellis/scripts/common/task_store.py
11
+ 5. .trellis/scripts/common/task_workflow.py
12
+ 6. The current task's task.json
13
13
 
14
- ## Common Needs And Edit Points
14
+ ## Common edit points
15
15
 
16
16
  | Need | Edit point |
17
17
  | --- | --- |
18
- | Automatically sync an external system after task creation | `hooks.after_create` in `.trellis/config.yaml`. |
19
- | Automatically update status after task start | `hooks.after_start` in `.trellis/config.yaml`. |
20
- | Return an in-progress task to planning | `hooks.after_replan` in `.trellis/config.yaml`. |
21
- | Run a script after task finish | `hooks.after_finish` in `.trellis/config.yaml`. |
22
- | Clean external resources after archive | `hooks.after_archive` in `.trellis/config.yaml`. |
23
- | Change default task fields | `.trellis/scripts/common/task_store.py`. |
24
- | Change task parsing/search | `.trellis/scripts/common/task_utils.py`. |
25
- | Change active task behavior | `.trellis/scripts/common/active_task.py`. |
18
+ | Run a script after task creation or start | hooks.after_create or hooks.after_start in .trellis/config.yaml |
19
+ | Run a script after clearing the session task pointer | hooks.after_finish in .trellis/config.yaml |
20
+ | Change default task fields | .trellis/scripts/common/task_store.py |
21
+ | Change task parsing or lookup | .trellis/scripts/common/task_utils.py |
22
+ | Change lifecycle and phase contracts | .trellis/scripts/common/task_workflow.py and Core task model |
23
+ | Change active task behavior | .trellis/scripts/common/active_task.py and host integration |
26
24
 
27
- ## lifecycle hooks
25
+ Lifecycle hooks receive TASK_JSON_PATH for the affected task. Hook failures should follow the existing behavior of the native operation and must not silently corrupt task state.
28
26
 
29
- `.trellis/config.yaml` supports:
27
+ Keep project-specific fields under task.json meta unless the standard schema must change. When changing the schema, inspect every reader and writer.
30
28
 
31
- ```yaml
32
- hooks:
33
- after_create:
34
- - "python3 .trellis/scripts/hooks/my_sync.py create"
35
- after_start:
36
- - "python3 .trellis/scripts/hooks/my_sync.py start"
37
- after_finish:
38
- - "python3 .trellis/scripts/hooks/my_sync.py finish"
39
- after_archive:
40
- - "python3 .trellis/scripts/hooks/my_sync.py archive"
41
- ```
29
+ ## Active task behavior
42
30
 
43
- Hook commands receive the `TASK_JSON_PATH` environment variable, pointing to the current task's `task.json`. Hook failures should usually warn, but not block the main task operation.
31
+ The active task pointer is scoped to an AI session under .trellis/.runtime/sessions/. Use task.py current to inspect it, task.py start to attach a task to the current session, and task.py finish to clear that session pointer. Do not introduce a shared global pointer.
44
32
 
45
- ## Change Task Fields
33
+ When task.py create runs inside a session with a recognized session identity, it attaches the new task to that session. Outside such a session, the task is still created but no pointer is changed; task.py start can attach it later.
46
34
 
47
- If the user wants to add project-local fields, prefer putting them under `meta` in `task.json` to avoid breaking existing scripts' assumptions about standard fields.
35
+ ## Modification steps
48
36
 
49
- Example:
37
+ 1. Confirm the active task through task.py current --source.
38
+ 2. Inspect its task.json and phase state.
39
+ 3. Read the applicable Trellis specs.
40
+ 4. Change the native script or configuration that owns the behavior.
41
+ 5. Synchronize .trellis/workflow.md and affected host integrations.
50
42
 
51
- ```json
52
- "meta": {
53
- "linearIssue": "ENG-123",
54
- "risk": "high"
55
- }
56
- ```
57
-
58
- If standard fields really need to change, inspect every local script that reads `task.json`.
59
-
60
- ## Change Active Task
61
-
62
- Active task is session-level state stored in `.trellis/.runtime/sessions/`. Do not fall back to a global `.current-task` model. If the user wants to change active task behavior, edit:
63
-
64
- - `.trellis/scripts/common/active_task.py`
65
- - platform hooks or shell session bridges
66
- - active task descriptions in `.trellis/workflow.md`
67
-
68
- ### `task.py create` Sets the Active Pointer
69
-
70
- `cmd_create` in `.trellis/scripts/common/task_store.py` calls `set_active_task` best-effort right after writing the new task directory. The behavior:
71
-
72
- - When the calling shell carries session identity (`TRELLIS_CONTEXT_ID` env var, or any platform-specific session env that `resolve_context_key` recognizes — see `active_task.py:_ENV_SESSION_KEYS`), the per-session pointer at `.trellis/.runtime/sessions/<context_key>.json` is rewritten to point at the new task. The task's `status=planning` and `[workflow-state:planning]` fires on the very next `UserPromptSubmit`.
73
- - When session identity is unavailable (raw CLI invocation outside an AI session, or a platform that doesn't propagate identity to shell), the task directory is still created and `status=planning` is still written, but the active pointer is left untouched. The user can attach the task later with `task.py start <dir>` once they're back in an AI session.
74
-
75
- This makes `[workflow-state:planning]` the live breadcrumb during the brainstorm and JSONL curation work that follows `task.py create`. The pre-R7 behavior left the breadcrumb stuck on `no_task` until `task.py start`, so the planning block was effectively dead text.
76
-
77
- If you fork `task.py` to add a new creation path (e.g. an external import that bypasses `cmd_create`), audit whether your path also calls `set_active_task`. Without that call, your created tasks will not surface as active. The full status writer table is in `.trellis/spec/cli/backend/workflow-state-contract.md`.
78
-
79
- ## Modification Steps
80
-
81
- 1. Confirm the current task with `python3 ./.trellis/scripts/task.py current --source`.
82
- 2. Read the current task's `task.json` and confirm status and fields.
83
- 3. For configuration needs, edit `.trellis/config.yaml` first.
84
- 4. For script behavior needs, then edit `.trellis/scripts/`.
85
- 5. If the AI flow changed, synchronize `.trellis/workflow.md`.
86
-
87
- ## Do Not
88
-
89
- - Do not directly edit `.trellis/.runtime/sessions/` to "fix" business state.
90
- - Do not hard-code project-private fields into scripts; prefer `meta`.
91
- - Do not default to asking the user to fork Trellis CLI.
43
+ Do not hand-edit runtime pointers or phase state. Do not change task lifecycle outside the Trellis CLI contract.
@@ -1,65 +1,26 @@
1
1
  # Change Local Workflow
2
2
 
3
- When the user wants to change Trellis phases, next-action hints, whether to create tasks, whether to use sub-agents, or when to check/wrap up, edit `.trellis/workflow.md` first.
3
+ Read the installed project's .trellis/workflow.md before changing phase activities, route guidance, or platform entry points.
4
4
 
5
- ## Read These Files First
5
+ ## Business phases
6
6
 
7
- 1. `.trellis/workflow.md`
8
- 2. Entry files for the current platform, such as skills/commands/prompts/workflows
9
- 3. The current task's `task.json` and `prd.md`
7
+ - Goal Exploration and Requirements Confirmation Phase
8
+ - Decision Space Construction and Consolidation Phase
9
+ - Solution Design and Convergence Phase
10
+ - Task Implementation and Test Verification Phase
11
+ - Delivery Review and On-Site Closeout Phase
10
12
 
11
- ## Common Needs And Edit Points
13
+ Each phase has its own Skill and workflow diagram. Keep their activities distinct. Trellis CLI owns task lifecycle and phase state; do not encode a second route in a Skill, Hook, or command.
12
14
 
13
- | Need | Edit point |
14
- | --- | --- |
15
- | Change phase names or phase order | `Phase Index` and the corresponding Phase sections. |
16
- | Change whether to create a task when there is no task | `[workflow-state:no_task]` state block. |
17
- | Change the next step during planning | Phase 1 and `[workflow-state:planning]`. |
18
- | Change whether an agent is required during in_progress | Phase 2 and `[workflow-state:in_progress]`. |
19
- | Change wrap-up after completion | Phase 3 and `[workflow-state:completed]`. |
20
- | Change which skill a user intent triggers | `Skill Routing` table. |
21
-
22
- ## Modification Steps
23
-
24
- 1. Find the relevant section in `.trellis/workflow.md`.
25
- 2. When changing rules, keep explicit trigger conditions and next actions.
26
- 3. If adding or renaming a skill/agent, synchronize the corresponding files in platform directories.
27
- 4. Workflow-state changes only need an edit to the `[workflow-state:STATUS]` block in `.trellis/workflow.md`. The hook is parser-only — it reads whatever you put in the block. Keep the opening and closing tags' STATUS strings identical (`[workflow-state:foo]…[/workflow-state:foo]`); mismatched STATUS pairs are silently dropped.
28
- 5. Make the AI reread `.trellis/workflow.md`; do not keep using rules from the old conversation.
29
-
30
- ## Example: Relax Task Creation Requirements
31
-
32
- To change when task creation can be skipped, usually edit `[workflow-state:no_task]`:
33
-
34
- ```md
35
- [workflow-state:no_task]
36
- Task is not required when the answer is a one-reply explanation, no files are changed, and no research is needed.
37
- [/workflow-state:no_task]
38
- ```
39
-
40
- If the formal Phase 1 flow also needs to change, synchronize the Phase 1 section.
15
+ The Goal Exploration and Requirements Confirmation Phase requires explicit user confirmation of the current requirements revision before the route enters Decision Space Construction and Consolidation Phase or Solution Design and Convergence Phase. Acceptance in Solution Design and Convergence Phase does not grant implementation authorization. Task Implementation and Test Verification Phase follows the authorized contract. During Delivery Review and On-Site Closeout Phase, review the current delivery and handle task completion or cancellation. Routes may skip phases when the task record contains sufficient reason and evidence.
41
16
 
42
- ## Example: One Platform Does Not Use Sub-Agents
17
+ ## Change workflow assets
43
18
 
44
- If the user wants only one platform to avoid sub-agents, first confirm whether that platform has a separate group in the workflow. Then change Phase 2 routing for that platform group instead of deleting all `trellis-implement` / `trellis-check` instructions across platforms.
45
-
46
- ## `/trellis:continue` Route Table
47
-
48
- `/trellis:continue` resumes a task by deciding which phase step to load next. The decision combines `task.json.status` with the presence of artifacts inside the task directory. The mapping is fixed in the command itself; forks that add custom statuses must extend both the workflow.md tag block and this table.
49
-
50
- | `status` | Artifact state | Resume at |
51
- | --- | --- | --- |
52
- | `planning` | `prd.md` missing | Phase 1.1 (load `trellis-brainstorm`) |
53
- | `planning` | lightweight task with `prd.md` complete | ask for start review, then run `task.py start` |
54
- | `planning` | complex task missing `design.md` or `implement.md` | complete missing planning artifacts |
55
- | `planning` | complex task has `prd.md`, `design.md`, and `implement.md` | ask for start review, then run `task.py start` |
56
- | `in_progress` | no implementation in conversation history | Phase 2.1 (`trellis-implement`) |
57
- | `in_progress` | implementation done, no `trellis-check` run | Phase 2.2 (`trellis-check`) |
58
- | `in_progress` | check passed | Phase 3.3 (spec update) → 3.4 (commit) |
59
- | `completed` | task is still in active tree | Phase 3.5 (run `/trellis:finish-work` to archive) |
60
-
61
- When you add a custom status (e.g. `in-review`), add a `[workflow-state:in-review]` block in `.trellis/workflow.md` for the per-turn breadcrumb AND extend this route table — usually by editing the `/trellis:continue` command file (`.{platform}/commands/trellis/continue.md` or equivalent) to add a row that decides where to resume from. Without the route entry, `/trellis:continue` will fall through to a default branch and the user will not land on the step you intended.
62
-
63
- ## Notes
19
+ | Goal | Edit point |
20
+ | --- | --- |
21
+ | Change phase activities or transitions | .trellis/workflow.md and the matching phase Skill |
22
+ | Change cross-component routing | .trellis/workflow.md and pennix-workflow-routing |
23
+ | Change phase status or acceptance | Trellis CLI task workflow contract and tests |
24
+ | Change host context injection | Relevant Hook or plugin |
64
25
 
65
- `.trellis/workflow.md` is the local project workflow, not an immutable template. The user can adapt it to team habits. After editing it, platform entry files may still contain old descriptions, so inspect them too.
26
+ Keep workflow-state phase identifiers aligned with Core and the current task record. Hooks surface state; they do not authorize or accept work. After a shared change, inspect host commands and prompts for stale instructions.
@@ -7,7 +7,7 @@ This directory is for local AI working in a user project where Trellis was insta
7
7
  | User wording | Read first |
8
8
  | --- | --- |
9
9
  | "Change the Trellis flow / phases / next prompt" | `change-workflow.md` |
10
- | "Change task creation, status, archive, or hooks" | `change-task-lifecycle.md` |
10
+ | "Change task creation, lifecycle, phase state, or hooks" | `change-task-lifecycle.md` |
11
11
  | "AI did not read context / change injected content" | `change-context-loading.md` |
12
12
  | "A platform hook is not behaving as expected" | `change-hooks.md` |
13
13
  | "Change implement/check/research agent behavior" | `change-agents.md` |
@@ -1,34 +1,38 @@
1
1
  # Bundled Skills
2
2
 
3
- "Bundled skills" are multi-file built-in skills shipped inside the Trellis CLI npm package. Unlike marketplace skills (which a user installs separately into their own `.claude/skills/` or other platform skill root), bundled skills are written automatically into every supported platform's skill root by `trellis init` and kept in sync by `trellis update`. They are part of Trellis itself, not third-party content.
3
+ "Bundled skills" are Trellis CLI-owned skills shipped inside the CLI npm package. Unlike marketplace skills (which a user installs separately into their own `.claude/skills/` or other platform skill root), bundled skills are written automatically into supported platform skill roots by `trellis init` and managed by `trellis update`. They are part of Trellis itself, not third-party content.
4
4
 
5
- A bundled skill is a directory under `packages/cli/src/templates/common/bundled-skills/<skill>/` that already contains its own `SKILL.md` (with YAML frontmatter) plus optional `references/`, assets, or other supporting files. Trellis copies the whole directory tree as-is into each platform's skill root, so references stay lazy-loadable instead of being flattened into one oversized `SKILL.md`.
5
+ A bundled skill is a directory under `packages/cli/src/templates/common/bundled-skills/<skill>/` that contains its own `SKILL.md` (with YAML frontmatter) and may include `references/`, assets, or other supporting files. Trellis copies the complete directory tree into each platform's skill root, resolving supported placeholders per platform so references stay lazy-loadable instead of being flattened into one oversized `SKILL.md`.
6
6
 
7
7
  ## What Counts As Bundled (vs. Adjacent Concepts)
8
8
 
9
9
  | Source path | Type | How it ships |
10
- | --- | --- | --- |
10
+ | --------------------------------------------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
11
11
  | `templates/common/bundled-skills/<name>/` | Bundled skill (multi-file) | Whole directory copied to every platform skill root |
12
12
  | `templates/common/skills/<name>.md` | Single-file workflow skill | Wrapped with frontmatter, written as `<root>/<name>/SKILL.md` |
13
13
  | `templates/common/commands/<name>.md` | Slash command / prompt | Written to each platform's command directory (`.claude/commands/trellis/`, `.cursor/commands/trellis-*.md`, `.gemini/commands/trellis/*.toml`, etc.) |
14
14
  | `templates/<platform>/skills/` | Platform-specific skill | Written only into that platform's directory (e.g. `.codex/skills/`) |
15
15
  | User skills under `.claude/skills/<my-skill>/` etc. | Marketplace or user-authored | Not managed by Trellis at all |
16
16
 
17
- The Trellis CLI never touches anything that is not produced by one of its own template loaders. Anything a user drops into a platform skill root by hand is left alone.
17
+ Only paths emitted by Trellis template loaders are managed by Trellis. Other files in a platform skill root are outside those write paths.
18
18
 
19
19
  ## Current Bundled Skills
20
20
 
21
21
  The set is discovered at runtime by listing directories under `templates/common/bundled-skills/`:
22
22
 
23
23
  | Skill | Purpose |
24
- | --- | --- |
24
+ | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
25
+ | `trellis-goal-exploration-and-requirements` | Clarifies a task's goal, scope, success conditions, constraints, evidence, and user confirmation. |
26
+ | `trellis-decision-space-construction-and-merging` | Organizes substantive decisions, options, evidence, dependencies, and decision trees. |
27
+ | `trellis-solution-design-and-convergence` | Resolves user decisions, plan completeness, external precedents, and the implementation contract. |
28
+ | `trellis-task-implementation` | Advances the authorized implementation contract through work packages, verification, integration, and blocker handling. |
29
+ | `trellis-delivery-review-and-closeout` | Reviews the delivery candidate, unresolved items, acceptance conditions, and resource disposition. |
25
30
  | `trellis-meta` | This skill. Explains the local Trellis architecture and customization entry points to an AI working inside a user project. |
26
31
  | `trellis-session-insight` | Wraps the `trellis mem` CLI so an AI knows when and how to reach into past Claude Code / Codex / Pi Agent conversation logs. |
27
32
  | `trellis-spec-bootstrap` | Platform-neutral workflow for creating or refreshing `.trellis/spec/` from the real codebase (with optional GitNexus / ABCoder integration). |
28
- | `trellis-channel` | Capability skill teaching an AI when to reach for `trellis channel` for multi-agent collaboration, forum/thread persistent boards, and dispatcher-wait patterns. |
29
- | `trellis-research-record` | Records verified research, audit, or review findings in the active task without creating a second task ledger. |
33
+ | `trellis-teamwork` | Capability skill teaching an AI when to reach for `trellis teamwork` for multi-agent collaboration, forum/thread persistent boards, and dispatcher-wait patterns. |
30
34
 
31
- The list is discovered at runtime, so adding a new directory under `bundled-skills/` is the only step required to register a new skill (see "Adding a New Bundled Skill" below).
35
+ This inventory reflects the directories currently in the source tree. The CLI discovers them at runtime, so adding a directory under `bundled-skills/` makes it available to the shared loader (see "Adding a New Bundled Skill" below).
32
36
 
33
37
  ## Where Bundled Skills Land Per Platform
34
38
 
@@ -37,7 +41,7 @@ A platform's whole file set — commands, workflow skills, agents, hooks, bundle
37
41
  All 21 platforms receive the full bundled-skill set:
38
42
 
39
43
  | Platform | Bundled skill root |
40
- | --- | --- |
44
+ | ----------- | ---------------------------- |
41
45
  | Claude Code | `.claude/skills/<skill>/` |
42
46
  | Cursor | `.cursor/skills/<skill>/` |
43
47
  | OpenCode | `.opencode/skills/<skill>/` |
@@ -64,7 +68,7 @@ Codex, Gemini CLI, Pi and Kimi share the `.agents/skills/` root (the upstream Ag
64
68
 
65
69
  One description, two consumers:
66
70
 
67
- 1. `trellis init` → `configurePlatform(platformId, cwd)` → `writeTemplateMap(cwd, collect<Platform>Templates())`. For 18 of the 21 platforms the registry entry in `configurators/index.ts` is literally `fromTemplates(collect<Platform>Templates)`, which *is* that composition. Claude Code, Codex and ZCode spell out a `configure` of their own, each for work a `Map<path, content>` cannot express (an opt-in `--with-statusline` flag, an intentionally empty `.codex/skills/` directory, a one-shot console notice) — none of them restates the file list.
71
+ 1. `trellis init` → `configurePlatform(platformId, cwd)` → `writeTemplateMap(cwd, collect<Platform>Templates())`. For 18 of the 21 platforms the registry entry in `configurators/index.ts` is literally `fromTemplates(collect<Platform>Templates)`, which _is_ that composition. Claude Code, Codex and ZCode spell out a `configure` of their own, each for work a `Map<path, content>` cannot express (an opt-in `--with-statusline` flag, an intentionally empty `.codex/skills/` directory, a one-shot console notice) — none of them restates the file list.
68
72
  2. `trellis update` → `collectPlatformTemplates(platformId)` (in `configurators/index.ts`) → the same map, used to detect drift and to populate `.trellis/.template-hashes.json`.
69
73
 
70
74
  Because both consumers read the one description, init and update cannot disagree about which files a bundled skill produces.
@@ -115,7 +119,6 @@ The shape and dispatch wiring are already generic, so adding a skill requires on
115
119
  4. **No dispatch wiring is required.** `listDirectories("bundled-skills")` discovers the new directory automatically, so all platforms receive it on the next `trellis init` or `trellis update`.
116
120
 
117
121
  5. **Verify the distribution path** before shipping. Skipping any of these steps has historically caused features to be documented as bundled while the published npm tarball was missing the files:
118
-
119
122
  - Source files exist on the branch being tagged.
120
123
  - `pnpm --filter @pennixrv/trellis build` copies the asset into `dist/templates/common/bundled-skills/<skill>/`.
121
124
  - `npm pack --dry-run --json` includes the expected `dist/**` paths.
@@ -10,7 +10,6 @@ This page only describes files that are visible and editable inside the user pro
10
10
  .trellis/
11
11
  ├── workflow.md
12
12
  ├── config.yaml
13
- ├── .gitignore
14
13
  ├── .developer
15
14
  ├── .version
16
15
  ├── .template-hashes.json
@@ -25,7 +24,6 @@ This page only describes files that are visible and editable inside the user pro
25
24
  | --- | --- | --- |
26
25
  | `.trellis/workflow.md` | Yes | Local workflow documentation and AI routing rules. |
27
26
  | `.trellis/config.yaml` | Yes | Project configuration, hooks, packages, journal line limits, and related settings. |
28
- | `.trellis/.gitignore` | No | Generated ignore rules for local Trellis state. Track it, but do not normally edit it. |
29
27
  | `.trellis/spec/` | Yes | Project specs, intended to be updated regularly by users and AI. |
30
28
  | `.trellis/tasks/` | Yes | Task material and research artifacts, maintained by the task workflow. |
31
29
  | `.trellis/workspace/` | Yes | Session records, usually written by `add_session.py`. |
@@ -35,37 +33,6 @@ This page only describes files that are visible and editable inside the user pro
35
33
  | `.trellis/.version` | No | Trellis version record used by update/migration logic. |
36
34
  | `.trellis/.template-hashes.json` | No | Template hash record. Do not hand-write business rules here. |
37
35
 
38
- ## Git Tracking
39
-
40
- `trellis init` and `trellis update` are the single project-asset generation
41
- path. Do not add a second project initializer for Trellis files or platform
42
- integration files: use those commands to create or refresh the generated
43
- assets, then review and commit the resulting project changes normally.
44
-
45
- For a Git-tracked project, commit the durable project contract:
46
-
47
- - `.trellis/workflow.md`, `config.yaml`, `scripts/`, `spec/`, `tasks/`, and
48
- `workspace/`;
49
- - `.trellis/.version` and `.trellis/.template-hashes.json`. They are generated
50
- metadata, not hand-edited configuration; keeping them lets another clone
51
- distinguish Trellis-owned templates from local changes safely;
52
- - the Trellis-managed files in selected platform directories, plus the
53
- root-level `AGENTS.md` managed block when Trellis created or merged it.
54
-
55
- Do not commit local or ephemeral state. The generated `.trellis/.gitignore`
56
- already excludes `.developer`, `.current-task`, `.runtime/`, `.ralph-state.json`,
57
- agent runtime files, atomic-update files, backups, and Python caches. Platform
58
- session history, caches, logs, and credentials are platform-owned rather than
59
- Trellis templates; apply the platform's own ignore rules or the repository's
60
- security policy to them. If workspace journals contain data that the project
61
- policy forbids in Git, add a project-specific ignore rule rather than changing
62
- the shared Trellis template for every project.
63
-
64
- Generated does not mean disposable: `workflow.md`, specs, tasks, journals, and
65
- the template-hash receipt are ordinary project artifacts. Conversely, Trellis
66
- does not infer or broadly ignore all platform directories because doing so
67
- would hide user-owned files that it must preserve.
68
-
69
36
  ## Platform Directories
70
37
 
71
38
  Different platforms generate different directories. Common categories:
@@ -0,0 +1,32 @@
1
+ # Teamwork Runtime
2
+
3
+ `trellis teamwork` provides durable coordination sessions and teammate processes. Its session lifecycle is independent of the Trellis task lifecycle and phase route. A session may be associated with a task, but it never owns task status, phase state, or phase acceptance.
4
+
5
+ ## Local surfaces
6
+
7
+ | Surface | Purpose |
8
+ | --- | --- |
9
+ | `~/.trellis/teamwork/<project>/<session>/events.jsonl` | Durable Teamwork Session event log. |
10
+ | `.trellis/agents/teammate.md` | Generic behavior card loaded for a teammate. |
11
+ | `.trellis/agents/teammate-profiles.json` | Provider and execution profiles. |
12
+ | `.trellis/config.yaml` (`teamwork.*`) | Teammate concurrency and process guard settings. |
13
+ | `packages/core/src/teamwork/` | Reusable Teamwork Session event and storage APIs. |
14
+ | `packages/cli/src/commands/teamwork/` | CLI commands, provider adapters, and process supervision. |
15
+
16
+ The storage root defaults to `~/.trellis/teamwork`; `TRELLIS_TEAMWORK_ROOT` overrides it. The project bucket defaults to a key derived from the current working directory; `TRELLIS_TEAMWORK_PROJECT` overrides that key.
17
+
18
+ ## Ownership
19
+
20
+ - Trellis Core owns reusable Teamwork Session event, storage, and coordination contracts.
21
+ - The Trellis CLI owns command handling, teammate process supervision, and task-bound batch artifacts.
22
+ - The active Trellis task remains the source of truth for task and phase state. Teamwork dispatch and reports may bind to its current phase and revisions; Teamwork does not write phase acceptance.
23
+ - Accepted reports remain task evidence. Temporary batch data may be removed when the batch settles. Teamwork Session event logs follow their own lifecycle.
24
+ - Host capabilities must pass the configured capability check before batch execution. A provider contract or fixture alone does not establish that a host is available.
25
+
26
+ ## Configuration
27
+
28
+ The project configuration supports `teamwork.teammate.max_concurrency` and `teamwork.teammate_guard.idle_timeout`, `max_live_teammates`, and `non_batch_reserved`. Defaults and CLI overrides are defined by the current Trellis CLI; read `packages/cli/src/commands/teamwork/teammate-config.ts` before changing them.
29
+
30
+ ## Related entry points
31
+
32
+ Use the bundled `trellis-teamwork` Skill for command usage and teammate coordination. Use `trellis workflow` and the active task record for workflow behavior. Do not route task or phase transitions through a Teamwork Session.
@@ -95,7 +95,7 @@ When the AI learns a new rule during implementation or debugging, it should upda
95
95
  | Change monorepo spec mapping | `packages` / `default_package` / `spec_scope` in `.trellis/config.yaml`. |
96
96
  | Change which specs AI reads before implementation | The task's `implement.jsonl`. |
97
97
  | Change which specs AI reads during checking | The task's `check.jsonl`. |
98
- | Change when specs should be updated | Phase 3.3 in `.trellis/workflow.md` and the `trellis-update-spec` skill. |
98
+ | Change when specs should be updated | Solution Design and Convergence Phase guidance in `.trellis/workflow.md` and the `trellis-update-spec` skill. |
99
99
 
100
100
  ## Boundaries
101
101
 
@@ -1,130 +1,44 @@
1
1
  # Local Task System
2
2
 
3
- The Trellis task system is stored entirely under `.trellis/tasks/` in the user project. Each task is a directory containing requirements, context, research, state, and relationship information.
4
-
5
- ## Task Directory Structure
6
-
7
- ```text
8
- .trellis/tasks/
9
- ├── 04-28-example-task/
10
- │ ├── task.json
11
- │ ├── prd.md
12
- │ ├── design.md
13
- │ ├── implement.md
14
- │ ├── implement.jsonl
15
- │ ├── check.jsonl
16
- │ └── research/
17
- └── archive/
18
- └── 2026-04/
19
- ```
20
-
21
- | File | Purpose |
22
- | --- | --- |
23
- | `task.json` | Task metadata: status, assignee, priority, branch, parent/child tasks, and similar fields. |
24
- | `prd.md` | Requirements, constraints, and acceptance criteria. Lightweight tasks may be PRD-only. |
25
- | `design.md` | Technical design for complex tasks: boundaries, contracts, data flow, compatibility, tradeoffs. |
26
- | `implement.md` | Execution plan for complex tasks: ordered checklist, validation commands, review gates, rollback points. |
27
- | `implement.jsonl` | List of spec/research files the implement agent must read first. |
28
- | `check.jsonl` | List of spec/research files the check agent must read first. |
29
- | `research/` | Research artifacts. Complex findings should not live only in chat. |
30
-
31
- ## `task.json`
32
-
33
- `task.json` records task status and metadata. Common fields:
34
-
35
- | Field | Meaning |
36
- | --- | --- |
37
- | `id` / `name` / `title` | Task identity and title. |
38
- | `status` | Status such as `planning`, `in_progress`, `review`, or `completed`. |
39
- | `priority` | `P0`, `P1`, `P2`, `P3`. |
40
- | `creator` / `assignee` | Creator and assignee. |
41
- | `package` | Target package in a monorepo; may be empty. |
42
- | `branch` / `base_branch` | Working branch and PR target branch. |
43
- | `children` / `parent` | Parent/child task relationships. |
44
- | `commit` / `pr_url` | Commit and PR information after completion. |
45
- | `meta` | Extension fields. |
46
-
47
- ## Parent / Child Task Trees
48
-
49
- Parent/child task relationships are for work structure. A parent task groups related deliverables under one source requirement set; it is not a dependency scheduler and does not replace the child task's own planning artifacts.
50
-
51
- Use a parent task when a request has multiple independently verifiable deliverables. The parent owns:
52
-
53
- - Source requirements and user-facing scope.
54
- - The map of child tasks and their responsibility boundaries.
55
- - Cross-child acceptance criteria and final integration review.
3
+ Tasks live under .trellis/tasks/. A task record keeps its artifacts and history in place after completion or cancellation; Trellis does not move tasks into an archive.
56
4
 
57
- Use child tasks for deliverables that can move through planning, implementation, check, and archive independently. If one child depends on another, write that dependency in the child `prd.md` / `implement.md`; do not rely on tree position to imply ordering.
5
+ ## Task records
58
6
 
59
- Create new children with:
7
+ Each task directory may contain task.json, prd.md, design.md, implement.md, research/, and context manifests. Use only the artifacts needed by the task.
60
8
 
61
- ```bash
62
- python3 ./.trellis/scripts/task.py create "<child title>" --description "<one-line summary>" --slug <child-slug> --parent <parent-dir>
63
- ```
9
+ task.json records identity, lifecycle status, ownership, and parent/child relationships. The Trellis CLI task workflow record stores the ordered phase route, current phase, revisions, evidence, acceptance, and authorization. Do not edit lifecycle or phase status by hand.
64
10
 
65
- Link or unlink existing tasks with:
11
+ ## Parent and child tasks
66
12
 
67
- ```bash
68
- python3 ./.trellis/scripts/task.py add-subtask <parent-dir> <child-dir>
69
- python3 ./.trellis/scripts/task.py remove-subtask <parent-dir> <child-dir>
70
- ```
13
+ A parent groups related deliverables and records cross-task acceptance. Each child has its own task record and lifecycle. Record dependencies explicitly in task artifacts; tree position does not imply execution order.
71
14
 
72
- `children` on the parent is a historical list. When a child is archived, Trellis keeps that child name in the parent so progress like `[2/3 done]` remains meaningful after completed children move to `archive/`.
15
+ ## Active task context
73
16
 
74
- The AI should not treat phase numbers as task status. Task progress is mainly determined by `status`, artifact presence (`prd.md`, optional `design.md` / `implement.md`), whether JSONL context is configured for sub-agent mode, and the phase descriptions in `workflow.md`.
17
+ The active task pointer is scoped to an AI session under .trellis/.runtime/sessions/. Use task.py current to inspect it, task.py start to attach a task to the current session, and task.py finish to clear the current session pointer. Do not create a shared global pointer.
75
18
 
76
- ## Active Task
19
+ ## Native task operations
77
20
 
78
- The user sees a "current task," but Trellis stores active task state per session.
21
+ python3 ./.trellis/scripts/task.py create "<title>" --description "<summary>" [--parent <task>]
22
+ python3 ./.trellis/scripts/task.py phase show <task>
23
+ python3 ./.trellis/scripts/task.py validate <task>
24
+ python3 ./.trellis/scripts/task.py start <task>
25
+ python3 ./.trellis/scripts/task.py complete <task>
26
+ python3 ./.trellis/scripts/task.py cancel <task> --reason "<reason>" --evidence-ref <reference>
79
27
 
80
- ```text
81
- .trellis/.runtime/sessions/<context-key>.json
82
- ```
28
+ Use phase operations through task.py phase for artifact revisions, acceptance, evidence-backed skips, waits, blocks, resume, return, route, and authorization. Consult task.py help for current arguments. Completion and cancellation occur only after Delivery Review and On-Site Closeout Phase.
83
29
 
84
- `task.py start` writes the task path into the runtime session file for the current session. `task.py current --source` shows the current task and where it came from. Different AI windows can point to different tasks without overwriting each other.
30
+ The read-only trellis task progress command summarizes planning, in_progress, and completed lifecycle records. It does not change task state.
85
31
 
86
- If the platform or shell environment has no stable session identity, `task.py start` may be unable to set the active task. The AI should read the error, inspect the platform hook/session environment, and not fall back to a shared global pointer.
32
+ ## Context manifests
87
33
 
88
- ## JSONL Context
34
+ implement.jsonl and check.jsonl identify relevant spec and research files for agents that consume those manifests. They do not replace the task's planning artifacts. Keep entries curated and remove placeholder rows rejected by task.py validate.
89
35
 
90
- `implement.jsonl` and `check.jsonl` are context manifests for sub-agents to read first. They do not replace `implement.md`; `implement.md` is the human-readable execution plan.
91
-
92
- Format:
93
-
94
- ```jsonl
95
- {"file": ".trellis/spec/cli/backend/index.md", "reason": "Backend conventions"}
96
- {"file": ".trellis/tasks/04-28-example/research/api.md", "reason": "API research"}
97
- ```
98
-
99
- Rules:
100
-
101
- - Include spec and research files.
102
- - Do not include code files that are about to be modified.
103
- - Do not treat temporary conclusions in chat as the only context.
104
- - Rows without a `file` field are skipped by readers. Legacy `{"_example": ...}` placeholder rows are rejected by `task.py validate` — delete them.
105
-
106
- ## Common Commands
107
-
108
- ```bash
109
- python3 ./.trellis/scripts/task.py create "<title>" --description "<one-line summary>" --slug <slug>
110
- python3 ./.trellis/scripts/task.py start <task>
111
- python3 ./.trellis/scripts/task.py current --source
112
- python3 ./.trellis/scripts/task.py add-context <task> implement <file> <reason>
113
- python3 ./.trellis/scripts/task.py validate <task>
114
- python3 ./.trellis/scripts/task.py finish
115
- python3 ./.trellis/scripts/task.py archive <task>
116
- ```
117
-
118
- When modifying the task system, the AI should prefer script commands to maintain structure. Edit JSON/Markdown directly only when scripts do not cover the need.
119
-
120
- ## Local Customization Points
36
+ ## Local customization points
121
37
 
122
38
  | Need | Edit location |
123
39
  | --- | --- |
124
- | Change the default task template | `.trellis/scripts/common/task_store.py` and task creation instructions. |
125
- | Change status semantics | `.trellis/workflow.md`, workflow-state hook logic, and task usage conventions. |
126
- | Add task lifecycle actions | `hooks.after_*` in `.trellis/config.yaml`. |
127
- | Change context rules | Planning artifact guidance in `.trellis/workflow.md` and related platform agent/hook instructions. |
128
- | Change archive policy | `.trellis/scripts/common/task_store.py` / `task_utils.py`. |
129
-
130
- These are local files in the user project. Do not default to editing Trellis CLI source code unless the user wants to contribute upstream.
40
+ | Change task fields or creation | .trellis/scripts/common/task_store.py |
41
+ | Change task lookup or parsing | .trellis/scripts/common/task_utils.py |
42
+ | Change lifecycle and phase contracts | .trellis/scripts/common/task_workflow.py and Core task model |
43
+ | Change active session task behavior | .trellis/scripts/common/active_task.py and host integration |
44
+ | Change task guidance | .trellis/workflow.md and the applicable phase Skill |