@pennixrv/trellis 0.7.0-beta.9 → 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 (483) 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.1.json +9 -0
  254. package/dist/templates/claude/hooks/statusline.py +0 -7
  255. package/dist/templates/codex/hooks/session-start.py +31 -38
  256. package/dist/templates/common/bundled-skills/trellis-decision-space-construction-and-merging/SKILL.md +10 -0
  257. package/dist/templates/common/bundled-skills/trellis-decision-space-construction-and-merging/workflow.md +40 -0
  258. package/dist/templates/common/bundled-skills/trellis-delivery-review-and-closeout/SKILL.md +10 -0
  259. package/dist/templates/common/bundled-skills/trellis-delivery-review-and-closeout/workflow.md +55 -0
  260. package/dist/templates/common/bundled-skills/trellis-goal-exploration-and-requirements/SKILL.md +10 -0
  261. package/dist/templates/common/bundled-skills/trellis-goal-exploration-and-requirements/workflow.md +33 -0
  262. package/dist/templates/common/bundled-skills/trellis-meta/SKILL.md +25 -25
  263. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-agents.md +1 -1
  264. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +13 -19
  265. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-spec-structure.md +1 -1
  266. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-task-lifecycle.md +27 -75
  267. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-workflow.md +17 -56
  268. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/overview.md +1 -1
  269. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/bundled-skills.md +14 -11
  270. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/generated-files.md +0 -33
  271. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/multi-agent-teamwork.md +32 -0
  272. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/spec-system.md +1 -1
  273. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/task-system.md +25 -111
  274. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workflow.md +19 -60
  275. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/skills-and-commands.md +1 -1
  276. package/dist/templates/common/bundled-skills/trellis-session-insight/SKILL.md +1 -1
  277. package/dist/templates/common/bundled-skills/trellis-session-insight/references/cli-quick-reference.md +1 -1
  278. package/dist/templates/common/bundled-skills/trellis-solution-design-and-convergence/SKILL.md +10 -0
  279. package/dist/templates/common/bundled-skills/trellis-solution-design-and-convergence/workflow.md +36 -0
  280. package/dist/templates/common/bundled-skills/trellis-task-implementation/SKILL.md +10 -0
  281. package/dist/templates/common/bundled-skills/trellis-task-implementation/workflow.md +29 -0
  282. package/dist/templates/common/bundled-skills/trellis-teamwork/SKILL.md +73 -0
  283. package/dist/templates/common/bundled-skills/trellis-teamwork/references/coordination-modes.md +29 -0
  284. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-configuration-matrix.md +31 -0
  285. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-processes.md +37 -0
  286. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teamwork-plan-construction.md +78 -0
  287. package/dist/templates/common/commands/continue.md +9 -49
  288. package/dist/templates/common/commands/finish-work.md +10 -58
  289. package/dist/templates/common/commands/start.md +19 -49
  290. package/dist/templates/common/skills/brainstorm.md +11 -199
  291. package/dist/templates/copilot/hooks/session-start.py +30 -26
  292. package/dist/templates/copilot/prompts/brainstorm.prompt.md +7 -160
  293. package/dist/templates/copilot/prompts/finish-work.prompt.md +11 -88
  294. package/dist/templates/copilot/prompts/record-session.prompt.md +4 -12
  295. package/dist/templates/copilot/prompts/start.prompt.md +12 -10
  296. package/dist/templates/dsh/DSH.md +2 -2
  297. package/dist/templates/kiro/agents/trellis.json +2 -2
  298. package/dist/templates/markdown/agents.md +14 -3
  299. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +9 -8
  300. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +1 -1
  301. package/dist/templates/markdown/workspace-index.md +0 -1
  302. package/dist/templates/omp/extensions/trellis/index.ts.txt +28 -17
  303. package/dist/templates/opencode/lib/session-utils.js +20 -25
  304. package/dist/templates/opencode/lib/trellis-context.js +4 -76
  305. package/dist/templates/opencode/plugins/inject-subagent-context.js +5 -4
  306. package/dist/templates/opencode/plugins/inject-workflow-state.js +14 -17
  307. package/dist/templates/shared-hooks/inject-shell-session-context.py +3 -3
  308. package/dist/templates/shared-hooks/inject-subagent-context.py +445 -67
  309. package/dist/templates/shared-hooks/inject-workflow-state.py +44 -36
  310. package/dist/templates/shared-hooks/session-start.py +21 -33
  311. package/dist/templates/trellis/agents/delegated-worktree-primary-agent.md +18 -0
  312. package/dist/templates/trellis/agents/teammate-profiles.json +8 -0
  313. package/dist/templates/trellis/agents/teammate.md +63 -0
  314. package/dist/templates/trellis/config.yaml +29 -38
  315. package/dist/templates/trellis/gitignore.txt +1 -0
  316. package/dist/templates/trellis/index.d.ts +8 -12
  317. package/dist/templates/trellis/index.d.ts.map +1 -1
  318. package/dist/templates/trellis/index.js +14 -25
  319. package/dist/templates/trellis/index.js.map +1 -1
  320. package/dist/templates/trellis/scripts/add_session.py +1 -1
  321. package/dist/templates/trellis/scripts/common/__init__.py +0 -1
  322. package/dist/templates/trellis/scripts/common/active_task.py +136 -100
  323. package/dist/templates/trellis/scripts/common/config.py +7 -9
  324. package/dist/templates/trellis/scripts/common/git_context.py +1 -1
  325. package/dist/templates/trellis/scripts/common/io.py +19 -0
  326. package/dist/templates/trellis/scripts/common/paths.py +0 -1
  327. package/dist/templates/trellis/scripts/common/safe_commit.py +11 -90
  328. package/dist/templates/trellis/scripts/common/session_context.py +1 -8
  329. package/dist/templates/trellis/scripts/common/spec_match.py +1 -1
  330. package/dist/templates/trellis/scripts/common/task_context.py +152 -59
  331. package/dist/templates/trellis/scripts/common/task_continuity.py +563 -0
  332. package/dist/templates/trellis/scripts/common/task_store.py +70 -548
  333. package/dist/templates/trellis/scripts/common/task_utils.py +4 -98
  334. package/dist/templates/trellis/scripts/common/task_workflow.py +1096 -0
  335. package/dist/templates/trellis/scripts/common/tasks.py +5 -8
  336. package/dist/templates/trellis/scripts/common/workflow_phase.py +8 -7
  337. package/dist/templates/trellis/scripts/hooks/linear_sync.py +3 -3
  338. package/dist/templates/trellis/scripts/task.py +114 -377
  339. package/dist/templates/trellis/workflow.md +111 -706
  340. package/dist/utils/agent-refs.d.ts +5 -5
  341. package/dist/utils/agent-refs.js +6 -6
  342. package/dist/utils/file-writer.d.ts +3 -2
  343. package/dist/utils/file-writer.d.ts.map +1 -1
  344. package/dist/utils/file-writer.js +3 -2
  345. package/dist/utils/file-writer.js.map +1 -1
  346. package/dist/utils/managed-paths.d.ts +0 -7
  347. package/dist/utils/managed-paths.d.ts.map +1 -1
  348. package/dist/utils/managed-paths.js +0 -40
  349. package/dist/utils/managed-paths.js.map +1 -1
  350. package/dist/utils/manifest-prune.d.ts.map +1 -1
  351. package/dist/utils/manifest-prune.js +2 -11
  352. package/dist/utils/manifest-prune.js.map +1 -1
  353. package/dist/utils/uninstall-scrubbers.d.ts.map +1 -1
  354. package/dist/utils/uninstall-scrubbers.js +3 -3
  355. package/dist/utils/uninstall-scrubbers.js.map +1 -1
  356. package/dist/utils/workflow-resolver.d.ts +10 -16
  357. package/dist/utils/workflow-resolver.d.ts.map +1 -1
  358. package/dist/utils/workflow-resolver.js +25 -36
  359. package/dist/utils/workflow-resolver.js.map +1 -1
  360. package/package.json +2 -2
  361. package/dist/commands/channel/adapters/claude.d.ts.map +0 -1
  362. package/dist/commands/channel/adapters/claude.js.map +0 -1
  363. package/dist/commands/channel/adapters/codex.d.ts.map +0 -1
  364. package/dist/commands/channel/adapters/codex.js.map +0 -1
  365. package/dist/commands/channel/adapters/index.d.ts.map +0 -1
  366. package/dist/commands/channel/adapters/index.js.map +0 -1
  367. package/dist/commands/channel/adapters/types.d.ts.map +0 -1
  368. package/dist/commands/channel/adapters/types.js.map +0 -1
  369. package/dist/commands/channel/agent-loader.d.ts.map +0 -1
  370. package/dist/commands/channel/agent-loader.js.map +0 -1
  371. package/dist/commands/channel/context-loader.d.ts.map +0 -1
  372. package/dist/commands/channel/context-loader.js.map +0 -1
  373. package/dist/commands/channel/context-trust.d.ts.map +0 -1
  374. package/dist/commands/channel/context-trust.js.map +0 -1
  375. package/dist/commands/channel/context.d.ts +0 -16
  376. package/dist/commands/channel/context.d.ts.map +0 -1
  377. package/dist/commands/channel/context.js.map +0 -1
  378. package/dist/commands/channel/create.d.ts +0 -29
  379. package/dist/commands/channel/create.d.ts.map +0 -1
  380. package/dist/commands/channel/create.js +0 -47
  381. package/dist/commands/channel/create.js.map +0 -1
  382. package/dist/commands/channel/dev-parse-trace.d.ts.map +0 -1
  383. package/dist/commands/channel/dev-parse-trace.js.map +0 -1
  384. package/dist/commands/channel/guard.d.ts.map +0 -1
  385. package/dist/commands/channel/guard.js.map +0 -1
  386. package/dist/commands/channel/index.d.ts +0 -3
  387. package/dist/commands/channel/index.d.ts.map +0 -1
  388. package/dist/commands/channel/index.js.map +0 -1
  389. package/dist/commands/channel/interrupt.d.ts.map +0 -1
  390. package/dist/commands/channel/interrupt.js +0 -22
  391. package/dist/commands/channel/interrupt.js.map +0 -1
  392. package/dist/commands/channel/kill.d.ts +0 -7
  393. package/dist/commands/channel/kill.d.ts.map +0 -1
  394. package/dist/commands/channel/kill.js.map +0 -1
  395. package/dist/commands/channel/list.d.ts +0 -18
  396. package/dist/commands/channel/list.d.ts.map +0 -1
  397. package/dist/commands/channel/list.js.map +0 -1
  398. package/dist/commands/channel/messages.d.ts.map +0 -1
  399. package/dist/commands/channel/messages.js.map +0 -1
  400. package/dist/commands/channel/rm.d.ts +0 -27
  401. package/dist/commands/channel/rm.d.ts.map +0 -1
  402. package/dist/commands/channel/rm.js.map +0 -1
  403. package/dist/commands/channel/run.d.ts +0 -32
  404. package/dist/commands/channel/run.js +0 -141
  405. package/dist/commands/channel/run.js.map +0 -1
  406. package/dist/commands/channel/send.d.ts.map +0 -1
  407. package/dist/commands/channel/send.js.map +0 -1
  408. package/dist/commands/channel/spawn.d.ts.map +0 -1
  409. package/dist/commands/channel/spawn.js.map +0 -1
  410. package/dist/commands/channel/store/events.d.ts +0 -22
  411. package/dist/commands/channel/store/events.d.ts.map +0 -1
  412. package/dist/commands/channel/store/events.js.map +0 -1
  413. package/dist/commands/channel/store/filter.d.ts +0 -3
  414. package/dist/commands/channel/store/filter.d.ts.map +0 -1
  415. package/dist/commands/channel/store/filter.js +0 -2
  416. package/dist/commands/channel/store/filter.js.map +0 -1
  417. package/dist/commands/channel/store/lock.d.ts.map +0 -1
  418. package/dist/commands/channel/store/lock.js.map +0 -1
  419. package/dist/commands/channel/store/paths.d.ts.map +0 -1
  420. package/dist/commands/channel/store/paths.js.map +0 -1
  421. package/dist/commands/channel/store/schema.d.ts +0 -27
  422. package/dist/commands/channel/store/schema.d.ts.map +0 -1
  423. package/dist/commands/channel/store/schema.js +0 -34
  424. package/dist/commands/channel/store/schema.js.map +0 -1
  425. package/dist/commands/channel/store/thread-state.d.ts.map +0 -1
  426. package/dist/commands/channel/store/thread-state.js.map +0 -1
  427. package/dist/commands/channel/store/watch.d.ts +0 -19
  428. package/dist/commands/channel/store/watch.d.ts.map +0 -1
  429. package/dist/commands/channel/store/watch.js.map +0 -1
  430. package/dist/commands/channel/supervisor/idle.d.ts.map +0 -1
  431. package/dist/commands/channel/supervisor/idle.js.map +0 -1
  432. package/dist/commands/channel/supervisor/inbox.d.ts.map +0 -1
  433. package/dist/commands/channel/supervisor/inbox.js.map +0 -1
  434. package/dist/commands/channel/supervisor/shutdown.d.ts.map +0 -1
  435. package/dist/commands/channel/supervisor/shutdown.js.map +0 -1
  436. package/dist/commands/channel/supervisor/stdout.d.ts.map +0 -1
  437. package/dist/commands/channel/supervisor/stdout.js.map +0 -1
  438. package/dist/commands/channel/supervisor/turns.d.ts.map +0 -1
  439. package/dist/commands/channel/supervisor/turns.js.map +0 -1
  440. package/dist/commands/channel/supervisor/warning.d.ts.map +0 -1
  441. package/dist/commands/channel/supervisor/warning.js.map +0 -1
  442. package/dist/commands/channel/supervisor.d.ts.map +0 -1
  443. package/dist/commands/channel/supervisor.js.map +0 -1
  444. package/dist/commands/channel/text-body.d.ts +0 -13
  445. package/dist/commands/channel/text-body.d.ts.map +0 -1
  446. package/dist/commands/channel/text-body.js.map +0 -1
  447. package/dist/commands/channel/threads.d.ts +0 -39
  448. package/dist/commands/channel/threads.d.ts.map +0 -1
  449. package/dist/commands/channel/threads.js.map +0 -1
  450. package/dist/commands/channel/title.d.ts +0 -12
  451. package/dist/commands/channel/title.d.ts.map +0 -1
  452. package/dist/commands/channel/title.js +0 -24
  453. package/dist/commands/channel/title.js.map +0 -1
  454. package/dist/commands/channel/wait.d.ts.map +0 -1
  455. package/dist/commands/channel/wait.js.map +0 -1
  456. package/dist/commands/channel/workers.d.ts +0 -9
  457. package/dist/commands/channel/workers.d.ts.map +0 -1
  458. package/dist/commands/channel/workers.js +0 -31
  459. package/dist/commands/channel/workers.js.map +0 -1
  460. package/dist/templates/common/bundled-skills/trellis-channel/SKILL.md +0 -69
  461. package/dist/templates/common/bundled-skills/trellis-channel/references/command-reference.md +0 -549
  462. package/dist/templates/common/bundled-skills/trellis-channel/references/forum.md +0 -233
  463. package/dist/templates/common/bundled-skills/trellis-channel/references/progress-debugging.md +0 -237
  464. package/dist/templates/common/bundled-skills/trellis-channel/references/subnode-work.md +0 -222
  465. package/dist/templates/common/bundled-skills/trellis-channel/references/workers.md +0 -295
  466. package/dist/templates/common/bundled-skills/trellis-channel/references/workflows.md +0 -131
  467. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/multi-agent-channel.md +0 -70
  468. package/dist/templates/common/bundled-skills/trellis-research-record/SKILL.md +0 -14
  469. package/dist/templates/copilot/prompts/parallel.prompt.md +0 -204
  470. package/dist/templates/trellis/agents/check.md +0 -70
  471. package/dist/templates/trellis/agents/implement.md +0 -71
  472. package/dist/templates/trellis/agents/subnode.env +0 -4
  473. package/dist/templates/trellis/agents/subnode.md +0 -76
  474. package/dist/templates/trellis/scripts/common/context_projection.py +0 -508
  475. package/dist/templates/trellis/scripts/common/continuation_record.py +0 -450
  476. package/dist/templates/trellis/scripts/common/ownership_record.py +0 -439
  477. package/dist/templates/trellis/scripts/subnode_artifact.py +0 -735
  478. package/dist/templates/trellis/scripts/workspace_note.py +0 -126
  479. /package/dist/commands/{channel → teamwork}/adapters/types.js +0 -0
  480. /package/dist/commands/{channel → teamwork}/supervisor/idle.d.ts +0 -0
  481. /package/dist/commands/{channel → teamwork}/supervisor/idle.js +0 -0
  482. /package/dist/commands/{channel → teamwork}/supervisor/turns.d.ts +0 -0
  483. /package/dist/commands/{channel → teamwork}/supervisor/turns.js +0 -0
@@ -0,0 +1,36 @@
1
+ # 解决方案设计与收敛阶段流程
2
+
3
+ 核对有效的目标基线、决策空间构造与归并阶段结果或跳过记录及其 revision。按依赖筛选影响目标、范围、成功条件、用户偏好、风险承受或重要取舍的保留决定;使用 `pennix-decision-grill` 同步提问。答复到达后,核对其权限、当前 revision 和影响范围:影响目标或范围时回到目标探索与需求核对阶段,影响候选、标准或依赖时回到决策空间构造与归并阶段,仅改变当前候选中的方案时继续本阶段评估。待决定事项使解决方案设计与收敛阶段保持待决。
4
+
5
+ 比较适用方案,说明选择依据、重要后果、行为边界、责任、必要依赖、验证方式、停止与恢复条件及实质风险。对新颖核心机制、重大重构、跨组件边界变化或关键不确定性缺少可信本地先例的方案,在结果接受前完成有界 `prior-art review`,记录适用性、采纳或排除理由,或说明没有适用先例。外部材料改变候选、标准或依赖时回到决策空间构造与归并阶段。
6
+
7
+ 判断当前结果:分析交付形成 `analysis_conclusion`;不继续形成 `no_go`;延期形成带责任方、触发条件和恢复位置的 `deferred`,留在解决方案设计与收敛阶段;实施路线形成 `implementation_contract`,明确目标、范围和接受条件,并按路线需要补足实施与核验信息。只有交付物具有独立实施或集成边界时才拆分工作包,并说明推进和协作所需的依赖、顺序、责任或集成信息;单一交付不人为拆分工作包。解决方案设计与收敛阶段的结果接受与实施授权分开记录;只有合同及明确批准均有效时,Trellis CLI 才允许进入任务实施与测试验证阶段。
8
+
9
+ ```mermaid
10
+ flowchart TD
11
+ input["核对需求基线与已接受的 DecisionSpace"] --> decisions{"存在尚待用户决定的实质取舍?"}
12
+ decisions -->|"是"| grill["pennix-decision-grill 同步询问;留在解决方案设计与收敛阶段"]
13
+ grill --> impact{"答复影响哪个范围?"}
14
+ impact -->|"目标或范围"| goal_exploration_and_requirements["回到目标探索与需求核对阶段"]
15
+ impact -->|"候选、标准或依赖"| decision_space_construction_and_merging["回到决策空间构造与归并阶段"]
16
+ impact -->|"当前候选中的选择"| compare["比较方案和重要后果"]
17
+ decisions -->|"否"| compare
18
+ compare --> prior{"触发 prior-art review?"}
19
+ prior -->|"是"| review["核验相关开源实现或公开提案并记录适用性"]
20
+ review --> changed{"外部证据改变候选、标准或依赖?"}
21
+ changed -->|"是"| decision_space_construction_and_merging
22
+ changed -->|"否"| assess["核对完整性、风险、验证和恢复条件"]
23
+ prior -->|"否"| assess
24
+ assess -->|"有实质缺口"| compare
25
+ assess -->|"analysis_conclusion 或 no_go"| reviewResult["Trellis CLI 接受解决方案设计与收敛阶段结果"]
26
+ assess -->|"deferred"| defer["记录恢复条件并留在解决方案设计与收敛阶段"]
27
+ assess -->|"implementation_contract"| contract["冻结必要实施合同"]
28
+ contract --> approval{"合同获接受且实施批准有效?"}
29
+ approval -->|"否"| wait["等待决定或授权;不进入实施"]
30
+ approval -->|"是"| task_implementation["Trellis CLI 核验并进入任务实施与测试验证阶段"]
31
+ reviewResult --> delivery_review_and_closeout["交付审查与现场收尾阶段"]
32
+ ```
33
+
34
+ ### 方案是否足以收敛
35
+
36
+ 实施者应能从当前方案判断要做什么、由谁负责、依赖什么、如何验证,以及何时停止或恢复;影响选择、接受、安全、权限、成本或不可逆影响的取舍应有依据和处理方式。未知事项可以补证、接受剩余风险、延期或不继续。此判断不要求固定篇幅、备选数量、字段或图表。
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: trellis-task-implementation
3
+ description: 当前任务处于任务实施与测试验证阶段时,按已授权实施合同推进工作包、验证、集成与阻塞处置。
4
+ ---
5
+
6
+ # 任务实施与测试验证阶段
7
+
8
+ 当 `current_phase_id` 为 `task_implementation` 时使用。先阅读本 Skill 同目录的 `workflow.md`,再加载目标仓库适用的 `AGENTS.md`、Trellis spec 和实现合同。
9
+
10
+ 按合同依赖和优先级逐项实施;主工作树主代理负责阶段接受和集成。只在执行路线获准时使用 Paseo 委派写入;Trellis Teamwork teammate 只提供只读证据。默认在当前阶段修复和验证,只有合同、授权、依赖、基线或接受条件实质失效且无法安全恢复时,才回到最早受影响的阶段。
@@ -0,0 +1,29 @@
1
+ # 任务实施与测试验证阶段流程
2
+
3
+ 开始前核验当前 `implementation_contract`、实施授权、路线 revision、必要依赖和执行基线。使用 `trellis-before-dev` 读取目标仓库实际适用的规范;按组件 owner 合同选择主工作树或已批准的独立写入路线。调用项目任务 `start` 只在实施授权有效时将任务置为 `in_progress`。
4
+
5
+ 按合同的依赖和优先级选取当前工作包,实施满足目标的最小变更,并运行与风险和影响相称的局部验证。主工作树主代理核对来源、revision、Git 基线、差异和结果后接受工作包。多包任务按合同集成;单一交付不人为拆分。Trellis Teamwork 仅用于冻结计划下的只读比较或评议,不能改写任务状态或接受实施结果。实际写入委派依父任务规定使用 Trellis 受控入口与 Paseo;各组件源码仍在 owner 仓库内修改。
6
+
7
+ 局部失败、暂时不可用或当前状态已满足接受条件时,先在任务实施与测试验证阶段中处理。依赖或资源暂不可用且现场安全时记录恢复条件;未授权不产生外部副作用;未知现场先停止并核验。合同允许未运行验证且风险可接受时,记录原因、影响和替代证据。替代路线若改变授权、成本、隐私或接受条件,回到解决方案设计与收敛阶段;目标、范围变化按影响回到目标探索与需求核对阶段或决策空间构造与归并阶段。只有合同范围内工作包均已接受、适用必需验证完成或有有效未运行处置、按范围和风险需要的集成验证通过,才将交付候选交由交付审查与现场收尾阶段;仅当路线实际创建或委派资源时,才核验其处置事实。
8
+
9
+ ```mermaid
10
+ flowchart TD
11
+ contract["核验 implementation_contract、授权、revision 和依赖"] --> ready{"准入与实施授权有效?"}
12
+ ready -->|"否,待用户决定或依赖"| wait["等待或记录阻断;不启动副作用"]
13
+ wait -->|"恢复后重新核验"| contract
14
+ ready -->|"是"| work["按合同依赖和优先级选取当前工作包"]
15
+ work --> implement["读取适用规范并实施最小变更"]
16
+ implement --> verify["执行与风险相称的局部验证"]
17
+ verify --> inspect["主工作树主代理核对 revision、基线、差异和结果"]
18
+ inspect -->|"局部缺陷或可处理冲突"| implement
19
+ inspect -->|"合同仍有效,当前 attempt 受阻"| stop["停止受影响范围并记录恢复条件"]
20
+ stop -->|"可安全恢复"| contract
21
+ inspect -->|"路线或合同实质失效"| replan["回最早受影响阶段并明确理由"]
22
+ inspect -->|"当前工作包接受"| more{"还有合同内工作包或必需验证?"}
23
+ more -->|"是"| work
24
+ more -->|"否;适用集成已核验,委派资源(如有)已安全处置"| candidate["形成交付候选并进入交付审查与现场收尾阶段"]
25
+ ```
26
+
27
+ ### 委派、回退与收敛
28
+
29
+ 回退使用当前 owner 的 Git 和资源合同,不覆盖无关改动,也不删除仍需核验的现场。只有当前合同无法安全覆盖目标、授权、依赖、基线、接受条件或停止条件的变化时,才回退到最早受影响阶段。结束任务实施与测试验证阶段前,记录适用验证结果、未运行处置、合同差异和未结发现;仅当路线实际创建或委派资源时,记录其处置状态。
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: trellis-teamwork
3
+ description: Use Trellis Teamwork for live multi-agent collaboration, Teamwork Sessions, teammate assignments, coordination modes, and runtime diagnostics.
4
+ ---
5
+
6
+ # trellis-teamwork
7
+
8
+ `trellis teamwork` is the local multi-agent collaboration runtime. A
9
+ Teamwork Session is the persistent chat or forum object used by the runtime;
10
+ it is independent from the Trellis task lifecycle and does not own business-phase progress.
11
+ Use Teamwork when agents need a durable event log, a bounded teammate
12
+ assignment, a one-shot consultation, or a forum discussion.
13
+
14
+ Typical user signals: “和 codex/claude 讨论”, “brainstorm with another agent”, “派一个 teammate 做 review”, “open a Teamwork forum”, “look at this thread”, “Teamwork 卡住了 / 没输出”, “progress was truncated”, “how do I use trellis teamwork”.
15
+
16
+ This skill is an index. Load only the reference file for the current job — do not preload all of them.
17
+
18
+ ## First Commands
19
+
20
+ ```bash
21
+ trellis --version
22
+ trellis teamwork --help
23
+ trellis teamwork list --all
24
+ trellis teamwork list --scope global --all
25
+ ```
26
+
27
+ If the user names a Teamwork Session or thread, inspect it before asking for
28
+ background:
29
+
30
+ ```bash
31
+ trellis teamwork forum <session> --scope global
32
+ trellis teamwork thread <session> <thread> --scope global
33
+ trellis teamwork context list <session> --scope global --thread <thread>
34
+ ```
35
+
36
+ ## Route By User Intent
37
+
38
+ | User intent | Read |
39
+ |---|---|
40
+ | “和 codex/claude 讨论一下”, “brainstorm with another agent” | `references/teamwork-plan-construction.md`, then `references/coordination-modes.md` |
41
+ | “派一个 implement/check agent”, “让 agent review”, “spawn a worker” | `references/teamwork-plan-construction.md`, then `references/teammate-processes.md` |
42
+ | “开 issue 区 / topic 群 / changelog / board”, “make a forum” | `references/teamwork-plan-construction.md` |
43
+ | “看看这个 thread”, “inspect a thread” | `references/teamwork-plan-construction.md` |
44
+ | “Teamwork 卡住了 / 没输出 / progress 被截断”, “teammate stalled” | `references/teammate-processes.md` |
45
+ | “具体命令怎么写”, “what flags does X take” | `references/teamwork-plan-construction.md` |
46
+
47
+ ## Core Rules
48
+
49
+ - New forum Teamwork Sessions use `--type forum`. A `thread` is one item inside a forum Teamwork Session.
50
+ - Use `--context-file` / `--context-raw` and `trellis teamwork context add/delete/list`.
51
+ - Use `--stdin` or `--text-file` for long messages. Do not put long mixed Chinese/English text in the positional shell argument.
52
+ - Pretty `messages` output is an operator dashboard and may truncate progress. Use `--raw` for audit.
53
+ - `--as` is the speaker or worker handle, depending on the command. Use explicit, stable names when multiple agents or sessions are involved.
54
+ - `--scope project` (default) operates on the current cwd's project bucket; `--scope global` operates on the shared `__global__` bucket. Pick scope deliberately — a global board is invisible from project listings unless `--scope global` is passed.
55
+ - For brainstorm, do multiple pressure-test rounds. One answer plus one confirmation is review, not brainstorm.
56
+ - **Dispatcher wait pattern**: use `--kind done` / `--kind turn_finished` (Trellis-emitted system events), not a user `--tag` as the completion signal. Tags are labels, not runtime completion events.
57
+ - Teamwork Sessions are event-sourced. Do not parse `events.jsonl` first; use `forum`, `thread`, `messages --thread`, and `context list`.
58
+ - `@pennixrv/trellis-core` owns reusable Teamwork Session/thread state, event append, sequence allocation, context/title projection, reducers, and task helpers. The CLI owns flags, terminal rendering, prompts, teammate lifecycle, and process exits.
59
+ - Teamwork plan construction belongs to the current phase coordinator. Teamwork validates and executes a frozen plan; it does not select the task phase, change task status, or create a second task state machine.
60
+ - The native host-created `subagent` remains separate from a Teamwork teammate.
61
+
62
+ ## Reference Files
63
+
64
+ - `references/teamwork-plan-construction.md` — plan binding, task integration, Teamwork Session and forum commands, reports, and cleanup.
65
+ - `references/teammate-configuration-matrix.md` — candidate profiles, frozen execution configuration, provider capabilities, and role boundaries.
66
+ - `references/coordination-modes.md` — `general`, `advisor`, and `committee` semantics and selection.
67
+ - `references/teammate-processes.md` — dispatch, context injection, waiting, interruption, retry, reconciliation, and diagnostics.
68
+
69
+ ## Not For
70
+
71
+ - One static review where a markdown file and prompt are enough.
72
+ - Replacing normal tool calls with self-logging.
73
+ - Long-term memory retrieval. Use durable forum Teamwork Sessions for actionable issues, and `trellis mem` (the `trellis-session-insight` skill) for session/history search.
@@ -0,0 +1,29 @@
1
+ # Coordination modes
2
+
3
+ The plan's `coordination_mode` selects the call shape. It is independent from
4
+ the teammate role, execution profile, and Teamwork Session type.
5
+
6
+ ## `general`
7
+
8
+ Use general coordination for one or more independent assignments. Each
9
+ assignment has its own objective, scope, lens, evidence, and acceptance
10
+ criteria. The coordinator may fill available slots in plan order and settle
11
+ each assignment independently.
12
+
13
+ ## `advisor`
14
+
15
+ Use advisor coordination for one bounded consultation. The plan contains
16
+ exactly one assignment and its result is advice for the current coordinator.
17
+ The result still carries a source digest and acceptance evidence and does not
18
+ change the task or phase by itself.
19
+
20
+ ## `committee`
21
+
22
+ Use committee coordination when one question benefits from parallel distinct
23
+ lenses. The plan contains two or three assignments in one evaluation group.
24
+ All members share the assignment contract and use distinct lenses. They return
25
+ independent evidence; the coordinator compares the reports after they finish.
26
+
27
+ Committee members do not debate with one another, run a consensus loop, or use
28
+ a directional counter relationship. If a question does not need independent
29
+ lenses, use general coordination or advisor coordination instead.
@@ -0,0 +1,31 @@
1
+ # Teammate configuration matrix
2
+
3
+ The candidate source for teammate execution settings is the teammate
4
+ configuration matrix. It is a selection input, not a new role system. A
5
+ profile may provide a default provider and model plus provider-specific
6
+ options. The frozen plan stores the selected execution values in the
7
+ `Teammate Execution Configuration` snapshot so a running batch is unaffected
8
+ by later matrix changes.
9
+
10
+ The tuple is:
11
+
12
+ ```text
13
+ role + provider + optional profile + model + reasoning effort + options
14
+ ```
15
+
16
+ The role remains `teammate`. Coordination mode is separate from role and
17
+ profile. Supported provider adapters are Codex app-server, DSH ACP, Copilot
18
+ ACP, and Claude Code CLI when their host contracts are available. A provider
19
+ name alone does not prove that its host is installed or verified.
20
+
21
+ The host capability proof covers only the boundaries required by the selected
22
+ plan: foreground waiting, protected artifact writes, read-only protected
23
+ targets and Git state, disabled native or recursive delegation, isolated
24
+ context, supported transport, and a positive capacity. The CLI refuses a
25
+ dispatch when the selected host cannot prove those properties. It does not
26
+ invent an execution profile or silently change the frozen values.
27
+
28
+ The bundled role card is `.trellis/agents/teammate.md`. It is provider-neutral
29
+ and limits a teammate to the frozen context and current attempt artifacts. A
30
+ Teamwork teammate is not the native host-created `subagent`; the two have
31
+ different creation paths and contracts.
@@ -0,0 +1,37 @@
1
+ # Teammate processes
2
+
3
+ The coordinator creates a queue fact and an immutable claim for each
4
+ assignment, dispatches the selected provider, waits for a terminal host fact,
5
+ and validates the report against the assignment identity, source digest,
6
+ evidence, path, secret, and symlink rules. The teammate writes only its
7
+ current attempt artifacts. It does not modify product source, Git state, task
8
+ status, or another teammate's artifacts.
9
+
10
+ After a timeout, the same attempt may receive a continuation. A confirmed
11
+ execution or acceptance failure may consume that assignment's explicit retry
12
+ budget and create a new attempt identity. An uncertain command, changed host
13
+ identity, or unconfirmed cancellation enters reconciliation and is not
14
+ automatically duplicated. Reconciliation is a runtime outcome; the task
15
+ coordinator decides whether a later task phase needs a return.
16
+
17
+ Use the ordinary Teamwork Session commands for a deliberate one-shot or
18
+ interactive discussion:
19
+
20
+ ```bash
21
+ trellis teamwork run [name]
22
+ trellis teamwork spawn <name> --agent <agent> --provider <provider>
23
+ trellis teamwork send <name> --as <agent> --stdin
24
+ trellis teamwork wait <name> --as <agent> --kind done,turn_finished
25
+ trellis teamwork interrupt <name> --as <agent> --to <teammate> --stdin
26
+ trellis teamwork kill <name> --as <teammate>
27
+ ```
28
+
29
+ These commands operate a Teamwork Session and do not replace a frozen plan or
30
+ create a second scheduler. Do not use them to bypass a rejected batch or to
31
+ steer an active managed assignment manually.
32
+
33
+ For a stalled process, inspect `teamwork list`, `teamwork messages --raw`, the
34
+ provider log, and the host process state in that order. Use `kill` only when
35
+ the process owner and current state are known. The runtime event log is the
36
+ source of truth for coordination state; sidecar process files are diagnostic
37
+ evidence.
@@ -0,0 +1,78 @@
1
+ # Teamwork plan construction
2
+
3
+ The current phase coordinator constructs one Teamwork plan when a bounded
4
+ teammate call is useful. The plan is a runtime input, not a second task plan.
5
+ It records the task and phase context that produced it:
6
+
7
+ ```text
8
+ task_id
9
+ phase_id
10
+ task_route_revision
11
+ input_revision
12
+ plan_summary
13
+ coordination_mode
14
+ ```
15
+
16
+ The plan also freezes the Teamwork Session, batch, deadline, protected targets,
17
+ and ordered `assignments`. Each assignment has an `assignment_id`, brief path,
18
+ role, provider, optional profile and model, scope, lens, source digest,
19
+ acceptance criteria, and an explicit retry budget. The CLI validates the plan
20
+ and the immutable brief before dispatch.
21
+
22
+ Use the native task lifecycle for task status and acceptance. Teamwork records
23
+ coordination facts and teammate reports; it does not write `current_phase_id`,
24
+ task status, phase acceptance, or delivery readiness. Accepted reports and
25
+ their evidence become task-owned acceptance inputs. Temporary plan, queue,
26
+ attempt, and verification data may be removed when the batch ends according to
27
+ the task's retention rule. The Teamwork Session itself has its own lifecycle.
28
+
29
+ ## When to construct a plan
30
+
31
+ Use a plan for independent evidence, review, research, or verification with a
32
+ clear report destination. Keep dependent steps, shared source edits, and work
33
+ that requires peer conversation in the main task flow or a Teamwork Session.
34
+ Use a single bounded teammate call for one self-contained question. Use a
35
+ forum Teamwork Session when a topic needs durable threads and status history.
36
+
37
+ Before dispatch, read the active task plan, current phase checkpoint, relevant
38
+ specs, and the generic teammate role card. Freeze the input revision and route
39
+ revision after the coordinator has selected the scope. If those values change,
40
+ construct a new plan rather than mixing results from different task inputs.
41
+
42
+ The public dispatch entry point is:
43
+
44
+ ```bash
45
+ trellis teamwork batch <plan-path>
46
+ ```
47
+
48
+ The command validates the plan, then the coordinator owns dispatch, waiting,
49
+ report acceptance, and the terminal receipt. The coordinating agent does not
50
+ manually refill slots or create a second retry loop.
51
+
52
+ ## Teamwork Session and forum commands
53
+
54
+ Create and inspect the durable runtime object with the native CLI:
55
+
56
+ ```bash
57
+ trellis teamwork create <name> --type chat|forum
58
+ trellis teamwork list [--scope project|global] [--all]
59
+ trellis teamwork messages <name> [--raw]
60
+ trellis teamwork wait <name> --as <agent> --kind done,turn_finished
61
+ trellis teamwork forum <name>
62
+ trellis teamwork thread <name> <thread-key>
63
+ trellis teamwork context list <name> [--thread <thread-key>]
64
+ ```
65
+
66
+ Use `--context-file` and `--context-raw` for durable context. Use `--stdin` or
67
+ `--text-file` for long message bodies. `--kind` selects runtime event kinds;
68
+ it is not a user-defined tag. Read forum summaries and thread projections
69
+ through the CLI before inspecting raw event storage.
70
+
71
+ ## Result handling
72
+
73
+ The coordinator returns `ALL_ACCEPTED`, `SETTLED_WITH_FAILURE`, or
74
+ `RECONCILIATION_REQUIRED`. A terminal receipt is a runtime fact. The main task
75
+ then reviews reports against the phase contract, records durable evidence in
76
+ the task-owned artifact, and uses the task's native acceptance gate before
77
+ advancing. A formal session handoff is an independent, lower-priority
78
+ continuity artifact and does not represent a phase transition.
@@ -1,59 +1,19 @@
1
1
  # Continue Current Task
2
2
 
3
- Resume work on the current task — pick up at the right phase/step in `.trellis/workflow.md`.
3
+ Resume from the active Trellis task and its current phase. The task record and phase route are authoritative; do not infer the phase from artifact presence or session history.
4
4
 
5
- ---
5
+ ## Load current context
6
6
 
7
- ## Step 1: Load Current Context
7
+ {{PYTHON_CMD}} ./.trellis/scripts/get_context.py
8
8
 
9
- ```bash
10
- {{PYTHON_CMD}} ./.trellis/scripts/get_context.py
11
- ```
9
+ ## Read the phase route
12
10
 
13
- Confirms: current task, git state, recent commits.
11
+ {{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode phase
14
12
 
15
- ## Step 2: Load the Phase Index
13
+ Follow the active phase breadcrumb to the matching bundled phase Skill and its workflow.md. Use the task CLI to inspect or change phase state. A resume does not itself accept an artifact, grant authorization, or move the task.
16
14
 
17
- ```bash
18
- {{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode phase
19
- ```
15
+ Task lifecycle status and business phase are separate. A planning task may remain in Goal Exploration and Requirements Confirmation Phase, Decision Space Construction and Consolidation Phase, or Solution Design and Convergence Phase. `in_progress` marks authorized Task Implementation and Test Verification Phase; `completed` and `cancelled` are terminal lifecycle states. Delivery Review and On-Site Closeout Phase remains explicit.
20
16
 
21
- Shows the Phase Index (Plan / Execute / Finish) with routing + skill mapping.
17
+ ## Phase operations
22
18
 
23
- ## Step 3: Decide Where You Are
24
-
25
- `get_context.py` shows the active task's `status` field. Route by `status` + artifact presence. This command replaces the user needing to remember the Trellis flow; it does not itself approve implementation.
26
-
27
- - `status=planning` + `task.json.meta.delivery_mode = "analysis_only"` → first confirm the task still satisfies the bounded evidence-only eligibility rule; then complete the PRD's evidence work, verify its acceptance criteria and no-change boundary, and archive directly. Do not run `task.py start`; a protected-target change requires a separate change-bearing task.
28
- - `status=planning` + no `prd.md` → **1.1** (load `trellis-brainstorm`)
29
- - `status=planning` + a recorded `decision-needed` or unsealed decision chain → return to the planning frontier and load `pennix-decision-gates` when independent material questions can be batched.
30
- - `status=in_progress` + a material unresolved decision → record the reason and run `task.py replan <task> "<reason>"`; do not ask a native question during implementation.
31
- - `status=planning` + `prd.md` only → decide whether the task is lightweight or complex. Lightweight can move to **1.4** review; complex returns to **1.1** to add `design.md` + `implement.md`.
32
- - `status=planning` + complex artifacts complete + sub-agent jsonl not curated (empty, or only a legacy `_example` placeholder row) → **1.3**
33
- - `status=planning` + required artifacts complete + required jsonl curated or inline mode → run the Planning Seal closure pass, then **1.4** (ask for start review; only run `task.py start` after user confirms)
34
- - `status=in_progress` + implementation not started → **2.1**
35
- - `status=in_progress` + implementation done, not yet checked → **2.2**
36
- - `status=in_progress` + check passed → **3.3** (spec update) → **3.4** (commit)
37
- - `status=completed` (rare; usually archived immediately) → archive flow
38
-
39
- Phase rules (full detail in `.trellis/workflow.md`):
40
-
41
- 1. Run steps **in order** within a phase — `[required]` steps must not be skipped
42
- 2. `[once]` steps are already done if the required output exists. `prd.md` alone can be enough only for lightweight tasks; complex tasks also need `design.md` and `implement.md`.
43
- 3. You may go back to an earlier phase if discoveries require it
44
-
45
- ## Step 4: Load the Specific Step
46
-
47
- Once you know which step to resume at:
48
-
49
- ```bash
50
- {{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode phase --step <X.X> --platform {{CLI_FLAG}}
51
- ```
52
-
53
- Follow the loaded instructions. After each `[required]` step completes, move to the next.
54
-
55
- ---
56
-
57
- ## Reference
58
-
59
- Full workflow and detailed phase steps live in `.trellis/workflow.md`. This command is only an entry point — the canonical guidance is there.
19
+ Use the native task CLI for phase artifact revisions, acceptance, evidence-backed skips, waiting, blocking, resuming, returning to an earlier phase, route changes, implementation authorization, completion, and cancellation. Read task.py help for current arguments. Do not create a second status record or use formal session handoff to resume task work.
@@ -1,68 +1,20 @@
1
1
  # Finish Work
2
2
 
3
- Wrap up the current session: archive the active task (and any other completed-but-unarchived tasks the user wants to clean up) and record the session journal. Code commits are NOT done here — those happen in workflow Phase 3.4 before you invoke this command.
3
+ Record progress in the developer session journal when ending this session. This command does not change task status, phase state, or implementation authorization. Task completion and cancellation are handled during Delivery Review and On-Site Closeout Phase through Trellis CLI.
4
4
 
5
- For an eligible `task.json.meta.delivery_mode = "analysis_only"` task, reach this command directly from planning only after its PRD-defined evidence, acceptance criteria, and no-change boundary have been verified and its task artifacts have been committed. Do not run `task.py start`; a protected-target change needs a separate change-bearing task.
6
-
7
- ## Step 1: Survey current state
8
-
9
- ```bash
10
- {{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode record
11
- ```
12
-
13
- This prints:
14
-
15
- - **My active tasks** — review whether any besides the current one are actually done (code merged, AC met) and should be archived this round.
16
- - **Git status** — quick visual on what's dirty.
17
- - **Recent commits** — you'll need their hashes in Step 4 for `--commit`.
18
-
19
- If `--mode record` surfaces other completed tasks not tied to the current session, surface them to the user with a one-shot confirmation: "These N tasks look done — archive them too in this round? [y/N]". Default is no; the current active task is always archived in Step 3 regardless.
20
-
21
- ## Step 2: Sanity check — classify dirty paths
5
+ ## Review the current session
22
6
 
23
7
  Run:
24
8
 
25
- ```bash
26
- git status --porcelain
27
- ```
28
-
29
- Filter out paths under `.trellis/workspace/` and `.trellis/tasks/` — those are managed by `add_session.py` and `task.py archive` auto-commits and will appear dirty as part of this skill's own work.
30
-
31
- For each remaining dirty path, decide whether it belongs to **the current task** or to **other parallel work** (e.g., another terminal window editing the same repo). Heuristics:
32
-
33
- - Paths referenced in the current task's `prd.md` / `implement.jsonl` / `check.jsonl` → current task
34
- - Paths in code areas matching the task's stated scope, or that you remember editing this session → current task
35
- - Paths in unrelated areas you have no recollection of touching this session → other parallel work
36
-
37
- Then route:
38
-
39
- - **Any remaining path looks like current-task work** — bail out with:
40
- > "Working tree has uncommitted code changes from this task: `<list>`. Return to workflow Phase 3.4 to commit them before running `{{CMD_REF:finish-work}}`."
41
-
42
- Do NOT run `git commit` here. Do NOT prompt the user to commit. The user goes back to Phase 3.4 and the AI drives the batched commit there.
43
- - **All remaining paths look unrelated** (other parallel-window work) — report them once and continue to Step 3:
44
- > "FYI, dirty files outside this task's scope — leaving them for the other window: `<list>`."
45
- - **Genuinely unsure** — ask the user once: "Are `<list>` this task's work I forgot to commit, or another window's? (commit / ignore)" — then route per their answer.
46
-
47
- ## Step 3: Archive task(s)
48
-
49
- ```bash
50
- {{PYTHON_CMD}} ./.trellis/scripts/task.py archive <task-name>
51
- ```
52
-
53
- At minimum: the current active task (if any). Plus any extra tasks the user confirmed in Step 1. Each archive produces a `chore(task): archive ...` commit via the script's auto-commit.
54
-
55
- If there is no active task and the user did not confirm any cleanup archives, skip this step.
9
+ {{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode record
56
10
 
57
- ## Step 4: Record session journal
11
+ Review the current task, repository changes, and recent commits. Make the journal summary clear about completed work, remaining work, and blockers. A clean working tree or committed changes do not by themselves mean the task is complete.
58
12
 
59
- ```bash
60
- {{PYTHON_CMD}} ./.trellis/scripts/add_session.py \
61
- --title "Session Title" \
62
- --commit "hash1,hash2" \
63
- --summary "Brief summary"
64
- ```
13
+ ## Record the journal
65
14
 
66
- Use the work-commit hashes produced in Phase 3.4 (visible in Step 1's `Recent commits` list, or via `git log --oneline`) for `--commit`. Do not include the archive commit hashes from Step 3. This produces a `chore: record journal` commit.
15
+ {{PYTHON_CMD}} ./.trellis/scripts/add_session.py \
16
+ --title "Session title" \
17
+ --commit "hash1,hash2" \
18
+ --summary "Progress, remaining work, and blockers"
67
19
 
68
- Final git log order: `<work commits from 3.4>` → `chore(task): archive ...` (one or more) → `chore: record journal`.
20
+ Pass only commit hashes that belong to this session. Omit --commit when no relevant commit exists. Leave task state to Trellis CLI and formal session handoff to its separate, explicitly requested workflow.
@@ -1,60 +1,30 @@
1
1
  # Start Session
2
2
 
3
- Initialize a Trellis-managed development session. This platform has no session-start hook, so manually load the equivalent compact context by following these steps.
3
+ Load the current Trellis context and continue from the task record's current phase.
4
4
 
5
- ---
5
+ ## Load context
6
6
 
7
- ## Step 1: Current state
8
- Identity, git status, current task, active tasks, journal location.
7
+ {{PYTHON_CMD}} ./.trellis/scripts/get_context.py
8
+ {{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode phase
9
+ {{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode packages
9
10
 
10
- ```bash
11
- {{PYTHON_CMD}} ./.trellis/scripts/get_context.py
12
- ```
11
+ Read the applicable spec indexes before editing code. The active phase breadcrumb names the phase Skill and its workflow.md.
13
12
 
14
- If this output includes a line beginning `Trellis update available:`, copy the full line verbatim when summarizing session context. Do not shorten operational command hints.
13
+ ## Route the current request
15
14
 
16
- ## Step 2: Workflow overview
17
- Compact Phase Index, request triage rules, planning artifact contract, and the step-detail command.
15
+ - No active Trellis task: use the taskless route when the request is clear, low-risk, reversible, authorized, and immediately verifiable. Otherwise create the task with the user's consent and load `trellis-goal-exploration-and-requirements`.
16
+ - Task with no initialized route: inspect its current requirements, choose the applicable ordered phases with evidence for omissions, then initialize the route through task.py phase init.
17
+ - Goal Exploration and Requirements Confirmation Phase: load `trellis-goal-exploration-and-requirements`. Do not leave until the user confirms the current requirements artifact revision.
18
+ - Decision Space Construction and Consolidation Phase: load `trellis-decision-space-construction-and-merging`.
19
+ - Solution Design and Convergence Phase: load `trellis-solution-design-and-convergence`. An accepted implementation contract still requires separate implementation authorization.
20
+ - Task Implementation and Test Verification Phase: load `trellis-task-implementation` and the target repository's applicable specs.
21
+ - Delivery Review and On-Site Closeout Phase: load `trellis-delivery-review-and-closeout`.
18
22
 
19
- ```bash
20
- {{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode phase
21
- ```
23
+ Task lifecycle status does not replace the business phase route. Use Trellis CLI to inspect or change task and phase state.
22
24
 
23
- Full guide in `.trellis/workflow.md` (read on demand).
25
+ ## Spec context
24
26
 
25
- ## Step 3: Guideline indexes
26
- Discover packages + spec layers, then read each relevant index file.
27
+ {{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode packages
28
+ cat .trellis/spec/guides/index.md
27
29
 
28
- ```bash
29
- {{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode packages
30
- cat .trellis/spec/guides/index.md
31
- cat .trellis/spec/<package>/<layer>/index.md # for each relevant layer
32
- ```
33
-
34
- Index files list the specific guideline docs to read when you actually start coding.
35
-
36
- ## Step 4: Decide next action
37
- From Step 1 you know the current task and status. Check the task directory:
38
-
39
- - **Active task with `task.json.meta.delivery_mode = "analysis_only"`** → keep `planning`, complete the PRD's bounded evidence work, then verify the no-change boundary, commit task artifacts, and archive directly. Do not run `task.py start`; any protected-target change needs a separate change-bearing task.
40
- - **Active task status `planning` + no `prd.md`** → Phase 1.1. Load the `trellis-brainstorm` skill.
41
- - **Active task status `planning` + `prd.md` exists** → stay in Phase 1. Lightweight tasks can be PRD-only; complex tasks need `design.md` + `implement.md`. Load the relevant Phase 1 step detail before `task.py start`.
42
- - **Active task status `in_progress`** → Phase 2 step 2.1. Load the step detail:
43
- ```bash
44
- {{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode phase --step 2.1 --platform {{CLI_FLAG}}
45
- ```
46
- - **No active task** → classify first. For simple conversation / small task, ask only whether this turn should create a Trellis task. For complex work, ask whether you may create a Trellis task and enter planning. If the user says no, skip Trellis for this session.
47
-
48
- ---
49
-
50
- ## Skill routing (quick reference)
51
-
52
- | User intent | Skill |
53
- |---|---|
54
- | New feature / unclear requirements | `trellis-brainstorm` |
55
- | About to write code | `trellis-before-dev` |
56
- | Done coding / quality check | `trellis-check` |
57
- | Stuck / fixed same bug multiple times | `trellis-break-loop` |
58
- | Learned something worth capturing | `trellis-update-spec` |
59
-
60
- Full rules + anti-rationalization table in `.trellis/workflow.md`.
30
+ Read the package and layer indexes relevant to the requested changes, then follow their references.