@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,6 +1,6 @@
|
|
|
1
1
|
# Update Code-Spec - Capture Executable Contracts
|
|
2
2
|
|
|
3
|
-
When you learn something valuable (from debugging, implementing, or discussion), use this
|
|
3
|
+
When you learn something valuable (from debugging, implementing, or discussion), use this to update the relevant code-spec documents.
|
|
4
4
|
|
|
5
5
|
**Timing**: After completing a task, fixing a bug, or discovering a new pattern
|
|
6
6
|
|
|
@@ -40,13 +40,13 @@ For triggered tasks, include all sections below:
|
|
|
40
40
|
|
|
41
41
|
| Trigger | Example | Target Spec |
|
|
42
42
|
|---------|---------|-------------|
|
|
43
|
-
| **Implemented a feature** | Added
|
|
44
|
-
| **Made a design decision** |
|
|
45
|
-
| **Fixed a bug** | Found a subtle issue with error handling |
|
|
46
|
-
| **Discovered a pattern** | Found a better way to structure code | Relevant
|
|
47
|
-
| **Hit a gotcha** | Learned that X must be done before Y | Relevant
|
|
48
|
-
| **Established a convention** | Team agreed on naming pattern |
|
|
49
|
-
| **New thinking trigger** | "Don't forget to check X before doing Y" | `guides/*.md` (as a checklist item
|
|
43
|
+
| **Implemented a feature** | Added a new integration or module | Relevant spec file |
|
|
44
|
+
| **Made a design decision** | Chose extensibility pattern over simplicity | Relevant spec + "Design Decisions" section |
|
|
45
|
+
| **Fixed a bug** | Found a subtle issue with error handling | Relevant spec (e.g., error-handling docs) |
|
|
46
|
+
| **Discovered a pattern** | Found a better way to structure code | Relevant spec file |
|
|
47
|
+
| **Hit a gotcha** | Learned that X must be done before Y | Relevant spec + "Common Mistakes" section |
|
|
48
|
+
| **Established a convention** | Team agreed on naming pattern | Quality guidelines |
|
|
49
|
+
| **New thinking trigger** | "Don't forget to check X before doing Y" | `guides/*.md` (as a checklist item) |
|
|
50
50
|
|
|
51
51
|
**Key Insight**: Code-spec updates are NOT just for problems. Every feature implementation contains design decisions and contracts that future AI/developers need to execute safely.
|
|
52
52
|
|
|
@@ -56,10 +56,7 @@ For triggered tasks, include all sections below:
|
|
|
56
56
|
|
|
57
57
|
```
|
|
58
58
|
.trellis/spec/
|
|
59
|
-
├──
|
|
60
|
-
│ ├── index.md # Overview and links
|
|
61
|
-
│ └── *.md # Topic-specific guidelines
|
|
62
|
-
├── frontend/ # Frontend coding standards
|
|
59
|
+
├── <layer>/ # Per-layer coding standards (e.g., backend/, frontend/, api/)
|
|
63
60
|
│ ├── index.md # Overview and links
|
|
64
61
|
│ └── *.md # Topic-specific guidelines
|
|
65
62
|
└── guides/ # Thinking checklists (NOT coding specs!)
|
|
@@ -71,20 +68,20 @@ For triggered tasks, include all sections below:
|
|
|
71
68
|
|
|
72
69
|
| Type | Location | Purpose | Content Style |
|
|
73
70
|
|------|----------|---------|---------------|
|
|
74
|
-
| **Code-Spec** |
|
|
71
|
+
| **Code-Spec** | `<layer>/*.md` | Tell AI "how to implement safely" | Signatures, contracts, matrices, cases, test points |
|
|
75
72
|
| **Guide** | `guides/*.md` | Help AI "what to think about" | Checklists, questions, pointers to specs |
|
|
76
73
|
|
|
77
74
|
**Decision Rule**: Ask yourself:
|
|
78
75
|
|
|
79
|
-
- "This is **how to write** the code" → Put in
|
|
76
|
+
- "This is **how to write** the code" → Put in a spec layer directory
|
|
80
77
|
- "This is **what to consider** before writing" → Put in `guides/`
|
|
81
78
|
|
|
82
79
|
**Example**:
|
|
83
80
|
|
|
84
81
|
| Learning | Wrong Location | Correct Location |
|
|
85
82
|
|----------|----------------|------------------|
|
|
86
|
-
| "Use
|
|
87
|
-
| "Remember to check
|
|
83
|
+
| "Use API X not API Y for this task" | ❌ `guides/` (too specific for a thinking guide) | ✅ Relevant spec file (concrete convention) |
|
|
84
|
+
| "Remember to check X when doing Y" | ❌ Spec file (too abstract for a spec) | ✅ `guides/` (thinking checklist) |
|
|
88
85
|
|
|
89
86
|
**Guides should be short checklists that point to specs**, not duplicate the detailed rules.
|
|
90
87
|
|
|
@@ -332,15 +329,15 @@ Before finishing your code-spec update:
|
|
|
332
329
|
|
|
333
330
|
```
|
|
334
331
|
Development Flow:
|
|
335
|
-
Learn something →
|
|
332
|
+
Learn something → {{CMD_REF:update-spec}} → Knowledge captured
|
|
336
333
|
↑ ↓
|
|
337
|
-
|
|
334
|
+
{{CMD_REF:break-loop}} ←──────────────────── Future sessions benefit
|
|
338
335
|
(deep bug analysis)
|
|
339
336
|
```
|
|
340
337
|
|
|
341
|
-
-
|
|
342
|
-
-
|
|
343
|
-
-
|
|
338
|
+
- `{{CMD_REF:break-loop}}` - Analyzes bugs deeply, often reveals spec updates needed
|
|
339
|
+
- `{{CMD_REF:update-spec}}` - Actually makes the updates
|
|
340
|
+
- `{{CMD_REF:finish-work}}` - Reminds you to check if specs need updates
|
|
344
341
|
|
|
345
342
|
---
|
|
346
343
|
|
|
@@ -125,30 +125,48 @@ def _get_task_status(trellis_dir: Path) -> str:
|
|
|
125
125
|
return f"Status: READY\nTask: {task_title}\nNext: Continue with implement or check"
|
|
126
126
|
|
|
127
127
|
|
|
128
|
-
def
|
|
129
|
-
"""
|
|
128
|
+
def _extract_range(content: str, start_header: str, end_header: str) -> str:
|
|
129
|
+
"""Extract lines starting at `## start_header` up to (but excluding) `## end_header`."""
|
|
130
|
+
lines = content.splitlines()
|
|
131
|
+
start: "int | None" = None
|
|
132
|
+
end: int = len(lines)
|
|
133
|
+
start_match = f"## {start_header}"
|
|
134
|
+
end_match = f"## {end_header}"
|
|
135
|
+
for i, line in enumerate(lines):
|
|
136
|
+
stripped = line.strip()
|
|
137
|
+
if start is None and stripped == start_match:
|
|
138
|
+
start = i
|
|
139
|
+
continue
|
|
140
|
+
if start is not None and stripped == end_match:
|
|
141
|
+
end = i
|
|
142
|
+
break
|
|
143
|
+
if start is None:
|
|
144
|
+
return ""
|
|
145
|
+
return "\n".join(lines[start:end]).rstrip()
|
|
130
146
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
"""
|
|
147
|
+
|
|
148
|
+
def _build_workflow_toc(workflow_path: Path) -> str:
|
|
149
|
+
"""Inject workflow guide: TOC + Phase Index + Phase 1/2/3 step details."""
|
|
134
150
|
content = read_file(workflow_path)
|
|
135
151
|
if not content:
|
|
136
152
|
return "No workflow.md found"
|
|
137
153
|
|
|
138
|
-
|
|
154
|
+
out_lines = [
|
|
139
155
|
"# Development Workflow — Section Index",
|
|
140
156
|
"Full guide: .trellis/workflow.md (read on demand)",
|
|
141
157
|
"",
|
|
158
|
+
"## Table of Contents",
|
|
142
159
|
]
|
|
143
160
|
for line in content.splitlines():
|
|
144
161
|
if line.startswith("## "):
|
|
145
|
-
|
|
162
|
+
out_lines.append(line)
|
|
163
|
+
out_lines += ["", "---", ""]
|
|
146
164
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
return "\n".join(
|
|
165
|
+
phases = _extract_range(content, "Phase Index", "Workflow State Breadcrumbs")
|
|
166
|
+
if phases:
|
|
167
|
+
out_lines.append(phases)
|
|
168
|
+
|
|
169
|
+
return "\n".join(out_lines).rstrip()
|
|
152
170
|
|
|
153
171
|
|
|
154
172
|
def main() -> None:
|
|
@@ -183,38 +201,56 @@ Read and follow all instructions below carefully.
|
|
|
183
201
|
output.write("\n</workflow>\n\n")
|
|
184
202
|
|
|
185
203
|
output.write("<guidelines>\n")
|
|
186
|
-
output.write(
|
|
187
|
-
|
|
188
|
-
|
|
204
|
+
output.write(
|
|
205
|
+
"Project spec indexes are listed by path below. Each index contains a "
|
|
206
|
+
"**Pre-Development Checklist** listing the specific guideline files to "
|
|
207
|
+
"read before coding.\n\n"
|
|
208
|
+
"- If you're spawning an implement/check sub-agent, context is injected "
|
|
209
|
+
"automatically via `{task}/implement.jsonl` / `check.jsonl`. You do NOT "
|
|
210
|
+
"need to read these indexes yourself.\n"
|
|
211
|
+
"- If you're editing code directly in the main session, Read the relevant "
|
|
212
|
+
"index(es) on-demand and follow their Pre-Dev Checklist.\n\n"
|
|
213
|
+
)
|
|
214
|
+
|
|
215
|
+
# guides/ inlined (cross-package thinking, broadly useful)
|
|
216
|
+
guides_index = trellis_dir / "spec" / "guides" / "index.md"
|
|
217
|
+
if guides_index.is_file():
|
|
218
|
+
output.write("## guides (inlined — cross-package thinking guides)\n")
|
|
219
|
+
output.write(read_file(guides_index))
|
|
220
|
+
output.write("\n\n")
|
|
221
|
+
|
|
222
|
+
# Other indexes — paths only
|
|
223
|
+
paths: list[str] = []
|
|
189
224
|
spec_dir = trellis_dir / "spec"
|
|
190
225
|
if spec_dir.is_dir():
|
|
191
226
|
for sub in sorted(spec_dir.iterdir()):
|
|
192
227
|
if not sub.is_dir() or sub.name.startswith("."):
|
|
193
228
|
continue
|
|
194
|
-
|
|
195
229
|
if sub.name == "guides":
|
|
196
|
-
index_file = sub / "index.md"
|
|
197
|
-
if index_file.is_file():
|
|
198
|
-
output.write(f"## {sub.name}\n")
|
|
199
|
-
output.write(read_file(index_file))
|
|
200
|
-
output.write("\n\n")
|
|
201
230
|
continue
|
|
202
|
-
|
|
203
231
|
index_file = sub / "index.md"
|
|
204
232
|
if index_file.is_file():
|
|
205
|
-
|
|
206
|
-
output.write(read_file(index_file))
|
|
207
|
-
output.write("\n\n")
|
|
233
|
+
paths.append(f".trellis/spec/{sub.name}/index.md")
|
|
208
234
|
else:
|
|
209
235
|
for nested in sorted(sub.iterdir()):
|
|
210
236
|
if not nested.is_dir():
|
|
211
237
|
continue
|
|
212
238
|
nested_index = nested / "index.md"
|
|
213
239
|
if nested_index.is_file():
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
240
|
+
paths.append(
|
|
241
|
+
f".trellis/spec/{sub.name}/{nested.name}/index.md"
|
|
242
|
+
)
|
|
243
|
+
|
|
244
|
+
if paths:
|
|
245
|
+
output.write("## Available spec indexes (read on demand)\n")
|
|
246
|
+
for p in paths:
|
|
247
|
+
output.write(f"- {p}\n")
|
|
248
|
+
output.write("\n")
|
|
249
|
+
|
|
250
|
+
output.write(
|
|
251
|
+
"Discover more via: "
|
|
252
|
+
"`python3 ./.trellis/scripts/get_context.py --mode packages`\n"
|
|
253
|
+
)
|
|
218
254
|
output.write("</guidelines>\n\n")
|
|
219
255
|
|
|
220
256
|
task_status = _get_task_status(trellis_dir)
|
|
@@ -6,6 +6,14 @@
|
|
|
6
6
|
"command": "{{PYTHON_CMD}} .github/copilot/hooks/session-start.py",
|
|
7
7
|
"timeout": 10
|
|
8
8
|
}
|
|
9
|
+
],
|
|
10
|
+
"userPromptSubmitted": [
|
|
11
|
+
{
|
|
12
|
+
"type": "command",
|
|
13
|
+
"bash": "{{PYTHON_CMD}} .github/copilot/hooks/inject-workflow-state.py",
|
|
14
|
+
"powershell": "{{PYTHON_CMD}} .github/copilot/hooks/inject-workflow-state.py",
|
|
15
|
+
"timeoutSec": 5
|
|
16
|
+
}
|
|
9
17
|
]
|
|
10
18
|
}
|
|
11
19
|
}
|
|
@@ -54,7 +54,7 @@ cat .trellis/spec/<package>/<layer>/index.md # Package-specific guidelines
|
|
|
54
54
|
cat .trellis/spec/guides/index.md # Thinking guides (always read)
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
> **Important**: The index files are navigation �?they list the actual guideline files (e.g., `error-handling.md`, `conventions.md`, `mock-strategies.md`).
|
|
57
|
+
> **Important**: The index files are navigation �?they list the actual guideline files (e.g., `error-handling.md`, `conventions.md`, `mock-strategies.md`).
|
|
58
58
|
> At this step, just read the indexes to understand what's available.
|
|
59
59
|
> When you start actual development, you MUST go back and read the specific guideline files relevant to your task, as listed in the index's Pre-Development Checklist.
|
|
60
60
|
|
|
@@ -72,8 +72,8 @@ When user describes a task, classify it:
|
|
|
72
72
|
|------|----------|----------|
|
|
73
73
|
| **Question** | User asks about code, architecture, or how something works | Answer directly |
|
|
74
74
|
| **Trivial Fix** | Typo fix, comment update, single-line change | Direct Edit |
|
|
75
|
-
| **Simple Task** | Clear goal, 1-2 files, well-defined scope | Quick confirm �?Implement |
|
|
76
|
-
| **Complex Task** | Vague goal, multiple files, architectural decisions | **Brainstorm �?Task Workflow** |
|
|
75
|
+
| **Simple Task** | Clear goal, 1-2 files, well-defined scope | Quick confirm �?Implement |
|
|
76
|
+
| **Complex Task** | Vague goal, multiple files, architectural decisions | **Brainstorm �?Task Workflow** |
|
|
77
77
|
|
|
78
78
|
### Classification Signals
|
|
79
79
|
|
|
@@ -128,7 +128,7 @@ For simple, well-defined tasks:
|
|
|
128
128
|
|
|
129
129
|
## Complex Task - Brainstorm First
|
|
130
130
|
|
|
131
|
-
For complex or vague tasks, **automatically start the brainstorm process** �?do NOT skip directly to implementation.
|
|
131
|
+
For complex or vague tasks, **automatically start the brainstorm process** �?do NOT skip directly to implementation.
|
|
132
132
|
|
|
133
133
|
See `/` for the full process. Summary:
|
|
134
134
|
|
|
@@ -167,10 +167,10 @@ See `/` for the full process. Summary:
|
|
|
167
167
|
|
|
168
168
|
```
|
|
169
169
|
From Brainstorm (Complex Task):
|
|
170
|
-
PRD confirmed �?Research �?Configure Context �?Activate �?Implement �?Check �?Complete
|
|
170
|
+
PRD confirmed �?Research �?Configure Context �?Activate �?Implement �?Check �?Complete
|
|
171
171
|
|
|
172
172
|
From Simple Task:
|
|
173
|
-
Confirm �?Create Task �?Write PRD �?Research �?Configure Context �?Activate �?Implement �?Check �?Complete
|
|
173
|
+
Confirm �?Create Task �?Write PRD �?Research �?Configure Context �?Activate �?Implement �?Check �?Complete
|
|
174
174
|
```
|
|
175
175
|
|
|
176
176
|
**Key principle: Research happens AFTER requirements are clear (PRD exists).**
|
|
@@ -248,7 +248,7 @@ Based on the confirmed PRD, call Research Agent to find relevant specs and patte
|
|
|
248
248
|
|
|
249
249
|
```
|
|
250
250
|
Task(
|
|
251
|
-
subagent_type: "research",
|
|
251
|
+
subagent_type: "trellis-research",
|
|
252
252
|
prompt: "Analyze the codebase for this task:
|
|
253
253
|
|
|
254
254
|
Task: <goal from PRD>
|
|
@@ -267,8 +267,7 @@ Task(
|
|
|
267
267
|
- <pattern>: <example file path>
|
|
268
268
|
|
|
269
269
|
## Files to Modify
|
|
270
|
-
- <path>: <what change>"
|
|
271
|
-
model: "opus"
|
|
270
|
+
- <path>: <what change>"
|
|
272
271
|
)
|
|
273
272
|
```
|
|
274
273
|
|
|
@@ -277,7 +276,7 @@ Task(
|
|
|
277
276
|
Initialize default context:
|
|
278
277
|
|
|
279
278
|
```bash
|
|
280
|
-
python3 ./.trellis/scripts/task.py init-context "$TASK_DIR" <type>
|
|
279
|
+
python3 ./.trellis/scripts/task.py init-context "$TASK_DIR" <type> --platform {{CLI_FLAG}}
|
|
281
280
|
# type: backend | frontend | fullstack
|
|
282
281
|
```
|
|
283
282
|
|
|
@@ -307,12 +306,11 @@ Call Implement Agent (code-spec context is auto-injected by hook):
|
|
|
307
306
|
|
|
308
307
|
```
|
|
309
308
|
Task(
|
|
310
|
-
subagent_type: "implement",
|
|
309
|
+
subagent_type: "trellis-implement",
|
|
311
310
|
prompt: "Implement the task described in prd.md.
|
|
312
311
|
|
|
313
312
|
Follow all code-spec files that have been injected into your context.
|
|
314
|
-
Run lint and typecheck before finishing."
|
|
315
|
-
model: "opus"
|
|
313
|
+
Run lint and typecheck before finishing."
|
|
316
314
|
)
|
|
317
315
|
```
|
|
318
316
|
|
|
@@ -322,12 +320,11 @@ Call Check Agent (code-spec context is auto-injected by hook):
|
|
|
322
320
|
|
|
323
321
|
```
|
|
324
322
|
Task(
|
|
325
|
-
subagent_type: "check",
|
|
323
|
+
subagent_type: "trellis-check",
|
|
326
324
|
prompt: "Review all code changes against the code-spec requirements.
|
|
327
325
|
|
|
328
326
|
Fix any issues you find directly.
|
|
329
|
-
Ensure lint and typecheck pass."
|
|
330
|
-
model: "opus"
|
|
327
|
+
Ensure lint and typecheck pass."
|
|
331
328
|
)
|
|
332
329
|
```
|
|
333
330
|
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: trellis-check
|
|
3
|
+
description: |
|
|
4
|
+
Code quality check expert. Reviews code changes against specs and self-fixes issues.
|
|
5
|
+
tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa
|
|
6
|
+
---
|
|
7
|
+
# Check Agent
|
|
8
|
+
|
|
9
|
+
You are the Check Agent in the Trellis workflow.
|
|
10
|
+
|
|
11
|
+
## Context
|
|
12
|
+
|
|
13
|
+
Before checking, read:
|
|
14
|
+
- `.trellis/spec/` - Development guidelines
|
|
15
|
+
- Pre-commit checklist for quality standards
|
|
16
|
+
|
|
17
|
+
## Core Responsibilities
|
|
18
|
+
|
|
19
|
+
1. **Get code changes** - Use git diff to get uncommitted code
|
|
20
|
+
2. **Check against specs** - Verify code follows guidelines
|
|
21
|
+
3. **Self-fix** - Fix issues yourself, not just report them
|
|
22
|
+
4. **Run verification** - typecheck and lint
|
|
23
|
+
|
|
24
|
+
## Important
|
|
25
|
+
|
|
26
|
+
**Fix issues yourself**, don't just report them.
|
|
27
|
+
|
|
28
|
+
You have write and edit tools, you can modify code directly.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Workflow
|
|
33
|
+
|
|
34
|
+
### Step 1: Get Changes
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
git diff --name-only # List changed files
|
|
38
|
+
git diff # View specific changes
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Step 2: Check Against Specs
|
|
42
|
+
|
|
43
|
+
Read relevant specs in `.trellis/spec/` to check code:
|
|
44
|
+
|
|
45
|
+
- Does it follow directory structure conventions
|
|
46
|
+
- Does it follow naming conventions
|
|
47
|
+
- Does it follow code patterns
|
|
48
|
+
- Are there missing types
|
|
49
|
+
- Are there potential bugs
|
|
50
|
+
|
|
51
|
+
### Step 3: Self-Fix
|
|
52
|
+
|
|
53
|
+
After finding issues:
|
|
54
|
+
|
|
55
|
+
1. Fix the issue directly (use edit tool)
|
|
56
|
+
2. Record what was fixed
|
|
57
|
+
3. Continue checking other issues
|
|
58
|
+
|
|
59
|
+
### Step 4: Run Verification
|
|
60
|
+
|
|
61
|
+
Run project's lint and typecheck commands to verify changes.
|
|
62
|
+
|
|
63
|
+
If failed, fix issues and re-run.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Report Format
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
## Self-Check Complete
|
|
71
|
+
|
|
72
|
+
### Files Checked
|
|
73
|
+
|
|
74
|
+
- src/components/Feature.tsx
|
|
75
|
+
- src/hooks/useFeature.ts
|
|
76
|
+
|
|
77
|
+
### Issues Found and Fixed
|
|
78
|
+
|
|
79
|
+
1. `<file>:<line>` - <what was fixed>
|
|
80
|
+
2. `<file>:<line>` - <what was fixed>
|
|
81
|
+
|
|
82
|
+
### Issues Not Fixed
|
|
83
|
+
|
|
84
|
+
(If there are issues that cannot be self-fixed, list them here with reasons)
|
|
85
|
+
|
|
86
|
+
### Verification Results
|
|
87
|
+
|
|
88
|
+
- TypeCheck: Passed
|
|
89
|
+
- Lint: Passed
|
|
90
|
+
|
|
91
|
+
### Summary
|
|
92
|
+
|
|
93
|
+
Checked X files, found Y issues, all fixed.
|
|
94
|
+
```
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: trellis-implement
|
|
3
|
+
description: |
|
|
4
|
+
Code implementation expert. Understands specs and requirements, then implements features. No git commit allowed.
|
|
5
|
+
tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa
|
|
6
|
+
---
|
|
7
|
+
# Implement Agent
|
|
8
|
+
|
|
9
|
+
You are the Implement Agent in the Trellis workflow.
|
|
10
|
+
|
|
11
|
+
## Context
|
|
12
|
+
|
|
13
|
+
Before implementing, read:
|
|
14
|
+
- `.trellis/workflow.md` - Project workflow
|
|
15
|
+
- `.trellis/spec/` - Development guidelines
|
|
16
|
+
- Task `prd.md` - Requirements document
|
|
17
|
+
- Task `info.md` - Technical design (if exists)
|
|
18
|
+
|
|
19
|
+
## Core Responsibilities
|
|
20
|
+
|
|
21
|
+
1. **Understand specs** - Read relevant spec files in `.trellis/spec/`
|
|
22
|
+
2. **Understand requirements** - Read prd.md and info.md
|
|
23
|
+
3. **Implement features** - Write code following specs and design
|
|
24
|
+
4. **Self-check** - Ensure code quality
|
|
25
|
+
5. **Report results** - Report completion status
|
|
26
|
+
|
|
27
|
+
## Forbidden Operations
|
|
28
|
+
|
|
29
|
+
**Do NOT execute these git commands:**
|
|
30
|
+
|
|
31
|
+
- `git commit`
|
|
32
|
+
- `git push`
|
|
33
|
+
- `git merge`
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Workflow
|
|
38
|
+
|
|
39
|
+
### 1. Understand Specs
|
|
40
|
+
|
|
41
|
+
Read relevant specs based on task type:
|
|
42
|
+
|
|
43
|
+
- Spec layers: `.trellis/spec/<package>/<layer>/`
|
|
44
|
+
- Shared guides: `.trellis/spec/guides/`
|
|
45
|
+
|
|
46
|
+
### 2. Understand Requirements
|
|
47
|
+
|
|
48
|
+
Read the task's prd.md and info.md:
|
|
49
|
+
|
|
50
|
+
- What are the core requirements
|
|
51
|
+
- Key points of technical design
|
|
52
|
+
- Which files to modify/create
|
|
53
|
+
|
|
54
|
+
### 3. Implement Features
|
|
55
|
+
|
|
56
|
+
- Write code following specs and technical design
|
|
57
|
+
- Follow existing code patterns
|
|
58
|
+
- Only do what's required, no over-engineering
|
|
59
|
+
|
|
60
|
+
### 4. Verify
|
|
61
|
+
|
|
62
|
+
Run project's lint and typecheck commands to verify changes.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Report Format
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
## Implementation Complete
|
|
70
|
+
|
|
71
|
+
### Files Modified
|
|
72
|
+
|
|
73
|
+
- `src/components/Feature.tsx` - New component
|
|
74
|
+
- `src/hooks/useFeature.ts` - New hook
|
|
75
|
+
|
|
76
|
+
### Implementation Summary
|
|
77
|
+
|
|
78
|
+
1. Created Feature component...
|
|
79
|
+
2. Added useFeature hook...
|
|
80
|
+
|
|
81
|
+
### Verification Results
|
|
82
|
+
|
|
83
|
+
- Lint: Passed
|
|
84
|
+
- TypeCheck: Passed
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Code Standards
|
|
90
|
+
|
|
91
|
+
- Follow existing code patterns
|
|
92
|
+
- Don't add unnecessary abstractions
|
|
93
|
+
- Only do what's required, no over-engineering
|
|
94
|
+
- Keep code readable
|
|
@@ -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)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"hooks": {
|
|
4
|
+
"preToolUse": [
|
|
5
|
+
{
|
|
6
|
+
"command": "{{PYTHON_CMD}} .cursor/hooks/inject-subagent-context.py",
|
|
7
|
+
"matcher": "Task",
|
|
8
|
+
"timeout": 30
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"sessionStart": [
|
|
12
|
+
{
|
|
13
|
+
"command": "{{PYTHON_CMD}} .cursor/hooks/session-start.py",
|
|
14
|
+
"timeout": 10
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"beforeSubmitPrompt": [
|
|
18
|
+
{
|
|
19
|
+
"command": "{{PYTHON_CMD}} .cursor/hooks/inject-workflow-state.py",
|
|
20
|
+
"timeout": 5
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
}
|