bmad-method 6.0.0-alpha.1 → 6.0.0-alpha.11
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/idea_submission.md +1 -1
- package/.github/workflows/bundle-latest.yaml +277 -0
- package/.github/workflows/manual-release.yaml +64 -17
- package/.github/workflows/{lint.yaml → quality.yaml} +19 -2
- package/.husky/pre-commit +4 -0
- package/.prettierignore +4 -0
- package/.vscode/settings.json +3 -1
- package/CHANGELOG.md +321 -12
- package/CONTRIBUTING.md +1 -13
- package/README.md +138 -187
- package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
- package/docs/agent-customization-guide.md +208 -0
- package/docs/custom-agent-installation.md +169 -0
- package/docs/document-sharding-guide.md +449 -0
- 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 +1 -1
- package/docs/index.md +227 -0
- package/docs/installers-bundlers/ide-injections.md +2 -2
- package/docs/installers-bundlers/installers-modules-platforms-reference.md +80 -19
- package/docs/v4-to-v6-upgrade.md +21 -19
- package/docs/v6-open-items.md +17 -0
- package/docs/web-bundles-gemini-gpt-guide.md +473 -0
- package/eslint.config.mjs +2 -0
- package/package.json +6 -3
- package/src/core/_module-installer/install-config.yaml +17 -10
- 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/resources/excalidraw/README.md +160 -0
- package/src/core/resources/excalidraw/excalidraw-helpers.md +127 -0
- package/src/core/resources/excalidraw/library-loader.md +50 -0
- package/src/core/resources/excalidraw/validate-json-instructions.md +79 -0
- package/src/core/tasks/advanced-elicitation-methods.csv +21 -0
- package/{bmad/core/tasks/adv-elicit.xml → src/core/tasks/advanced-elicitation.xml} +6 -4
- package/src/core/tasks/index-docs.xml +1 -1
- package/src/core/tasks/validate-workflow.xml +1 -1
- package/src/core/tasks/workflow.xml +126 -22
- package/src/core/tools/shard-doc.xml +54 -45
- package/src/core/workflows/brainstorming/README.md +6 -16
- package/src/core/workflows/brainstorming/instructions.md +6 -5
- package/src/core/workflows/brainstorming/template.md +4 -0
- package/src/core/workflows/brainstorming/workflow.yaml +8 -13
- package/src/core/workflows/party-mode/instructions.md +2 -7
- package/src/core/workflows/party-mode/workflow.yaml +11 -6
- package/src/modules/bmb/README.md +135 -73
- package/src/modules/bmb/_module-installer/install-config.yaml +9 -4
- package/src/modules/bmb/agents/bmad-builder.agent.yaml +11 -12
- package/src/modules/bmb/docs/agent-compilation.md +340 -0
- package/src/modules/bmb/docs/agent-menu-patterns.md +524 -0
- package/src/modules/bmb/docs/expert-agent-architecture.md +364 -0
- package/src/modules/bmb/docs/index.md +55 -0
- package/src/modules/bmb/docs/module-agent-architecture.md +367 -0
- package/src/modules/bmb/docs/simple-agent-architecture.md +288 -0
- package/src/modules/bmb/docs/understanding-agent-types.md +184 -0
- package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/README.md +242 -0
- package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
- package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
- package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
- package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
- package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +152 -0
- package/src/modules/bmb/reference/agents/module-examples/README.md +50 -0
- package/src/modules/bmb/reference/agents/module-examples/security-engineer.agent.yaml +53 -0
- package/src/modules/bmb/reference/agents/module-examples/trend-analyst.agent.yaml +57 -0
- package/src/modules/bmb/reference/agents/simple-examples/README.md +223 -0
- package/src/modules/bmb/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
- package/src/modules/bmb/reference/readme.md +3 -0
- package/src/modules/bmb/workflows/audit-workflow/checklist.md +5 -6
- package/src/modules/bmb/workflows/audit-workflow/instructions.md +6 -6
- 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 -10
- package/src/modules/bmb/workflows/create-agent/agent-validation-checklist.md +174 -0
- package/src/modules/bmb/workflows/create-agent/brainstorm-context.md +99 -120
- package/src/modules/bmb/workflows/create-agent/communication-presets.csv +61 -0
- package/src/modules/bmb/workflows/create-agent/instructions.md +171 -82
- package/src/modules/bmb/workflows/create-agent/workflow.yaml +26 -20
- package/src/modules/bmb/workflows/create-module/README.md +163 -154
- package/src/modules/bmb/workflows/create-module/checklist.md +1 -10
- package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +1 -1
- package/src/modules/bmb/workflows/create-module/instructions.md +13 -17
- package/src/modules/bmb/workflows/create-module/module-structure.md +39 -5
- package/src/modules/bmb/workflows/create-module/workflow.yaml +21 -13
- 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 +46 -37
- package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +219 -42
- package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +4 -2
- package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +12 -16
- package/src/modules/bmb/workflows/create-workflow/workflow.yaml +7 -8
- package/src/modules/bmb/workflows/edit-agent/README.md +174 -47
- package/src/modules/bmb/workflows/edit-agent/instructions.md +399 -35
- package/src/modules/bmb/workflows/edit-agent/workflow.yaml +27 -13
- 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 +7 -5
- package/src/modules/bmb/workflows/edit-module/workflow.yaml +11 -13
- package/src/modules/bmb/workflows/edit-workflow/instructions.md +4 -4
- package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +6 -8
- package/src/modules/bmb/workflows/module-brief/README.md +2 -2
- package/src/modules/bmb/workflows/module-brief/checklist.md +2 -2
- package/src/modules/bmb/workflows/module-brief/instructions.md +3 -2
- package/src/modules/bmb/workflows/module-brief/workflow.yaml +12 -7
- 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/{bmm → bmgd}/teams/team-gamedev.yaml +5 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +130 -0
- 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 +44 -28
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/workflow.yaml +9 -17
- package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/instructions-gdd.md +58 -31
- 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 +75 -28
- package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/workflow.yaml +6 -12
- 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/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 +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/bmgd/workflows/4-production/epic-tech-context/checklist.md +17 -0
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +164 -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 +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 +79 -92
- package/src/modules/bmm/_module-installer/install-config.yaml +9 -23
- package/src/modules/bmm/_module-installer/installer.js +2 -2
- package/src/modules/bmm/agents/analyst.agent.yaml +25 -19
- package/src/modules/bmm/agents/architect.agent.yaml +28 -19
- package/src/modules/bmm/agents/dev.agent.yaml +12 -15
- package/src/modules/bmm/agents/pm.agent.yaml +40 -22
- package/src/modules/bmm/agents/sm.agent.yaml +30 -24
- package/src/modules/bmm/agents/tea.agent.yaml +25 -17
- package/src/modules/bmm/agents/tech-writer.agent.yaml +80 -0
- package/src/modules/bmm/agents/ux-designer.agent.yaml +22 -12
- package/src/modules/bmm/docs/README.md +240 -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/images/workflow-method-greenfield.excalidraw +5919 -0
- package/src/modules/bmm/docs/images/workflow-method-greenfield.svg +2 -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 +382 -0
- package/src/modules/bmm/docs/scale-adaptive-system.md +618 -0
- package/src/modules/bmm/docs/test-architecture.md +396 -0
- package/src/modules/bmm/{workflows/3-solutioning/architecture/readme.md → docs/workflow-architecture-reference.md} +132 -84
- package/src/modules/bmm/{workflows/document-project/README.md → docs/workflow-document-project-reference.md} +49 -4
- package/src/modules/bmm/docs/workflows-analysis.md +370 -0
- package/src/modules/bmm/docs/workflows-implementation.md +296 -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 +2 -0
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +45 -24
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +8 -8
- 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/instructions.md +435 -232
- package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +93 -77
- package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +32 -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 +70 -65
- package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +205 -143
- package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +55 -46
- package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +116 -83
- package/src/modules/bmm/workflows/1-analysis/research/template-market.md +37 -1
- package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +36 -1
- package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +25 -12
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +51 -26
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +67 -16
- package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +292 -63
- 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 +544 -290
- package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +165 -23
- 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 +50 -18
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +146 -36
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +67 -4
- 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 +874 -163
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +132 -6
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +54 -20
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +36 -28
- package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -26
- package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +5 -9
- package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +215 -150
- package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +72 -26
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/epics-template.md +80 -0
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/instructions.md +616 -0
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.yaml +63 -0
- package/src/modules/bmm/workflows/3-solutioning/{solutioning-gate-check → implementation-readiness}/checklist.md +7 -13
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +332 -0
- package/src/modules/bmm/workflows/3-solutioning/{solutioning-gate-check → implementation-readiness}/template.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +64 -0
- package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +25 -18
- package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +31 -26
- package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +7 -2
- package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +38 -25
- package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +22 -18
- package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +38 -14
- package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +8 -3
- package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +35 -5
- 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 +10 -6
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +40 -16
- package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1207 -243
- package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +38 -26
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +28 -15
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +1 -1
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +16 -6
- 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 +23 -15
- package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +39 -8
- package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +5 -4
- package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +6 -6
- package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +5 -7
- package/src/modules/bmm/workflows/diagrams/_shared/excalidraw-library.json +90 -0
- package/src/modules/bmm/workflows/diagrams/_shared/excalidraw-templates.yaml +127 -0
- package/src/modules/bmm/workflows/diagrams/create-dataflow/checklist.md +39 -0
- package/src/modules/bmm/workflows/diagrams/create-dataflow/instructions.md +130 -0
- package/src/modules/bmm/workflows/diagrams/create-dataflow/workflow.yaml +27 -0
- package/src/modules/bmm/workflows/diagrams/create-diagram/checklist.md +43 -0
- package/src/modules/bmm/workflows/diagrams/create-diagram/instructions.md +141 -0
- package/src/modules/bmm/workflows/diagrams/create-diagram/workflow.yaml +27 -0
- package/src/modules/bmm/workflows/diagrams/create-flowchart/checklist.md +49 -0
- package/src/modules/bmm/workflows/diagrams/create-flowchart/instructions.md +241 -0
- package/src/modules/bmm/workflows/diagrams/create-flowchart/workflow.yaml +27 -0
- package/src/modules/bmm/workflows/diagrams/create-wireframe/checklist.md +38 -0
- package/src/modules/bmm/workflows/diagrams/create-wireframe/instructions.md +133 -0
- package/src/modules/bmm/workflows/diagrams/create-wireframe/workflow.yaml +27 -0
- package/src/modules/bmm/workflows/document-project/checklist.md +1 -1
- package/src/modules/bmm/workflows/document-project/instructions.md +5 -5
- package/src/modules/bmm/workflows/document-project/workflow.yaml +2 -7
- package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +4 -4
- package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
- package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +13 -13
- package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
- package/src/modules/bmm/workflows/techdoc/documentation-standards.md +262 -0
- package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +2 -2
- package/src/modules/bmm/workflows/testarch/atdd/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -9
- package/src/modules/bmm/workflows/testarch/automate/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -11
- package/src/modules/bmm/workflows/testarch/ci/checklist.md +4 -4
- package/src/modules/bmm/workflows/testarch/ci/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -10
- package/src/modules/bmm/workflows/testarch/framework/checklist.md +4 -4
- package/src/modules/bmm/workflows/testarch/framework/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -8
- package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
- package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -11
- package/src/modules/bmm/workflows/testarch/test-design/checklist.md +4 -4
- package/src/modules/bmm/workflows/testarch/test-design/instructions.md +175 -14
- package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +4 -4
- package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +7 -11
- package/src/modules/bmm/workflows/testarch/test-review/instructions.md +1 -1
- package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -9
- package/src/modules/bmm/workflows/testarch/trace/instructions.md +9 -9
- package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -13
- package/src/modules/bmm/workflows/workflow-status/init/instructions.md +249 -212
- package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +6 -5
- package/src/modules/bmm/workflows/workflow-status/instructions.md +177 -113
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +126 -0
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +114 -0
- package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-3.yaml → method-brownfield.yaml} +48 -33
- package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +101 -0
- package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-1.yaml → quick-flow-brownfield.yaml} +18 -18
- package/src/modules/bmm/workflows/workflow-status/paths/{greenfield-level-1.yaml → quick-flow-greenfield.yaml} +16 -18
- package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
- package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
- package/src/modules/bmm/workflows/workflow-status/workflow.yaml +5 -5
- package/src/modules/cis/README.md +153 -0
- 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/presentation-master.agent.yaml +60 -0
- 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 +102 -30
- package/src/modules/cis/workflows/design-thinking/instructions.md +4 -2
- package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -12
- package/src/modules/cis/workflows/innovation-strategy/instructions.md +7 -5
- package/src/modules/cis/workflows/innovation-strategy/template.md +3 -3
- package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -12
- package/src/modules/cis/workflows/problem-solving/instructions.md +4 -2
- package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -12
- package/src/modules/cis/workflows/storytelling/instructions.md +14 -4
- package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -12
- 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/bmad-npx-wrapper.js +10 -98
- package/tools/cli/README.md +50 -32
- package/tools/cli/bundlers/web-bundler.js +322 -26
- package/tools/cli/commands/agent-install.js +409 -0
- package/tools/cli/commands/install.js +2 -5
- package/tools/cli/installers/lib/core/config-collector.js +279 -39
- package/tools/cli/installers/lib/core/detector.js +62 -7
- package/tools/cli/installers/lib/core/ide-config-manager.js +3 -1
- package/tools/cli/installers/lib/core/installer.js +338 -46
- package/tools/cli/installers/lib/core/manifest-generator.js +33 -117
- package/tools/cli/installers/lib/core/manifest.js +6 -2
- package/tools/cli/installers/lib/ide/_base-ide.js +82 -3
- package/tools/cli/installers/lib/ide/antigravity.js +463 -0
- package/tools/cli/installers/lib/ide/auggie.js +81 -238
- package/tools/cli/installers/lib/ide/claude-code.js +90 -25
- package/tools/cli/installers/lib/ide/cline.js +15 -18
- package/tools/cli/installers/lib/ide/codex.js +225 -71
- package/tools/cli/installers/lib/ide/crush.js +14 -50
- package/tools/cli/installers/lib/ide/cursor.js +116 -8
- package/tools/cli/installers/lib/ide/gemini.js +87 -37
- package/tools/cli/installers/lib/ide/github-copilot.js +121 -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 +50 -0
- package/tools/cli/installers/lib/ide/opencode.js +61 -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 +65 -8
- package/tools/cli/installers/lib/modules/manager.js +213 -7
- package/tools/cli/lib/agent/compiler.js +390 -0
- package/tools/cli/lib/agent/installer.js +725 -0
- package/tools/cli/lib/agent/template-engine.js +152 -0
- package/tools/cli/lib/cli-utils.js +52 -50
- package/tools/cli/lib/config.js +3 -1
- package/tools/cli/lib/ui.js +34 -17
- package/tools/cli/lib/xml-handler.js +1 -0
- package/tools/cli/lib/yaml-format.js +2 -1
- package/tools/cli/lib/yaml-xml-builder.js +76 -8
- package/tools/schema/agent.js +12 -3
- package/.claude/commands/bmad/bmb/agents/bmad-builder.md +0 -70
- package/.claude/commands/bmad/bmb/workflows/README.md +0 -67
- package/.claude/commands/bmad/bmb/workflows/audit-workflow.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/convert-legacy.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/create-agent.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/create-module.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/create-workflow.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/edit-agent.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/edit-module.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/edit-workflow.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/module-brief.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/redoc.md +0 -15
- package/.claude/commands/bmad/bmd/agents/cli-chief.md +0 -108
- package/.claude/commands/bmad/bmd/agents/doc-keeper.md +0 -115
- package/.claude/commands/bmad/bmd/agents/release-chief.md +0 -109
- package/.claude/commands/bmad/core/agents/bmad-master.md +0 -71
- package/.claude/commands/bmad/core/tasks/index-docs.md +0 -9
- package/.claude/commands/bmad/core/tools/shard-doc.md +0 -9
- package/.claude/commands/bmad/core/workflows/README.md +0 -27
- package/.claude/commands/bmad/core/workflows/brainstorming.md +0 -15
- package/.claude/commands/bmad/core/workflows/party-mode.md +0 -15
- package/.claude/hooks/bmad-tts-injector.sh +0 -415
- package/.claude/hooks/bmad-voice-manager.sh +0 -511
- package/.claude/hooks/check-output-style.sh +0 -112
- package/.claude/hooks/download-extra-voices.sh +0 -244
- package/.claude/hooks/github-star-reminder.sh +0 -154
- package/.claude/hooks/language-manager.sh +0 -392
- package/.claude/hooks/learn-manager.sh +0 -475
- package/.claude/hooks/personality-manager.sh +0 -438
- package/.claude/hooks/piper-download-voices.sh +0 -165
- package/.claude/hooks/piper-installer.sh +0 -178
- package/.claude/hooks/piper-multispeaker-registry.sh +0 -165
- package/.claude/hooks/piper-voice-manager.sh +0 -293
- package/.claude/hooks/play-tts-elevenlabs.sh +0 -404
- package/.claude/hooks/play-tts-piper.sh +0 -338
- package/.claude/hooks/play-tts.sh +0 -100
- package/.claude/hooks/provider-commands.sh +0 -540
- package/.claude/hooks/provider-manager.sh +0 -298
- package/.claude/hooks/replay-target-audio.sh +0 -95
- package/.claude/hooks/sentiment-manager.sh +0 -201
- package/.claude/hooks/speed-manager.sh +0 -291
- package/.claude/hooks/voice-manager.sh +0 -594
- package/.claude/hooks/voices-config.sh +0 -70
- package/.claude/settings.local.json +0 -41
- package/bmad/_cfg/agent-manifest.csv +0 -7
- package/bmad/_cfg/agents/bmb-bmad-builder.customize.yaml +0 -42
- package/bmad/_cfg/agents/bmd-cli-chief.customize.yaml +0 -32
- package/bmad/_cfg/agents/bmd-doc-keeper.customize.yaml +0 -42
- package/bmad/_cfg/agents/bmd-release-chief.customize.yaml +0 -42
- package/bmad/_cfg/agents/core-bmad-master.customize.yaml +0 -42
- package/bmad/_cfg/files-manifest.csv +0 -83
- package/bmad/_cfg/manifest.yaml +0 -12
- package/bmad/_cfg/task-manifest.csv +0 -5
- package/bmad/_cfg/tool-manifest.csv +0 -2
- package/bmad/_cfg/workflow-manifest.csv +0 -15
- package/bmad/bmb/README.md +0 -132
- package/bmad/bmb/agents/bmad-builder.md +0 -70
- package/bmad/bmb/config.yaml +0 -14
- package/bmad/bmb/workflows/audit-workflow/checklist.md +0 -143
- package/bmad/bmb/workflows/audit-workflow/instructions.md +0 -341
- package/bmad/bmb/workflows/audit-workflow/template.md +0 -118
- package/bmad/bmb/workflows/audit-workflow/workflow.yaml +0 -23
- package/bmad/bmb/workflows/audit-workflow/workflow.yaml.bak +0 -21
- package/bmad/bmb/workflows/convert-legacy/README.md +0 -262
- package/bmad/bmb/workflows/convert-legacy/checklist.md +0 -205
- package/bmad/bmb/workflows/convert-legacy/instructions.md +0 -377
- package/bmad/bmb/workflows/convert-legacy/workflow.yaml +0 -32
- package/bmad/bmb/workflows/create-agent/README.md +0 -320
- package/bmad/bmb/workflows/create-agent/agent-architecture.md +0 -419
- package/bmad/bmb/workflows/create-agent/agent-architecture.md.bak +0 -412
- package/bmad/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
- package/bmad/bmb/workflows/create-agent/agent-command-patterns.md.bak +0 -759
- package/bmad/bmb/workflows/create-agent/agent-types.md +0 -292
- package/bmad/bmb/workflows/create-agent/brainstorm-context.md +0 -174
- package/bmad/bmb/workflows/create-agent/checklist.md +0 -62
- package/bmad/bmb/workflows/create-agent/communication-styles.md +0 -202
- package/bmad/bmb/workflows/create-agent/instructions.md +0 -430
- package/bmad/bmb/workflows/create-agent/workflow.yaml +0 -37
- package/bmad/bmb/workflows/create-module/README.md +0 -220
- package/bmad/bmb/workflows/create-module/README.md.bak +0 -218
- package/bmad/bmb/workflows/create-module/brainstorm-context.md +0 -137
- package/bmad/bmb/workflows/create-module/checklist.md +0 -244
- package/bmad/bmb/workflows/create-module/checklist.md.bak +0 -245
- package/bmad/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
- package/bmad/bmb/workflows/create-module/installer-templates/installer.js +0 -231
- package/bmad/bmb/workflows/create-module/installer-templates/installer.js.bak +0 -231
- package/bmad/bmb/workflows/create-module/instructions.md +0 -581
- package/bmad/bmb/workflows/create-module/instructions.md.bak +0 -521
- package/bmad/bmb/workflows/create-module/module-structure.md +0 -366
- package/bmad/bmb/workflows/create-module/module-structure.md.bak +0 -310
- package/bmad/bmb/workflows/create-module/workflow.yaml +0 -42
- package/bmad/bmb/workflows/create-module/workflow.yaml.bak +0 -40
- package/bmad/bmb/workflows/create-workflow/README.md +0 -277
- package/bmad/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
- package/bmad/bmb/workflows/create-workflow/checklist.md +0 -94
- package/bmad/bmb/workflows/create-workflow/instructions.md +0 -716
- package/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1150
- package/bmad/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
- package/bmad/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -13
- package/bmad/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
- package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -39
- package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml.bak +0 -39
- package/bmad/bmb/workflows/create-workflow/workflow.yaml +0 -40
- package/bmad/bmb/workflows/create-workflow/workflow.yaml.bak +0 -38
- package/bmad/bmb/workflows/edit-agent/README.md +0 -112
- package/bmad/bmb/workflows/edit-agent/checklist.md +0 -112
- package/bmad/bmb/workflows/edit-agent/instructions.md +0 -290
- package/bmad/bmb/workflows/edit-agent/workflow.yaml +0 -33
- package/bmad/bmb/workflows/edit-module/README.md +0 -187
- package/bmad/bmb/workflows/edit-module/checklist.md +0 -165
- package/bmad/bmb/workflows/edit-module/instructions.md +0 -339
- package/bmad/bmb/workflows/edit-module/workflow.yaml +0 -34
- package/bmad/bmb/workflows/edit-workflow/README.md +0 -119
- package/bmad/bmb/workflows/edit-workflow/checklist.md +0 -70
- package/bmad/bmb/workflows/edit-workflow/instructions.md +0 -342
- package/bmad/bmb/workflows/edit-workflow/workflow.yaml +0 -27
- package/bmad/bmb/workflows/edit-workflow/workflow.yaml.bak +0 -25
- package/bmad/bmb/workflows/module-brief/README.md +0 -264
- package/bmad/bmb/workflows/module-brief/checklist.md +0 -116
- package/bmad/bmb/workflows/module-brief/instructions.md +0 -267
- package/bmad/bmb/workflows/module-brief/template.md +0 -275
- package/bmad/bmb/workflows/module-brief/workflow.yaml +0 -29
- package/bmad/bmb/workflows/module-brief/workflow.yaml.bak +0 -27
- package/bmad/bmb/workflows/redoc/README.md +0 -87
- package/bmad/bmb/workflows/redoc/checklist.md +0 -99
- package/bmad/bmb/workflows/redoc/instructions.md +0 -265
- package/bmad/bmb/workflows/redoc/workflow.yaml +0 -32
- package/bmad/bmb/workflows/redoc/workflow.yaml.bak +0 -31
- package/bmad/bmd/README.md +0 -193
- package/bmad/bmd/README.md.bak +0 -193
- package/bmad/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
- package/bmad/bmd/agents/cli-chief-sidecar/instructions.md.bak +0 -102
- package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
- package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md.bak +0 -68
- package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
- package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md.bak +0 -123
- package/bmad/bmd/agents/cli-chief-sidecar/memories.md +0 -53
- package/bmad/bmd/agents/cli-chief-sidecar/memories.md.bak +0 -53
- package/bmad/bmd/agents/cli-chief.md +0 -108
- package/bmad/bmd/agents/cli-chief.md.bak +0 -108
- package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
- package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md.bak +0 -177
- package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
- package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md.bak +0 -81
- package/bmad/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
- package/bmad/bmd/agents/doc-keeper-sidecar/memories.md.bak +0 -88
- package/bmad/bmd/agents/doc-keeper.md +0 -115
- package/bmad/bmd/agents/doc-keeper.md.bak +0 -115
- package/bmad/bmd/agents/release-chief-sidecar/instructions.md +0 -164
- package/bmad/bmd/agents/release-chief-sidecar/instructions.md.bak +0 -164
- package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
- package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md.bak +0 -82
- package/bmad/bmd/agents/release-chief-sidecar/memories.md +0 -73
- package/bmad/bmd/agents/release-chief-sidecar/memories.md.bak +0 -73
- package/bmad/bmd/agents/release-chief.md +0 -109
- package/bmad/bmd/agents/release-chief.md.bak +0 -109
- package/bmad/bmd/config.yaml +0 -10
- package/bmad/core/agents/bmad-master.md +0 -71
- package/bmad/core/agents/bmad-web-orchestrator.agent.xml +0 -122
- package/bmad/core/config.yaml +0 -9
- package/bmad/core/tasks/adv-elicit-methods.csv +0 -39
- package/bmad/core/tasks/index-docs.xml +0 -65
- package/bmad/core/tasks/validate-workflow.xml +0 -89
- package/bmad/core/tasks/workflow.xml +0 -174
- package/bmad/core/tools/shard-doc.xml +0 -100
- package/bmad/core/workflows/brainstorming/README.md +0 -271
- package/bmad/core/workflows/brainstorming/brain-methods.csv +0 -36
- package/bmad/core/workflows/brainstorming/instructions.md +0 -314
- package/bmad/core/workflows/brainstorming/template.md +0 -102
- package/bmad/core/workflows/brainstorming/workflow.yaml +0 -43
- package/bmad/core/workflows/party-mode/instructions.md +0 -188
- package/bmad/core/workflows/party-mode/workflow.yaml +0 -23
- package/bmad/docs/claude-code-instructions.md +0 -25
- package/bmad/docs/codex-instructions.md +0 -21
- 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/docs/bmad-brownfield-guide.md +0 -1260
- package/docs/conversion-report-shard-doc-2025-10-26.md +0 -188
- package/docs/installers-bundlers/web-bundler-usage.md +0 -54
- package/src/core/tasks/adv-elicit.xml +0 -104
- package/src/modules/bmb/workflows/create-agent/README.md +0 -320
- package/src/modules/bmb/workflows/create-agent/agent-architecture.md +0 -419
- package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
- package/src/modules/bmb/workflows/create-agent/agent-types.md +0 -292
- package/src/modules/bmb/workflows/create-agent/checklist.md +0 -62
- package/src/modules/bmb/workflows/create-agent/communication-styles.md +0 -202
- package/src/modules/bmb/workflows/edit-agent/checklist.md +0 -112
- package/src/modules/bmb/workflows/redoc/README.md +0 -87
- package/src/modules/bmb/workflows/redoc/checklist.md +0 -99
- package/src/modules/bmb/workflows/redoc/instructions.md +0 -265
- package/src/modules/bmb/workflows/redoc/workflow.yaml +0 -34
- 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 -39
- 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/bmad-analysis/api-documenter.md +0 -102
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/codebase-analyzer.md +0 -82
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/data-analyst.md +0 -101
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/pattern-detector.md +0 -84
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/dependency-mapper.md +0 -83
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/epic-optimizer.md +0 -81
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/requirements-analyst.md +0 -61
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/technical-decisions-curator.md +0 -168
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/trend-spotter.md +0 -115
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-journey-mapper.md +0 -123
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-researcher.md +0 -72
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/market-researcher.md +0 -51
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/tech-debt-auditor.md +0 -106
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/document-reviewer.md +0 -102
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/technical-evaluator.md +0 -68
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/test-coverage-analyzer.md +0 -108
- package/src/modules/bmm/tasks/daily-standup.xml +0 -85
- package/src/modules/bmm/tasks/retrospective.xml +0 -104
- package/src/modules/bmm/testarch/README.md +0 -311
- package/src/modules/bmm/workflows/1-analysis/brainstorm-game/README.md +0 -38
- package/src/modules/bmm/workflows/1-analysis/brainstorm-game/instructions.md +0 -109
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/README.md +0 -29
- package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
- 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-workflows/README.md +0 -258
- package/src/modules/bmm/workflows/2-plan-workflows/gdd/README.md +0 -222
- package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +0 -67
- package/src/modules/bmm/workflows/2-plan-workflows/prd/epics-template.md +0 -63
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +0 -167
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +0 -278
- package/src/modules/bmm/workflows/3-solutioning/README.md +0 -1
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/README.md +0 -177
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +0 -273
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +0 -189
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +0 -40
- package/src/modules/bmm/workflows/4-implementation/README.md +0 -221
- package/src/modules/bmm/workflows/4-implementation/code-review/README.md +0 -69
- package/src/modules/bmm/workflows/4-implementation/correct-course/README.md +0 -73
- package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -129
- package/src/modules/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +0 -367
- package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +0 -206
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/README.md +0 -195
- package/src/modules/bmm/workflows/4-implementation/retrospective/README.md +0 -77
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/README.md +0 -156
- package/src/modules/bmm/workflows/4-implementation/story-context/README.md +0 -234
- package/src/modules/bmm/workflows/README.md +0 -577
- package/src/modules/bmm/workflows/document-project/templates/README.md +0 -38
- package/src/modules/bmm/workflows/testarch/README.md +0 -26
- package/src/modules/bmm/workflows/testarch/atdd/README.md +0 -672
- package/src/modules/bmm/workflows/testarch/automate/README.md +0 -869
- package/src/modules/bmm/workflows/testarch/ci/README.md +0 -493
- package/src/modules/bmm/workflows/testarch/framework/README.md +0 -340
- package/src/modules/bmm/workflows/testarch/nfr-assess/README.md +0 -469
- package/src/modules/bmm/workflows/testarch/test-design/README.md +0 -493
- package/src/modules/bmm/workflows/testarch/test-review/README.md +0 -775
- package/src/modules/bmm/workflows/testarch/trace/README.md +0 -802
- package/src/modules/bmm/workflows/workflow-status/README.md +0 -241
- package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-0.yaml +0 -54
- package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-2.yaml +0 -76
- package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-4.yaml +0 -88
- package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +0 -75
- package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-0.yaml +0 -45
- package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-2.yaml +0 -78
- package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml +0 -73
- package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-4.yaml +0 -75
- package/src/modules/bmm/workflows/workflow-status/workflow-status-template.md +0 -30
- package/src/modules/cis/readme.md +0 -86
- package/test/fixtures/agent-schema/invalid/persona/principles-as-string.agent.yaml +0 -23
- package/v6-open-items.md +0 -23
- /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/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/checklist.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/narrative-template.md +0 -0
|
@@ -2,13 +2,13 @@ const path = require('node:path');
|
|
|
2
2
|
const fs = require('fs-extra');
|
|
3
3
|
const os = require('node:os');
|
|
4
4
|
const chalk = require('chalk');
|
|
5
|
-
const inquirer = require('inquirer');
|
|
6
5
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
7
|
-
const { WorkflowCommandGenerator } = require('./workflow-command-generator');
|
|
8
|
-
const {
|
|
6
|
+
const { WorkflowCommandGenerator } = require('./shared/workflow-command-generator');
|
|
7
|
+
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
8
|
+
const { getTasksFromBmad } = require('./shared/bmad-artifacts');
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Codex setup handler (
|
|
11
|
+
* Codex setup handler (CLI mode)
|
|
12
12
|
*/
|
|
13
13
|
class CodexSetup extends BaseIdeSetup {
|
|
14
14
|
constructor() {
|
|
@@ -21,20 +21,59 @@ class CodexSetup extends BaseIdeSetup {
|
|
|
21
21
|
* @returns {Object} Collected configuration
|
|
22
22
|
*/
|
|
23
23
|
async collectConfiguration(options = {}) {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
24
|
+
const inquirer = require('inquirer');
|
|
25
|
+
|
|
26
|
+
let confirmed = false;
|
|
27
|
+
let installLocation = 'global';
|
|
28
|
+
|
|
29
|
+
while (!confirmed) {
|
|
30
|
+
const { location } = await inquirer.prompt([
|
|
31
|
+
{
|
|
32
|
+
type: 'list',
|
|
33
|
+
name: 'location',
|
|
34
|
+
message: 'Where would you like to install Codex CLI prompts?',
|
|
35
|
+
choices: [
|
|
36
|
+
{
|
|
37
|
+
name: 'Global - Simple for single project ' + '(~/.codex/prompts, but references THIS project only)',
|
|
38
|
+
value: 'global',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: `Project-specific - Recommended for real work (requires CODEX_HOME=<project-dir>${path.sep}.codex)`,
|
|
42
|
+
value: 'project',
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
default: 'global',
|
|
46
|
+
},
|
|
47
|
+
]);
|
|
48
|
+
|
|
49
|
+
installLocation = location;
|
|
50
|
+
|
|
51
|
+
// Display detailed instructions for the chosen option
|
|
52
|
+
console.log('');
|
|
53
|
+
if (installLocation === 'project') {
|
|
54
|
+
console.log(this.getProjectSpecificInstructions());
|
|
55
|
+
} else {
|
|
56
|
+
console.log(this.getGlobalInstructions());
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Confirm the choice
|
|
60
|
+
const { proceed } = await inquirer.prompt([
|
|
61
|
+
{
|
|
62
|
+
type: 'confirm',
|
|
63
|
+
name: 'proceed',
|
|
64
|
+
message: 'Proceed with this installation option?',
|
|
65
|
+
default: true,
|
|
66
|
+
},
|
|
67
|
+
]);
|
|
68
|
+
|
|
69
|
+
confirmed = proceed;
|
|
70
|
+
|
|
71
|
+
if (!confirmed) {
|
|
72
|
+
console.log(chalk.yellow("\n Let's choose a different installation option.\n"));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
36
75
|
|
|
37
|
-
return {
|
|
76
|
+
return { installLocation };
|
|
38
77
|
}
|
|
39
78
|
|
|
40
79
|
/**
|
|
@@ -46,46 +85,30 @@ class CodexSetup extends BaseIdeSetup {
|
|
|
46
85
|
async setup(projectDir, bmadDir, options = {}) {
|
|
47
86
|
console.log(chalk.cyan(`Setting up ${this.name}...`));
|
|
48
87
|
|
|
49
|
-
|
|
50
|
-
const mode =
|
|
88
|
+
// Always use CLI mode
|
|
89
|
+
const mode = 'cli';
|
|
90
|
+
|
|
91
|
+
// Get installation location from pre-collected config or default to global
|
|
92
|
+
const installLocation = options.preCollectedConfig?.installLocation || 'global';
|
|
51
93
|
|
|
52
94
|
const { artifacts, counts } = await this.collectClaudeArtifacts(projectDir, bmadDir, options);
|
|
53
95
|
|
|
54
|
-
const destDir = this.getCodexPromptDir();
|
|
96
|
+
const destDir = this.getCodexPromptDir(projectDir, installLocation);
|
|
55
97
|
await fs.ensureDir(destDir);
|
|
56
98
|
await this.clearOldBmadFiles(destDir);
|
|
57
99
|
const written = await this.flattenAndWriteArtifacts(artifacts, destDir);
|
|
58
100
|
|
|
59
101
|
console.log(chalk.green(`✓ ${this.name} configured:`));
|
|
60
|
-
console.log(chalk.dim(` - Mode:
|
|
102
|
+
console.log(chalk.dim(` - Mode: CLI`));
|
|
61
103
|
console.log(chalk.dim(` - ${counts.agents} agents exported`));
|
|
62
104
|
console.log(chalk.dim(` - ${counts.tasks} tasks exported`));
|
|
63
105
|
console.log(chalk.dim(` - ${counts.workflows} workflow commands exported`));
|
|
64
106
|
if (counts.workflowLaunchers > 0) {
|
|
65
107
|
console.log(chalk.dim(` - ${counts.workflowLaunchers} workflow launchers exported`));
|
|
66
108
|
}
|
|
67
|
-
if (counts.subagents > 0) {
|
|
68
|
-
console.log(chalk.dim(` - ${counts.subagents} subagents exported`));
|
|
69
|
-
}
|
|
70
109
|
console.log(chalk.dim(` - ${written} Codex prompt files written`));
|
|
71
110
|
console.log(chalk.dim(` - Destination: ${destDir}`));
|
|
72
111
|
|
|
73
|
-
// Prominent notice about home directory installation
|
|
74
|
-
console.log('');
|
|
75
|
-
console.log(chalk.bold.cyan('═'.repeat(70)));
|
|
76
|
-
console.log(chalk.bold.yellow(' IMPORTANT: Codex Configuration'));
|
|
77
|
-
console.log(chalk.bold.cyan('═'.repeat(70)));
|
|
78
|
-
console.log('');
|
|
79
|
-
console.log(chalk.white(' Prompts have been installed to your HOME DIRECTORY, not this project.'));
|
|
80
|
-
console.log(chalk.white(' No .codex file was created in the project root.'));
|
|
81
|
-
console.log('');
|
|
82
|
-
console.log(chalk.green(' ✓ You can now use slash commands (/) in Codex CLI'));
|
|
83
|
-
console.log(chalk.dim(' Example: /bmad-bmm-agents-pm'));
|
|
84
|
-
console.log(chalk.dim(' Type / to see all available commands'));
|
|
85
|
-
console.log('');
|
|
86
|
-
console.log(chalk.bold.cyan('═'.repeat(70)));
|
|
87
|
-
console.log('');
|
|
88
|
-
|
|
89
112
|
return {
|
|
90
113
|
success: true,
|
|
91
114
|
mode,
|
|
@@ -93,21 +116,36 @@ class CodexSetup extends BaseIdeSetup {
|
|
|
93
116
|
counts,
|
|
94
117
|
destination: destDir,
|
|
95
118
|
written,
|
|
119
|
+
installLocation,
|
|
96
120
|
};
|
|
97
121
|
}
|
|
98
122
|
|
|
99
123
|
/**
|
|
100
124
|
* Detect Codex installation by checking for BMAD prompt exports
|
|
101
125
|
*/
|
|
102
|
-
async detect(
|
|
103
|
-
|
|
126
|
+
async detect(projectDir) {
|
|
127
|
+
// Check both global and project-specific locations
|
|
128
|
+
const globalDir = this.getCodexPromptDir(null, 'global');
|
|
129
|
+
const projectDir_local = projectDir || process.cwd();
|
|
130
|
+
const projectSpecificDir = this.getCodexPromptDir(projectDir_local, 'project');
|
|
131
|
+
|
|
132
|
+
// Check global location
|
|
133
|
+
if (await fs.pathExists(globalDir)) {
|
|
134
|
+
const entries = await fs.readdir(globalDir);
|
|
135
|
+
if (entries.some((entry) => entry.startsWith('bmad-'))) {
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
104
139
|
|
|
105
|
-
|
|
106
|
-
|
|
140
|
+
// Check project-specific location
|
|
141
|
+
if (await fs.pathExists(projectSpecificDir)) {
|
|
142
|
+
const entries = await fs.readdir(projectSpecificDir);
|
|
143
|
+
if (entries.some((entry) => entry.startsWith('bmad-'))) {
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
107
146
|
}
|
|
108
147
|
|
|
109
|
-
|
|
110
|
-
return entries.some((entry) => entry.startsWith('bmad-'));
|
|
148
|
+
return false;
|
|
111
149
|
}
|
|
112
150
|
|
|
113
151
|
/**
|
|
@@ -118,23 +156,17 @@ class CodexSetup extends BaseIdeSetup {
|
|
|
118
156
|
const selectedModules = options.selectedModules || [];
|
|
119
157
|
const artifacts = [];
|
|
120
158
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
agent.path,
|
|
125
|
-
{
|
|
126
|
-
module: agent.module,
|
|
127
|
-
name: agent.name,
|
|
128
|
-
},
|
|
129
|
-
projectDir,
|
|
130
|
-
);
|
|
159
|
+
// Generate agent launchers
|
|
160
|
+
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
161
|
+
const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, selectedModules);
|
|
131
162
|
|
|
163
|
+
for (const artifact of agentArtifacts) {
|
|
132
164
|
artifacts.push({
|
|
133
165
|
type: 'agent',
|
|
134
|
-
module:
|
|
135
|
-
sourcePath:
|
|
136
|
-
relativePath:
|
|
137
|
-
content,
|
|
166
|
+
module: artifact.module,
|
|
167
|
+
sourcePath: artifact.sourcePath,
|
|
168
|
+
relativePath: artifact.relativePath,
|
|
169
|
+
content: artifact.content,
|
|
138
170
|
});
|
|
139
171
|
}
|
|
140
172
|
|
|
@@ -158,14 +190,14 @@ class CodexSetup extends BaseIdeSetup {
|
|
|
158
190
|
});
|
|
159
191
|
}
|
|
160
192
|
|
|
161
|
-
const workflowGenerator = new WorkflowCommandGenerator();
|
|
193
|
+
const workflowGenerator = new WorkflowCommandGenerator(this.bmadFolderName);
|
|
162
194
|
const { artifacts: workflowArtifacts, counts: workflowCounts } = await workflowGenerator.collectWorkflowArtifacts(bmadDir);
|
|
163
195
|
artifacts.push(...workflowArtifacts);
|
|
164
196
|
|
|
165
197
|
return {
|
|
166
198
|
artifacts,
|
|
167
199
|
counts: {
|
|
168
|
-
agents:
|
|
200
|
+
agents: agentArtifacts.length,
|
|
169
201
|
tasks: tasks.length,
|
|
170
202
|
workflows: workflowCounts.commands,
|
|
171
203
|
workflowLaunchers: workflowCounts.launchers,
|
|
@@ -173,15 +205,13 @@ class CodexSetup extends BaseIdeSetup {
|
|
|
173
205
|
};
|
|
174
206
|
}
|
|
175
207
|
|
|
176
|
-
getCodexPromptDir() {
|
|
208
|
+
getCodexPromptDir(projectDir = null, location = 'global') {
|
|
209
|
+
if (location === 'project' && projectDir) {
|
|
210
|
+
return path.join(projectDir, '.codex', 'prompts');
|
|
211
|
+
}
|
|
177
212
|
return path.join(os.homedir(), '.codex', 'prompts');
|
|
178
213
|
}
|
|
179
214
|
|
|
180
|
-
flattenFilename(relativePath) {
|
|
181
|
-
const sanitized = relativePath.replaceAll(/[\\/]/g, '-');
|
|
182
|
-
return `bmad-${sanitized}`;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
215
|
async flattenAndWriteArtifacts(artifacts, destDir) {
|
|
186
216
|
let written = 0;
|
|
187
217
|
|
|
@@ -223,11 +253,135 @@ class CodexSetup extends BaseIdeSetup {
|
|
|
223
253
|
}
|
|
224
254
|
|
|
225
255
|
/**
|
|
226
|
-
*
|
|
256
|
+
* Get instructions for global installation
|
|
257
|
+
* @returns {string} Instructions text
|
|
258
|
+
*/
|
|
259
|
+
getGlobalInstructions(destDir) {
|
|
260
|
+
const lines = [
|
|
261
|
+
'',
|
|
262
|
+
chalk.bold.cyan('═'.repeat(70)),
|
|
263
|
+
chalk.bold.yellow(' IMPORTANT: Codex Configuration'),
|
|
264
|
+
chalk.bold.cyan('═'.repeat(70)),
|
|
265
|
+
'',
|
|
266
|
+
chalk.white(' /prompts installed globally to your HOME DIRECTORY.'),
|
|
267
|
+
'',
|
|
268
|
+
chalk.yellow(' ⚠️ These prompts reference a specific .bmad path'),
|
|
269
|
+
chalk.dim(" To use with other projects, you'd need to copy the .bmad dir"),
|
|
270
|
+
'',
|
|
271
|
+
chalk.green(' ✓ You can now use /commands in Codex CLI'),
|
|
272
|
+
chalk.dim(' Example: /bmad-bmm-agents-pm'),
|
|
273
|
+
chalk.dim(' Type / to see all available commands'),
|
|
274
|
+
'',
|
|
275
|
+
chalk.bold.cyan('═'.repeat(70)),
|
|
276
|
+
'',
|
|
277
|
+
];
|
|
278
|
+
return lines.join('\n');
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Get instructions for project-specific installation
|
|
283
|
+
* @param {string} projectDir - Optional project directory
|
|
284
|
+
* @param {string} destDir - Optional destination directory
|
|
285
|
+
* @returns {string} Instructions text
|
|
286
|
+
*/
|
|
287
|
+
getProjectSpecificInstructions(projectDir = null, destDir = null) {
|
|
288
|
+
const isWindows = os.platform() === 'win32';
|
|
289
|
+
|
|
290
|
+
const commonLines = [
|
|
291
|
+
'',
|
|
292
|
+
chalk.bold.cyan('═'.repeat(70)),
|
|
293
|
+
chalk.bold.yellow(' Project-Specific Codex Configuration'),
|
|
294
|
+
chalk.bold.cyan('═'.repeat(70)),
|
|
295
|
+
'',
|
|
296
|
+
chalk.white(' Prompts will be installed to: ') + chalk.cyan(destDir || '<project>/.codex/prompts'),
|
|
297
|
+
'',
|
|
298
|
+
chalk.bold.yellow(' ⚠️ REQUIRED: You must set CODEX_HOME to use these prompts'),
|
|
299
|
+
'',
|
|
300
|
+
];
|
|
301
|
+
|
|
302
|
+
const windowsLines = [
|
|
303
|
+
chalk.bold(' Create a codex.cmd file in your project root:'),
|
|
304
|
+
'',
|
|
305
|
+
chalk.green(' @echo off'),
|
|
306
|
+
chalk.green(' set CODEX_HOME=%~dp0.codex'),
|
|
307
|
+
chalk.green(' codex %*'),
|
|
308
|
+
'',
|
|
309
|
+
chalk.dim(String.raw` Then run: .\codex instead of codex`),
|
|
310
|
+
chalk.dim(' (The %~dp0 gets the directory of the .cmd file)'),
|
|
311
|
+
];
|
|
312
|
+
|
|
313
|
+
const unixLines = [
|
|
314
|
+
chalk.bold(' Add this alias to your ~/.bashrc or ~/.zshrc:'),
|
|
315
|
+
'',
|
|
316
|
+
chalk.green(' alias codex=\'CODEX_HOME="$PWD/.codex" codex\''),
|
|
317
|
+
'',
|
|
318
|
+
chalk.dim(' After adding, run: source ~/.bashrc (or source ~/.zshrc)'),
|
|
319
|
+
chalk.dim(' (The $PWD uses your current working directory)'),
|
|
320
|
+
];
|
|
321
|
+
const closingLines = [
|
|
322
|
+
'',
|
|
323
|
+
chalk.dim(' This tells Codex CLI to use prompts from this project instead of ~/.codex'),
|
|
324
|
+
'',
|
|
325
|
+
chalk.bold.cyan('═'.repeat(70)),
|
|
326
|
+
'',
|
|
327
|
+
];
|
|
328
|
+
|
|
329
|
+
const lines = [...commonLines, ...(isWindows ? windowsLines : unixLines), ...closingLines];
|
|
330
|
+
|
|
331
|
+
return lines.join('\n');
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* Cleanup Codex configuration
|
|
227
336
|
*/
|
|
228
|
-
async cleanup() {
|
|
337
|
+
async cleanup(projectDir = null) {
|
|
338
|
+
// Clean both global and project-specific locations
|
|
339
|
+
const globalDir = this.getCodexPromptDir(null, 'global');
|
|
340
|
+
await this.clearOldBmadFiles(globalDir);
|
|
341
|
+
|
|
342
|
+
if (projectDir) {
|
|
343
|
+
const projectSpecificDir = this.getCodexPromptDir(projectDir, 'project');
|
|
344
|
+
await this.clearOldBmadFiles(projectSpecificDir);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Install a custom agent launcher for Codex
|
|
350
|
+
* @param {string} projectDir - Project directory (not used, Codex installs to home)
|
|
351
|
+
* @param {string} agentName - Agent name (e.g., "fred-commit-poet")
|
|
352
|
+
* @param {string} agentPath - Path to compiled agent (relative to project root)
|
|
353
|
+
* @param {Object} metadata - Agent metadata
|
|
354
|
+
* @returns {Object|null} Info about created command
|
|
355
|
+
*/
|
|
356
|
+
async installCustomAgentLauncher(projectDir, agentName, agentPath, metadata) {
|
|
229
357
|
const destDir = this.getCodexPromptDir();
|
|
230
|
-
await
|
|
358
|
+
await fs.ensureDir(destDir);
|
|
359
|
+
|
|
360
|
+
const launcherContent = `---
|
|
361
|
+
name: '${agentName}'
|
|
362
|
+
description: '${agentName} agent'
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
366
|
+
|
|
367
|
+
<agent-activation CRITICAL="TRUE">
|
|
368
|
+
1. LOAD the FULL agent file from @${agentPath}
|
|
369
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
370
|
+
3. FOLLOW every step in the <activation> section precisely
|
|
371
|
+
4. DISPLAY the welcome/greeting as instructed
|
|
372
|
+
5. PRESENT the numbered menu
|
|
373
|
+
6. WAIT for user input before proceeding
|
|
374
|
+
</agent-activation>
|
|
375
|
+
`;
|
|
376
|
+
|
|
377
|
+
const fileName = `bmad-custom-agents-${agentName}.md`;
|
|
378
|
+
const launcherPath = path.join(destDir, fileName);
|
|
379
|
+
await fs.writeFile(launcherPath, launcherContent, 'utf8');
|
|
380
|
+
|
|
381
|
+
return {
|
|
382
|
+
path: launcherPath,
|
|
383
|
+
command: `/${fileName.replace('.md', '')}`,
|
|
384
|
+
};
|
|
231
385
|
}
|
|
232
386
|
}
|
|
233
387
|
|
|
@@ -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
|
* Crush IDE setup handler
|
|
@@ -28,14 +29,17 @@ class CrushSetup extends BaseIdeSetup {
|
|
|
28
29
|
|
|
29
30
|
await this.ensureDir(commandsDir);
|
|
30
31
|
|
|
31
|
-
//
|
|
32
|
-
const
|
|
32
|
+
// Generate agent launchers
|
|
33
|
+
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
34
|
+
const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
|
|
35
|
+
|
|
36
|
+
// Get tasks, tools, and workflows (standalone only)
|
|
33
37
|
const tasks = await this.getTasks(bmadDir, true);
|
|
34
38
|
const tools = await this.getTools(bmadDir, true);
|
|
35
39
|
const workflows = await this.getWorkflows(bmadDir, true);
|
|
36
40
|
|
|
37
41
|
// Organize by module
|
|
38
|
-
const agentCount = await this.organizeByModule(commandsDir,
|
|
42
|
+
const agentCount = await this.organizeByModule(commandsDir, agentArtifacts, tasks, tools, workflows, projectDir);
|
|
39
43
|
|
|
40
44
|
console.log(chalk.green(`✓ ${this.name} configured:`));
|
|
41
45
|
console.log(chalk.dim(` - ${agentCount.agents} agent commands created`));
|
|
@@ -54,10 +58,10 @@ class CrushSetup extends BaseIdeSetup {
|
|
|
54
58
|
/**
|
|
55
59
|
* Organize commands by module
|
|
56
60
|
*/
|
|
57
|
-
async organizeByModule(commandsDir,
|
|
61
|
+
async organizeByModule(commandsDir, agentArtifacts, tasks, tools, workflows, projectDir) {
|
|
58
62
|
// Get unique modules
|
|
59
63
|
const modules = new Set();
|
|
60
|
-
for (const
|
|
64
|
+
for (const artifact of agentArtifacts) modules.add(artifact.module);
|
|
61
65
|
for (const task of tasks) modules.add(task.module);
|
|
62
66
|
for (const tool of tools) modules.add(tool.module);
|
|
63
67
|
for (const workflow of workflows) modules.add(workflow.module);
|
|
@@ -80,13 +84,11 @@ class CrushSetup extends BaseIdeSetup {
|
|
|
80
84
|
await this.ensureDir(moduleToolsDir);
|
|
81
85
|
await this.ensureDir(moduleWorkflowsDir);
|
|
82
86
|
|
|
83
|
-
//
|
|
84
|
-
const moduleAgents =
|
|
85
|
-
for (const
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
const targetPath = path.join(moduleAgentsDir, `${agent.name}.md`);
|
|
89
|
-
await this.writeFile(targetPath, commandContent);
|
|
87
|
+
// Write module-specific agent launchers
|
|
88
|
+
const moduleAgents = agentArtifacts.filter((a) => a.module === module);
|
|
89
|
+
for (const artifact of moduleAgents) {
|
|
90
|
+
const targetPath = path.join(moduleAgentsDir, `${artifact.name}.md`);
|
|
91
|
+
await this.writeFile(targetPath, artifact.content);
|
|
90
92
|
agentCount++;
|
|
91
93
|
}
|
|
92
94
|
|
|
@@ -129,44 +131,6 @@ class CrushSetup extends BaseIdeSetup {
|
|
|
129
131
|
};
|
|
130
132
|
}
|
|
131
133
|
|
|
132
|
-
/**
|
|
133
|
-
* Create agent command content
|
|
134
|
-
*/
|
|
135
|
-
createAgentCommand(agent, content, projectDir) {
|
|
136
|
-
// Extract metadata
|
|
137
|
-
const titleMatch = content.match(/title="([^"]+)"/);
|
|
138
|
-
const title = titleMatch ? titleMatch[1] : this.formatTitle(agent.name);
|
|
139
|
-
|
|
140
|
-
const iconMatch = content.match(/icon="([^"]+)"/);
|
|
141
|
-
const icon = iconMatch ? iconMatch[1] : '🤖';
|
|
142
|
-
|
|
143
|
-
// Get relative path
|
|
144
|
-
const relativePath = path.relative(projectDir, agent.path).replaceAll('\\', '/');
|
|
145
|
-
|
|
146
|
-
let commandContent = `# /${agent.name} Command
|
|
147
|
-
|
|
148
|
-
When this command is used, adopt the following agent persona:
|
|
149
|
-
|
|
150
|
-
## ${icon} ${title} Agent
|
|
151
|
-
|
|
152
|
-
${content}
|
|
153
|
-
|
|
154
|
-
## Command Usage
|
|
155
|
-
|
|
156
|
-
This command activates the ${title} agent from the BMAD ${agent.module.toUpperCase()} module.
|
|
157
|
-
|
|
158
|
-
## File Reference
|
|
159
|
-
|
|
160
|
-
Complete agent definition: [${relativePath}](${relativePath})
|
|
161
|
-
|
|
162
|
-
## Module
|
|
163
|
-
|
|
164
|
-
Part of the BMAD ${agent.module.toUpperCase()} module.
|
|
165
|
-
`;
|
|
166
|
-
|
|
167
|
-
return commandContent;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
134
|
/**
|
|
171
135
|
* Create task command content
|
|
172
136
|
*/
|
|
@@ -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,8 +46,14 @@ class CursorSetup extends BaseIdeSetup {
|
|
|
28
46
|
|
|
29
47
|
await this.ensureDir(bmadRulesDir);
|
|
30
48
|
|
|
31
|
-
//
|
|
32
|
-
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)
|
|
33
57
|
const tasks = await this.getTasks(bmadDir, true);
|
|
34
58
|
const tools = await this.getTools(bmadDir, true);
|
|
35
59
|
const workflows = await this.getWorkflows(bmadDir, true);
|
|
@@ -46,15 +70,16 @@ class CursorSetup extends BaseIdeSetup {
|
|
|
46
70
|
await this.ensureDir(path.join(bmadRulesDir, module, 'workflows'));
|
|
47
71
|
}
|
|
48
72
|
|
|
49
|
-
// Process and
|
|
73
|
+
// Process and write agent launchers with MDC format
|
|
50
74
|
let agentCount = 0;
|
|
51
|
-
for (const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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,
|
|
55
80
|
});
|
|
56
81
|
|
|
57
|
-
const targetPath = path.join(bmadRulesDir,
|
|
82
|
+
const targetPath = path.join(bmadRulesDir, artifact.module, 'agents', `${artifact.name}.mdc`);
|
|
58
83
|
|
|
59
84
|
await this.writeFile(targetPath, content);
|
|
60
85
|
agentCount++;
|
|
@@ -239,6 +264,13 @@ specific agent expertise, task workflows, tools, or guided workflows.
|
|
|
239
264
|
// First apply base processing (includes activation injection for agents)
|
|
240
265
|
let processed = super.processContent(content, metadata);
|
|
241
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
|
+
|
|
242
274
|
// Determine the type and description based on content
|
|
243
275
|
const isAgent = content.includes('<agent');
|
|
244
276
|
const isTask = content.includes('<task');
|
|
@@ -287,6 +319,82 @@ alwaysApply: false
|
|
|
287
319
|
// Add the MDC header to the processed content
|
|
288
320
|
return mdcHeader + processed;
|
|
289
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
|
+
}
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Install a custom agent launcher for Cursor
|
|
353
|
+
* @param {string} projectDir - Project directory
|
|
354
|
+
* @param {string} agentName - Agent name (e.g., "fred-commit-poet")
|
|
355
|
+
* @param {string} agentPath - Path to compiled agent (relative to project root)
|
|
356
|
+
* @param {Object} metadata - Agent metadata
|
|
357
|
+
* @returns {Object|null} Info about created command
|
|
358
|
+
*/
|
|
359
|
+
async installCustomAgentLauncher(projectDir, agentName, agentPath, metadata) {
|
|
360
|
+
const customAgentsDir = path.join(projectDir, this.configDir, this.rulesDir, 'bmad', 'custom', 'agents');
|
|
361
|
+
|
|
362
|
+
if (!(await this.exists(path.join(projectDir, this.configDir)))) {
|
|
363
|
+
return null; // IDE not configured for this project
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
await this.ensureDir(customAgentsDir);
|
|
367
|
+
|
|
368
|
+
const launcherContent = `You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
369
|
+
|
|
370
|
+
<agent-activation CRITICAL="TRUE">
|
|
371
|
+
1. LOAD the FULL agent file from @${agentPath}
|
|
372
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
373
|
+
3. FOLLOW every step in the <activation> section precisely
|
|
374
|
+
4. DISPLAY the welcome/greeting as instructed
|
|
375
|
+
5. PRESENT the numbered menu
|
|
376
|
+
6. WAIT for user input before proceeding
|
|
377
|
+
</agent-activation>
|
|
378
|
+
`;
|
|
379
|
+
|
|
380
|
+
// Cursor uses MDC format with metadata header
|
|
381
|
+
const mdcContent = `---
|
|
382
|
+
description: "${agentName} agent"
|
|
383
|
+
globs:
|
|
384
|
+
alwaysApply: false
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
${launcherContent}
|
|
388
|
+
`;
|
|
389
|
+
|
|
390
|
+
const launcherPath = path.join(customAgentsDir, `${agentName}.mdc`);
|
|
391
|
+
await this.writeFile(launcherPath, mdcContent);
|
|
392
|
+
|
|
393
|
+
return {
|
|
394
|
+
path: launcherPath,
|
|
395
|
+
command: `@${agentName}`,
|
|
396
|
+
};
|
|
397
|
+
}
|
|
290
398
|
}
|
|
291
399
|
|
|
292
400
|
module.exports = { CursorSetup };
|