bmad-method 6.0.0-alpha.0 → 6.0.0-alpha.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/.github/ISSUE_TEMPLATE/config.yaml +4 -0
- package/.github/ISSUE_TEMPLATE/idea_submission.md +3 -3
- package/.github/workflows/bundle-latest.yaml +277 -0
- package/.github/workflows/manual-release.yaml +64 -17
- package/.github/workflows/quality.yaml +78 -0
- package/.husky/pre-commit +4 -0
- package/.prettierignore +6 -0
- package/.vscode/settings.json +3 -1
- package/CHANGELOG.md +1211 -2
- package/CONTRIBUTING.md +2 -13
- package/README.md +442 -0
- package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
- package/docs/agent-customization-guide.md +208 -0
- package/docs/document-sharding-guide.md +449 -0
- package/docs/ide-info/auggie.md +2 -2
- package/docs/ide-info/claude-code.md +4 -4
- package/docs/ide-info/codex.md +9 -20
- package/docs/ide-info/crush.md +1 -1
- package/docs/ide-info/cursor.md +7 -7
- package/docs/ide-info/iflow.md +3 -3
- package/docs/ide-info/opencode.md +24 -0
- package/docs/index.md +227 -0
- package/docs/installers-bundlers/ide-injections.md +2 -12
- package/docs/installers-bundlers/installers-modules-platforms-reference.md +100 -67
- package/docs/v4-to-v6-upgrade.md +227 -0
- package/docs/web-bundles-gemini-gpt-guide.md +473 -0
- package/eslint.config.mjs +6 -2
- package/package.json +13 -6
- package/src/core/_module-installer/install-config.yaml +35 -0
- package/src/core/_module-installer/installer.js +1 -9
- package/src/core/agents/bmad-master.agent.yaml +39 -0
- package/src/core/agents/bmad-web-orchestrator.agent.xml +113 -0
- package/src/core/tasks/advanced-elicitation-methods.csv +21 -0
- package/src/core/tasks/{adv-elicit.md → advanced-elicitation.xml} +11 -14
- package/src/core/tasks/{index-docs.md → index-docs.xml} +6 -10
- package/src/core/tasks/{validate-workflow.md → validate-workflow.xml} +4 -7
- package/src/core/tasks/workflow.xml +270 -0
- package/src/core/tools/shard-doc.xml +109 -0
- package/src/{modules/cis → core}/workflows/brainstorming/README.md +8 -18
- package/src/{modules/cis → core}/workflows/brainstorming/instructions.md +29 -24
- package/src/{modules/cis → core}/workflows/brainstorming/template.md +6 -2
- package/src/{modules/cis → core}/workflows/brainstorming/workflow.yaml +17 -9
- package/src/core/workflows/party-mode/instructions.md +27 -25
- package/src/core/workflows/party-mode/workflow.yaml +14 -10
- package/src/modules/bmb/README.md +194 -0
- package/src/modules/bmb/_module-installer/install-config.yaml +31 -0
- package/src/modules/bmb/agents/bmad-builder.agent.yaml +57 -0
- package/src/modules/bmb/workflows/audit-workflow/checklist.md +142 -0
- package/src/modules/bmb/workflows/audit-workflow/instructions.md +341 -0
- package/src/modules/bmb/workflows/audit-workflow/template.md +118 -0
- package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +25 -0
- package/src/modules/bmb/workflows/convert-legacy/README.md +34 -34
- package/src/modules/bmb/workflows/convert-legacy/checklist.md +22 -21
- package/src/modules/bmb/workflows/convert-legacy/instructions.md +135 -86
- package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +10 -15
- package/src/modules/bmb/workflows/create-agent/README.md +144 -209
- package/src/modules/bmb/workflows/create-agent/agent-architecture.md +68 -65
- package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +174 -172
- package/src/modules/bmb/workflows/create-agent/agent-types.md +139 -24
- package/src/modules/bmb/workflows/create-agent/brainstorm-context.md +4 -4
- package/src/modules/bmb/workflows/create-agent/checklist.md +30 -102
- package/src/modules/bmb/workflows/create-agent/communication-styles.md +22 -60
- package/src/modules/bmb/workflows/create-agent/instructions.md +339 -221
- package/src/modules/bmb/workflows/create-agent/workflow.yaml +28 -19
- package/src/modules/bmb/workflows/create-module/README.md +164 -153
- package/src/modules/bmb/workflows/create-module/brainstorm-context.md +1 -1
- package/src/modules/bmb/workflows/create-module/checklist.md +21 -31
- package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +92 -0
- package/src/modules/bmb/workflows/create-module/installer-templates/installer.js +1 -1
- package/src/modules/bmb/workflows/create-module/instructions.md +306 -238
- package/src/modules/bmb/workflows/create-module/module-structure.md +135 -45
- package/src/modules/bmb/workflows/create-module/workflow.yaml +32 -27
- package/src/modules/bmb/workflows/create-workflow/README.md +70 -9
- package/src/modules/bmb/workflows/create-workflow/brainstorm-context.md +4 -4
- package/src/modules/bmb/workflows/create-workflow/checklist.md +22 -0
- package/src/modules/bmb/workflows/create-workflow/instructions.md +505 -47
- package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +939 -68
- package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +6 -3
- package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +31 -5
- package/src/modules/bmb/workflows/create-workflow/workflow.yaml +16 -17
- package/src/modules/bmb/workflows/edit-agent/README.md +112 -0
- package/src/modules/bmb/workflows/edit-agent/checklist.md +112 -0
- package/src/modules/bmb/workflows/edit-agent/instructions.md +290 -0
- package/src/modules/bmb/workflows/edit-agent/workflow.yaml +33 -0
- package/src/modules/bmb/workflows/edit-module/README.md +187 -0
- package/src/modules/bmb/workflows/edit-module/checklist.md +165 -0
- package/src/modules/bmb/workflows/edit-module/instructions.md +341 -0
- package/src/modules/bmb/workflows/edit-module/workflow.yaml +34 -0
- package/src/modules/bmb/workflows/edit-workflow/README.md +58 -2
- package/src/modules/bmb/workflows/edit-workflow/instructions.md +290 -118
- package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +9 -16
- package/src/modules/bmb/workflows/module-brief/README.md +17 -17
- package/src/modules/bmb/workflows/module-brief/checklist.md +6 -6
- package/src/modules/bmb/workflows/module-brief/instructions.md +10 -7
- package/src/modules/bmb/workflows/module-brief/template.md +9 -9
- package/src/modules/bmb/workflows/module-brief/workflow.yaml +16 -10
- package/src/modules/bmb/workflows/redoc/README.md +5 -5
- package/src/modules/bmb/workflows/redoc/checklist.md +2 -2
- package/src/modules/bmb/workflows/redoc/instructions.md +20 -10
- package/src/modules/bmb/workflows/redoc/workflow.yaml +6 -5
- package/src/modules/bmgd/README.md +208 -0
- package/src/modules/bmgd/_module-installer/install-config.yaml +54 -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/bmgd/teams/team-gamedev.yaml +18 -0
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-context.md +3 -3
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +130 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +41 -0
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/checklist.md +2 -2
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +373 -0
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/template.md +2 -2
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +36 -0
- package/src/modules/bmgd/workflows/2-design/gdd/checklist.md +148 -0
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/action-platformer.md +1 -1
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/adventure.md +1 -1
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/card-game.md +2 -2
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/fighting.md +1 -1
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/horror.md +2 -2
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/idle-incremental.md +1 -1
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/moba.md +4 -4
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/party-game.md +1 -1
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/racing.md +3 -3
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/rhythm.md +1 -1
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/roguelike.md +2 -2
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/rpg.md +3 -3
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/sandbox.md +4 -4
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/shooter.md +3 -3
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/simulation.md +3 -3
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/sports.md +3 -3
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/strategy.md +3 -3
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/survival.md +2 -2
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/text-based.md +3 -3
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/tower-defense.md +5 -5
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/turn-based-tactics.md +4 -4
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/visual-novel.md +1 -1
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/gdd-template.md +6 -12
- package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +502 -0
- package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +81 -0
- package/src/modules/bmgd/workflows/2-design/narrative/checklist.md +139 -0
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/narrative/instructions-narrative.md +99 -12
- package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/narrative/narrative-template.md +8 -8
- package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +32 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +321 -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 +240 -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 +701 -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 +69 -0
- package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +398 -0
- package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +61 -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 +206 -0
- package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +58 -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 +256 -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 +74 -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 +267 -0
- package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +58 -0
- package/src/modules/{bmm/workflows/3-solutioning/tech-spec → bmgd/workflows/4-production/epic-tech-context}/checklist.md +1 -1
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +164 -0
- package/src/modules/{bmm/workflows/3-solutioning/tech-spec → bmgd/workflows/4-production/epic-tech-context}/template.md +1 -1
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +58 -0
- package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +1443 -0
- package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +57 -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 +234 -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 +51 -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 +209 -0
- package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +63 -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 +28 -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 +25 -0
- package/src/modules/bmm/README.md +128 -0
- package/src/modules/bmm/_module-installer/install-config.yaml +60 -0
- package/src/modules/bmm/_module-installer/installer.js +3 -3
- package/src/modules/bmm/_module-installer/platform-specifics/claude-code.js +1 -1
- package/src/modules/bmm/_module-installer/platform-specifics/windsurf.js +1 -1
- package/src/modules/bmm/agents/analyst.agent.yaml +49 -0
- package/src/modules/bmm/agents/architect.agent.yaml +42 -0
- package/src/modules/bmm/agents/dev.agent.yaml +40 -0
- package/src/modules/bmm/agents/frame-expert.agent.yaml +42 -0
- package/src/modules/bmm/agents/pm.agent.yaml +64 -0
- package/src/modules/bmm/agents/sm.agent.yaml +73 -0
- package/src/modules/bmm/agents/tea.agent.yaml +67 -0
- package/src/modules/bmm/agents/tech-writer.agent.yaml +68 -0
- package/src/modules/bmm/agents/ux-designer.agent.yaml +39 -0
- package/src/modules/bmm/docs/README.md +236 -0
- package/src/modules/bmm/docs/agents-guide.md +1058 -0
- package/src/modules/bmm/docs/brownfield-guide.md +762 -0
- package/src/modules/bmm/docs/enterprise-agentic-development.md +686 -0
- package/src/modules/bmm/docs/faq.md +588 -0
- package/src/modules/bmm/docs/glossary.md +320 -0
- package/src/modules/bmm/docs/party-mode.md +224 -0
- package/src/modules/bmm/docs/quick-spec-flow.md +652 -0
- package/src/modules/bmm/docs/quick-start.md +376 -0
- package/src/modules/bmm/docs/scale-adaptive-system.md +612 -0
- package/src/modules/bmm/docs/test-architecture.md +396 -0
- package/src/modules/bmm/docs/workflow-architecture-reference.md +366 -0
- package/src/modules/bmm/docs/workflow-document-project-reference.md +489 -0
- package/src/modules/bmm/docs/workflows-analysis.md +370 -0
- package/src/modules/bmm/docs/workflows-implementation.md +286 -0
- package/src/modules/bmm/docs/workflows-planning.md +612 -0
- package/src/modules/bmm/docs/workflows-solutioning.md +554 -0
- package/src/modules/bmm/teams/default-party.csv +20 -0
- package/src/modules/bmm/teams/team-fullstack.yaml +13 -0
- package/src/modules/bmm/testarch/knowledge/ci-burn-in.md +675 -0
- package/src/modules/bmm/testarch/knowledge/component-tdd.md +486 -0
- package/src/modules/bmm/testarch/knowledge/contract-testing.md +957 -0
- package/src/modules/bmm/testarch/knowledge/data-factories.md +500 -0
- package/src/modules/bmm/testarch/knowledge/email-auth.md +721 -0
- package/src/modules/bmm/testarch/knowledge/error-handling.md +725 -0
- package/src/modules/bmm/testarch/knowledge/feature-flags.md +750 -0
- package/src/modules/bmm/testarch/knowledge/fixture-architecture.md +401 -0
- package/src/modules/bmm/testarch/knowledge/network-first.md +486 -0
- package/src/modules/bmm/testarch/knowledge/nfr-criteria.md +670 -0
- package/src/modules/bmm/testarch/knowledge/playwright-config.md +730 -0
- package/src/modules/bmm/testarch/knowledge/probability-impact.md +601 -0
- package/src/modules/bmm/testarch/knowledge/risk-governance.md +615 -0
- package/src/modules/bmm/testarch/knowledge/selective-testing.md +732 -0
- package/src/modules/bmm/testarch/knowledge/selector-resilience.md +527 -0
- package/src/modules/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
- package/src/modules/bmm/testarch/knowledge/test-levels-framework.md +473 -0
- package/src/modules/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
- package/src/modules/bmm/testarch/knowledge/test-quality.md +664 -0
- package/src/modules/bmm/testarch/knowledge/timing-debugging.md +372 -0
- package/src/modules/bmm/testarch/knowledge/visual-debugging.md +524 -0
- package/src/modules/bmm/testarch/tea-index.csv +22 -0
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +82 -8
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/project-context.md +4 -4
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +23 -5
- package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +425 -0
- package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +180 -0
- package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +56 -0
- package/src/modules/bmm/workflows/1-analysis/product-brief/checklist.md +2 -2
- package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +418 -247
- package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +93 -77
- package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +42 -14
- package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
- package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
- package/src/modules/bmm/workflows/1-analysis/research/checklist.md +156 -59
- package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +115 -47
- package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +236 -114
- package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +109 -66
- package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +147 -55
- package/src/modules/bmm/workflows/1-analysis/research/template-deep-prompt.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/research/template-market.md +38 -2
- package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +36 -1
- package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +36 -123
- package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/epics-template.md +80 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/instructions.md +616 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/workflow.yaml +63 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +310 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1308 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +145 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +93 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +346 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +703 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +204 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +78 -0
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +217 -0
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +74 -0
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +436 -0
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +980 -0
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +181 -0
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +90 -0
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +60 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +321 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +103 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +240 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +222 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +768 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +13 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +100 -0
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/checklist.md +169 -0
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +332 -0
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/template.md +146 -0
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +64 -0
- package/src/modules/bmm/workflows/4-implementation/code-review/backlog_template.md +12 -0
- package/src/modules/bmm/workflows/4-implementation/code-review/checklist.md +22 -0
- package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +398 -0
- package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +61 -0
- package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +6 -6
- package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +70 -54
- package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +44 -21
- package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +240 -39
- package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +203 -28
- package/src/modules/bmm/workflows/4-implementation/create-story/template.md +2 -8
- package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +43 -42
- package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +220 -40
- package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +43 -38
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +17 -0
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +164 -0
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/template.md +76 -0
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +58 -0
- package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1280 -228
- package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +41 -25
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +234 -0
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +51 -0
- 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 +155 -22
- package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +43 -36
- package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +111 -0
- package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +28 -0
- package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +117 -0
- package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +25 -0
- package/src/modules/bmm/workflows/document-project/checklist.md +245 -0
- package/src/modules/bmm/workflows/document-project/documentation-requirements.csv +12 -0
- package/src/modules/bmm/workflows/document-project/instructions.md +222 -0
- package/src/modules/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
- package/src/modules/bmm/workflows/document-project/templates/index-template.md +169 -0
- package/src/modules/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
- package/src/modules/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
- package/src/modules/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
- package/src/modules/bmm/workflows/document-project/workflow.yaml +31 -0
- package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
- package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
- package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
- package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
- package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-helpers.md +127 -0
- package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-library.json +90 -0
- package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-templates.yaml +127 -0
- package/src/modules/bmm/workflows/frame-expert/_shared/validate-json-instructions.md +79 -0
- package/src/modules/bmm/workflows/frame-expert/create-dataflow/checklist.md +39 -0
- package/src/modules/bmm/workflows/frame-expert/create-dataflow/instructions.md +131 -0
- package/src/modules/bmm/workflows/frame-expert/create-dataflow/workflow.yaml +24 -0
- package/src/modules/bmm/workflows/frame-expert/create-diagram/checklist.md +43 -0
- package/src/modules/bmm/workflows/frame-expert/create-diagram/instructions.md +142 -0
- package/src/modules/bmm/workflows/frame-expert/create-diagram/workflow.yaml +25 -0
- package/src/modules/bmm/workflows/frame-expert/create-flowchart/checklist.md +49 -0
- package/src/modules/bmm/workflows/frame-expert/create-flowchart/instructions.md +242 -0
- package/src/modules/bmm/workflows/frame-expert/create-flowchart/workflow.yaml +28 -0
- package/src/modules/bmm/workflows/frame-expert/create-wireframe/checklist.md +38 -0
- package/src/modules/bmm/workflows/frame-expert/create-wireframe/instructions.md +133 -0
- package/src/modules/bmm/workflows/frame-expert/create-wireframe/workflow.yaml +24 -0
- package/src/modules/bmm/workflows/techdoc/documentation-standards.md +262 -0
- package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
- package/src/modules/bmm/workflows/testarch/atdd/checklist.md +373 -0
- package/src/modules/bmm/workflows/testarch/atdd/instructions.md +785 -0
- package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +47 -0
- package/src/modules/bmm/workflows/testarch/automate/checklist.md +580 -0
- package/src/modules/bmm/workflows/testarch/automate/instructions.md +1303 -0
- package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +54 -0
- package/src/modules/bmm/workflows/testarch/ci/checklist.md +246 -0
- package/src/modules/bmm/workflows/testarch/ci/github-actions-template.yaml +165 -0
- package/src/modules/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +128 -0
- package/src/modules/bmm/workflows/testarch/ci/instructions.md +517 -0
- package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +47 -0
- package/src/modules/bmm/workflows/testarch/framework/checklist.md +321 -0
- package/src/modules/bmm/workflows/testarch/framework/instructions.md +455 -0
- package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +49 -0
- package/src/modules/bmm/workflows/testarch/nfr-assess/checklist.md +405 -0
- package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +722 -0
- package/src/modules/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +443 -0
- package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +49 -0
- package/src/modules/bmm/workflows/testarch/test-design/checklist.md +234 -0
- package/src/modules/bmm/workflows/testarch/test-design/instructions.md +782 -0
- package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +285 -0
- package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +50 -0
- package/src/modules/bmm/workflows/testarch/test-review/checklist.md +470 -0
- package/src/modules/bmm/workflows/testarch/test-review/instructions.md +608 -0
- package/src/modules/bmm/workflows/testarch/test-review/test-review-template.md +388 -0
- package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +48 -0
- package/src/modules/bmm/workflows/testarch/trace/checklist.md +654 -0
- package/src/modules/bmm/workflows/testarch/trace/instructions.md +1045 -0
- package/src/modules/bmm/workflows/testarch/trace/trace-template.md +673 -0
- package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +57 -0
- package/src/modules/bmm/workflows/workflow-status/init/instructions.md +334 -0
- package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +29 -0
- package/src/modules/bmm/workflows/workflow-status/instructions.md +388 -0
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +138 -0
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +126 -0
- package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +52 -0
- package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +122 -0
- package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +113 -0
- package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +58 -0
- package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +47 -0
- package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +59 -0
- package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
- package/src/modules/bmm/workflows/workflow-status/workflow.yaml +30 -0
- package/src/modules/cis/README.md +153 -0
- package/src/modules/cis/_module-installer/{install-menu-config.yaml → install-config.yaml} +6 -4
- package/src/modules/cis/_module-installer/installer.js +1 -1
- package/src/modules/cis/agents/README.md +1 -1
- package/src/modules/cis/agents/brainstorming-coach.agent.yaml +28 -0
- package/src/modules/cis/agents/creative-problem-solver.agent.yaml +28 -0
- package/src/modules/cis/agents/design-thinking-coach.agent.yaml +28 -0
- package/src/modules/cis/agents/innovation-strategist.agent.yaml +28 -0
- package/src/modules/cis/agents/storyteller.agent.yaml +28 -0
- 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 +102 -30
- package/src/modules/cis/workflows/design-thinking/design-methods.csv +1 -1
- package/src/modules/cis/workflows/design-thinking/instructions.md +4 -2
- package/src/modules/cis/workflows/design-thinking/workflow.yaml +16 -7
- package/src/modules/cis/workflows/innovation-strategy/innovation-frameworks.csv +2 -2
- package/src/modules/cis/workflows/innovation-strategy/instructions.md +7 -5
- package/src/modules/cis/workflows/innovation-strategy/template.md +6 -6
- package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +16 -7
- package/src/modules/cis/workflows/problem-solving/instructions.md +4 -2
- package/src/modules/cis/workflows/problem-solving/solving-methods.csv +6 -6
- package/src/modules/cis/workflows/problem-solving/template.md +3 -3
- package/src/modules/cis/workflows/problem-solving/workflow.yaml +16 -7
- package/src/modules/cis/workflows/storytelling/instructions.md +48 -30
- package/src/modules/cis/workflows/storytelling/template.md +2 -2
- package/src/modules/cis/workflows/storytelling/workflow.yaml +16 -7
- package/src/utility/models/action-command-header.md +0 -0
- package/src/utility/models/agent-activation-ide.xml +4 -4
- package/src/utility/models/agent-activation-web.xml +60 -0
- package/src/utility/models/agent-command-header.md +1 -0
- package/src/utility/models/agent-in-team-activation.xml +3 -0
- package/src/utility/models/fragments/activation-rules.xml +8 -0
- package/src/utility/models/fragments/activation-steps.xml +16 -0
- package/src/utility/models/fragments/handler-action.xml +4 -0
- package/src/utility/models/fragments/handler-data.xml +5 -0
- package/src/utility/models/fragments/handler-exec.xml +5 -0
- package/src/utility/models/fragments/handler-tmpl.xml +5 -0
- package/src/utility/models/fragments/handler-validate-workflow.xml +7 -0
- package/src/utility/models/fragments/handler-workflow.xml +9 -0
- package/src/utility/models/fragments/menu-handlers.xml +6 -0
- package/src/utility/models/fragments/web-bundle-activation-steps.xml +32 -0
- package/src/utility/templates/agent.customize.template.yaml +42 -0
- package/test/README.md +295 -0
- package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +29 -0
- package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +21 -0
- package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +19 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +23 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +30 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/metadata/core-agent-with-module.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
- package/test/fixtures/agent-schema/invalid/metadata/module-agent-missing-module.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/metadata/wrong-module-value.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +23 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +23 -0
- package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +28 -0
- package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +30 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
- package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
- package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
- package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
- package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +21 -0
- package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +26 -0
- package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +30 -0
- package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +21 -0
- package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +39 -0
- package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +33 -0
- package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +21 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +27 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +29 -0
- package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +23 -0
- package/test/test-agent-schema.js +387 -0
- package/test/test-cli-integration.sh +159 -0
- package/test/test-installation-components.js +214 -0
- package/test/unit-test-schema.js +133 -0
- package/tools/bmad-npx-wrapper.js +38 -0
- package/tools/cli/README.md +608 -0
- package/tools/cli/bmad-cli.js +0 -2
- package/tools/cli/bundlers/bundle-web.js +24 -2
- package/tools/cli/bundlers/test-bundler.js +1 -1
- package/tools/cli/bundlers/web-bundler.js +944 -49
- package/tools/cli/commands/build.js +458 -0
- package/tools/cli/commands/install.js +46 -8
- package/tools/cli/installers/lib/core/config-collector.js +490 -43
- package/tools/cli/installers/lib/core/dependency-resolver.js +5 -1
- package/tools/cli/installers/lib/core/detector.js +134 -13
- package/tools/cli/installers/lib/core/ide-config-manager.js +154 -0
- package/tools/cli/installers/lib/core/installer.js +1365 -167
- package/tools/cli/installers/lib/core/manifest-generator.js +388 -81
- package/tools/cli/installers/lib/core/manifest.js +100 -44
- package/tools/cli/installers/lib/ide/_base-ide.js +368 -23
- package/tools/cli/installers/lib/ide/auggie.js +100 -192
- package/tools/cli/installers/lib/ide/claude-code.js +167 -321
- package/tools/cli/installers/lib/ide/cline.js +146 -227
- package/tools/cli/installers/lib/ide/codex.js +138 -202
- package/tools/cli/installers/lib/ide/crush.js +108 -72
- package/tools/cli/installers/lib/ide/cursor.js +148 -20
- package/tools/cli/installers/lib/ide/gemini.js +109 -63
- package/tools/cli/installers/lib/ide/github-copilot.js +60 -47
- 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 +41 -35
- package/tools/cli/installers/lib/ide/opencode.js +212 -0
- package/tools/cli/installers/lib/ide/qwen.js +198 -68
- 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/shared/bmad-artifacts.js +143 -0
- package/tools/cli/installers/lib/ide/shared/module-injections.js +133 -0
- package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +119 -0
- package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +237 -0
- 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} +7 -5
- package/tools/cli/installers/lib/ide/trae.js +138 -54
- package/tools/cli/installers/lib/ide/windsurf.js +104 -42
- package/tools/cli/installers/lib/modules/manager.js +332 -10
- package/tools/cli/lib/activation-builder.js +168 -0
- package/tools/cli/lib/agent-analyzer.js +81 -0
- package/tools/cli/lib/agent-party-generator.js +3 -3
- package/tools/cli/lib/cli-utils.js +52 -50
- package/tools/cli/lib/config.js +3 -1
- package/tools/cli/lib/ui.js +106 -14
- package/tools/cli/lib/xml-handler.js +47 -1
- package/tools/cli/lib/yaml-format.js +2 -1
- package/tools/cli/lib/yaml-xml-builder.js +507 -0
- package/tools/cli/regenerate-manifests.js +1 -1
- package/tools/cli/test-yaml-builder.js +43 -0
- package/tools/format-workflow-md.js +263 -0
- package/tools/platform-codes.yaml +6 -0
- package/tools/schema/agent.js +240 -0
- package/tools/validate-agent-schema.js +110 -0
- package/v6-open-items.md +17 -0
- package/.github/workflows/format-check.yaml +0 -43
- package/docs/codebase-flattener.md +0 -19
- package/readme.md +0 -216
- package/src/core/_module-installer/install-menu-config.yaml +0 -24
- package/src/core/agents/bmad-master.md +0 -27
- package/src/core/agents/bmad-web-orchestrator.md +0 -71
- package/src/core/tasks/shard-doc.md +0 -57
- package/src/core/tasks/workflow.md +0 -141
- package/src/core/workflows/bmad-init/instructions.md +0 -79
- package/src/core/workflows/bmad-init/workflow.yaml +0 -24
- package/src/modules/bmb/_module-installer/install-menu-config.yaml +0 -16
- package/src/modules/bmb/agents/bmad-builder.md +0 -30
- package/src/modules/bmb/workflows/create-module/installer-templates/install-module-config.yaml +0 -132
- package/src/modules/bmm/_module-installer/install-menu-config.yaml +0 -49
- package/src/modules/bmm/agents/analyst.md +0 -26
- package/src/modules/bmm/agents/architect.md +0 -29
- package/src/modules/bmm/agents/dev.md +0 -61
- package/src/modules/bmm/agents/game-architect.md +0 -26
- package/src/modules/bmm/agents/game-designer.md +0 -27
- package/src/modules/bmm/agents/game-dev.md +0 -28
- package/src/modules/bmm/agents/pm.md +0 -26
- package/src/modules/bmm/agents/po.md +0 -25
- package/src/modules/bmm/agents/sm.md +0 -29
- package/src/modules/bmm/agents/tea.md +0 -32
- package/src/modules/bmm/agents/ux-expert.md +0 -24
- package/src/modules/bmm/sub-modules/claude-code/config.yaml +0 -5
- package/src/modules/bmm/sub-modules/claude-code/injections.yaml +0 -242
- package/src/modules/bmm/sub-modules/claude-code/readme.md +0 -87
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/api-documenter.md +0 -85
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/codebase-analyzer.md +0 -64
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/data-analyst.md +0 -84
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/dependency-mapper.md +0 -67
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/document-reviewer.md +0 -85
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/epic-optimizer.md +0 -66
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/market-researcher.md +0 -34
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/pattern-detector.md +0 -67
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/requirements-analyst.md +0 -61
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/tech-debt-auditor.md +0 -89
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/technical-decisions-curator.md +0 -146
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/technical-evaluator.md +0 -51
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/test-coverage-analyzer.md +0 -91
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/trend-spotter.md +0 -99
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/user-journey-mapper.md +0 -101
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/user-researcher.md +0 -56
- package/src/modules/bmm/tasks/daily-standup.md +0 -91
- package/src/modules/bmm/tasks/retrospective.md +0 -110
- package/src/modules/bmm/teams/team-all.yaml +0 -7
- package/src/modules/bmm/teams/team-dev.yaml +0 -14
- package/src/modules/bmm/teams/team-gamedev.yaml +0 -9
- package/src/modules/bmm/testarch/atdd.md +0 -40
- package/src/modules/bmm/testarch/automate.md +0 -38
- package/src/modules/bmm/testarch/ci.md +0 -39
- package/src/modules/bmm/testarch/framework.md +0 -41
- package/src/modules/bmm/testarch/nfr-assess.md +0 -38
- package/src/modules/bmm/testarch/risk-profile.md +0 -38
- package/src/modules/bmm/testarch/tea-commands.csv +0 -11
- package/src/modules/bmm/testarch/tea-gate.md +0 -38
- package/src/modules/bmm/testarch/tea-knowledge.md +0 -275
- package/src/modules/bmm/testarch/test-design.md +0 -39
- package/src/modules/bmm/testarch/test-levels-framework.md +0 -148
- package/src/modules/bmm/testarch/test-priorities-matrix.md +0 -174
- package/src/modules/bmm/testarch/trace-requirements.md +0 -38
- package/src/modules/bmm/workflows/1-analysis/brainstorm-game/instructions.md +0 -47
- package/src/modules/bmm/workflows/1-analysis/brainstorm-game/workflow.yaml +0 -22
- package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
- package/src/modules/bmm/workflows/1-analysis/game-brief/instructions.md +0 -517
- package/src/modules/bmm/workflows/1-analysis/game-brief/workflow.yaml +0 -34
- package/src/modules/bmm/workflows/1-analysis/product-brief/README.md +0 -180
- package/src/modules/bmm/workflows/1-analysis/research/README.md +0 -454
- package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +0 -259
- package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +0 -190
- package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +0 -337
- package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +0 -107
- package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +0 -329
- package/src/modules/bmm/workflows/2-plan/README.md +0 -203
- package/src/modules/bmm/workflows/2-plan/checklist.md +0 -369
- package/src/modules/bmm/workflows/2-plan/gdd/README.md +0 -222
- package/src/modules/bmm/workflows/2-plan/gdd/instructions-gdd.md +0 -480
- package/src/modules/bmm/workflows/2-plan/instructions-router.md +0 -222
- package/src/modules/bmm/workflows/2-plan/prd/analysis-template.md +0 -53
- package/src/modules/bmm/workflows/2-plan/prd/epics-template.md +0 -18
- package/src/modules/bmm/workflows/2-plan/prd/instructions-lg.md +0 -267
- package/src/modules/bmm/workflows/2-plan/prd/instructions-med.md +0 -251
- package/src/modules/bmm/workflows/2-plan/prd/prd-template.md +0 -73
- package/src/modules/bmm/workflows/2-plan/tech-spec/instructions-sm.md +0 -137
- package/src/modules/bmm/workflows/2-plan/tech-spec/tech-spec-template.md +0 -59
- package/src/modules/bmm/workflows/2-plan/ux/instructions-ux.md +0 -360
- package/src/modules/bmm/workflows/2-plan/ux/ux-spec-template.md +0 -162
- package/src/modules/bmm/workflows/2-plan/workflow.yaml +0 -60
- package/src/modules/bmm/workflows/3-solutioning/ADR-template.md +0 -74
- package/src/modules/bmm/workflows/3-solutioning/README.md +0 -565
- package/src/modules/bmm/workflows/3-solutioning/checklist.md +0 -170
- package/src/modules/bmm/workflows/3-solutioning/instructions.md +0 -661
- package/src/modules/bmm/workflows/3-solutioning/project-types/backend-questions.md +0 -490
- package/src/modules/bmm/workflows/3-solutioning/project-types/cli-questions.md +0 -337
- package/src/modules/bmm/workflows/3-solutioning/project-types/data-questions.md +0 -472
- package/src/modules/bmm/workflows/3-solutioning/project-types/desktop-questions.md +0 -299
- package/src/modules/bmm/workflows/3-solutioning/project-types/embedded-questions.md +0 -118
- package/src/modules/bmm/workflows/3-solutioning/project-types/extension-questions.md +0 -374
- package/src/modules/bmm/workflows/3-solutioning/project-types/game-questions.md +0 -133
- package/src/modules/bmm/workflows/3-solutioning/project-types/infra-questions.md +0 -484
- package/src/modules/bmm/workflows/3-solutioning/project-types/library-questions.md +0 -146
- package/src/modules/bmm/workflows/3-solutioning/project-types/mobile-questions.md +0 -110
- package/src/modules/bmm/workflows/3-solutioning/project-types/project-types.csv +0 -12
- package/src/modules/bmm/workflows/3-solutioning/project-types/web-questions.md +0 -136
- package/src/modules/bmm/workflows/3-solutioning/tech-spec/README.md +0 -195
- package/src/modules/bmm/workflows/3-solutioning/tech-spec/instructions.md +0 -73
- package/src/modules/bmm/workflows/3-solutioning/tech-spec/workflow.yaml +0 -51
- package/src/modules/bmm/workflows/3-solutioning/templates/backend-service-architecture.md +0 -66
- package/src/modules/bmm/workflows/3-solutioning/templates/cli-tool-architecture.md +0 -66
- package/src/modules/bmm/workflows/3-solutioning/templates/data-pipeline-architecture.md +0 -66
- package/src/modules/bmm/workflows/3-solutioning/templates/desktop-app-architecture.md +0 -66
- package/src/modules/bmm/workflows/3-solutioning/templates/embedded-firmware-architecture.md +0 -66
- package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-architecture.md +0 -244
- package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-godot-guide.md +0 -428
- package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-unity-guide.md +0 -333
- package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-web-guide.md +0 -528
- package/src/modules/bmm/workflows/3-solutioning/templates/infrastructure-architecture.md +0 -66
- package/src/modules/bmm/workflows/3-solutioning/templates/library-package-architecture.md +0 -66
- package/src/modules/bmm/workflows/3-solutioning/templates/mobile-app-architecture.md +0 -66
- package/src/modules/bmm/workflows/3-solutioning/templates/registry.csv +0 -172
- package/src/modules/bmm/workflows/3-solutioning/templates/web-api-architecture.md +0 -66
- package/src/modules/bmm/workflows/3-solutioning/templates/web-fullstack-architecture.md +0 -277
- package/src/modules/bmm/workflows/3-solutioning/workflow.yaml +0 -65
- package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -42
- package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +0 -84
- package/src/modules/bmm/workflows/4-implementation/review-story/README.md +0 -72
- package/src/modules/bmm/workflows/4-implementation/review-story/instructions.md +0 -176
- package/src/modules/bmm/workflows/4-implementation/review-story/workflow.yaml +0 -99
- package/src/modules/bmm/workflows/4-implementation/story-context/README.md +0 -234
- package/src/modules/cis/agents/brainstorming-coach.md +0 -24
- package/src/modules/cis/agents/creative-problem-solver.md +0 -24
- package/src/modules/cis/agents/design-thinking-coach.md +0 -24
- package/src/modules/cis/agents/innovation-strategist.md +0 -24
- package/src/modules/cis/agents/storyteller.md +0 -24
- package/src/modules/cis/readme.md +0 -86
- package/tools/cli/installers/lib/ide/workflow-command-generator.js +0 -162
- package/tools/test-agents/captain-kirk-commander.md +0 -110
- package/tools/test-agents/data-operations-android.md +0 -123
- package/tools/test-agents/geordi-chief-engineer.md +0 -135
- package/tools/test-agents/isabella-martinez-ethicist.md +0 -109
- package/tools/test-agents/marcus-thompson-security.md +0 -109
- package/tools/test-agents/maya-patel-pragmatist.md +0 -82
- package/tools/test-agents/picard-diplomat-captain.md +0 -134
- package/tools/test-agents/spock-science-officer.md +0 -124
- package/tools/test-agents/william-smithers-technocrat.md +0 -71
- package/tools/test-agents/zara-chen-designer.md +0 -94
- /package/src/{modules/cis → core}/workflows/brainstorming/brain-methods.csv +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/2-plan → bmgd/workflows/2-design}/gdd/game-types/metroidvania.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/puzzle.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types.csv +0 -0
- /package/src/modules/{bmm/workflows/4-implementation/review-story → bmgd/workflows/4-production/code-review}/backlog_template.md +0 -0
- /package/src/modules/{bmm/workflows/4-implementation/review-story → bmgd/workflows/4-production/code-review}/checklist.md +0 -0
- /package/src/modules/bmm/_module-installer/assets/{technical-decisions-template.md → technical-decisions.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
|
* Cursor IDE setup handler
|
|
@@ -12,6 +13,20 @@ class CursorSetup extends BaseIdeSetup {
|
|
|
12
13
|
this.rulesDir = 'rules';
|
|
13
14
|
}
|
|
14
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Cleanup old BMAD installation before reinstalling
|
|
18
|
+
* @param {string} projectDir - Project directory
|
|
19
|
+
*/
|
|
20
|
+
async cleanup(projectDir) {
|
|
21
|
+
const fs = require('fs-extra');
|
|
22
|
+
const bmadRulesDir = path.join(projectDir, this.configDir, this.rulesDir, 'bmad');
|
|
23
|
+
|
|
24
|
+
if (await fs.pathExists(bmadRulesDir)) {
|
|
25
|
+
await fs.remove(bmadRulesDir);
|
|
26
|
+
console.log(chalk.dim(` Removed old BMAD rules from ${this.name}`));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
15
30
|
/**
|
|
16
31
|
* Setup Cursor IDE configuration
|
|
17
32
|
* @param {string} projectDir - Project directory
|
|
@@ -21,6 +36,9 @@ class CursorSetup extends BaseIdeSetup {
|
|
|
21
36
|
async setup(projectDir, bmadDir, options = {}) {
|
|
22
37
|
console.log(chalk.cyan(`Setting up ${this.name}...`));
|
|
23
38
|
|
|
39
|
+
// Clean up old BMAD installation first
|
|
40
|
+
await this.cleanup(projectDir);
|
|
41
|
+
|
|
24
42
|
// Create .cursor/rules directory structure
|
|
25
43
|
const cursorDir = path.join(projectDir, this.configDir);
|
|
26
44
|
const rulesDir = path.join(cursorDir, this.rulesDir);
|
|
@@ -28,29 +46,40 @@ class CursorSetup extends BaseIdeSetup {
|
|
|
28
46
|
|
|
29
47
|
await this.ensureDir(bmadRulesDir);
|
|
30
48
|
|
|
31
|
-
//
|
|
32
|
-
const
|
|
33
|
-
const
|
|
49
|
+
// Generate agent launchers first
|
|
50
|
+
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
51
|
+
const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
|
|
52
|
+
|
|
53
|
+
// Convert artifacts to agent format for index creation
|
|
54
|
+
const agents = agentArtifacts.map((a) => ({ module: a.module, name: a.name }));
|
|
55
|
+
|
|
56
|
+
// Get tasks, tools, and workflows (standalone only)
|
|
57
|
+
const tasks = await this.getTasks(bmadDir, true);
|
|
58
|
+
const tools = await this.getTools(bmadDir, true);
|
|
59
|
+
const workflows = await this.getWorkflows(bmadDir, true);
|
|
34
60
|
|
|
35
61
|
// Create directories for each module
|
|
36
62
|
const modules = new Set();
|
|
37
|
-
for (const item of [...agents, ...tasks]) modules.add(item.module);
|
|
63
|
+
for (const item of [...agents, ...tasks, ...tools, ...workflows]) modules.add(item.module);
|
|
38
64
|
|
|
39
65
|
for (const module of modules) {
|
|
40
66
|
await this.ensureDir(path.join(bmadRulesDir, module));
|
|
41
67
|
await this.ensureDir(path.join(bmadRulesDir, module, 'agents'));
|
|
42
68
|
await this.ensureDir(path.join(bmadRulesDir, module, 'tasks'));
|
|
69
|
+
await this.ensureDir(path.join(bmadRulesDir, module, 'tools'));
|
|
70
|
+
await this.ensureDir(path.join(bmadRulesDir, module, 'workflows'));
|
|
43
71
|
}
|
|
44
72
|
|
|
45
|
-
// Process and
|
|
73
|
+
// Process and write agent launchers with MDC format
|
|
46
74
|
let agentCount = 0;
|
|
47
|
-
for (const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
75
|
+
for (const artifact of agentArtifacts) {
|
|
76
|
+
// Add MDC metadata header to launcher (but don't call processContent which adds activation headers)
|
|
77
|
+
const content = this.wrapLauncherWithMDC(artifact.content, {
|
|
78
|
+
module: artifact.module,
|
|
79
|
+
name: artifact.name,
|
|
51
80
|
});
|
|
52
81
|
|
|
53
|
-
const targetPath = path.join(bmadRulesDir,
|
|
82
|
+
const targetPath = path.join(bmadRulesDir, artifact.module, 'agents', `${artifact.name}.mdc`);
|
|
54
83
|
|
|
55
84
|
await this.writeFile(targetPath, content);
|
|
56
85
|
agentCount++;
|
|
@@ -70,36 +99,68 @@ class CursorSetup extends BaseIdeSetup {
|
|
|
70
99
|
taskCount++;
|
|
71
100
|
}
|
|
72
101
|
|
|
102
|
+
// Process and copy tools
|
|
103
|
+
let toolCount = 0;
|
|
104
|
+
for (const tool of tools) {
|
|
105
|
+
const content = await this.readAndProcess(tool.path, {
|
|
106
|
+
module: tool.module,
|
|
107
|
+
name: tool.name,
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
const targetPath = path.join(bmadRulesDir, tool.module, 'tools', `${tool.name}.mdc`);
|
|
111
|
+
|
|
112
|
+
await this.writeFile(targetPath, content);
|
|
113
|
+
toolCount++;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Process and copy workflows
|
|
117
|
+
let workflowCount = 0;
|
|
118
|
+
for (const workflow of workflows) {
|
|
119
|
+
const content = await this.readAndProcess(workflow.path, {
|
|
120
|
+
module: workflow.module,
|
|
121
|
+
name: workflow.name,
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
const targetPath = path.join(bmadRulesDir, workflow.module, 'workflows', `${workflow.name}.mdc`);
|
|
125
|
+
|
|
126
|
+
await this.writeFile(targetPath, content);
|
|
127
|
+
workflowCount++;
|
|
128
|
+
}
|
|
129
|
+
|
|
73
130
|
// Create BMAD index file (but NOT .cursorrules - user manages that)
|
|
74
|
-
await this.createBMADIndex(bmadRulesDir, agents, tasks, modules);
|
|
131
|
+
await this.createBMADIndex(bmadRulesDir, agents, tasks, tools, workflows, modules);
|
|
75
132
|
|
|
76
133
|
console.log(chalk.green(`✓ ${this.name} configured:`));
|
|
77
134
|
console.log(chalk.dim(` - ${agentCount} agents installed`));
|
|
78
135
|
console.log(chalk.dim(` - ${taskCount} tasks installed`));
|
|
136
|
+
console.log(chalk.dim(` - ${toolCount} tools installed`));
|
|
137
|
+
console.log(chalk.dim(` - ${workflowCount} workflows installed`));
|
|
79
138
|
console.log(chalk.dim(` - Rules directory: ${path.relative(projectDir, bmadRulesDir)}`));
|
|
80
139
|
|
|
81
140
|
return {
|
|
82
141
|
success: true,
|
|
83
142
|
agents: agentCount,
|
|
84
143
|
tasks: taskCount,
|
|
144
|
+
tools: toolCount,
|
|
145
|
+
workflows: workflowCount,
|
|
85
146
|
};
|
|
86
147
|
}
|
|
87
148
|
|
|
88
149
|
/**
|
|
89
150
|
* Create BMAD index file for easy navigation
|
|
90
151
|
*/
|
|
91
|
-
async createBMADIndex(bmadRulesDir, agents, tasks, modules) {
|
|
152
|
+
async createBMADIndex(bmadRulesDir, agents, tasks, tools, workflows, modules) {
|
|
92
153
|
const indexPath = path.join(bmadRulesDir, 'index.mdc');
|
|
93
154
|
|
|
94
155
|
let content = `---
|
|
95
156
|
description: BMAD Method - Master Index
|
|
96
|
-
globs:
|
|
157
|
+
globs:
|
|
97
158
|
alwaysApply: true
|
|
98
159
|
---
|
|
99
160
|
|
|
100
161
|
# BMAD Method - Cursor Rules Index
|
|
101
162
|
|
|
102
|
-
This is the master index for all BMAD agents and
|
|
163
|
+
This is the master index for all BMAD agents, tasks, tools, and workflows available in your project.
|
|
103
164
|
|
|
104
165
|
## Installation Complete!
|
|
105
166
|
|
|
@@ -111,6 +172,8 @@ BMAD rules have been installed to: \`.cursor/rules/bmad/\`
|
|
|
111
172
|
|
|
112
173
|
- Reference specific agents: @bmad/{module}/agents/{agent-name}
|
|
113
174
|
- Reference specific tasks: @bmad/{module}/tasks/{task-name}
|
|
175
|
+
- Reference specific tools: @bmad/{module}/tools/{tool-name}
|
|
176
|
+
- Reference specific workflows: @bmad/{module}/workflows/{workflow-name}
|
|
114
177
|
- Reference entire modules: @bmad/{module}
|
|
115
178
|
- Reference this index: @bmad/index
|
|
116
179
|
|
|
@@ -140,6 +203,26 @@ BMAD rules have been installed to: \`.cursor/rules/bmad/\`
|
|
|
140
203
|
}
|
|
141
204
|
content += '\n';
|
|
142
205
|
}
|
|
206
|
+
|
|
207
|
+
// List tools for this module
|
|
208
|
+
const moduleTools = tools.filter((t) => t.module === module);
|
|
209
|
+
if (moduleTools.length > 0) {
|
|
210
|
+
content += `**Tools:**\n`;
|
|
211
|
+
for (const tool of moduleTools) {
|
|
212
|
+
content += `- @bmad/${module}/tools/${tool.name} - ${tool.name}\n`;
|
|
213
|
+
}
|
|
214
|
+
content += '\n';
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// List workflows for this module
|
|
218
|
+
const moduleWorkflows = workflows.filter((w) => w.module === module);
|
|
219
|
+
if (moduleWorkflows.length > 0) {
|
|
220
|
+
content += `**Workflows:**\n`;
|
|
221
|
+
for (const workflow of moduleWorkflows) {
|
|
222
|
+
content += `- @bmad/${module}/workflows/${workflow.name} - ${workflow.name}\n`;
|
|
223
|
+
}
|
|
224
|
+
content += '\n';
|
|
225
|
+
}
|
|
143
226
|
}
|
|
144
227
|
|
|
145
228
|
content += `
|
|
@@ -148,13 +231,15 @@ BMAD rules have been installed to: \`.cursor/rules/bmad/\`
|
|
|
148
231
|
- All BMAD rules are Manual type - reference them explicitly when needed
|
|
149
232
|
- Agents provide persona-based assistance with specific expertise
|
|
150
233
|
- Tasks are reusable workflows for common operations
|
|
234
|
+
- Tools provide specialized functionality
|
|
235
|
+
- Workflows orchestrate multi-step processes
|
|
151
236
|
- Each agent includes an activation block for proper initialization
|
|
152
237
|
|
|
153
238
|
## Configuration
|
|
154
239
|
|
|
155
240
|
BMAD rules are configured as Manual rules (alwaysApply: false) to give you control
|
|
156
241
|
over when they're included in your context. Reference them explicitly when you need
|
|
157
|
-
specific agent expertise or
|
|
242
|
+
specific agent expertise, task workflows, tools, or guided workflows.
|
|
158
243
|
`;
|
|
159
244
|
|
|
160
245
|
await this.writeFile(indexPath, content);
|
|
@@ -179,9 +264,18 @@ specific agent expertise or task workflows.
|
|
|
179
264
|
// First apply base processing (includes activation injection for agents)
|
|
180
265
|
let processed = super.processContent(content, metadata);
|
|
181
266
|
|
|
267
|
+
// Strip any existing frontmatter from the processed content
|
|
268
|
+
// This prevents duplicate frontmatter blocks
|
|
269
|
+
const frontmatterRegex = /^---\s*\n[\s\S]*?\n---\s*\n/;
|
|
270
|
+
if (frontmatterRegex.test(processed)) {
|
|
271
|
+
processed = processed.replace(frontmatterRegex, '');
|
|
272
|
+
}
|
|
273
|
+
|
|
182
274
|
// Determine the type and description based on content
|
|
183
275
|
const isAgent = content.includes('<agent');
|
|
184
276
|
const isTask = content.includes('<task');
|
|
277
|
+
const isTool = content.includes('<tool');
|
|
278
|
+
const isWorkflow = content.includes('workflow:') || content.includes('name:');
|
|
185
279
|
|
|
186
280
|
let description = '';
|
|
187
281
|
let globs = '';
|
|
@@ -191,16 +285,22 @@ specific agent expertise or task workflows.
|
|
|
191
285
|
const titleMatch = content.match(/title="([^"]+)"/);
|
|
192
286
|
const title = titleMatch ? titleMatch[1] : metadata.name;
|
|
193
287
|
description = `BMAD ${metadata.module.toUpperCase()} Agent: ${title}`;
|
|
194
|
-
|
|
195
|
-
// Manual rules for agents don't need globs
|
|
196
288
|
globs = '';
|
|
197
289
|
} else if (isTask) {
|
|
198
290
|
// Extract task name if available
|
|
199
|
-
const nameMatch = content.match(
|
|
291
|
+
const nameMatch = content.match(/name="([^"]+)"/);
|
|
200
292
|
const taskName = nameMatch ? nameMatch[1] : metadata.name;
|
|
201
293
|
description = `BMAD ${metadata.module.toUpperCase()} Task: ${taskName}`;
|
|
202
|
-
|
|
203
|
-
|
|
294
|
+
globs = '';
|
|
295
|
+
} else if (isTool) {
|
|
296
|
+
// Extract tool name if available
|
|
297
|
+
const nameMatch = content.match(/name="([^"]+)"/);
|
|
298
|
+
const toolName = nameMatch ? nameMatch[1] : metadata.name;
|
|
299
|
+
description = `BMAD ${metadata.module.toUpperCase()} Tool: ${toolName}`;
|
|
300
|
+
globs = '';
|
|
301
|
+
} else if (isWorkflow) {
|
|
302
|
+
// Workflow
|
|
303
|
+
description = `BMAD ${metadata.module.toUpperCase()} Workflow: ${metadata.name}`;
|
|
204
304
|
globs = '';
|
|
205
305
|
} else {
|
|
206
306
|
description = `BMAD ${metadata.module.toUpperCase()}: ${metadata.name}`;
|
|
@@ -219,6 +319,34 @@ alwaysApply: false
|
|
|
219
319
|
// Add the MDC header to the processed content
|
|
220
320
|
return mdcHeader + processed;
|
|
221
321
|
}
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Wrap launcher content with MDC metadata (without base processing)
|
|
325
|
+
* Launchers are already complete and should not have activation headers injected
|
|
326
|
+
*/
|
|
327
|
+
wrapLauncherWithMDC(launcherContent, metadata = {}) {
|
|
328
|
+
// Strip the launcher's frontmatter - we'll replace it with MDC frontmatter
|
|
329
|
+
const frontmatterRegex = /^---\s*\n[\s\S]*?\n---\s*\n/;
|
|
330
|
+
const contentWithoutFrontmatter = launcherContent.replace(frontmatterRegex, '');
|
|
331
|
+
|
|
332
|
+
// Extract metadata from launcher frontmatter for MDC description
|
|
333
|
+
const nameMatch = launcherContent.match(/name:\s*"([^"]+)"/);
|
|
334
|
+
const name = nameMatch ? nameMatch[1] : metadata.name;
|
|
335
|
+
|
|
336
|
+
const description = `BMAD ${metadata.module.toUpperCase()} Agent: ${name}`;
|
|
337
|
+
|
|
338
|
+
// Create MDC metadata header
|
|
339
|
+
const mdcHeader = `---
|
|
340
|
+
description: ${description}
|
|
341
|
+
globs:
|
|
342
|
+
alwaysApply: false
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
`;
|
|
346
|
+
|
|
347
|
+
// Return MDC header + launcher content (without its original frontmatter)
|
|
348
|
+
return mdcHeader + contentWithoutFrontmatter;
|
|
349
|
+
}
|
|
222
350
|
}
|
|
223
351
|
|
|
224
352
|
module.exports = { CursorSetup };
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
const path = require('node:path');
|
|
2
|
+
const fs = require('fs-extra');
|
|
3
|
+
const yaml = require('js-yaml');
|
|
2
4
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
5
|
const chalk = require('chalk');
|
|
6
|
+
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
4
7
|
|
|
5
8
|
/**
|
|
6
9
|
* Gemini CLI setup handler
|
|
@@ -8,9 +11,39 @@ const chalk = require('chalk');
|
|
|
8
11
|
*/
|
|
9
12
|
class GeminiSetup extends BaseIdeSetup {
|
|
10
13
|
constructor() {
|
|
11
|
-
super('gemini', 'Gemini CLI',
|
|
14
|
+
super('gemini', 'Gemini CLI', false);
|
|
12
15
|
this.configDir = '.gemini';
|
|
13
16
|
this.commandsDir = 'commands';
|
|
17
|
+
this.agentTemplatePath = path.join(__dirname, 'templates', 'gemini-agent-command.toml');
|
|
18
|
+
this.taskTemplatePath = path.join(__dirname, 'templates', 'gemini-task-command.toml');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Load config values from bmad installation
|
|
23
|
+
* @param {string} bmadDir - BMAD installation directory
|
|
24
|
+
* @returns {Object} Config values
|
|
25
|
+
*/
|
|
26
|
+
async loadConfigValues(bmadDir) {
|
|
27
|
+
const configValues = {
|
|
28
|
+
user_name: 'User', // Default fallback
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
// Try to load core config.yaml
|
|
32
|
+
const coreConfigPath = path.join(bmadDir, 'core', 'config.yaml');
|
|
33
|
+
if (await fs.pathExists(coreConfigPath)) {
|
|
34
|
+
try {
|
|
35
|
+
const configContent = await fs.readFile(coreConfigPath, 'utf8');
|
|
36
|
+
const config = yaml.load(configContent);
|
|
37
|
+
|
|
38
|
+
if (config.user_name) {
|
|
39
|
+
configValues.user_name = config.user_name;
|
|
40
|
+
}
|
|
41
|
+
} catch (error) {
|
|
42
|
+
console.warn(chalk.yellow(` Warning: Could not load config values: ${error.message}`));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return configValues;
|
|
14
47
|
}
|
|
15
48
|
|
|
16
49
|
/**
|
|
@@ -22,43 +55,47 @@ class GeminiSetup extends BaseIdeSetup {
|
|
|
22
55
|
async setup(projectDir, bmadDir, options = {}) {
|
|
23
56
|
console.log(chalk.cyan(`Setting up ${this.name}...`));
|
|
24
57
|
|
|
25
|
-
// Create .gemini/commands
|
|
58
|
+
// Create .gemini/commands directory (flat structure with bmad- prefix)
|
|
26
59
|
const geminiDir = path.join(projectDir, this.configDir);
|
|
27
60
|
const commandsDir = path.join(geminiDir, this.commandsDir);
|
|
28
|
-
const agentsDir = path.join(commandsDir, 'agents');
|
|
29
|
-
const tasksDir = path.join(commandsDir, 'tasks');
|
|
30
61
|
|
|
31
|
-
await this.ensureDir(
|
|
32
|
-
|
|
62
|
+
await this.ensureDir(commandsDir);
|
|
63
|
+
|
|
64
|
+
// Clean up any existing BMAD files before reinstalling
|
|
65
|
+
await this.cleanup(projectDir);
|
|
33
66
|
|
|
34
|
-
//
|
|
35
|
-
const
|
|
67
|
+
// Generate agent launchers
|
|
68
|
+
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
69
|
+
const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
|
|
70
|
+
|
|
71
|
+
// Get tasks
|
|
36
72
|
const tasks = await this.getTasks(bmadDir);
|
|
37
73
|
|
|
38
|
-
// Install agents as TOML files
|
|
74
|
+
// Install agents as TOML files with bmad- prefix (flat structure)
|
|
39
75
|
let agentCount = 0;
|
|
40
|
-
for (const
|
|
41
|
-
const
|
|
42
|
-
const tomlContent = this.createAgentToml(agent, content, bmadDir);
|
|
76
|
+
for (const artifact of agentArtifacts) {
|
|
77
|
+
const tomlContent = await this.createAgentLauncherToml(artifact);
|
|
43
78
|
|
|
44
|
-
|
|
79
|
+
// Flat structure: bmad-agent-{module}-{name}.toml
|
|
80
|
+
const tomlPath = path.join(commandsDir, `bmad-agent-${artifact.module}-${artifact.name}.toml`);
|
|
45
81
|
await this.writeFile(tomlPath, tomlContent);
|
|
46
82
|
agentCount++;
|
|
47
83
|
|
|
48
|
-
console.log(chalk.green(` ✓ Added agent: /bmad:agents:${
|
|
84
|
+
console.log(chalk.green(` ✓ Added agent: /bmad:agents:${artifact.module}:${artifact.name}`));
|
|
49
85
|
}
|
|
50
86
|
|
|
51
|
-
// Install tasks as TOML files
|
|
87
|
+
// Install tasks as TOML files with bmad- prefix (flat structure)
|
|
52
88
|
let taskCount = 0;
|
|
53
89
|
for (const task of tasks) {
|
|
54
90
|
const content = await this.readFile(task.path);
|
|
55
|
-
const tomlContent = this.createTaskToml(task, content
|
|
91
|
+
const tomlContent = await this.createTaskToml(task, content);
|
|
56
92
|
|
|
57
|
-
|
|
93
|
+
// Flat structure: bmad-task-{module}-{name}.toml
|
|
94
|
+
const tomlPath = path.join(commandsDir, `bmad-task-${task.module}-${task.name}.toml`);
|
|
58
95
|
await this.writeFile(tomlPath, tomlContent);
|
|
59
96
|
taskCount++;
|
|
60
97
|
|
|
61
|
-
console.log(chalk.green(` ✓ Added task: /bmad:tasks:${task.name}`));
|
|
98
|
+
console.log(chalk.green(` ✓ Added task: /bmad:tasks:${task.module}:${task.name}`));
|
|
62
99
|
}
|
|
63
100
|
|
|
64
101
|
console.log(chalk.green(`✓ ${this.name} configured:`));
|
|
@@ -76,84 +113,93 @@ class GeminiSetup extends BaseIdeSetup {
|
|
|
76
113
|
}
|
|
77
114
|
|
|
78
115
|
/**
|
|
79
|
-
* Create agent TOML content
|
|
116
|
+
* Create agent launcher TOML content from artifact
|
|
80
117
|
*/
|
|
81
|
-
|
|
82
|
-
//
|
|
83
|
-
const
|
|
84
|
-
const
|
|
118
|
+
async createAgentLauncherToml(artifact) {
|
|
119
|
+
// Strip frontmatter from launcher content
|
|
120
|
+
const frontmatterRegex = /^---\s*\n[\s\S]*?\n---\s*\n/;
|
|
121
|
+
const contentWithoutFrontmatter = artifact.content.replace(frontmatterRegex, '').trim();
|
|
85
122
|
|
|
86
|
-
//
|
|
87
|
-
const
|
|
123
|
+
// Extract title from launcher frontmatter
|
|
124
|
+
const titleMatch = artifact.content.match(/description:\s*"([^"]+)"/);
|
|
125
|
+
const title = titleMatch ? titleMatch[1] : this.formatTitle(artifact.name);
|
|
88
126
|
|
|
89
|
-
// Create TOML content
|
|
90
|
-
const
|
|
91
|
-
prompt = """
|
|
92
|
-
CRITICAL: You are now the BMad '${title}' agent. Adopt its persona and capabilities as defined in the following configuration.
|
|
127
|
+
// Create TOML wrapper around launcher content (without frontmatter)
|
|
128
|
+
const description = `BMAD ${artifact.module.toUpperCase()} Agent: ${title}`;
|
|
93
129
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
130
|
+
return `description = "${description}"
|
|
131
|
+
prompt = """
|
|
132
|
+
${contentWithoutFrontmatter}
|
|
97
133
|
"""
|
|
98
134
|
`;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Create agent TOML content using template
|
|
139
|
+
*/
|
|
140
|
+
async createAgentToml(agent, content) {
|
|
141
|
+
// Extract metadata
|
|
142
|
+
const titleMatch = content.match(/title="([^"]+)"/);
|
|
143
|
+
const title = titleMatch ? titleMatch[1] : this.formatTitle(agent.name);
|
|
144
|
+
|
|
145
|
+
// Load template
|
|
146
|
+
const template = await fs.readFile(this.agentTemplatePath, 'utf8');
|
|
147
|
+
|
|
148
|
+
// Replace template variables
|
|
149
|
+
// Note: {user_name} and other {config_values} are left as-is for runtime substitution by Gemini
|
|
150
|
+
const tomlContent = template
|
|
151
|
+
.replaceAll('{{title}}', title)
|
|
152
|
+
.replaceAll('{{bmad_folder}}', this.bmadFolderName)
|
|
153
|
+
.replaceAll('{{module}}', agent.module)
|
|
154
|
+
.replaceAll('{{name}}', agent.name);
|
|
99
155
|
|
|
100
156
|
return tomlContent;
|
|
101
157
|
}
|
|
102
158
|
|
|
103
159
|
/**
|
|
104
|
-
* Create task TOML content
|
|
160
|
+
* Create task TOML content using template
|
|
105
161
|
*/
|
|
106
|
-
createTaskToml(task, content
|
|
162
|
+
async createTaskToml(task, content) {
|
|
107
163
|
// Extract task name from XML if available
|
|
108
164
|
const nameMatch = content.match(/<name>([^<]+)<\/name>/);
|
|
109
165
|
const taskName = nameMatch ? nameMatch[1] : this.formatTitle(task.name);
|
|
110
166
|
|
|
111
|
-
//
|
|
112
|
-
const
|
|
167
|
+
// Load template
|
|
168
|
+
const template = await fs.readFile(this.taskTemplatePath, 'utf8');
|
|
113
169
|
|
|
114
|
-
//
|
|
115
|
-
const tomlContent =
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
Follow all instructions and complete the task as defined.
|
|
122
|
-
"""
|
|
123
|
-
`;
|
|
170
|
+
// Replace template variables
|
|
171
|
+
const tomlContent = template
|
|
172
|
+
.replaceAll('{{taskName}}', taskName)
|
|
173
|
+
.replaceAll('{{bmad_folder}}', this.bmadFolderName)
|
|
174
|
+
.replaceAll('{{module}}', task.module)
|
|
175
|
+
.replaceAll('{{filename}}', task.filename);
|
|
124
176
|
|
|
125
177
|
return tomlContent;
|
|
126
178
|
}
|
|
127
179
|
|
|
128
180
|
/**
|
|
129
|
-
* Cleanup Gemini configuration
|
|
181
|
+
* Cleanup Gemini configuration - surgically remove only BMAD files
|
|
130
182
|
*/
|
|
131
183
|
async cleanup(projectDir) {
|
|
132
184
|
const fs = require('fs-extra');
|
|
133
185
|
const commandsDir = path.join(projectDir, this.configDir, this.commandsDir);
|
|
134
|
-
const agentsDir = path.join(commandsDir, 'agents');
|
|
135
|
-
const tasksDir = path.join(commandsDir, 'tasks');
|
|
136
186
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
const files = await fs.readdir(
|
|
187
|
+
if (await fs.pathExists(commandsDir)) {
|
|
188
|
+
// Only remove files that start with bmad- prefix
|
|
189
|
+
const files = await fs.readdir(commandsDir);
|
|
190
|
+
let removed = 0;
|
|
191
|
+
|
|
140
192
|
for (const file of files) {
|
|
141
|
-
if (file.endsWith('.toml')) {
|
|
142
|
-
await fs.remove(path.join(
|
|
193
|
+
if (file.startsWith('bmad-') && file.endsWith('.toml')) {
|
|
194
|
+
await fs.remove(path.join(commandsDir, file));
|
|
195
|
+
removed++;
|
|
143
196
|
}
|
|
144
197
|
}
|
|
145
|
-
}
|
|
146
198
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
for (const file of files) {
|
|
150
|
-
if (file.endsWith('.toml')) {
|
|
151
|
-
await fs.remove(path.join(tasksDir, file));
|
|
152
|
-
}
|
|
199
|
+
if (removed > 0) {
|
|
200
|
+
console.log(chalk.dim(` Cleaned up ${removed} existing BMAD files`));
|
|
153
201
|
}
|
|
154
202
|
}
|
|
155
|
-
|
|
156
|
-
console.log(chalk.dim(`Removed BMAD configuration from Gemini CLI`));
|
|
157
203
|
}
|
|
158
204
|
}
|
|
159
205
|
|