@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
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
"""
|
|
4
|
+
Workflow Phase Extraction.
|
|
5
|
+
|
|
6
|
+
Extracts step-level content from .trellis/workflow.md and optionally filters
|
|
7
|
+
platform-specific blocks.
|
|
8
|
+
|
|
9
|
+
Platform marker syntax in workflow.md:
|
|
10
|
+
|
|
11
|
+
[Claude Code, Cursor, ...]
|
|
12
|
+
agent-capable content
|
|
13
|
+
[/Claude Code, Cursor, ...]
|
|
14
|
+
|
|
15
|
+
Provides:
|
|
16
|
+
get_phase_index - Extract the Phase Index section (no --step)
|
|
17
|
+
get_step - Extract a single step (#### X.X) section
|
|
18
|
+
filter_platform - Strip platform blocks that don't include the given name
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
from __future__ import annotations
|
|
22
|
+
|
|
23
|
+
import re
|
|
24
|
+
|
|
25
|
+
from .paths import DIR_WORKFLOW, get_repo_root
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _workflow_md_path():
|
|
29
|
+
return get_repo_root() / DIR_WORKFLOW / "workflow.md"
|
|
30
|
+
|
|
31
|
+
# Match a line that *is* a platform marker: "[A, B, C]" or "[/A, B, C]"
|
|
32
|
+
_MARKER_RE = re.compile(r"^\[(/?)([A-Za-z][^\[\]]*)\]\s*$")
|
|
33
|
+
|
|
34
|
+
# Step heading: "#### 1.0 Title" or "#### 1.0 ..."
|
|
35
|
+
_STEP_HEADING_RE = re.compile(r"^####\s+(\d+\.\d+)\b.*$")
|
|
36
|
+
|
|
37
|
+
# Phase Index starts here; Phase 1/2/3 step bodies follow; ends at Breadcrumbs.
|
|
38
|
+
_PHASE_INDEX_HEADING = "## Phase Index"
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _read_workflow() -> str:
|
|
42
|
+
path = _workflow_md_path()
|
|
43
|
+
if not path.exists():
|
|
44
|
+
raise FileNotFoundError(f"workflow.md not found: {path}")
|
|
45
|
+
return path.read_text(encoding="utf-8")
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def _parse_marker(line: str) -> tuple[bool, list[str]] | None:
|
|
49
|
+
"""Parse a platform marker line.
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
(is_closing, [platform_names]) if line is a marker, else None.
|
|
53
|
+
"""
|
|
54
|
+
m = _MARKER_RE.match(line)
|
|
55
|
+
if not m:
|
|
56
|
+
return None
|
|
57
|
+
is_closing = m.group(1) == "/"
|
|
58
|
+
names = [p.strip() for p in m.group(2).split(",") if p.strip()]
|
|
59
|
+
return is_closing, names
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def get_phase_index() -> str:
|
|
63
|
+
"""Return Phase Index + Phase 1/2/3 step bodies from workflow.md.
|
|
64
|
+
|
|
65
|
+
Matches what the SessionStart hook injects into the `<workflow>` block:
|
|
66
|
+
starts at `## Phase Index`, continues through `## Phase 1: Plan`,
|
|
67
|
+
`## Phase 2: Execute`, `## Phase 3: Finish`, stops at
|
|
68
|
+
`## Workflow State Breadcrumbs` (consumed by UserPromptSubmit hook).
|
|
69
|
+
"""
|
|
70
|
+
text = _read_workflow()
|
|
71
|
+
lines = text.splitlines()
|
|
72
|
+
|
|
73
|
+
start: int | None = None
|
|
74
|
+
end: int | None = None
|
|
75
|
+
for i, line in enumerate(lines):
|
|
76
|
+
stripped = line.strip()
|
|
77
|
+
if start is None and stripped == _PHASE_INDEX_HEADING:
|
|
78
|
+
start = i
|
|
79
|
+
continue
|
|
80
|
+
if start is not None and stripped == "## Workflow State Breadcrumbs":
|
|
81
|
+
end = i
|
|
82
|
+
break
|
|
83
|
+
|
|
84
|
+
if start is None:
|
|
85
|
+
return ""
|
|
86
|
+
if end is None:
|
|
87
|
+
end = len(lines)
|
|
88
|
+
return "\n".join(lines[start:end]).rstrip() + "\n"
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def get_step(step_id: str) -> str:
|
|
92
|
+
"""Return the `#### X.X` section matching step_id (header + body).
|
|
93
|
+
|
|
94
|
+
Body ends at the next `####` or `---` or `##` heading (whichever comes first).
|
|
95
|
+
"""
|
|
96
|
+
text = _read_workflow()
|
|
97
|
+
lines = text.splitlines()
|
|
98
|
+
|
|
99
|
+
start: int | None = None
|
|
100
|
+
for i, line in enumerate(lines):
|
|
101
|
+
m = _STEP_HEADING_RE.match(line)
|
|
102
|
+
if m and m.group(1) == step_id:
|
|
103
|
+
start = i
|
|
104
|
+
break
|
|
105
|
+
if start is None:
|
|
106
|
+
return ""
|
|
107
|
+
|
|
108
|
+
end: int = len(lines)
|
|
109
|
+
for j in range(start + 1, len(lines)):
|
|
110
|
+
line = lines[j]
|
|
111
|
+
if line.startswith("#### "):
|
|
112
|
+
end = j
|
|
113
|
+
break
|
|
114
|
+
if line.startswith("## "):
|
|
115
|
+
end = j
|
|
116
|
+
break
|
|
117
|
+
# Horizontal rule at column 0
|
|
118
|
+
if line.strip() == "---":
|
|
119
|
+
end = j
|
|
120
|
+
break
|
|
121
|
+
|
|
122
|
+
return "\n".join(lines[start:end]).rstrip() + "\n"
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def _platform_matches(platform: str, block_names: list[str]) -> bool:
|
|
126
|
+
"""Case-insensitive fuzzy match: accept 'cursor', 'Cursor', 'claude-code', 'Claude Code'."""
|
|
127
|
+
needle = platform.lower().replace("-", "").replace("_", "").replace(" ", "")
|
|
128
|
+
for name in block_names:
|
|
129
|
+
hay = name.lower().replace("-", "").replace("_", "").replace(" ", "")
|
|
130
|
+
if needle == hay:
|
|
131
|
+
return True
|
|
132
|
+
return False
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def filter_platform(content: str, platform: str) -> str:
|
|
136
|
+
"""Keep lines outside any `[...]` block + lines inside blocks that include platform.
|
|
137
|
+
|
|
138
|
+
Marker lines themselves are dropped from the output.
|
|
139
|
+
"""
|
|
140
|
+
lines = content.splitlines()
|
|
141
|
+
out: list[str] = []
|
|
142
|
+
|
|
143
|
+
in_block = False
|
|
144
|
+
keep_block = False
|
|
145
|
+
|
|
146
|
+
for line in lines:
|
|
147
|
+
marker = _parse_marker(line)
|
|
148
|
+
if marker is not None:
|
|
149
|
+
is_closing, names = marker
|
|
150
|
+
if not is_closing:
|
|
151
|
+
in_block = True
|
|
152
|
+
keep_block = _platform_matches(platform, names)
|
|
153
|
+
else:
|
|
154
|
+
in_block = False
|
|
155
|
+
keep_block = False
|
|
156
|
+
continue # drop the marker line itself
|
|
157
|
+
|
|
158
|
+
if in_block:
|
|
159
|
+
if keep_block:
|
|
160
|
+
out.append(line)
|
|
161
|
+
continue
|
|
162
|
+
out.append(line)
|
|
163
|
+
|
|
164
|
+
# Collapse runs of 3+ blank lines that may arise from dropped markers
|
|
165
|
+
collapsed: list[str] = []
|
|
166
|
+
blank_run = 0
|
|
167
|
+
for line in out:
|
|
168
|
+
if line.strip() == "":
|
|
169
|
+
blank_run += 1
|
|
170
|
+
if blank_run <= 2:
|
|
171
|
+
collapsed.append(line)
|
|
172
|
+
else:
|
|
173
|
+
blank_run = 0
|
|
174
|
+
collapsed.append(line)
|
|
175
|
+
|
|
176
|
+
return "\n".join(collapsed).rstrip() + "\n"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Task Management Script
|
|
4
|
+
Task Management Script.
|
|
5
5
|
|
|
6
6
|
Usage:
|
|
7
7
|
python3 task.py create "<title>" [--slug <name>] [--assignee <dev>] [--priority P0|P1|P2|P3] [--parent <dir>] [--package <pkg>]
|
|
@@ -14,7 +14,6 @@ Usage:
|
|
|
14
14
|
python3 task.py set-branch <dir> <branch> # Set git branch
|
|
15
15
|
python3 task.py set-base-branch <dir> <branch> # Set PR target branch
|
|
16
16
|
python3 task.py set-scope <dir> <scope> # Set scope for PR title
|
|
17
|
-
python3 task.py create-pr [dir] [--dry-run] # Create PR from task
|
|
18
17
|
python3 task.py archive <task-name> # Archive completed task
|
|
19
18
|
python3 task.py list # List active tasks
|
|
20
19
|
python3 task.py list-archive [month] # List archived tasks
|
|
@@ -236,33 +235,13 @@ def cmd_list_archive(args: argparse.Namespace) -> int:
|
|
|
236
235
|
return 0
|
|
237
236
|
|
|
238
237
|
|
|
239
|
-
# =============================================================================
|
|
240
|
-
# Command: create-pr (delegates to multi-agent script)
|
|
241
|
-
# =============================================================================
|
|
242
|
-
|
|
243
|
-
def cmd_create_pr(args: argparse.Namespace) -> int:
|
|
244
|
-
"""Create PR from task - delegates to multi_agent/create_pr.py."""
|
|
245
|
-
import subprocess
|
|
246
|
-
script_dir = Path(__file__).parent
|
|
247
|
-
create_pr_script = script_dir / "multi_agent" / "create_pr.py"
|
|
248
|
-
|
|
249
|
-
cmd = [sys.executable, str(create_pr_script)]
|
|
250
|
-
if args.dir:
|
|
251
|
-
cmd.append(args.dir)
|
|
252
|
-
if args.dry_run:
|
|
253
|
-
cmd.append("--dry-run")
|
|
254
|
-
|
|
255
|
-
result = subprocess.run(cmd)
|
|
256
|
-
return result.returncode
|
|
257
|
-
|
|
258
|
-
|
|
259
238
|
# =============================================================================
|
|
260
239
|
# Help
|
|
261
240
|
# =============================================================================
|
|
262
241
|
|
|
263
242
|
def show_usage() -> None:
|
|
264
243
|
"""Show usage help."""
|
|
265
|
-
print("""Task Management Script
|
|
244
|
+
print("""Task Management Script
|
|
266
245
|
|
|
267
246
|
Usage:
|
|
268
247
|
python3 task.py create <title> Create new task directory
|
|
@@ -275,9 +254,9 @@ Usage:
|
|
|
275
254
|
python3 task.py list-context <dir> List jsonl entries
|
|
276
255
|
python3 task.py start <dir> Set as current task
|
|
277
256
|
python3 task.py finish Clear current task
|
|
278
|
-
python3 task.py set-branch <dir> <branch> Set git branch
|
|
257
|
+
python3 task.py set-branch <dir> <branch> Set git branch
|
|
258
|
+
python3 task.py set-base-branch <dir> <branch> Set PR target branch
|
|
279
259
|
python3 task.py set-scope <dir> <scope> Set scope for PR title
|
|
280
|
-
python3 task.py create-pr [dir] [--dry-run] Create PR from task
|
|
281
260
|
python3 task.py archive <task-name> Archive completed task
|
|
282
261
|
python3 task.py add-subtask <parent> <child> Link child task to parent
|
|
283
262
|
python3 task.py remove-subtask <parent> <child> Unlink child from parent
|
|
@@ -303,8 +282,6 @@ Examples:
|
|
|
303
282
|
python3 task.py add-context <dir> implement .trellis/spec/cli/backend/auth.md "Auth guidelines"
|
|
304
283
|
python3 task.py set-branch <dir> task/add-login
|
|
305
284
|
python3 task.py start .trellis/tasks/01-21-add-login
|
|
306
|
-
python3 task.py create-pr # Uses current task
|
|
307
|
-
python3 task.py create-pr <dir> --dry-run # Preview without changes
|
|
308
285
|
python3 task.py finish
|
|
309
286
|
python3 task.py archive add-login
|
|
310
287
|
python3 task.py add-subtask parent-task child-task # Link existing tasks
|
|
@@ -322,7 +299,7 @@ Examples:
|
|
|
322
299
|
def main() -> int:
|
|
323
300
|
"""CLI entry point."""
|
|
324
301
|
parser = argparse.ArgumentParser(
|
|
325
|
-
description="Task Management Script
|
|
302
|
+
description="Task Management Script",
|
|
326
303
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
327
304
|
)
|
|
328
305
|
subparsers = parser.add_subparsers(dest="command", help="Commands")
|
|
@@ -342,11 +319,18 @@ def main() -> int:
|
|
|
342
319
|
p_init.add_argument("dir", help="Task directory")
|
|
343
320
|
p_init.add_argument("type", help="Dev type: backend|frontend|fullstack|test|docs")
|
|
344
321
|
p_init.add_argument("--package", help="Package name for monorepo projects")
|
|
322
|
+
p_init.add_argument(
|
|
323
|
+
"--platform",
|
|
324
|
+
help="Explicit platform (claude|codex|kiro|cursor|...). "
|
|
325
|
+
"Overrides auto-detection. Skills/commands pass this via "
|
|
326
|
+
"{{CLI_FLAG}} substitution so jsonl paths match the invoking "
|
|
327
|
+
"platform instead of filesystem guesswork.",
|
|
328
|
+
)
|
|
345
329
|
|
|
346
330
|
# add-context
|
|
347
331
|
p_add = subparsers.add_parser("add-context", help="Add context entry")
|
|
348
332
|
p_add.add_argument("dir", help="Task directory")
|
|
349
|
-
p_add.add_argument("file", help="JSONL file (implement|check
|
|
333
|
+
p_add.add_argument("file", help="JSONL file (implement|check)")
|
|
350
334
|
p_add.add_argument("path", help="File path to add")
|
|
351
335
|
p_add.add_argument("reason", nargs="?", help="Reason for adding")
|
|
352
336
|
|
|
@@ -380,11 +364,6 @@ def main() -> int:
|
|
|
380
364
|
p_scope.add_argument("dir", help="Task directory")
|
|
381
365
|
p_scope.add_argument("scope", help="Scope name")
|
|
382
366
|
|
|
383
|
-
# create-pr
|
|
384
|
-
p_pr = subparsers.add_parser("create-pr", help="Create PR")
|
|
385
|
-
p_pr.add_argument("dir", nargs="?", help="Task directory")
|
|
386
|
-
p_pr.add_argument("--dry-run", action="store_true", help="Dry run mode")
|
|
387
|
-
|
|
388
367
|
# archive
|
|
389
368
|
p_archive = subparsers.add_parser("archive", help="Archive task")
|
|
390
369
|
p_archive.add_argument("name", help="Task name")
|
|
@@ -426,7 +405,6 @@ def main() -> int:
|
|
|
426
405
|
"set-branch": cmd_set_branch,
|
|
427
406
|
"set-base-branch": cmd_set_base_branch,
|
|
428
407
|
"set-scope": cmd_set_scope,
|
|
429
|
-
"create-pr": cmd_create_pr,
|
|
430
408
|
"archive": cmd_archive,
|
|
431
409
|
"add-subtask": cmd_add_subtask,
|
|
432
410
|
"remove-subtask": cmd_remove_subtask,
|