@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
|
@@ -13,9 +13,280 @@ function getPythonCommand() {
|
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Resolve platform-specific placeholders in template content.
|
|
16
|
-
*
|
|
16
|
+
*
|
|
17
|
+
* When called without a context, only resolves {{PYTHON_CMD}} (legacy behavior
|
|
18
|
+
* for settings.json, hooks.json, etc.).
|
|
19
|
+
*
|
|
20
|
+
* When called with a TemplateContext, additionally resolves:
|
|
21
|
+
* - {{CMD_REF:name}} → platform-specific command reference
|
|
22
|
+
* - {{EXECUTOR_AI}} → AI executor description
|
|
23
|
+
* - {{USER_ACTION_LABEL}} → user action label
|
|
24
|
+
* - {{CLI_FLAG}} → platform cli flag (e.g. "claude", "codex")
|
|
25
|
+
* - {{#FLAG}}...{{/FLAG}} → conditional include (when FLAG is true)
|
|
26
|
+
* - {{^FLAG}}...{{/FLAG}} → negated conditional (when FLAG is false)
|
|
27
|
+
*
|
|
28
|
+
* Supported conditional flags: AGENT_CAPABLE, HAS_HOOKS
|
|
29
|
+
*/
|
|
30
|
+
// Pre-compiled regexes for placeholder resolution
|
|
31
|
+
const RE_PYTHON_CMD = /\{\{PYTHON_CMD\}\}/g;
|
|
32
|
+
const RE_CMD_REF = /\{\{CMD_REF:([\w][\w-]*)\}\}/g;
|
|
33
|
+
const RE_EXECUTOR_AI = /\{\{EXECUTOR_AI\}\}/g;
|
|
34
|
+
const RE_USER_ACTION_LABEL = /\{\{USER_ACTION_LABEL\}\}/g;
|
|
35
|
+
const RE_CLI_FLAG = /\{\{CLI_FLAG\}\}/g;
|
|
36
|
+
const RE_BLANK_LINES = /\n{3,}/g;
|
|
37
|
+
const CONDITIONAL_FLAGS = ["AGENT_CAPABLE", "HAS_HOOKS"];
|
|
38
|
+
const CONDITIONAL_REGEXES = Object.fromEntries(CONDITIONAL_FLAGS.map((flag) => [
|
|
39
|
+
flag,
|
|
40
|
+
{
|
|
41
|
+
pos: new RegExp(`\\{\\{#${flag}\\}\\}([\\s\\S]*?)\\{\\{/${flag}\\}\\}`, "g"),
|
|
42
|
+
neg: new RegExp(`\\{\\{\\^${flag}\\}\\}([\\s\\S]*?)\\{\\{/${flag}\\}\\}`, "g"),
|
|
43
|
+
},
|
|
44
|
+
]));
|
|
45
|
+
export function resolvePlaceholders(content, context) {
|
|
46
|
+
let result = content.replace(RE_PYTHON_CMD, getPythonCommand());
|
|
47
|
+
if (!context)
|
|
48
|
+
return result;
|
|
49
|
+
// Simple substitutions
|
|
50
|
+
result = result.replace(RE_CMD_REF, (_match, name) => `${context.cmdRefPrefix}${name}`);
|
|
51
|
+
result = result.replace(RE_EXECUTOR_AI, context.executorAI);
|
|
52
|
+
result = result.replace(RE_USER_ACTION_LABEL, context.userActionLabel);
|
|
53
|
+
result = result.replace(RE_CLI_FLAG, context.cliFlag);
|
|
54
|
+
// Conditional blocks
|
|
55
|
+
const flagValues = {
|
|
56
|
+
AGENT_CAPABLE: context.agentCapable,
|
|
57
|
+
HAS_HOOKS: context.hasHooks,
|
|
58
|
+
};
|
|
59
|
+
for (const flag of CONDITIONAL_FLAGS) {
|
|
60
|
+
const value = flagValues[flag];
|
|
61
|
+
const { pos, neg } = CONDITIONAL_REGEXES[flag];
|
|
62
|
+
// Reset lastIndex for global regexes reused across calls
|
|
63
|
+
pos.lastIndex = 0;
|
|
64
|
+
neg.lastIndex = 0;
|
|
65
|
+
result = result.replace(pos, value ? "$1" : "");
|
|
66
|
+
result = result.replace(neg, value ? "" : "$1");
|
|
67
|
+
}
|
|
68
|
+
// Clean up blank lines left by removed conditional blocks
|
|
69
|
+
result = result.replace(RE_BLANK_LINES, "\n\n");
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
// ---------------------------------------------------------------------------
|
|
73
|
+
// Template wrapping utilities
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
75
|
+
/** Skill description registry — maps template name to auto-trigger description. */
|
|
76
|
+
const SKILL_DESCRIPTIONS = {
|
|
77
|
+
start: "Initializes an AI development session by reading workflow guides, developer identity, git status, active tasks, and project guidelines from .trellis/. Classifies incoming tasks and routes to brainstorm, direct edit, or task workflow. Use when beginning a new coding session, resuming work, starting a new task, or re-establishing project context.",
|
|
78
|
+
continue: "Resume work on the current task. Loads the workflow Phase Index, figures out which phase/step to pick up at, then pulls the step-level detail via get_context.py --mode phase. Use when coming back to an in-progress task and you need to know what to do next.",
|
|
79
|
+
"finish-work": "Wrap up the current session: verify quality gate passed, remind user to commit, archive completed tasks, and record session progress to the developer journal. Use when done coding and ready to end the session.",
|
|
80
|
+
"before-dev": "Discovers and injects project-specific coding guidelines from .trellis/spec/ before implementation begins. Reads spec indexes, pre-development checklists, and shared thinking guides for the target package. Use when starting a new coding task, before writing any code, switching to a different package, or needing to refresh project conventions and standards.",
|
|
81
|
+
brainstorm: "Guides collaborative requirements discovery before implementation. Creates task directory, seeds PRD, asks high-value questions one at a time, researches technical choices, and converges on MVP scope. Use when requirements are unclear, there are multiple valid approaches, or the user describes a new feature or complex task.",
|
|
82
|
+
check: "Comprehensive quality verification: spec compliance, lint, type-check, tests, cross-layer data flow, code reuse, and consistency checks. Use when code is written and needs quality verification, before committing changes, or to catch context drift during long sessions.",
|
|
83
|
+
"break-loop": "Deep bug analysis to break the fix-forget-repeat cycle. Analyzes root cause category, why fixes failed, prevention mechanisms, and captures knowledge into specs. Use after fixing a bug to prevent the same class of bugs.",
|
|
84
|
+
"update-spec": "Captures executable contracts and coding conventions into .trellis/spec/ documents. Use when learning something valuable from debugging, implementing, or discussion that should be preserved for future sessions.",
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Wrap resolved template content with YAML frontmatter for skill format.
|
|
88
|
+
* Used by platforms that use SKILL.md (Codex, Kiro, Qoder, etc.).
|
|
89
|
+
*/
|
|
90
|
+
export function wrapWithSkillFrontmatter(name, content) {
|
|
91
|
+
// Look up description by base name (without trellis- prefix)
|
|
92
|
+
const baseName = name.replace(/^trellis-/, "");
|
|
93
|
+
const description = SKILL_DESCRIPTIONS[baseName];
|
|
94
|
+
if (!description) {
|
|
95
|
+
throw new Error(`Missing skill description for "${baseName}". Add it to SKILL_DESCRIPTIONS in shared.ts.`);
|
|
96
|
+
}
|
|
97
|
+
return `---\nname: ${name}\ndescription: "${description}"\n---\n\n${content}`;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* One-line blurbs shown in a `/` command palette — kept separate from
|
|
101
|
+
* SKILL_DESCRIPTIONS, which is long prose aimed at the skill matcher.
|
|
102
|
+
*/
|
|
103
|
+
const COMMAND_DESCRIPTIONS = {
|
|
104
|
+
start: "Initialize a Trellis development session.",
|
|
105
|
+
continue: "Resume work on the current task at the correct phase.",
|
|
106
|
+
"finish-work": "Wrap up the current session: quality gate, commit reminder, archive, journal.",
|
|
107
|
+
};
|
|
108
|
+
/** Wrap resolved command content with YAML frontmatter (name + description). */
|
|
109
|
+
export function wrapWithCommandFrontmatter(name, content) {
|
|
110
|
+
const baseName = name.replace(/^trellis-/, "");
|
|
111
|
+
const description = COMMAND_DESCRIPTIONS[baseName];
|
|
112
|
+
if (!description) {
|
|
113
|
+
throw new Error(`Missing command description for "${baseName}". Add it to COMMAND_DESCRIPTIONS in shared.ts.`);
|
|
114
|
+
}
|
|
115
|
+
return `---\nname: ${name}\ndescription: ${description}\n---\n\n${content}`;
|
|
116
|
+
}
|
|
117
|
+
// ---------------------------------------------------------------------------
|
|
118
|
+
// Shared configurator helpers
|
|
119
|
+
// ---------------------------------------------------------------------------
|
|
120
|
+
import path from "node:path";
|
|
121
|
+
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
122
|
+
import { getCommandTemplates, getSkillTemplates, } from "../templates/common/index.js";
|
|
123
|
+
/**
|
|
124
|
+
* Filter command templates based on platform capabilities.
|
|
125
|
+
*
|
|
126
|
+
* `start.md` is only emitted for agent-less platforms (kilo, antigravity,
|
|
127
|
+
* windsurf). On agent-capable platforms, the session-start hook / plugin
|
|
128
|
+
* already injects the workflow overview, so a user-facing `start` command
|
|
129
|
+
* would be redundant.
|
|
130
|
+
*/
|
|
131
|
+
function filterCommands(templates, ctx) {
|
|
132
|
+
if (ctx.agentCapable) {
|
|
133
|
+
return templates.filter((t) => t.name !== "start");
|
|
134
|
+
}
|
|
135
|
+
return templates;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Resolve ALL templates as skills with trellis- prefix.
|
|
139
|
+
* Used by skill-only platforms (Kiro, Qoder, Codex) where everything is a skill.
|
|
140
|
+
*
|
|
141
|
+
* `start` is filtered out on agent-capable platforms — the session-start hook
|
|
142
|
+
* injects the workflow overview instead.
|
|
17
143
|
*/
|
|
18
|
-
export function
|
|
19
|
-
|
|
144
|
+
export function resolveAllAsSkills(ctx) {
|
|
145
|
+
const templates = [
|
|
146
|
+
...filterCommands(getCommandTemplates(), ctx),
|
|
147
|
+
...getSkillTemplates(),
|
|
148
|
+
];
|
|
149
|
+
return templates.map((tmpl) => ({
|
|
150
|
+
name: `trellis-${tmpl.name}`,
|
|
151
|
+
content: wrapWithSkillFrontmatter(`trellis-${tmpl.name}`, resolvePlaceholders(tmpl.content, ctx)),
|
|
152
|
+
}));
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Resolve command templates as plain commands (no wrapping).
|
|
156
|
+
* Used by "both" platforms for the user-ritual commands.
|
|
157
|
+
*
|
|
158
|
+
* `start` is filtered out on agent-capable platforms.
|
|
159
|
+
*/
|
|
160
|
+
export function resolveCommands(ctx) {
|
|
161
|
+
return filterCommands(getCommandTemplates(), ctx).map((tmpl) => ({
|
|
162
|
+
name: tmpl.name,
|
|
163
|
+
content: resolvePlaceholders(tmpl.content, ctx),
|
|
164
|
+
}));
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Resolve only the 5 skill templates with trellis- prefix + SKILL.md frontmatter.
|
|
168
|
+
* Used by "both" platforms for the auto-triggered skills.
|
|
169
|
+
*/
|
|
170
|
+
export function resolveSkills(ctx) {
|
|
171
|
+
return getSkillTemplates().map((tmpl) => ({
|
|
172
|
+
name: `trellis-${tmpl.name}`,
|
|
173
|
+
content: wrapWithSkillFrontmatter(`trellis-${tmpl.name}`, resolvePlaceholders(tmpl.content, ctx)),
|
|
174
|
+
}));
|
|
175
|
+
}
|
|
176
|
+
// ---------------------------------------------------------------------------
|
|
177
|
+
// Shared configurator write helpers
|
|
178
|
+
// ---------------------------------------------------------------------------
|
|
179
|
+
/** Write skill directories from resolved templates */
|
|
180
|
+
export async function writeSkills(skillsRoot, skills) {
|
|
181
|
+
ensureDir(skillsRoot);
|
|
182
|
+
for (const skill of skills) {
|
|
183
|
+
const skillDir = path.join(skillsRoot, skill.name);
|
|
184
|
+
ensureDir(skillDir);
|
|
185
|
+
await writeFile(path.join(skillDir, "SKILL.md"), skill.content);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/** Write agent/droid definition files */
|
|
189
|
+
export async function writeAgents(agentsDir, agents, ext = ".md") {
|
|
190
|
+
ensureDir(agentsDir);
|
|
191
|
+
for (const agent of agents) {
|
|
192
|
+
await writeFile(path.join(agentsDir, `${agent.name}${ext}`), agent.content);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/** Write shared hook scripts to a hooks directory */
|
|
196
|
+
export async function writeSharedHooks(hooksDir, options = {}) {
|
|
197
|
+
const { getSharedHookScripts } = await import("../templates/shared-hooks/index.js");
|
|
198
|
+
const exclude = new Set(options.exclude ?? []);
|
|
199
|
+
ensureDir(hooksDir);
|
|
200
|
+
for (const hook of getSharedHookScripts()) {
|
|
201
|
+
if (exclude.has(hook.name))
|
|
202
|
+
continue;
|
|
203
|
+
await writeFile(path.join(hooksDir, hook.name), hook.content);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/** Build the standard "load Trellis context first" prelude block. */
|
|
207
|
+
export function buildPullBasedPrelude(agentType) {
|
|
208
|
+
// JSONL filenames stay as implement.jsonl / check.jsonl — they are internal
|
|
209
|
+
// context buckets keyed by role (not by platform-visible agent name).
|
|
210
|
+
const jsonl = agentType === "check" ? "check.jsonl" : "implement.jsonl";
|
|
211
|
+
return `## Required: Load Trellis Context First
|
|
212
|
+
|
|
213
|
+
This platform does NOT auto-inject task context via hook. Before doing anything else, you MUST load context yourself:
|
|
214
|
+
|
|
215
|
+
1. Read \`.trellis/.current-task\` to find the current task path (e.g. \`.trellis/tasks/04-17-foo/\`).
|
|
216
|
+
2. Read the task's \`prd.md\` (requirements) and \`info.md\` if it exists (technical design).
|
|
217
|
+
3. Read \`<task-path>/${jsonl}\` — JSONL list of dev spec files relevant to this agent.
|
|
218
|
+
4. For each entry in the JSONL, Read its \`file\` path — these are the dev specs you must follow.
|
|
219
|
+
|
|
220
|
+
If \`.current-task\` is missing or the task has no \`prd.md\`, ask the user what to work on; do NOT proceed without context.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
`;
|
|
225
|
+
}
|
|
226
|
+
/** Insert prelude into a markdown agent definition (after YAML frontmatter). */
|
|
227
|
+
export function injectPullBasedPreludeMarkdown(content, agentType) {
|
|
228
|
+
const prelude = buildPullBasedPrelude(agentType);
|
|
229
|
+
const lines = content.split("\n");
|
|
230
|
+
if (lines[0] !== "---") {
|
|
231
|
+
return prelude + content;
|
|
232
|
+
}
|
|
233
|
+
// Find closing frontmatter
|
|
234
|
+
let close = -1;
|
|
235
|
+
for (let i = 1; i < lines.length; i++) {
|
|
236
|
+
if (lines[i] === "---") {
|
|
237
|
+
close = i;
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
if (close === -1) {
|
|
242
|
+
return prelude + content;
|
|
243
|
+
}
|
|
244
|
+
const head = lines.slice(0, close + 1).join("\n");
|
|
245
|
+
const tail = lines.slice(close + 1).join("\n");
|
|
246
|
+
// Skip leading blank lines in tail to keep things tidy
|
|
247
|
+
const tailTrimmed = tail.replace(/^\n+/, "");
|
|
248
|
+
return `${head}\n\n${prelude}${tailTrimmed}`;
|
|
249
|
+
}
|
|
250
|
+
/** Insert prelude into a TOML agent (codex `developer_instructions`). */
|
|
251
|
+
export function injectPullBasedPreludeToml(content, agentType) {
|
|
252
|
+
const prelude = buildPullBasedPrelude(agentType);
|
|
253
|
+
// Match: developer_instructions = """ followed by newline
|
|
254
|
+
const re = /(developer_instructions\s*=\s*""")(\r?\n)/;
|
|
255
|
+
if (!re.test(content)) {
|
|
256
|
+
return content;
|
|
257
|
+
}
|
|
258
|
+
return content.replace(re, `$1$2${prelude}`);
|
|
259
|
+
}
|
|
260
|
+
/** Best-effort detect agent type from filename ("trellis-implement.md" → "implement").
|
|
261
|
+
* Returns null for research and unknown names — they skip the prelude.
|
|
262
|
+
*/
|
|
263
|
+
export function detectSubAgentType(name) {
|
|
264
|
+
const base = name.replace(/\.(md|toml|prompt\.md)$/, "");
|
|
265
|
+
if (base === "trellis-implement" || base === "trellis-check") {
|
|
266
|
+
return base === "trellis-implement" ? "implement" : "check";
|
|
267
|
+
}
|
|
268
|
+
return null;
|
|
269
|
+
}
|
|
270
|
+
export function applyPullBasedPreludeMarkdown(agents) {
|
|
271
|
+
return agents.map((a) => {
|
|
272
|
+
const t = detectSubAgentType(a.name);
|
|
273
|
+
if (!t)
|
|
274
|
+
return { ...a };
|
|
275
|
+
return {
|
|
276
|
+
...a,
|
|
277
|
+
content: injectPullBasedPreludeMarkdown(a.content, t),
|
|
278
|
+
};
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
export function applyPullBasedPreludeToml(agents) {
|
|
282
|
+
return agents.map((a) => {
|
|
283
|
+
const t = detectSubAgentType(a.name);
|
|
284
|
+
if (!t)
|
|
285
|
+
return { ...a };
|
|
286
|
+
return {
|
|
287
|
+
...a,
|
|
288
|
+
content: injectPullBasedPreludeToml(a.content, t),
|
|
289
|
+
};
|
|
290
|
+
});
|
|
20
291
|
}
|
|
21
292
|
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/configurators/shared.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/configurators/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Configure Windsurf
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* - .windsurf/workflows/<workflow-name>.md
|
|
2
|
+
* Configure Windsurf:
|
|
3
|
+
* - workflows/ — start + finish-work as slash commands
|
|
4
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
6
5
|
*/
|
|
7
6
|
export declare function configureWindsurf(cwd: string): Promise<void>;
|
|
8
7
|
//# sourceMappingURL=windsurf.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windsurf.d.ts","sourceRoot":"","sources":["../../src/configurators/windsurf.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"windsurf.d.ts","sourceRoot":"","sources":["../../src/configurators/windsurf.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBlE"}
|
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import {
|
|
2
|
+
import { AI_TOOLS } from "../types/ai-tools.js";
|
|
3
3
|
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
|
+
import { resolveCommands, resolveSkills } from "./shared.js";
|
|
4
5
|
/**
|
|
5
|
-
* Configure Windsurf
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* - .windsurf/workflows/<workflow-name>.md
|
|
6
|
+
* Configure Windsurf:
|
|
7
|
+
* - workflows/ — start + finish-work as slash commands
|
|
8
|
+
* - skills/trellis-{name}/SKILL.md — other 5 as auto-triggered skills
|
|
9
9
|
*/
|
|
10
10
|
export async function configureWindsurf(cwd) {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
await writeFile(
|
|
11
|
+
const ctx = AI_TOOLS.windsurf.templateContext;
|
|
12
|
+
const workflowsDir = path.join(cwd, ".windsurf", "workflows");
|
|
13
|
+
ensureDir(workflowsDir);
|
|
14
|
+
for (const cmd of resolveCommands(ctx)) {
|
|
15
|
+
await writeFile(path.join(workflowsDir, `trellis-${cmd.name}.md`), cmd.content);
|
|
16
|
+
}
|
|
17
|
+
const skillsDir = path.join(cwd, ".windsurf", "skills");
|
|
18
|
+
ensureDir(skillsDir);
|
|
19
|
+
for (const skill of resolveSkills(ctx)) {
|
|
20
|
+
const skillDir = path.join(skillsDir, skill.name);
|
|
21
|
+
ensureDir(skillDir);
|
|
22
|
+
await writeFile(path.join(skillDir, "SKILL.md"), skill.content);
|
|
16
23
|
}
|
|
17
24
|
}
|
|
18
25
|
//# sourceMappingURL=windsurf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../../src/configurators/windsurf.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../../src/configurators/windsurf.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAW;IACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC;IAE9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAC9D,SAAS,CAAC,YAAY,CAAC,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,CAAC,IAAI,KAAK,CAAC,EACjD,GAAG,CAAC,OAAO,CACZ,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACxD,SAAS,CAAC,SAAS,CAAC,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpB,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
|
|
@@ -5,8 +5,6 @@ import { type ProjectType, type DetectedPackage } from "../utils/project-detecto
|
|
|
5
5
|
export interface WorkflowOptions {
|
|
6
6
|
/** Detected or specified project type */
|
|
7
7
|
projectType: ProjectType;
|
|
8
|
-
/** Enable multi-agent pipeline with worktree support */
|
|
9
|
-
multiAgent?: boolean;
|
|
10
8
|
/** Skip creating local spec templates (when using remote template) — single-repo mode */
|
|
11
9
|
skipSpecTemplates?: boolean;
|
|
12
10
|
/** Detected monorepo packages (enables monorepo spec creation) */
|
|
@@ -23,7 +21,6 @@ export interface WorkflowOptions {
|
|
|
23
21
|
* 3. Creating workspace/ with index.md
|
|
24
22
|
* 4. Creating tasks/ directory
|
|
25
23
|
* 5. Creating spec/ with templates (not dogfooded - generic templates)
|
|
26
|
-
* 6. Copying worktree.yaml if multi-agent is enabled
|
|
27
24
|
*
|
|
28
25
|
* @param cwd - Current working directory
|
|
29
26
|
* @param options - Workflow options including project type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"AAqCA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,8BAA8B,CAAC;AAOtC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,yFAAyF;IACzF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAmDf"}
|
|
@@ -2,7 +2,7 @@ import path from "node:path";
|
|
|
2
2
|
import { DIR_NAMES, PATHS } from "../constants/paths.js";
|
|
3
3
|
import { copyTrellisDir } from "../templates/extract.js";
|
|
4
4
|
// Import trellis templates (generic, not project-specific)
|
|
5
|
-
import { workflowMdTemplate, configYamlTemplate,
|
|
5
|
+
import { workflowMdTemplate, configYamlTemplate, gitignoreTemplate, } from "../templates/trellis/index.js";
|
|
6
6
|
// Import markdown templates
|
|
7
7
|
import { agentProgressIndexContent,
|
|
8
8
|
// Backend structure (multi-doc)
|
|
@@ -22,14 +22,12 @@ import { sanitizePkgName, } from "../utils/project-detector.js";
|
|
|
22
22
|
* 3. Creating workspace/ with index.md
|
|
23
23
|
* 4. Creating tasks/ directory
|
|
24
24
|
* 5. Creating spec/ with templates (not dogfooded - generic templates)
|
|
25
|
-
* 6. Copying worktree.yaml if multi-agent is enabled
|
|
26
25
|
*
|
|
27
26
|
* @param cwd - Current working directory
|
|
28
27
|
* @param options - Workflow options including project type
|
|
29
28
|
*/
|
|
30
29
|
export async function createWorkflowStructure(cwd, options) {
|
|
31
30
|
const projectType = options?.projectType ?? "fullstack";
|
|
32
|
-
const multiAgent = options?.multiAgent ?? false;
|
|
33
31
|
const skipSpecTemplates = options?.skipSpecTemplates ?? false;
|
|
34
32
|
const packages = options?.packages;
|
|
35
33
|
const remoteSpecPackages = options?.remoteSpecPackages;
|
|
@@ -50,10 +48,6 @@ export async function createWorkflowStructure(cwd, options) {
|
|
|
50
48
|
await writeFile(path.join(cwd, PATHS.WORKSPACE, "index.md"), agentProgressIndexContent);
|
|
51
49
|
// Create tasks/ directory
|
|
52
50
|
ensureDir(path.join(cwd, PATHS.TASKS));
|
|
53
|
-
// Copy worktree.yaml if multi-agent enabled
|
|
54
|
-
if (multiAgent) {
|
|
55
|
-
await writeFile(path.join(cwd, DIR_NAMES.WORKFLOW, "worktree.yaml"), worktreeYamlTemplate);
|
|
56
|
-
}
|
|
57
51
|
// Create spec templates based on project type
|
|
58
52
|
// These are NOT dogfooded - they are generic templates for new projects
|
|
59
53
|
if (packages && packages.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,2DAA2D;AAC3D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "v0.4.0 stable — Monorepo-native Trellis (per-package specs + generic before-dev/check)",
|
|
4
4
|
"breaking": false,
|
|
5
5
|
"recommendMigrate": true,
|
|
6
|
-
"changelog": "**v0.4.0 stable.** Promoted from rc.1 with zero src/ changes — stable release of everything shipped across 11 betas and 2 RCs.\n\n## Headline: monorepo-native Trellis\n\n0.4.0's defining change is structural — Trellis now thinks in packages, not projects. Two closely-linked refactors make this work:\n\n**1. Monorepo support + per-package spec infrastructure.** `trellis init` detects monorepos and creates per-package spec directories instead of a single project-wide one. `task.py` / `add_session.py` / `create_bootstrap.py` gained `--package` flags. start / parallel / workflow / agents templates honor per-package scope. Mental model shifts from 'one project, one set of specs' to 'one project, N sets of specs, sliced by package'.\n\n**2. Generic before-dev / check commands.** Per-package specs alone would have exploded the command matrix into N_packages × {backend, frontend}. So across 9 platforms, type-specific before-backend-dev / before-frontend-dev / check-backend / check-frontend were merged into single before-dev / check. A new `safe-file-delete` migration type was added to land this safely — it only removes files whose hash matches a known-unmodified state, preserving local edits. beta.1 shipped 36 such entries.\n\nWithout the command merge, per-package is unusable. Without per-package, the merge is just cleanup. Together they are the 0.4.0 architecture shift.\n\n## Ecosystem: Shared Agent Skills layer\n\nCodex now writes to `.agents/skills/` (the agentskills.io standard directory), automatically read by Cursor, Gemini CLI, GitHub Copilot, Amp, and Kimi Code. One checkbox, multiple clients.\n\n## New platforms (5)\n\nGitHub Copilot (full), Windsurf (workflow), Qoder (skills), Kimi Code (via shared layer), Factory Droid (commands-only).\n\n## Notable improvements\n\n-
|
|
6
|
+
"changelog": "**v0.4.0 stable.** Promoted from rc.1 with zero src/ changes — stable release of everything shipped across 11 betas and 2 RCs.\n\n## Headline: monorepo-native Trellis\n\n0.4.0's defining change is structural — Trellis now thinks in packages, not projects. Two closely-linked refactors make this work:\n\n**1. Monorepo support + per-package spec infrastructure.** `trellis init` detects monorepos and creates per-package spec directories instead of a single project-wide one. `task.py` / `add_session.py` / `create_bootstrap.py` gained `--package` flags. start / parallel / workflow / agents templates honor per-package scope. Mental model shifts from 'one project, one set of specs' to 'one project, N sets of specs, sliced by package'.\n\n**2. Generic before-dev / check commands.** Per-package specs alone would have exploded the command matrix into N_packages × {backend, frontend}. So across 9 platforms, type-specific before-backend-dev / before-frontend-dev / check-backend / check-frontend were merged into single before-dev / check. A new `safe-file-delete` migration type was added to land this safely — it only removes files whose hash matches a known-unmodified state, preserving local edits. beta.1 shipped 36 such entries.\n\nWithout the command merge, per-package is unusable. Without per-package, the merge is just cleanup. Together they are the 0.4.0 architecture shift.\n\n## Ecosystem: Shared Agent Skills layer\n\nCodex now writes to `.agents/skills/` (the agentskills.io standard directory), automatically read by Cursor, Gemini CLI, GitHub Copilot, Amp, and Kimi Code. One checkbox, multiple clients.\n\n## New platforms (5)\n\nGitHub Copilot (full), Windsurf (workflow), Qoder (skills), Kimi Code (via shared layer), Factory Droid (commands-only).\n\n## Notable improvements\n\n- Custom spec template registry: `trellis init -r <source>` pulls spec templates from a custom git repo (GitHub / GitLab / Bitbucket, incl. self-hosted GitLab via HTTPS/SSH) instead of the default marketplace\n- Multi-agent worktree + PR awareness\n- Re-init fast path: `trellis init --codex` / `-u name` / bare menu\n- Branch-aware sessions and journals\n- Statusline integration for Claude Code\n- Marketplace extracted to standalone submodule (#117)\n- Python scripts refactor — shared io/log/git modules, TaskInfo dataclass, god-module split\n- OpenCode plugin v1 API, fixes non-persistent context injection\n\n## Biggest bug fix\n\n**SessionStart additionalContext** reduced from ~29 KB to ~7 KB, under Claude Code's ~20 KB truncation threshold. Task state was being silently lost on most projects before rc.0.\n\n## Windows fixes\n\n- statusline.py GBK encoding crash (UTF-8 stdout/stderr wrap)\n- {{PYTHON_CMD}} placeholder resolution in Codex hooks.json (#132)\n- isManagedPath path normalization (\\ → /)\n\n## Other fixes\n\n- fix(update): rename migrations allowed to target protected paths\n- fix(update): parse name from .developer when creating migration task\n- fix(hooks): normalize .current-task path refs (#130)\n- fix(hooks): SubagentStop event field names in ralph-loop (#152)\n- fix(opencode): dispatch waits for child tasks (#147)\n- fix(init): strip npm scope prefix from monorepo package directory names\n- fix(init): rename 'empty templates' to 'from scratch' in template picker\n- fix(scripts): preserve submodule status prefix in start.py",
|
|
7
7
|
"migrations": [],
|
|
8
8
|
"notes": "Stable promotion of v0.4.0-rc.1 — no new src/ changes since rc.1, no new migrations in this manifest. Users on 0.3.x: run `trellis update` to apply the full 0.4.0 cycle (36 file deletions for the merged before-dev/check commands are handled automatically via safe-file-delete with hash verification — your local edits are preserved). Users on any 0.4.0 prerelease: `trellis update` is a clean version bump. Install: `npm install -g @mindfoldhq/trellis`."
|
|
9
9
|
}
|