@mindfoldhq/trellis 0.4.0 → 0.5.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +0 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/init.d.ts +0 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +2 -4
- 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 +83 -22
- 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 +142 -98
- 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 +3 -28
- package/dist/configurators/opencode.d.ts.map +1 -1
- package/dist/configurators/opencode.js +23 -48
- package/dist/configurators/opencode.js.map +1 -1
- package/dist/configurators/qoder.d.ts +6 -4
- package/dist/configurators/qoder.d.ts.map +1 -1
- package/dist/configurators/qoder.js +20 -47
- package/dist/configurators/qoder.js.map +1 -1
- package/dist/configurators/shared.d.ts +66 -3
- package/dist/configurators/shared.d.ts.map +1 -1
- package/dist/configurators/shared.js +251 -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 +1644 -0
- package/dist/templates/claude/agents/check.md +2 -29
- package/dist/templates/claude/agents/research.md +70 -52
- 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 +3 -4
- package/dist/templates/{iflow → codebuddy}/agents/check.md +3 -30
- package/dist/templates/{iflow → codebuddy}/agents/implement.md +1 -1
- package/dist/templates/codebuddy/agents/research.md +138 -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/research.toml +50 -16
- 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/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/{codebuddy/commands/trellis → common/skills}/brainstorm.md +4 -4
- package/dist/templates/{opencode/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/cursor/agents/check.md +95 -0
- package/dist/templates/cursor/agents/implement.md +95 -0
- package/dist/templates/cursor/agents/research.md +138 -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/check.md +95 -0
- package/dist/templates/droid/droids/implement.md +95 -0
- package/dist/templates/droid/droids/research.md +138 -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/check.md +95 -0
- package/dist/templates/gemini/agents/implement.md +95 -0
- package/dist/templates/gemini/agents/research.md +138 -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/check.json +13 -0
- package/dist/templates/kiro/agents/implement.json +13 -0
- package/dist/templates/kiro/agents/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 +3 -30
- package/dist/templates/opencode/agents/implement.md +1 -1
- package/dist/templates/opencode/agents/research.md +1 -2
- package/dist/templates/opencode/plugins/inject-subagent-context.js +9 -183
- package/dist/templates/opencode/plugins/inject-workflow-state.js +160 -0
- package/dist/templates/opencode/plugins/session-start.js +71 -32
- package/dist/templates/qoder/agents/check.md +95 -0
- package/dist/templates/qoder/agents/implement.md +95 -0
- package/dist/templates/qoder/agents/research.md +138 -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 +74 -263
- package/dist/templates/shared-hooks/inject-workflow-state.py +231 -0
- package/dist/templates/{claude/hooks → shared-hooks}/session-start.py +162 -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/index.d.ts +1 -14
- package/dist/templates/trellis/index.d.ts.map +1 -1
- package/dist/templates/trellis/index.js +2 -27
- package/dist/templates/trellis/index.js.map +1 -1
- package/dist/templates/trellis/scripts/common/cli_adapter.py +2 -2
- 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 +3 -23
- package/dist/templates/trellis/scripts/common/task_store.py +0 -12
- package/dist/templates/trellis/scripts/common/workflow_phase.py +176 -0
- package/dist/templates/trellis/scripts/task.py +6 -35
- package/dist/templates/trellis/workflow.md +274 -297
- package/dist/types/ai-tools.d.ts +21 -3
- package/dist/types/ai-tools.d.ts.map +1 -1
- package/dist/types/ai-tools.js +106 -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/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/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/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/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/brainstorm.md +0 -491
- 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/break-loop.md +0 -125
- 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/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/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/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
|
@@ -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
|
+
}
|
|
@@ -1,26 +1,60 @@
|
|
|
1
1
|
name = "research"
|
|
2
|
-
description = "
|
|
3
|
-
sandbox_mode = "
|
|
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
4
|
|
|
5
5
|
developer_instructions = """
|
|
6
6
|
You are the Trellis researcher agent.
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
- Read `.trellis/workflow.md`, relevant `.trellis/spec/` files, and target code before proposing changes.
|
|
10
|
-
- Identify the smallest set of relevant specs, code patterns, and files to modify.
|
|
11
|
-
- Call out cross-layer or cross-platform risks when they are real.
|
|
12
|
-
- Do not edit files.
|
|
8
|
+
## Core principle
|
|
13
9
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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.
|
|
17
13
|
|
|
18
|
-
##
|
|
19
|
-
- <pattern>: <file>
|
|
14
|
+
## Workflow
|
|
20
15
|
|
|
21
|
-
|
|
22
|
-
|
|
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.
|
|
23
30
|
|
|
24
|
-
##
|
|
25
|
-
|
|
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
|
+
```
|
|
26
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.
|
|
@@ -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)
|
|
@@ -24,7 +24,6 @@ export interface ConfigTemplate {
|
|
|
24
24
|
targetPath: string;
|
|
25
25
|
content: string;
|
|
26
26
|
}
|
|
27
|
-
export declare function getAllSkills(): SkillTemplate[];
|
|
28
27
|
export declare function getAllAgents(): AgentTemplate[];
|
|
29
28
|
/**
|
|
30
29
|
* Get Codex-specific skills (installed to .codex/skills/, not shared .agents/skills/).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/codex/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAgCH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/codex/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAgCH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAc9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CASnD;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,WAAW,IAAI,YAAY,EAAE,CAW5C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD"}
|
|
@@ -39,14 +39,7 @@ function listFiles(dir) {
|
|
|
39
39
|
return [];
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
const skills = [];
|
|
44
|
-
for (const name of listDirectories("skills")) {
|
|
45
|
-
const content = readTemplate(`skills/${name}/SKILL.md`);
|
|
46
|
-
skills.push({ name, content });
|
|
47
|
-
}
|
|
48
|
-
return skills;
|
|
49
|
-
}
|
|
42
|
+
// Shared skills are now sourced from common/ templates (see templates/common/index.ts)
|
|
50
43
|
export function getAllAgents() {
|
|
51
44
|
const agents = [];
|
|
52
45
|
for (const file of listFiles("agents")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/codex/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;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,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC9D,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;aACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aAC1B,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAiBD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/codex/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;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,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC9D,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;aACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aAC1B,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAiBD,uFAAuF;AAEvF,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,YAAY,CAAC,gBAAgB,IAAI,WAAW,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAmB,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,UAAU,EAAE,aAAa;QACzB,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC;KACrC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Continue Current Task
|
|
2
|
+
|
|
3
|
+
Resume work on the current task — pick up at the right phase/step in `.trellis/workflow.md`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Step 1: Load Current Context
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
{{PYTHON_CMD}} ./.trellis/scripts/get_context.py
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Confirms: current task, git state, recent commits.
|
|
14
|
+
|
|
15
|
+
## Step 2: Load the Phase Index
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
{{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode phase
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Shows the Phase Index (Plan / Execute / Finish) with routing + skill mapping.
|
|
22
|
+
|
|
23
|
+
## Step 3: Decide Where You Are
|
|
24
|
+
|
|
25
|
+
Compare the task's `prd.md` + recent activity against the Phase Index:
|
|
26
|
+
|
|
27
|
+
- No `prd.md` yet, or requirements unclear → **Phase 1: Plan** (start at step 1.0/1.1)
|
|
28
|
+
- `prd.md` exists + context configured, but code not written → **Phase 2: Execute** (step 2.1)
|
|
29
|
+
- Code written, pending final quality gate → **Phase 3: Finish** (step 3.1)
|
|
30
|
+
|
|
31
|
+
Phase rules (full detail in `.trellis/workflow.md`):
|
|
32
|
+
|
|
33
|
+
1. Run steps **in order** within a phase — `[required]` steps must not be skipped
|
|
34
|
+
2. `[once]` steps are already done if the output exists (e.g., `prd.md`, `implement.jsonl`) — skip them
|
|
35
|
+
3. You may go back to an earlier phase if discoveries require it
|
|
36
|
+
|
|
37
|
+
## Step 4: Load the Specific Step
|
|
38
|
+
|
|
39
|
+
Once you know which step to resume at:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
{{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode phase --step <X.X> --platform {{CLI_FLAG}}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Follow the loaded instructions. After each `[required]` step completes, move to the next.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Reference
|
|
50
|
+
|
|
51
|
+
Full workflow, skill routing table, and the DO-NOT-skip table live in `.trellis/workflow.md`. This command is only an entry point — the canonical guidance is there.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Finish Work
|
|
2
|
+
|
|
3
|
+
Wrap up the current session.
|
|
4
|
+
|
|
5
|
+
## Step 1: Quality Gate
|
|
6
|
+
|
|
7
|
+
`trellis-check` should have already run in Phase 3. If not, trigger it now and do not proceed until lint, type-check, tests, and spec compliance pass.
|
|
8
|
+
|
|
9
|
+
## Step 2: Remind User to Commit
|
|
10
|
+
|
|
11
|
+
If there are uncommitted changes:
|
|
12
|
+
|
|
13
|
+
> "Please review the changes and commit when ready."
|
|
14
|
+
|
|
15
|
+
Do NOT run `git commit` — the human commits after testing.
|
|
16
|
+
|
|
17
|
+
## Step 3: Record Session (after commit)
|
|
18
|
+
|
|
19
|
+
Archive finished tasks (judge by work status, not the `status` field):
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
{{PYTHON_CMD}} ./.trellis/scripts/task.py archive <task-name>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Append a session entry (auto-handles journal rotation, line count, index update):
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
{{PYTHON_CMD}} ./.trellis/scripts/add_session.py \
|
|
29
|
+
--title "Session Title" \
|
|
30
|
+
--commit "hash1,hash2" \
|
|
31
|
+
--summary "Brief summary"
|
|
32
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Start Session
|
|
2
|
+
|
|
3
|
+
Initialize a Trellis-managed development session. This platform has no session-start hook, so manually load the equivalent context by following these steps (each one mirrors a section the hook would otherwise inject).
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Step 1: Current state
|
|
8
|
+
Identity, git status, current task, active tasks, journal location.
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
{{PYTHON_CMD}} ./.trellis/scripts/get_context.py
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Step 2: Workflow overview
|
|
15
|
+
Phase Index + skill routing table + DO-NOT-skip rules.
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
{{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode phase
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Full guide in `.trellis/workflow.md` (read on demand).
|
|
22
|
+
|
|
23
|
+
## Step 3: Guideline indexes
|
|
24
|
+
Discover packages + spec layers, then read each relevant index file.
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
{{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode packages
|
|
28
|
+
cat .trellis/spec/guides/index.md
|
|
29
|
+
cat .trellis/spec/<package>/<layer>/index.md # for each relevant layer
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Index files list the specific guideline docs to read when you actually start coding.
|
|
33
|
+
|
|
34
|
+
## Step 4: Decide next action
|
|
35
|
+
From Step 1 you know the current task. Check the task directory:
|
|
36
|
+
|
|
37
|
+
- **Active task + `prd.md` exists** → Phase 2 step 2.1. Load the step detail:
|
|
38
|
+
```bash
|
|
39
|
+
{{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode phase --step 2.1 --platform {{CLI_FLAG}}
|
|
40
|
+
```
|
|
41
|
+
- **Active task + no `prd.md`** → Phase 1.1. Load the `trellis-brainstorm` skill.
|
|
42
|
+
- **No active task** → when the user describes multi-step work, load the `trellis-brainstorm` skill to clarify requirements, then create a task via `task.py create`. For simple one-off questions or trivial edits, skip this and just answer directly — no task needed.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Skill routing (quick reference)
|
|
47
|
+
|
|
48
|
+
| User intent | Skill |
|
|
49
|
+
|---|---|
|
|
50
|
+
| New feature / unclear requirements | `trellis-brainstorm` |
|
|
51
|
+
| About to write code | `trellis-before-dev` |
|
|
52
|
+
| Done coding / quality check | `trellis-check` |
|
|
53
|
+
| Stuck / fixed same bug multiple times | `trellis-break-loop` |
|
|
54
|
+
| Learned something worth capturing | `trellis-update-spec` |
|
|
55
|
+
|
|
56
|
+
Full rules + anti-rationalization table in `.trellis/workflow.md`.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common templates — single source of truth for all platforms.
|
|
3
|
+
*
|
|
4
|
+
* These templates contain {{placeholders}} that are resolved per-platform
|
|
5
|
+
* by resolvePlaceholders() in configurators/shared.ts.
|
|
6
|
+
*
|
|
7
|
+
* Directory structure:
|
|
8
|
+
* common/
|
|
9
|
+
* ├── commands/ # Templates that stay as slash commands (start, finish-work)
|
|
10
|
+
* └── skills/ # Templates that become auto-triggered skills
|
|
11
|
+
*/
|
|
12
|
+
export interface CommonTemplate {
|
|
13
|
+
/** Template name without extension (e.g., "start", "before-dev") */
|
|
14
|
+
name: string;
|
|
15
|
+
/** Raw content with {{placeholders}} — must be resolved before writing */
|
|
16
|
+
content: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get all command templates (stay as slash commands on all platforms).
|
|
20
|
+
* Results are cached after first call.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getCommandTemplates(): CommonTemplate[];
|
|
23
|
+
/**
|
|
24
|
+
* Get all skill templates (become auto-triggered skills on supporting platforms).
|
|
25
|
+
* Results are cached after first call.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getSkillTemplates(): CommonTemplate[];
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAuBH,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAMtD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,EAAE,CAMpD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common templates — single source of truth for all platforms.
|
|
3
|
+
*
|
|
4
|
+
* These templates contain {{placeholders}} that are resolved per-platform
|
|
5
|
+
* by resolvePlaceholders() in configurators/shared.ts.
|
|
6
|
+
*
|
|
7
|
+
* Directory structure:
|
|
8
|
+
* common/
|
|
9
|
+
* ├── commands/ # Templates that stay as slash commands (start, finish-work)
|
|
10
|
+
* └── skills/ # Templates that become auto-triggered skills
|
|
11
|
+
*/
|
|
12
|
+
import { readdirSync, readFileSync } from "node:fs";
|
|
13
|
+
import { dirname, join } from "node:path";
|
|
14
|
+
import { fileURLToPath } from "node:url";
|
|
15
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
16
|
+
const __dirname = dirname(__filename);
|
|
17
|
+
function readTemplate(relativePath) {
|
|
18
|
+
return readFileSync(join(__dirname, relativePath), "utf-8");
|
|
19
|
+
}
|
|
20
|
+
function listMarkdownFiles(dir) {
|
|
21
|
+
try {
|
|
22
|
+
return readdirSync(join(__dirname, dir))
|
|
23
|
+
.filter((f) => f.endsWith(".md"))
|
|
24
|
+
.sort();
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Cached results — files don't change during a CLI run
|
|
31
|
+
let cachedCommands;
|
|
32
|
+
let cachedSkills;
|
|
33
|
+
/**
|
|
34
|
+
* Get all command templates (stay as slash commands on all platforms).
|
|
35
|
+
* Results are cached after first call.
|
|
36
|
+
*/
|
|
37
|
+
export function getCommandTemplates() {
|
|
38
|
+
cachedCommands ??= listMarkdownFiles("commands").map((file) => ({
|
|
39
|
+
name: file.replace(/\.md$/, ""),
|
|
40
|
+
content: readTemplate(`commands/${file}`),
|
|
41
|
+
}));
|
|
42
|
+
return cachedCommands;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get all skill templates (become auto-triggered skills on supporting platforms).
|
|
46
|
+
* Results are cached after first call.
|
|
47
|
+
*/
|
|
48
|
+
export function getSkillTemplates() {
|
|
49
|
+
cachedSkills ??= listMarkdownFiles("skills").map((file) => ({
|
|
50
|
+
name: file.replace(/\.md$/, ""),
|
|
51
|
+
content: readTemplate(`skills/${file}`),
|
|
52
|
+
}));
|
|
53
|
+
return cachedSkills;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;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,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;aACrC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAChC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AASD,uDAAuD;AACvD,IAAI,cAA4C,CAAC;AACjD,IAAI,YAA0C,CAAC;AAE/C;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,cAAc,KAAK,iBAAiB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/B,OAAO,EAAE,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC;KAC1C,CAAC,CAAC,CAAC;IACJ,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,YAAY,KAAK,iBAAiB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/B,OAAO,EAAE,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC;KACxC,CAAC,CAAC,CAAC;IACJ,OAAO,YAAY,CAAC;AACtB,CAAC"}
|