@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
|
@@ -9,12 +9,10 @@
|
|
|
9
9
|
* ├── scripts/
|
|
10
10
|
* │ ├── __init__.py
|
|
11
11
|
* │ ├── common/ # Shared utilities (Python)
|
|
12
|
-
* │ ├── multi_agent/ # Multi-agent pipeline scripts (Python)
|
|
13
12
|
* │ └── *.py # Main scripts (Python)
|
|
14
13
|
* ├── scripts-shell-archive/ # Archived shell scripts (for reference)
|
|
15
14
|
* ├── workflow.md # Workflow guide
|
|
16
15
|
* ├── config.yaml # Trellis configuration
|
|
17
|
-
* ├── worktree.yaml # Worktree configuration
|
|
18
16
|
* └── gitignore.txt # .gitignore content
|
|
19
17
|
*/
|
|
20
18
|
export declare const scriptsInit: string;
|
|
@@ -22,11 +20,8 @@ export declare const commonInit: string;
|
|
|
22
20
|
export declare const commonPaths: string;
|
|
23
21
|
export declare const commonDeveloper: string;
|
|
24
22
|
export declare const commonGitContext: string;
|
|
25
|
-
export declare const commonWorktree: string;
|
|
26
23
|
export declare const commonTaskQueue: string;
|
|
27
24
|
export declare const commonTaskUtils: string;
|
|
28
|
-
export declare const commonPhase: string;
|
|
29
|
-
export declare const commonRegistry: string;
|
|
30
25
|
export declare const commonCliAdapter: string;
|
|
31
26
|
export declare const commonConfig: string;
|
|
32
27
|
export declare const commonIo: string;
|
|
@@ -38,23 +33,14 @@ export declare const commonTaskContext: string;
|
|
|
38
33
|
export declare const commonTaskStore: string;
|
|
39
34
|
export declare const commonSessionContext: string;
|
|
40
35
|
export declare const commonPackagesContext: string;
|
|
41
|
-
export declare const
|
|
42
|
-
export declare const multiAgentStart: string;
|
|
43
|
-
export declare const multiAgentCleanup: string;
|
|
44
|
-
export declare const multiAgentStatus: string;
|
|
45
|
-
export declare const multiAgentCreatePr: string;
|
|
46
|
-
export declare const multiAgentPlan: string;
|
|
47
|
-
export declare const multiAgentStatusDisplay: string;
|
|
48
|
-
export declare const multiAgentStatusMonitor: string;
|
|
36
|
+
export declare const commonWorkflowPhase: string;
|
|
49
37
|
export declare const getDeveloperScript: string;
|
|
50
38
|
export declare const initDeveloperScript: string;
|
|
51
39
|
export declare const taskScript: string;
|
|
52
40
|
export declare const getContextScript: string;
|
|
53
41
|
export declare const addSessionScript: string;
|
|
54
|
-
export declare const createBootstrapScript: string;
|
|
55
42
|
export declare const workflowMdTemplate: string;
|
|
56
43
|
export declare const configYamlTemplate: string;
|
|
57
|
-
export declare const worktreeYamlTemplate: string;
|
|
58
44
|
export declare const gitignoreTemplate: string;
|
|
59
45
|
/**
|
|
60
46
|
* Get all script templates as a map of relative path to content
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,eAAO,MAAM,WAAW,QAAsC,CAAC;AAG/D,eAAO,MAAM,UAAU,QAA6C,CAAC;AACrE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,eAAe,QAA8C,CAAC;AAC3E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,YAAY,QAA2C,CAAC;AACrE,eAAO,MAAM,QAAQ,QAAuC,CAAC;AAC7D,eAAO,MAAM,SAAS,QAAwC,CAAC;AAC/D,eAAO,MAAM,SAAS,QAAwC,CAAC;AAC/D,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,iBAAiB,QAAiD,CAAC;AAChF,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,oBAAoB,QAEhC,CAAC;AACF,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AACF,eAAO,MAAM,mBAAmB,QAE/B,CAAC;AAGF,eAAO,MAAM,kBAAkB,QAA2C,CAAC;AAC3E,eAAO,MAAM,mBAAmB,QAA4C,CAAC;AAC7E,eAAO,MAAM,UAAU,QAAkC,CAAC;AAC1D,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AACvE,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AAGvE,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAE/D;;GAEG;AACH,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkCnD"}
|
|
@@ -9,12 +9,10 @@
|
|
|
9
9
|
* ├── scripts/
|
|
10
10
|
* │ ├── __init__.py
|
|
11
11
|
* │ ├── common/ # Shared utilities (Python)
|
|
12
|
-
* │ ├── multi_agent/ # Multi-agent pipeline scripts (Python)
|
|
13
12
|
* │ └── *.py # Main scripts (Python)
|
|
14
13
|
* ├── scripts-shell-archive/ # Archived shell scripts (for reference)
|
|
15
14
|
* ├── workflow.md # Workflow guide
|
|
16
15
|
* ├── config.yaml # Trellis configuration
|
|
17
|
-
* ├── worktree.yaml # Worktree configuration
|
|
18
16
|
* └── gitignore.txt # .gitignore content
|
|
19
17
|
*/
|
|
20
18
|
import { readFileSync } from "node:fs";
|
|
@@ -32,11 +30,8 @@ export const commonInit = readTemplate("scripts/common/__init__.py");
|
|
|
32
30
|
export const commonPaths = readTemplate("scripts/common/paths.py");
|
|
33
31
|
export const commonDeveloper = readTemplate("scripts/common/developer.py");
|
|
34
32
|
export const commonGitContext = readTemplate("scripts/common/git_context.py");
|
|
35
|
-
export const commonWorktree = readTemplate("scripts/common/worktree.py");
|
|
36
33
|
export const commonTaskQueue = readTemplate("scripts/common/task_queue.py");
|
|
37
34
|
export const commonTaskUtils = readTemplate("scripts/common/task_utils.py");
|
|
38
|
-
export const commonPhase = readTemplate("scripts/common/phase.py");
|
|
39
|
-
export const commonRegistry = readTemplate("scripts/common/registry.py");
|
|
40
35
|
export const commonCliAdapter = readTemplate("scripts/common/cli_adapter.py");
|
|
41
36
|
export const commonConfig = readTemplate("scripts/common/config.py");
|
|
42
37
|
export const commonIo = readTemplate("scripts/common/io.py");
|
|
@@ -48,26 +43,16 @@ export const commonTaskContext = readTemplate("scripts/common/task_context.py");
|
|
|
48
43
|
export const commonTaskStore = readTemplate("scripts/common/task_store.py");
|
|
49
44
|
export const commonSessionContext = readTemplate("scripts/common/session_context.py");
|
|
50
45
|
export const commonPackagesContext = readTemplate("scripts/common/packages_context.py");
|
|
51
|
-
|
|
52
|
-
export const multiAgentInit = readTemplate("scripts/multi_agent/__init__.py");
|
|
53
|
-
export const multiAgentStart = readTemplate("scripts/multi_agent/start.py");
|
|
54
|
-
export const multiAgentCleanup = readTemplate("scripts/multi_agent/cleanup.py");
|
|
55
|
-
export const multiAgentStatus = readTemplate("scripts/multi_agent/status.py");
|
|
56
|
-
export const multiAgentCreatePr = readTemplate("scripts/multi_agent/create_pr.py");
|
|
57
|
-
export const multiAgentPlan = readTemplate("scripts/multi_agent/plan.py");
|
|
58
|
-
export const multiAgentStatusDisplay = readTemplate("scripts/multi_agent/status_display.py");
|
|
59
|
-
export const multiAgentStatusMonitor = readTemplate("scripts/multi_agent/status_monitor.py");
|
|
46
|
+
export const commonWorkflowPhase = readTemplate("scripts/common/workflow_phase.py");
|
|
60
47
|
// Python scripts - main
|
|
61
48
|
export const getDeveloperScript = readTemplate("scripts/get_developer.py");
|
|
62
49
|
export const initDeveloperScript = readTemplate("scripts/init_developer.py");
|
|
63
50
|
export const taskScript = readTemplate("scripts/task.py");
|
|
64
51
|
export const getContextScript = readTemplate("scripts/get_context.py");
|
|
65
52
|
export const addSessionScript = readTemplate("scripts/add_session.py");
|
|
66
|
-
export const createBootstrapScript = readTemplate("scripts/create_bootstrap.py");
|
|
67
53
|
// Configuration files
|
|
68
54
|
export const workflowMdTemplate = readTemplate("workflow.md");
|
|
69
55
|
export const configYamlTemplate = readTemplate("config.yaml");
|
|
70
|
-
export const worktreeYamlTemplate = readTemplate("worktree.yaml");
|
|
71
56
|
export const gitignoreTemplate = readTemplate("gitignore.txt");
|
|
72
57
|
/**
|
|
73
58
|
* Get all script templates as a map of relative path to content
|
|
@@ -81,11 +66,8 @@ export function getAllScripts() {
|
|
|
81
66
|
scripts.set("common/paths.py", commonPaths);
|
|
82
67
|
scripts.set("common/developer.py", commonDeveloper);
|
|
83
68
|
scripts.set("common/git_context.py", commonGitContext);
|
|
84
|
-
scripts.set("common/worktree.py", commonWorktree);
|
|
85
69
|
scripts.set("common/task_queue.py", commonTaskQueue);
|
|
86
70
|
scripts.set("common/task_utils.py", commonTaskUtils);
|
|
87
|
-
scripts.set("common/phase.py", commonPhase);
|
|
88
|
-
scripts.set("common/registry.py", commonRegistry);
|
|
89
71
|
scripts.set("common/cli_adapter.py", commonCliAdapter);
|
|
90
72
|
scripts.set("common/config.py", commonConfig);
|
|
91
73
|
scripts.set("common/io.py", commonIo);
|
|
@@ -97,22 +79,13 @@ export function getAllScripts() {
|
|
|
97
79
|
scripts.set("common/task_store.py", commonTaskStore);
|
|
98
80
|
scripts.set("common/session_context.py", commonSessionContext);
|
|
99
81
|
scripts.set("common/packages_context.py", commonPackagesContext);
|
|
100
|
-
|
|
101
|
-
scripts.set("multi_agent/__init__.py", multiAgentInit);
|
|
102
|
-
scripts.set("multi_agent/start.py", multiAgentStart);
|
|
103
|
-
scripts.set("multi_agent/cleanup.py", multiAgentCleanup);
|
|
104
|
-
scripts.set("multi_agent/status.py", multiAgentStatus);
|
|
105
|
-
scripts.set("multi_agent/create_pr.py", multiAgentCreatePr);
|
|
106
|
-
scripts.set("multi_agent/plan.py", multiAgentPlan);
|
|
107
|
-
scripts.set("multi_agent/status_display.py", multiAgentStatusDisplay);
|
|
108
|
-
scripts.set("multi_agent/status_monitor.py", multiAgentStatusMonitor);
|
|
82
|
+
scripts.set("common/workflow_phase.py", commonWorkflowPhase);
|
|
109
83
|
// Main
|
|
110
84
|
scripts.set("get_developer.py", getDeveloperScript);
|
|
111
85
|
scripts.set("init_developer.py", initDeveloperScript);
|
|
112
86
|
scripts.set("task.py", taskScript);
|
|
113
87
|
scripts.set("get_context.py", getContextScript);
|
|
114
88
|
scripts.set("add_session.py", addSessionScript);
|
|
115
|
-
scripts.set("create_bootstrap.py", createBootstrapScript);
|
|
116
89
|
return scripts;
|
|
117
90
|
}
|
|
118
91
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,8 +222,8 @@ class CLIAdapter:
|
|
|
222
222
|
|
|
223
223
|
Note:
|
|
224
224
|
Cursor: .cursor/commands/trellis-<name>.md
|
|
225
|
-
Codex: .agents/skills
|
|
226
|
-
Kiro: .kiro/skills
|
|
225
|
+
Codex: .agents/skills/trellis-<name>/SKILL.md
|
|
226
|
+
Kiro: .kiro/skills/trellis-<name>/SKILL.md
|
|
227
227
|
Gemini: .gemini/commands/trellis/<name>.toml
|
|
228
228
|
Antigravity: .agent/workflows/<name>.md
|
|
229
229
|
Windsurf: .windsurf/workflows/trellis-<name>.md
|
|
@@ -232,9 +232,11 @@ class CLIAdapter:
|
|
|
232
232
|
if self.platform == "cursor":
|
|
233
233
|
return f".cursor/commands/trellis-{name}.md"
|
|
234
234
|
elif self.platform == "codex":
|
|
235
|
-
|
|
235
|
+
# 0.5.0-beta.0 renamed all skill dirs to add the `trellis-` prefix
|
|
236
|
+
# (see that release's manifest for the 60+ rename entries).
|
|
237
|
+
return f".agents/skills/trellis-{name}/SKILL.md"
|
|
236
238
|
elif self.platform == "kiro":
|
|
237
|
-
return f".kiro/skills/{name}/SKILL.md"
|
|
239
|
+
return f".kiro/skills/trellis-{name}/SKILL.md"
|
|
238
240
|
elif self.platform == "gemini":
|
|
239
241
|
return f".gemini/commands/trellis/{name}.toml"
|
|
240
242
|
elif self.platform == "antigravity":
|
|
@@ -363,7 +365,7 @@ class CLIAdapter:
|
|
|
363
365
|
)
|
|
364
366
|
elif self.platform == "droid":
|
|
365
367
|
raise ValueError(
|
|
366
|
-
"Factory Droid CLI agent run is not yet
|
|
368
|
+
"Factory Droid CLI agent run is not yet supported."
|
|
367
369
|
)
|
|
368
370
|
|
|
369
371
|
else: # claude
|
|
@@ -427,7 +429,7 @@ class CLIAdapter:
|
|
|
427
429
|
)
|
|
428
430
|
elif self.platform == "droid":
|
|
429
431
|
raise ValueError(
|
|
430
|
-
"Factory Droid CLI resume is not yet
|
|
432
|
+
"Factory Droid CLI resume is not yet supported."
|
|
431
433
|
)
|
|
432
434
|
else:
|
|
433
435
|
return ["claude", "--resume", session_id]
|
|
@@ -601,7 +603,6 @@ _ALL_PLATFORM_CONFIG_DIRS = (
|
|
|
601
603
|
".cursor",
|
|
602
604
|
".iflow",
|
|
603
605
|
".opencode",
|
|
604
|
-
".agents",
|
|
605
606
|
".codex",
|
|
606
607
|
".kilocode",
|
|
607
608
|
".kiro",
|
|
@@ -613,7 +614,11 @@ _ALL_PLATFORM_CONFIG_DIRS = (
|
|
|
613
614
|
".github/copilot",
|
|
614
615
|
".factory",
|
|
615
616
|
)
|
|
616
|
-
"""
|
|
617
|
+
"""Platform-specific config directory names used by detect_platform exclusion
|
|
618
|
+
checks. `.agents/skills/` is NOT listed here: it is a shared cross-platform
|
|
619
|
+
layer (written by Codex, also consumed by Amp/Cline/Warp/etc. via the
|
|
620
|
+
agentskills.io standard), not a single-platform signal. Its presence must not
|
|
621
|
+
block detection of Kiro, Antigravity, Windsurf, or other platforms."""
|
|
617
622
|
|
|
618
623
|
|
|
619
624
|
def _has_other_platform_dir(project_root: Path, exclude: set[str]) -> bool:
|
|
@@ -737,6 +742,24 @@ def detect_platform(project_root: Path) -> Platform:
|
|
|
737
742
|
if (project_root / ".factory").is_dir():
|
|
738
743
|
return "droid"
|
|
739
744
|
|
|
745
|
+
# Fallback: checkout only has the Codex shared-skills layer
|
|
746
|
+
# (.agents/skills/trellis-* dirs) and no explicit platform config dir.
|
|
747
|
+
# Happens on fresh clones where .codex/ is gitignored/absent but the
|
|
748
|
+
# shared skills were committed to git. Must guard against the case
|
|
749
|
+
# where .claude/ or any other platform dir also exists — .agents/skills/
|
|
750
|
+
# can legitimately coexist with any platform as a shared consumption
|
|
751
|
+
# layer for Amp/Cline/Warp/etc.
|
|
752
|
+
agents_skills = project_root / ".agents" / "skills"
|
|
753
|
+
if agents_skills.is_dir() and not _has_other_platform_dir(
|
|
754
|
+
project_root, set()
|
|
755
|
+
):
|
|
756
|
+
try:
|
|
757
|
+
for entry in agents_skills.iterdir():
|
|
758
|
+
if entry.is_dir() and entry.name.startswith("trellis-"):
|
|
759
|
+
return "codex"
|
|
760
|
+
except OSError:
|
|
761
|
+
pass
|
|
762
|
+
|
|
740
763
|
return "claude"
|
|
741
764
|
|
|
742
765
|
|
|
@@ -11,7 +11,132 @@ import sys
|
|
|
11
11
|
from pathlib import Path
|
|
12
12
|
|
|
13
13
|
from .paths import DIR_WORKFLOW, get_repo_root
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# =============================================================================
|
|
17
|
+
# YAML Simple Parser (no dependencies)
|
|
18
|
+
# =============================================================================
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def _unquote(s: str) -> str:
|
|
22
|
+
"""Remove exactly one layer of matching surrounding quotes.
|
|
23
|
+
|
|
24
|
+
Unlike str.strip('"'), this only removes the outermost pair,
|
|
25
|
+
preserving any nested quotes inside the value.
|
|
26
|
+
|
|
27
|
+
Examples:
|
|
28
|
+
_unquote('"hello"') -> 'hello'
|
|
29
|
+
_unquote("'hello'") -> 'hello'
|
|
30
|
+
_unquote('"echo \\'hi\\'"') -> "echo 'hi'"
|
|
31
|
+
_unquote('hello') -> 'hello'
|
|
32
|
+
_unquote('"hello\\'') -> '"hello\\'' (mismatched, unchanged)
|
|
33
|
+
"""
|
|
34
|
+
if len(s) >= 2 and s[0] == s[-1] and s[0] in ('"', "'"):
|
|
35
|
+
return s[1:-1]
|
|
36
|
+
return s
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def parse_simple_yaml(content: str) -> dict:
|
|
40
|
+
"""Parse simple YAML with nested dict support (no dependencies).
|
|
41
|
+
|
|
42
|
+
Supports:
|
|
43
|
+
- key: value (string)
|
|
44
|
+
- key: (followed by list items)
|
|
45
|
+
- item1
|
|
46
|
+
- item2
|
|
47
|
+
- key: (followed by nested dict)
|
|
48
|
+
nested_key: value
|
|
49
|
+
nested_key2:
|
|
50
|
+
- item
|
|
51
|
+
|
|
52
|
+
Uses indentation to detect nesting (2+ spaces deeper = child).
|
|
53
|
+
|
|
54
|
+
Args:
|
|
55
|
+
content: YAML content string.
|
|
56
|
+
|
|
57
|
+
Returns:
|
|
58
|
+
Parsed dict (values can be str, list[str], or dict).
|
|
59
|
+
"""
|
|
60
|
+
lines = content.splitlines()
|
|
61
|
+
result: dict = {}
|
|
62
|
+
_parse_yaml_block(lines, 0, 0, result)
|
|
63
|
+
return result
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def _parse_yaml_block(
|
|
67
|
+
lines: list[str], start: int, min_indent: int, target: dict
|
|
68
|
+
) -> int:
|
|
69
|
+
"""Parse a YAML block into target dict, returning next line index."""
|
|
70
|
+
i = start
|
|
71
|
+
current_list: list | None = None
|
|
72
|
+
|
|
73
|
+
while i < len(lines):
|
|
74
|
+
line = lines[i]
|
|
75
|
+
stripped = line.strip()
|
|
76
|
+
|
|
77
|
+
# Skip empty lines and comments
|
|
78
|
+
if not stripped or stripped.startswith("#"):
|
|
79
|
+
i += 1
|
|
80
|
+
continue
|
|
81
|
+
|
|
82
|
+
# Calculate indentation
|
|
83
|
+
indent = len(line) - len(line.lstrip())
|
|
84
|
+
|
|
85
|
+
# If dedented past our block, we're done
|
|
86
|
+
if indent < min_indent:
|
|
87
|
+
break
|
|
88
|
+
|
|
89
|
+
if stripped.startswith("- "):
|
|
90
|
+
if current_list is not None:
|
|
91
|
+
current_list.append(_unquote(stripped[2:].strip()))
|
|
92
|
+
i += 1
|
|
93
|
+
elif ":" in stripped:
|
|
94
|
+
key, _, value = stripped.partition(":")
|
|
95
|
+
key = key.strip()
|
|
96
|
+
value = _unquote(value.strip())
|
|
97
|
+
current_list = None
|
|
98
|
+
|
|
99
|
+
if value:
|
|
100
|
+
# key: value
|
|
101
|
+
target[key] = value
|
|
102
|
+
i += 1
|
|
103
|
+
else:
|
|
104
|
+
# key: (no value) — peek ahead to determine list vs nested dict
|
|
105
|
+
next_i, next_line = _next_content_line(lines, i + 1)
|
|
106
|
+
if next_i >= len(lines):
|
|
107
|
+
target[key] = {}
|
|
108
|
+
i = next_i
|
|
109
|
+
elif next_line.strip().startswith("- "):
|
|
110
|
+
# It's a list
|
|
111
|
+
current_list = []
|
|
112
|
+
target[key] = current_list
|
|
113
|
+
i += 1
|
|
114
|
+
else:
|
|
115
|
+
next_indent = len(next_line) - len(next_line.lstrip())
|
|
116
|
+
if next_indent > indent:
|
|
117
|
+
# It's a nested dict
|
|
118
|
+
nested: dict = {}
|
|
119
|
+
target[key] = nested
|
|
120
|
+
i = _parse_yaml_block(lines, i + 1, next_indent, nested)
|
|
121
|
+
else:
|
|
122
|
+
# Empty value, same or less indent follows
|
|
123
|
+
target[key] = {}
|
|
124
|
+
i += 1
|
|
125
|
+
else:
|
|
126
|
+
i += 1
|
|
127
|
+
|
|
128
|
+
return i
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def _next_content_line(lines: list[str], start: int) -> tuple[int, str]:
|
|
132
|
+
"""Find the next non-empty, non-comment line."""
|
|
133
|
+
i = start
|
|
134
|
+
while i < len(lines):
|
|
135
|
+
stripped = lines[i].strip()
|
|
136
|
+
if stripped and not stripped.startswith("#"):
|
|
137
|
+
return i, lines[i]
|
|
138
|
+
i += 1
|
|
139
|
+
return i, ""
|
|
15
140
|
|
|
16
141
|
|
|
17
142
|
# Defaults
|
|
@@ -27,6 +27,11 @@ from .packages_context import (
|
|
|
27
27
|
get_context_packages_text,
|
|
28
28
|
get_context_packages_json,
|
|
29
29
|
)
|
|
30
|
+
from .workflow_phase import (
|
|
31
|
+
filter_platform,
|
|
32
|
+
get_phase_index,
|
|
33
|
+
get_step,
|
|
34
|
+
)
|
|
30
35
|
|
|
31
36
|
# Backward-compatible alias — external modules import this name
|
|
32
37
|
_run_git_command = run_git
|
|
@@ -50,9 +55,17 @@ def main() -> None:
|
|
|
50
55
|
parser.add_argument(
|
|
51
56
|
"--mode",
|
|
52
57
|
"-m",
|
|
53
|
-
choices=["default", "record", "packages"],
|
|
58
|
+
choices=["default", "record", "packages", "phase"],
|
|
54
59
|
default="default",
|
|
55
|
-
help="Output mode: default (full context), record (for record-session), packages (package info only)",
|
|
60
|
+
help="Output mode: default (full context), record (for record-session), packages (package info only), phase (workflow step extraction)",
|
|
61
|
+
)
|
|
62
|
+
parser.add_argument(
|
|
63
|
+
"--step",
|
|
64
|
+
help="Step id for --mode phase, e.g. 1.1, 2.2. Omit to get the Phase Index.",
|
|
65
|
+
)
|
|
66
|
+
parser.add_argument(
|
|
67
|
+
"--platform",
|
|
68
|
+
help="Platform name for --mode phase, e.g. cursor, claude-code. Filters platform-tagged blocks.",
|
|
56
69
|
)
|
|
57
70
|
|
|
58
71
|
args = parser.parse_args()
|
|
@@ -67,6 +80,16 @@ def main() -> None:
|
|
|
67
80
|
print(json.dumps(get_context_packages_json(), indent=2, ensure_ascii=False))
|
|
68
81
|
else:
|
|
69
82
|
print(get_context_packages_text())
|
|
83
|
+
elif args.mode == "phase":
|
|
84
|
+
content = get_step(args.step) if args.step else get_phase_index()
|
|
85
|
+
if not content.strip():
|
|
86
|
+
if args.step:
|
|
87
|
+
parser.exit(2, f"Step not found: {args.step}\n")
|
|
88
|
+
else:
|
|
89
|
+
parser.exit(2, "Phase Index section not found in workflow.md\n")
|
|
90
|
+
if args.platform:
|
|
91
|
+
content = filter_platform(content, args.platform)
|
|
92
|
+
print(content, end="")
|
|
70
93
|
else:
|
|
71
94
|
if args.json:
|
|
72
95
|
output_json()
|
|
@@ -16,7 +16,7 @@ import json
|
|
|
16
16
|
import sys
|
|
17
17
|
from pathlib import Path
|
|
18
18
|
|
|
19
|
-
from .cli_adapter import get_cli_adapter_auto
|
|
19
|
+
from .cli_adapter import get_cli_adapter, get_cli_adapter_auto
|
|
20
20
|
from .config import (
|
|
21
21
|
get_packages,
|
|
22
22
|
is_monorepo,
|
|
@@ -61,28 +61,29 @@ def get_implement_frontend(package: str | None = None) -> list[dict]:
|
|
|
61
61
|
]
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
def get_check_context(repo_root: Path) -> list[dict]:
|
|
65
|
-
"""Get check context entries.
|
|
66
|
-
|
|
64
|
+
def get_check_context(repo_root: Path, platform: str | None = None) -> list[dict]:
|
|
65
|
+
"""Get check context entries.
|
|
66
|
+
|
|
67
|
+
Args:
|
|
68
|
+
repo_root: Project root directory.
|
|
69
|
+
platform: Explicit platform override (e.g. "codex", "kiro"). When
|
|
70
|
+
provided, skip filesystem auto-detection and use this platform
|
|
71
|
+
directly. Caller (e.g. `cmd_init_context`) passes the
|
|
72
|
+
`--platform` CLI argument, which itself is substituted from
|
|
73
|
+
`{{CLI_FLAG}}` in skill/command templates rendered per platform.
|
|
74
|
+
Falls back to `get_cli_adapter_auto` when omitted (CLI-direct
|
|
75
|
+
users).
|
|
76
|
+
"""
|
|
77
|
+
if platform:
|
|
78
|
+
adapter = get_cli_adapter(platform)
|
|
79
|
+
else:
|
|
80
|
+
adapter = get_cli_adapter_auto(repo_root)
|
|
67
81
|
|
|
68
|
-
|
|
82
|
+
return [
|
|
69
83
|
{"file": adapter.get_trellis_command_path("finish-work"), "reason": "Finish work checklist"},
|
|
70
84
|
{"file": adapter.get_trellis_command_path("check"), "reason": "Code quality check spec"},
|
|
71
85
|
]
|
|
72
86
|
|
|
73
|
-
return entries
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
def get_debug_context(repo_root: Path) -> list[dict]:
|
|
77
|
-
"""Get debug context entries."""
|
|
78
|
-
adapter = get_cli_adapter_auto(repo_root)
|
|
79
|
-
|
|
80
|
-
entries: list[dict] = [
|
|
81
|
-
{"file": adapter.get_trellis_command_path("check"), "reason": "Code quality check spec"},
|
|
82
|
-
]
|
|
83
|
-
|
|
84
|
-
return entries
|
|
85
|
-
|
|
86
87
|
|
|
87
88
|
def _write_jsonl(path: Path, entries: list[dict]) -> None:
|
|
88
89
|
"""Write entries to JSONL file."""
|
|
@@ -169,19 +170,13 @@ def cmd_init_context(args: argparse.Namespace) -> int:
|
|
|
169
170
|
print(f" {colored('✓', Colors.GREEN)} {len(implement_entries)} entries")
|
|
170
171
|
|
|
171
172
|
# check.jsonl
|
|
173
|
+
platform: str | None = getattr(args, "platform", None)
|
|
172
174
|
print(colored("Creating check.jsonl...", Colors.CYAN))
|
|
173
|
-
check_entries = get_check_context(repo_root)
|
|
175
|
+
check_entries = get_check_context(repo_root, platform=platform)
|
|
174
176
|
check_file = target_dir / "check.jsonl"
|
|
175
177
|
_write_jsonl(check_file, check_entries)
|
|
176
178
|
print(f" {colored('✓', Colors.GREEN)} {len(check_entries)} entries")
|
|
177
179
|
|
|
178
|
-
# debug.jsonl
|
|
179
|
-
print(colored("Creating debug.jsonl...", Colors.CYAN))
|
|
180
|
-
debug_entries = get_debug_context(repo_root)
|
|
181
|
-
debug_file = target_dir / "debug.jsonl"
|
|
182
|
-
_write_jsonl(debug_file, debug_entries)
|
|
183
|
-
print(f" {colored('✓', Colors.GREEN)} {len(debug_entries)} entries")
|
|
184
|
-
|
|
185
180
|
# Update task.json dev_type and package
|
|
186
181
|
task_json_path = target_dir / FILE_TASK_JSON
|
|
187
182
|
if task_json_path.is_file():
|
|
@@ -299,7 +294,7 @@ def cmd_validate(args: argparse.Namespace) -> int:
|
|
|
299
294
|
print()
|
|
300
295
|
|
|
301
296
|
total_errors = 0
|
|
302
|
-
for jsonl_name in ["implement.jsonl", "check.jsonl"
|
|
297
|
+
for jsonl_name in ["implement.jsonl", "check.jsonl"]:
|
|
303
298
|
jsonl_file = target_dir / jsonl_name
|
|
304
299
|
errors = _validate_jsonl(jsonl_file, repo_root)
|
|
305
300
|
total_errors += errors
|
|
@@ -377,7 +372,7 @@ def cmd_list_context(args: argparse.Namespace) -> int:
|
|
|
377
372
|
print(colored("=== Context Files ===", Colors.BLUE))
|
|
378
373
|
print()
|
|
379
374
|
|
|
380
|
-
for jsonl_name in ["implement.jsonl", "check.jsonl"
|
|
375
|
+
for jsonl_name in ["implement.jsonl", "check.jsonl"]:
|
|
381
376
|
jsonl_file = target_dir / jsonl_name
|
|
382
377
|
if not jsonl_file.is_file():
|
|
383
378
|
continue
|
|
@@ -161,15 +161,6 @@ def cmd_create(args: argparse.Namespace) -> int:
|
|
|
161
161
|
"branch": None,
|
|
162
162
|
"base_branch": current_branch,
|
|
163
163
|
"worktree_path": None,
|
|
164
|
-
"current_phase": 0,
|
|
165
|
-
"next_action": [
|
|
166
|
-
{"phase": 1, "action": "brainstorm"},
|
|
167
|
-
{"phase": 2, "action": "research"},
|
|
168
|
-
{"phase": 3, "action": "implement"},
|
|
169
|
-
{"phase": 4, "action": "check"},
|
|
170
|
-
{"phase": 5, "action": "update-spec"},
|
|
171
|
-
{"phase": 6, "action": "record-session"},
|
|
172
|
-
],
|
|
173
164
|
"commit": None,
|
|
174
165
|
"pr_url": None,
|
|
175
166
|
"subtasks": [],
|
|
@@ -464,9 +455,6 @@ def cmd_set_branch(args: argparse.Namespace) -> int:
|
|
|
464
455
|
write_json(task_json, data)
|
|
465
456
|
|
|
466
457
|
print(colored(f"✓ Branch set to: {branch}", Colors.GREEN))
|
|
467
|
-
print()
|
|
468
|
-
print(colored("Now you can start the multi-agent pipeline:", Colors.BLUE))
|
|
469
|
-
print(f" python3 ./.trellis/scripts/multi_agent/start.py {args.dir}")
|
|
470
458
|
return 0
|
|
471
459
|
|
|
472
460
|
|