@pennixrv/trellis 0.7.0-beta.9 → 0.7.1-beta.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.
- package/README.md +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +14 -26
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/ablate.js +1 -1
- package/dist/commands/ablate.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +30 -56
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/task-progress.d.ts +2 -0
- package/dist/commands/task-progress.d.ts.map +1 -1
- package/dist/commands/task-progress.js +37 -30
- package/dist/commands/task-progress.js.map +1 -1
- package/dist/commands/{channel → teamwork}/adapters/claude.d.ts +3 -3
- package/dist/commands/teamwork/adapters/claude.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/adapters/claude.js +3 -3
- package/dist/commands/teamwork/adapters/claude.js.map +1 -0
- package/dist/commands/{channel → teamwork}/adapters/codex.d.ts +1 -15
- package/dist/commands/teamwork/adapters/codex.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/adapters/codex.js +5 -42
- package/dist/commands/teamwork/adapters/codex.js.map +1 -0
- package/dist/commands/{channel → teamwork}/adapters/index.d.ts +6 -6
- package/dist/commands/teamwork/adapters/index.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/adapters/index.js +16 -52
- package/dist/commands/teamwork/adapters/index.js.map +1 -0
- package/dist/commands/{channel → teamwork}/adapters/types.d.ts +2 -2
- package/dist/commands/teamwork/adapters/types.d.ts.map +1 -0
- package/dist/commands/teamwork/adapters/types.js.map +1 -0
- package/dist/commands/{channel → teamwork}/agent-loader.d.ts +2 -4
- package/dist/commands/teamwork/agent-loader.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/agent-loader.js +4 -35
- package/dist/commands/teamwork/agent-loader.js.map +1 -0
- package/dist/commands/teamwork/artifact.d.ts +177 -0
- package/dist/commands/teamwork/artifact.d.ts.map +1 -0
- package/dist/commands/teamwork/artifact.js +908 -0
- package/dist/commands/teamwork/artifact.js.map +1 -0
- package/dist/commands/{channel → teamwork}/context-loader.d.ts +1 -1
- package/dist/commands/teamwork/context-loader.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/context-loader.js +12 -12
- package/dist/commands/teamwork/context-loader.js.map +1 -0
- package/dist/commands/{channel → teamwork}/context-trust.d.ts +6 -6
- package/dist/commands/teamwork/context-trust.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/context-trust.js +16 -16
- package/dist/commands/teamwork/context-trust.js.map +1 -0
- package/dist/commands/teamwork/context.d.ts +16 -0
- package/dist/commands/teamwork/context.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/context.js +17 -17
- package/dist/commands/teamwork/context.js.map +1 -0
- package/dist/commands/teamwork/coordinator.d.ts +89 -0
- package/dist/commands/teamwork/coordinator.d.ts.map +1 -0
- package/dist/commands/teamwork/coordinator.js +1198 -0
- package/dist/commands/teamwork/coordinator.js.map +1 -0
- package/dist/commands/teamwork/create.d.ts +23 -0
- package/dist/commands/teamwork/create.d.ts.map +1 -0
- package/dist/commands/teamwork/create.js +39 -0
- package/dist/commands/teamwork/create.js.map +1 -0
- package/dist/commands/{channel → teamwork}/dev-parse-trace.d.ts +1 -1
- package/dist/commands/teamwork/dev-parse-trace.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/dev-parse-trace.js +1 -1
- package/dist/commands/teamwork/dev-parse-trace.js.map +1 -0
- package/dist/commands/{channel → teamwork}/guard.d.ts +27 -46
- package/dist/commands/teamwork/guard.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/guard.js +54 -156
- package/dist/commands/teamwork/guard.js.map +1 -0
- package/dist/commands/teamwork/index.d.ts +3 -0
- package/dist/commands/teamwork/index.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/index.js +135 -165
- package/dist/commands/teamwork/index.js.map +1 -0
- package/dist/commands/{channel → teamwork}/interrupt.d.ts +1 -1
- package/dist/commands/teamwork/interrupt.d.ts.map +1 -0
- package/dist/commands/teamwork/interrupt.js +22 -0
- package/dist/commands/teamwork/interrupt.js.map +1 -0
- package/dist/commands/teamwork/kill.d.ts +7 -0
- package/dist/commands/teamwork/kill.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/kill.js +21 -21
- package/dist/commands/teamwork/kill.js.map +1 -0
- package/dist/commands/teamwork/list.d.ts +17 -0
- package/dist/commands/teamwork/list.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/list.js +18 -27
- package/dist/commands/teamwork/list.js.map +1 -0
- package/dist/commands/{channel → teamwork}/messages.d.ts +1 -1
- package/dist/commands/teamwork/messages.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/messages.js +18 -18
- package/dist/commands/teamwork/messages.js.map +1 -0
- package/dist/commands/teamwork/profiles.d.ts +25 -0
- package/dist/commands/teamwork/profiles.d.ts.map +1 -0
- package/dist/commands/teamwork/profiles.js +125 -0
- package/dist/commands/teamwork/profiles.js.map +1 -0
- package/dist/commands/teamwork/rm.d.ts +27 -0
- package/dist/commands/teamwork/rm.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/rm.js +21 -22
- package/dist/commands/teamwork/rm.js.map +1 -0
- package/dist/commands/teamwork/run.d.ts +29 -0
- package/dist/commands/{channel → teamwork}/run.d.ts.map +1 -1
- package/dist/commands/teamwork/run.js +129 -0
- package/dist/commands/teamwork/run.js.map +1 -0
- package/dist/commands/{channel → teamwork}/send.d.ts +1 -1
- package/dist/commands/teamwork/send.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/send.js +7 -7
- package/dist/commands/teamwork/send.js.map +1 -0
- package/dist/commands/{channel → teamwork}/spawn.d.ts +8 -12
- package/dist/commands/teamwork/spawn.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/spawn.js +51 -112
- package/dist/commands/teamwork/spawn.js.map +1 -0
- package/dist/commands/teamwork/store/events.d.ts +22 -0
- package/dist/commands/teamwork/store/events.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/store/events.js +8 -8
- package/dist/commands/teamwork/store/events.js.map +1 -0
- package/dist/commands/teamwork/store/filter.d.ts +3 -0
- package/dist/commands/teamwork/store/filter.d.ts.map +1 -0
- package/dist/commands/teamwork/store/filter.js +2 -0
- package/dist/commands/teamwork/store/filter.js.map +1 -0
- package/dist/commands/{channel → teamwork}/store/lock.d.ts +1 -1
- package/dist/commands/teamwork/store/lock.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/store/lock.js +2 -2
- package/dist/commands/teamwork/store/lock.js.map +1 -0
- package/dist/commands/{channel → teamwork}/store/paths.d.ts +18 -32
- package/dist/commands/teamwork/store/paths.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/store/paths.js +42 -109
- package/dist/commands/teamwork/store/paths.js.map +1 -0
- package/dist/commands/teamwork/store/schema.d.ts +18 -0
- package/dist/commands/teamwork/store/schema.d.ts.map +1 -0
- package/dist/commands/teamwork/store/schema.js +23 -0
- package/dist/commands/teamwork/store/schema.js.map +1 -0
- package/dist/commands/{channel → teamwork}/store/thread-state.d.ts +3 -3
- package/dist/commands/teamwork/store/thread-state.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/store/thread-state.js +1 -1
- package/dist/commands/teamwork/store/thread-state.js.map +1 -0
- package/dist/commands/teamwork/store/watch.d.ts +19 -0
- package/dist/commands/teamwork/store/watch.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/store/watch.js +8 -8
- package/dist/commands/teamwork/store/watch.js.map +1 -0
- package/dist/commands/teamwork/supervisor/idle.d.ts.map +1 -0
- package/dist/commands/teamwork/supervisor/idle.js.map +1 -0
- package/dist/commands/{channel → teamwork}/supervisor/inbox.d.ts +2 -2
- package/dist/commands/teamwork/supervisor/inbox.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/supervisor/inbox.js +14 -14
- package/dist/commands/teamwork/supervisor/inbox.js.map +1 -0
- package/dist/commands/{channel → teamwork}/supervisor/shutdown.d.ts +3 -6
- package/dist/commands/teamwork/supervisor/shutdown.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/supervisor/shutdown.js +7 -17
- package/dist/commands/teamwork/supervisor/shutdown.js.map +1 -0
- package/dist/commands/{channel → teamwork}/supervisor/stdout.d.ts +3 -5
- package/dist/commands/teamwork/supervisor/stdout.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/supervisor/stdout.js +12 -23
- package/dist/commands/teamwork/supervisor/stdout.js.map +1 -0
- package/dist/commands/teamwork/supervisor/turns.d.ts.map +1 -0
- package/dist/commands/teamwork/supervisor/turns.js.map +1 -0
- package/dist/commands/{channel → teamwork}/supervisor/warning.d.ts +5 -5
- package/dist/commands/teamwork/supervisor/warning.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/supervisor/warning.js +6 -6
- package/dist/commands/teamwork/supervisor/warning.js.map +1 -0
- package/dist/commands/{channel → teamwork}/supervisor.d.ts +21 -21
- package/dist/commands/teamwork/supervisor.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/supervisor.js +53 -63
- package/dist/commands/teamwork/supervisor.js.map +1 -0
- package/dist/commands/teamwork/teammate-adapters.d.ts +31 -0
- package/dist/commands/teamwork/teammate-adapters.d.ts.map +1 -0
- package/dist/commands/teamwork/teammate-adapters.js +96 -0
- package/dist/commands/teamwork/teammate-adapters.js.map +1 -0
- package/dist/commands/teamwork/teammate-config.d.ts +19 -0
- package/dist/commands/teamwork/teammate-config.d.ts.map +1 -0
- package/dist/commands/teamwork/teammate-config.js +97 -0
- package/dist/commands/teamwork/teammate-config.js.map +1 -0
- package/dist/commands/teamwork/teammate-launch.d.ts +58 -0
- package/dist/commands/teamwork/teammate-launch.d.ts.map +1 -0
- package/dist/commands/teamwork/teammate-launch.js +125 -0
- package/dist/commands/teamwork/teammate-launch.js.map +1 -0
- package/dist/commands/teamwork/text-body.d.ts +13 -0
- package/dist/commands/teamwork/text-body.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/text-body.js +3 -3
- package/dist/commands/teamwork/text-body.js.map +1 -0
- package/dist/commands/teamwork/threads.d.ts +35 -0
- package/dist/commands/teamwork/threads.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/threads.js +19 -19
- package/dist/commands/teamwork/threads.js.map +1 -0
- package/dist/commands/teamwork/title.d.ts +12 -0
- package/dist/commands/teamwork/title.d.ts.map +1 -0
- package/dist/commands/teamwork/title.js +24 -0
- package/dist/commands/teamwork/title.js.map +1 -0
- package/dist/commands/{channel → teamwork}/wait.d.ts +1 -5
- package/dist/commands/teamwork/wait.d.ts.map +1 -0
- package/dist/commands/{channel → teamwork}/wait.js +8 -21
- package/dist/commands/teamwork/wait.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +93 -90
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/workflow.d.ts +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +9 -10
- package/dist/commands/workflow.js.map +1 -1
- package/dist/configurators/claude.d.ts +0 -17
- package/dist/configurators/claude.d.ts.map +1 -1
- package/dist/configurators/claude.js +2 -61
- package/dist/configurators/claude.js.map +1 -1
- package/dist/configurators/shared.d.ts.map +1 -1
- package/dist/configurators/shared.js +2 -2
- package/dist/configurators/shared.js.map +1 -1
- package/dist/configurators/snow.js +1 -1
- package/dist/configurators/snow.js.map +1 -1
- package/dist/configurators/workflow.d.ts +1 -1
- package/dist/configurators/workflow.js +5 -5
- package/dist/configurators/workflow.js.map +1 -1
- package/dist/constants/paths.d.ts +1 -1
- package/dist/constants/paths.d.ts.map +1 -1
- package/dist/constants/paths.js +1 -1
- package/dist/constants/paths.js.map +1 -1
- package/dist/migrations/manifests/0.7.0-beta.10.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.11.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.12.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.13.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.14.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.15.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.16.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.17.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.18.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.19.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.20.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.21.json +17 -0
- package/dist/migrations/manifests/0.7.0-beta.22.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.23.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.24.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.25.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.26.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.27.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.28.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.29.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.30.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.31.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.32.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.33.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.34.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.35.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.36.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.37.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.38.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.39.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.40.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.41.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.42.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.43.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.44.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.45.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.46.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.47.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.48.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.49.json +13 -0
- package/dist/migrations/manifests/0.7.0-beta.50.json +12 -0
- package/dist/migrations/manifests/0.7.0-beta.51.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.52.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.53.json +27 -0
- package/dist/migrations/manifests/0.7.0-beta.54.json +8 -0
- package/dist/migrations/manifests/0.7.1-beta.0.json +9 -0
- package/dist/migrations/manifests/0.7.1-beta.1.json +186 -0
- package/dist/migrations/manifests/0.7.1.json +9 -0
- package/dist/templates/claude/hooks/statusline.py +0 -7
- package/dist/templates/codex/hooks/session-start.py +31 -38
- package/dist/templates/common/bundled-skills/trellis-decision-space-construction-and-merging/SKILL.md +10 -0
- package/dist/templates/common/bundled-skills/trellis-decision-space-construction-and-merging/workflow.md +40 -0
- package/dist/templates/common/bundled-skills/trellis-delivery-review-and-closeout/SKILL.md +10 -0
- package/dist/templates/common/bundled-skills/trellis-delivery-review-and-closeout/workflow.md +55 -0
- package/dist/templates/common/bundled-skills/trellis-goal-exploration-and-requirements/SKILL.md +10 -0
- package/dist/templates/common/bundled-skills/trellis-goal-exploration-and-requirements/workflow.md +33 -0
- package/dist/templates/common/bundled-skills/trellis-meta/SKILL.md +25 -25
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-agents.md +1 -1
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +13 -19
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-spec-structure.md +1 -1
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-task-lifecycle.md +27 -75
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-workflow.md +17 -56
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/overview.md +1 -1
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/bundled-skills.md +14 -11
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/generated-files.md +0 -33
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/multi-agent-teamwork.md +32 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/spec-system.md +1 -1
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/task-system.md +25 -111
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workflow.md +19 -60
- package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/skills-and-commands.md +1 -1
- package/dist/templates/common/bundled-skills/trellis-session-insight/SKILL.md +1 -1
- package/dist/templates/common/bundled-skills/trellis-session-insight/references/cli-quick-reference.md +1 -1
- package/dist/templates/common/bundled-skills/trellis-solution-design-and-convergence/SKILL.md +10 -0
- package/dist/templates/common/bundled-skills/trellis-solution-design-and-convergence/workflow.md +36 -0
- package/dist/templates/common/bundled-skills/trellis-task-implementation/SKILL.md +10 -0
- package/dist/templates/common/bundled-skills/trellis-task-implementation/workflow.md +29 -0
- package/dist/templates/common/bundled-skills/trellis-teamwork/SKILL.md +73 -0
- package/dist/templates/common/bundled-skills/trellis-teamwork/references/coordination-modes.md +29 -0
- package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-configuration-matrix.md +31 -0
- package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-processes.md +37 -0
- package/dist/templates/common/bundled-skills/trellis-teamwork/references/teamwork-plan-construction.md +78 -0
- package/dist/templates/common/commands/continue.md +9 -49
- package/dist/templates/common/commands/finish-work.md +10 -58
- package/dist/templates/common/commands/start.md +19 -49
- package/dist/templates/common/skills/brainstorm.md +11 -199
- package/dist/templates/copilot/hooks/session-start.py +30 -26
- package/dist/templates/copilot/prompts/brainstorm.prompt.md +7 -160
- package/dist/templates/copilot/prompts/finish-work.prompt.md +11 -88
- package/dist/templates/copilot/prompts/record-session.prompt.md +4 -12
- package/dist/templates/copilot/prompts/start.prompt.md +12 -10
- package/dist/templates/dsh/DSH.md +2 -2
- package/dist/templates/extract.js +4 -0
- package/dist/templates/extract.js.map +1 -1
- package/dist/templates/kiro/agents/trellis.json +2 -2
- package/dist/templates/markdown/agents.md +14 -3
- package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +9 -8
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +1 -1
- package/dist/templates/markdown/workspace-index.md +0 -1
- package/dist/templates/omp/extensions/trellis/index.ts.txt +28 -17
- package/dist/templates/opencode/lib/session-utils.js +20 -25
- package/dist/templates/opencode/lib/trellis-context.js +4 -76
- package/dist/templates/opencode/plugins/inject-subagent-context.js +5 -4
- package/dist/templates/opencode/plugins/inject-workflow-state.js +14 -17
- package/dist/templates/shared-hooks/inject-shell-session-context.py +3 -3
- package/dist/templates/shared-hooks/inject-subagent-context.py +445 -67
- package/dist/templates/shared-hooks/inject-workflow-state.py +44 -36
- package/dist/templates/shared-hooks/session-start.py +21 -33
- package/dist/templates/trellis/agents/delegated-worktree-primary-agent.md +18 -0
- package/dist/templates/trellis/agents/teammate-profiles.json +8 -0
- package/dist/templates/trellis/agents/teammate.md +63 -0
- package/dist/templates/trellis/config.yaml +29 -38
- package/dist/templates/trellis/gitignore.txt +1 -0
- package/dist/templates/trellis/index.d.ts +8 -12
- package/dist/templates/trellis/index.d.ts.map +1 -1
- package/dist/templates/trellis/index.js +14 -25
- package/dist/templates/trellis/index.js.map +1 -1
- package/dist/templates/trellis/scripts/add_session.py +1 -1
- package/dist/templates/trellis/scripts/common/__init__.py +0 -1
- package/dist/templates/trellis/scripts/common/active_task.py +136 -100
- package/dist/templates/trellis/scripts/common/config.py +7 -9
- package/dist/templates/trellis/scripts/common/git_context.py +1 -1
- package/dist/templates/trellis/scripts/common/io.py +19 -0
- package/dist/templates/trellis/scripts/common/paths.py +0 -1
- package/dist/templates/trellis/scripts/common/safe_commit.py +11 -90
- package/dist/templates/trellis/scripts/common/session_context.py +1 -8
- package/dist/templates/trellis/scripts/common/spec_match.py +1 -1
- package/dist/templates/trellis/scripts/common/task_context.py +152 -59
- package/dist/templates/trellis/scripts/common/task_continuity.py +598 -0
- package/dist/templates/trellis/scripts/common/task_store.py +70 -548
- package/dist/templates/trellis/scripts/common/task_utils.py +4 -98
- package/dist/templates/trellis/scripts/common/task_workflow.py +1096 -0
- package/dist/templates/trellis/scripts/common/tasks.py +5 -8
- package/dist/templates/trellis/scripts/common/workflow_phase.py +8 -7
- package/dist/templates/trellis/scripts/hooks/linear_sync.py +3 -3
- package/dist/templates/trellis/scripts/task.py +119 -377
- package/dist/templates/trellis/workflow.md +111 -706
- package/dist/utils/agent-refs.d.ts +5 -5
- package/dist/utils/agent-refs.js +6 -6
- package/dist/utils/file-writer.d.ts +3 -2
- package/dist/utils/file-writer.d.ts.map +1 -1
- package/dist/utils/file-writer.js +3 -2
- package/dist/utils/file-writer.js.map +1 -1
- package/dist/utils/managed-paths.d.ts +0 -7
- package/dist/utils/managed-paths.d.ts.map +1 -1
- package/dist/utils/managed-paths.js +0 -40
- package/dist/utils/managed-paths.js.map +1 -1
- package/dist/utils/manifest-prune.d.ts +2 -1
- package/dist/utils/manifest-prune.d.ts.map +1 -1
- package/dist/utils/manifest-prune.js +14 -16
- package/dist/utils/manifest-prune.js.map +1 -1
- package/dist/utils/uninstall-scrubbers.d.ts.map +1 -1
- package/dist/utils/uninstall-scrubbers.js +3 -3
- package/dist/utils/uninstall-scrubbers.js.map +1 -1
- package/dist/utils/workflow-resolver.d.ts +10 -16
- package/dist/utils/workflow-resolver.d.ts.map +1 -1
- package/dist/utils/workflow-resolver.js +25 -36
- package/dist/utils/workflow-resolver.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/channel/adapters/claude.d.ts.map +0 -1
- package/dist/commands/channel/adapters/claude.js.map +0 -1
- package/dist/commands/channel/adapters/codex.d.ts.map +0 -1
- package/dist/commands/channel/adapters/codex.js.map +0 -1
- package/dist/commands/channel/adapters/index.d.ts.map +0 -1
- package/dist/commands/channel/adapters/index.js.map +0 -1
- package/dist/commands/channel/adapters/types.d.ts.map +0 -1
- package/dist/commands/channel/adapters/types.js.map +0 -1
- package/dist/commands/channel/agent-loader.d.ts.map +0 -1
- package/dist/commands/channel/agent-loader.js.map +0 -1
- package/dist/commands/channel/context-loader.d.ts.map +0 -1
- package/dist/commands/channel/context-loader.js.map +0 -1
- package/dist/commands/channel/context-trust.d.ts.map +0 -1
- package/dist/commands/channel/context-trust.js.map +0 -1
- package/dist/commands/channel/context.d.ts +0 -16
- package/dist/commands/channel/context.d.ts.map +0 -1
- package/dist/commands/channel/context.js.map +0 -1
- package/dist/commands/channel/create.d.ts +0 -29
- package/dist/commands/channel/create.d.ts.map +0 -1
- package/dist/commands/channel/create.js +0 -47
- package/dist/commands/channel/create.js.map +0 -1
- package/dist/commands/channel/dev-parse-trace.d.ts.map +0 -1
- package/dist/commands/channel/dev-parse-trace.js.map +0 -1
- package/dist/commands/channel/guard.d.ts.map +0 -1
- package/dist/commands/channel/guard.js.map +0 -1
- package/dist/commands/channel/index.d.ts +0 -3
- package/dist/commands/channel/index.d.ts.map +0 -1
- package/dist/commands/channel/index.js.map +0 -1
- package/dist/commands/channel/interrupt.d.ts.map +0 -1
- package/dist/commands/channel/interrupt.js +0 -22
- package/dist/commands/channel/interrupt.js.map +0 -1
- package/dist/commands/channel/kill.d.ts +0 -7
- package/dist/commands/channel/kill.d.ts.map +0 -1
- package/dist/commands/channel/kill.js.map +0 -1
- package/dist/commands/channel/list.d.ts +0 -18
- package/dist/commands/channel/list.d.ts.map +0 -1
- package/dist/commands/channel/list.js.map +0 -1
- package/dist/commands/channel/messages.d.ts.map +0 -1
- package/dist/commands/channel/messages.js.map +0 -1
- package/dist/commands/channel/rm.d.ts +0 -27
- package/dist/commands/channel/rm.d.ts.map +0 -1
- package/dist/commands/channel/rm.js.map +0 -1
- package/dist/commands/channel/run.d.ts +0 -32
- package/dist/commands/channel/run.js +0 -141
- package/dist/commands/channel/run.js.map +0 -1
- package/dist/commands/channel/send.d.ts.map +0 -1
- package/dist/commands/channel/send.js.map +0 -1
- package/dist/commands/channel/spawn.d.ts.map +0 -1
- package/dist/commands/channel/spawn.js.map +0 -1
- package/dist/commands/channel/store/events.d.ts +0 -22
- package/dist/commands/channel/store/events.d.ts.map +0 -1
- package/dist/commands/channel/store/events.js.map +0 -1
- package/dist/commands/channel/store/filter.d.ts +0 -3
- package/dist/commands/channel/store/filter.d.ts.map +0 -1
- package/dist/commands/channel/store/filter.js +0 -2
- package/dist/commands/channel/store/filter.js.map +0 -1
- package/dist/commands/channel/store/lock.d.ts.map +0 -1
- package/dist/commands/channel/store/lock.js.map +0 -1
- package/dist/commands/channel/store/paths.d.ts.map +0 -1
- package/dist/commands/channel/store/paths.js.map +0 -1
- package/dist/commands/channel/store/schema.d.ts +0 -27
- package/dist/commands/channel/store/schema.d.ts.map +0 -1
- package/dist/commands/channel/store/schema.js +0 -34
- package/dist/commands/channel/store/schema.js.map +0 -1
- package/dist/commands/channel/store/thread-state.d.ts.map +0 -1
- package/dist/commands/channel/store/thread-state.js.map +0 -1
- package/dist/commands/channel/store/watch.d.ts +0 -19
- package/dist/commands/channel/store/watch.d.ts.map +0 -1
- package/dist/commands/channel/store/watch.js.map +0 -1
- package/dist/commands/channel/supervisor/idle.d.ts.map +0 -1
- package/dist/commands/channel/supervisor/idle.js.map +0 -1
- package/dist/commands/channel/supervisor/inbox.d.ts.map +0 -1
- package/dist/commands/channel/supervisor/inbox.js.map +0 -1
- package/dist/commands/channel/supervisor/shutdown.d.ts.map +0 -1
- package/dist/commands/channel/supervisor/shutdown.js.map +0 -1
- package/dist/commands/channel/supervisor/stdout.d.ts.map +0 -1
- package/dist/commands/channel/supervisor/stdout.js.map +0 -1
- package/dist/commands/channel/supervisor/turns.d.ts.map +0 -1
- package/dist/commands/channel/supervisor/turns.js.map +0 -1
- package/dist/commands/channel/supervisor/warning.d.ts.map +0 -1
- package/dist/commands/channel/supervisor/warning.js.map +0 -1
- package/dist/commands/channel/supervisor.d.ts.map +0 -1
- package/dist/commands/channel/supervisor.js.map +0 -1
- package/dist/commands/channel/text-body.d.ts +0 -13
- package/dist/commands/channel/text-body.d.ts.map +0 -1
- package/dist/commands/channel/text-body.js.map +0 -1
- package/dist/commands/channel/threads.d.ts +0 -39
- package/dist/commands/channel/threads.d.ts.map +0 -1
- package/dist/commands/channel/threads.js.map +0 -1
- package/dist/commands/channel/title.d.ts +0 -12
- package/dist/commands/channel/title.d.ts.map +0 -1
- package/dist/commands/channel/title.js +0 -24
- package/dist/commands/channel/title.js.map +0 -1
- package/dist/commands/channel/wait.d.ts.map +0 -1
- package/dist/commands/channel/wait.js.map +0 -1
- package/dist/commands/channel/workers.d.ts +0 -9
- package/dist/commands/channel/workers.d.ts.map +0 -1
- package/dist/commands/channel/workers.js +0 -31
- package/dist/commands/channel/workers.js.map +0 -1
- package/dist/templates/common/bundled-skills/trellis-channel/SKILL.md +0 -69
- package/dist/templates/common/bundled-skills/trellis-channel/references/command-reference.md +0 -549
- package/dist/templates/common/bundled-skills/trellis-channel/references/forum.md +0 -233
- package/dist/templates/common/bundled-skills/trellis-channel/references/progress-debugging.md +0 -237
- package/dist/templates/common/bundled-skills/trellis-channel/references/subnode-work.md +0 -222
- package/dist/templates/common/bundled-skills/trellis-channel/references/workers.md +0 -295
- package/dist/templates/common/bundled-skills/trellis-channel/references/workflows.md +0 -131
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/multi-agent-channel.md +0 -70
- package/dist/templates/common/bundled-skills/trellis-research-record/SKILL.md +0 -14
- package/dist/templates/copilot/prompts/parallel.prompt.md +0 -204
- package/dist/templates/trellis/agents/check.md +0 -70
- package/dist/templates/trellis/agents/implement.md +0 -71
- package/dist/templates/trellis/agents/subnode.env +0 -4
- package/dist/templates/trellis/agents/subnode.md +0 -76
- package/dist/templates/trellis/scripts/common/context_projection.py +0 -508
- package/dist/templates/trellis/scripts/common/continuation_record.py +0 -450
- package/dist/templates/trellis/scripts/common/ownership_record.py +0 -439
- package/dist/templates/trellis/scripts/subnode_artifact.py +0 -735
- package/dist/templates/trellis/scripts/workspace_note.py +0 -126
- /package/dist/commands/{channel → teamwork}/adapters/types.js +0 -0
- /package/dist/commands/{channel → teamwork}/supervisor/idle.d.ts +0 -0
- /package/dist/commands/{channel → teamwork}/supervisor/idle.js +0 -0
- /package/dist/commands/{channel → teamwork}/supervisor/turns.d.ts +0 -0
- /package/dist/commands/{channel → teamwork}/supervisor/turns.js +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Teamwork Runtime
|
|
2
|
+
|
|
3
|
+
`trellis teamwork` provides durable coordination sessions and teammate processes. Its session lifecycle is independent of the Trellis task lifecycle and phase route. A session may be associated with a task, but it never owns task status, phase state, or phase acceptance.
|
|
4
|
+
|
|
5
|
+
## Local surfaces
|
|
6
|
+
|
|
7
|
+
| Surface | Purpose |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `~/.trellis/teamwork/<project>/<session>/events.jsonl` | Durable Teamwork Session event log. |
|
|
10
|
+
| `.trellis/agents/teammate.md` | Generic behavior card loaded for a teammate. |
|
|
11
|
+
| `.trellis/agents/teammate-profiles.json` | Provider and execution profiles. |
|
|
12
|
+
| `.trellis/config.yaml` (`teamwork.*`) | Teammate concurrency and process guard settings. |
|
|
13
|
+
| `packages/core/src/teamwork/` | Reusable Teamwork Session event and storage APIs. |
|
|
14
|
+
| `packages/cli/src/commands/teamwork/` | CLI commands, provider adapters, and process supervision. |
|
|
15
|
+
|
|
16
|
+
The storage root defaults to `~/.trellis/teamwork`; `TRELLIS_TEAMWORK_ROOT` overrides it. The project bucket defaults to a key derived from the current working directory; `TRELLIS_TEAMWORK_PROJECT` overrides that key.
|
|
17
|
+
|
|
18
|
+
## Ownership
|
|
19
|
+
|
|
20
|
+
- Trellis Core owns reusable Teamwork Session event, storage, and coordination contracts.
|
|
21
|
+
- The Trellis CLI owns command handling, teammate process supervision, and task-bound batch artifacts.
|
|
22
|
+
- The active Trellis task remains the source of truth for task and phase state. Teamwork dispatch and reports may bind to its current phase and revisions; Teamwork does not write phase acceptance.
|
|
23
|
+
- Accepted reports remain task evidence. Temporary batch data may be removed when the batch settles. Teamwork Session event logs follow their own lifecycle.
|
|
24
|
+
- Host capabilities must pass the configured capability check before batch execution. A provider contract or fixture alone does not establish that a host is available.
|
|
25
|
+
|
|
26
|
+
## Configuration
|
|
27
|
+
|
|
28
|
+
The project configuration supports `teamwork.teammate.max_concurrency` and `teamwork.teammate_guard.idle_timeout`, `max_live_teammates`, and `non_batch_reserved`. Defaults and CLI overrides are defined by the current Trellis CLI; read `packages/cli/src/commands/teamwork/teammate-config.ts` before changing them.
|
|
29
|
+
|
|
30
|
+
## Related entry points
|
|
31
|
+
|
|
32
|
+
Use the bundled `trellis-teamwork` Skill for command usage and teammate coordination. Use `trellis workflow` and the active task record for workflow behavior. Do not route task or phase transitions through a Teamwork Session.
|
|
@@ -95,7 +95,7 @@ When the AI learns a new rule during implementation or debugging, it should upda
|
|
|
95
95
|
| Change monorepo spec mapping | `packages` / `default_package` / `spec_scope` in `.trellis/config.yaml`. |
|
|
96
96
|
| Change which specs AI reads before implementation | The task's `implement.jsonl`. |
|
|
97
97
|
| Change which specs AI reads during checking | The task's `check.jsonl`. |
|
|
98
|
-
| Change when specs should be updated | Phase
|
|
98
|
+
| Change when specs should be updated | Solution Design and Convergence Phase guidance in `.trellis/workflow.md` and the `trellis-update-spec` skill. |
|
|
99
99
|
|
|
100
100
|
## Boundaries
|
|
101
101
|
|
|
@@ -1,130 +1,44 @@
|
|
|
1
1
|
# Local Task System
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Task Directory Structure
|
|
6
|
-
|
|
7
|
-
```text
|
|
8
|
-
.trellis/tasks/
|
|
9
|
-
├── 04-28-example-task/
|
|
10
|
-
│ ├── task.json
|
|
11
|
-
│ ├── prd.md
|
|
12
|
-
│ ├── design.md
|
|
13
|
-
│ ├── implement.md
|
|
14
|
-
│ ├── implement.jsonl
|
|
15
|
-
│ ├── check.jsonl
|
|
16
|
-
│ └── research/
|
|
17
|
-
└── archive/
|
|
18
|
-
└── 2026-04/
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
| File | Purpose |
|
|
22
|
-
| --- | --- |
|
|
23
|
-
| `task.json` | Task metadata: status, assignee, priority, branch, parent/child tasks, and similar fields. |
|
|
24
|
-
| `prd.md` | Requirements, constraints, and acceptance criteria. Lightweight tasks may be PRD-only. |
|
|
25
|
-
| `design.md` | Technical design for complex tasks: boundaries, contracts, data flow, compatibility, tradeoffs. |
|
|
26
|
-
| `implement.md` | Execution plan for complex tasks: ordered checklist, validation commands, review gates, rollback points. |
|
|
27
|
-
| `implement.jsonl` | List of spec/research files the implement agent must read first. |
|
|
28
|
-
| `check.jsonl` | List of spec/research files the check agent must read first. |
|
|
29
|
-
| `research/` | Research artifacts. Complex findings should not live only in chat. |
|
|
30
|
-
|
|
31
|
-
## `task.json`
|
|
32
|
-
|
|
33
|
-
`task.json` records task status and metadata. Common fields:
|
|
34
|
-
|
|
35
|
-
| Field | Meaning |
|
|
36
|
-
| --- | --- |
|
|
37
|
-
| `id` / `name` / `title` | Task identity and title. |
|
|
38
|
-
| `status` | Status such as `planning`, `in_progress`, `review`, or `completed`. |
|
|
39
|
-
| `priority` | `P0`, `P1`, `P2`, `P3`. |
|
|
40
|
-
| `creator` / `assignee` | Creator and assignee. |
|
|
41
|
-
| `package` | Target package in a monorepo; may be empty. |
|
|
42
|
-
| `branch` / `base_branch` | Working branch and PR target branch. |
|
|
43
|
-
| `children` / `parent` | Parent/child task relationships. |
|
|
44
|
-
| `commit` / `pr_url` | Commit and PR information after completion. |
|
|
45
|
-
| `meta` | Extension fields. |
|
|
46
|
-
|
|
47
|
-
## Parent / Child Task Trees
|
|
48
|
-
|
|
49
|
-
Parent/child task relationships are for work structure. A parent task groups related deliverables under one source requirement set; it is not a dependency scheduler and does not replace the child task's own planning artifacts.
|
|
50
|
-
|
|
51
|
-
Use a parent task when a request has multiple independently verifiable deliverables. The parent owns:
|
|
52
|
-
|
|
53
|
-
- Source requirements and user-facing scope.
|
|
54
|
-
- The map of child tasks and their responsibility boundaries.
|
|
55
|
-
- Cross-child acceptance criteria and final integration review.
|
|
3
|
+
Tasks live under .trellis/tasks/. A task record keeps its artifacts and history in place after completion or cancellation; Trellis does not move tasks into an archive.
|
|
56
4
|
|
|
57
|
-
|
|
5
|
+
## Task records
|
|
58
6
|
|
|
59
|
-
|
|
7
|
+
Each task directory may contain task.json, prd.md, design.md, implement.md, research/, and context manifests. Use only the artifacts needed by the task.
|
|
60
8
|
|
|
61
|
-
|
|
62
|
-
python3 ./.trellis/scripts/task.py create "<child title>" --description "<one-line summary>" --slug <child-slug> --parent <parent-dir>
|
|
63
|
-
```
|
|
9
|
+
task.json records identity, lifecycle status, ownership, and parent/child relationships. The Trellis CLI task workflow record stores the ordered phase route, current phase, revisions, evidence, acceptance, and authorization. Do not edit lifecycle or phase status by hand.
|
|
64
10
|
|
|
65
|
-
|
|
11
|
+
## Parent and child tasks
|
|
66
12
|
|
|
67
|
-
|
|
68
|
-
python3 ./.trellis/scripts/task.py add-subtask <parent-dir> <child-dir>
|
|
69
|
-
python3 ./.trellis/scripts/task.py remove-subtask <parent-dir> <child-dir>
|
|
70
|
-
```
|
|
13
|
+
A parent groups related deliverables and records cross-task acceptance. Each child has its own task record and lifecycle. Record dependencies explicitly in task artifacts; tree position does not imply execution order.
|
|
71
14
|
|
|
72
|
-
|
|
15
|
+
## Active task context
|
|
73
16
|
|
|
74
|
-
The
|
|
17
|
+
The active task pointer is scoped to an AI session under .trellis/.runtime/sessions/. Use task.py current to inspect it, task.py start to attach a task to the current session, and task.py finish to clear the current session pointer. Do not create a shared global pointer.
|
|
75
18
|
|
|
76
|
-
##
|
|
19
|
+
## Native task operations
|
|
77
20
|
|
|
78
|
-
|
|
21
|
+
python3 ./.trellis/scripts/task.py create "<title>" --description "<summary>" [--parent <task>]
|
|
22
|
+
python3 ./.trellis/scripts/task.py phase show <task>
|
|
23
|
+
python3 ./.trellis/scripts/task.py validate <task>
|
|
24
|
+
python3 ./.trellis/scripts/task.py start <task>
|
|
25
|
+
python3 ./.trellis/scripts/task.py complete <task>
|
|
26
|
+
python3 ./.trellis/scripts/task.py cancel <task> --reason "<reason>" --evidence-ref <reference>
|
|
79
27
|
|
|
80
|
-
|
|
81
|
-
.trellis/.runtime/sessions/<context-key>.json
|
|
82
|
-
```
|
|
28
|
+
Use phase operations through task.py phase for artifact revisions, acceptance, evidence-backed skips, waits, blocks, resume, return, route, and authorization. Consult task.py help for current arguments. Completion and cancellation occur only after Delivery Review and On-Site Closeout Phase.
|
|
83
29
|
|
|
84
|
-
|
|
30
|
+
The read-only trellis task progress command summarizes planning, in_progress, and completed lifecycle records. It does not change task state.
|
|
85
31
|
|
|
86
|
-
|
|
32
|
+
## Context manifests
|
|
87
33
|
|
|
88
|
-
|
|
34
|
+
implement.jsonl and check.jsonl identify relevant spec and research files for agents that consume those manifests. They do not replace the task's planning artifacts. Keep entries curated and remove placeholder rows rejected by task.py validate.
|
|
89
35
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
Format:
|
|
93
|
-
|
|
94
|
-
```jsonl
|
|
95
|
-
{"file": ".trellis/spec/cli/backend/index.md", "reason": "Backend conventions"}
|
|
96
|
-
{"file": ".trellis/tasks/04-28-example/research/api.md", "reason": "API research"}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
Rules:
|
|
100
|
-
|
|
101
|
-
- Include spec and research files.
|
|
102
|
-
- Do not include code files that are about to be modified.
|
|
103
|
-
- Do not treat temporary conclusions in chat as the only context.
|
|
104
|
-
- Rows without a `file` field are skipped by readers. Legacy `{"_example": ...}` placeholder rows are rejected by `task.py validate` — delete them.
|
|
105
|
-
|
|
106
|
-
## Common Commands
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
|
-
python3 ./.trellis/scripts/task.py create "<title>" --description "<one-line summary>" --slug <slug>
|
|
110
|
-
python3 ./.trellis/scripts/task.py start <task>
|
|
111
|
-
python3 ./.trellis/scripts/task.py current --source
|
|
112
|
-
python3 ./.trellis/scripts/task.py add-context <task> implement <file> <reason>
|
|
113
|
-
python3 ./.trellis/scripts/task.py validate <task>
|
|
114
|
-
python3 ./.trellis/scripts/task.py finish
|
|
115
|
-
python3 ./.trellis/scripts/task.py archive <task>
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
When modifying the task system, the AI should prefer script commands to maintain structure. Edit JSON/Markdown directly only when scripts do not cover the need.
|
|
119
|
-
|
|
120
|
-
## Local Customization Points
|
|
36
|
+
## Local customization points
|
|
121
37
|
|
|
122
38
|
| Need | Edit location |
|
|
123
39
|
| --- | --- |
|
|
124
|
-
| Change
|
|
125
|
-
| Change
|
|
126
|
-
|
|
|
127
|
-
| Change
|
|
128
|
-
| Change
|
|
129
|
-
|
|
130
|
-
These are local files in the user project. Do not default to editing Trellis CLI source code unless the user wants to contribute upstream.
|
|
40
|
+
| Change task fields or creation | .trellis/scripts/common/task_store.py |
|
|
41
|
+
| Change task lookup or parsing | .trellis/scripts/common/task_utils.py |
|
|
42
|
+
| Change lifecycle and phase contracts | .trellis/scripts/common/task_workflow.py and Core task model |
|
|
43
|
+
| Change active session task behavior | .trellis/scripts/common/active_task.py and host integration |
|
|
44
|
+
| Change task guidance | .trellis/workflow.md and the applicable phase Skill |
|
package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workflow.md
CHANGED
|
@@ -1,75 +1,34 @@
|
|
|
1
1
|
# Local Workflow System
|
|
2
2
|
|
|
3
|
-
|
|
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
|
-
##
|
|
5
|
+
## Business phases
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
The workflow keeps its business phases distinct, with separate activities, outputs, and transition conditions:
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
19
|
+
## Skill routing and state prompts
|
|
22
20
|
|
|
23
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
|
60
|
-
| Change
|
|
61
|
-
| Change
|
|
62
|
-
| Change
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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 的方案须在阶段结果接受前完成该审查。
|
package/dist/templates/common/bundled-skills/trellis-solution-design-and-convergence/workflow.md
ADDED
|
@@ -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.
|
package/dist/templates/common/bundled-skills/trellis-teamwork/references/coordination-modes.md
ADDED
|
@@ -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.
|
package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-processes.md
ADDED
|
@@ -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.
|