bmad-method 6.0.0-alpha.6 → 6.0.0-alpha.8
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/.bmad/_cfg/agent-manifest.csv +11 -0
- package/{bmad → .bmad}/_cfg/files-manifest.csv +170 -157
- package/{bmad → .bmad}/_cfg/ides/claude-code.yaml +2 -2
- package/.bmad/_cfg/manifest.yaml +10 -0
- package/{bmad → .bmad}/_cfg/task-manifest.csv +1 -1
- package/{bmad → .bmad}/_cfg/workflow-manifest.csv +1 -1
- package/{bmad → .bmad}/bmb/agents/bmad-builder.md +12 -12
- package/.bmad/bmb/config.yaml +16 -0
- package/{bmad → .bmad}/bmb/workflows/audit-workflow/checklist.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/audit-workflow/instructions.md +5 -5
- package/{bmad → .bmad}/bmb/workflows/audit-workflow/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmb/workflows/convert-legacy/README.md +5 -5
- package/{bmad → .bmad}/bmb/workflows/convert-legacy/checklist.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/convert-legacy/instructions.md +17 -17
- package/{bmad → .bmad}/bmb/workflows/convert-legacy/workflow.yaml +6 -6
- package/{bmad → .bmad}/bmb/workflows/create-agent/README.md +5 -5
- package/{bmad → .bmad}/bmb/workflows/create-agent/agent-architecture.md +15 -15
- package/{bmad → .bmad}/bmb/workflows/create-agent/agent-command-patterns.md +28 -28
- package/{bmad → .bmad}/bmb/workflows/create-agent/agent-types.md +15 -15
- package/{bmad → .bmad}/bmb/workflows/create-agent/checklist.md +3 -3
- package/{bmad → .bmad}/bmb/workflows/create-agent/instructions.md +34 -18
- package/{bmad → .bmad}/bmb/workflows/create-agent/workflow.yaml +6 -6
- package/{bmad → .bmad}/bmb/workflows/create-module/README.md +1 -1
- package/{bmad → .bmad}/bmb/workflows/create-module/checklist.md +1 -1
- package/{bmad → .bmad}/bmb/workflows/create-module/installer-templates/install-config.yaml +1 -1
- package/{bmad → .bmad}/bmb/workflows/create-module/instructions.md +7 -7
- package/{bmad → .bmad}/bmb/workflows/create-module/module-structure.md +36 -2
- package/{bmad → .bmad}/bmb/workflows/create-module/workflow.yaml +9 -9
- package/{bmad → .bmad}/bmb/workflows/create-workflow/README.md +4 -4
- package/{bmad → .bmad}/bmb/workflows/create-workflow/checklist.md +1 -1
- package/{bmad → .bmad}/bmb/workflows/create-workflow/instructions.md +29 -29
- package/{bmad → .bmad}/bmb/workflows/create-workflow/workflow-creation-guide.md +36 -36
- package/{bmad → .bmad}/bmb/workflows/create-workflow/workflow-template/instructions.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/create-workflow/workflow-template/workflow.yaml +1 -1
- package/{bmad → .bmad}/bmb/workflows/create-workflow/workflow.yaml +5 -5
- package/{bmad → .bmad}/bmb/workflows/edit-agent/checklist.md +1 -1
- package/{bmad → .bmad}/bmb/workflows/edit-agent/instructions.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/edit-agent/workflow.yaml +8 -8
- package/{bmad → .bmad}/bmb/workflows/edit-module/README.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/edit-module/checklist.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/edit-module/instructions.md +4 -4
- package/{bmad → .bmad}/bmb/workflows/edit-module/workflow.yaml +10 -10
- package/{bmad → .bmad}/bmb/workflows/edit-workflow/instructions.md +4 -4
- package/{bmad → .bmad}/bmb/workflows/edit-workflow/workflow.yaml +5 -5
- package/{bmad → .bmad}/bmb/workflows/module-brief/README.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/module-brief/instructions.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/module-brief/workflow.yaml +4 -4
- package/{bmad → .bmad}/bmb/workflows/redoc/README.md +5 -5
- package/{bmad → .bmad}/bmb/workflows/redoc/instructions.md +1 -1
- package/{bmad → .bmad}/bmb/workflows/redoc/workflow.yaml +1 -1
- package/{bmad → .bmad}/bmm/agents/analyst.md +20 -12
- package/{bmad → .bmad}/bmm/agents/architect.md +19 -11
- package/{bmad → .bmad}/bmm/agents/dev.md +10 -10
- package/{bmad → .bmad}/bmm/agents/pm.md +23 -15
- package/{bmad → .bmad}/bmm/agents/sm.md +26 -18
- package/{bmad → .bmad}/bmm/agents/tea.md +25 -17
- package/{bmad → .bmad}/bmm/agents/tech-writer.md +16 -8
- package/{bmad → .bmad}/bmm/agents/ux-designer.md +18 -10
- package/{bmad → .bmad}/bmm/config.yaml +7 -7
- package/.bmad/bmm/docs/README.md +235 -0
- package/.bmad/bmm/docs/agents-guide.md +1056 -0
- package/.bmad/bmm/docs/brownfield-guide.md +754 -0
- package/.bmad/bmm/docs/enterprise-agentic-development.md +680 -0
- package/.bmad/bmm/docs/faq.md +587 -0
- package/.bmad/bmm/docs/glossary.md +320 -0
- package/.bmad/bmm/docs/party-mode.md +224 -0
- package/.bmad/bmm/docs/quick-spec-flow.md +652 -0
- package/.bmad/bmm/docs/quick-start.md +366 -0
- package/.bmad/bmm/docs/scale-adaptive-system.md +599 -0
- package/.bmad/bmm/docs/test-architecture.md +394 -0
- package/.bmad/bmm/docs/workflow-architecture-reference.md +371 -0
- package/.bmad/bmm/docs/workflow-document-project-reference.md +487 -0
- package/.bmad/bmm/docs/workflows-analysis.md +370 -0
- package/.bmad/bmm/docs/workflows-implementation.md +284 -0
- package/.bmad/bmm/docs/workflows-planning.md +601 -0
- package/.bmad/bmm/docs/workflows-solutioning.md +501 -0
- package/{bmad → .bmad}/bmm/tasks/daily-standup.xml +2 -2
- package/.bmad/bmm/teams/default-party.csv +19 -0
- package/{bmad → .bmad}/bmm/teams/team-fullstack.yaml +1 -0
- package/{bmad → .bmad}/bmm/workflows/1-analysis/brainstorm-project/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +3 -3
- package/{bmad → .bmad}/bmm/workflows/1-analysis/domain-research/instructions.md +1 -1
- package/.bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +40 -0
- package/{bmad → .bmad}/bmm/workflows/1-analysis/product-brief/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/1-analysis/product-brief/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/1-analysis/research/instructions-market.md +6 -6
- package/{bmad → .bmad}/bmm/workflows/1-analysis/research/instructions-router.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/1-analysis/research/instructions-technical.md +4 -4
- package/{bmad → .bmad}/bmm/workflows/1-analysis/research/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +3 -7
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +3 -3
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/instructions.md +6 -6
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +5 -5
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +6 -6
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/instructions.md +6 -6
- package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/workflow.yaml +3 -2
- package/{bmad → .bmad}/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +4 -4
- package/{bmad → .bmad}/bmm/workflows/4-implementation/code-review/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/code-review/workflow.yaml +4 -13
- package/{bmad → .bmad}/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/4-implementation/correct-course/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/correct-course/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/create-story/instructions.md +3 -3
- package/{bmad → .bmad}/bmm/workflows/4-implementation/create-story/workflow.yaml +3 -3
- package/{bmad → .bmad}/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +3 -3
- package/{bmad → .bmad}/bmm/workflows/4-implementation/dev-story/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/dev-story/workflow.yaml +3 -3
- package/{bmad → .bmad}/bmm/workflows/4-implementation/epic-tech-context/checklist.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/4-implementation/epic-tech-context/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/retrospective/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/retrospective/workflow.yaml +4 -4
- package/{bmad → .bmad}/bmm/workflows/4-implementation/sprint-planning/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +3 -3
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-context/checklist.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-context/context-template.xml +1 -1
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-context/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-context/workflow.yaml +4 -4
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-done/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-done/workflow.yaml +3 -3
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-ready/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-ready/workflow.yaml +3 -3
- package/{bmad → .bmad}/bmm/workflows/document-project/instructions.md +5 -5
- package/{bmad → .bmad}/bmm/workflows/document-project/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
- package/{bmad → .bmad}/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
- package/{bmad → .bmad}/bmm/workflows/testarch/atdd/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/atdd/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/automate/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/automate/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/ci/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/ci/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/framework/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/framework/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/test-design/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/test-design/test-design-template.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/testarch/test-design/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/test-review/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/testarch/test-review/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/trace/instructions.md +9 -9
- package/{bmad → .bmad}/bmm/workflows/testarch/trace/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/workflow-status/init/instructions.md +74 -23
- package/{bmad → .bmad}/bmm/workflows/workflow-status/init/workflow.yaml +4 -4
- package/{bmad → .bmad}/bmm/workflows/workflow-status/instructions.md +5 -4
- package/{bmad → .bmad}/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +18 -11
- package/{bmad → .bmad}/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +18 -11
- package/.bmad/bmm/workflows/workflow-status/paths/game-design.yaml +52 -0
- package/{bmad → .bmad}/bmm/workflows/workflow-status/project-levels.yaml +1 -1
- package/{bmad → .bmad}/bmm/workflows/workflow-status/workflow.yaml +2 -2
- package/{bmad → .bmad}/core/agents/bmad-master.md +7 -7
- package/{bmad → .bmad}/core/agents/bmad-web-orchestrator.agent.xml +8 -17
- package/{bmad → .bmad}/core/config.yaml +4 -2
- package/{bmad → .bmad}/core/tasks/adv-elicit.xml +5 -3
- package/{bmad → .bmad}/core/tasks/index-docs.xml +1 -1
- package/{bmad → .bmad}/core/tasks/validate-workflow.xml +1 -1
- package/{bmad → .bmad}/core/tasks/workflow.xml +1 -1
- package/{bmad → .bmad}/core/tools/shard-doc.xml +1 -1
- package/{bmad → .bmad}/core/workflows/brainstorming/README.md +2 -2
- package/{bmad → .bmad}/core/workflows/brainstorming/instructions.md +3 -3
- package/{bmad → .bmad}/core/workflows/brainstorming/workflow.yaml +8 -8
- package/{bmad → .bmad}/core/workflows/party-mode/instructions.md +2 -7
- package/.bmad/core/workflows/party-mode/workflow.yaml +27 -0
- package/.claude/commands/bmad/bmb/agents/bmad-builder.md +12 -12
- package/.claude/commands/bmad/bmm/agents/analyst.md +20 -12
- package/.claude/commands/bmad/bmm/agents/architect.md +19 -11
- package/.claude/commands/bmad/bmm/agents/dev.md +10 -10
- package/.claude/commands/bmad/bmm/agents/pm.md +23 -15
- package/.claude/commands/bmad/bmm/agents/sm.md +26 -18
- package/.claude/commands/bmad/bmm/agents/tea.md +25 -17
- package/.claude/commands/bmad/bmm/agents/tech-writer.md +16 -8
- package/.claude/commands/bmad/bmm/agents/ux-designer.md +18 -10
- package/.claude/commands/bmad/bmm/workflows/domain-research.md +15 -0
- package/.claude/commands/bmad/core/agents/bmad-master.md +7 -7
- package/.claude/commands/bmad/core/tasks/adv-elicit.md +9 -0
- package/.claude/settings.local.json +6 -5
- package/.github/workflows/{lint.yaml → quality.yaml} +19 -2
- package/.husky/pre-commit +4 -0
- package/.vscode/settings.json +2 -1
- package/README.md +59 -1
- package/docs/installers-bundlers/installers-modules-platforms-reference.md +61 -0
- package/package.json +5 -3
- package/src/core/_module-installer/install-config.yaml +15 -9
- package/src/core/_module-installer/installer.js +0 -8
- package/src/core/agents/bmad-master.agent.yaml +5 -5
- package/src/core/agents/bmad-web-orchestrator.agent.xml +8 -17
- package/src/core/tasks/adv-elicit.xml +5 -3
- package/src/core/tasks/index-docs.xml +1 -1
- package/src/core/tasks/validate-workflow.xml +1 -1
- package/src/core/tasks/workflow.xml +1 -1
- package/src/core/tools/shard-doc.xml +1 -1
- package/src/core/workflows/brainstorming/README.md +2 -2
- package/src/core/workflows/brainstorming/instructions.md +3 -3
- package/src/core/workflows/brainstorming/workflow.yaml +8 -8
- package/src/core/workflows/party-mode/instructions.md +2 -7
- package/src/core/workflows/party-mode/workflow.yaml +10 -6
- package/src/modules/bmb/_module-installer/install-config.yaml +9 -4
- package/src/modules/bmb/agents/bmad-builder.agent.yaml +11 -10
- package/src/modules/bmb/workflows/audit-workflow/checklist.md +2 -2
- package/src/modules/bmb/workflows/audit-workflow/instructions.md +5 -5
- package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +2 -2
- package/src/modules/bmb/workflows/convert-legacy/README.md +5 -5
- package/src/modules/bmb/workflows/convert-legacy/checklist.md +2 -2
- package/src/modules/bmb/workflows/convert-legacy/instructions.md +17 -17
- package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +6 -6
- package/src/modules/bmb/workflows/create-agent/README.md +5 -5
- package/src/modules/bmb/workflows/create-agent/agent-architecture.md +15 -15
- package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +28 -28
- package/src/modules/bmb/workflows/create-agent/agent-types.md +15 -15
- package/src/modules/bmb/workflows/create-agent/checklist.md +3 -3
- package/src/modules/bmb/workflows/create-agent/instructions.md +34 -18
- package/src/modules/bmb/workflows/create-agent/workflow.yaml +12 -12
- package/src/modules/bmb/workflows/create-module/README.md +1 -1
- package/src/modules/bmb/workflows/create-module/checklist.md +1 -1
- package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +1 -1
- package/src/modules/bmb/workflows/create-module/instructions.md +7 -7
- package/src/modules/bmb/workflows/create-module/module-structure.md +36 -2
- package/src/modules/bmb/workflows/create-module/workflow.yaml +9 -9
- package/src/modules/bmb/workflows/create-workflow/README.md +4 -4
- package/src/modules/bmb/workflows/create-workflow/checklist.md +1 -1
- package/src/modules/bmb/workflows/create-workflow/instructions.md +29 -29
- package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +42 -42
- package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +2 -2
- package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +12 -12
- package/src/modules/bmb/workflows/create-workflow/workflow.yaml +5 -5
- package/src/modules/bmb/workflows/edit-agent/checklist.md +1 -1
- package/src/modules/bmb/workflows/edit-agent/instructions.md +2 -2
- package/src/modules/bmb/workflows/edit-agent/workflow.yaml +8 -8
- package/src/modules/bmb/workflows/edit-module/README.md +2 -2
- package/src/modules/bmb/workflows/edit-module/checklist.md +2 -2
- package/src/modules/bmb/workflows/edit-module/instructions.md +4 -4
- package/src/modules/bmb/workflows/edit-module/workflow.yaml +10 -10
- package/src/modules/bmb/workflows/edit-workflow/instructions.md +4 -4
- package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +5 -5
- package/src/modules/bmb/workflows/module-brief/README.md +2 -2
- package/src/modules/bmb/workflows/module-brief/instructions.md +2 -2
- package/src/modules/bmb/workflows/module-brief/workflow.yaml +4 -4
- package/src/modules/bmb/workflows/redoc/README.md +5 -5
- package/src/modules/bmb/workflows/redoc/instructions.md +1 -1
- package/src/modules/bmb/workflows/redoc/workflow.yaml +1 -1
- package/src/modules/bmgd/README.md +208 -0
- package/src/modules/bmgd/_module-installer/install-config.yaml +67 -0
- package/src/modules/bmgd/agents/game-architect.agent.yaml +33 -0
- package/src/modules/bmgd/agents/game-designer.agent.yaml +40 -0
- package/src/modules/bmgd/agents/game-dev.agent.yaml +40 -0
- package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +75 -0
- package/src/modules/bmgd/teams/default-party.csv +10 -0
- package/src/modules/{bmm → bmgd}/teams/team-gamedev.yaml +5 -1
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/instructions.md +1 -1
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/workflow.yaml +10 -10
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/instructions.md +1 -1
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/workflow.yaml +9 -9
- package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/instructions-gdd.md +8 -8
- package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +81 -0
- package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/instructions-narrative.md +6 -6
- package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/workflow.yaml +6 -6
- package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +347 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-template.md +103 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +244 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/decision-catalog.yaml +222 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +704 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/pattern-categories.csv +13 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +67 -0
- package/src/modules/bmgd/workflows/4-production/code-review/backlog_template.md +12 -0
- package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +22 -0
- package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +420 -0
- package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +67 -0
- package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +279 -0
- package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +201 -0
- package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +45 -0
- package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +240 -0
- package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +283 -0
- package/src/modules/bmgd/workflows/4-production/create-story/template.md +51 -0
- package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +76 -0
- package/src/modules/bmgd/workflows/4-production/dev-story/AUDIT-REPORT.md +367 -0
- package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +38 -0
- package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +262 -0
- package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +28 -0
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +17 -0
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +189 -0
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +76 -0
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +60 -0
- package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +1460 -0
- package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +73 -0
- package/src/modules/bmgd/workflows/4-production/sprint-planning/checklist.md +33 -0
- package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +238 -0
- package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +55 -0
- package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +49 -0
- package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +16 -0
- package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +34 -0
- package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +234 -0
- package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +59 -0
- package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +111 -0
- package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +27 -0
- package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +117 -0
- package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +27 -0
- package/src/modules/bmm/_module-installer/install-config.yaml +10 -24
- package/src/modules/bmm/_module-installer/installer.js +2 -2
- package/src/modules/bmm/agents/analyst.agent.yaml +20 -15
- package/src/modules/bmm/agents/architect.agent.yaml +17 -12
- package/src/modules/bmm/agents/dev.agent.yaml +9 -12
- package/src/modules/bmm/agents/pm.agent.yaml +24 -23
- package/src/modules/bmm/agents/sm.agent.yaml +24 -19
- package/src/modules/bmm/agents/tea.agent.yaml +23 -17
- package/src/modules/bmm/agents/tech-writer.agent.yaml +14 -10
- package/src/modules/bmm/agents/ux-designer.agent.yaml +16 -11
- package/src/modules/bmm/docs/README.md +8 -9
- package/src/modules/bmm/docs/agents-guide.md +4 -5
- package/src/modules/bmm/docs/brownfield-guide.md +9 -13
- package/src/modules/bmm/docs/enterprise-agentic-development.md +3 -3
- package/src/modules/bmm/docs/faq.md +5 -7
- package/src/modules/bmm/docs/glossary.md +0 -1
- package/src/modules/bmm/docs/party-mode.md +3 -3
- package/src/modules/bmm/docs/quick-spec-flow.md +4 -4
- package/src/modules/bmm/docs/quick-start.md +5 -5
- package/src/modules/bmm/docs/scale-adaptive-system.md +5 -5
- package/src/modules/bmm/docs/test-architecture.md +184 -119
- package/src/modules/bmm/docs/workflow-document-project-reference.md +1 -1
- package/src/modules/bmm/docs/workflows-analysis.md +203 -539
- package/src/modules/bmm/docs/workflows-planning.md +326 -850
- package/src/modules/bmm/docs/workflows-solutioning.md +250 -505
- package/src/modules/bmm/sub-modules/claude-code/README.md +1 -1
- package/src/modules/bmm/sub-modules/claude-code/injections.yaml +22 -22
- package/src/modules/bmm/tasks/daily-standup.xml +2 -2
- package/src/modules/bmm/teams/default-party.csv +19 -0
- package/src/modules/bmm/teams/team-fullstack.yaml +1 -0
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +8 -8
- package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +65 -32
- package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +12 -8
- package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +2 -2
- package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +6 -6
- package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +4 -4
- package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +14 -14
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1 -1
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +36 -7
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +3 -3
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +6 -6
- package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +6 -6
- package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +21 -13
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +1 -1
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +5 -5
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +6 -6
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +2 -2
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +15 -9
- package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +6 -6
- package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +49 -2
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +4 -4
- package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +38 -38
- package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +6 -23
- package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +2 -2
- package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +38 -40
- package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +6 -19
- package/src/modules/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +3 -3
- package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +2 -2
- package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +3 -3
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +26 -28
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +6 -18
- package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +11 -11
- package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +8 -11
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +6 -15
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +5 -4
- package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +1 -1
- package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +8 -9
- package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +6 -14
- package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +4 -4
- package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +4 -4
- package/src/modules/bmm/workflows/document-project/instructions.md +5 -5
- package/src/modules/bmm/workflows/document-project/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
- package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
- package/src/modules/bmm/workflows/testarch/atdd/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/automate/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/ci/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/framework/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
- package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/test-design/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +1 -1
- package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/test-review/instructions.md +1 -1
- package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/trace/instructions.md +9 -9
- package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/workflow-status/init/instructions.md +78 -26
- package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +5 -4
- package/src/modules/bmm/workflows/workflow-status/instructions.md +5 -4
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +18 -11
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +18 -11
- package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +42 -65
- package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
- package/src/modules/bmm/workflows/workflow-status/workflow.yaml +2 -2
- package/src/modules/cis/README.md +1 -1
- package/src/modules/cis/_module-installer/install-config.yaml +6 -4
- package/src/modules/cis/agents/README.md +1 -1
- package/src/modules/cis/agents/brainstorming-coach.agent.yaml +13 -8
- package/src/modules/cis/agents/creative-problem-solver.agent.yaml +13 -8
- package/src/modules/cis/agents/design-thinking-coach.agent.yaml +13 -8
- package/src/modules/cis/agents/innovation-strategist.agent.yaml +13 -8
- package/src/modules/cis/agents/storyteller.agent.yaml +13 -8
- package/src/modules/cis/teams/creative-squad.yaml +1 -0
- package/src/modules/cis/teams/default-party.csv +11 -0
- package/src/modules/cis/workflows/README.md +1 -1
- package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
- package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -7
- package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
- package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -7
- package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
- package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -7
- package/src/modules/cis/workflows/storytelling/instructions.md +2 -2
- package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -7
- package/src/utility/models/action-command-header.md +0 -0
- package/src/utility/models/agent-activation-ide.xml +3 -3
- package/src/utility/models/agent-activation-web.xml +4 -4
- package/src/utility/models/agent-command-header.md +1 -0
- package/src/utility/models/fragments/activation-steps.xml +3 -2
- package/src/utility/models/fragments/handler-validate-workflow.xml +1 -1
- package/src/utility/models/fragments/handler-workflow.xml +1 -1
- package/src/utility/models/fragments/web-bundle-activation-steps.xml +3 -3
- package/test/test-installation-components.js +214 -0
- package/tools/cli/bundlers/web-bundler.js +208 -20
- package/tools/cli/commands/install.js +1 -4
- package/tools/cli/installers/lib/core/config-collector.js +201 -28
- package/tools/cli/installers/lib/core/detector.js +62 -7
- package/tools/cli/installers/lib/core/installer.js +158 -23
- package/tools/cli/installers/lib/core/manifest-generator.js +26 -115
- package/tools/cli/installers/lib/ide/_base-ide.js +57 -3
- package/tools/cli/installers/lib/ide/auggie.js +81 -238
- package/tools/cli/installers/lib/ide/claude-code.js +47 -25
- package/tools/cli/installers/lib/ide/cline.js +15 -18
- package/tools/cli/installers/lib/ide/codex.js +17 -48
- package/tools/cli/installers/lib/ide/crush.js +14 -50
- package/tools/cli/installers/lib/ide/cursor.js +68 -8
- package/tools/cli/installers/lib/ide/gemini.js +87 -37
- package/tools/cli/installers/lib/ide/github-copilot.js +47 -35
- package/tools/cli/installers/lib/ide/iflow.js +13 -30
- package/tools/cli/installers/lib/ide/kilo.js +20 -16
- package/tools/cli/installers/lib/ide/manager.js +15 -0
- package/tools/cli/installers/lib/ide/opencode.js +16 -17
- package/tools/cli/installers/lib/ide/qwen.js +39 -11
- package/tools/cli/installers/lib/ide/roo.js +27 -62
- package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +90 -0
- package/tools/cli/installers/lib/ide/{task-tool-command-generator.js → shared/task-tool-command-generator.js} +1 -1
- package/tools/cli/installers/lib/ide/{workflow-command-generator.js → shared/workflow-command-generator.js} +11 -9
- package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
- package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
- package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
- package/tools/cli/installers/lib/ide/{workflow-command-template.md → templates/workflow-command-template.md} +3 -5
- package/tools/cli/installers/lib/ide/trae.js +20 -32
- package/tools/cli/installers/lib/ide/windsurf.js +18 -8
- package/tools/cli/installers/lib/modules/manager.js +207 -7
- package/tools/cli/lib/cli-utils.js +52 -50
- package/tools/cli/lib/ui.js +15 -8
- package/tools/cli/lib/yaml-xml-builder.js +9 -1
- package/tools/schema/agent.js +8 -3
- package/v6-open-items.md +3 -9
- package/web-bundles/bmgd/agents/game-architect.xml +664 -0
- package/web-bundles/bmgd/agents/game-designer.xml +5489 -0
- package/web-bundles/bmgd/agents/game-dev.xml +595 -0
- package/web-bundles/bmgd/agents/game-scrum-master.xml +699 -0
- package/web-bundles/bmgd/teams/team-gamedev.xml +6588 -0
- package/web-bundles/bmm/agents/analyst.xml +5263 -0
- package/web-bundles/bmm/agents/architect.xml +2378 -0
- package/web-bundles/bmm/agents/dev.xml +248 -0
- package/web-bundles/bmm/agents/pm.xml +4137 -0
- package/web-bundles/bmm/agents/sm.xml +708 -0
- package/web-bundles/bmm/agents/tea.xml +759 -0
- package/web-bundles/bmm/agents/tech-writer.xml +624 -0
- package/web-bundles/bmm/agents/ux-designer.xml +2492 -0
- package/web-bundles/bmm/teams/team-fullstack.xml +12369 -0
- package/web-bundles/cis/agents/brainstorming-coach.xml +1069 -0
- package/web-bundles/cis/agents/creative-problem-solver.xml +1060 -0
- package/web-bundles/cis/agents/design-thinking-coach.xml +955 -0
- package/web-bundles/cis/agents/innovation-strategist.xml +1108 -0
- package/web-bundles/cis/agents/storyteller.xml +598 -0
- package/web-bundles/cis/teams/creative-squad.xml +3449 -0
- package/.claude/agents/bmad-analysis/api-documenter.md +0 -102
- package/.claude/agents/bmad-analysis/codebase-analyzer.md +0 -82
- package/.claude/agents/bmad-analysis/data-analyst.md +0 -101
- package/.claude/agents/bmad-analysis/pattern-detector.md +0 -84
- package/.claude/agents/bmad-planning/dependency-mapper.md +0 -83
- package/.claude/agents/bmad-planning/epic-optimizer.md +0 -81
- package/.claude/agents/bmad-planning/requirements-analyst.md +0 -61
- package/.claude/agents/bmad-planning/technical-decisions-curator.md +0 -168
- package/.claude/agents/bmad-planning/trend-spotter.md +0 -115
- package/.claude/agents/bmad-planning/user-journey-mapper.md +0 -123
- package/.claude/agents/bmad-planning/user-researcher.md +0 -72
- package/.claude/agents/bmad-research/market-researcher.md +0 -51
- package/.claude/agents/bmad-research/tech-debt-auditor.md +0 -106
- package/.claude/agents/bmad-review/document-reviewer.md +0 -102
- package/.claude/agents/bmad-review/technical-evaluator.md +0 -68
- package/.claude/agents/bmad-review/test-coverage-analyzer.md +0 -108
- package/.claude/commands/bmad/bmb/workflows/README.md +0 -67
- package/.claude/commands/bmad/bmm/workflows/README.md +0 -132
- package/.claude/commands/bmad/bmm/workflows/narrative.md +0 -15
- package/.claude/commands/bmad/cis/agents/README.md +0 -104
- package/.claude/commands/bmad/cis/agents/brainstorming-coach.md +0 -62
- package/.claude/commands/bmad/cis/agents/creative-problem-solver.md +0 -62
- package/.claude/commands/bmad/cis/agents/design-thinking-coach.md +0 -62
- package/.claude/commands/bmad/cis/agents/innovation-strategist.md +0 -62
- package/.claude/commands/bmad/cis/agents/storyteller.md +0 -59
- package/.claude/commands/bmad/cis/workflows/README.md +0 -37
- package/.claude/commands/bmad/cis/workflows/design-thinking.md +0 -15
- package/.claude/commands/bmad/cis/workflows/innovation-strategy.md +0 -15
- package/.claude/commands/bmad/cis/workflows/problem-solving.md +0 -15
- package/.claude/commands/bmad/cis/workflows/storytelling.md +0 -15
- package/.claude/commands/bmad/core/workflows/README.md +0 -27
- package/bmad/_cfg/agent-manifest.csv +0 -11
- package/bmad/_cfg/manifest.yaml +0 -10
- package/bmad/bmb/config.yaml +0 -14
- package/bmad/bmm/teams/team-gamedev.yaml +0 -14
- package/bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -36
- package/bmad/bmm/workflows/2-plan-workflows/narrative/instructions-narrative.md +0 -608
- package/bmad/bmm/workflows/2-plan-workflows/narrative/workflow.yaml +0 -29
- package/bmad/bmm/workflows/workflow-status/paths/game-design.yaml +0 -75
- package/bmad/core/workflows/party-mode/workflow.yaml +0 -23
- package/bmd/README.md +0 -193
- package/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
- package/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
- package/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
- package/bmd/agents/cli-chief-sidecar/memories.md +0 -53
- package/bmd/agents/cli-chief.agent.yaml +0 -126
- package/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
- package/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
- package/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
- package/bmd/agents/doc-keeper.agent.yaml +0 -137
- package/bmd/agents/release-chief-sidecar/instructions.md +0 -164
- package/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
- package/bmd/agents/release-chief-sidecar/memories.md +0 -73
- package/bmd/agents/release-chief.agent.yaml +0 -127
- package/bmd/bmad-custom-module-installer-plan.md +0 -1176
- package/bmd/config.yaml +0 -12
- package/src/modules/bmm/agents/game-architect.agent.yaml +0 -35
- package/src/modules/bmm/agents/game-designer.agent.yaml +0 -47
- package/src/modules/bmm/agents/game-dev.agent.yaml +0 -35
- package/src/modules/bmm/docs/troubleshooting.md +0 -680
- package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +0 -81
- package/src/modules/bmm/workflows/2-plan-workflows/narrative/checklist.md +0 -139
- package/src/modules/bmm/workflows/2-plan-workflows/narrative/narrative-template.md +0 -195
- package/test/fixtures/agent-schema/invalid/persona/principles-as-string.agent.yaml +0 -23
- /package/{bmad → .bmad}/_cfg/agents/bmb-bmad-builder.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-analyst.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-architect.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-dev.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-pm.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-sm.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-tea.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-tech-writer.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-ux-designer.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/core-bmad-master.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/tool-manifest.csv +0 -0
- /package/{bmad → .bmad}/bmb/README.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/audit-workflow/template.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-agent/brainstorm-context.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-agent/communication-styles.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-module/brainstorm-context.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-module/installer-templates/installer.js +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-workflow/brainstorm-context.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-workflow/workflow-template/template.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/edit-agent/README.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/edit-workflow/README.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/edit-workflow/checklist.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/module-brief/checklist.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/module-brief/template.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/redoc/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/README.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/ci-burn-in.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/component-tdd.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/contract-testing.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/data-factories.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/email-auth.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/error-handling.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/feature-flags.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/fixture-architecture.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/network-first.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/nfr-criteria.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/playwright-config.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/probability-impact.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/risk-governance.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/selective-testing.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/selector-resilience.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/test-healing-patterns.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/test-levels-framework.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/test-priorities-matrix.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/test-quality.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/timing-debugging.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/visual-debugging.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/tea-index.csv +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/domain-research/template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/product-brief/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/product-brief/template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/checklist-technical.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/template-market.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/template-technical.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/prd-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/project-types.csv +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/solutioning-gate-check/template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/code-review/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/create-story/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/create-story/template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/dev-story/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/sprint-planning/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/documentation-requirements.csv +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/templates/deep-dive-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/templates/index-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/templates/project-overview-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/templates/project-scan-report-schema.json +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/templates/source-tree-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/workflows/deep-dive-instructions.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/workflows/full-scan-instructions.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/techdoc/documentation-standards.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/atdd/atdd-checklist-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/atdd/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/automate/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/ci/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/ci/github-actions-template.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/framework/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/nfr-assess/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/test-design/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/test-review/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/test-review/test-review-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/trace/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/trace/trace-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/workflow-status/paths/method-brownfield.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/workflow-status/paths/method-greenfield.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/workflow-status/sample-level-3-workflow.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/workflow-status/workflow-status-template.yaml +0 -0
- /package/{bmad → .bmad}/core/tasks/adv-elicit-methods.csv +0 -0
- /package/{bmad → .bmad}/core/workflows/brainstorming/brain-methods.csv +0 -0
- /package/{bmad → .bmad}/core/workflows/brainstorming/template.md +0 -0
- /package/{bmad → .bmad}/docs/claude-code-instructions.md +0 -0
- /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-brain-methods.csv +0 -0
- /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-context.md +0 -0
- /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/checklist.md +0 -0
- /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/template.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/checklist.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/action-platformer.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/adventure.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/card-game.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/fighting.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/horror.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/idle-incremental.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/metroidvania.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/moba.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/party-game.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/puzzle.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/racing.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rhythm.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/roguelike.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rpg.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sandbox.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/shooter.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/simulation.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sports.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/strategy.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/survival.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/text-based.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/tower-defense.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/turn-based-tactics.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/visual-novel.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types.csv +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/gdd-template.md +0 -0
- /package/{bmad/bmm/workflows/2-plan-workflows → src/modules/bmgd/workflows/2-design}/narrative/checklist.md +0 -0
- /package/{bmad/bmm/workflows/2-plan-workflows → src/modules/bmgd/workflows/2-design}/narrative/narrative-template.md +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const path = require('node:path');
|
|
2
2
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
3
|
const chalk = require('chalk');
|
|
4
|
+
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* iFlow CLI setup handler
|
|
@@ -31,21 +32,23 @@ class IFlowSetup extends BaseIdeSetup {
|
|
|
31
32
|
await this.ensureDir(agentsDir);
|
|
32
33
|
await this.ensureDir(tasksDir);
|
|
33
34
|
|
|
34
|
-
//
|
|
35
|
-
const
|
|
36
|
-
const
|
|
35
|
+
// Generate agent launchers
|
|
36
|
+
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
37
|
+
const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
|
|
37
38
|
|
|
38
39
|
// Setup agents as commands
|
|
39
40
|
let agentCount = 0;
|
|
40
|
-
for (const
|
|
41
|
-
const
|
|
42
|
-
const commandContent = this.createAgentCommand(agent, content);
|
|
41
|
+
for (const artifact of agentArtifacts) {
|
|
42
|
+
const commandContent = await this.createAgentCommand(artifact);
|
|
43
43
|
|
|
44
|
-
const targetPath = path.join(agentsDir, `${
|
|
44
|
+
const targetPath = path.join(agentsDir, `${artifact.module}-${artifact.name}.md`);
|
|
45
45
|
await this.writeFile(targetPath, commandContent);
|
|
46
46
|
agentCount++;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
// Get tasks
|
|
50
|
+
const tasks = await this.getTasks(bmadDir);
|
|
51
|
+
|
|
49
52
|
// Setup tasks as commands
|
|
50
53
|
let taskCount = 0;
|
|
51
54
|
for (const task of tasks) {
|
|
@@ -72,29 +75,9 @@ class IFlowSetup extends BaseIdeSetup {
|
|
|
72
75
|
/**
|
|
73
76
|
* Create agent command content
|
|
74
77
|
*/
|
|
75
|
-
createAgentCommand(
|
|
76
|
-
//
|
|
77
|
-
|
|
78
|
-
const title = titleMatch ? titleMatch[1] : this.formatTitle(agent.name);
|
|
79
|
-
|
|
80
|
-
let commandContent = `# /${agent.name} Command
|
|
81
|
-
|
|
82
|
-
When this command is used, adopt the following agent persona:
|
|
83
|
-
|
|
84
|
-
## ${title} Agent
|
|
85
|
-
|
|
86
|
-
${content}
|
|
87
|
-
|
|
88
|
-
## Usage
|
|
89
|
-
|
|
90
|
-
This command activates the ${title} agent from the BMAD ${agent.module.toUpperCase()} module.
|
|
91
|
-
|
|
92
|
-
## Module
|
|
93
|
-
|
|
94
|
-
Part of the BMAD ${agent.module.toUpperCase()} module.
|
|
95
|
-
`;
|
|
96
|
-
|
|
97
|
-
return commandContent;
|
|
78
|
+
async createAgentCommand(artifact) {
|
|
79
|
+
// The launcher content is already complete - just return it as-is
|
|
80
|
+
return artifact.content;
|
|
98
81
|
}
|
|
99
82
|
|
|
100
83
|
/**
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const path = require('node:path');
|
|
2
2
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
3
|
const chalk = require('chalk');
|
|
4
|
+
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* KiloCode IDE setup handler
|
|
@@ -36,16 +37,17 @@ class KiloSetup extends BaseIdeSetup {
|
|
|
36
37
|
console.log(chalk.yellow(`Found existing .kilocodemodes file with ${existingModes.length} modes`));
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
//
|
|
40
|
-
const
|
|
40
|
+
// Generate agent launchers
|
|
41
|
+
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
42
|
+
const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
|
|
41
43
|
|
|
42
44
|
// Create modes content
|
|
43
45
|
let newModesContent = '';
|
|
44
46
|
let addedCount = 0;
|
|
45
47
|
let skippedCount = 0;
|
|
46
48
|
|
|
47
|
-
for (const
|
|
48
|
-
const slug = `bmad-${
|
|
49
|
+
for (const artifact of agentArtifacts) {
|
|
50
|
+
const slug = `bmad-${artifact.module}-${artifact.name}`;
|
|
49
51
|
|
|
50
52
|
// Skip if already exists
|
|
51
53
|
if (existingModes.includes(slug)) {
|
|
@@ -54,8 +56,7 @@ class KiloSetup extends BaseIdeSetup {
|
|
|
54
56
|
continue;
|
|
55
57
|
}
|
|
56
58
|
|
|
57
|
-
const
|
|
58
|
-
const modeEntry = this.createModeEntry(agent, content, projectDir);
|
|
59
|
+
const modeEntry = await this.createModeEntry(artifact, projectDir);
|
|
59
60
|
|
|
60
61
|
newModesContent += modeEntry;
|
|
61
62
|
addedCount++;
|
|
@@ -90,32 +91,35 @@ class KiloSetup extends BaseIdeSetup {
|
|
|
90
91
|
/**
|
|
91
92
|
* Create a mode entry for an agent
|
|
92
93
|
*/
|
|
93
|
-
createModeEntry(
|
|
94
|
-
// Extract metadata
|
|
95
|
-
const titleMatch = content.match(/title="([^"]+)"/);
|
|
96
|
-
const title = titleMatch ? titleMatch[1] : this.formatTitle(
|
|
94
|
+
async createModeEntry(artifact, projectDir) {
|
|
95
|
+
// Extract metadata from launcher content
|
|
96
|
+
const titleMatch = artifact.content.match(/title="([^"]+)"/);
|
|
97
|
+
const title = titleMatch ? titleMatch[1] : this.formatTitle(artifact.name);
|
|
97
98
|
|
|
98
|
-
const iconMatch = content.match(/icon="([^"]+)"/);
|
|
99
|
+
const iconMatch = artifact.content.match(/icon="([^"]+)"/);
|
|
99
100
|
const icon = iconMatch ? iconMatch[1] : '🤖';
|
|
100
101
|
|
|
101
|
-
const whenToUseMatch = content.match(/whenToUse="([^"]+)"/);
|
|
102
|
+
const whenToUseMatch = artifact.content.match(/whenToUse="([^"]+)"/);
|
|
102
103
|
const whenToUse = whenToUseMatch ? whenToUseMatch[1] : `Use for ${title} tasks`;
|
|
103
104
|
|
|
104
|
-
|
|
105
|
+
// Get the activation header from central template
|
|
106
|
+
const activationHeader = await this.getAgentCommandHeader();
|
|
107
|
+
|
|
108
|
+
const roleDefinitionMatch = artifact.content.match(/roleDefinition="([^"]+)"/);
|
|
105
109
|
const roleDefinition = roleDefinitionMatch
|
|
106
110
|
? roleDefinitionMatch[1]
|
|
107
111
|
: `You are a ${title} specializing in ${title.toLowerCase()} tasks.`;
|
|
108
112
|
|
|
109
113
|
// Get relative path
|
|
110
|
-
const relativePath = path.relative(projectDir,
|
|
114
|
+
const relativePath = path.relative(projectDir, artifact.sourcePath).replaceAll('\\', '/');
|
|
111
115
|
|
|
112
116
|
// Build mode entry (KiloCode uses same schema as Roo)
|
|
113
|
-
const slug = `bmad-${
|
|
117
|
+
const slug = `bmad-${artifact.module}-${artifact.name}`;
|
|
114
118
|
let modeEntry = ` - slug: ${slug}\n`;
|
|
115
119
|
modeEntry += ` name: '${icon} ${title}'\n`;
|
|
116
120
|
modeEntry += ` roleDefinition: ${roleDefinition}\n`;
|
|
117
121
|
modeEntry += ` whenToUse: ${whenToUse}\n`;
|
|
118
|
-
modeEntry += ` customInstructions:
|
|
122
|
+
modeEntry += ` customInstructions: ${activationHeader} Read the full YAML from ${relativePath} start activation to alter your state of being follow startup section instructions stay in this being until told to exit this mode\n`;
|
|
119
123
|
modeEntry += ` groups:\n`;
|
|
120
124
|
modeEntry += ` - read\n`;
|
|
121
125
|
modeEntry += ` - edit\n`;
|
|
@@ -10,6 +10,21 @@ class IdeManager {
|
|
|
10
10
|
constructor() {
|
|
11
11
|
this.handlers = new Map();
|
|
12
12
|
this.loadHandlers();
|
|
13
|
+
this.bmadFolderName = 'bmad'; // Default, can be overridden
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Set the bmad folder name for all IDE handlers
|
|
18
|
+
* @param {string} bmadFolderName - The bmad folder name
|
|
19
|
+
*/
|
|
20
|
+
setBmadFolderName(bmadFolderName) {
|
|
21
|
+
this.bmadFolderName = bmadFolderName;
|
|
22
|
+
// Update all loaded handlers
|
|
23
|
+
for (const handler of this.handlers.values()) {
|
|
24
|
+
if (typeof handler.setBmadFolderName === 'function') {
|
|
25
|
+
handler.setBmadFolderName(bmadFolderName);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
13
28
|
}
|
|
14
29
|
|
|
15
30
|
/**
|
|
@@ -4,10 +4,9 @@ const os = require('node:os');
|
|
|
4
4
|
const chalk = require('chalk');
|
|
5
5
|
const yaml = require('js-yaml');
|
|
6
6
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
7
|
-
const { WorkflowCommandGenerator } = require('./workflow-command-generator');
|
|
8
|
-
const { TaskToolCommandGenerator } = require('./task-tool-command-generator');
|
|
9
|
-
|
|
10
|
-
const { getAgentsFromBmad } = require('./shared/bmad-artifacts');
|
|
7
|
+
const { WorkflowCommandGenerator } = require('./shared/workflow-command-generator');
|
|
8
|
+
const { TaskToolCommandGenerator } = require('./shared/task-tool-command-generator');
|
|
9
|
+
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* OpenCode IDE setup handler
|
|
@@ -33,26 +32,23 @@ class OpenCodeSetup extends BaseIdeSetup {
|
|
|
33
32
|
// Clean up any existing BMAD files before reinstalling
|
|
34
33
|
await this.cleanup(projectDir);
|
|
35
34
|
|
|
35
|
+
// Generate agent launchers
|
|
36
|
+
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
37
|
+
const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
|
|
38
|
+
|
|
36
39
|
// Install primary agents with flat naming: bmad-agent-{module}-{name}.md
|
|
37
40
|
// OpenCode agents go in the agent folder (not command folder)
|
|
38
|
-
const agents = await getAgentsFromBmad(bmadDir, options.selectedModules || []);
|
|
39
|
-
|
|
40
41
|
let agentCount = 0;
|
|
41
|
-
for (const
|
|
42
|
-
const
|
|
43
|
-
module: agent.module,
|
|
44
|
-
name: agent.name,
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
const agentContent = this.createAgentContent(processed, agent);
|
|
42
|
+
for (const artifact of agentArtifacts) {
|
|
43
|
+
const agentContent = artifact.content;
|
|
48
44
|
// Flat structure in agent folder: bmad-agent-{module}-{name}.md
|
|
49
|
-
const targetPath = path.join(agentsBaseDir, `bmad-agent-${
|
|
45
|
+
const targetPath = path.join(agentsBaseDir, `bmad-agent-${artifact.module}-${artifact.name}.md`);
|
|
50
46
|
await this.writeFile(targetPath, agentContent);
|
|
51
47
|
agentCount++;
|
|
52
48
|
}
|
|
53
49
|
|
|
54
50
|
// Install workflow commands with flat naming: bmad-workflow-{module}-{name}.md
|
|
55
|
-
const workflowGenerator = new WorkflowCommandGenerator();
|
|
51
|
+
const workflowGenerator = new WorkflowCommandGenerator(this.bmadFolderName);
|
|
56
52
|
const { artifacts: workflowArtifacts, counts: workflowCounts } = await workflowGenerator.collectWorkflowArtifacts(bmadDir);
|
|
57
53
|
|
|
58
54
|
let workflowCommandCount = 0;
|
|
@@ -127,7 +123,7 @@ class OpenCodeSetup extends BaseIdeSetup {
|
|
|
127
123
|
return this.processContent(content, metadata);
|
|
128
124
|
}
|
|
129
125
|
|
|
130
|
-
createAgentContent(content, metadata) {
|
|
126
|
+
async createAgentContent(content, metadata) {
|
|
131
127
|
const { frontmatter = {}, body } = this.parseFrontmatter(content);
|
|
132
128
|
|
|
133
129
|
frontmatter.description =
|
|
@@ -140,7 +136,10 @@ class OpenCodeSetup extends BaseIdeSetup {
|
|
|
140
136
|
|
|
141
137
|
const frontmatterString = this.stringifyFrontmatter(frontmatter);
|
|
142
138
|
|
|
143
|
-
|
|
139
|
+
// Get the activation header from central template
|
|
140
|
+
const activationHeader = await this.getAgentCommandHeader();
|
|
141
|
+
|
|
142
|
+
return `${frontmatterString}\n\n${activationHeader}\n\n${body}`;
|
|
144
143
|
}
|
|
145
144
|
|
|
146
145
|
parseFrontmatter(content) {
|
|
@@ -2,6 +2,7 @@ const path = require('node:path');
|
|
|
2
2
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
3
|
const chalk = require('chalk');
|
|
4
4
|
const { getAgentsFromBmad, getTasksFromBmad } = require('./shared/bmad-artifacts');
|
|
5
|
+
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Qwen Code setup handler
|
|
@@ -37,15 +38,18 @@ class QwenSetup extends BaseIdeSetup {
|
|
|
37
38
|
// Clean up old configuration if exists
|
|
38
39
|
await this.cleanupOldConfig(qwenDir);
|
|
39
40
|
|
|
40
|
-
//
|
|
41
|
-
const
|
|
41
|
+
// Generate agent launchers
|
|
42
|
+
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
43
|
+
const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
|
|
44
|
+
|
|
45
|
+
// Get tasks, tools, and workflows (standalone only for tools/workflows)
|
|
42
46
|
const tasks = await getTasksFromBmad(bmadDir, options.selectedModules || []);
|
|
43
47
|
const tools = await this.getTools(bmadDir, true);
|
|
44
48
|
const workflows = await this.getWorkflows(bmadDir, true);
|
|
45
49
|
|
|
46
50
|
// Create directories for each module (including standalone)
|
|
47
51
|
const modules = new Set();
|
|
48
|
-
for (const item of [...
|
|
52
|
+
for (const item of [...agentArtifacts, ...tasks, ...tools, ...workflows]) modules.add(item.module);
|
|
49
53
|
|
|
50
54
|
for (const module of modules) {
|
|
51
55
|
await this.ensureDir(path.join(bmadCommandsDir, module));
|
|
@@ -55,20 +59,21 @@ class QwenSetup extends BaseIdeSetup {
|
|
|
55
59
|
await this.ensureDir(path.join(bmadCommandsDir, module, 'workflows'));
|
|
56
60
|
}
|
|
57
61
|
|
|
58
|
-
// Create TOML files for each agent
|
|
62
|
+
// Create TOML files for each agent launcher
|
|
59
63
|
let agentCount = 0;
|
|
60
|
-
for (const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
for (const artifact of agentArtifacts) {
|
|
65
|
+
// Convert markdown launcher content to TOML format
|
|
66
|
+
const tomlContent = this.processAgentLauncherContent(artifact.content, {
|
|
67
|
+
module: artifact.module,
|
|
68
|
+
name: artifact.name,
|
|
64
69
|
});
|
|
65
70
|
|
|
66
|
-
const targetPath = path.join(bmadCommandsDir,
|
|
71
|
+
const targetPath = path.join(bmadCommandsDir, artifact.module, 'agents', `${artifact.name}.toml`);
|
|
67
72
|
|
|
68
|
-
await this.writeFile(targetPath,
|
|
73
|
+
await this.writeFile(targetPath, tomlContent);
|
|
69
74
|
|
|
70
75
|
agentCount++;
|
|
71
|
-
console.log(chalk.green(` ✓ Added agent: /bmad:${
|
|
76
|
+
console.log(chalk.green(` ✓ Added agent: /bmad:${artifact.module}:agents:${artifact.name}`));
|
|
72
77
|
}
|
|
73
78
|
|
|
74
79
|
// Create TOML files for each task
|
|
@@ -204,6 +209,29 @@ class QwenSetup extends BaseIdeSetup {
|
|
|
204
209
|
return this.processContent(content, metadata);
|
|
205
210
|
}
|
|
206
211
|
|
|
212
|
+
/**
|
|
213
|
+
* Process agent launcher content and convert to TOML format
|
|
214
|
+
* @param {string} launcherContent - Launcher markdown content
|
|
215
|
+
* @param {Object} metadata - File metadata
|
|
216
|
+
* @returns {string} TOML formatted content
|
|
217
|
+
*/
|
|
218
|
+
processAgentLauncherContent(launcherContent, metadata = {}) {
|
|
219
|
+
// Strip frontmatter from launcher content
|
|
220
|
+
const frontmatterRegex = /^---\s*\n[\s\S]*?\n---\s*\n/;
|
|
221
|
+
const contentWithoutFrontmatter = launcherContent.replace(frontmatterRegex, '');
|
|
222
|
+
|
|
223
|
+
// Extract title for TOML description
|
|
224
|
+
const titleMatch = launcherContent.match(/description:\s*"([^"]+)"/);
|
|
225
|
+
const title = titleMatch ? titleMatch[1] : metadata.name;
|
|
226
|
+
|
|
227
|
+
// Create TOML with launcher content (without frontmatter)
|
|
228
|
+
return `description = "BMAD ${metadata.module.toUpperCase()} Agent: ${title}"
|
|
229
|
+
prompt = """
|
|
230
|
+
${contentWithoutFrontmatter.trim()}
|
|
231
|
+
"""
|
|
232
|
+
`;
|
|
233
|
+
}
|
|
234
|
+
|
|
207
235
|
/**
|
|
208
236
|
* Override processContent to add TOML metadata header for Qwen
|
|
209
237
|
* @param {string} content - File content
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const path = require('node:path');
|
|
2
2
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
3
|
const chalk = require('chalk');
|
|
4
|
-
const
|
|
4
|
+
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Roo IDE setup handler
|
|
@@ -35,31 +35,6 @@ class RooSetup extends BaseIdeSetup {
|
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
/**
|
|
39
|
-
* Collect configuration choices before installation
|
|
40
|
-
* @param {Object} options - Configuration options
|
|
41
|
-
* @returns {Object} Collected configuration
|
|
42
|
-
*/
|
|
43
|
-
async collectConfiguration(options = {}) {
|
|
44
|
-
const response = await inquirer.prompt([
|
|
45
|
-
{
|
|
46
|
-
type: 'list',
|
|
47
|
-
name: 'permissions',
|
|
48
|
-
message: 'Select default file edit permissions for BMAD agents:',
|
|
49
|
-
choices: [
|
|
50
|
-
{ name: 'Development files only (js, ts, py, etc.)', value: 'dev' },
|
|
51
|
-
{ name: 'Configuration files only (json, yaml, xml, etc.)', value: 'config' },
|
|
52
|
-
{ name: 'Documentation files only (md, txt, doc, etc.)', value: 'docs' },
|
|
53
|
-
{ name: 'All files (unrestricted access)', value: 'all' },
|
|
54
|
-
{ name: 'Custom per agent (will be configured individually)', value: 'custom' },
|
|
55
|
-
],
|
|
56
|
-
default: 'dev',
|
|
57
|
-
},
|
|
58
|
-
]);
|
|
59
|
-
|
|
60
|
-
return { permissions: response.permissions };
|
|
61
|
-
}
|
|
62
|
-
|
|
63
38
|
/**
|
|
64
39
|
* Setup Roo IDE configuration
|
|
65
40
|
* @param {string} projectDir - Project directory
|
|
@@ -84,20 +59,20 @@ class RooSetup extends BaseIdeSetup {
|
|
|
84
59
|
console.log(chalk.yellow(`Found existing .roomodes file with ${existingModes.length} modes`));
|
|
85
60
|
}
|
|
86
61
|
|
|
87
|
-
//
|
|
88
|
-
const
|
|
62
|
+
// Generate agent launchers (though Roo will reference the actual .bmad agents)
|
|
63
|
+
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
64
|
+
const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
|
|
89
65
|
|
|
90
|
-
//
|
|
91
|
-
const
|
|
92
|
-
let permissionChoice = config.permissions || options.permissions || 'dev';
|
|
66
|
+
// Always use 'all' permissions - users can customize in .roomodes file
|
|
67
|
+
const permissionChoice = 'all';
|
|
93
68
|
|
|
94
69
|
// Create modes content
|
|
95
70
|
let newModesContent = '';
|
|
96
71
|
let addedCount = 0;
|
|
97
72
|
let skippedCount = 0;
|
|
98
73
|
|
|
99
|
-
for (const
|
|
100
|
-
const slug = `bmad-${
|
|
74
|
+
for (const artifact of agentArtifacts) {
|
|
75
|
+
const slug = `bmad-${artifact.module}-${artifact.name}`;
|
|
101
76
|
|
|
102
77
|
// Skip if already exists
|
|
103
78
|
if (existingModes.includes(slug)) {
|
|
@@ -106,8 +81,17 @@ class RooSetup extends BaseIdeSetup {
|
|
|
106
81
|
continue;
|
|
107
82
|
}
|
|
108
83
|
|
|
109
|
-
|
|
110
|
-
const
|
|
84
|
+
// Read the actual agent file from .bmad for metadata extraction
|
|
85
|
+
const agentPath = path.join(bmadDir, artifact.module, 'agents', `${artifact.name}.md`);
|
|
86
|
+
const content = await this.readFile(agentPath);
|
|
87
|
+
|
|
88
|
+
// Create mode entry that references the actual .bmad agent
|
|
89
|
+
const modeEntry = await this.createModeEntry(
|
|
90
|
+
{ module: artifact.module, name: artifact.name, path: agentPath },
|
|
91
|
+
content,
|
|
92
|
+
permissionChoice,
|
|
93
|
+
projectDir,
|
|
94
|
+
);
|
|
111
95
|
|
|
112
96
|
newModesContent += modeEntry;
|
|
113
97
|
addedCount++;
|
|
@@ -133,8 +117,9 @@ class RooSetup extends BaseIdeSetup {
|
|
|
133
117
|
console.log(chalk.dim(` - ${skippedCount} modes skipped (already exist)`));
|
|
134
118
|
}
|
|
135
119
|
console.log(chalk.dim(` - Configuration file: ${this.configFile}`));
|
|
136
|
-
console.log(chalk.dim(` - Permission level:
|
|
137
|
-
console.log(chalk.
|
|
120
|
+
console.log(chalk.dim(` - Permission level: all (unrestricted)`));
|
|
121
|
+
console.log(chalk.yellow(`\n 💡 Tip: Edit ${this.configFile} to customize file permissions per agent`));
|
|
122
|
+
console.log(chalk.dim(` Modes will be available when you open this project in Roo Code`));
|
|
138
123
|
|
|
139
124
|
return {
|
|
140
125
|
success: true,
|
|
@@ -143,33 +128,10 @@ class RooSetup extends BaseIdeSetup {
|
|
|
143
128
|
};
|
|
144
129
|
}
|
|
145
130
|
|
|
146
|
-
/**
|
|
147
|
-
* Ask user about permission configuration
|
|
148
|
-
*/
|
|
149
|
-
async askPermissions() {
|
|
150
|
-
const response = await inquirer.prompt([
|
|
151
|
-
{
|
|
152
|
-
type: 'list',
|
|
153
|
-
name: 'permissions',
|
|
154
|
-
message: 'Select default file edit permissions for BMAD agents:',
|
|
155
|
-
choices: [
|
|
156
|
-
{ name: 'Development files only (js, ts, py, etc.)', value: 'dev' },
|
|
157
|
-
{ name: 'Configuration files only (json, yaml, xml, etc.)', value: 'config' },
|
|
158
|
-
{ name: 'Documentation files only (md, txt, doc, etc.)', value: 'docs' },
|
|
159
|
-
{ name: 'All files (unrestricted access)', value: 'all' },
|
|
160
|
-
{ name: 'Custom per agent (will be configured individually)', value: 'custom' },
|
|
161
|
-
],
|
|
162
|
-
default: 'dev',
|
|
163
|
-
},
|
|
164
|
-
]);
|
|
165
|
-
|
|
166
|
-
return response.permissions;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
131
|
/**
|
|
170
132
|
* Create a mode entry for an agent
|
|
171
133
|
*/
|
|
172
|
-
createModeEntry(agent, content, permissionChoice, projectDir) {
|
|
134
|
+
async createModeEntry(agent, content, permissionChoice, projectDir) {
|
|
173
135
|
// Extract metadata from agent content
|
|
174
136
|
const titleMatch = content.match(/title="([^"]+)"/);
|
|
175
137
|
const title = titleMatch ? titleMatch[1] : this.formatTitle(agent.name);
|
|
@@ -180,6 +142,9 @@ class RooSetup extends BaseIdeSetup {
|
|
|
180
142
|
const whenToUseMatch = content.match(/whenToUse="([^"]+)"/);
|
|
181
143
|
const whenToUse = whenToUseMatch ? whenToUseMatch[1] : `Use for ${title} tasks`;
|
|
182
144
|
|
|
145
|
+
// Get the activation header from central template
|
|
146
|
+
const activationHeader = await this.getAgentCommandHeader();
|
|
147
|
+
|
|
183
148
|
const roleDefinitionMatch = content.match(/roleDefinition="([^"]+)"/);
|
|
184
149
|
const roleDefinition = roleDefinitionMatch
|
|
185
150
|
? roleDefinitionMatch[1]
|
|
@@ -202,7 +167,7 @@ class RooSetup extends BaseIdeSetup {
|
|
|
202
167
|
|
|
203
168
|
modeEntry += ` roleDefinition: ${roleDefinition}\n`;
|
|
204
169
|
modeEntry += ` whenToUse: ${whenToUse}\n`;
|
|
205
|
-
modeEntry += ` customInstructions:
|
|
170
|
+
modeEntry += ` customInstructions: ${activationHeader} Read the full YAML from ${relativePath} start activation to alter your state of being follow startup section instructions stay in this being until told to exit this mode\n`;
|
|
206
171
|
modeEntry += ` groups:\n`;
|
|
207
172
|
modeEntry += ` - read\n`;
|
|
208
173
|
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
const path = require('node:path');
|
|
2
|
+
const fs = require('fs-extra');
|
|
3
|
+
const chalk = require('chalk');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Generates launcher command files for each agent
|
|
7
|
+
* Similar to WorkflowCommandGenerator but for agents
|
|
8
|
+
*/
|
|
9
|
+
class AgentCommandGenerator {
|
|
10
|
+
constructor(bmadFolderName = 'bmad') {
|
|
11
|
+
this.templatePath = path.join(__dirname, '../templates/agent-command-template.md');
|
|
12
|
+
this.bmadFolderName = bmadFolderName;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Collect agent artifacts for IDE installation
|
|
17
|
+
* @param {string} bmadDir - BMAD installation directory
|
|
18
|
+
* @param {Array} selectedModules - Modules to include
|
|
19
|
+
* @returns {Object} Artifacts array with metadata
|
|
20
|
+
*/
|
|
21
|
+
async collectAgentArtifacts(bmadDir, selectedModules = []) {
|
|
22
|
+
const { getAgentsFromBmad } = require('./bmad-artifacts');
|
|
23
|
+
|
|
24
|
+
// Get agents from INSTALLED bmad/ directory
|
|
25
|
+
const agents = await getAgentsFromBmad(bmadDir, selectedModules);
|
|
26
|
+
|
|
27
|
+
const artifacts = [];
|
|
28
|
+
|
|
29
|
+
for (const agent of agents) {
|
|
30
|
+
const launcherContent = await this.generateLauncherContent(agent);
|
|
31
|
+
artifacts.push({
|
|
32
|
+
type: 'agent-launcher',
|
|
33
|
+
module: agent.module,
|
|
34
|
+
name: agent.name,
|
|
35
|
+
relativePath: path.join(agent.module, 'agents', `${agent.name}.md`),
|
|
36
|
+
content: launcherContent,
|
|
37
|
+
sourcePath: agent.path,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return {
|
|
42
|
+
artifacts,
|
|
43
|
+
counts: {
|
|
44
|
+
agents: agents.length,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Generate launcher content for an agent
|
|
51
|
+
* @param {Object} agent - Agent metadata
|
|
52
|
+
* @returns {string} Launcher file content
|
|
53
|
+
*/
|
|
54
|
+
async generateLauncherContent(agent) {
|
|
55
|
+
// Load the template
|
|
56
|
+
const template = await fs.readFile(this.templatePath, 'utf8');
|
|
57
|
+
|
|
58
|
+
// Replace template variables
|
|
59
|
+
return template
|
|
60
|
+
.replaceAll('{{name}}', agent.name)
|
|
61
|
+
.replaceAll('{{module}}', agent.module)
|
|
62
|
+
.replaceAll('{{description}}', agent.description || `${agent.name} agent`)
|
|
63
|
+
.replaceAll('{bmad_folder}', this.bmadFolderName);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Write agent launcher artifacts to IDE commands directory
|
|
68
|
+
* @param {string} baseCommandsDir - Base commands directory for the IDE
|
|
69
|
+
* @param {Array} artifacts - Agent launcher artifacts
|
|
70
|
+
* @returns {number} Count of launchers written
|
|
71
|
+
*/
|
|
72
|
+
async writeAgentLaunchers(baseCommandsDir, artifacts) {
|
|
73
|
+
let writtenCount = 0;
|
|
74
|
+
|
|
75
|
+
for (const artifact of artifacts) {
|
|
76
|
+
if (artifact.type === 'agent-launcher') {
|
|
77
|
+
const moduleAgentsDir = path.join(baseCommandsDir, artifact.module, 'agents');
|
|
78
|
+
await fs.ensureDir(moduleAgentsDir);
|
|
79
|
+
|
|
80
|
+
const launcherPath = path.join(moduleAgentsDir, `${artifact.name}.md`);
|
|
81
|
+
await fs.writeFile(launcherPath, artifact.content);
|
|
82
|
+
writtenCount++;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return writtenCount;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
module.exports = { AgentCommandGenerator };
|
|
@@ -4,11 +4,12 @@ const csv = require('csv-parse/sync');
|
|
|
4
4
|
const chalk = require('chalk');
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Generates
|
|
7
|
+
* Generates command files for each workflow in the manifest
|
|
8
8
|
*/
|
|
9
9
|
class WorkflowCommandGenerator {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.templatePath = path.join(__dirname, 'workflow-command-template.md');
|
|
10
|
+
constructor(bmadFolderName = 'bmad') {
|
|
11
|
+
this.templatePath = path.join(__dirname, '../templates/workflow-command-template.md');
|
|
12
|
+
this.bmadFolderName = bmadFolderName;
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
/**
|
|
@@ -103,19 +104,19 @@ class WorkflowCommandGenerator {
|
|
|
103
104
|
|
|
104
105
|
// Convert source path to installed path
|
|
105
106
|
// From: /Users/.../src/modules/bmm/workflows/.../workflow.yaml
|
|
106
|
-
// To: {project-root}/
|
|
107
|
+
// To: {project-root}/{bmad_folder}/bmm/workflows/.../workflow.yaml
|
|
107
108
|
let workflowPath = workflow.path;
|
|
108
109
|
|
|
109
110
|
// Extract the relative path from source
|
|
110
111
|
if (workflowPath.includes('/src/modules/')) {
|
|
111
112
|
const match = workflowPath.match(/\/src\/modules\/(.+)/);
|
|
112
113
|
if (match) {
|
|
113
|
-
workflowPath =
|
|
114
|
+
workflowPath = `${this.bmadFolderName}/${match[1]}`;
|
|
114
115
|
}
|
|
115
116
|
} else if (workflowPath.includes('/src/core/')) {
|
|
116
117
|
const match = workflowPath.match(/\/src\/core\/(.+)/);
|
|
117
118
|
if (match) {
|
|
118
|
-
workflowPath =
|
|
119
|
+
workflowPath = `${this.bmadFolderName}/core/${match[1]}`;
|
|
119
120
|
}
|
|
120
121
|
}
|
|
121
122
|
|
|
@@ -125,6 +126,7 @@ class WorkflowCommandGenerator {
|
|
|
125
126
|
.replaceAll('{{module}}', workflow.module)
|
|
126
127
|
.replaceAll('{{description}}', workflow.description)
|
|
127
128
|
.replaceAll('{{workflow_path}}', workflowPath)
|
|
129
|
+
.replaceAll('{bmad_folder}', this.bmadFolderName)
|
|
128
130
|
.replaceAll('{{interactive}}', workflow.interactive)
|
|
129
131
|
.replaceAll('{{author}}', workflow.author || 'BMAD');
|
|
130
132
|
}
|
|
@@ -186,7 +188,7 @@ class WorkflowCommandGenerator {
|
|
|
186
188
|
## Execution
|
|
187
189
|
|
|
188
190
|
When running any workflow:
|
|
189
|
-
1. LOAD {project-root}/
|
|
191
|
+
1. LOAD {project-root}/${this.bmadFolderName}/core/tasks/workflow.xml
|
|
190
192
|
2. Pass the workflow path as 'workflow-config' parameter
|
|
191
193
|
3. Follow workflow.xml instructions EXACTLY
|
|
192
194
|
4. Save outputs after EACH section
|
|
@@ -205,12 +207,12 @@ When running any workflow:
|
|
|
205
207
|
if (workflowPath.includes('/src/modules/')) {
|
|
206
208
|
const match = workflowPath.match(/\/src\/modules\/(.+)/);
|
|
207
209
|
if (match) {
|
|
208
|
-
transformed = `{project-root}
|
|
210
|
+
transformed = `{project-root}/${this.bmadFolderName}/${match[1]}`;
|
|
209
211
|
}
|
|
210
212
|
} else if (workflowPath.includes('/src/core/')) {
|
|
211
213
|
const match = workflowPath.match(/\/src\/core\/(.+)/);
|
|
212
214
|
if (match) {
|
|
213
|
-
transformed = `{project-root}/
|
|
215
|
+
transformed = `{project-root}/${this.bmadFolderName}/core/${match[1]}`;
|
|
214
216
|
}
|
|
215
217
|
}
|
|
216
218
|
|