@pennixrv/trellis 0.7.0-beta.8 → 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 (484) 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.json +9 -0
  255. package/dist/templates/claude/hooks/statusline.py +0 -7
  256. package/dist/templates/codex/hooks/session-start.py +31 -38
  257. package/dist/templates/common/bundled-skills/trellis-decision-space-construction-and-merging/SKILL.md +10 -0
  258. package/dist/templates/common/bundled-skills/trellis-decision-space-construction-and-merging/workflow.md +40 -0
  259. package/dist/templates/common/bundled-skills/trellis-delivery-review-and-closeout/SKILL.md +10 -0
  260. package/dist/templates/common/bundled-skills/trellis-delivery-review-and-closeout/workflow.md +55 -0
  261. package/dist/templates/common/bundled-skills/trellis-goal-exploration-and-requirements/SKILL.md +10 -0
  262. package/dist/templates/common/bundled-skills/trellis-goal-exploration-and-requirements/workflow.md +33 -0
  263. package/dist/templates/common/bundled-skills/trellis-meta/SKILL.md +25 -25
  264. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-agents.md +1 -1
  265. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +13 -19
  266. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-spec-structure.md +1 -1
  267. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-task-lifecycle.md +27 -75
  268. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-workflow.md +17 -56
  269. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/overview.md +1 -1
  270. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/bundled-skills.md +14 -11
  271. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/generated-files.md +0 -33
  272. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/multi-agent-teamwork.md +32 -0
  273. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/spec-system.md +1 -1
  274. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/task-system.md +25 -111
  275. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workflow.md +19 -60
  276. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/skills-and-commands.md +1 -1
  277. package/dist/templates/common/bundled-skills/trellis-session-insight/SKILL.md +1 -1
  278. package/dist/templates/common/bundled-skills/trellis-session-insight/references/cli-quick-reference.md +1 -1
  279. package/dist/templates/common/bundled-skills/trellis-solution-design-and-convergence/SKILL.md +10 -0
  280. package/dist/templates/common/bundled-skills/trellis-solution-design-and-convergence/workflow.md +36 -0
  281. package/dist/templates/common/bundled-skills/trellis-task-implementation/SKILL.md +10 -0
  282. package/dist/templates/common/bundled-skills/trellis-task-implementation/workflow.md +29 -0
  283. package/dist/templates/common/bundled-skills/trellis-teamwork/SKILL.md +73 -0
  284. package/dist/templates/common/bundled-skills/trellis-teamwork/references/coordination-modes.md +29 -0
  285. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-configuration-matrix.md +31 -0
  286. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-processes.md +37 -0
  287. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teamwork-plan-construction.md +78 -0
  288. package/dist/templates/common/commands/continue.md +9 -49
  289. package/dist/templates/common/commands/finish-work.md +10 -58
  290. package/dist/templates/common/commands/start.md +19 -49
  291. package/dist/templates/common/skills/brainstorm.md +11 -191
  292. package/dist/templates/copilot/hooks/session-start.py +30 -26
  293. package/dist/templates/copilot/prompts/brainstorm.prompt.md +7 -150
  294. package/dist/templates/copilot/prompts/finish-work.prompt.md +11 -88
  295. package/dist/templates/copilot/prompts/record-session.prompt.md +4 -12
  296. package/dist/templates/copilot/prompts/start.prompt.md +12 -10
  297. package/dist/templates/dsh/DSH.md +2 -2
  298. package/dist/templates/kiro/agents/trellis.json +2 -2
  299. package/dist/templates/markdown/agents.md +14 -3
  300. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +9 -8
  301. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +1 -1
  302. package/dist/templates/markdown/workspace-index.md +0 -1
  303. package/dist/templates/omp/extensions/trellis/index.ts.txt +28 -17
  304. package/dist/templates/opencode/lib/session-utils.js +20 -25
  305. package/dist/templates/opencode/lib/trellis-context.js +4 -76
  306. package/dist/templates/opencode/plugins/inject-subagent-context.js +5 -4
  307. package/dist/templates/opencode/plugins/inject-workflow-state.js +14 -17
  308. package/dist/templates/shared-hooks/inject-shell-session-context.py +3 -3
  309. package/dist/templates/shared-hooks/inject-subagent-context.py +445 -67
  310. package/dist/templates/shared-hooks/inject-workflow-state.py +44 -36
  311. package/dist/templates/shared-hooks/session-start.py +21 -33
  312. package/dist/templates/trellis/agents/delegated-worktree-primary-agent.md +18 -0
  313. package/dist/templates/trellis/agents/teammate-profiles.json +8 -0
  314. package/dist/templates/trellis/agents/teammate.md +63 -0
  315. package/dist/templates/trellis/config.yaml +29 -38
  316. package/dist/templates/trellis/gitignore.txt +1 -0
  317. package/dist/templates/trellis/index.d.ts +8 -12
  318. package/dist/templates/trellis/index.d.ts.map +1 -1
  319. package/dist/templates/trellis/index.js +14 -25
  320. package/dist/templates/trellis/index.js.map +1 -1
  321. package/dist/templates/trellis/scripts/add_session.py +1 -1
  322. package/dist/templates/trellis/scripts/common/__init__.py +0 -1
  323. package/dist/templates/trellis/scripts/common/active_task.py +136 -100
  324. package/dist/templates/trellis/scripts/common/config.py +7 -9
  325. package/dist/templates/trellis/scripts/common/git_context.py +1 -1
  326. package/dist/templates/trellis/scripts/common/io.py +19 -0
  327. package/dist/templates/trellis/scripts/common/paths.py +0 -1
  328. package/dist/templates/trellis/scripts/common/safe_commit.py +11 -90
  329. package/dist/templates/trellis/scripts/common/session_context.py +1 -8
  330. package/dist/templates/trellis/scripts/common/spec_match.py +1 -1
  331. package/dist/templates/trellis/scripts/common/task_context.py +152 -59
  332. package/dist/templates/trellis/scripts/common/task_continuity.py +563 -0
  333. package/dist/templates/trellis/scripts/common/task_store.py +70 -548
  334. package/dist/templates/trellis/scripts/common/task_utils.py +4 -98
  335. package/dist/templates/trellis/scripts/common/task_workflow.py +1096 -0
  336. package/dist/templates/trellis/scripts/common/tasks.py +5 -8
  337. package/dist/templates/trellis/scripts/common/workflow_phase.py +8 -7
  338. package/dist/templates/trellis/scripts/hooks/linear_sync.py +3 -3
  339. package/dist/templates/trellis/scripts/task.py +114 -377
  340. package/dist/templates/trellis/workflow.md +111 -699
  341. package/dist/utils/agent-refs.d.ts +5 -5
  342. package/dist/utils/agent-refs.js +6 -6
  343. package/dist/utils/file-writer.d.ts +3 -2
  344. package/dist/utils/file-writer.d.ts.map +1 -1
  345. package/dist/utils/file-writer.js +3 -2
  346. package/dist/utils/file-writer.js.map +1 -1
  347. package/dist/utils/managed-paths.d.ts +0 -7
  348. package/dist/utils/managed-paths.d.ts.map +1 -1
  349. package/dist/utils/managed-paths.js +0 -40
  350. package/dist/utils/managed-paths.js.map +1 -1
  351. package/dist/utils/manifest-prune.d.ts.map +1 -1
  352. package/dist/utils/manifest-prune.js +2 -11
  353. package/dist/utils/manifest-prune.js.map +1 -1
  354. package/dist/utils/uninstall-scrubbers.d.ts.map +1 -1
  355. package/dist/utils/uninstall-scrubbers.js +3 -3
  356. package/dist/utils/uninstall-scrubbers.js.map +1 -1
  357. package/dist/utils/workflow-resolver.d.ts +10 -16
  358. package/dist/utils/workflow-resolver.d.ts.map +1 -1
  359. package/dist/utils/workflow-resolver.js +25 -36
  360. package/dist/utils/workflow-resolver.js.map +1 -1
  361. package/package.json +2 -2
  362. package/dist/commands/channel/adapters/claude.d.ts.map +0 -1
  363. package/dist/commands/channel/adapters/claude.js.map +0 -1
  364. package/dist/commands/channel/adapters/codex.d.ts.map +0 -1
  365. package/dist/commands/channel/adapters/codex.js.map +0 -1
  366. package/dist/commands/channel/adapters/index.d.ts.map +0 -1
  367. package/dist/commands/channel/adapters/index.js.map +0 -1
  368. package/dist/commands/channel/adapters/types.d.ts.map +0 -1
  369. package/dist/commands/channel/adapters/types.js.map +0 -1
  370. package/dist/commands/channel/agent-loader.d.ts.map +0 -1
  371. package/dist/commands/channel/agent-loader.js.map +0 -1
  372. package/dist/commands/channel/context-loader.d.ts.map +0 -1
  373. package/dist/commands/channel/context-loader.js.map +0 -1
  374. package/dist/commands/channel/context-trust.d.ts.map +0 -1
  375. package/dist/commands/channel/context-trust.js.map +0 -1
  376. package/dist/commands/channel/context.d.ts +0 -16
  377. package/dist/commands/channel/context.d.ts.map +0 -1
  378. package/dist/commands/channel/context.js.map +0 -1
  379. package/dist/commands/channel/create.d.ts +0 -29
  380. package/dist/commands/channel/create.d.ts.map +0 -1
  381. package/dist/commands/channel/create.js +0 -47
  382. package/dist/commands/channel/create.js.map +0 -1
  383. package/dist/commands/channel/dev-parse-trace.d.ts.map +0 -1
  384. package/dist/commands/channel/dev-parse-trace.js.map +0 -1
  385. package/dist/commands/channel/guard.d.ts.map +0 -1
  386. package/dist/commands/channel/guard.js.map +0 -1
  387. package/dist/commands/channel/index.d.ts +0 -3
  388. package/dist/commands/channel/index.d.ts.map +0 -1
  389. package/dist/commands/channel/index.js.map +0 -1
  390. package/dist/commands/channel/interrupt.d.ts.map +0 -1
  391. package/dist/commands/channel/interrupt.js +0 -22
  392. package/dist/commands/channel/interrupt.js.map +0 -1
  393. package/dist/commands/channel/kill.d.ts +0 -7
  394. package/dist/commands/channel/kill.d.ts.map +0 -1
  395. package/dist/commands/channel/kill.js.map +0 -1
  396. package/dist/commands/channel/list.d.ts +0 -18
  397. package/dist/commands/channel/list.d.ts.map +0 -1
  398. package/dist/commands/channel/list.js.map +0 -1
  399. package/dist/commands/channel/messages.d.ts.map +0 -1
  400. package/dist/commands/channel/messages.js.map +0 -1
  401. package/dist/commands/channel/rm.d.ts +0 -27
  402. package/dist/commands/channel/rm.d.ts.map +0 -1
  403. package/dist/commands/channel/rm.js.map +0 -1
  404. package/dist/commands/channel/run.d.ts +0 -32
  405. package/dist/commands/channel/run.js +0 -141
  406. package/dist/commands/channel/run.js.map +0 -1
  407. package/dist/commands/channel/send.d.ts.map +0 -1
  408. package/dist/commands/channel/send.js.map +0 -1
  409. package/dist/commands/channel/spawn.d.ts.map +0 -1
  410. package/dist/commands/channel/spawn.js.map +0 -1
  411. package/dist/commands/channel/store/events.d.ts +0 -22
  412. package/dist/commands/channel/store/events.d.ts.map +0 -1
  413. package/dist/commands/channel/store/events.js.map +0 -1
  414. package/dist/commands/channel/store/filter.d.ts +0 -3
  415. package/dist/commands/channel/store/filter.d.ts.map +0 -1
  416. package/dist/commands/channel/store/filter.js +0 -2
  417. package/dist/commands/channel/store/filter.js.map +0 -1
  418. package/dist/commands/channel/store/lock.d.ts.map +0 -1
  419. package/dist/commands/channel/store/lock.js.map +0 -1
  420. package/dist/commands/channel/store/paths.d.ts.map +0 -1
  421. package/dist/commands/channel/store/paths.js.map +0 -1
  422. package/dist/commands/channel/store/schema.d.ts +0 -27
  423. package/dist/commands/channel/store/schema.d.ts.map +0 -1
  424. package/dist/commands/channel/store/schema.js +0 -34
  425. package/dist/commands/channel/store/schema.js.map +0 -1
  426. package/dist/commands/channel/store/thread-state.d.ts.map +0 -1
  427. package/dist/commands/channel/store/thread-state.js.map +0 -1
  428. package/dist/commands/channel/store/watch.d.ts +0 -19
  429. package/dist/commands/channel/store/watch.d.ts.map +0 -1
  430. package/dist/commands/channel/store/watch.js.map +0 -1
  431. package/dist/commands/channel/supervisor/idle.d.ts.map +0 -1
  432. package/dist/commands/channel/supervisor/idle.js.map +0 -1
  433. package/dist/commands/channel/supervisor/inbox.d.ts.map +0 -1
  434. package/dist/commands/channel/supervisor/inbox.js.map +0 -1
  435. package/dist/commands/channel/supervisor/shutdown.d.ts.map +0 -1
  436. package/dist/commands/channel/supervisor/shutdown.js.map +0 -1
  437. package/dist/commands/channel/supervisor/stdout.d.ts.map +0 -1
  438. package/dist/commands/channel/supervisor/stdout.js.map +0 -1
  439. package/dist/commands/channel/supervisor/turns.d.ts.map +0 -1
  440. package/dist/commands/channel/supervisor/turns.js.map +0 -1
  441. package/dist/commands/channel/supervisor/warning.d.ts.map +0 -1
  442. package/dist/commands/channel/supervisor/warning.js.map +0 -1
  443. package/dist/commands/channel/supervisor.d.ts.map +0 -1
  444. package/dist/commands/channel/supervisor.js.map +0 -1
  445. package/dist/commands/channel/text-body.d.ts +0 -13
  446. package/dist/commands/channel/text-body.d.ts.map +0 -1
  447. package/dist/commands/channel/text-body.js.map +0 -1
  448. package/dist/commands/channel/threads.d.ts +0 -39
  449. package/dist/commands/channel/threads.d.ts.map +0 -1
  450. package/dist/commands/channel/threads.js.map +0 -1
  451. package/dist/commands/channel/title.d.ts +0 -12
  452. package/dist/commands/channel/title.d.ts.map +0 -1
  453. package/dist/commands/channel/title.js +0 -24
  454. package/dist/commands/channel/title.js.map +0 -1
  455. package/dist/commands/channel/wait.d.ts.map +0 -1
  456. package/dist/commands/channel/wait.js.map +0 -1
  457. package/dist/commands/channel/workers.d.ts +0 -9
  458. package/dist/commands/channel/workers.d.ts.map +0 -1
  459. package/dist/commands/channel/workers.js +0 -31
  460. package/dist/commands/channel/workers.js.map +0 -1
  461. package/dist/templates/common/bundled-skills/trellis-channel/SKILL.md +0 -69
  462. package/dist/templates/common/bundled-skills/trellis-channel/references/command-reference.md +0 -549
  463. package/dist/templates/common/bundled-skills/trellis-channel/references/forum.md +0 -233
  464. package/dist/templates/common/bundled-skills/trellis-channel/references/progress-debugging.md +0 -237
  465. package/dist/templates/common/bundled-skills/trellis-channel/references/subnode-work.md +0 -193
  466. package/dist/templates/common/bundled-skills/trellis-channel/references/workers.md +0 -295
  467. package/dist/templates/common/bundled-skills/trellis-channel/references/workflows.md +0 -131
  468. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/multi-agent-channel.md +0 -70
  469. package/dist/templates/common/bundled-skills/trellis-research-record/SKILL.md +0 -14
  470. package/dist/templates/copilot/prompts/parallel.prompt.md +0 -204
  471. package/dist/templates/trellis/agents/check.md +0 -70
  472. package/dist/templates/trellis/agents/implement.md +0 -71
  473. package/dist/templates/trellis/agents/subnode.env +0 -4
  474. package/dist/templates/trellis/agents/subnode.md +0 -69
  475. package/dist/templates/trellis/scripts/common/context_projection.py +0 -508
  476. package/dist/templates/trellis/scripts/common/continuation_record.py +0 -450
  477. package/dist/templates/trellis/scripts/common/ownership_record.py +0 -439
  478. package/dist/templates/trellis/scripts/subnode_artifact.py +0 -597
  479. package/dist/templates/trellis/scripts/workspace_note.py +0 -126
  480. /package/dist/commands/{channel → teamwork}/adapters/types.js +0 -0
  481. /package/dist/commands/{channel → teamwork}/supervisor/idle.d.ts +0 -0
  482. /package/dist/commands/{channel → teamwork}/supervisor/idle.js +0 -0
  483. /package/dist/commands/{channel → teamwork}/supervisor/turns.d.ts +0 -0
  484. /package/dist/commands/{channel → teamwork}/supervisor/turns.js +0 -0
@@ -1,75 +1,34 @@
1
1
  # Local Workflow System
2
2
 
3
- `.trellis/workflow.md` is the Trellis workflow source of truth inside the user project. An AI does not need Trellis source code to understand how the current project should move tasks forward; this file is enough.
3
+ The installed project's .trellis/workflow.md is the local workflow source. Read it before changing task guidance or platform entry points.
4
4
 
5
- ## File Responsibilities
5
+ ## Business phases
6
6
 
7
- `.trellis/workflow.md` has three responsibilities:
7
+ The workflow keeps its business phases distinct, with separate activities, outputs, and transition conditions:
8
8
 
9
- 1. **Explain workflow phases**: Plan, Execute, Finish.
10
- 2. **Define skill routing**: which skill or agent the AI should use when the user expresses a certain intent.
11
- 3. **Provide workflow-state prompt blocks**: hooks can inject the prompt block for the current state into the conversation.
9
+ - Goal Exploration and Requirements Confirmation Phase
10
+ - Decision Space Construction and Consolidation Phase
11
+ - Solution Design and Convergence Phase
12
+ - Task Implementation and Test Verification Phase
13
+ - Delivery Review and On-Site Closeout Phase
12
14
 
13
- ## Current Phase Model
15
+ The task route may skip a phase when evidence shows it adds no value. 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. During Delivery Review and On-Site Closeout Phase, review the current delivery and handle task completion or cancellation.
14
16
 
15
- ```text
16
- Phase 1: Plan -> clarify what to build, produce prd.md and required research
17
- Phase 2: Execute -> implement against the PRD and specs, then check
18
- Phase 3: Finish -> final verification, preserve lessons, and wrap up
19
- ```
17
+ Phase identifiers, route revisions, accepted artifact revisions, and authorization are stored and changed through Trellis CLI. Skills and Hooks guide or surface the active phase; they do not create another state source. Formal session handoff is independent of the task and its phases.
20
18
 
21
- Each phase contains numbered steps, such as `1.3 Configure context`. These numbers are not runtime fields in `task.json`; they are workflow structure for AI and humans to read.
19
+ ## Skill routing and state prompts
22
20
 
23
- ## Skill Routing
21
+ Each phase Skill owns its procedure and diagram. The workflow entry routes to the Skill matching the current phase identifier. Component Skills are selected by the work required, not by a fixed phase checklist.
24
22
 
25
- `workflow.md` separates routing by platform capability:
23
+ Workflow-state blocks provide per-turn breadcrumbs. Keep their phase identifiers aligned with Core and update host parsers when headings or state tags change. Do not derive a phase from task status or artifact presence when Trellis CLI provides the current route.
26
24
 
27
- - Platforms with sub-agent support: dispatch `trellis-implement` by default for implementation and `trellis-check` for checking.
28
- - Platforms without sub-agent support: the main session reads skills such as `trellis-before-dev`, then executes directly.
29
-
30
- When changing local AI behavior, update the routing descriptions in `workflow.md` first, then check whether the corresponding platform skill, command, or agent files need to stay in sync.
31
-
32
- ## Workflow-State Prompt Blocks
33
-
34
- The bottom of `workflow.md` can contain state blocks like this:
35
-
36
- ```text
37
- [workflow-state:no_task]
38
- ...
39
- [/workflow-state:no_task]
40
- ```
41
-
42
- Hooks choose the right block based on current task status and inject it into the conversation. Common states include:
43
-
44
- | State | Meaning |
45
- | --- | --- |
46
- | `no_task` | The current session has no active task. |
47
- | `planning` | The task is still in requirements, research, or context configuration. |
48
- | `in_progress` | The task has entered implementation and checking. |
49
- | `completed` | The task is complete and waiting for wrap-up or archive. |
50
-
51
- If the user wants to change policies such as "whether to create a task when there is no task," "when task creation may be skipped," or "whether sub-agents are required," edit these state blocks and the routing table above them.
52
-
53
- ## Local Modification Patterns
54
-
55
- Common changes:
25
+ ## Local modification patterns
56
26
 
57
27
  | Goal | Edit point |
58
28
  | --- | --- |
59
- | Add a phase | Update the Phase Index, phase body, routing, and state blocks. |
60
- | Change task creation policy | Update the `no_task` state block and Phase 1 description. |
61
- | Change the default implementation/check path | Update Phase 2 and skill routing. |
62
- | Change the wrap-up flow | Update Phase 3 and `finish-work` related descriptions. Note the current split: Phase 3.4 = AI-driven code commits (batched, user-confirmed), Phase 3.5 = `/finish-work` (archive + record session). `/finish-work` refuses to run if the working tree is dirty. |
63
- | Change platform differences | Update routing descriptions grouped by platform. |
64
-
65
- After editing, make the AI reread `.trellis/workflow.md`; do not assume the flow from the old conversation is still valid.
66
-
67
- ## Relationship To Platform Files
68
-
69
- `workflow.md` is the semantic center of the local workflow, but each platform can also have its own entry files:
70
-
71
- - skills, such as `trellis-brainstorm` and `trellis-check`.
72
- - commands/prompts/workflows, such as continue and finish-work.
73
- - hooks, such as session-start or workflow-state injection.
29
+ | Change phase activities or transitions | .trellis/workflow.md and the matching phase Skill |
30
+ | Change component routing | .trellis/workflow.md and pennix-workflow-routing where applicable |
31
+ | Change lifecycle or phase state | Trellis CLI task workflow implementation and its contract |
32
+ | Change platform context injection | Relevant Hook or plugin, keeping the Trellis task record authoritative |
74
33
 
75
- If only `workflow.md` changes, platform entry files may still contain old language. When the user wants to change "what the AI actually does," also inspect the relevant platform directory.
34
+ After a shared workflow change, inspect relevant platform entry files for stale behavior. Keep phase-specific workflows distinct.
@@ -11,7 +11,7 @@ Skills and commands are textual entry points for user interaction with Trellis.
11
11
  | prompt | Explicit user invocation or platform selection | Similar to command, but in a platform prompt format. |
12
12
  | workflow | Explicit user selection or platform auto-match | Guides the main session when no sub-agent/hook exists. |
13
13
 
14
- Trellis workflow skills usually share one semantic set: brainstorm, before-dev, check, update-spec, break-loop. Multi-file built-in skills such as `trellis-meta` use layered references.
14
+ Trellis skills can cover reusable capabilities or dedicated workflow areas. Multi-file bundled skills such as `trellis-meta` keep supporting material in layered references.
15
15
 
16
16
  ## Common Paths
17
17
 
@@ -68,7 +68,7 @@ trellis mem list --cwd <project-path>
68
68
  trellis mem projects # → list active project cwds, then narrow
69
69
  ```
70
70
 
71
- Phase slicing (`--phase brainstorm|implement|all`) cuts the session at `task.py create`/`replan` and `task.py start` boundaries. For a finish-work review of the current task, `--phase brainstorm` recovers the planning discussion and `--phase implement` recovers the execution loop. Default is `all`.
71
+ Phase slicing (`--phase brainstorm|implement|all`) cuts the session at `task.py create` and `task.py start` boundaries. For a finish-work review of the current task, `--phase brainstorm` recovers the planning discussion and `--phase implement` recovers the execution loop. Default is `all`.
72
72
 
73
73
  ## Triggering patterns
74
74
 
@@ -23,7 +23,7 @@ Full flag reference for the five subcommands. Pin this as the authoritative sour
23
23
  | `--cwd <path>` | list / search | Force a specific project cwd instead of inferring from where you are. |
24
24
  | `--limit N` | list / search | Cap output rows. Default `50`. |
25
25
  | `--grep KW` | extract / context | Filter turns by keyword. Multi-token AND when whitespace-separated. |
26
- | `--phase brainstorm\|implement\|all` | extract | Slice session by Trellis task boundaries. `brainstorm` = `[task.py create/replan, task.py start)`. `implement` = turns outside brainstorm windows. Default `all`. |
26
+ | `--phase brainstorm\|implement\|all` | extract | Slice session by Trellis task boundaries. `brainstorm` = `[task.py create, task.py start)`. `implement` = turns outside brainstorm windows. Default `all`. |
27
27
  | `--turns N` | context | Number of hit turns to return. Default `3`. |
28
28
  | `--around N` | context | Surrounding turns to include per hit. Default `1`. |
29
29
  | `--max-chars N` | context | Total character budget. Default `6000` (~1500 tokens). |
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: trellis-solution-design-and-convergence
3
+ description: 当前任务处于解决方案设计与收敛阶段时,处理用户决定、方案完整性、外部先例和实施合同。
4
+ ---
5
+
6
+ # 解决方案设计与收敛阶段
7
+
8
+ 当 `current_phase_id` 为 `solution_design_and_convergence` 时使用。阅读本 Skill 同目录的 `workflow.md`,核对当前有效的需求基线和决策空间构造与归并阶段结果或跳过记录。
9
+
10
+ 本阶段锁定当前路线所依据的决定和方案,不代表实施已获授权。需用户决定时,使用 `pennix-decision-grill` 同步询问并留在解决方案设计与收敛阶段;实施路线须形成 `implementation_contract`,再单独取得实施批准后才能进入任务实施与测试验证阶段。触发 prior-art review 的方案须在阶段结果接受前完成该审查。
@@ -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"` → complete the PRD's bounded evidence work, verify its acceptance criteria and no-change boundary, then commit task artifacts 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 → **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.