@mindfoldhq/trellis 0.6.0-beta.9 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -49
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +36 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/channel/adapters/claude.d.ts +29 -0
- package/dist/commands/channel/adapters/claude.d.ts.map +1 -0
- package/dist/commands/channel/adapters/claude.js +203 -0
- package/dist/commands/channel/adapters/claude.js.map +1 -0
- package/dist/commands/channel/adapters/codex.d.ts +85 -0
- package/dist/commands/channel/adapters/codex.d.ts.map +1 -0
- package/dist/commands/channel/adapters/codex.js +505 -0
- package/dist/commands/channel/adapters/codex.js.map +1 -0
- package/dist/commands/channel/adapters/index.d.ts +84 -0
- package/dist/commands/channel/adapters/index.d.ts.map +1 -0
- package/dist/commands/channel/adapters/index.js +115 -0
- package/dist/commands/channel/adapters/index.js.map +1 -0
- package/dist/commands/channel/adapters/types.d.ts +33 -0
- package/dist/commands/channel/adapters/types.d.ts.map +1 -0
- package/dist/commands/channel/adapters/types.js +2 -0
- package/dist/commands/channel/adapters/types.js.map +1 -0
- package/dist/commands/channel/agent-loader.d.ts +32 -0
- package/dist/commands/channel/agent-loader.d.ts.map +1 -0
- package/dist/commands/channel/agent-loader.js +154 -0
- package/dist/commands/channel/agent-loader.js.map +1 -0
- package/dist/commands/channel/context-loader.d.ts +26 -0
- package/dist/commands/channel/context-loader.d.ts.map +1 -0
- package/dist/commands/channel/context-loader.js +290 -0
- package/dist/commands/channel/context-loader.js.map +1 -0
- package/dist/commands/channel/context.d.ts +16 -0
- package/dist/commands/channel/context.d.ts.map +1 -0
- package/dist/commands/channel/context.js +83 -0
- package/dist/commands/channel/context.js.map +1 -0
- package/dist/commands/channel/create.d.ts +27 -0
- package/dist/commands/channel/create.d.ts.map +1 -0
- package/dist/commands/channel/create.js +39 -0
- package/dist/commands/channel/create.js.map +1 -0
- package/dist/commands/channel/dev-parse-trace.d.ts +14 -0
- package/dist/commands/channel/dev-parse-trace.d.ts.map +1 -0
- package/dist/commands/channel/dev-parse-trace.js +70 -0
- package/dist/commands/channel/dev-parse-trace.js.map +1 -0
- package/dist/commands/channel/guard.d.ts +150 -0
- package/dist/commands/channel/guard.d.ts.map +1 -0
- package/dist/commands/channel/guard.js +474 -0
- package/dist/commands/channel/guard.js.map +1 -0
- package/dist/commands/channel/index.d.ts +3 -0
- package/dist/commands/channel/index.d.ts.map +1 -0
- package/dist/commands/channel/index.js +531 -0
- package/dist/commands/channel/index.js.map +1 -0
- package/dist/commands/channel/interrupt.d.ts +10 -0
- package/dist/commands/channel/interrupt.d.ts.map +1 -0
- package/dist/commands/channel/interrupt.js +22 -0
- package/dist/commands/channel/interrupt.js.map +1 -0
- package/dist/commands/channel/kill.d.ts +7 -0
- package/dist/commands/channel/kill.d.ts.map +1 -0
- package/dist/commands/channel/kill.js +121 -0
- package/dist/commands/channel/kill.js.map +1 -0
- package/dist/commands/channel/list.d.ts +17 -0
- package/dist/commands/channel/list.d.ts.map +1 -0
- package/dist/commands/channel/list.js +233 -0
- package/dist/commands/channel/list.js.map +1 -0
- package/dist/commands/channel/messages.d.ts +15 -0
- package/dist/commands/channel/messages.d.ts.map +1 -0
- package/dist/commands/channel/messages.js +245 -0
- package/dist/commands/channel/messages.js.map +1 -0
- package/dist/commands/channel/rm.d.ts +27 -0
- package/dist/commands/channel/rm.d.ts.map +1 -0
- package/dist/commands/channel/rm.js +216 -0
- package/dist/commands/channel/rm.js.map +1 -0
- package/dist/commands/channel/run.d.ts +30 -0
- package/dist/commands/channel/run.d.ts.map +1 -0
- package/dist/commands/channel/run.js +130 -0
- package/dist/commands/channel/run.js.map +1 -0
- package/dist/commands/channel/send.d.ts +11 -0
- package/dist/commands/channel/send.d.ts.map +1 -0
- package/dist/commands/channel/send.js +24 -0
- package/dist/commands/channel/send.js.map +1 -0
- package/dist/commands/channel/spawn.d.ts +40 -0
- package/dist/commands/channel/spawn.d.ts.map +1 -0
- package/dist/commands/channel/spawn.js +244 -0
- package/dist/commands/channel/spawn.js.map +1 -0
- package/dist/commands/channel/store/events.d.ts +39 -0
- package/dist/commands/channel/store/events.d.ts.map +1 -0
- package/dist/commands/channel/store/events.js +87 -0
- package/dist/commands/channel/store/events.js.map +1 -0
- package/dist/commands/channel/store/filter.d.ts +3 -0
- package/dist/commands/channel/store/filter.d.ts.map +1 -0
- package/dist/commands/channel/store/filter.js +2 -0
- package/dist/commands/channel/store/filter.js.map +1 -0
- package/dist/commands/channel/store/lock.d.ts +23 -0
- package/dist/commands/channel/store/lock.d.ts.map +1 -0
- package/dist/commands/channel/store/lock.js +99 -0
- package/dist/commands/channel/store/lock.js.map +1 -0
- package/dist/commands/channel/store/paths.d.ts +63 -0
- package/dist/commands/channel/store/paths.d.ts.map +1 -0
- package/dist/commands/channel/store/paths.js +246 -0
- package/dist/commands/channel/store/paths.js.map +1 -0
- package/dist/commands/channel/store/schema.d.ts +27 -0
- package/dist/commands/channel/store/schema.d.ts.map +1 -0
- package/dist/commands/channel/store/schema.js +34 -0
- package/dist/commands/channel/store/schema.js.map +1 -0
- package/dist/commands/channel/store/thread-state.d.ts +5 -0
- package/dist/commands/channel/store/thread-state.d.ts.map +1 -0
- package/dist/commands/channel/store/thread-state.js +16 -0
- package/dist/commands/channel/store/thread-state.js.map +1 -0
- package/dist/commands/channel/store/watch.d.ts +19 -0
- package/dist/commands/channel/store/watch.d.ts.map +1 -0
- package/dist/commands/channel/store/watch.js +146 -0
- package/dist/commands/channel/store/watch.js.map +1 -0
- package/dist/commands/channel/supervisor/idle.d.ts +46 -0
- package/dist/commands/channel/supervisor/idle.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/idle.js +72 -0
- package/dist/commands/channel/supervisor/idle.js.map +1 -0
- package/dist/commands/channel/supervisor/inbox.d.ts +30 -0
- package/dist/commands/channel/supervisor/inbox.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/inbox.js +160 -0
- package/dist/commands/channel/supervisor/inbox.js.map +1 -0
- package/dist/commands/channel/supervisor/shutdown.d.ts +68 -0
- package/dist/commands/channel/supervisor/shutdown.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/shutdown.js +146 -0
- package/dist/commands/channel/supervisor/shutdown.js.map +1 -0
- package/dist/commands/channel/supervisor/stdout.d.ts +51 -0
- package/dist/commands/channel/supervisor/stdout.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/stdout.js +121 -0
- package/dist/commands/channel/supervisor/stdout.js.map +1 -0
- package/dist/commands/channel/supervisor/turns.d.ts +31 -0
- package/dist/commands/channel/supervisor/turns.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/turns.js +45 -0
- package/dist/commands/channel/supervisor/turns.js.map +1 -0
- package/dist/commands/channel/supervisor/warning.d.ts +48 -0
- package/dist/commands/channel/supervisor/warning.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/warning.js +77 -0
- package/dist/commands/channel/supervisor/warning.js.map +1 -0
- package/dist/commands/channel/supervisor.d.ts +59 -0
- package/dist/commands/channel/supervisor.d.ts.map +1 -0
- package/dist/commands/channel/supervisor.js +344 -0
- package/dist/commands/channel/supervisor.js.map +1 -0
- package/dist/commands/channel/text-body.d.ts +13 -0
- package/dist/commands/channel/text-body.d.ts.map +1 -0
- package/dist/commands/channel/text-body.js +47 -0
- package/dist/commands/channel/text-body.js.map +1 -0
- package/dist/commands/channel/threads.d.ts +39 -0
- package/dist/commands/channel/threads.d.ts.map +1 -0
- package/dist/commands/channel/threads.js +106 -0
- package/dist/commands/channel/threads.js.map +1 -0
- package/dist/commands/channel/title.d.ts +12 -0
- package/dist/commands/channel/title.d.ts.map +1 -0
- package/dist/commands/channel/title.js +24 -0
- package/dist/commands/channel/title.js.map +1 -0
- package/dist/commands/channel/wait.d.ts +17 -0
- package/dist/commands/channel/wait.d.ts.map +1 -0
- package/dist/commands/channel/wait.js +75 -0
- package/dist/commands/channel/wait.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +162 -43
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mem.d.ts +13 -217
- package/dist/commands/mem.d.ts.map +1 -1
- package/dist/commands/mem.js +142 -1587
- package/dist/commands/mem.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +28 -2
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +102 -5
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/workflow.d.ts +35 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +232 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/configurators/claude.d.ts.map +1 -1
- package/dist/configurators/claude.js +1 -0
- package/dist/configurators/claude.js.map +1 -1
- package/dist/configurators/index.d.ts.map +1 -1
- package/dist/configurators/index.js +5 -0
- package/dist/configurators/index.js.map +1 -1
- package/dist/configurators/reasonix.d.ts +23 -0
- package/dist/configurators/reasonix.d.ts.map +1 -0
- package/dist/configurators/reasonix.js +60 -0
- package/dist/configurators/reasonix.js.map +1 -0
- package/dist/configurators/shared.d.ts.map +1 -1
- package/dist/configurators/shared.js +8 -0
- package/dist/configurators/shared.js.map +1 -1
- package/dist/configurators/workflow.d.ts +8 -0
- package/dist/configurators/workflow.d.ts.map +1 -1
- package/dist/configurators/workflow.js +14 -3
- package/dist/configurators/workflow.js.map +1 -1
- package/dist/constants/paths.d.ts +4 -0
- package/dist/constants/paths.d.ts.map +1 -1
- package/dist/constants/paths.js +4 -0
- package/dist/constants/paths.js.map +1 -1
- package/dist/migrations/manifests/0.5.14.json +9 -0
- package/dist/migrations/manifests/0.5.15.json +9 -0
- package/dist/migrations/manifests/0.5.16.json +9 -0
- package/dist/migrations/manifests/0.5.17.json +9 -0
- package/dist/migrations/manifests/0.5.18.json +9 -0
- package/dist/migrations/manifests/0.5.19.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.10.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.11.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.12.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.13.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.14.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.15.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.16.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.17.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.18.json +16 -0
- package/dist/migrations/manifests/0.6.0-beta.19.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.20.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.21.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.22.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.23.json +88 -0
- package/dist/migrations/manifests/0.6.0-rc.0.json +9 -0
- package/dist/migrations/manifests/0.6.0.json +1 -0
- package/dist/templates/claude/agents/trellis-check.md +12 -6
- package/dist/templates/claude/agents/trellis-implement.md +1 -1
- package/dist/templates/claude/agents/trellis-research.md +1 -1
- package/dist/templates/codebuddy/agents/trellis-check.md +12 -6
- package/dist/templates/codebuddy/agents/trellis-implement.md +1 -1
- package/dist/templates/codebuddy/agents/trellis-research.md +1 -1
- package/dist/templates/codex/agents/trellis-check.toml +0 -25
- package/dist/templates/codex/agents/trellis-implement.toml +0 -25
- package/dist/templates/codex/config.toml +9 -16
- package/dist/templates/codex/hooks/session-start.py +22 -0
- package/dist/templates/codex/hooks.json +1 -1
- package/dist/templates/common/bundled-skills/trellis-channel/SKILL.md +67 -0
- package/dist/templates/common/bundled-skills/trellis-channel/references/command-reference.md +480 -0
- package/dist/templates/common/bundled-skills/trellis-channel/references/forum.md +233 -0
- package/dist/templates/common/bundled-skills/trellis-channel/references/progress-debugging.md +226 -0
- package/dist/templates/common/bundled-skills/trellis-channel/references/workers.md +276 -0
- package/dist/templates/common/bundled-skills/trellis-channel/references/workflows.md +128 -0
- package/dist/templates/common/bundled-skills/trellis-meta/SKILL.md +46 -34
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +47 -3
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/bundled-skills.md +146 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/multi-agent-channel.md +69 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/task-system.md +27 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/platform-map.md +11 -1
- package/dist/templates/common/bundled-skills/trellis-session-insight/SKILL.md +81 -0
- package/dist/templates/common/bundled-skills/trellis-session-insight/references/cli-quick-reference.md +66 -0
- package/dist/templates/common/bundled-skills/trellis-session-insight/references/triggering-patterns.md +93 -0
- package/dist/templates/common/bundled-skills/trellis-spec-bootstrap/SKILL.md +41 -0
- package/dist/templates/common/bundled-skills/trellis-spec-bootstrap/references/mcp-setup.md +90 -0
- package/dist/templates/common/bundled-skills/trellis-spec-bootstrap/references/repository-analysis.md +59 -0
- package/dist/templates/common/bundled-skills/trellis-spec-bootstrap/references/spec-task-planning.md +61 -0
- package/dist/templates/common/bundled-skills/trellis-spec-bootstrap/references/spec-writing.md +70 -0
- package/dist/templates/copilot/hooks/session-start.py +24 -0
- package/dist/templates/cursor/agents/trellis-check.md +12 -6
- package/dist/templates/cursor/agents/trellis-implement.md +1 -1
- package/dist/templates/cursor/agents/trellis-research.md +1 -1
- package/dist/templates/cursor/hooks.json +0 -6
- package/dist/templates/droid/droids/trellis-check.md +12 -6
- package/dist/templates/droid/droids/trellis-implement.md +1 -1
- package/dist/templates/droid/droids/trellis-research.md +1 -1
- package/dist/templates/gemini/agents/trellis-check.md +11 -5
- package/dist/templates/kiro/agents/trellis-check.json +1 -1
- package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +127 -9
- package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +130 -0
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +38 -0
- package/dist/templates/markdown/spec/guides/index.md.txt +18 -0
- package/dist/templates/opencode/agents/trellis-check.md +11 -5
- package/dist/templates/pi/agents/trellis-check.md +5 -4
- package/dist/templates/pi/agents/trellis-implement.md +5 -4
- package/dist/templates/pi/extensions/trellis/index.ts.txt +1339 -913
- package/dist/templates/pi/settings.json +0 -9
- package/dist/templates/qoder/agents/trellis-check.md +12 -6
- package/dist/templates/qoder/agents/trellis-implement.md +1 -1
- package/dist/templates/qoder/agents/trellis-research.md +1 -1
- package/dist/templates/reasonix/agents/trellis-check.md +36 -0
- package/dist/templates/reasonix/agents/trellis-implement.md +41 -0
- package/dist/templates/reasonix/index.d.ts +13 -0
- package/dist/templates/reasonix/index.d.ts.map +1 -0
- package/dist/templates/reasonix/index.js +16 -0
- package/dist/templates/reasonix/index.js.map +1 -0
- package/dist/templates/shared-hooks/index.d.ts.map +1 -1
- package/dist/templates/shared-hooks/index.js +0 -1
- package/dist/templates/shared-hooks/index.js.map +1 -1
- package/dist/templates/shared-hooks/inject-workflow-state.py +22 -0
- package/dist/templates/shared-hooks/session-start.py +25 -8
- package/dist/templates/trellis/agents/check.md +70 -0
- package/dist/templates/trellis/agents/implement.md +71 -0
- package/dist/templates/trellis/config.yaml +20 -0
- package/dist/templates/trellis/index.d.ts +13 -0
- package/dist/templates/trellis/index.d.ts.map +1 -1
- package/dist/templates/trellis/index.js +22 -0
- package/dist/templates/trellis/index.js.map +1 -1
- package/dist/templates/trellis/scripts/common/safe_commit.py +49 -19
- package/dist/templates/trellis/scripts/common/task_store.py +94 -16
- package/dist/templates/trellis/workflow.md +21 -0
- package/dist/types/ai-tools.d.ts +4 -4
- package/dist/types/ai-tools.d.ts.map +1 -1
- package/dist/types/ai-tools.js +16 -0
- package/dist/types/ai-tools.js.map +1 -1
- package/dist/utils/agent-refs.d.ts +31 -0
- package/dist/utils/agent-refs.d.ts.map +1 -0
- package/dist/utils/agent-refs.js +63 -0
- package/dist/utils/agent-refs.js.map +1 -0
- package/dist/utils/cwd-guard.d.ts +38 -0
- package/dist/utils/cwd-guard.d.ts.map +1 -0
- package/dist/utils/cwd-guard.js +62 -0
- package/dist/utils/cwd-guard.js.map +1 -0
- package/dist/utils/file-writer.d.ts +13 -0
- package/dist/utils/file-writer.d.ts.map +1 -1
- package/dist/utils/file-writer.js +59 -1
- package/dist/utils/file-writer.js.map +1 -1
- package/dist/utils/manifest-prune.d.ts +61 -0
- package/dist/utils/manifest-prune.d.ts.map +1 -0
- package/dist/utils/manifest-prune.js +136 -0
- package/dist/utils/manifest-prune.js.map +1 -0
- package/dist/utils/registry-config.d.ts +7 -0
- package/dist/utils/registry-config.d.ts.map +1 -0
- package/dist/utils/registry-config.js +171 -0
- package/dist/utils/registry-config.js.map +1 -0
- package/dist/utils/task-json.d.ts +9 -42
- package/dist/utils/task-json.d.ts.map +1 -1
- package/dist/utils/task-json.js +8 -45
- package/dist/utils/task-json.js.map +1 -1
- package/dist/utils/template-fetcher.d.ts +11 -0
- package/dist/utils/template-fetcher.d.ts.map +1 -1
- package/dist/utils/template-fetcher.js +51 -2
- package/dist/utils/template-fetcher.js.map +1 -1
- package/dist/utils/template-hash.d.ts +32 -6
- package/dist/utils/template-hash.d.ts.map +1 -1
- package/dist/utils/template-hash.js +53 -31
- package/dist/utils/template-hash.js.map +1 -1
- package/dist/utils/workflow-resolver.d.ts +86 -0
- package/dist/utils/workflow-resolver.d.ts.map +1 -0
- package/dist/utils/workflow-resolver.js +265 -0
- package/dist/utils/workflow-resolver.js.map +1 -0
- package/package.json +9 -8
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.6.0-beta.18",
|
|
3
|
+
"description": "Beta patch: channel worker OOM guard, simplified channel message routing, bundled Trellis spec bootstrap skill docs, and safer task archive auto-commit failures.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "**Enhancements:**\n- feat(channel): default OOM guard for `trellis channel spawn`. Workers that stay continuously idle past `channel.worker_guard.idle_timeout` (default `5m`) are self-terminated with `killed{reason:\"idle-timeout\"}`. Mid-turn workers are not killed by idle cleanup.\n- feat(channel): spawn-time live-worker budget per project/scope. Default `channel.worker_guard.max_live_workers: 6`. Expired idle workers are cleaned first; if the budget is still exhausted, `spawn` rejects with live-worker details and kill / override hints.\n- feat(channel): simplified worker message routing by removing message tags from channel send/wait/run internals.\n- feat(config): `.trellis/config.yaml` gains a `channel.worker_guard` section via `trellis update`.\n- feat(skills): Trellis beta bundle includes the built-in `trellis-spec-bootstarp` skill for bootstrapping `.trellis/spec/` from the real codebase.\n**Bug Fixes:**\n- fix(cli): `task.py archive` now fails when its auto-commit fails instead of reporting a successful archive with uncommitted changes.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"configSectionsAdded": [
|
|
9
|
+
{
|
|
10
|
+
"file": ".trellis/config.yaml",
|
|
11
|
+
"sentinel": "worker_guard:",
|
|
12
|
+
"sectionHeading": "Channel worker OOM guard"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"notes": "Beta patch on top of 0.6.0-beta.17. `trellis update` appends `channel.worker_guard` defaults for existing projects. To opt out, set `channel.worker_guard.idle_timeout: 0` and / or `channel.worker_guard.max_live_workers: 0`, or pass `--idle-timeout 0` / `--max-live-workers 0` per spawn."
|
|
16
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.6.0-beta.19",
|
|
3
|
+
"description": "Beta patch: Pi trellis_subagent native progress cards, durable channel idempotency, task create/archive collision guard, workflow breadcrumb clarification, and Codex 0.131 timeout bounds.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "**Enhancements:**\n- feat(pi): Pi extension now exposes `trellis_subagent` with native progress cards, `single` / `parallel` / `chain` dispatch modes, throttled live updates, and Trellis-agent validation (#286, #290).\n**Bug Fixes:**\n- fix(core): channel `sendMessage` and `postThread` accept durable `idempotencyKey` values so retries return the original JSONL event and do not duplicate strict-delivery `undeliverable` events.\n- fix(cli): `task.py create` now rejects slugs that already exist under `.trellis/tasks/archive/**` and prints the archived path (#291).\n- fix(workflow): `[workflow-state:in_progress]` now distinguishes sub-agent types from skills so agents do not call missing `trellis-implement` / `trellis-research` skills (#283).\n- fix(codex): `.codex/config.toml` emits `min_wait_timeout_ms`, `default_wait_timeout_ms`, and `max_wait_timeout_ms` together so Codex CLI 0.131+ accepts merged multi_agent_v2 timeout config (#294).\n**Internal:**\n- chore(release): restore the shipped `0.5.17` migration manifest so manifest continuity and update-chain checks pass for the beta release.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "Beta patch on top of 0.6.0-beta.18. Run `trellis update` to refresh Pi, Codex, workflow, and task templates. No migration command is required."
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.6.0-beta.20",
|
|
3
|
+
"description": "Beta patch: bundle the Trellis spec bootstrap skill in the CLI package and clarify Codex CLI 0.131+ timeout-bounds requirements.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "**Bug Fixes:**\n- fix(skills): `trellis-spec-bootstarp` is now included under `dist/templates/common/bundled-skills/`, so fresh `trellis init` and `trellis update` install the built-in spec bootstrap skill and track its reference files.\n- fix(docs): the v0.6.0-beta.19 changelog now states that the full Codex `multi_agent_v2` timeout-bounds config requires Codex CLI 0.131.0+.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "Beta patch on top of 0.6.0-beta.19. Run `trellis update` to install the bundled `trellis-spec-bootstarp` skill. Codex users should use Codex CLI 0.131.0+ for the full multi_agent_v2 timeout-bounds config."
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.6.0-beta.21",
|
|
3
|
+
"description": "Beta patch: stop writing the [features.multi_agent_v2] block to the generated Codex config.toml so Codex CLI 0.130 and the Codex desktop app can load the config.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "**Bug Fixes:**\n- fix(codex): `trellis init` / `trellis update` no longer write a `[features.multi_agent_v2]` block to `.codex/config.toml`. Codex CLI changed `features` deserialization between 0.130 and 0.131; the structured table form is only accepted by 0.131+. On 0.130 and earlier — including the Codex CLI bundled in the Codex desktop app — it failed with `data did not match any variant of untagged enum FeatureToml in features.multi_agent_v2`, aborting the entire config load and blocking Codex from starting. Codex's own default for multi_agent_v2 is used instead.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "Beta patch on top of 0.6.0-beta.20. Run `trellis update` to regenerate `.codex/config.toml` without the multi_agent_v2 block. Tune multi_agent_v2 in your user-level ~/.codex/config.toml if needed."
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.6.0-beta.22",
|
|
3
|
+
"description": "Beta patch: remove the duplicated pull-based prelude from the generated Codex sub-agent toml files, and restore the 0.5.19 migration manifest that was missing on the beta branch.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "**Bug Fixes:**\n- fix(codex): the generated `.codex/agents/trellis-check.toml` and `trellis-implement.toml` no longer contain the \"Required: Load Trellis Context First\" prelude twice. The codex toml source templates carried an inline copy that predated the code-injected prelude (`injectPullBasedPreludeToml`); the injector then added a second copy. The inline copies are removed so the injector is the single source, and a regression test asserts the prelude appears exactly once across all class-2 platforms.\n- fix(migrations): restore `src/migrations/manifests/0.5.19.json`, which was missing on the 0.6.0-beta branch. Its absence broke the manifest-continuity guard and would break `trellis update` for users on 0.5.19.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "Beta patch on top of 0.6.0-beta.21. Run `trellis update` to regenerate `.codex/agents/` without the duplicated prelude."
|
|
9
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.6.0-beta.23",
|
|
3
|
+
"description": "Beta patch: dispatch channel runtime agent definitions, refresh registry-backed spec via update, add Reasonix platform support, ship trellis-session-insight bundled skill, and rename trellis-spec-bootstarp → trellis-spec-bootstrap.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": true,
|
|
6
|
+
"changelog": "**Enhancements:**\n- feat(cli): `trellis init` and `trellis update` now ship `.trellis/agents/{check,implement}.md`, so switching to a channel-driven workflow no longer fails with \"Agent 'check' not found\" (#323).\n- feat(cli): `trellis update` refreshes registry-backed `.trellis/spec` templates through the existing hash/conflict flow. `trellis init --template <id>` persists the spec source/template in `.trellis/config.yaml` so subsequent updates can re-fetch it. Supports direct spec registries and marketplace-style registries (#324).\n- feat(platform): add **Reasonix** (DeepSeek-Reasonix) as the 15th supported AI coding tool via `trellis init --reasonix`. Subagent skills (`trellis-implement`, `trellis-check`) carry `runAs: subagent` frontmatter so Reasonix spawns them as isolated subagent loops (#301).\n- feat(skills): bundle `trellis-session-insight` skill that teaches the AI how and when to reach for `trellis mem` to recall past conversations across Claude Code and Codex sessions. Auto-dispatched to every supported platform on init/update.\n- feat(workflow): `trellis workflow --template <id>` and `trellis init --workflow <id>` print a stderr warning when the resolved workflow references `.trellis/agents/<name>.md` files that are missing on disk, pointing the user at `trellis update`.\n\n**Bug Fixes:**\n- fix(skills): rename bundled `trellis-spec-bootstarp` → `trellis-spec-bootstrap` (typo). `trellis update --migrate` ships a `rename-dir` migration that renames the installed directory across 13 platform skill roots; missing roots are silently skipped. Historical migration manifests `0.5.17.json` and `0.6.0-beta.18.json` keep the typoed text because they describe what already shipped to users on those versions (#296).",
|
|
7
|
+
"migrations": [
|
|
8
|
+
{
|
|
9
|
+
"type": "rename-dir",
|
|
10
|
+
"from": ".claude/skills/trellis-spec-bootstarp",
|
|
11
|
+
"to": ".claude/skills/trellis-spec-bootstrap",
|
|
12
|
+
"description": "Claude Code: rename installed bundled skill directory from typoed name to corrected name."
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"type": "rename-dir",
|
|
16
|
+
"from": ".cursor/skills/trellis-spec-bootstarp",
|
|
17
|
+
"to": ".cursor/skills/trellis-spec-bootstrap",
|
|
18
|
+
"description": "Cursor: rename installed bundled skill directory from typoed name to corrected name."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "rename-dir",
|
|
22
|
+
"from": ".opencode/skills/trellis-spec-bootstarp",
|
|
23
|
+
"to": ".opencode/skills/trellis-spec-bootstrap",
|
|
24
|
+
"description": "OpenCode: rename installed bundled skill directory from typoed name to corrected name."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"type": "rename-dir",
|
|
28
|
+
"from": ".agents/skills/trellis-spec-bootstarp",
|
|
29
|
+
"to": ".agents/skills/trellis-spec-bootstrap",
|
|
30
|
+
"description": "Codex / Gemini CLI (shared): rename installed bundled skill directory from typoed name to corrected name."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "rename-dir",
|
|
34
|
+
"from": ".kiro/skills/trellis-spec-bootstarp",
|
|
35
|
+
"to": ".kiro/skills/trellis-spec-bootstrap",
|
|
36
|
+
"description": "Kiro: rename installed bundled skill directory from typoed name to corrected name."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type": "rename-dir",
|
|
40
|
+
"from": ".qoder/skills/trellis-spec-bootstarp",
|
|
41
|
+
"to": ".qoder/skills/trellis-spec-bootstrap",
|
|
42
|
+
"description": "Qoder: rename installed bundled skill directory from typoed name to corrected name."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"type": "rename-dir",
|
|
46
|
+
"from": ".codebuddy/skills/trellis-spec-bootstarp",
|
|
47
|
+
"to": ".codebuddy/skills/trellis-spec-bootstrap",
|
|
48
|
+
"description": "CodeBuddy: rename installed bundled skill directory from typoed name to corrected name."
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"type": "rename-dir",
|
|
52
|
+
"from": ".github/skills/trellis-spec-bootstarp",
|
|
53
|
+
"to": ".github/skills/trellis-spec-bootstrap",
|
|
54
|
+
"description": "GitHub Copilot: rename installed bundled skill directory from typoed name to corrected name."
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"type": "rename-dir",
|
|
58
|
+
"from": ".factory/skills/trellis-spec-bootstarp",
|
|
59
|
+
"to": ".factory/skills/trellis-spec-bootstrap",
|
|
60
|
+
"description": "Droid: rename installed bundled skill directory from typoed name to corrected name."
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"type": "rename-dir",
|
|
64
|
+
"from": ".pi/skills/trellis-spec-bootstarp",
|
|
65
|
+
"to": ".pi/skills/trellis-spec-bootstrap",
|
|
66
|
+
"description": "Pi Agent: rename installed bundled skill directory from typoed name to corrected name."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"type": "rename-dir",
|
|
70
|
+
"from": ".agent/skills/trellis-spec-bootstarp",
|
|
71
|
+
"to": ".agent/skills/trellis-spec-bootstrap",
|
|
72
|
+
"description": "Antigravity: rename installed bundled skill directory from typoed name to corrected name."
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"type": "rename-dir",
|
|
76
|
+
"from": ".windsurf/skills/trellis-spec-bootstarp",
|
|
77
|
+
"to": ".windsurf/skills/trellis-spec-bootstrap",
|
|
78
|
+
"description": "Windsurf: rename installed bundled skill directory from typoed name to corrected name."
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"type": "rename-dir",
|
|
82
|
+
"from": ".kilocode/skills/trellis-spec-bootstarp",
|
|
83
|
+
"to": ".kilocode/skills/trellis-spec-bootstrap",
|
|
84
|
+
"description": "Kilo: rename installed bundled skill directory from typoed name to corrected name."
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"notes": "Beta patch on top of 0.6.0-beta.22. Run `trellis update --migrate` to rename installed `trellis-spec-bootstarp/` skill directories to `trellis-spec-bootstrap/` across every platform you have configured (silently skips ones you do not). Plain `trellis update` also installs the new `trellis-session-insight` bundled skill and the `.trellis/agents/{check,implement}.md` channel runtime files."
|
|
88
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.6.0-rc.0",
|
|
3
|
+
"description": "First release candidate for v0.6.0. Feature surface frozen; entering stabilization. Only fix since 0.6.0-beta.23 is removing explicit mcp__exa__* tools from bundled Claude-style sub-agent defs so they no longer silent-skip on installs without the Exa MCP server.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "**Bug Fixes:**\n- fix(agents): drop explicit `mcp__exa__*` tools from bundled `trellis-implement` and `trellis-check` agent definitions. Claude Code silently skips agent registration when an explicit MCP tool name fails to resolve, so users without the Exa MCP server installed had every Trellis sub-agent disappear from the dispatch list. `trellis-research` keeps external search by folding `mcp__exa__*` + `mcp__chrome-devtools__*` into a single `mcp__*` wildcard, which Claude Code resolves lazily and does not silent-skip on. OpenCode files use a different permission syntax and are unchanged (#302).\n\n**Internal:**\n- chore(release): v0.6 feature surface frozen at this RC. Open feature requests (#193, #318, #320, #325, #326, etc.) are deferred to v0.7 or later. Further changes on this line will be bug-only `0.6.0-rc.*` cuts.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "First release candidate for v0.6.0. Run `npm install -g @mindfoldhq/trellis@rc && trellis update` to pick up the agent silent-skip fix. If you are coming from a beta older than 0.6.0-beta.23, also pass `--migrate` to apply the rename-dir migration that moves `trellis-spec-bootstarp/` to `trellis-spec-bootstrap/` across configured platform skill roots."
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version": "0.6.0", "description": "v0.6.0 stable — multi-agent channel runtime, `trellis mem`, `@mindfoldhq/trellis-core` SDK extraction, 15-platform coverage (incl. Reasonix + Pi). Stable promotion of rc.0 with no new src/ changes.", "breaking": false, "recommendMigrate": true, "changelog": "**v0.6.0 stable.** Stable promotion of rc.0 — no new src/ changes since rc.0.\n\n**Heads-up:** Trellis now ships a multi-agent channel runtime (`trellis channel`) and a memory subsystem (`trellis mem`). Both are auto-discovered via bundled skills; the single-agent workflow from 0.5 still works unchanged.\n\nCycle headlines since 0.5.0:\n\n**Channel runtime**\n- `trellis channel`: durable thread / forum channels, project/global scope, linked context, idempotent writes (`idempotencyKey`).\n- Worker lifecycle: `spawn` / `kill` / `prune` / `wait` / `run` with turn-event recording.\n- OOM guard ON by default: `idle_timeout 5m`, `max_live_workers 6` per scope; tunable via `.trellis/config.yaml` or `--idle-timeout` / `--max-live-workers`.\n- Bundled `.trellis/agents/{check,implement}.md` ship at `init` / `update` so `channel spawn --agent` works out of the box (#323).\n\n**Memory**\n- `trellis mem` reads local Claude Code / Codex sessions. Five subcommands: `projects` / `list` / `search` / `context` / `extract`.\n- `--phase brainstorm|implement|all` slices at `task.py create` / `task.py start` boundaries.\n- Library API: `@mindfoldhq/trellis-core/mem`. OpenCode 1.2+ reader degraded (see notes).\n\n**SDK extraction**\n- `@mindfoldhq/trellis-core` is now its own npm package, published in lockstep with the CLI. Subpath exports: `/channel`, `/task`, `/testing`, `/mem`.\n- v0.6.0 is the first GA shipping both packages simultaneously; `bump-versions.js` rewrites `workspace:*` → exact version at release.\n\n**Platform coverage**\n- 15 platforms total. **New: Reasonix** (DeepSeek-Reasonix) and **matured Pi Agent** native extension with `trellis_subagent` tool + project-level override.\n- Codex dispatch defaults to `inline` (was `sub-agent`); no longer writes `[features.multi_agent_v2]` to `.codex/config.toml` (fixes config-load abort on Codex CLI ≤ 0.130).\n- OpenCode `TRELLIS_CONTEXT_ID` picks shell dialect (PowerShell / Git Bash / POSIX).\n- Cursor `sessionStart` emits `additional_context` per Cursor schema; GitHub Copilot SessionStart uses `hookSpecificOutput.additionalContext`.\n\n**Workflow + planning**\n- Task triage consent: no-task turns classify the request and ask before creating a task.\n- Three planning artifacts: `prd.md` / `design.md` / `implement.md`. Parent / child task trees supported.\n- Workflow templates via `trellis init --workflow` and `trellis workflow`. Built-ins: `native`, `tdd`, `channel-driven-subagent-dispatch`.\n\n**Updater**\n- `trellis upgrade` first-class command: channel-aware defaults, `--tag`, `--dry-run`; hardened for Windows.\n- `trellis update` refreshes registry-backed `.trellis/spec` (supports direct + marketplace registries, SSH, self-hosted Git; #324).\n- Configurable hooks via `.trellis/config.yaml`: session commit / journal limits, `hooks.after_*`, `channel.worker_guard.*`, `codex.dispatch_mode`.\n\n**Bundled skills**\n- `trellis-spec-bootstrap` (renamed from typoed `trellis-spec-bootstarp`, #296): bootstraps `.trellis/spec/` from the real codebase.\n- `trellis-session-insight` (new): when to reach for `trellis mem` for cross-session recall.\n- `trellis-channel` (new in GA cycle): when to reach for `trellis channel` for multi-agent collaboration, forum/thread boards, dispatcher-wait patterns.\n- `trellis-meta` (refreshed for v0.6): SKILL.md preamble + new references (`multi-agent-channel.md`, `bundled-skills.md`) cover channel runtime, mem, dual-package SDK, parent/child tasks, workflow templates, registry-backed spec, configurable hooks, Reasonix + Pi platforms, bundled-skill auto-dispatch flow.\n\n**Migration & update flow**\n- `0.6.0-beta.0` is the load-bearing breaking manifest for 0.5.x → 0.6.0 (rename / delete chain documented in its own `migrationGuide`).\n- `0.6.0-beta.23` ships a `rename-dir` migration: `trellis-spec-bootstarp/` → `trellis-spec-bootstrap/` across 13 platform skill roots. Missing roots silently skip.\n- This `0.6.0.json` carries `migrations: []` (GA = rc.0). `recommendMigrate: true` still fires the `--migrate` guidance for users coming directly from 0.5.x.\n\n**Bug fixes (cut window)**\n- fix(agents): drop explicit `mcp__exa__*` tools from bundled `trellis-implement` / `trellis-check` defs. Claude Code silently skipped agent registration when an explicit MCP tool failed to resolve; users without Exa MCP installed lost every Trellis sub-agent. `trellis-research` keeps external search via `mcp__*` wildcard. OpenCode files unchanged (different permission syntax). (#302, rc.0)\n- Earlier 0.6 beta-line bug fixes are documented in their per-beta changelogs.\n\n**Out of scope at GA**\n- OpenCode 1.2+ `trellis mem` reader remains degraded; permanent rework deferred past 0.6.0.\n- Open feature requests (#193, #318, #320, #325, #326) deferred to 0.7+.", "migrations": [], "notes": "**Stable release.** Promoted from 0.6.0-rc.0 with no new src/ changes since.\n\n**Users on 0.5.x** (e.g. `0.5.19`, the last 0.5 stable): run `trellis update --migrate`. The `--migrate` flag is REQUIRED — the breaking-change gate from `0.6.0-beta.0` fires when traversing the migration chain, and a separate `rename-dir` migration from `0.6.0-beta.23` renames the bundled `trellis-spec-bootstarp/` skill directory to `trellis-spec-bootstrap/` across every configured platform skill root (missing roots silently skip).\n\n**Users on any 0.6.0 prerelease** (`beta.X` / `rc.0`): plain `trellis update` is a clean version bump — no `--migrate` needed because you already absorbed the breaking manifest when you adopted the beta line.\n\n**Codex users**: the v0.6 cycle flipped `codex.dispatch_mode` default from `sub-agent` to `inline`. If you previously uncommented `dispatch_mode: sub-agent` in `.trellis/config.yaml`, that opt-in still routes to the legacy sub-agent dispatch flow; if you left the line commented (the default), behavior is now inline. `trellis init` / `update` no longer write a `[features.multi_agent_v2]` block to `.codex/config.toml`, so Codex CLI ≤ 0.130 (including the desktop app's bundled CLI) no longer aborts on config load.\n\n**Channel runtime is opt-in.** The single-agent workflow you know from 0.5 still works unchanged. `trellis channel` and the bundled `trellis-session-insight` skill are auto-discovered but only fire when the AI decides the task calls for them.\n\n**OpenCode users**: `trellis mem` returns empty on OpenCode 1.2+ in this build — the SQLite reader was reverted at `0.6.0-beta.4` due to native-dependency install failures on Windows. A re-enable is planned post-0.6.0.\n\nInstall: `npm install -g @mindfoldhq/trellis`"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: trellis-check
|
|
3
3
|
description: |
|
|
4
4
|
Code quality check expert. Reviews code changes against specs and self-fixes issues.
|
|
5
|
-
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
+
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
6
6
|
---
|
|
7
7
|
# Check Agent
|
|
8
8
|
|
|
@@ -27,14 +27,18 @@ Look for the `<!-- trellis-hook-injected -->` marker in your input above.
|
|
|
27
27
|
|
|
28
28
|
Before checking, read:
|
|
29
29
|
- `.trellis/spec/` - Development guidelines
|
|
30
|
+
- Task `prd.md` - Requirements document
|
|
31
|
+
- Task `design.md` - Technical design (if exists)
|
|
32
|
+
- Task `implement.md` - Execution plan (if exists)
|
|
30
33
|
- Pre-commit checklist for quality standards
|
|
31
34
|
|
|
32
35
|
## Core Responsibilities
|
|
33
36
|
|
|
34
37
|
1. **Get code changes** - Use git diff to get uncommitted code
|
|
35
|
-
2. **
|
|
36
|
-
3. **
|
|
37
|
-
4. **
|
|
38
|
+
2. **Review task artifacts** - Check changes against prd.md, design.md if present, and implement.md if present
|
|
39
|
+
3. **Check against specs** - Verify code follows guidelines
|
|
40
|
+
4. **Self-fix** - Fix issues yourself, not just report them
|
|
41
|
+
5. **Run verification** - typecheck and lint
|
|
38
42
|
|
|
39
43
|
## Important
|
|
40
44
|
|
|
@@ -53,10 +57,12 @@ git diff --name-only # List changed files
|
|
|
53
57
|
git diff # View specific changes
|
|
54
58
|
```
|
|
55
59
|
|
|
56
|
-
### Step 2: Check Against Specs
|
|
60
|
+
### Step 2: Check Against Specs and Task Artifacts
|
|
57
61
|
|
|
58
|
-
Read relevant specs in `.trellis/spec/` to check code:
|
|
62
|
+
Read the task's prd.md, design.md if present, and implement.md if present, then read relevant specs in `.trellis/spec/` to check code:
|
|
59
63
|
|
|
64
|
+
- Does it satisfy the task requirements
|
|
65
|
+
- Does it follow the technical design and implementation plan when present
|
|
60
66
|
- Does it follow directory structure conventions
|
|
61
67
|
- Does it follow naming conventions
|
|
62
68
|
- Does it follow code patterns
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: trellis-implement
|
|
3
3
|
description: |
|
|
4
4
|
Code implementation expert. Understands specs and requirements, then implements features. No git commit allowed.
|
|
5
|
-
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
+
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
6
6
|
---
|
|
7
7
|
# Implement Agent
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: trellis-research
|
|
3
3
|
description: |
|
|
4
4
|
Code and tech search expert. Finds files, patterns, and tech solutions, and PERSISTS every finding to the current task's research/ directory. No code modifications outside that directory.
|
|
5
|
-
tools: Read, Write, Glob, Grep, Bash,
|
|
5
|
+
tools: Read, Write, Glob, Grep, Bash, Skill, mcp__*
|
|
6
6
|
---
|
|
7
7
|
# Research Agent
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: trellis-check
|
|
3
3
|
description: |
|
|
4
4
|
Code quality check expert. Reviews code changes against specs and self-fixes issues.
|
|
5
|
-
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
+
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
6
6
|
---
|
|
7
7
|
# Check Agent
|
|
8
8
|
|
|
@@ -27,14 +27,18 @@ Look for the `<!-- trellis-hook-injected -->` marker in your input above.
|
|
|
27
27
|
|
|
28
28
|
Before checking, read:
|
|
29
29
|
- `.trellis/spec/` - Development guidelines
|
|
30
|
+
- Task `prd.md` - Requirements document
|
|
31
|
+
- Task `design.md` - Technical design (if exists)
|
|
32
|
+
- Task `implement.md` - Execution plan (if exists)
|
|
30
33
|
- Pre-commit checklist for quality standards
|
|
31
34
|
|
|
32
35
|
## Core Responsibilities
|
|
33
36
|
|
|
34
37
|
1. **Get code changes** - Use git diff to get uncommitted code
|
|
35
|
-
2. **
|
|
36
|
-
3. **
|
|
37
|
-
4. **
|
|
38
|
+
2. **Review task artifacts** - Check changes against prd.md, design.md if present, and implement.md if present
|
|
39
|
+
3. **Check against specs** - Verify code follows guidelines
|
|
40
|
+
4. **Self-fix** - Fix issues yourself, not just report them
|
|
41
|
+
5. **Run verification** - typecheck and lint
|
|
38
42
|
|
|
39
43
|
## Important
|
|
40
44
|
|
|
@@ -53,10 +57,12 @@ git diff --name-only # List changed files
|
|
|
53
57
|
git diff # View specific changes
|
|
54
58
|
```
|
|
55
59
|
|
|
56
|
-
### Step 2: Check Against Specs
|
|
60
|
+
### Step 2: Check Against Specs and Task Artifacts
|
|
57
61
|
|
|
58
|
-
Read relevant specs in `.trellis/spec/` to check code:
|
|
62
|
+
Read the task's prd.md, design.md if present, and implement.md if present, then read relevant specs in `.trellis/spec/` to check code:
|
|
59
63
|
|
|
64
|
+
- Does it satisfy the task requirements
|
|
65
|
+
- Does it follow the technical design and implementation plan when present
|
|
60
66
|
- Does it follow directory structure conventions
|
|
61
67
|
- Does it follow naming conventions
|
|
62
68
|
- Does it follow code patterns
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: trellis-implement
|
|
3
3
|
description: |
|
|
4
4
|
Code implementation expert. Understands specs and requirements, then implements features. No git commit allowed.
|
|
5
|
-
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
+
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
6
6
|
---
|
|
7
7
|
# Implement Agent
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: trellis-research
|
|
3
3
|
description: |
|
|
4
4
|
Code and tech search expert. Finds files, patterns, and tech solutions, and PERSISTS every finding to the current task's research/ directory. No code modifications outside that directory.
|
|
5
|
-
tools: Read, Write, Glob, Grep, Bash,
|
|
5
|
+
tools: Read, Write, Glob, Grep, Bash, Skill, mcp__*
|
|
6
6
|
---
|
|
7
7
|
# Research Agent
|
|
8
8
|
|
|
@@ -12,31 +12,6 @@ CRITICAL — Recursion guard (read first):
|
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
## Required: Load Trellis Context First
|
|
16
|
-
|
|
17
|
-
This platform does NOT auto-inject task context via hook. Before doing anything else, you MUST load context yourself.
|
|
18
|
-
|
|
19
|
-
### Step 1: Find the active task path
|
|
20
|
-
|
|
21
|
-
Try in order — stop at the first one that yields a task path:
|
|
22
|
-
|
|
23
|
-
1. **Look at the dispatch prompt** you received from the main agent. If its first line is `Active task: <path>` (e.g. `Active task: .trellis/tasks/04-17-foo`), use that path. The main agent is required to include this line on class-2 platforms.
|
|
24
|
-
2. **Run** `python3 ./.trellis/scripts/task.py current --source` and read the `Current task:` line.
|
|
25
|
-
3. **If both fail** (no `Active task:` line in the prompt and `task.py current` returns no task), ask the user which task to work on; do NOT guess.
|
|
26
|
-
|
|
27
|
-
### Step 2: Load task context from the resolved path
|
|
28
|
-
|
|
29
|
-
1. Read `<task-path>/check.jsonl` — JSONL list of spec/research files relevant to this agent.
|
|
30
|
-
2. For each entry in the JSONL, Read its `file` path — these are the specs and research notes you must follow.
|
|
31
|
-
**Skip rows without a `"file"` field** (e.g. `{"_example": "..."}` seed rows left over from `task.py create` before the curator ran).
|
|
32
|
-
3. Read the task's `prd.md` (requirements), then `design.md` if present (technical design), then `implement.md` if present (execution plan).
|
|
33
|
-
|
|
34
|
-
If `check.jsonl` has no curated entries (only a seed row, or the file is missing), fall back to: read the task artifacts, list available specs with `python3 ./.trellis/scripts/get_context.py --mode packages`, and pick the specs that match the task domain yourself. Do NOT block on the missing jsonl — lightweight tasks may be PRD-only, while complex tasks may also include `design.md` and `implement.md`.
|
|
35
|
-
|
|
36
|
-
If the resolved task path has no `prd.md`, ask the user what to work on; do NOT proceed without context.
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
15
|
You are the Trellis reviewer agent.
|
|
41
16
|
|
|
42
17
|
Your job is to review code changes against specs AND fix issues directly — not just report them. You have write access; use it.
|
|
@@ -12,31 +12,6 @@ CRITICAL — Recursion guard (read first):
|
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
## Required: Load Trellis Context First
|
|
16
|
-
|
|
17
|
-
This platform does NOT auto-inject task context via hook. Before doing anything else, you MUST load context yourself.
|
|
18
|
-
|
|
19
|
-
### Step 1: Find the active task path
|
|
20
|
-
|
|
21
|
-
Try in order — stop at the first one that yields a task path:
|
|
22
|
-
|
|
23
|
-
1. **Look at the dispatch prompt** you received from the main agent. If its first line is `Active task: <path>` (e.g. `Active task: .trellis/tasks/04-17-foo`), use that path. The main agent is required to include this line on class-2 platforms.
|
|
24
|
-
2. **Run** `python3 ./.trellis/scripts/task.py current --source` and read the `Current task:` line.
|
|
25
|
-
3. **If both fail** (no `Active task:` line in the prompt and `task.py current` returns no task), ask the user which task to work on; do NOT guess.
|
|
26
|
-
|
|
27
|
-
### Step 2: Load task context from the resolved path
|
|
28
|
-
|
|
29
|
-
1. Read `<task-path>/implement.jsonl` — JSONL list of spec/research files relevant to this agent.
|
|
30
|
-
2. For each entry in the JSONL, Read its `file` path — these are the specs and research notes you must follow.
|
|
31
|
-
**Skip rows without a `"file"` field** (e.g. `{"_example": "..."}` seed rows left over from `task.py create` before the curator ran).
|
|
32
|
-
3. Read the task's `prd.md` (requirements), then `design.md` if present (technical design), then `implement.md` if present (execution plan).
|
|
33
|
-
|
|
34
|
-
If `implement.jsonl` has no curated entries (only a seed row, or the file is missing), fall back to: read the task artifacts, list available specs with `python3 ./.trellis/scripts/get_context.py --mode packages`, and pick the specs that match the task domain yourself. Do NOT block on the missing jsonl — lightweight tasks may be PRD-only, while complex tasks may also include `design.md` and `implement.md`.
|
|
35
|
-
|
|
36
|
-
If the resolved task path has no `prd.md`, ask the user what to work on; do NOT proceed without context.
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
15
|
You are the Trellis implementer agent.
|
|
41
16
|
|
|
42
17
|
Rules:
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
#
|
|
6
6
|
# [projects."/abs/path/to/this/repo"]
|
|
7
7
|
# trust_level = "trusted"
|
|
8
|
-
#
|
|
9
|
-
# Without trust, the [features] block below is loaded but disabled.
|
|
10
8
|
|
|
11
9
|
# Keep AGENTS.md as the primary project instruction file.
|
|
12
10
|
project_doc_fallback_filenames = ["AGENTS.md"]
|
|
@@ -19,17 +17,12 @@ project_doc_fallback_filenames = ["AGENTS.md"]
|
|
|
19
17
|
# Codex 0.129+ additionally gates each installed hook behind a one-time
|
|
20
18
|
# `/hooks` TUI review; until the user approves it, the hook stays inactive.
|
|
21
19
|
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
# ceiling is 3,600,000 (1 h).
|
|
32
|
-
[features.multi_agent_v2]
|
|
33
|
-
enabled = true
|
|
34
|
-
max_concurrent_threads_per_session = 6
|
|
35
|
-
min_wait_timeout_ms = 480000
|
|
20
|
+
# NOTE: Trellis intentionally does NOT write a [features.multi_agent_v2]
|
|
21
|
+
# block here. Codex CLI changed `features` deserialization between 0.130
|
|
22
|
+
# and 0.131: the structured table form (with max_concurrent_threads_per_session
|
|
23
|
+
# / *_wait_timeout_ms) is only accepted by 0.131+. On 0.130 and earlier —
|
|
24
|
+
# including the codex CLI bundled inside the Codex desktop app — it fails
|
|
25
|
+
# with `data did not match any variant of untagged enum FeatureToml`, which
|
|
26
|
+
# aborts the entire config load and blocks Codex from starting. Codex's own
|
|
27
|
+
# default for multi_agent_v2 is used instead; tune it in your user-level
|
|
28
|
+
# config if needed.
|
|
@@ -18,6 +18,28 @@ import warnings
|
|
|
18
18
|
from io import StringIO
|
|
19
19
|
from pathlib import Path
|
|
20
20
|
|
|
21
|
+
# Force UTF-8 on stdin/stdout/stderr on Windows. Default codepage there is
|
|
22
|
+
# cp936 / cp1252 / etc. — non-ASCII content (Chinese task names, prd snippets)
|
|
23
|
+
# both in stdin (hook payload from host CLI) and stdout (our emitted blocks)
|
|
24
|
+
# raises UnicodeDecodeError / UnicodeEncodeError. Equivalent to `python -X utf8`
|
|
25
|
+
# but applied per-stream so we don't depend on host CLI's command wiring.
|
|
26
|
+
if sys.platform.startswith("win"):
|
|
27
|
+
import io as _io
|
|
28
|
+
for _stream_name in ("stdin", "stdout", "stderr"):
|
|
29
|
+
_stream = getattr(sys, _stream_name, None)
|
|
30
|
+
if _stream is None:
|
|
31
|
+
continue
|
|
32
|
+
if hasattr(_stream, "reconfigure"):
|
|
33
|
+
try:
|
|
34
|
+
_stream.reconfigure(encoding="utf-8", errors="replace") # type: ignore[union-attr]
|
|
35
|
+
except Exception:
|
|
36
|
+
pass
|
|
37
|
+
elif hasattr(_stream, "detach"):
|
|
38
|
+
try:
|
|
39
|
+
setattr(sys, _stream_name, _io.TextIOWrapper(_stream.detach(), encoding="utf-8", errors="replace"))
|
|
40
|
+
except Exception:
|
|
41
|
+
pass
|
|
42
|
+
|
|
21
43
|
|
|
22
44
|
def _normalize_windows_shell_path(path_str: str) -> str:
|
|
23
45
|
"""Normalize Unix-style shell paths to real Windows paths.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: trellis-channel
|
|
3
|
+
description: Use Trellis channel for live multi-agent collaboration, spawned workers, cross-agent review, progress inspection, forum channels, and channel log debugging.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# trellis-channel
|
|
7
|
+
|
|
8
|
+
`trellis channel` is the local multi-agent collaboration runtime. Reach for it when agents need to talk through a durable event log, when a worker should be spawned as a peer process, when an in-flight worker needs interrupt / debugging, or when feedback should be recorded on a durable `--type forum` channel.
|
|
9
|
+
|
|
10
|
+
Typical user signals: "和 codex/claude 讨论", "brainstorm with another agent", "spawn an implement/check worker", "let agent review", "open an issue board / changelog forum", "look at this thread", "channel is stuck / no output", "progress was truncated", "how do I write that channel command".
|
|
11
|
+
|
|
12
|
+
This skill is an index. Load only the reference file for the current job — do not preload all of them.
|
|
13
|
+
|
|
14
|
+
## First Commands
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
trellis --version
|
|
18
|
+
trellis channel --help
|
|
19
|
+
trellis channel list --all
|
|
20
|
+
trellis channel list --scope global --all
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
If the user names a channel or thread, inspect it before asking for background:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
trellis channel forum <board> --scope global
|
|
27
|
+
trellis channel thread <board> <thread> --scope global
|
|
28
|
+
trellis channel context list <board> --scope global --thread <thread>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Route By User Intent
|
|
32
|
+
|
|
33
|
+
| User intent | Read |
|
|
34
|
+
|---|---|
|
|
35
|
+
| "和 codex/claude 讨论一下", "brainstorm with another agent" | `references/workflows.md` |
|
|
36
|
+
| "派一个 implement/check agent", "让 agent review", "spawn a worker" | `references/workflows.md`, then `references/workers.md` |
|
|
37
|
+
| "开 issue 区 / topic 群 / changelog / board", "make a forum" | `references/forum.md` |
|
|
38
|
+
| "看看这个 thread / linked context", "inspect a thread" | `references/forum.md` |
|
|
39
|
+
| "channel 卡住了 / 没输出 / progress 被截断", "worker stalled" | `references/progress-debugging.md` |
|
|
40
|
+
| "具体命令怎么写", "what flags does X take" | `references/command-reference.md` |
|
|
41
|
+
|
|
42
|
+
## Core Rules
|
|
43
|
+
|
|
44
|
+
- New forum channels use `--type forum`. A `thread` is one item inside a forum channel.
|
|
45
|
+
- Use `--context-file` / `--context-raw` and `trellis channel context add/delete/list`. `--linked-context-*` is deprecated terminology.
|
|
46
|
+
- Use `--stdin` or `--text-file` for long messages. Do not put long mixed Chinese/English text in the positional shell argument.
|
|
47
|
+
- Pretty `messages` output is an operator dashboard and may truncate progress. Use `--raw` for audit.
|
|
48
|
+
- `--as` is the speaker or worker handle, depending on the command. Use explicit, stable names when multiple agents or sessions are involved.
|
|
49
|
+
- `--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.
|
|
50
|
+
- For brainstorm, do multiple pressure-test rounds. One answer plus one confirmation is review, not brainstorm.
|
|
51
|
+
- **Dispatcher wait pattern**: use `--kind done` / `--kind turn_finished` (trellis-emitted system events), NOT a user `--tag` as the completion signal. CLI help lists `phase_done` / `question` as `--tag` examples but only `interrupt` is a reserved tag with hardcoded trellis behavior; the others are opaque user labels. Relying on a worker to run `send --tag <my_signal>` is unreliable — LLM workers commonly write the tag string into prose instead of running the actual CLI command. See `references/command-reference.md` "tag vs kind".
|
|
52
|
+
- Forum channels are event-sourced. Do not parse `events.jsonl` first; use `forum`, `thread`, `messages --thread`, and `context list`.
|
|
53
|
+
- `@mindfoldhq/trellis-core` owns reusable channel/thread state, event append, seq allocation, context/title projection, reducers, and task helpers. The CLI owns flags, terminal rendering, prompts, worker lifecycle, and process exits.
|
|
54
|
+
|
|
55
|
+
## Reference Files
|
|
56
|
+
|
|
57
|
+
- `references/workflows.md` — canonical collaboration patterns A–F (peer brainstorm, spawned review, dispatch-and-wait, forum issue capture, interrupt-and-redirect, one-shot run).
|
|
58
|
+
- `references/forum.md` — forum channels, context, title, rename, changelog forums, thread filtering.
|
|
59
|
+
- `references/workers.md` — spawn, agent cards, context injection (`--file` / `--jsonl`), interrupts, kill semantics.
|
|
60
|
+
- `references/progress-debugging.md` — progress/raw inspection, stalled worker diagnosis, OOM guard, exit codes.
|
|
61
|
+
- `references/command-reference.md` — current CLI command reference (every subcommand, every flag, output conventions, scope/type model).
|
|
62
|
+
|
|
63
|
+
## Not For
|
|
64
|
+
|
|
65
|
+
- One static review where a markdown file and prompt are enough.
|
|
66
|
+
- Replacing normal tool calls with self-logging.
|
|
67
|
+
- Long-term memory retrieval. Use durable forum channels for actionable issues, and `trellis mem` (the `trellis-session-insight` skill) for session/history search.
|