@mindfoldhq/trellis 0.4.0 → 0.5.0-beta.10
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/dist/cli/index.js +0 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/init.d.ts +10 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +382 -120
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.d.ts +5 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +178 -61
- package/dist/commands/update.js.map +1 -1
- package/dist/configurators/antigravity.d.ts +3 -4
- package/dist/configurators/antigravity.d.ts.map +1 -1
- package/dist/configurators/antigravity.js +17 -10
- package/dist/configurators/antigravity.js.map +1 -1
- package/dist/configurators/claude.d.ts +5 -28
- package/dist/configurators/claude.d.ts.map +1 -1
- package/dist/configurators/claude.js +30 -51
- package/dist/configurators/claude.js.map +1 -1
- package/dist/configurators/codebuddy.d.ts +6 -7
- package/dist/configurators/codebuddy.d.ts.map +1 -1
- package/dist/configurators/codebuddy.js +23 -51
- package/dist/configurators/codebuddy.js.map +1 -1
- package/dist/configurators/codex.d.ts +3 -6
- package/dist/configurators/codex.d.ts.map +1 -1
- package/dist/configurators/codex.js +29 -12
- package/dist/configurators/codex.js.map +1 -1
- package/dist/configurators/copilot.d.ts +6 -5
- package/dist/configurators/copilot.d.ts.map +1 -1
- package/dist/configurators/copilot.js +42 -13
- package/dist/configurators/copilot.js.map +1 -1
- package/dist/configurators/cursor.d.ts +6 -1
- package/dist/configurators/cursor.d.ts.map +1 -1
- package/dist/configurators/cursor.js +22 -45
- package/dist/configurators/cursor.js.map +1 -1
- package/dist/configurators/droid.d.ts +6 -1
- package/dist/configurators/droid.d.ts.map +1 -1
- package/dist/configurators/droid.js +23 -41
- package/dist/configurators/droid.js.map +1 -1
- package/dist/configurators/gemini.d.ts +8 -4
- package/dist/configurators/gemini.d.ts.map +1 -1
- package/dist/configurators/gemini.js +28 -47
- package/dist/configurators/gemini.js.map +1 -1
- package/dist/configurators/index.d.ts +1 -1
- package/dist/configurators/index.d.ts.map +1 -1
- package/dist/configurators/index.js +146 -100
- package/dist/configurators/index.js.map +1 -1
- package/dist/configurators/kilo.d.ts +3 -4
- package/dist/configurators/kilo.d.ts.map +1 -1
- package/dist/configurators/kilo.js +19 -46
- package/dist/configurators/kilo.js.map +1 -1
- package/dist/configurators/kiro.d.ts +4 -4
- package/dist/configurators/kiro.d.ts.map +1 -1
- package/dist/configurators/kiro.js +18 -14
- package/dist/configurators/kiro.js.map +1 -1
- package/dist/configurators/opencode.d.ts +7 -25
- package/dist/configurators/opencode.d.ts.map +1 -1
- package/dist/configurators/opencode.js +57 -56
- package/dist/configurators/opencode.js.map +1 -1
- package/dist/configurators/qoder.d.ts +6 -3
- package/dist/configurators/qoder.d.ts.map +1 -1
- package/dist/configurators/qoder.js +27 -46
- package/dist/configurators/qoder.js.map +1 -1
- package/dist/configurators/shared.d.ts +68 -3
- package/dist/configurators/shared.d.ts.map +1 -1
- package/dist/configurators/shared.js +274 -3
- package/dist/configurators/shared.js.map +1 -1
- package/dist/configurators/windsurf.d.ts +3 -4
- package/dist/configurators/windsurf.d.ts.map +1 -1
- package/dist/configurators/windsurf.js +17 -10
- package/dist/configurators/windsurf.js.map +1 -1
- package/dist/configurators/workflow.d.ts +0 -3
- package/dist/configurators/workflow.d.ts.map +1 -1
- package/dist/configurators/workflow.js +1 -7
- package/dist/configurators/workflow.js.map +1 -1
- package/dist/migrations/manifests/0.4.0.json +1 -1
- package/dist/migrations/manifests/0.5.0-beta.0.json +1646 -0
- package/dist/migrations/manifests/0.5.0-beta.1.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.4.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.5.json +222 -0
- package/dist/migrations/manifests/0.5.0-beta.6.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.7.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.8.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.9.json +48 -0
- package/dist/templates/claude/agents/{check.md → trellis-check.md} +3 -31
- package/dist/templates/claude/agents/{implement.md → trellis-implement.md} +1 -2
- package/dist/templates/claude/agents/trellis-research.md +137 -0
- package/dist/templates/claude/index.d.ts +5 -37
- package/dist/templates/claude/index.d.ts.map +1 -1
- package/dist/templates/claude/index.js +3 -42
- package/dist/templates/claude/index.js.map +1 -1
- package/dist/templates/claude/settings.json +6 -4
- package/dist/templates/{iflow/agents/check.md → codebuddy/agents/trellis-check.md} +3 -31
- package/dist/templates/{iflow/agents/implement.md → codebuddy/agents/trellis-implement.md} +1 -2
- package/dist/templates/codebuddy/agents/trellis-research.md +137 -0
- package/dist/templates/codebuddy/index.d.ts +6 -16
- package/dist/templates/codebuddy/index.d.ts.map +1 -1
- package/dist/templates/codebuddy/index.js +6 -36
- package/dist/templates/codebuddy/index.js.map +1 -1
- package/dist/templates/codebuddy/settings.json +59 -0
- package/dist/templates/codex/agents/trellis-check.toml +38 -0
- package/dist/templates/codex/agents/{implement.toml → trellis-implement.toml} +1 -1
- package/dist/templates/codex/agents/trellis-research.toml +60 -0
- package/dist/templates/codex/config.toml +10 -0
- package/dist/templates/codex/hooks/session-start.py +65 -29
- package/dist/templates/codex/hooks.json +11 -0
- package/dist/templates/codex/index.d.ts +0 -1
- package/dist/templates/codex/index.d.ts.map +1 -1
- package/dist/templates/codex/index.js +1 -8
- package/dist/templates/codex/index.js.map +1 -1
- package/dist/templates/codex/skills/start/SKILL.md +1 -1
- package/dist/templates/common/commands/continue.md +51 -0
- package/dist/templates/common/commands/finish-work.md +32 -0
- package/dist/templates/common/commands/start.md +56 -0
- package/dist/templates/common/index.d.ts +28 -0
- package/dist/templates/common/index.d.ts.map +1 -0
- package/dist/templates/common/index.js +55 -0
- package/dist/templates/common/index.js.map +1 -0
- package/dist/templates/{droid/commands/trellis → common/skills}/brainstorm.md +51 -12
- package/dist/templates/{iflow/commands/trellis → common/skills}/break-loop.md +4 -4
- package/dist/templates/common/skills/check.md +87 -0
- package/dist/templates/{codebuddy/commands/trellis → common/skills}/update-spec.md +18 -21
- package/dist/templates/copilot/hooks/session-start.py +65 -29
- package/dist/templates/copilot/hooks.json +8 -0
- package/dist/templates/copilot/prompts/start.prompt.md +13 -16
- package/dist/templates/cursor/agents/trellis-check.md +94 -0
- package/dist/templates/cursor/agents/trellis-implement.md +94 -0
- package/dist/templates/cursor/agents/trellis-research.md +137 -0
- package/dist/templates/cursor/hooks.json +24 -0
- package/dist/templates/cursor/index.d.ts +6 -17
- package/dist/templates/cursor/index.d.ts.map +1 -1
- package/dist/templates/cursor/index.js +6 -37
- package/dist/templates/cursor/index.js.map +1 -1
- package/dist/templates/droid/droids/trellis-check.md +94 -0
- package/dist/templates/droid/droids/trellis-implement.md +94 -0
- package/dist/templates/droid/droids/trellis-research.md +137 -0
- package/dist/templates/droid/index.d.ts +7 -19
- package/dist/templates/droid/index.d.ts.map +1 -1
- package/dist/templates/droid/index.js +7 -39
- package/dist/templates/droid/index.js.map +1 -1
- package/dist/templates/droid/settings.json +59 -0
- package/dist/templates/extract.d.ts +7 -193
- package/dist/templates/extract.d.ts.map +1 -1
- package/dist/templates/extract.js +7 -310
- package/dist/templates/extract.js.map +1 -1
- package/dist/templates/gemini/agents/trellis-check.md +94 -0
- package/dist/templates/gemini/agents/trellis-implement.md +94 -0
- package/dist/templates/gemini/agents/trellis-research.md +137 -0
- package/dist/templates/gemini/index.d.ts +6 -14
- package/dist/templates/gemini/index.d.ts.map +1 -1
- package/dist/templates/gemini/index.js +6 -37
- package/dist/templates/gemini/index.js.map +1 -1
- package/dist/templates/gemini/settings.json +28 -0
- package/dist/templates/kiro/agents/trellis-check.json +13 -0
- package/dist/templates/kiro/agents/trellis-implement.json +13 -0
- package/dist/templates/kiro/agents/trellis-research.json +21 -0
- package/dist/templates/kiro/index.d.ts +11 -11
- package/dist/templates/kiro/index.d.ts.map +1 -1
- package/dist/templates/kiro/index.js +11 -33
- package/dist/templates/kiro/index.js.map +1 -1
- package/dist/templates/opencode/agents/{check.md → trellis-check.md} +3 -30
- package/dist/templates/opencode/agents/{implement.md → trellis-implement.md} +1 -1
- package/dist/templates/opencode/agents/{research.md → trellis-research.md} +1 -2
- package/dist/templates/opencode/plugins/inject-subagent-context.js +18 -190
- package/dist/templates/opencode/plugins/inject-workflow-state.js +172 -0
- package/dist/templates/opencode/plugins/session-start.js +76 -39
- package/dist/templates/qoder/agents/trellis-check.md +94 -0
- package/dist/templates/qoder/agents/trellis-implement.md +94 -0
- package/dist/templates/qoder/agents/trellis-research.md +137 -0
- package/dist/templates/qoder/index.d.ts +7 -10
- package/dist/templates/qoder/index.d.ts.map +1 -1
- package/dist/templates/qoder/index.js +7 -32
- package/dist/templates/qoder/index.js.map +1 -1
- package/dist/templates/qoder/settings.json +47 -0
- package/dist/templates/shared-hooks/index.d.ts +19 -0
- package/dist/templates/shared-hooks/index.d.ts.map +1 -0
- package/dist/templates/shared-hooks/index.js +30 -0
- package/dist/templates/shared-hooks/index.js.map +1 -0
- package/dist/templates/{iflow/hooks → shared-hooks}/inject-subagent-context.py +77 -266
- package/dist/templates/shared-hooks/inject-workflow-state.py +244 -0
- package/dist/templates/{claude/hooks → shared-hooks}/session-start.py +172 -55
- package/dist/templates/template-utils.d.ts +26 -0
- package/dist/templates/template-utils.d.ts.map +1 -0
- package/dist/templates/template-utils.js +60 -0
- package/dist/templates/template-utils.js.map +1 -0
- package/dist/templates/trellis/config.yaml +6 -0
- package/dist/templates/trellis/index.d.ts +1 -15
- package/dist/templates/trellis/index.d.ts.map +1 -1
- package/dist/templates/trellis/index.js +2 -29
- package/dist/templates/trellis/index.js.map +1 -1
- package/dist/templates/trellis/scripts/common/cli_adapter.py +31 -8
- package/dist/templates/trellis/scripts/common/config.py +126 -1
- package/dist/templates/trellis/scripts/common/git_context.py +25 -2
- package/dist/templates/trellis/scripts/common/task_context.py +23 -28
- package/dist/templates/trellis/scripts/common/task_store.py +0 -12
- package/dist/templates/trellis/scripts/common/types.py +0 -2
- package/dist/templates/trellis/scripts/common/workflow_phase.py +176 -0
- package/dist/templates/trellis/scripts/task.py +13 -35
- package/dist/templates/trellis/workflow.md +283 -298
- package/dist/types/ai-tools.d.ts +30 -3
- package/dist/types/ai-tools.d.ts.map +1 -1
- package/dist/types/ai-tools.js +119 -15
- package/dist/types/ai-tools.js.map +1 -1
- package/dist/types/migration.d.ts +8 -1
- package/dist/types/migration.d.ts.map +1 -1
- package/dist/utils/project-detector.d.ts +2 -0
- package/dist/utils/project-detector.d.ts.map +1 -1
- package/dist/utils/project-detector.js +120 -11
- package/dist/utils/project-detector.js.map +1 -1
- package/dist/utils/task-json.d.ts +46 -0
- package/dist/utils/task-json.d.ts.map +1 -0
- package/dist/utils/task-json.js +49 -0
- package/dist/utils/task-json.js.map +1 -0
- package/package.json +3 -2
- package/dist/configurators/iflow.d.ts +0 -33
- package/dist/configurators/iflow.d.ts.map +0 -1
- package/dist/configurators/iflow.js +0 -99
- package/dist/configurators/iflow.js.map +0 -1
- package/dist/templates/antigravity/index.d.ts +0 -12
- package/dist/templates/antigravity/index.d.ts.map +0 -1
- package/dist/templates/antigravity/index.js +0 -29
- package/dist/templates/antigravity/index.js.map +0 -1
- package/dist/templates/claude/agents/debug.md +0 -106
- package/dist/templates/claude/agents/dispatch.md +0 -213
- package/dist/templates/claude/agents/plan.md +0 -396
- package/dist/templates/claude/agents/research.md +0 -120
- package/dist/templates/claude/commands/trellis/brainstorm.md +0 -487
- package/dist/templates/claude/commands/trellis/break-loop.md +0 -125
- package/dist/templates/claude/commands/trellis/check-cross-layer.md +0 -153
- package/dist/templates/claude/commands/trellis/check.md +0 -25
- package/dist/templates/claude/commands/trellis/create-command.md +0 -154
- package/dist/templates/claude/commands/trellis/finish-work.md +0 -153
- package/dist/templates/claude/commands/trellis/integrate-skill.md +0 -219
- package/dist/templates/claude/commands/trellis/onboard.md +0 -358
- package/dist/templates/claude/commands/trellis/parallel.md +0 -192
- package/dist/templates/claude/commands/trellis/record-session.md +0 -62
- package/dist/templates/claude/commands/trellis/start.md +0 -393
- package/dist/templates/claude/commands/trellis/update-spec.md +0 -354
- package/dist/templates/claude/hooks/inject-subagent-context.py +0 -803
- package/dist/templates/claude/hooks/ralph-loop.py +0 -396
- package/dist/templates/codebuddy/commands/trellis/before-dev.md +0 -29
- package/dist/templates/codebuddy/commands/trellis/brainstorm.md +0 -487
- package/dist/templates/codebuddy/commands/trellis/break-loop.md +0 -107
- package/dist/templates/codebuddy/commands/trellis/check-cross-layer.md +0 -153
- package/dist/templates/codebuddy/commands/trellis/check.md +0 -25
- package/dist/templates/codebuddy/commands/trellis/create-command.md +0 -154
- package/dist/templates/codebuddy/commands/trellis/finish-work.md +0 -143
- package/dist/templates/codebuddy/commands/trellis/integrate-skill.md +0 -219
- package/dist/templates/codebuddy/commands/trellis/onboard.md +0 -358
- package/dist/templates/codebuddy/commands/trellis/record-session.md +0 -61
- package/dist/templates/codebuddy/commands/trellis/start.md +0 -373
- package/dist/templates/codex/agents/check.toml +0 -23
- package/dist/templates/codex/agents/research.toml +0 -26
- package/dist/templates/codex/codex-skills/parallel/SKILL.md +0 -194
- package/dist/templates/cursor/commands/trellis-before-dev.md +0 -29
- package/dist/templates/cursor/commands/trellis-brainstorm.md +0 -487
- package/dist/templates/cursor/commands/trellis-break-loop.md +0 -107
- package/dist/templates/cursor/commands/trellis-check-cross-layer.md +0 -153
- package/dist/templates/cursor/commands/trellis-check.md +0 -25
- package/dist/templates/cursor/commands/trellis-create-command.md +0 -154
- package/dist/templates/cursor/commands/trellis-finish-work.md +0 -143
- package/dist/templates/cursor/commands/trellis-integrate-skill.md +0 -219
- package/dist/templates/cursor/commands/trellis-onboard.md +0 -358
- package/dist/templates/cursor/commands/trellis-record-session.md +0 -62
- package/dist/templates/cursor/commands/trellis-start.md +0 -373
- package/dist/templates/cursor/commands/trellis-update-spec.md +0 -354
- package/dist/templates/droid/commands/trellis/before-dev.md +0 -33
- package/dist/templates/droid/commands/trellis/break-loop.md +0 -111
- package/dist/templates/droid/commands/trellis/check-cross-layer.md +0 -157
- package/dist/templates/droid/commands/trellis/check.md +0 -29
- package/dist/templates/droid/commands/trellis/create-command.md +0 -158
- package/dist/templates/droid/commands/trellis/finish-work.md +0 -147
- package/dist/templates/droid/commands/trellis/integrate-skill.md +0 -223
- package/dist/templates/droid/commands/trellis/onboard.md +0 -362
- package/dist/templates/droid/commands/trellis/record-session.md +0 -66
- package/dist/templates/droid/commands/trellis/start.md +0 -377
- package/dist/templates/droid/commands/trellis/update-spec.md +0 -358
- package/dist/templates/gemini/commands/trellis/before-dev.toml +0 -33
- package/dist/templates/gemini/commands/trellis/brainstorm.toml +0 -435
- package/dist/templates/gemini/commands/trellis/break-loop.toml +0 -129
- package/dist/templates/gemini/commands/trellis/check-cross-layer.toml +0 -147
- package/dist/templates/gemini/commands/trellis/check.toml +0 -29
- package/dist/templates/gemini/commands/trellis/create-command.toml +0 -119
- package/dist/templates/gemini/commands/trellis/finish-work.toml +0 -133
- package/dist/templates/gemini/commands/trellis/integrate-skill.toml +0 -104
- package/dist/templates/gemini/commands/trellis/onboard.toml +0 -111
- package/dist/templates/gemini/commands/trellis/record-session.toml +0 -66
- package/dist/templates/gemini/commands/trellis/start.toml +0 -354
- package/dist/templates/gemini/commands/trellis/update-spec.toml +0 -132
- package/dist/templates/iflow/agents/debug.md +0 -106
- package/dist/templates/iflow/agents/dispatch.md +0 -213
- package/dist/templates/iflow/agents/plan.md +0 -396
- package/dist/templates/iflow/agents/research.md +0 -120
- package/dist/templates/iflow/commands/trellis/before-dev.md +0 -29
- package/dist/templates/iflow/commands/trellis/brainstorm.md +0 -487
- package/dist/templates/iflow/commands/trellis/check-cross-layer.md +0 -153
- package/dist/templates/iflow/commands/trellis/check.md +0 -25
- package/dist/templates/iflow/commands/trellis/create-command.md +0 -152
- package/dist/templates/iflow/commands/trellis/finish-work.md +0 -153
- package/dist/templates/iflow/commands/trellis/integrate-skill.md +0 -219
- package/dist/templates/iflow/commands/trellis/onboard.md +0 -358
- package/dist/templates/iflow/commands/trellis/parallel.md +0 -192
- package/dist/templates/iflow/commands/trellis/record-session.md +0 -62
- package/dist/templates/iflow/commands/trellis/start.md +0 -393
- package/dist/templates/iflow/commands/trellis/update-spec.md +0 -354
- package/dist/templates/iflow/hooks/ralph-loop.py +0 -395
- package/dist/templates/iflow/hooks/session-start.py +0 -403
- package/dist/templates/iflow/index.d.ts +0 -54
- package/dist/templates/iflow/index.d.ts.map +0 -1
- package/dist/templates/iflow/index.js +0 -85
- package/dist/templates/iflow/index.js.map +0 -1
- package/dist/templates/iflow/settings.json +0 -60
- package/dist/templates/kilo/index.d.ts +0 -16
- package/dist/templates/kilo/index.d.ts.map +0 -1
- package/dist/templates/kilo/index.js +0 -39
- package/dist/templates/kilo/index.js.map +0 -1
- package/dist/templates/kilo/workflows/before-dev.md +0 -29
- package/dist/templates/kilo/workflows/brainstorm.md +0 -487
- package/dist/templates/kilo/workflows/break-loop.md +0 -125
- package/dist/templates/kilo/workflows/check-cross-layer.md +0 -153
- package/dist/templates/kilo/workflows/check.md +0 -25
- package/dist/templates/kilo/workflows/create-command.md +0 -152
- package/dist/templates/kilo/workflows/finish-work.md +0 -129
- package/dist/templates/kilo/workflows/integrate-skill.md +0 -219
- package/dist/templates/kilo/workflows/onboard.md +0 -358
- package/dist/templates/kilo/workflows/parallel.md +0 -193
- package/dist/templates/kilo/workflows/record-session.md +0 -62
- package/dist/templates/kilo/workflows/start.md +0 -387
- package/dist/templates/kilo/workflows/update-spec.md +0 -285
- package/dist/templates/kiro/skills/before-dev/SKILL.md +0 -34
- package/dist/templates/kiro/skills/brainstorm/SKILL.md +0 -492
- package/dist/templates/kiro/skills/break-loop/SKILL.md +0 -130
- package/dist/templates/kiro/skills/check/SKILL.md +0 -30
- package/dist/templates/kiro/skills/check-cross-layer/SKILL.md +0 -158
- package/dist/templates/kiro/skills/create-command/SKILL.md +0 -101
- package/dist/templates/kiro/skills/finish-work/SKILL.md +0 -148
- package/dist/templates/kiro/skills/integrate-skill/SKILL.md +0 -221
- package/dist/templates/kiro/skills/onboard/SKILL.md +0 -363
- package/dist/templates/kiro/skills/record-session/SKILL.md +0 -67
- package/dist/templates/kiro/skills/start/SKILL.md +0 -351
- package/dist/templates/kiro/skills/update-spec/SKILL.md +0 -335
- package/dist/templates/markdown/spec/backend/directory-structure.md +0 -292
- package/dist/templates/markdown/spec/backend/index.md +0 -40
- package/dist/templates/markdown/spec/backend/script-conventions.md +0 -742
- package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md +0 -118
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md +0 -394
- package/dist/templates/opencode/agents/debug.md +0 -129
- package/dist/templates/opencode/agents/dispatch.md +0 -223
- package/dist/templates/opencode/agents/trellis-plan.md +0 -427
- package/dist/templates/opencode/commands/trellis/before-dev.md +0 -29
- package/dist/templates/opencode/commands/trellis/brainstorm.md +0 -487
- package/dist/templates/opencode/commands/trellis/break-loop.md +0 -125
- package/dist/templates/opencode/commands/trellis/check-cross-layer.md +0 -153
- package/dist/templates/opencode/commands/trellis/check.md +0 -25
- package/dist/templates/opencode/commands/trellis/create-command.md +0 -154
- package/dist/templates/opencode/commands/trellis/finish-work.md +0 -144
- package/dist/templates/opencode/commands/trellis/integrate-skill.md +0 -219
- package/dist/templates/opencode/commands/trellis/migrate-specs.md +0 -0
- package/dist/templates/opencode/commands/trellis/onboard.md +0 -358
- package/dist/templates/opencode/commands/trellis/parallel.md +0 -193
- package/dist/templates/opencode/commands/trellis/record-session.md +0 -62
- package/dist/templates/opencode/commands/trellis/start.md +0 -351
- package/dist/templates/opencode/commands/trellis/update-spec.md +0 -354
- package/dist/templates/qoder/skills/before-dev/SKILL.md +0 -34
- package/dist/templates/qoder/skills/brainstorm/SKILL.md +0 -492
- package/dist/templates/qoder/skills/break-loop/SKILL.md +0 -130
- package/dist/templates/qoder/skills/check/SKILL.md +0 -30
- package/dist/templates/qoder/skills/check-cross-layer/SKILL.md +0 -158
- package/dist/templates/qoder/skills/create-command/SKILL.md +0 -101
- package/dist/templates/qoder/skills/finish-work/SKILL.md +0 -134
- package/dist/templates/qoder/skills/integrate-skill/SKILL.md +0 -221
- package/dist/templates/qoder/skills/onboard/SKILL.md +0 -363
- package/dist/templates/qoder/skills/record-session/SKILL.md +0 -67
- package/dist/templates/qoder/skills/start/SKILL.md +0 -388
- package/dist/templates/qoder/skills/update-spec/SKILL.md +0 -290
- package/dist/templates/trellis/scripts/common/phase.py +0 -254
- package/dist/templates/trellis/scripts/common/registry.py +0 -335
- package/dist/templates/trellis/scripts/common/worktree.py +0 -305
- package/dist/templates/trellis/scripts/create_bootstrap.py +0 -298
- package/dist/templates/trellis/scripts/multi_agent/__init__.py +0 -5
- package/dist/templates/trellis/scripts/multi_agent/_bootstrap.py +0 -17
- package/dist/templates/trellis/scripts/multi_agent/cleanup.py +0 -398
- package/dist/templates/trellis/scripts/multi_agent/create_pr.py +0 -620
- package/dist/templates/trellis/scripts/multi_agent/plan.py +0 -213
- package/dist/templates/trellis/scripts/multi_agent/start.py +0 -539
- package/dist/templates/trellis/scripts/multi_agent/status.py +0 -76
- package/dist/templates/trellis/scripts/multi_agent/status_display.py +0 -542
- package/dist/templates/trellis/scripts/multi_agent/status_monitor.py +0 -225
- package/dist/templates/trellis/scripts-shell-archive/add-session.sh +0 -384
- package/dist/templates/trellis/scripts-shell-archive/common/developer.sh +0 -129
- package/dist/templates/trellis/scripts-shell-archive/common/git-context.sh +0 -263
- package/dist/templates/trellis/scripts-shell-archive/common/paths.sh +0 -208
- package/dist/templates/trellis/scripts-shell-archive/common/phase.sh +0 -150
- package/dist/templates/trellis/scripts-shell-archive/common/registry.sh +0 -247
- package/dist/templates/trellis/scripts-shell-archive/common/task-queue.sh +0 -142
- package/dist/templates/trellis/scripts-shell-archive/common/task-utils.sh +0 -151
- package/dist/templates/trellis/scripts-shell-archive/common/worktree.sh +0 -128
- package/dist/templates/trellis/scripts-shell-archive/create-bootstrap.sh +0 -299
- package/dist/templates/trellis/scripts-shell-archive/get-context.sh +0 -7
- package/dist/templates/trellis/scripts-shell-archive/get-developer.sh +0 -15
- package/dist/templates/trellis/scripts-shell-archive/init-developer.sh +0 -34
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/cleanup.sh +0 -396
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/create-pr.sh +0 -241
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/plan.sh +0 -207
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/start.sh +0 -317
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/status.sh +0 -828
- package/dist/templates/trellis/scripts-shell-archive/task.sh +0 -1204
- package/dist/templates/trellis/worktree.yaml +0 -47
- package/dist/templates/windsurf/index.d.ts +0 -21
- package/dist/templates/windsurf/index.d.ts.map +0 -1
- package/dist/templates/windsurf/index.js +0 -44
- package/dist/templates/windsurf/index.js.map +0 -1
- package/dist/templates/windsurf/workflows/trellis-before-dev.md +0 -31
- package/dist/templates/windsurf/workflows/trellis-brainstorm.md +0 -491
- package/dist/templates/windsurf/workflows/trellis-break-loop.md +0 -111
- package/dist/templates/windsurf/workflows/trellis-check-cross-layer.md +0 -157
- package/dist/templates/windsurf/workflows/trellis-check.md +0 -27
- package/dist/templates/windsurf/workflows/trellis-create-command.md +0 -154
- package/dist/templates/windsurf/workflows/trellis-finish-work.md +0 -147
- package/dist/templates/windsurf/workflows/trellis-integrate-skill.md +0 -220
- package/dist/templates/windsurf/workflows/trellis-onboard.md +0 -362
- package/dist/templates/windsurf/workflows/trellis-record-session.md +0 -66
- package/dist/templates/windsurf/workflows/trellis-start.md +0 -373
- package/dist/templates/windsurf/workflows/trellis-update-spec.md +0 -358
- /package/dist/templates/{claude/commands/trellis → common/skills}/before-dev.md +0 -0
- /package/dist/templates/{claude/hooks → shared-hooks}/statusline.py +0 -0
|
@@ -1,54 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Claude Code templates
|
|
3
3
|
*
|
|
4
|
-
* These are GENERIC templates for user projects.
|
|
5
|
-
* Do NOT use Trellis project's own .claude/ directory (which may be customized).
|
|
6
|
-
*
|
|
7
4
|
* Directory structure:
|
|
8
5
|
* claude/
|
|
9
|
-
* ├──
|
|
10
|
-
* ├── agents/ # Multi-agent pipeline agents
|
|
11
|
-
* ├── hooks/ # Context injection hooks
|
|
6
|
+
* ├── agents/ # Sub-agent definitions
|
|
12
7
|
* └── settings.json # Settings configuration
|
|
8
|
+
*
|
|
9
|
+
* Hooks come from shared-hooks/ (unified with other platforms).
|
|
13
10
|
*/
|
|
14
11
|
export declare const settingsTemplate: string;
|
|
15
|
-
/**
|
|
16
|
-
* Command template with name and content
|
|
17
|
-
*/
|
|
18
|
-
export interface CommandTemplate {
|
|
19
|
-
name: string;
|
|
20
|
-
content: string;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Agent template with name and content
|
|
24
|
-
*/
|
|
25
12
|
export interface AgentTemplate {
|
|
26
13
|
name: string;
|
|
27
14
|
content: string;
|
|
28
15
|
}
|
|
29
|
-
|
|
30
|
-
* Hook template with target path and content
|
|
31
|
-
*/
|
|
32
|
-
export interface HookTemplate {
|
|
16
|
+
export interface SettingsTemplate {
|
|
33
17
|
targetPath: string;
|
|
34
18
|
content: string;
|
|
35
19
|
}
|
|
36
|
-
/**
|
|
37
|
-
* Get all command templates
|
|
38
|
-
* Commands are stored in commands/trellis/ subdirectory
|
|
39
|
-
* This creates commands like /trellis:start, /trellis:finish-work, etc.
|
|
40
|
-
*/
|
|
41
|
-
export declare function getAllCommands(): CommandTemplate[];
|
|
42
|
-
/**
|
|
43
|
-
* Get all agent templates
|
|
44
|
-
*/
|
|
45
20
|
export declare function getAllAgents(): AgentTemplate[];
|
|
46
|
-
|
|
47
|
-
* Get all hook templates
|
|
48
|
-
*/
|
|
49
|
-
export declare function getAllHooks(): HookTemplate[];
|
|
50
|
-
/**
|
|
51
|
-
* Get settings template
|
|
52
|
-
*/
|
|
53
|
-
export declare function getSettingsTemplate(): HookTemplate;
|
|
21
|
+
export declare function getSettingsTemplate(): SettingsTemplate;
|
|
54
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/claude/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/claude/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqBH,eAAO,MAAM,gBAAgB,QAAgC,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAa9C;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Claude Code templates
|
|
3
3
|
*
|
|
4
|
-
* These are GENERIC templates for user projects.
|
|
5
|
-
* Do NOT use Trellis project's own .claude/ directory (which may be customized).
|
|
6
|
-
*
|
|
7
4
|
* Directory structure:
|
|
8
5
|
* claude/
|
|
9
|
-
* ├──
|
|
10
|
-
* ├── agents/ # Multi-agent pipeline agents
|
|
11
|
-
* ├── hooks/ # Context injection hooks
|
|
6
|
+
* ├── agents/ # Sub-agent definitions
|
|
12
7
|
* └── settings.json # Settings configuration
|
|
8
|
+
*
|
|
9
|
+
* Hooks come from shared-hooks/ (unified with other platforms).
|
|
13
10
|
*/
|
|
14
11
|
import { readdirSync, readFileSync } from "node:fs";
|
|
15
12
|
import { dirname, join } from "node:path";
|
|
@@ -27,28 +24,7 @@ function listFiles(dir) {
|
|
|
27
24
|
return [];
|
|
28
25
|
}
|
|
29
26
|
}
|
|
30
|
-
// Settings
|
|
31
27
|
export const settingsTemplate = readTemplate("settings.json");
|
|
32
|
-
/**
|
|
33
|
-
* Get all command templates
|
|
34
|
-
* Commands are stored in commands/trellis/ subdirectory
|
|
35
|
-
* This creates commands like /trellis:start, /trellis:finish-work, etc.
|
|
36
|
-
*/
|
|
37
|
-
export function getAllCommands() {
|
|
38
|
-
const commands = [];
|
|
39
|
-
const files = listFiles("commands/trellis");
|
|
40
|
-
for (const file of files) {
|
|
41
|
-
if (file.endsWith(".md")) {
|
|
42
|
-
const name = file.replace(".md", "");
|
|
43
|
-
const content = readTemplate(`commands/trellis/${file}`);
|
|
44
|
-
commands.push({ name, content });
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return commands;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Get all agent templates
|
|
51
|
-
*/
|
|
52
28
|
export function getAllAgents() {
|
|
53
29
|
const agents = [];
|
|
54
30
|
const files = listFiles("agents");
|
|
@@ -61,21 +37,6 @@ export function getAllAgents() {
|
|
|
61
37
|
}
|
|
62
38
|
return agents;
|
|
63
39
|
}
|
|
64
|
-
/**
|
|
65
|
-
* Get all hook templates
|
|
66
|
-
*/
|
|
67
|
-
export function getAllHooks() {
|
|
68
|
-
const hooks = [];
|
|
69
|
-
const files = listFiles("hooks");
|
|
70
|
-
for (const file of files) {
|
|
71
|
-
const content = readTemplate(`hooks/${file}`);
|
|
72
|
-
hooks.push({ targetPath: `hooks/${file}`, content });
|
|
73
|
-
}
|
|
74
|
-
return hooks;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Get settings template
|
|
78
|
-
*/
|
|
79
40
|
export function getSettingsTemplate() {
|
|
80
41
|
return {
|
|
81
42
|
targetPath: "settings.json",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/claude/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/claude/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,SAAS,YAAY,CAAC,YAAoB;IACxC,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAY9D,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,UAAU,EAAE,eAAe;QAC3B,OAAO,EAAE,gBAAgB;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
+
"env": {
|
|
3
|
+
"CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR": "1"
|
|
4
|
+
},
|
|
2
5
|
"statusLine": {
|
|
3
6
|
"type": "command",
|
|
4
7
|
"command": "{{PYTHON_CMD}} .claude/hooks/statusline.py"
|
|
@@ -58,14 +61,13 @@
|
|
|
58
61
|
]
|
|
59
62
|
}
|
|
60
63
|
],
|
|
61
|
-
"
|
|
64
|
+
"UserPromptSubmit": [
|
|
62
65
|
{
|
|
63
|
-
"matcher": "check",
|
|
64
66
|
"hooks": [
|
|
65
67
|
{
|
|
66
68
|
"type": "command",
|
|
67
|
-
"command": "{{PYTHON_CMD}} .claude/hooks/
|
|
68
|
-
"timeout":
|
|
69
|
+
"command": "{{PYTHON_CMD}} .claude/hooks/inject-workflow-state.py",
|
|
70
|
+
"timeout": 5
|
|
69
71
|
}
|
|
70
72
|
]
|
|
71
73
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: check
|
|
2
|
+
name: trellis-check
|
|
3
3
|
description: |
|
|
4
4
|
Code quality check expert. Reviews code changes against specs and self-fixes issues.
|
|
5
5
|
tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa
|
|
6
|
-
color: orange
|
|
7
6
|
---
|
|
8
7
|
# Check Agent
|
|
9
8
|
|
|
@@ -65,32 +64,6 @@ If failed, fix issues and re-run.
|
|
|
65
64
|
|
|
66
65
|
---
|
|
67
66
|
|
|
68
|
-
## Completion Markers (Ralph Loop)
|
|
69
|
-
|
|
70
|
-
**CRITICAL**: You are in a loop controlled by the Ralph Loop system.
|
|
71
|
-
The loop will NOT stop until you output ALL required completion markers.
|
|
72
|
-
|
|
73
|
-
Completion markers are generated from `check.jsonl` in the task directory.
|
|
74
|
-
Each entry's `reason` field becomes a marker: `{REASON}_FINISH`
|
|
75
|
-
|
|
76
|
-
For example, if check.jsonl contains:
|
|
77
|
-
```json
|
|
78
|
-
{"file": "...", "reason": "TypeCheck"}
|
|
79
|
-
{"file": "...", "reason": "Lint"}
|
|
80
|
-
{"file": "...", "reason": "CodeReview"}
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
You MUST output these markers when each check passes:
|
|
84
|
-
- `TYPECHECK_FINISH` - After typecheck passes
|
|
85
|
-
- `LINT_FINISH` - After lint passes
|
|
86
|
-
- `CODEREVIEW_FINISH` - After code review passes
|
|
87
|
-
|
|
88
|
-
If check.jsonl doesn't exist or has no reasons, output: `ALL_CHECKS_FINISH`
|
|
89
|
-
|
|
90
|
-
**The loop will block you from stopping until all markers are present in your output.**
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
67
|
## Report Format
|
|
95
68
|
|
|
96
69
|
```markdown
|
|
@@ -112,11 +85,10 @@ If check.jsonl doesn't exist or has no reasons, output: `ALL_CHECKS_FINISH`
|
|
|
112
85
|
|
|
113
86
|
### Verification Results
|
|
114
87
|
|
|
115
|
-
- TypeCheck: Passed
|
|
116
|
-
- Lint: Passed
|
|
88
|
+
- TypeCheck: Passed
|
|
89
|
+
- Lint: Passed
|
|
117
90
|
|
|
118
91
|
### Summary
|
|
119
92
|
|
|
120
93
|
Checked X files, found Y issues, all fixed.
|
|
121
|
-
ALL_CHECKS_FINISH
|
|
122
94
|
```
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: implement
|
|
2
|
+
name: trellis-implement
|
|
3
3
|
description: |
|
|
4
4
|
Code implementation expert. Understands specs and requirements, then implements features. No git commit allowed.
|
|
5
5
|
tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa
|
|
6
|
-
color: green
|
|
7
6
|
---
|
|
8
7
|
# Implement Agent
|
|
9
8
|
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: trellis-research
|
|
3
|
+
description: |
|
|
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, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa, Skill, mcp__chrome-devtools__*
|
|
6
|
+
---
|
|
7
|
+
# Research Agent
|
|
8
|
+
|
|
9
|
+
You are the Research Agent in the Trellis workflow.
|
|
10
|
+
|
|
11
|
+
## Core Principle
|
|
12
|
+
|
|
13
|
+
**You do one thing: find, explain, and PERSIST information.**
|
|
14
|
+
|
|
15
|
+
Conversations get compacted; files don't. Every research output MUST end up as a file under `{TASK_DIR}/research/`. Returning findings only through the chat reply is a failure — the caller cannot read them next session.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Core Responsibilities
|
|
20
|
+
|
|
21
|
+
1. **Internal Search** — locate files/components, understand code logic, discover patterns (Glob, Grep, Read)
|
|
22
|
+
2. **External Search** — library docs, API references, best practices (web search)
|
|
23
|
+
3. **Persist** — write each research topic to `{TASK_DIR}/research/<topic>.md`
|
|
24
|
+
4. **Report** — return file paths + one-line summaries to the main agent (not full content)
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Workflow
|
|
29
|
+
|
|
30
|
+
### Step 1: Resolve Current Task
|
|
31
|
+
|
|
32
|
+
Read `.trellis/.current-task` → task directory (e.g. `.trellis/tasks/04-17-foo/`). If empty or missing, ask the user where to write output; do NOT guess.
|
|
33
|
+
|
|
34
|
+
Ensure `{TASK_DIR}/research/` exists:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
mkdir -p <TASK_DIR>/research
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Step 2: Understand Search Request
|
|
41
|
+
|
|
42
|
+
Classify: internal / external / mixed. Determine scope (global / specific directory) and expected shape (file list / pattern notes / tech comparison).
|
|
43
|
+
|
|
44
|
+
### Step 3: Execute Search
|
|
45
|
+
|
|
46
|
+
Run independent searches in parallel (Glob + Grep + web) for efficiency.
|
|
47
|
+
|
|
48
|
+
### Step 4: Persist Each Topic
|
|
49
|
+
|
|
50
|
+
For each distinct research topic, Write a markdown file at `{TASK_DIR}/research/<topic-slug>.md`. Use the File Format below.
|
|
51
|
+
|
|
52
|
+
### Step 5: Report to Main Agent
|
|
53
|
+
|
|
54
|
+
Reply with ONLY:
|
|
55
|
+
|
|
56
|
+
- List of files written (paths relative to repo root)
|
|
57
|
+
- One-line summary per file
|
|
58
|
+
- Any critical caveats that the main agent needs to know right now
|
|
59
|
+
|
|
60
|
+
Do NOT paste full research content into the reply. The files are the contract.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Scope Limits (Strict)
|
|
65
|
+
|
|
66
|
+
### Write ALLOWED
|
|
67
|
+
|
|
68
|
+
- `{TASK_DIR}/research/*.md` — your own output
|
|
69
|
+
- Creating `{TASK_DIR}/research/` if it doesn't exist (via `mkdir -p`)
|
|
70
|
+
|
|
71
|
+
### Write FORBIDDEN
|
|
72
|
+
|
|
73
|
+
- Code files (`src/`, `lib/`, …)
|
|
74
|
+
- Spec files (`.trellis/spec/`) — main agent should use `update-spec` skill instead
|
|
75
|
+
- `.trellis/scripts/`, `.trellis/workflow.md`, platform config (`.claude/`, `.cursor/`, etc.)
|
|
76
|
+
- Other task directories
|
|
77
|
+
- Any git operation (commit / push / branch / merge)
|
|
78
|
+
|
|
79
|
+
If the user asks you to edit code, decline and suggest spawning `implement` instead.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## File Format
|
|
84
|
+
|
|
85
|
+
Each `{TASK_DIR}/research/<topic>.md` should follow:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
# Research: <topic>
|
|
89
|
+
|
|
90
|
+
- **Query**: <original query>
|
|
91
|
+
- **Scope**: <internal / external / mixed>
|
|
92
|
+
- **Date**: <YYYY-MM-DD>
|
|
93
|
+
|
|
94
|
+
## Findings
|
|
95
|
+
|
|
96
|
+
### Files Found
|
|
97
|
+
|
|
98
|
+
| File Path | Description |
|
|
99
|
+
|---|---|
|
|
100
|
+
| `src/services/xxx.ts` | Main implementation |
|
|
101
|
+
| `src/types/xxx.ts` | Type definitions |
|
|
102
|
+
|
|
103
|
+
### Code Patterns
|
|
104
|
+
|
|
105
|
+
<describe patterns, cite file:line>
|
|
106
|
+
|
|
107
|
+
### External References
|
|
108
|
+
|
|
109
|
+
- [Library X docs](url) — <why relevant, version constraints>
|
|
110
|
+
|
|
111
|
+
### Related Specs
|
|
112
|
+
|
|
113
|
+
- `.trellis/spec/xxx.md` — <description>
|
|
114
|
+
|
|
115
|
+
## Caveats / Not Found
|
|
116
|
+
|
|
117
|
+
<anything incomplete or uncertain>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Guidelines
|
|
123
|
+
|
|
124
|
+
### DO
|
|
125
|
+
|
|
126
|
+
- Provide specific file paths and line numbers
|
|
127
|
+
- Quote actual code snippets
|
|
128
|
+
- Persist every topic to its own file
|
|
129
|
+
- Return file paths in your reply, not the full content
|
|
130
|
+
- Mark "not found" explicitly when searches come up empty
|
|
131
|
+
|
|
132
|
+
### DON'T
|
|
133
|
+
|
|
134
|
+
- Don't write code or modify files outside `{TASK_DIR}/research/`
|
|
135
|
+
- Don't guess uncertain info
|
|
136
|
+
- Don't paste full research text into the reply (files are the deliverable)
|
|
137
|
+
- Don't propose improvements or critique implementation (that's not your role)
|
|
@@ -2,24 +2,14 @@
|
|
|
2
2
|
* CodeBuddy templates
|
|
3
3
|
*
|
|
4
4
|
* These are GENERIC templates for user projects.
|
|
5
|
-
* Do NOT use Trellis project's own .codebuddy/ directory (which may be customized).
|
|
6
5
|
*
|
|
7
6
|
* Directory structure:
|
|
8
7
|
* codebuddy/
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* └── *.md
|
|
8
|
+
* ├── agents/ # Multi-agent pipeline agents
|
|
9
|
+
* └── settings.json # Settings configuration
|
|
12
10
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export
|
|
17
|
-
name: string;
|
|
18
|
-
content: string;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Get all command templates
|
|
22
|
-
* CodeBuddy uses nested directories: commands/trellis/<name>.md → /trellis:<name>
|
|
23
|
-
*/
|
|
24
|
-
export declare function getAllCommands(): CommandTemplate[];
|
|
11
|
+
import { type AgentTemplate, type HookTemplate } from "../template-utils.js";
|
|
12
|
+
export type { AgentTemplate, HookTemplate };
|
|
13
|
+
export declare const getAllAgents: () => AgentTemplate[];
|
|
14
|
+
export declare const getSettingsTemplate: () => HookTemplate;
|
|
25
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/codebuddy/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/codebuddy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAI5C,eAAO,MAAM,YAAY,QAAO,aAAa,EAAoB,CAAC;AAClE,eAAO,MAAM,mBAAmB,QAAO,YAA6B,CAAC"}
|
|
@@ -2,44 +2,14 @@
|
|
|
2
2
|
* CodeBuddy templates
|
|
3
3
|
*
|
|
4
4
|
* These are GENERIC templates for user projects.
|
|
5
|
-
* Do NOT use Trellis project's own .codebuddy/ directory (which may be customized).
|
|
6
5
|
*
|
|
7
6
|
* Directory structure:
|
|
8
7
|
* codebuddy/
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* └── *.md
|
|
8
|
+
* ├── agents/ # Multi-agent pipeline agents
|
|
9
|
+
* └── settings.json # Settings configuration
|
|
12
10
|
*/
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
const __dirname = dirname(__filename);
|
|
18
|
-
function readTemplate(relativePath) {
|
|
19
|
-
return readFileSync(join(__dirname, relativePath), "utf-8");
|
|
20
|
-
}
|
|
21
|
-
function listFiles(dir) {
|
|
22
|
-
try {
|
|
23
|
-
return readdirSync(join(__dirname, dir));
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
return [];
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Get all command templates
|
|
31
|
-
* CodeBuddy uses nested directories: commands/trellis/<name>.md → /trellis:<name>
|
|
32
|
-
*/
|
|
33
|
-
export function getAllCommands() {
|
|
34
|
-
const commands = [];
|
|
35
|
-
const files = listFiles("commands/trellis");
|
|
36
|
-
for (const file of files) {
|
|
37
|
-
if (file.endsWith(".md")) {
|
|
38
|
-
const name = file.replace(".md", "");
|
|
39
|
-
const content = readTemplate(`commands/trellis/${file}`);
|
|
40
|
-
commands.push({ name, content });
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return commands;
|
|
44
|
-
}
|
|
11
|
+
import { createTemplateReader, } from "../template-utils.js";
|
|
12
|
+
const { listMdAgents, getSettings } = createTemplateReader(import.meta.url);
|
|
13
|
+
export const getAllAgents = () => listMdAgents();
|
|
14
|
+
export const getSettingsTemplate = () => getSettings();
|
|
45
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/codebuddy/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/codebuddy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,YAAY,GAAG,GAAoB,EAAE,CAAC,YAAY,EAAE,CAAC;AAClE,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAiB,EAAE,CAAC,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"SessionStart": [
|
|
4
|
+
{
|
|
5
|
+
"matcher": "startup",
|
|
6
|
+
"hooks": [
|
|
7
|
+
{
|
|
8
|
+
"type": "command",
|
|
9
|
+
"command": "{{PYTHON_CMD}} .codebuddy/hooks/session-start.py",
|
|
10
|
+
"timeout": 10
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"matcher": "clear",
|
|
16
|
+
"hooks": [
|
|
17
|
+
{
|
|
18
|
+
"type": "command",
|
|
19
|
+
"command": "{{PYTHON_CMD}} .codebuddy/hooks/session-start.py",
|
|
20
|
+
"timeout": 10
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"matcher": "compact",
|
|
26
|
+
"hooks": [
|
|
27
|
+
{
|
|
28
|
+
"type": "command",
|
|
29
|
+
"command": "{{PYTHON_CMD}} .codebuddy/hooks/session-start.py",
|
|
30
|
+
"timeout": 10
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"PreToolUse": [
|
|
36
|
+
{
|
|
37
|
+
"matcher": "Task",
|
|
38
|
+
"hooks": [
|
|
39
|
+
{
|
|
40
|
+
"type": "command",
|
|
41
|
+
"command": "{{PYTHON_CMD}} .codebuddy/hooks/inject-subagent-context.py",
|
|
42
|
+
"timeout": 30
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"UserPromptSubmit": [
|
|
48
|
+
{
|
|
49
|
+
"hooks": [
|
|
50
|
+
{
|
|
51
|
+
"type": "command",
|
|
52
|
+
"command": "{{PYTHON_CMD}} .codebuddy/hooks/inject-workflow-state.py",
|
|
53
|
+
"timeout": 5
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name = "trellis-check"
|
|
2
|
+
description = "Workspace-write Trellis reviewer that self-fixes spec drift, lint/type-check failures, and missing tests."
|
|
3
|
+
sandbox_mode = "workspace-write"
|
|
4
|
+
|
|
5
|
+
developer_instructions = """
|
|
6
|
+
You are the Trellis reviewer agent.
|
|
7
|
+
|
|
8
|
+
Your job is to review code changes against specs AND fix issues directly — not just report them. You have write access; use it.
|
|
9
|
+
|
|
10
|
+
Review checklist:
|
|
11
|
+
- Verify behavior against the actual code paths, not assumptions.
|
|
12
|
+
- Look for missing template/update/detection touch points when platform config changes.
|
|
13
|
+
- Check whether tests should be added or updated.
|
|
14
|
+
- Check whether `.trellis/spec/` docs need sync after implementation.
|
|
15
|
+
- Run lint and type-check; fix any failures.
|
|
16
|
+
- Prefer concrete findings over speculative warnings.
|
|
17
|
+
|
|
18
|
+
When you find an issue:
|
|
19
|
+
1. Fix it directly using edit/write tools.
|
|
20
|
+
2. Re-run lint and type-check until green.
|
|
21
|
+
3. Record what you changed and why.
|
|
22
|
+
|
|
23
|
+
Output format:
|
|
24
|
+
## Findings (fixed)
|
|
25
|
+
- File: <path>
|
|
26
|
+
- Issue: <what was wrong>
|
|
27
|
+
- Fix: <what you changed>
|
|
28
|
+
|
|
29
|
+
## Findings (not fixed)
|
|
30
|
+
Only list issues you could not self-fix (e.g. missing product decision, out-of-scope). Explain why.
|
|
31
|
+
|
|
32
|
+
## Verification
|
|
33
|
+
- Lint: pass/fail
|
|
34
|
+
- TypeCheck: pass/fail
|
|
35
|
+
- Tests: pass/fail (if applicable)
|
|
36
|
+
|
|
37
|
+
If no issues are found, say so explicitly after verifying lint/type-check pass.
|
|
38
|
+
"""
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
name = "trellis-research"
|
|
2
|
+
description = "Trellis researcher for specs, code patterns, and affected files. Writes findings into {TASK_DIR}/research/ — read-only elsewhere."
|
|
3
|
+
sandbox_mode = "workspace-write"
|
|
4
|
+
|
|
5
|
+
developer_instructions = """
|
|
6
|
+
You are the Trellis researcher agent.
|
|
7
|
+
|
|
8
|
+
## Core principle
|
|
9
|
+
|
|
10
|
+
Conversations get compacted; files don't. Every research topic MUST be
|
|
11
|
+
persisted to `{TASK_DIR}/research/<topic>.md`. Returning findings only
|
|
12
|
+
through the chat reply is a failure.
|
|
13
|
+
|
|
14
|
+
## Workflow
|
|
15
|
+
|
|
16
|
+
1. Read `.trellis/.current-task` to get the task directory. If empty,
|
|
17
|
+
ask the user where to write output; do not guess.
|
|
18
|
+
2. Run `mkdir -p <TASK_DIR>/research` to ensure the directory exists.
|
|
19
|
+
3. Read `.trellis/workflow.md`, relevant `.trellis/spec/` files, and
|
|
20
|
+
target code before forming an opinion.
|
|
21
|
+
4. For each research topic, write `<TASK_DIR>/research/<slug>.md` with:
|
|
22
|
+
- Query, scope, date
|
|
23
|
+
- Files found (path + one-line description)
|
|
24
|
+
- Code patterns (cite file:line)
|
|
25
|
+
- External references (docs, versions)
|
|
26
|
+
- Related specs
|
|
27
|
+
- Caveats / not-found notes
|
|
28
|
+
5. Reply with only: list of files written, one-line summary per file,
|
|
29
|
+
any critical caveats. Do not paste full research into the reply.
|
|
30
|
+
|
|
31
|
+
## Scope limits
|
|
32
|
+
|
|
33
|
+
Write allowed ONLY in `{TASK_DIR}/research/`.
|
|
34
|
+
|
|
35
|
+
Write forbidden everywhere else:
|
|
36
|
+
- Code files (`src/`, `lib/`, …)
|
|
37
|
+
- Spec files (`.trellis/spec/`) — use `update-spec` skill instead
|
|
38
|
+
- `.trellis/scripts/`, `.trellis/workflow.md`, platform config
|
|
39
|
+
- Other task directories
|
|
40
|
+
- Any git operation
|
|
41
|
+
|
|
42
|
+
If the user asks you to edit code, decline and tell them to spawn the
|
|
43
|
+
`implement` agent.
|
|
44
|
+
|
|
45
|
+
## Output format for each research file
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
# Research: <topic>
|
|
49
|
+
|
|
50
|
+
- Query: ...
|
|
51
|
+
- Scope: internal / external / mixed
|
|
52
|
+
- Date: YYYY-MM-DD
|
|
53
|
+
|
|
54
|
+
## Findings
|
|
55
|
+
...
|
|
56
|
+
|
|
57
|
+
## Caveats / Not Found
|
|
58
|
+
...
|
|
59
|
+
```
|
|
60
|
+
"""
|
|
@@ -3,3 +3,13 @@
|
|
|
3
3
|
|
|
4
4
|
# Keep AGENTS.md as the primary project instruction file.
|
|
5
5
|
project_doc_fallback_filenames = ["AGENTS.md"]
|
|
6
|
+
|
|
7
|
+
# NOTE: Trellis's SessionStart + UserPromptSubmit hooks require opt-in.
|
|
8
|
+
# Add the following to your USER-level config at ~/.codex/config.toml
|
|
9
|
+
# (not this project file — features.* must be enabled globally):
|
|
10
|
+
#
|
|
11
|
+
# [features]
|
|
12
|
+
# codex_hooks = true
|
|
13
|
+
#
|
|
14
|
+
# Without this flag, hooks.json is ignored and Trellis context won't
|
|
15
|
+
# be injected into Codex sessions.
|