bmad-method 6.0.0-alpha.21 → 6.0.0-alpha.23
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/.coderabbit.yaml +2 -2
- package/.github/workflows/docs.yaml +3 -12
- package/.vscode/settings.json +1 -0
- package/CHANGELOG.md +309 -0
- package/CNAME +1 -0
- package/CONTRIBUTING.md +9 -7
- package/README.md +41 -207
- package/docs/404.md +9 -0
- package/{src/modules/bmm/docs/images/README.md → docs/_README_WORKFLOW_DIAGRAMS.md} +4 -1
- package/docs/_STYLE_GUIDE.md +347 -0
- package/docs/_archive/getting-started-bmadv4.md +247 -0
- package/{website/src/pages → docs}/downloads.md +17 -26
- package/{src/modules/bmm/docs/quick-flow-solo-dev.md → docs/explanation/agents/barry-quick-flow.md} +18 -15
- package/docs/explanation/agents/index.md +28 -0
- package/docs/explanation/architecture/four-phases.md +126 -0
- package/docs/explanation/architecture/preventing-agent-conflicts.md +138 -0
- package/docs/explanation/architecture/why-solutioning-matters.md +91 -0
- package/docs/{custom-content.md → explanation/bmad-builder/custom-content-types.md} +19 -21
- package/docs/explanation/bmad-builder/index.md +66 -0
- package/docs/explanation/bmm/index.md +135 -0
- package/docs/explanation/core/index.md +18 -0
- package/docs/explanation/core-concepts/agent-roles.md +204 -0
- package/docs/explanation/core-concepts/index.md +40 -0
- package/docs/explanation/core-concepts/what-are-agents.md +96 -0
- package/docs/explanation/core-concepts/what-are-modules.md +79 -0
- package/docs/explanation/core-concepts/what-are-workflows.md +217 -0
- package/{src/modules/cis/docs → docs/explanation/creative-intelligence}/index.md +26 -54
- package/docs/explanation/faq/brownfield-faq.md +73 -0
- package/docs/explanation/faq/getting-started-faq.md +62 -0
- package/docs/explanation/faq/implementation-faq.md +52 -0
- package/docs/explanation/faq/index.md +16 -0
- package/docs/explanation/faq/levels-and-tracks-faq.md +52 -0
- package/docs/explanation/faq/planning-faq.md +41 -0
- package/docs/explanation/faq/tools-faq.md +253 -0
- package/docs/explanation/faq/workflows-faq.md +61 -0
- package/docs/explanation/features/advanced-elicitation.md +108 -0
- package/docs/explanation/features/brainstorming-techniques.md +103 -0
- package/{src/modules/bmm/docs → docs/explanation/features}/party-mode.md +11 -123
- package/docs/explanation/features/quick-flow.md +169 -0
- package/{src/modules/bmm/docs/test-architecture.md → docs/explanation/features/tea-overview.md} +160 -118
- package/docs/explanation/features/web-bundles.md +35 -0
- package/{src/modules/bmgd/docs/agents-guide.md → docs/explanation/game-dev/agents.md} +8 -5
- package/docs/explanation/game-dev/bmgd-vs-bmm.md +150 -0
- package/{src/modules/bmgd/docs/game-types-guide.md → docs/explanation/game-dev/game-types.md} +7 -4
- package/docs/explanation/game-dev/index.md +85 -0
- package/docs/explanation/philosophy/facilitation-over-generation.md +121 -0
- package/docs/explanation/philosophy/testing-as-engineering.md +119 -0
- package/docs/how-to/brownfield/add-feature-to-existing.md +91 -0
- package/docs/how-to/brownfield/document-existing-project.md +84 -0
- package/docs/how-to/brownfield/index.md +102 -0
- package/docs/how-to/brownfield/quick-fix-in-brownfield.md +94 -0
- package/docs/{agent-customization-guide.md → how-to/customization/customize-agents.md} +10 -10
- package/docs/how-to/customization/customize-workflows.md +33 -0
- package/docs/how-to/customization/index.md +27 -0
- package/docs/how-to/customization/shard-large-documents.md +125 -0
- package/docs/how-to/customization/vendor-workflows.md +45 -0
- package/docs/how-to/get-answers-about-bmad.md +98 -0
- package/docs/how-to/installation/index.md +15 -0
- package/docs/how-to/installation/install-bmad.md +138 -0
- package/docs/{custom-content-installation.md → how-to/installation/install-custom-modules.md} +17 -14
- package/docs/how-to/installation/upgrade-to-v6.md +147 -0
- package/{src/modules/bmgd/docs/troubleshooting.md → docs/how-to/troubleshooting/bmgd-troubleshooting.md} +7 -5
- package/{src/modules/bmgd/docs/quick-flow-guide.md → docs/how-to/workflows/bmgd-quick-flow.md} +8 -5
- package/docs/how-to/workflows/conduct-research.md +130 -0
- package/docs/how-to/workflows/create-architecture.md +147 -0
- package/docs/how-to/workflows/create-epics-and-stories.md +136 -0
- package/docs/how-to/workflows/create-prd.md +130 -0
- package/docs/how-to/workflows/create-product-brief.md +117 -0
- package/docs/how-to/workflows/create-story.md +119 -0
- package/docs/how-to/workflows/create-ux-design.md +117 -0
- package/docs/how-to/workflows/implement-story.md +127 -0
- package/docs/how-to/workflows/quick-spec.md +159 -0
- package/docs/how-to/workflows/run-brainstorming-session.md +94 -0
- package/docs/how-to/workflows/run-code-review.md +141 -0
- package/docs/how-to/workflows/run-implementation-readiness.md +162 -0
- package/docs/how-to/workflows/run-sprint-planning.md +111 -0
- package/docs/how-to/workflows/run-test-design.md +128 -0
- package/docs/how-to/workflows/setup-party-mode.md +117 -0
- package/docs/how-to/workflows/setup-test-framework.md +113 -0
- package/docs/index.md +33 -113
- package/{src/modules/bmm/docs/agents-guide.md → docs/reference/agents/index.md} +36 -39
- package/docs/reference/configuration/core-tasks.md +67 -0
- package/docs/reference/configuration/global-config.md +14 -0
- package/{src/modules/bmm/docs/glossary.md → docs/reference/glossary/index.md} +90 -24
- package/{src/modules/bmgd/docs/workflows-guide.md → docs/reference/workflows/bmgd-workflows.md} +11 -8
- package/docs/reference/workflows/core-workflows.md +33 -0
- package/docs/reference/workflows/document-project.md +74 -0
- package/docs/reference/workflows/index.md +16 -0
- package/docs/tutorials/advanced/create-custom-agent.md +171 -0
- package/docs/tutorials/getting-started/getting-started-bmadv6.md +246 -0
- package/docs/tutorials/getting-started/quick-start-bmgd.md +260 -0
- package/docs/tutorials/getting-started/workflow-overview.jpg +0 -0
- package/eslint.config.mjs +2 -2
- package/package.json +10 -10
- package/samples/sample-custom-modules/README.md +1 -1
- package/samples/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml +1 -0
- package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +0 -5
- package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +1 -1
- package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +1 -1
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md +2 -2
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md +1 -1
- package/samples/sample-custom-modules/sample-wellness-module/agents/meditation-guide.agent.yaml +1 -0
- package/src/core/agents/bmad-master.agent.yaml +1 -0
- package/src/core/{tools → tasks}/shard-doc.xml +2 -2
- package/src/core/tasks/workflow.xml +1 -1
- package/src/core/{tasks/advanced-elicitation.xml → workflows/advanced-elicitation/workflow.xml} +3 -2
- package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +1 -0
- package/src/core/workflows/brainstorming/steps/step-01b-continue.md +1 -0
- package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +1 -0
- package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +1 -0
- package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +1 -0
- package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +1 -0
- package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +69 -9
- package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +1 -0
- package/src/core/workflows/brainstorming/workflow.md +8 -1
- package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +1 -0
- package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +1 -0
- package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +1 -0
- package/src/core/workflows/party-mode/workflow.md +1 -1
- package/src/modules/bmb/agents/agent-builder.agent.yaml +7 -2
- package/src/modules/bmb/agents/module-builder.agent.yaml +5 -8
- package/src/modules/bmb/agents/workflow-builder.agent.yaml +16 -7
- package/src/modules/bmb/workflows/agent/data/agent-compilation.md +273 -0
- package/src/modules/bmb/workflows/agent/data/agent-menu-patterns.md +233 -0
- package/src/modules/bmb/workflows/agent/data/agent-metadata.md +208 -0
- package/src/modules/bmb/workflows/{create-agent → agent}/data/brainstorm-context.md +3 -10
- package/src/modules/bmb/workflows/{create-agent → agent}/data/communication-presets.csv +1 -1
- package/src/modules/bmb/workflows/agent/data/critical-actions.md +120 -0
- package/src/modules/bmb/workflows/agent/data/expert-agent-architecture.md +236 -0
- package/src/modules/bmb/workflows/agent/data/expert-agent-validation.md +174 -0
- package/src/modules/bmb/workflows/agent/data/module-agent-validation.md +126 -0
- package/src/modules/bmb/workflows/agent/data/persona-properties.md +266 -0
- package/src/modules/bmb/workflows/agent/data/principles-crafting.md +292 -0
- package/src/modules/bmb/workflows/agent/data/reference/expert-examples/journal-keeper/journal-keeper-sidecar/entries/yy-mm-dd-entry-template.md +17 -0
- package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/expert-examples/journal-keeper/journal-keeper.agent.yaml +26 -25
- package/src/modules/bmb/workflows/agent/data/reference/module-examples/architect.agent.yaml +32 -0
- package/src/modules/bmb/workflows/agent/data/reference/module-examples/architect.md +68 -0
- package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/module-examples/security-engineer.agent.yaml +1 -0
- package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/module-examples/trend-analyst.agent.yaml +1 -0
- package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/simple-examples/commit-poet.agent.yaml +15 -14
- package/src/modules/bmb/workflows/agent/data/simple-agent-architecture.md +204 -0
- package/src/modules/bmb/workflows/agent/data/simple-agent-validation.md +133 -0
- package/src/modules/bmb/workflows/agent/data/understanding-agent-types.md +222 -0
- package/src/modules/bmb/workflows/{create-agent/steps → agent/steps-c}/step-01-brainstorm.md +9 -26
- package/src/modules/bmb/workflows/agent/steps-c/step-02-discovery.md +170 -0
- package/src/modules/bmb/workflows/agent/steps-c/step-03-type-metadata.md +296 -0
- package/src/modules/bmb/workflows/agent/steps-c/step-04-persona.md +212 -0
- package/src/modules/bmb/workflows/agent/steps-c/step-05-commands-menu.md +178 -0
- package/src/modules/bmb/workflows/agent/steps-c/step-06-activation.md +279 -0
- package/src/modules/bmb/workflows/agent/steps-c/step-07a-build-simple.md +187 -0
- package/src/modules/bmb/workflows/agent/steps-c/step-07b-build-expert.md +201 -0
- package/src/modules/bmb/workflows/agent/steps-c/step-07c-build-module.md +258 -0
- package/src/modules/bmb/workflows/agent/steps-c/step-08-celebrate.md +249 -0
- package/src/modules/bmb/workflows/agent/steps-e/e-01-load-existing.md +221 -0
- package/src/modules/bmb/workflows/agent/steps-e/e-02-discover-edits.md +193 -0
- package/src/modules/bmb/workflows/agent/steps-e/e-03-placeholder.md +1 -0
- package/src/modules/bmb/workflows/agent/steps-e/e-04-type-metadata.md +124 -0
- package/src/modules/bmb/workflows/agent/steps-e/e-05-persona.md +134 -0
- package/src/modules/bmb/workflows/agent/steps-e/e-06-commands-menu.md +122 -0
- package/src/modules/bmb/workflows/agent/steps-e/e-07-activation.md +125 -0
- package/src/modules/bmb/workflows/agent/steps-e/e-08a-edit-simple.md +137 -0
- package/src/modules/bmb/workflows/agent/steps-e/e-08b-edit-expert.md +119 -0
- package/src/modules/bmb/workflows/agent/steps-e/e-08c-edit-module.md +123 -0
- package/src/modules/bmb/workflows/agent/steps-e/e-09-celebrate.md +155 -0
- package/src/modules/bmb/workflows/agent/steps-v/v-01-load-review.md +136 -0
- package/src/modules/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +116 -0
- package/src/modules/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +124 -0
- package/src/modules/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +145 -0
- package/src/modules/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +136 -0
- package/src/modules/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +136 -0
- package/src/modules/bmb/workflows/agent/steps-v/v-03-summary.md +104 -0
- package/src/modules/bmb/workflows/agent/templates/agent-plan.template.md +5 -0
- package/src/modules/bmb/workflows/agent/templates/expert-agent-template/expert-agent-sidecar/instructions.md.template +20 -0
- package/src/modules/bmb/workflows/agent/templates/expert-agent-template/expert-agent-sidecar/memories.md.template +18 -0
- package/src/modules/bmb/workflows/agent/templates/expert-agent-template/expert-agent.template.md +77 -0
- package/src/modules/bmb/workflows/agent/templates/simple-agent.template.md +72 -0
- package/src/modules/bmb/workflows/agent/workflow.md +123 -0
- package/src/modules/bmb/workflows/module/data/agent-architecture.md +179 -0
- package/src/modules/bmb/workflows/module/data/agent-spec-template.md +79 -0
- package/src/modules/bmb/workflows/module/data/module-installer-standards.md +348 -0
- package/src/modules/bmb/workflows/module/data/module-standards.md +280 -0
- package/src/modules/bmb/workflows/module/data/module-yaml-conventions.md +392 -0
- package/src/modules/bmb/workflows/module/steps-b/step-01-welcome.md +147 -0
- package/src/modules/bmb/workflows/module/steps-b/step-02-spark.md +140 -0
- package/src/modules/bmb/workflows/module/steps-b/step-03-module-type.md +148 -0
- package/src/modules/bmb/workflows/module/steps-b/step-04-vision.md +82 -0
- package/src/modules/bmb/workflows/module/steps-b/step-05-identity.md +96 -0
- package/src/modules/bmb/workflows/module/steps-b/step-06-users.md +85 -0
- package/src/modules/bmb/workflows/module/steps-b/step-07-value.md +75 -0
- package/src/modules/bmb/workflows/module/steps-b/step-08-agents.md +96 -0
- package/src/modules/bmb/workflows/module/steps-b/step-09-workflows.md +82 -0
- package/src/modules/bmb/workflows/module/steps-b/step-10-tools.md +90 -0
- package/src/modules/bmb/workflows/module/steps-b/step-11-scenarios.md +83 -0
- package/src/modules/bmb/workflows/module/steps-b/step-12-creative.md +94 -0
- package/src/modules/bmb/workflows/module/steps-b/step-13-review.md +104 -0
- package/src/modules/bmb/workflows/module/steps-b/step-14-finalize.md +117 -0
- package/src/modules/bmb/workflows/module/steps-c/step-01-load-brief.md +178 -0
- package/src/modules/bmb/workflows/module/steps-c/step-01b-continue.md +83 -0
- package/src/modules/bmb/workflows/module/steps-c/step-02-structure.md +109 -0
- package/src/modules/bmb/workflows/module/steps-c/step-03-config.md +118 -0
- package/src/modules/bmb/workflows/module/steps-c/step-04-installer.md +160 -0
- package/src/modules/bmb/workflows/module/steps-c/step-05-agents.md +167 -0
- package/src/modules/bmb/workflows/module/steps-c/step-06-workflows.md +183 -0
- package/src/modules/bmb/workflows/module/steps-c/step-07-docs.md +402 -0
- package/src/modules/bmb/workflows/module/steps-c/step-08-complete.md +123 -0
- package/src/modules/bmb/workflows/module/steps-e/step-01-load-target.md +81 -0
- package/src/modules/bmb/workflows/module/steps-e/step-02-select-edit.md +77 -0
- package/src/modules/bmb/workflows/module/steps-e/step-03-apply-edit.md +77 -0
- package/src/modules/bmb/workflows/module/steps-e/step-04-review.md +80 -0
- package/src/modules/bmb/workflows/module/steps-e/step-05-confirm.md +75 -0
- package/src/modules/bmb/workflows/module/steps-v/step-01-load-target.md +96 -0
- package/src/modules/bmb/workflows/module/steps-v/step-02-file-structure.md +94 -0
- package/src/modules/bmb/workflows/module/steps-v/step-03-module-yaml.md +99 -0
- package/src/modules/bmb/workflows/module/steps-v/step-04-agent-specs.md +152 -0
- package/src/modules/bmb/workflows/module/steps-v/step-05-workflow-specs.md +152 -0
- package/src/modules/bmb/workflows/module/steps-v/step-06-documentation.md +143 -0
- package/src/modules/bmb/workflows/module/steps-v/step-07-installation.md +113 -0
- package/src/modules/bmb/workflows/module/steps-v/step-08-report.md +197 -0
- package/src/modules/bmb/workflows/module/templates/brief-template.md +154 -0
- package/src/modules/bmb/workflows/module/templates/workflow-spec-template.md +96 -0
- package/src/modules/bmb/workflows/module/workflow.md +100 -0
- package/src/modules/bmb/workflows/workflow/data/architecture.md +152 -0
- package/src/modules/bmb/{docs/workflows → workflows/workflow/data}/common-workflow-tools.csv +1 -1
- package/src/modules/bmb/workflows/workflow/data/csv-data-file-standards.md +81 -0
- package/src/modules/bmb/workflows/workflow/data/frontmatter-standards.md +225 -0
- package/src/modules/bmb/workflows/workflow/data/input-discovery-standards.md +269 -0
- package/src/modules/bmb/workflows/workflow/data/intent-vs-prescriptive-spectrum.md +50 -0
- package/src/modules/bmb/workflows/workflow/data/menu-handling-standards.md +167 -0
- package/src/modules/bmb/workflows/workflow/data/output-format-standards.md +188 -0
- package/src/modules/bmb/workflows/workflow/data/step-file-rules.md +235 -0
- package/src/modules/bmb/workflows/workflow/data/step-type-patterns.md +311 -0
- package/src/modules/bmb/workflows/workflow/data/subprocess-optimization-patterns.md +386 -0
- package/src/modules/bmb/workflows/workflow/data/trimodal-workflow-structure.md +209 -0
- package/src/modules/bmb/workflows/workflow/data/workflow-chaining-standards.md +271 -0
- package/src/modules/bmb/workflows/workflow/data/workflow-examples.md +276 -0
- package/src/modules/bmb/workflows/workflow/data/workflow-type-criteria.md +172 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-00-conversion.md +262 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-01-discovery.md +194 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-01b-continuation.md +3 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-02-classification.md +269 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-03-requirements.md +282 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-04-tools.md +281 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-05-plan-review.md +242 -0
- package/src/modules/bmb/workflows/{create-workflow/steps → workflow/steps-c}/step-06-design.md +96 -38
- package/src/modules/bmb/workflows/workflow/steps-c/step-07-foundation.md +238 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-08-build-step-01.md +377 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-09-build-next-step.md +350 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-10-confirmation.md +320 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-11-completion.md +191 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-01-assess-workflow.md +237 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-02-discover-edits.md +248 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-03-fix-validation.md +252 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-04-direct-edit.md +275 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-05-apply-edit.md +154 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-06-validate-after.md +190 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-07-complete.md +206 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-01-validate-max-mode.md +109 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-01-validate.md +221 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-01b-structure.md +152 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +199 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-02b-path-violations.md +265 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-03-menu-validation.md +164 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-04-step-type-validation.md +211 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-05-output-format-validation.md +200 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-06-validation-design-check.md +195 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-07-instruction-style-check.md +209 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-08-collaborative-experience-check.md +199 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-08b-subprocess-optimization.md +179 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-09-cohesive-review.md +186 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-10-report-complete.md +154 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-11-plan-validation.md +237 -0
- package/src/modules/bmb/workflows/workflow/templates/minimal-output-template.md +11 -0
- package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-01-init-continuable-template.md +3 -3
- package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-1b-template.md +1 -1
- package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-template.md +15 -15
- package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/workflow-template.md +2 -4
- package/src/modules/bmb/workflows/workflow/workflow.md +109 -0
- package/src/modules/bmgd/agents/game-architect.agent.yaml +1 -0
- package/src/modules/bmgd/agents/game-designer.agent.yaml +1 -0
- package/src/modules/bmgd/agents/game-dev.agent.yaml +2 -1
- package/src/modules/bmgd/agents/game-qa.agent.yaml +2 -1
- package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +2 -1
- package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +3 -2
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +1 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +5 -3
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +4 -3
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +52 -46
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +2 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +5 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +3 -3
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +4 -3
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +2 -1
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +4 -3
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +4 -3
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +4 -3
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +4 -3
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +4 -3
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +4 -3
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +2 -1
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.md +1 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +2 -1
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +4 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +2 -1
- package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +1 -1
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +4 -3
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +12 -11
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +4 -3
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +4 -3
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +4 -3
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +4 -3
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +4 -3
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +4 -3
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +4 -3
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +4 -3
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +4 -3
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +2 -1
- package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +2 -1
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +4 -3
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +10 -9
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +4 -3
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +4 -3
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +4 -3
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +4 -3
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +6 -5
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +4 -3
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +6 -5
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +2 -1
- package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +2 -1
- package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-01-discover.md +1 -0
- package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-02-generate.md +2 -1
- package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-03-complete.md +1 -0
- package/src/modules/bmgd/workflows/3-technical/generate-project-context/workflow.md +1 -0
- package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +1 -0
- package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +1 -1
- package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +1 -1
- package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +2 -2
- package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +1 -1
- package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +1 -1
- package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +1 -1
- package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +2 -2
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml +1 -1
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml +1 -1
- package/src/modules/bmgd/workflows/bmgd-quick-flow/{create-tech-spec → quick-spec}/workflow.yaml +3 -3
- package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +2 -2
- package/src/modules/bmm/agents/analyst.agent.yaml +3 -2
- package/src/modules/bmm/agents/architect.agent.yaml +3 -1
- package/src/modules/bmm/agents/dev.agent.yaml +4 -3
- package/src/modules/bmm/agents/pm.agent.yaml +16 -5
- package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +3 -2
- package/src/modules/bmm/agents/sm.agent.yaml +1 -0
- package/src/modules/bmm/agents/tea.agent.yaml +6 -3
- package/src/modules/bmm/agents/tech-writer.agent.yaml +1 -0
- package/src/modules/bmm/agents/ux-designer.agent.yaml +1 -0
- package/src/modules/bmm/module.yaml +1 -1
- package/src/modules/bmm/testarch/knowledge/api-request.md +155 -16
- package/src/modules/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
- package/src/modules/bmm/testarch/knowledge/auth-session.md +197 -1
- package/src/modules/bmm/testarch/knowledge/file-utils.md +257 -54
- package/src/modules/bmm/testarch/knowledge/intercept-network-call.md +159 -9
- package/src/modules/bmm/testarch/knowledge/log.md +170 -35
- package/src/modules/bmm/testarch/knowledge/network-error-monitor.md +228 -95
- package/src/modules/bmm/testarch/knowledge/network-recorder.md +314 -52
- package/src/modules/bmm/testarch/knowledge/overview.md +15 -12
- package/src/modules/bmm/testarch/knowledge/recurse.md +173 -48
- package/src/modules/bmm/testarch/tea-index.csv +19 -18
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +4 -8
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +1 -5
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +3 -7
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +3 -7
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +3 -7
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +3 -7
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +1 -5
- package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +1 -0
- package/src/modules/bmm/workflows/1-analysis/research/workflow.md +1 -1
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +1 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +1 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +2 -1
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +3 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +3 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +3 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +3 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +3 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +3 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +3 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +3 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +3 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +3 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +3 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +1 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +2 -1
- package/src/modules/bmm/workflows/2-plan-workflows/prd/data/prd-purpose.md +197 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-01-init.md +8 -13
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-01b-continue.md +37 -49
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md +224 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-03-success.md +52 -115
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md +213 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md +207 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-06-innovation.md +45 -80
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-07-project-type.md +39 -59
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-08-scoping.md +45 -115
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-09-functional.md +23 -61
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-10-nonfunctional.md +34 -85
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-polish.md +217 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-12-complete.md +180 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01-discovery.md +247 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-02-review.md +249 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-03-edit.md +253 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-04-complete.md +168 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-01-discovery.md +218 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-13-report-complete.md +232 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{prd-template.md → templates/prd-template.md} +0 -1
- package/src/modules/bmm/workflows/2-plan-workflows/prd/validation-report-prd-workflow.md +433 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +97 -8
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +3 -2
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +3 -2
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +3 -2
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +3 -2
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +3 -2
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +2 -1
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +2 -1
- package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +1 -0
- package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +3 -2
- package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +3 -2
- package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +3 -2
- package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +3 -2
- package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +3 -2
- package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +3 -2
- package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +1 -0
- package/src/modules/bmm/workflows/3-solutioning/create-architecture/workflow.md +1 -0
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +5 -4
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +4 -3
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +4 -3
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +3 -2
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +1 -0
- package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +2 -0
- package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +9 -12
- package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +1 -1
- package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +2 -2
- package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +2 -1
- package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +13 -12
- package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +2 -1
- package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +3 -3
- package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +11 -10
- package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +7 -7
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +2 -2
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +2 -2
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +2 -2
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +3 -3
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +1 -1
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +4 -3
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +189 -0
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +144 -0
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +173 -0
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
- package/src/modules/bmm/workflows/document-project/checklist.md +2 -2
- package/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +1 -1
- package/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +1 -1
- package/src/modules/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +1 -1
- package/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +1 -1
- package/src/modules/bmm/workflows/generate-project-context/steps/step-01-discover.md +1 -0
- package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +2 -1
- package/src/modules/bmm/workflows/generate-project-context/steps/step-03-complete.md +1 -0
- package/src/modules/bmm/workflows/generate-project-context/workflow.md +1 -0
- package/src/modules/bmm/workflows/testarch/test-design/instructions.md +2 -2
- package/src/modules/bmm/workflows/workflow-status/init/instructions.md +6 -6
- package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +2 -1
- package/src/modules/bmm/workflows/workflow-status/instructions.md +8 -8
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +44 -63
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +44 -54
- package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +38 -41
- package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +26 -22
- package/src/modules/cis/agents/brainstorming-coach.agent.yaml +2 -1
- package/src/modules/cis/agents/creative-problem-solver.agent.yaml +1 -0
- package/src/modules/cis/agents/design-thinking-coach.agent.yaml +1 -0
- package/src/modules/cis/agents/innovation-strategist.agent.yaml +1 -0
- package/src/modules/cis/agents/presentation-master.agent.yaml +1 -0
- package/src/modules/cis/module.yaml +1 -0
- package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
- package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
- package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
- package/src/modules/cis/workflows/storytelling/instructions.md +2 -2
- package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +1 -0
- package/tools/build-docs.js +200 -271
- package/tools/cli/bmad-cli.js +18 -0
- package/tools/cli/commands/install.js +15 -13
- package/tools/cli/installers/install-messages.yaml +33 -27
- package/tools/cli/installers/lib/core/config-collector.js +11 -1
- package/tools/cli/installers/lib/core/detector.js +5 -115
- package/tools/cli/installers/lib/core/installer.js +48 -80
- package/tools/cli/installers/lib/core/manifest-generator.js +46 -2
- package/tools/cli/installers/lib/ide/antigravity.js +3 -3
- package/tools/cli/installers/lib/ide/claude-code.js +3 -3
- package/tools/cli/installers/lib/ide/codex.js +1 -1
- package/tools/cli/installers/lib/ide/cursor.js +57 -304
- package/tools/cli/installers/lib/ide/github-copilot.js +1 -1
- package/tools/cli/lib/agent/compiler.js +0 -4
- package/tools/cli/lib/ui.js +22 -1
- package/tools/docs/index.md +2 -0
- package/tools/fix-doc-links.js +288 -0
- package/tools/schema/agent.js +1 -0
- package/tools/validate-doc-links.js +363 -0
- package/website/README.md +76 -0
- package/website/astro.config.mjs +218 -0
- package/website/src/components/Banner.astro +59 -0
- package/website/src/components/Header.astro +121 -0
- package/website/src/components/MobileMenuFooter.astro +53 -0
- package/website/src/content/config.ts +6 -0
- package/website/src/lib/site-url.js +25 -0
- package/website/src/rehype-markdown-links.js +102 -0
- package/website/src/styles/custom.css +483 -0
- package/docs/document-sharding-guide.md +0 -449
- package/docs/getting-started/installation.md +0 -76
- package/docs/ide-info/auggie.md +0 -31
- package/docs/ide-info/claude-code.md +0 -25
- package/docs/ide-info/cline.md +0 -31
- package/docs/ide-info/codex.md +0 -21
- package/docs/ide-info/crush.md +0 -30
- package/docs/ide-info/cursor.md +0 -25
- package/docs/ide-info/gemini.md +0 -25
- package/docs/ide-info/github-copilot.md +0 -26
- package/docs/ide-info/iflow.md +0 -33
- package/docs/ide-info/index.md +0 -24
- package/docs/ide-info/kilo.md +0 -24
- package/docs/ide-info/opencode.md +0 -24
- package/docs/ide-info/qwen.md +0 -25
- package/docs/ide-info/roo.md +0 -27
- package/docs/ide-info/rovo-dev.md +0 -22
- package/docs/ide-info/trae.md +0 -25
- package/docs/ide-info/windsurf.md +0 -22
- package/docs/v4-to-v6-upgrade.md +0 -227
- package/docs/web-bundles-gemini-gpt-guide.md +0 -21
- package/src/core/tasks/validate-workflow.xml +0 -89
- package/src/modules/bmb/docs/agents/agent-compilation.md +0 -340
- package/src/modules/bmb/docs/agents/agent-menu-patterns.md +0 -523
- package/src/modules/bmb/docs/agents/expert-agent-architecture.md +0 -363
- package/src/modules/bmb/docs/agents/index.md +0 -55
- package/src/modules/bmb/docs/agents/kb.csv +0 -0
- package/src/modules/bmb/docs/agents/simple-agent-architecture.md +0 -257
- package/src/modules/bmb/docs/agents/understanding-agent-types.md +0 -184
- package/src/modules/bmb/docs/index.md +0 -247
- package/src/modules/bmb/docs/workflows/architecture.md +0 -220
- package/src/modules/bmb/docs/workflows/csv-data-file-standards.md +0 -206
- package/src/modules/bmb/docs/workflows/index.md +0 -45
- package/src/modules/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +0 -220
- package/src/modules/bmb/docs/workflows/kb.csv +0 -0
- package/src/modules/bmb/docs/workflows/templates/step-file.md +0 -139
- package/src/modules/bmb/docs/workflows/templates/workflow.md +0 -58
- package/src/modules/bmb/docs/workflows/terms.md +0 -97
- package/src/modules/bmb/reference/README.md +0 -3
- package/src/modules/bmb/reference/agents/simple-examples/README.md +0 -223
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +0 -18
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +0 -16
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +0 -28
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +0 -176
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +0 -120
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +0 -164
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +0 -153
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +0 -182
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +0 -167
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +0 -194
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +0 -25
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +0 -68
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +0 -29
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +0 -47
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +0 -37
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +0 -18
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +0 -58
- package/src/modules/bmb/workflows/create-agent/data/agent-validation-checklist.md +0 -174
- package/src/modules/bmb/workflows/create-agent/data/info-and-installation-guide.md +0 -29
- package/src/modules/bmb/workflows/create-agent/data/reference/README.md +0 -3
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/README.md +0 -242
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +0 -48
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +0 -223
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +0 -18
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +0 -16
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +0 -28
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +0 -177
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +0 -150
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +0 -164
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +0 -152
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +0 -182
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +0 -167
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +0 -194
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +0 -25
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +0 -68
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +0 -29
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/profile-section.md +0 -47
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +0 -37
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +0 -18
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +0 -58
- package/src/modules/bmb/workflows/create-agent/data/validation-complete.md +0 -305
- package/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +0 -206
- package/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +0 -260
- package/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +0 -237
- package/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +0 -232
- package/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +0 -186
- package/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +0 -234
- package/src/modules/bmb/workflows/create-agent/steps/step-08-celebrate.md +0 -218
- package/src/modules/bmb/workflows/create-agent/templates/agent-plan.template.md +0 -3
- package/src/modules/bmb/workflows/create-agent/templates/expert-agent.template.md +0 -364
- package/src/modules/bmb/workflows/create-agent/templates/simple-agent.template.md +0 -257
- package/src/modules/bmb/workflows/create-agent/workflow.md +0 -58
- package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +0 -155
- package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +0 -169
- package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +0 -217
- package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +0 -267
- package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +0 -228
- package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +0 -233
- package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +0 -296
- package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +0 -228
- package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +0 -186
- package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +0 -309
- package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +0 -337
- package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +0 -335
- package/src/modules/bmb/workflows/create-module/templates/agent.template.md +0 -313
- package/src/modules/bmb/workflows/create-module/templates/installer.template.js +0 -47
- package/src/modules/bmb/workflows/create-module/templates/module-plan.template.md +0 -5
- package/src/modules/bmb/workflows/create-module/templates/module.template.yaml +0 -53
- package/src/modules/bmb/workflows/create-module/templates/workflow-plan-template.md +0 -23
- package/src/modules/bmb/workflows/create-module/validation.md +0 -126
- package/src/modules/bmb/workflows/create-module/workflow.md +0 -55
- package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +0 -157
- package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +0 -211
- package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +0 -250
- package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +0 -216
- package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +0 -289
- package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +0 -308
- package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +0 -284
- package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +0 -187
- package/src/modules/bmb/workflows/create-workflow/workflow.md +0 -58
- package/src/modules/bmb/workflows/edit-agent/steps/step-01-discover-intent.md +0 -134
- package/src/modules/bmb/workflows/edit-agent/steps/step-02-analyze-agent.md +0 -202
- package/src/modules/bmb/workflows/edit-agent/steps/step-03-propose-changes.md +0 -157
- package/src/modules/bmb/workflows/edit-agent/steps/step-04-apply-changes.md +0 -150
- package/src/modules/bmb/workflows/edit-agent/steps/step-05-validate.md +0 -150
- package/src/modules/bmb/workflows/edit-agent/workflow.md +0 -58
- package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +0 -217
- package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +0 -253
- package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +0 -217
- package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +0 -193
- package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +0 -245
- package/src/modules/bmb/workflows/edit-workflow/templates/completion-summary.md +0 -75
- package/src/modules/bmb/workflows/edit-workflow/templates/improvement-goals.md +0 -68
- package/src/modules/bmb/workflows/edit-workflow/templates/improvement-log.md +0 -40
- package/src/modules/bmb/workflows/edit-workflow/templates/validation-results.md +0 -51
- package/src/modules/bmb/workflows/edit-workflow/templates/workflow-analysis.md +0 -56
- package/src/modules/bmb/workflows/edit-workflow/workflow.md +0 -58
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +0 -152
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +0 -243
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +0 -274
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +0 -295
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +0 -264
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +0 -360
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +0 -258
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +0 -301
- package/src/modules/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +0 -140
- package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +0 -58
- package/src/modules/bmb/workflows-legacy/edit-module/README.md +0 -171
- package/src/modules/bmb/workflows-legacy/edit-module/checklist.md +0 -163
- package/src/modules/bmb/workflows-legacy/edit-module/instructions.md +0 -340
- package/src/modules/bmb/workflows-legacy/edit-module/workflow.yaml +0 -34
- package/src/modules/bmb/workflows-legacy/module-brief/README.md +0 -264
- package/src/modules/bmb/workflows-legacy/module-brief/checklist.md +0 -116
- package/src/modules/bmb/workflows-legacy/module-brief/instructions.md +0 -268
- package/src/modules/bmb/workflows-legacy/module-brief/template.md +0 -275
- package/src/modules/bmb/workflows-legacy/module-brief/workflow.yaml +0 -36
- package/src/modules/bmgd/docs/glossary.md +0 -294
- package/src/modules/bmgd/docs/index.md +0 -180
- package/src/modules/bmgd/docs/quick-start.md +0 -250
- package/src/modules/bmm/README.md +0 -127
- package/src/modules/bmm/docs/bmad-quick-flow.md +0 -506
- package/src/modules/bmm/docs/brownfield-guide.md +0 -748
- package/src/modules/bmm/docs/enterprise-agentic-development.md +0 -686
- package/src/modules/bmm/docs/faq.md +0 -542
- package/src/modules/bmm/docs/index.md +0 -168
- package/src/modules/bmm/docs/quick-spec-flow.md +0 -638
- package/src/modules/bmm/docs/quick-start.md +0 -366
- package/src/modules/bmm/docs/scale-adaptive-system.md +0 -618
- package/src/modules/bmm/docs/troubleshooting.md +0 -661
- package/src/modules/bmm/docs/workflow-architecture-reference.md +0 -366
- package/src/modules/bmm/docs/workflow-document-project-reference.md +0 -489
- package/src/modules/bmm/docs/workflows-analysis.md +0 -266
- package/src/modules/bmm/docs/workflows-implementation.md +0 -210
- package/src/modules/bmm/docs/workflows-planning.md +0 -451
- package/src/modules/bmm/docs/workflows-solutioning.md +0 -509
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +0 -420
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +0 -290
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +0 -270
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +0 -185
- package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/instructions.md +0 -115
- package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +0 -28
- package/website/css/custom.css +0 -52
- package/website/docusaurus.config.js +0 -179
- package/website/sidebars.js +0 -157
- package/website/src/pages/index.js +0 -50
- /package/{src/modules/bmm/docs → docs/tutorials/getting-started}/images/workflow-method-greenfield.excalidraw +0 -0
- /package/{src/modules/bmm/docs → docs/tutorials/getting-started}/images/workflow-method-greenfield.svg +0 -0
- /package/{src/modules/bmgd/docs → docs/tutorials/getting-started/images}/workflow-overview.jpg +0 -0
- /package/src/core/{tasks/advanced-elicitation-methods.csv → workflows/advanced-elicitation/methods.csv} +0 -0
- /package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +0 -0
- /package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +0 -0
- /package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +0 -0
- /package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +0 -0
- /package/src/modules/bmgd/workflows/bmgd-quick-flow/{create-tech-spec → quick-spec}/instructions.md +0 -0
- /package/src/modules/bmm/workflows/2-plan-workflows/prd/{domain-complexity.csv → data/domain-complexity.csv} +0 -0
- /package/src/modules/bmm/workflows/2-plan-workflows/prd/{project-types.csv → data/project-types.csv} +0 -0
- /package/{docs → tools/docs}/BUNDLE_DISTRIBUTION_SETUP.md +0 -0
- /package/website/{static → public}/favicon.ico +0 -0
- /package/website/{static → public}/img/logo.svg +0 -0
- /package/website/{static → public}/robots.txt +0 -0
package/tools/build-docs.js
CHANGED
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
* BMAD Documentation Build Pipeline
|
|
3
3
|
*
|
|
4
4
|
* Consolidates docs from multiple sources, generates LLM-friendly files,
|
|
5
|
-
* creates downloadable bundles, and builds the
|
|
5
|
+
* creates downloadable bundles, and builds the Astro+Starlight site.
|
|
6
6
|
*
|
|
7
7
|
* Build outputs:
|
|
8
|
-
* build/consolidated/ - Merged docs from all sources
|
|
9
8
|
* build/artifacts/ - With llms.txt, llms-full.txt, ZIPs
|
|
10
|
-
* build/site/ - Final
|
|
9
|
+
* build/site/ - Final Astro output (deployable)
|
|
11
10
|
*/
|
|
12
11
|
|
|
13
12
|
const { execSync } = require('node:child_process');
|
|
@@ -28,17 +27,17 @@ const REPO_URL = 'https://github.com/bmad-code-org/BMAD-METHOD';
|
|
|
28
27
|
const LLM_MAX_CHARS = 600_000;
|
|
29
28
|
const LLM_WARN_CHARS = 500_000;
|
|
30
29
|
|
|
31
|
-
const MODULES = ['bmm', 'bmb', 'bmgd', 'cis'];
|
|
32
|
-
|
|
33
|
-
// No root docs copied - only docs/ folder content goes to site
|
|
34
|
-
// README.md, CHANGELOG.md etc. link to GitHub
|
|
35
|
-
const ROOT_DOCS = [];
|
|
36
|
-
|
|
37
30
|
const LLM_EXCLUDE_PATTERNS = ['changelog', 'ide-info/', 'v4-to-v6-upgrade', 'downloads/', 'faq'];
|
|
38
31
|
|
|
39
32
|
// =============================================================================
|
|
40
33
|
// Main Entry Point
|
|
41
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Orchestrates the full BMAD documentation build pipeline.
|
|
36
|
+
*
|
|
37
|
+
* Executes the high-level build steps in sequence: prints headers and paths, validates internal
|
|
38
|
+
* documentation links, cleans the build directory, generates artifacts from the `docs/` folder,
|
|
39
|
+
* builds the Astro site, and prints a final build summary.
|
|
40
|
+
*/
|
|
42
41
|
|
|
43
42
|
async function main() {
|
|
44
43
|
console.log();
|
|
@@ -48,13 +47,16 @@ async function main() {
|
|
|
48
47
|
console.log(`Build directory: ${BUILD_DIR}`);
|
|
49
48
|
console.log();
|
|
50
49
|
|
|
50
|
+
// Check for broken internal links before building
|
|
51
|
+
checkDocLinks();
|
|
52
|
+
|
|
51
53
|
cleanBuildDirectory();
|
|
52
54
|
|
|
53
|
-
const
|
|
54
|
-
const artifactsDir = await generateArtifacts(
|
|
55
|
-
const siteDir =
|
|
55
|
+
const docsDir = path.join(PROJECT_ROOT, 'docs');
|
|
56
|
+
const artifactsDir = await generateArtifacts(docsDir);
|
|
57
|
+
const siteDir = buildAstroSite();
|
|
56
58
|
|
|
57
|
-
printBuildSummary(
|
|
59
|
+
printBuildSummary(docsDir, artifactsDir, siteDir);
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
main().catch((error) => {
|
|
@@ -64,33 +66,25 @@ main().catch((error) => {
|
|
|
64
66
|
|
|
65
67
|
// =============================================================================
|
|
66
68
|
// Pipeline Stages
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
copyRootDocs(outputDir);
|
|
77
|
-
copyModuleDocs(outputDir);
|
|
78
|
-
|
|
79
|
-
const mdCount = countMarkdownFiles(outputDir);
|
|
80
|
-
console.log();
|
|
81
|
-
console.log(` \u001B[32m✓\u001B[0m Consolidation complete: ${mdCount} markdown files`);
|
|
82
|
-
|
|
83
|
-
return outputDir;
|
|
84
|
-
}
|
|
69
|
+
/**
|
|
70
|
+
* Generate LLM files and downloadable bundles for the documentation pipeline.
|
|
71
|
+
*
|
|
72
|
+
* Creates the build/artifacts directory, writes `llms.txt` and `llms-full.txt` (sourced from the provided docs directory),
|
|
73
|
+
* and produces download ZIP bundles.
|
|
74
|
+
*
|
|
75
|
+
* @param {string} docsDir - Path to the source docs directory containing Markdown files.
|
|
76
|
+
* @returns {string} Path to the created artifacts directory.
|
|
77
|
+
*/
|
|
85
78
|
|
|
86
|
-
async function generateArtifacts(
|
|
79
|
+
async function generateArtifacts(docsDir) {
|
|
87
80
|
printHeader('Generating LLM files and download bundles');
|
|
88
81
|
|
|
89
82
|
const outputDir = path.join(BUILD_DIR, 'artifacts');
|
|
90
|
-
|
|
83
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
91
84
|
|
|
85
|
+
// Generate LLM files reading from docs/, output to artifacts/
|
|
92
86
|
generateLlmsTxt(outputDir);
|
|
93
|
-
generateLlmsFullTxt(outputDir);
|
|
87
|
+
generateLlmsFullTxt(docsDir, outputDir);
|
|
94
88
|
await generateDownloadBundles(outputDir);
|
|
95
89
|
|
|
96
90
|
console.log();
|
|
@@ -99,81 +93,39 @@ async function generateArtifacts(consolidatedDir) {
|
|
|
99
93
|
return outputDir;
|
|
100
94
|
}
|
|
101
95
|
|
|
102
|
-
|
|
103
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Builds the Astro + Starlight site and copies generated artifacts into the site output directory.
|
|
98
|
+
*
|
|
99
|
+
* @returns {string} The filesystem path to the built site directory (e.g., build/site).
|
|
100
|
+
*/
|
|
101
|
+
function buildAstroSite() {
|
|
102
|
+
printHeader('Building Astro + Starlight site');
|
|
104
103
|
|
|
105
104
|
const siteDir = path.join(BUILD_DIR, 'site');
|
|
106
|
-
const
|
|
107
|
-
const docsBackup = path.join(BUILD_DIR, 'docs-backup');
|
|
108
|
-
|
|
109
|
-
backupAndReplaceDocs(mainDocs, docsBackup, artifactsDir);
|
|
110
|
-
|
|
111
|
-
try {
|
|
112
|
-
runDocusaurusBuild(siteDir);
|
|
113
|
-
} finally {
|
|
114
|
-
restoreDocs(mainDocs, docsBackup);
|
|
115
|
-
}
|
|
105
|
+
const artifactsDir = path.join(BUILD_DIR, 'artifacts');
|
|
116
106
|
|
|
107
|
+
// Build Astro site (outputs to build/site via astro.config.mjs)
|
|
108
|
+
runAstroBuild();
|
|
117
109
|
copyArtifactsToSite(artifactsDir, siteDir);
|
|
118
110
|
|
|
111
|
+
// No longer needed: Inject AI agents banner into every HTML page
|
|
112
|
+
// injectAgentBanner(siteDir);
|
|
113
|
+
|
|
119
114
|
console.log();
|
|
120
|
-
console.log(` \u001B[32m✓\u001B[0m
|
|
115
|
+
console.log(` \u001B[32m✓\u001B[0m Astro build complete`);
|
|
121
116
|
|
|
122
117
|
return siteDir;
|
|
123
118
|
}
|
|
124
119
|
|
|
125
|
-
// =============================================================================
|
|
126
|
-
// Documentation Consolidation
|
|
127
|
-
// =============================================================================
|
|
128
|
-
|
|
129
|
-
function copyMainDocs(destDir) {
|
|
130
|
-
console.log(' → Copying main docs...');
|
|
131
|
-
const docsDir = path.join(PROJECT_ROOT, 'docs');
|
|
132
|
-
copyDirectory(docsDir, destDir, ['modules', 'llms.txt', 'llms-full.txt'], true);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
function copyRootDocs(destDir) {
|
|
136
|
-
console.log(' → Copying root documentation files...');
|
|
137
|
-
|
|
138
|
-
for (const doc of ROOT_DOCS) {
|
|
139
|
-
const srcPath = path.join(PROJECT_ROOT, doc.src);
|
|
140
|
-
const destPath = path.join(destDir, doc.dest);
|
|
141
|
-
|
|
142
|
-
if (fs.existsSync(srcPath)) {
|
|
143
|
-
let content = fs.readFileSync(srcPath, 'utf-8');
|
|
144
|
-
|
|
145
|
-
if (!content.startsWith('---')) {
|
|
146
|
-
content = `---\ntitle: "${doc.title}"\n---\n\n${content}`;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
content = transformMarkdownLinks(content);
|
|
150
|
-
fs.writeFileSync(destPath, content);
|
|
151
|
-
console.log(` ${doc.src} → ${doc.dest}`);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
function copyModuleDocs(destDir) {
|
|
157
|
-
fs.mkdirSync(path.join(destDir, 'modules'), { recursive: true });
|
|
158
|
-
|
|
159
|
-
for (const moduleName of MODULES) {
|
|
160
|
-
const srcPath = path.join(PROJECT_ROOT, 'src', 'modules', moduleName, 'docs');
|
|
161
|
-
const moduleDest = path.join(destDir, 'modules', moduleName);
|
|
162
|
-
|
|
163
|
-
if (fs.existsSync(srcPath)) {
|
|
164
|
-
console.log(` → Copying ${moduleName} docs...`);
|
|
165
|
-
copyDirectory(srcPath, moduleDest, [], false, moduleName);
|
|
166
|
-
const count = countMarkdownFiles(moduleDest);
|
|
167
|
-
console.log(` ${count} markdown files`);
|
|
168
|
-
} else {
|
|
169
|
-
console.log(` ⚠ WARNING: ${moduleName} docs not found`);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
120
|
// =============================================================================
|
|
175
121
|
// LLM File Generation
|
|
176
|
-
|
|
122
|
+
/**
|
|
123
|
+
* Create a concise llms.txt summary file containing project metadata, core links, and quick navigation entries for LLM consumption.
|
|
124
|
+
*
|
|
125
|
+
* Writes the file to `${outputDir}/llms.txt`.
|
|
126
|
+
*
|
|
127
|
+
* @param {string} outputDir - Destination directory where `llms.txt` will be written.
|
|
128
|
+
*/
|
|
177
129
|
|
|
178
130
|
function generateLlmsTxt(outputDir) {
|
|
179
131
|
console.log(' → Generating llms.txt...');
|
|
@@ -219,11 +171,18 @@ function generateLlmsTxt(outputDir) {
|
|
|
219
171
|
console.log(` Generated llms.txt (${content.length.toLocaleString()} chars)`);
|
|
220
172
|
}
|
|
221
173
|
|
|
222
|
-
|
|
174
|
+
/**
|
|
175
|
+
* Builds a consolidated llms-full.txt containing all Markdown files under docsDir wrapped in <document path="..."> tags for LLM consumption.
|
|
176
|
+
*
|
|
177
|
+
* Writes the generated file to outputDir/llms-full.txt. Files matching LLM_EXCLUDE_PATTERNS are skipped; read errors for individual files are logged. The combined content is validated against configured size thresholds (will exit on overflow and warn if near limit).
|
|
178
|
+
* @param {string} docsDir - Root directory containing source Markdown files; paths in the output are relative to this directory.
|
|
179
|
+
* @param {string} outputDir - Directory where llms-full.txt will be written.
|
|
180
|
+
*/
|
|
181
|
+
function generateLlmsFullTxt(docsDir, outputDir) {
|
|
223
182
|
console.log(' → Generating llms-full.txt...');
|
|
224
183
|
|
|
225
184
|
const date = new Date().toISOString().split('T')[0];
|
|
226
|
-
const files =
|
|
185
|
+
const files = getAllMarkdownFiles(docsDir);
|
|
227
186
|
|
|
228
187
|
const output = [
|
|
229
188
|
'# BMAD Method Documentation (Full)',
|
|
@@ -243,7 +202,7 @@ function generateLlmsFullTxt(outputDir) {
|
|
|
243
202
|
continue;
|
|
244
203
|
}
|
|
245
204
|
|
|
246
|
-
const fullPath = path.join(
|
|
205
|
+
const fullPath = path.join(docsDir, mdPath);
|
|
247
206
|
try {
|
|
248
207
|
const content = readMarkdownContent(fullPath);
|
|
249
208
|
output.push(`<document path="${mdPath}">`, content, '</document>', '');
|
|
@@ -265,34 +224,35 @@ function generateLlmsFullTxt(outputDir) {
|
|
|
265
224
|
);
|
|
266
225
|
}
|
|
267
226
|
|
|
268
|
-
|
|
269
|
-
|
|
227
|
+
/**
|
|
228
|
+
* Collects all Markdown (.md) files under a directory and returns their paths relative to a base directory.
|
|
229
|
+
* @param {string} dir - Directory to search for Markdown files.
|
|
230
|
+
* @param {string} [baseDir=dir] - Base directory used to compute returned relative paths.
|
|
231
|
+
* @returns {string[]} An array of file paths (relative to `baseDir`) for every `.md` file found under `dir`.
|
|
232
|
+
*/
|
|
233
|
+
function getAllMarkdownFiles(dir, baseDir = dir) {
|
|
234
|
+
const files = [];
|
|
270
235
|
|
|
271
|
-
|
|
272
|
-
const
|
|
273
|
-
const matches = sidebarContent.matchAll(/'([a-zA-Z0-9\-_/]+)'/g);
|
|
274
|
-
const files = [];
|
|
275
|
-
|
|
276
|
-
for (const match of matches) {
|
|
277
|
-
const docId = match[1];
|
|
278
|
-
// Skip Docusaurus keywords
|
|
279
|
-
if (docId.includes('Sidebar') || docId === 'doc' || docId === 'category') {
|
|
280
|
-
continue;
|
|
281
|
-
}
|
|
282
|
-
// Skip category labels (Title Case words without slashes like 'Workflows', 'Reference')
|
|
283
|
-
if (!docId.includes('/') && /^[A-Z][a-z]/.test(docId)) {
|
|
284
|
-
continue;
|
|
285
|
-
}
|
|
286
|
-
files.push(docId + '.md');
|
|
287
|
-
}
|
|
236
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
237
|
+
const fullPath = path.join(dir, entry.name);
|
|
288
238
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
239
|
+
if (entry.isDirectory()) {
|
|
240
|
+
files.push(...getAllMarkdownFiles(fullPath, baseDir));
|
|
241
|
+
} else if (entry.name.endsWith('.md')) {
|
|
242
|
+
// Return relative path from baseDir
|
|
243
|
+
const relativePath = path.relative(baseDir, fullPath);
|
|
244
|
+
files.push(relativePath);
|
|
245
|
+
}
|
|
293
246
|
}
|
|
247
|
+
|
|
248
|
+
return files;
|
|
294
249
|
}
|
|
295
250
|
|
|
251
|
+
/**
|
|
252
|
+
* Determine whether a file path matches any configured LLM exclusion pattern.
|
|
253
|
+
* @param {string} filePath - The file path to test.
|
|
254
|
+
* @returns {boolean} `true` if the path contains any pattern from LLM_EXCLUDE_PATTERNS, `false` otherwise.
|
|
255
|
+
*/
|
|
296
256
|
function shouldExcludeFromLlm(filePath) {
|
|
297
257
|
return LLM_EXCLUDE_PATTERNS.some((pattern) => filePath.includes(pattern));
|
|
298
258
|
}
|
|
@@ -346,6 +306,12 @@ async function generateSourcesBundle(downloadsDir) {
|
|
|
346
306
|
console.log(` bmad-sources.zip (${size}M)`);
|
|
347
307
|
}
|
|
348
308
|
|
|
309
|
+
/**
|
|
310
|
+
* Create a zip archive of the project's prompts modules and place it in the downloads directory.
|
|
311
|
+
*
|
|
312
|
+
* Creates bmad-prompts.zip from src/modules, excluding common unwanted paths, writes it to the provided downloads directory, and logs the resulting file size. If the modules directory does not exist, the function returns without creating a bundle.
|
|
313
|
+
* @param {string} downloadsDir - Destination directory where bmad-prompts.zip will be written.
|
|
314
|
+
*/
|
|
349
315
|
async function generatePromptsBundle(downloadsDir) {
|
|
350
316
|
const modulesDir = path.join(PROJECT_ROOT, 'src', 'modules');
|
|
351
317
|
if (!fs.existsSync(modulesDir)) return;
|
|
@@ -358,39 +324,31 @@ async function generatePromptsBundle(downloadsDir) {
|
|
|
358
324
|
}
|
|
359
325
|
|
|
360
326
|
// =============================================================================
|
|
361
|
-
//
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
copyDirectory(mainDocs, backupDir);
|
|
369
|
-
fs.rmSync(mainDocs, { recursive: true });
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
copyDirectory(artifactsDir, mainDocs, ['llms.txt', 'llms-full.txt']);
|
|
373
|
-
removeZipFiles(path.join(mainDocs, 'downloads'));
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
function runDocusaurusBuild(siteDir) {
|
|
377
|
-
console.log(' → Running docusaurus build...');
|
|
378
|
-
execSync('npx docusaurus build --config website/docusaurus.config.js --out-dir ' + siteDir, {
|
|
327
|
+
// Astro Build
|
|
328
|
+
/**
|
|
329
|
+
* Builds the Astro site to build/site (configured in astro.config.mjs).
|
|
330
|
+
*/
|
|
331
|
+
function runAstroBuild() {
|
|
332
|
+
console.log(' → Running astro build...');
|
|
333
|
+
execSync('npx astro build --root website', {
|
|
379
334
|
cwd: PROJECT_ROOT,
|
|
380
335
|
stdio: 'inherit',
|
|
336
|
+
env: {
|
|
337
|
+
...process.env,
|
|
338
|
+
NODE_OPTIONS: `${process.env.NODE_OPTIONS || ''} --disable-warning=MODULE_TYPELESS_PACKAGE_JSON`.trim(),
|
|
339
|
+
},
|
|
381
340
|
});
|
|
382
341
|
}
|
|
383
342
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
343
|
+
/**
|
|
344
|
+
* Copy generated artifact files into the built site directory.
|
|
345
|
+
*
|
|
346
|
+
* Copies llms.txt and llms-full.txt from the artifacts directory into the site directory.
|
|
347
|
+
* If a downloads subdirectory exists under artifacts, copies it into siteDir/downloads.
|
|
348
|
+
*
|
|
349
|
+
* @param {string} artifactsDir - Path to the build artifacts directory containing generated files.
|
|
350
|
+
* @param {string} siteDir - Path to the target site directory where artifacts should be placed.
|
|
351
|
+
*/
|
|
394
352
|
function copyArtifactsToSite(artifactsDir, siteDir) {
|
|
395
353
|
console.log(' → Copying artifacts to site...');
|
|
396
354
|
|
|
@@ -403,28 +361,24 @@ function copyArtifactsToSite(artifactsDir, siteDir) {
|
|
|
403
361
|
}
|
|
404
362
|
}
|
|
405
363
|
|
|
406
|
-
function removeZipFiles(dir) {
|
|
407
|
-
if (!fs.existsSync(dir)) return;
|
|
408
|
-
|
|
409
|
-
for (const file of fs.readdirSync(dir)) {
|
|
410
|
-
if (file.endsWith('.zip')) {
|
|
411
|
-
fs.unlinkSync(path.join(dir, file));
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
|
|
416
364
|
// =============================================================================
|
|
417
365
|
// Build Summary
|
|
418
|
-
|
|
366
|
+
/**
|
|
367
|
+
* Prints a concise end-of-build summary and displays a sample listing of the final site directory.
|
|
368
|
+
*
|
|
369
|
+
* @param {string} docsDir - Path to the source documentation directory used for the build.
|
|
370
|
+
* @param {string} artifactsDir - Path to the directory containing generated artifacts (e.g., llms.txt, downloads).
|
|
371
|
+
* @param {string} siteDir - Path to the final built site directory whose contents will be listed.
|
|
372
|
+
*/
|
|
419
373
|
|
|
420
|
-
function printBuildSummary(
|
|
374
|
+
function printBuildSummary(docsDir, artifactsDir, siteDir) {
|
|
421
375
|
console.log();
|
|
422
376
|
printBanner('Build Complete!');
|
|
423
377
|
console.log();
|
|
424
378
|
console.log('Build artifacts:');
|
|
425
|
-
console.log(`
|
|
426
|
-
console.log(` Generated files:
|
|
427
|
-
console.log(` Final site:
|
|
379
|
+
console.log(` Source docs: ${docsDir}`);
|
|
380
|
+
console.log(` Generated files: ${artifactsDir}`);
|
|
381
|
+
console.log(` Final site: ${siteDir}`);
|
|
428
382
|
console.log();
|
|
429
383
|
console.log(`Deployable output: ${siteDir}/`);
|
|
430
384
|
console.log();
|
|
@@ -448,6 +402,11 @@ function listDirectoryContents(dir) {
|
|
|
448
402
|
}
|
|
449
403
|
}
|
|
450
404
|
|
|
405
|
+
/**
|
|
406
|
+
* Format a byte count into a compact human-readable string using B, K, or M units.
|
|
407
|
+
* @param {number} bytes - The number of bytes to format.
|
|
408
|
+
* @returns {string} The formatted size: bytes as `N B` (e.g. `512B`), kilobytes truncated to an integer with `K` (e.g. `2K`), or megabytes with one decimal and `M` (e.g. `1.2M`).
|
|
409
|
+
*/
|
|
451
410
|
function formatFileSize(bytes) {
|
|
452
411
|
if (bytes > 1024 * 1024) {
|
|
453
412
|
return `${(bytes / 1024 / 1024).toFixed(1)}M`;
|
|
@@ -458,8 +417,38 @@ function formatFileSize(bytes) {
|
|
|
458
417
|
}
|
|
459
418
|
|
|
460
419
|
// =============================================================================
|
|
461
|
-
//
|
|
420
|
+
// Post-build Injection
|
|
421
|
+
/**
|
|
422
|
+
* Recursively collects all files with the given extension under a directory.
|
|
423
|
+
*
|
|
424
|
+
* @param {string} dir - Root directory to search.
|
|
425
|
+
* @param {string} ext - File extension to match (include the leading dot, e.g. ".md").
|
|
426
|
+
* @returns {string[]} An array of file paths for files ending with `ext` found under `dir`.
|
|
427
|
+
*/
|
|
428
|
+
|
|
429
|
+
function getAllFilesByExtension(dir, ext) {
|
|
430
|
+
const result = [];
|
|
431
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
432
|
+
|
|
433
|
+
for (const entry of entries) {
|
|
434
|
+
const fullPath = path.join(dir, entry.name);
|
|
435
|
+
if (entry.isDirectory()) {
|
|
436
|
+
result.push(...getAllFilesByExtension(fullPath, ext));
|
|
437
|
+
} else if (entry.name.endsWith(ext)) {
|
|
438
|
+
result.push(fullPath);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
return result;
|
|
443
|
+
}
|
|
444
|
+
|
|
462
445
|
// =============================================================================
|
|
446
|
+
// File System Utilities
|
|
447
|
+
/**
|
|
448
|
+
* Remove any existing build output and recreate the build directory.
|
|
449
|
+
*
|
|
450
|
+
* Ensures the configured BUILD_DIR is empty by deleting it if present and then creating a fresh directory.
|
|
451
|
+
*/
|
|
463
452
|
|
|
464
453
|
function cleanBuildDirectory() {
|
|
465
454
|
console.log('Cleaning previous build...');
|
|
@@ -470,7 +459,15 @@ function cleanBuildDirectory() {
|
|
|
470
459
|
fs.mkdirSync(BUILD_DIR, { recursive: true });
|
|
471
460
|
}
|
|
472
461
|
|
|
473
|
-
|
|
462
|
+
/**
|
|
463
|
+
* Recursively copies all files and subdirectories from one directory to another, creating the destination if needed.
|
|
464
|
+
*
|
|
465
|
+
* @param {string} src - Path to the source directory to copy from.
|
|
466
|
+
* @param {string} dest - Path to the destination directory to copy to.
|
|
467
|
+
* @param {string[]} [exclude=[]] - List of file or directory names (not paths) to skip while copying.
|
|
468
|
+
* @returns {boolean} `true` if the source existed and copying proceeded, `false` if the source did not exist.
|
|
469
|
+
*/
|
|
470
|
+
function copyDirectory(src, dest, exclude = []) {
|
|
474
471
|
if (!fs.existsSync(src)) return false;
|
|
475
472
|
fs.mkdirSync(dest, { recursive: true });
|
|
476
473
|
|
|
@@ -481,12 +478,7 @@ function copyDirectory(src, dest, exclude = [], transformMd = false, moduleName
|
|
|
481
478
|
const destPath = path.join(dest, entry.name);
|
|
482
479
|
|
|
483
480
|
if (entry.isDirectory()) {
|
|
484
|
-
copyDirectory(srcPath, destPath, exclude
|
|
485
|
-
} else if (entry.name.endsWith('.md')) {
|
|
486
|
-
// Always transform markdown links, use module context if provided
|
|
487
|
-
let content = fs.readFileSync(srcPath, 'utf-8');
|
|
488
|
-
content = transformMarkdownLinks(content, moduleName);
|
|
489
|
-
fs.writeFileSync(destPath, content);
|
|
481
|
+
copyDirectory(srcPath, destPath, exclude);
|
|
490
482
|
} else {
|
|
491
483
|
fs.copyFileSync(srcPath, destPath);
|
|
492
484
|
}
|
|
@@ -494,102 +486,13 @@ function copyDirectory(src, dest, exclude = [], transformMd = false, moduleName
|
|
|
494
486
|
return true;
|
|
495
487
|
}
|
|
496
488
|
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
// src/modules/{mod}/docs/{path}.md → ./modules/{mod}/{path}.md
|
|
505
|
-
// Keeps .md - Docusaurus handles .md → page conversion
|
|
506
|
-
const docsMatch = url.match(/^\.\.?\/src\/modules\/([^/]+)\/docs\/(.+\.md)$/);
|
|
507
|
-
if (docsMatch) return `](./modules/${docsMatch[1]}/${docsMatch[2]})`;
|
|
508
|
-
|
|
509
|
-
// src/modules/{mod}/docs/ → ./modules/{mod}/
|
|
510
|
-
const docsDirMatch = url.match(/^\.\.?\/src\/modules\/([^/]+)\/docs\/$/);
|
|
511
|
-
if (docsDirMatch) return `](./modules/${docsDirMatch[1]}/)`;
|
|
512
|
-
|
|
513
|
-
// src/modules/{mod}/docs/images/{file} → ./modules/{mod}/images/{file}
|
|
514
|
-
const docsImageMatch = url.match(/^\.\.?\/src\/modules\/([^/]+)\/docs\/images\/(.+)$/);
|
|
515
|
-
if (docsImageMatch) return `](./modules/${docsImageMatch[1]}/images/${docsImageMatch[2]})`;
|
|
516
|
-
|
|
517
|
-
// src/modules/{mod}/README.md → GitHub (not in docs folder)
|
|
518
|
-
const readmeMatch = url.match(/^\.\.?\/src\/modules\/([^/]+)\/README\.md$/i);
|
|
519
|
-
if (readmeMatch) return `](${REPO_URL}/blob/main/src/modules/${readmeMatch[1]}/README.md)`;
|
|
520
|
-
|
|
521
|
-
// src/modules/* (non-docs) → GitHub
|
|
522
|
-
const srcMatch = url.match(/^\.\.?\/src\/modules\/(.+)$/);
|
|
523
|
-
if (srcMatch) return `](${REPO_URL}/tree/main/src/modules/${srcMatch[1]})`;
|
|
524
|
-
|
|
525
|
-
// Relative paths escaping docs/ folder → GitHub (when module context is known)
|
|
526
|
-
// e.g., ../workflows/foo/bar.md from within docs/ → src/modules/{mod}/workflows/foo/bar.md
|
|
527
|
-
if (moduleName) {
|
|
528
|
-
const relativeEscapeMatch = url.match(/^\.\.\/([^.][^)]+)$/);
|
|
529
|
-
if (relativeEscapeMatch && !relativeEscapeMatch[1].startsWith('src/')) {
|
|
530
|
-
const relativePath = relativeEscapeMatch[1];
|
|
531
|
-
return `](${REPO_URL}/blob/main/src/modules/${moduleName}/${relativePath})`;
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
// ./docs/{path}.md → ./{path}.md (docs folder contents are at root in build)
|
|
536
|
-
// Keeps .md - Docusaurus handles .md → page conversion
|
|
537
|
-
const rootDocsMatch = url.match(/^\.\/docs\/(.+\.md)$/);
|
|
538
|
-
if (rootDocsMatch) return `](./${rootDocsMatch[1]})`;
|
|
539
|
-
|
|
540
|
-
// Root docs → GitHub (not part of docs site)
|
|
541
|
-
if (url === '../README.md' || url === './README.md' || url === './project-readme') {
|
|
542
|
-
return `](${REPO_URL}/blob/main/README.md)`;
|
|
543
|
-
}
|
|
544
|
-
if (url === '../CHANGELOG.md' || url === './CHANGELOG.md' || url === './changelog') {
|
|
545
|
-
return `](${REPO_URL}/blob/main/CHANGELOG.md)`;
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
// Root files → GitHub (CONTRIBUTING, LICENSE, CODE_OF_CONDUCT, etc.)
|
|
549
|
-
const contributingMatch = url.match(/^(\.\.\/)?CONTRIBUTING\.md(#.*)?$/);
|
|
550
|
-
if (contributingMatch) {
|
|
551
|
-
const anchor = contributingMatch[2] || '';
|
|
552
|
-
return `](${REPO_URL}/blob/main/CONTRIBUTING.md${anchor})`;
|
|
553
|
-
}
|
|
554
|
-
if (url === 'LICENSE' || url === '../LICENSE') {
|
|
555
|
-
return `](${REPO_URL}/blob/main/LICENSE)`;
|
|
556
|
-
}
|
|
557
|
-
if (url === '.github/CODE_OF_CONDUCT.md' || url === '../.github/CODE_OF_CONDUCT.md') {
|
|
558
|
-
return `](${REPO_URL}/blob/main/.github/CODE_OF_CONDUCT.md)`;
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
// Other root .md files → GitHub
|
|
562
|
-
const rootFileMatch = url.match(/^\.\.\/([A-Z][^/]+\.md)$/);
|
|
563
|
-
if (rootFileMatch) return `](${REPO_URL}/blob/main/${rootFileMatch[1]})`;
|
|
564
|
-
|
|
565
|
-
// Cross-module doc links: ../../{mod}/docs/{path}.md → ../{mod}/{path}.md
|
|
566
|
-
// Fixes path structure but keeps .md (Docusaurus handles .md → page conversion)
|
|
567
|
-
const crossModuleDocsMatch = url.match(/^\.\.\/\.\.\/([^/]+)\/docs\/(.+\.md)$/);
|
|
568
|
-
if (crossModuleDocsMatch) return `](../${crossModuleDocsMatch[1]}/${crossModuleDocsMatch[2]})`;
|
|
569
|
-
|
|
570
|
-
// Root-level folders (samples/) → GitHub
|
|
571
|
-
const rootFolderMatch = url.match(/^\.\.\/((samples)\/.*)/);
|
|
572
|
-
if (rootFolderMatch) return `](${REPO_URL}/blob/main/${rootFolderMatch[1]})`;
|
|
573
|
-
|
|
574
|
-
return match;
|
|
575
|
-
});
|
|
576
|
-
}
|
|
577
|
-
|
|
578
|
-
function countMarkdownFiles(dir) {
|
|
579
|
-
let count = 0;
|
|
580
|
-
if (!fs.existsSync(dir)) return 0;
|
|
581
|
-
|
|
582
|
-
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
583
|
-
const fullPath = path.join(dir, entry.name);
|
|
584
|
-
if (entry.isDirectory()) {
|
|
585
|
-
count += countMarkdownFiles(fullPath);
|
|
586
|
-
} else if (entry.name.endsWith('.md')) {
|
|
587
|
-
count++;
|
|
588
|
-
}
|
|
589
|
-
}
|
|
590
|
-
return count;
|
|
591
|
-
}
|
|
592
|
-
|
|
489
|
+
/**
|
|
490
|
+
* Create a ZIP archive of a directory, optionally excluding entries that match given substrings.
|
|
491
|
+
* @param {string} sourceDir - Path to the source directory to archive.
|
|
492
|
+
* @param {string} outputPath - Path to write the resulting ZIP file.
|
|
493
|
+
* @param {string[]} [exclude=[]] - Array of substrings; any entry whose path includes one of these substrings will be omitted.
|
|
494
|
+
* @returns {Promise<void>} Resolves when the archive has been fully written and closed, rejects on error.
|
|
495
|
+
*/
|
|
593
496
|
function createZipArchive(sourceDir, outputPath, exclude = []) {
|
|
594
497
|
return new Promise((resolve, reject) => {
|
|
595
498
|
const output = fs.createWriteStream(outputPath);
|
|
@@ -623,8 +526,34 @@ function printHeader(title) {
|
|
|
623
526
|
console.log('└' + '─'.repeat(62) + '┘');
|
|
624
527
|
}
|
|
625
528
|
|
|
529
|
+
/**
|
|
530
|
+
* Prints a centered decorative ASCII banner to the console using the provided title.
|
|
531
|
+
* @param {string} title - Text to display centered inside the banner. */
|
|
626
532
|
function printBanner(title) {
|
|
627
533
|
console.log('╔' + '═'.repeat(62) + '╗');
|
|
628
534
|
console.log(`║${title.padStart(31 + title.length / 2).padEnd(62)}║`);
|
|
629
535
|
console.log('╚' + '═'.repeat(62) + '╝');
|
|
630
536
|
}
|
|
537
|
+
|
|
538
|
+
// =============================================================================
|
|
539
|
+
// Link Checking
|
|
540
|
+
/**
|
|
541
|
+
* Verify internal documentation links by running the link-checking script.
|
|
542
|
+
*
|
|
543
|
+
* Executes the Node script tools/check-doc-links.js from the project root and
|
|
544
|
+
* exits the process with code 1 if the check fails.
|
|
545
|
+
*/
|
|
546
|
+
|
|
547
|
+
function checkDocLinks() {
|
|
548
|
+
printHeader('Checking documentation links');
|
|
549
|
+
|
|
550
|
+
try {
|
|
551
|
+
execSync('node tools/validate-doc-links.js', {
|
|
552
|
+
cwd: PROJECT_ROOT,
|
|
553
|
+
stdio: 'inherit',
|
|
554
|
+
});
|
|
555
|
+
} catch {
|
|
556
|
+
console.error('\n \u001B[31m✗\u001B[0m Link check failed - fix broken links before building\n');
|
|
557
|
+
process.exit(1);
|
|
558
|
+
}
|
|
559
|
+
}
|
package/tools/cli/bmad-cli.js
CHANGED
|
@@ -2,6 +2,24 @@ const { program } = require('commander');
|
|
|
2
2
|
const path = require('node:path');
|
|
3
3
|
const fs = require('node:fs');
|
|
4
4
|
|
|
5
|
+
// Fix for stdin issues when running through npm on Windows
|
|
6
|
+
// Ensures keyboard interaction works properly with inquirer prompts
|
|
7
|
+
if (process.stdin.isTTY) {
|
|
8
|
+
try {
|
|
9
|
+
process.stdin.resume();
|
|
10
|
+
process.stdin.setEncoding('utf8');
|
|
11
|
+
|
|
12
|
+
// On Windows, explicitly reference the stdin stream to ensure it's properly initialized
|
|
13
|
+
if (process.platform === 'win32') {
|
|
14
|
+
process.stdin.on('error', () => {
|
|
15
|
+
// Ignore stdin errors - they can occur when the terminal is closing
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
} catch {
|
|
19
|
+
// Silently ignore - some environments may not support these operations
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
5
23
|
// Load package.json from root for version info
|
|
6
24
|
const packageJson = require('../../package.json');
|
|
7
25
|
|