Showing preview only (3,166K chars total). Download the full file or copy to clipboard to get everything.
Repository: bmad-code-org/BMAD-METHOD
Branch: main
Commit: a09220926709
Files: 526
Total size: 2.9 MB
Directory structure:
gitextract_oyh4etmw/
├── .augment/
│ └── code_review_guidelines.yaml
├── .coderabbit.yaml
├── .github/
│ ├── CODE_OF_CONDUCT.md
│ ├── FUNDING.yaml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug-report.yaml
│ │ ├── config.yaml
│ │ ├── documentation.yaml
│ │ ├── feature-request.md
│ │ └── issue.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── scripts/
│ │ └── discord-helpers.sh
│ └── workflows/
│ ├── coderabbit-review.yaml
│ ├── discord.yaml
│ ├── docs.yaml
│ ├── publish.yaml
│ └── quality.yaml
├── .gitignore
├── .husky/
│ └── pre-commit
├── .markdownlint-cli2.yaml
├── .npmignore
├── .npmrc
├── .nvmrc
├── .prettierignore
├── .vscode/
│ └── settings.json
├── AGENTS.md
├── CHANGELOG.md
├── CNAME
├── CONTRIBUTING.md
├── CONTRIBUTORS.md
├── LICENSE
├── README.md
├── README_CN.md
├── SECURITY.md
├── TRADEMARK.md
├── docs/
│ ├── 404.md
│ ├── _STYLE_GUIDE.md
│ ├── explanation/
│ │ ├── advanced-elicitation.md
│ │ ├── adversarial-review.md
│ │ ├── brainstorming.md
│ │ ├── established-projects-faq.md
│ │ ├── party-mode.md
│ │ ├── preventing-agent-conflicts.md
│ │ ├── project-context.md
│ │ ├── quick-dev.md
│ │ └── why-solutioning-matters.md
│ ├── how-to/
│ │ ├── customize-bmad.md
│ │ ├── established-projects.md
│ │ ├── get-answers-about-bmad.md
│ │ ├── install-bmad.md
│ │ ├── non-interactive-installation.md
│ │ ├── project-context.md
│ │ ├── quick-fixes.md
│ │ ├── shard-large-documents.md
│ │ └── upgrade-to-v6.md
│ ├── index.md
│ ├── reference/
│ │ ├── agents.md
│ │ ├── commands.md
│ │ ├── core-tools.md
│ │ ├── modules.md
│ │ ├── testing.md
│ │ └── workflow-map.md
│ ├── roadmap.mdx
│ ├── tutorials/
│ │ └── getting-started.md
│ └── zh-cn/
│ ├── 404.md
│ ├── _STYLE_GUIDE.md
│ ├── explanation/
│ │ ├── advanced-elicitation.md
│ │ ├── adversarial-review.md
│ │ ├── brainstorming.md
│ │ ├── established-projects-faq.md
│ │ ├── party-mode.md
│ │ ├── preventing-agent-conflicts.md
│ │ ├── project-context.md
│ │ ├── quick-dev.md
│ │ └── why-solutioning-matters.md
│ ├── how-to/
│ │ ├── customize-bmad.md
│ │ ├── established-projects.md
│ │ ├── get-answers-about-bmad.md
│ │ ├── install-bmad.md
│ │ ├── non-interactive-installation.md
│ │ ├── project-context.md
│ │ ├── quick-fixes.md
│ │ ├── shard-large-documents.md
│ │ └── upgrade-to-v6.md
│ ├── index.md
│ ├── reference/
│ │ ├── agents.md
│ │ ├── commands.md
│ │ ├── core-tools.md
│ │ ├── modules.md
│ │ ├── testing.md
│ │ └── workflow-map.md
│ ├── roadmap.mdx
│ └── tutorials/
│ └── getting-started.md
├── eslint.config.mjs
├── package.json
├── prettier.config.mjs
├── src/
│ ├── bmm-skills/
│ │ ├── 1-analysis/
│ │ │ ├── bmad-agent-analyst/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-agent-tech-writer/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── explain-concept.md
│ │ │ │ ├── mermaid-gen.md
│ │ │ │ ├── validate-doc.md
│ │ │ │ └── write-document.md
│ │ │ ├── bmad-document-project/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── checklist.md
│ │ │ │ ├── documentation-requirements.csv
│ │ │ │ ├── instructions.md
│ │ │ │ ├── templates/
│ │ │ │ │ ├── deep-dive-template.md
│ │ │ │ │ ├── index-template.md
│ │ │ │ │ ├── project-overview-template.md
│ │ │ │ │ ├── project-scan-report-schema.json
│ │ │ │ │ └── source-tree-template.md
│ │ │ │ ├── workflow.md
│ │ │ │ └── workflows/
│ │ │ │ ├── deep-dive-instructions.md
│ │ │ │ ├── deep-dive-workflow.md
│ │ │ │ ├── full-scan-instructions.md
│ │ │ │ └── full-scan-workflow.md
│ │ │ ├── bmad-product-brief/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── agents/
│ │ │ │ │ ├── artifact-analyzer.md
│ │ │ │ │ ├── opportunity-reviewer.md
│ │ │ │ │ ├── skeptic-reviewer.md
│ │ │ │ │ └── web-researcher.md
│ │ │ │ ├── bmad-manifest.json
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── prompts/
│ │ │ │ │ ├── contextual-discovery.md
│ │ │ │ │ ├── draft-and-review.md
│ │ │ │ │ ├── finalize.md
│ │ │ │ │ └── guided-elicitation.md
│ │ │ │ └── resources/
│ │ │ │ └── brief-template.md
│ │ │ └── research/
│ │ │ ├── bmad-domain-research/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── domain-steps/
│ │ │ │ │ ├── step-01-init.md
│ │ │ │ │ ├── step-02-domain-analysis.md
│ │ │ │ │ ├── step-03-competitive-landscape.md
│ │ │ │ │ ├── step-04-regulatory-focus.md
│ │ │ │ │ ├── step-05-technical-trends.md
│ │ │ │ │ └── step-06-research-synthesis.md
│ │ │ │ ├── research.template.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-market-research/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── research.template.md
│ │ │ │ ├── steps/
│ │ │ │ │ ├── step-01-init.md
│ │ │ │ │ ├── step-02-customer-behavior.md
│ │ │ │ │ ├── step-03-customer-pain-points.md
│ │ │ │ │ ├── step-04-customer-decisions.md
│ │ │ │ │ ├── step-05-competitive-analysis.md
│ │ │ │ │ └── step-06-research-completion.md
│ │ │ │ └── workflow.md
│ │ │ └── bmad-technical-research/
│ │ │ ├── SKILL.md
│ │ │ ├── bmad-skill-manifest.yaml
│ │ │ ├── research.template.md
│ │ │ ├── technical-steps/
│ │ │ │ ├── step-01-init.md
│ │ │ │ ├── step-02-technical-overview.md
│ │ │ │ ├── step-03-integration-patterns.md
│ │ │ │ ├── step-04-architectural-patterns.md
│ │ │ │ ├── step-05-implementation-research.md
│ │ │ │ └── step-06-research-synthesis.md
│ │ │ └── workflow.md
│ │ ├── 2-plan-workflows/
│ │ │ ├── bmad-agent-pm/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-agent-ux-designer/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-create-prd/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── data/
│ │ │ │ │ ├── domain-complexity.csv
│ │ │ │ │ ├── prd-purpose.md
│ │ │ │ │ └── project-types.csv
│ │ │ │ ├── steps-c/
│ │ │ │ │ ├── step-01-init.md
│ │ │ │ │ ├── step-01b-continue.md
│ │ │ │ │ ├── step-02-discovery.md
│ │ │ │ │ ├── step-02b-vision.md
│ │ │ │ │ ├── step-02c-executive-summary.md
│ │ │ │ │ ├── step-03-success.md
│ │ │ │ │ ├── step-04-journeys.md
│ │ │ │ │ ├── step-05-domain.md
│ │ │ │ │ ├── step-06-innovation.md
│ │ │ │ │ ├── step-07-project-type.md
│ │ │ │ │ ├── step-08-scoping.md
│ │ │ │ │ ├── step-09-functional.md
│ │ │ │ │ ├── step-10-nonfunctional.md
│ │ │ │ │ ├── step-11-polish.md
│ │ │ │ │ └── step-12-complete.md
│ │ │ │ ├── templates/
│ │ │ │ │ └── prd-template.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-create-ux-design/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── steps/
│ │ │ │ │ ├── step-01-init.md
│ │ │ │ │ ├── step-01b-continue.md
│ │ │ │ │ ├── step-02-discovery.md
│ │ │ │ │ ├── step-03-core-experience.md
│ │ │ │ │ ├── step-04-emotional-response.md
│ │ │ │ │ ├── step-05-inspiration.md
│ │ │ │ │ ├── step-06-design-system.md
│ │ │ │ │ ├── step-07-defining-experience.md
│ │ │ │ │ ├── step-08-visual-foundation.md
│ │ │ │ │ ├── step-09-design-directions.md
│ │ │ │ │ ├── step-10-user-journeys.md
│ │ │ │ │ ├── step-11-component-strategy.md
│ │ │ │ │ ├── step-12-ux-patterns.md
│ │ │ │ │ ├── step-13-responsive-accessibility.md
│ │ │ │ │ └── step-14-complete.md
│ │ │ │ ├── ux-design-template.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-edit-prd/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── steps-e/
│ │ │ │ │ ├── step-e-01-discovery.md
│ │ │ │ │ ├── step-e-01b-legacy-conversion.md
│ │ │ │ │ ├── step-e-02-review.md
│ │ │ │ │ ├── step-e-03-edit.md
│ │ │ │ │ └── step-e-04-complete.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-validate-prd/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── data/
│ │ │ │ │ ├── domain-complexity.csv
│ │ │ │ │ ├── prd-purpose.md
│ │ │ │ │ └── project-types.csv
│ │ │ │ ├── steps-v/
│ │ │ │ │ ├── step-v-01-discovery.md
│ │ │ │ │ ├── step-v-02-format-detection.md
│ │ │ │ │ ├── step-v-02b-parity-check.md
│ │ │ │ │ ├── step-v-03-density-validation.md
│ │ │ │ │ ├── step-v-04-brief-coverage-validation.md
│ │ │ │ │ ├── step-v-05-measurability-validation.md
│ │ │ │ │ ├── step-v-06-traceability-validation.md
│ │ │ │ │ ├── step-v-07-implementation-leakage-validation.md
│ │ │ │ │ ├── step-v-08-domain-compliance-validation.md
│ │ │ │ │ ├── step-v-09-project-type-validation.md
│ │ │ │ │ ├── step-v-10-smart-validation.md
│ │ │ │ │ ├── step-v-11-holistic-quality-validation.md
│ │ │ │ │ ├── step-v-12-completeness-validation.md
│ │ │ │ │ └── step-v-13-report-complete.md
│ │ │ │ └── workflow.md
│ │ │ └── create-prd/
│ │ │ ├── data/
│ │ │ │ ├── domain-complexity.csv
│ │ │ │ ├── prd-purpose.md
│ │ │ │ └── project-types.csv
│ │ │ ├── steps-v/
│ │ │ │ ├── step-v-01-discovery.md
│ │ │ │ ├── step-v-02-format-detection.md
│ │ │ │ ├── step-v-02b-parity-check.md
│ │ │ │ ├── step-v-03-density-validation.md
│ │ │ │ ├── step-v-04-brief-coverage-validation.md
│ │ │ │ ├── step-v-05-measurability-validation.md
│ │ │ │ ├── step-v-06-traceability-validation.md
│ │ │ │ ├── step-v-07-implementation-leakage-validation.md
│ │ │ │ ├── step-v-08-domain-compliance-validation.md
│ │ │ │ ├── step-v-09-project-type-validation.md
│ │ │ │ ├── step-v-10-smart-validation.md
│ │ │ │ ├── step-v-11-holistic-quality-validation.md
│ │ │ │ ├── step-v-12-completeness-validation.md
│ │ │ │ └── step-v-13-report-complete.md
│ │ │ └── workflow-validate-prd.md
│ │ ├── 3-solutioning/
│ │ │ ├── bmad-agent-architect/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-check-implementation-readiness/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── steps/
│ │ │ │ │ ├── step-01-document-discovery.md
│ │ │ │ │ ├── step-02-prd-analysis.md
│ │ │ │ │ ├── step-03-epic-coverage-validation.md
│ │ │ │ │ ├── step-04-ux-alignment.md
│ │ │ │ │ ├── step-05-epic-quality-review.md
│ │ │ │ │ └── step-06-final-assessment.md
│ │ │ │ ├── templates/
│ │ │ │ │ └── readiness-report-template.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-create-architecture/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── architecture-decision-template.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── data/
│ │ │ │ │ ├── domain-complexity.csv
│ │ │ │ │ └── project-types.csv
│ │ │ │ ├── steps/
│ │ │ │ │ ├── step-01-init.md
│ │ │ │ │ ├── step-01b-continue.md
│ │ │ │ │ ├── step-02-context.md
│ │ │ │ │ ├── step-03-starter.md
│ │ │ │ │ ├── step-04-decisions.md
│ │ │ │ │ ├── step-05-patterns.md
│ │ │ │ │ ├── step-06-structure.md
│ │ │ │ │ ├── step-07-validation.md
│ │ │ │ │ └── step-08-complete.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-create-epics-and-stories/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── steps/
│ │ │ │ │ ├── step-01-validate-prerequisites.md
│ │ │ │ │ ├── step-02-design-epics.md
│ │ │ │ │ ├── step-03-create-stories.md
│ │ │ │ │ └── step-04-final-validation.md
│ │ │ │ ├── templates/
│ │ │ │ │ └── epics-template.md
│ │ │ │ └── workflow.md
│ │ │ └── bmad-generate-project-context/
│ │ │ ├── SKILL.md
│ │ │ ├── bmad-skill-manifest.yaml
│ │ │ ├── project-context-template.md
│ │ │ ├── steps/
│ │ │ │ ├── step-01-discover.md
│ │ │ │ ├── step-02-generate.md
│ │ │ │ └── step-03-complete.md
│ │ │ └── workflow.md
│ │ ├── 4-implementation/
│ │ │ ├── bmad-agent-dev/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-agent-qa/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-agent-quick-flow-solo-dev/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-agent-sm/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-code-review/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── steps/
│ │ │ │ │ ├── step-01-gather-context.md
│ │ │ │ │ ├── step-02-review.md
│ │ │ │ │ ├── step-03-triage.md
│ │ │ │ │ └── step-04-present.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-correct-course/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── checklist.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-create-story/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── checklist.md
│ │ │ │ ├── discover-inputs.md
│ │ │ │ ├── template.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-dev-story/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── checklist.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-qa-generate-e2e-tests/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── checklist.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-quick-dev/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── step-01-clarify-and-route.md
│ │ │ │ ├── step-02-plan.md
│ │ │ │ ├── step-03-implement.md
│ │ │ │ ├── step-04-review.md
│ │ │ │ ├── step-05-present.md
│ │ │ │ ├── step-oneshot.md
│ │ │ │ ├── tech-spec-template.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-retrospective/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-sprint-planning/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── checklist.md
│ │ │ │ ├── sprint-status-template.yaml
│ │ │ │ └── workflow.md
│ │ │ └── bmad-sprint-status/
│ │ │ ├── SKILL.md
│ │ │ ├── bmad-skill-manifest.yaml
│ │ │ └── workflow.md
│ │ ├── module-help.csv
│ │ └── module.yaml
│ └── core-skills/
│ ├── bmad-advanced-elicitation/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ ├── methods.csv
│ │ └── workflow.md
│ ├── bmad-brainstorming/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ ├── brain-methods.csv
│ │ ├── steps/
│ │ │ ├── step-01-session-setup.md
│ │ │ ├── step-01b-continue.md
│ │ │ ├── step-02a-user-selected.md
│ │ │ ├── step-02b-ai-recommended.md
│ │ │ ├── step-02c-random-selection.md
│ │ │ ├── step-02d-progressive-flow.md
│ │ │ ├── step-03-technique-execution.md
│ │ │ └── step-04-idea-organization.md
│ │ ├── template.md
│ │ └── workflow.md
│ ├── bmad-distillator/
│ │ ├── SKILL.md
│ │ ├── agents/
│ │ │ ├── distillate-compressor.md
│ │ │ └── round-trip-reconstructor.md
│ │ ├── bmad-skill-manifest.yaml
│ │ ├── resources/
│ │ │ ├── compression-rules.md
│ │ │ ├── distillate-format-reference.md
│ │ │ └── splitting-strategy.md
│ │ └── scripts/
│ │ ├── analyze_sources.py
│ │ └── tests/
│ │ └── test_analyze_sources.py
│ ├── bmad-editorial-review-prose/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── bmad-editorial-review-structure/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── bmad-help/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── bmad-index-docs/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── bmad-init/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ ├── resources/
│ │ │ └── core-module.yaml
│ │ └── scripts/
│ │ ├── bmad_init.py
│ │ └── tests/
│ │ └── test_bmad_init.py
│ ├── bmad-party-mode/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ ├── steps/
│ │ │ ├── step-01-agent-loading.md
│ │ │ ├── step-02-discussion-orchestration.md
│ │ │ └── step-03-graceful-exit.md
│ │ └── workflow.md
│ ├── bmad-review-adversarial-general/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── bmad-review-edge-case-hunter/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── bmad-shard-doc/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── module-help.csv
│ └── module.yaml
├── test/
│ ├── README.md
│ ├── adversarial-review-tests/
│ │ ├── README.md
│ │ ├── sample-content.md
│ │ └── test-cases.yaml
│ ├── fixtures/
│ │ └── file-refs-csv/
│ │ ├── invalid/
│ │ │ ├── all-empty-workflow.csv
│ │ │ ├── empty-data.csv
│ │ │ ├── no-workflow-column.csv
│ │ │ └── unresolvable-vars.csv
│ │ └── valid/
│ │ ├── bmm-style.csv
│ │ ├── core-style.csv
│ │ └── minimal.csv
│ ├── test-file-refs-csv.js
│ ├── test-install-to-bmad.js
│ ├── test-installation-components.js
│ ├── test-rehype-plugins.mjs
│ └── test-workflow-path-regex.js
├── tools/
│ ├── bmad-npx-wrapper.js
│ ├── build-docs.mjs
│ ├── cli/
│ │ ├── README.md
│ │ ├── bmad-cli.js
│ │ ├── commands/
│ │ │ ├── install.js
│ │ │ ├── status.js
│ │ │ └── uninstall.js
│ │ ├── external-official-modules.yaml
│ │ ├── installers/
│ │ │ ├── install-messages.yaml
│ │ │ └── lib/
│ │ │ ├── core/
│ │ │ │ ├── config-collector.js
│ │ │ │ ├── custom-module-cache.js
│ │ │ │ ├── dependency-resolver.js
│ │ │ │ ├── detector.js
│ │ │ │ ├── ide-config-manager.js
│ │ │ │ ├── installer.js
│ │ │ │ ├── manifest-generator.js
│ │ │ │ └── manifest.js
│ │ │ ├── custom/
│ │ │ │ └── handler.js
│ │ │ ├── ide/
│ │ │ │ ├── _base-ide.js
│ │ │ │ ├── _config-driven.js
│ │ │ │ ├── manager.js
│ │ │ │ ├── platform-codes.js
│ │ │ │ ├── platform-codes.yaml
│ │ │ │ ├── shared/
│ │ │ │ │ ├── agent-command-generator.js
│ │ │ │ │ ├── bmad-artifacts.js
│ │ │ │ │ ├── module-injections.js
│ │ │ │ │ ├── path-utils.js
│ │ │ │ │ ├── skill-manifest.js
│ │ │ │ │ ├── task-tool-command-generator.js
│ │ │ │ │ └── workflow-command-generator.js
│ │ │ │ └── templates/
│ │ │ │ ├── agent-command-template.md
│ │ │ │ ├── combined/
│ │ │ │ │ ├── antigravity.md
│ │ │ │ │ ├── default-agent.md
│ │ │ │ │ ├── default-task.md
│ │ │ │ │ ├── default-tool.md
│ │ │ │ │ ├── default-workflow.md
│ │ │ │ │ ├── gemini-agent.toml
│ │ │ │ │ ├── gemini-task.toml
│ │ │ │ │ ├── gemini-tool.toml
│ │ │ │ │ ├── gemini-workflow-yaml.toml
│ │ │ │ │ ├── gemini-workflow.toml
│ │ │ │ │ ├── kiro-agent.md
│ │ │ │ │ ├── kiro-task.md
│ │ │ │ │ ├── kiro-tool.md
│ │ │ │ │ ├── kiro-workflow.md
│ │ │ │ │ ├── opencode-agent.md
│ │ │ │ │ ├── opencode-task.md
│ │ │ │ │ ├── opencode-tool.md
│ │ │ │ │ ├── opencode-workflow-yaml.md
│ │ │ │ │ ├── opencode-workflow.md
│ │ │ │ │ ├── rovodev.md
│ │ │ │ │ ├── trae.md
│ │ │ │ │ └── windsurf-workflow.md
│ │ │ │ └── split/
│ │ │ │ └── .gitkeep
│ │ │ ├── message-loader.js
│ │ │ └── modules/
│ │ │ ├── external-manager.js
│ │ │ └── manager.js
│ │ └── lib/
│ │ ├── activation-builder.js
│ │ ├── agent/
│ │ │ ├── compiler.js
│ │ │ ├── installer.js
│ │ │ └── template-engine.js
│ │ ├── agent-analyzer.js
│ │ ├── agent-party-generator.js
│ │ ├── cli-utils.js
│ │ ├── config.js
│ │ ├── file-ops.js
│ │ ├── platform-codes.js
│ │ ├── project-root.js
│ │ ├── prompts.js
│ │ ├── ui.js
│ │ ├── xml-handler.js
│ │ ├── xml-to-markdown.js
│ │ ├── yaml-format.js
│ │ └── yaml-xml-builder.js
│ ├── docs/
│ │ ├── _prompt-external-modules-page.md
│ │ ├── fix-refs.md
│ │ └── native-skills-migration-checklist.md
│ ├── fix-doc-links.js
│ ├── format-workflow-md.js
│ ├── lib/
│ │ └── xml-utils.js
│ ├── migrate-custom-module-paths.js
│ ├── platform-codes.yaml
│ ├── skill-validator.md
│ ├── validate-doc-links.js
│ ├── validate-file-refs.js
│ ├── validate-skills.js
│ └── validate-svg-changes.sh
└── website/
├── README.md
├── astro.config.mjs
├── public/
│ └── workflow-map-diagram.html
└── src/
├── components/
│ ├── Banner.astro
│ ├── Header.astro
│ └── MobileMenuFooter.astro
├── content/
│ ├── config.ts
│ └── i18n/
│ └── zh-CN.json
├── lib/
│ └── site-url.mjs
├── pages/
│ ├── 404.astro
│ └── robots.txt.ts
├── rehype-base-paths.js
├── rehype-markdown-links.js
└── styles/
└── custom.css
================================================
FILE CONTENTS
================================================
================================================
FILE: .augment/code_review_guidelines.yaml
================================================
# Augment Code Review Guidelines for BMAD-METHOD
# https://docs.augmentcode.com/codereview/overview
# Focus: Skill validation and quality
# Canonical rules: tools/skill-validator.md (single source of truth)
file_paths_to_ignore:
# --- Shared baseline: tool configs ---
- ".coderabbit.yaml"
- ".augment/**"
- "eslint.config.mjs"
# --- Shared baseline: build output ---
- "dist/**"
- "build/**"
- "coverage/**"
# --- Shared baseline: vendored/generated ---
- "node_modules/**"
- "**/*.min.js"
- "**/*.generated.*"
- "**/*.bundle.md"
# --- Shared baseline: package metadata ---
- "package-lock.json"
# --- Shared baseline: binary/media ---
- "*.png"
- "*.jpg"
- "*.svg"
# --- Shared baseline: test fixtures ---
- "test/fixtures/**"
- "test/template-test-generator/**"
- "tools/template-test-generator/test-scenarios/**"
# --- Shared baseline: non-project dirs ---
- "_bmad*/**"
- "website/**"
- "z*/**"
- "sample-project/**"
- "test-project-install/**"
# --- Shared baseline: AI assistant dirs ---
- ".claude/**"
- ".codex/**"
- ".agent/**"
- ".agentvibes/**"
- ".kiro/**"
- ".roo/**"
- ".github/chatmodes/**"
# --- Shared baseline: build temp ---
- ".bundler-temp/**"
# --- Shared baseline: generated reports ---
- "**/validation-report-*.md"
- "CHANGELOG.md"
areas:
# ============================================
# SKILL FILES
# ============================================
skill_files:
description: "All skill content — SKILL.md, workflow.md, step files, data files, and templates within skill directories"
globs:
- "src/**/skills/**"
- "src/**/workflows/**"
- "src/**/tasks/**"
rules:
- id: "skill_validation"
description: "Apply the full rule catalog defined in tools/skill-validator.md. That file is the single source of truth for all skill validation rules covering SKILL.md metadata, workflow.md constraints, step file structure, path references, variable resolution, sequential execution, and skill invocation syntax."
severity: "high"
# ============================================
# AGENT DEFINITIONS
# ============================================
agent_definitions:
description: "Agent YAML configuration files"
globs:
- "src/**/*.agent.yaml"
rules:
- id: "agent_metadata_required"
description: "Agent files must have metadata section with id, name, title, icon, and module"
severity: "high"
- id: "agent_persona_required"
description: "Agent files must define persona with role, identity, communication_style, and principles"
severity: "high"
- id: "agent_menu_valid_skills"
description: "Menu triggers must reference valid skill names that exist"
severity: "high"
# ============================================
# DOCUMENTATION
# ============================================
documentation:
description: "Documentation files"
globs:
- "docs/**/*.md"
- "README.md"
- "CONTRIBUTING.md"
rules:
- id: "valid_internal_links"
description: "Internal markdown links must point to existing files"
severity: "medium"
# ============================================
# BUILD TOOLS
# ============================================
build_tools:
description: "Build scripts and tooling"
globs:
- "tools/**"
rules:
- id: "script_error_handling"
description: "Scripts should handle errors gracefully with proper exit codes"
severity: "medium"
================================================
FILE: .coderabbit.yaml
================================================
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
language: "en-US"
early_access: true
reviews:
profile: chill
high_level_summary: false # don't post summary until explicitly invoked
request_changes_workflow: false
review_status: false
commit_status: false
walkthrough: false
poem: false
auto_review:
enabled: true
drafts: false # Don't review drafts automatically
auto_incremental_review: false # always review the whole PR, not just new commits
base_branches:
- main
path_filters:
# --- Shared baseline: tool configs ---
- "!.coderabbit.yaml"
- "!.augment/**"
- "!eslint.config.mjs"
# --- Shared baseline: build output ---
- "!dist/**"
- "!build/**"
- "!coverage/**"
# --- Shared baseline: vendored/generated ---
- "!**/node_modules/**"
- "!**/*.min.js"
- "!**/*.generated.*"
- "!**/*.bundle.md"
# --- Shared baseline: package metadata ---
- "!package-lock.json"
# --- Shared baseline: binary/media ---
- "!*.png"
- "!*.jpg"
- "!*.svg"
# --- Shared baseline: test fixtures ---
- "!test/fixtures/**"
- "!test/template-test-generator/**"
- "!tools/template-test-generator/test-scenarios/**"
# --- Shared baseline: non-project dirs ---
- "!_bmad*/**"
- "!website/**"
- "!z*/**"
- "!sample-project/**"
- "!test-project-install/**"
# --- Shared baseline: AI assistant dirs ---
- "!.claude/**"
- "!.codex/**"
- "!.agent/**"
- "!.agentvibes/**"
- "!.kiro/**"
- "!.roo/**"
- "!.github/chatmodes/**"
# --- Shared baseline: build temp ---
- "!.bundler-temp/**"
# --- Shared baseline: generated reports ---
- "!**/validation-report-*.md"
- "!CHANGELOG.md"
path_instructions:
- path: "src/**"
instructions: |
Source file changed. Check whether documentation under docs/ needs
a corresponding update — new features, changed behavior, renamed
concepts, altered CLI flags, or modified configuration options should
all be reflected in the relevant doc pages. Flag missing or outdated
docs as a review comment.
- path: "src/**/skills/**"
instructions: |
Skill file. Apply the full rule catalog defined in tools/skill-validator.md.
That document is the single source of truth for all skill validation rules
covering SKILL.md metadata, workflow.md constraints, step file structure,
path references, variable resolution, sequential execution, and skill
invocation syntax.
- path: "src/**/workflows/**"
instructions: |
Legacy workflow file (pre-skill conversion). Apply the full rule catalog
defined in tools/skill-validator.md — the same rules apply to workflows
that are being converted to skills.
- path: "src/**/tasks/**"
instructions: |
Task file. Apply the full rule catalog defined in tools/skill-validator.md.
- path: "src/**/*.agent.yaml"
instructions: |
Agent definition file. Check:
- Has metadata section with id, name, title, icon, and module
- Defines persona with role, identity, communication_style, and principles
- Menu triggers reference valid skill names that exist
- path: "docs/**/*.md"
instructions: |
Documentation file. Check internal markdown links point to existing files.
- path: "tools/**"
instructions: |
Build script/tooling. Check error handling and proper exit codes.
chat:
auto_reply: true # Response to mentions in comments, a la @coderabbit review
issue_enrichment:
auto_enrich:
enabled: false # don't auto-comment on issues
================================================
FILE: .github/CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
the official BMAD Discord server (<https://discord.com/invite/gk8jAdXWmj>) - DM a moderator or flag a post.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
<https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
<https://www.contributor-covenant.org/faq>. Translations are available at
<https://www.contributor-covenant.org/translations>.
================================================
FILE: .github/FUNDING.yaml
================================================
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project_name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project_name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: bmad
thanks_dev: # Replace with a single thanks.dev username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
================================================
FILE: .github/ISSUE_TEMPLATE/bug-report.yaml
================================================
name: Bug Report
description: File a bug report to help us improve BMad Method
title: "[BUG] "
labels: bug
assignees: []
body:
- type: markdown
attributes:
value: |
Thanks for filing a bug report! Please fill out the information below to help us reproduce and fix the issue.
- type: textarea
id: description
attributes:
label: Description
description: Clear and concise description of what the bug is
placeholder: e.g., When I run /dev-story, it crashes on step 3
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Step-by-step instructions to reproduce the behavior
placeholder: |
1. Run 'npx bmad-method install'
2. Select option X
3. Run workflow Y
4. See error
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
description: What you expected to happen
placeholder: The workflow should complete successfully
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual behavior
description: What actually happened
placeholder: The workflow crashed with error "..."
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: Add screenshots if applicable (paste images directly)
placeholder: Paste any relevant screenshots here
- type: dropdown
id: module
attributes:
label: Which module is this for?
description: Select the BMad module this issue relates to
options:
- BMad Method (BMM) - Core Framework
- BMad Builder (BMB) - Agent Builder Tool
- Test Architect (TEA) - Test Strategy Module
- Game Dev Studio (BMGD) - Game Development Module
- Creative Intelligence Suite (CIS) - Innovation Module
- Not sure / Other
validations:
required: true
- type: input
id: version
attributes:
label: BMad Version
description: "Check with: npx bmad-method --version or check package.json"
placeholder: e.g., 6.0.0-Beta.4
validations:
required: true
- type: dropdown
id: ide
attributes:
label: Which AI IDE are you using?
options:
- Claude Code
- Cursor
- Windsurf
- Copilot CLI / GitHub Copilot
- Kilo Code
- Other
validations:
required: true
- type: dropdown
id: platform
attributes:
label: Operating System
options:
- macOS
- Windows
- Linux
- Other
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Copy and paste any relevant log output
render: shell
- type: checkboxes
id: terms
attributes:
label: Confirm
options:
- label: I've searched for existing issues
required: true
- label: I'm using the latest version
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/config.yaml
================================================
blank_issues_enabled: false
contact_links:
- name: 📚 Documentation
url: https://docs.bmad-method.org
about: Check the docs first — tutorials, guides, and reference
- name: 💬 Discord Community
url: https://discord.gg/gk8jAdXWmj
about: Join for questions, discussion, and help before opening an issue
================================================
FILE: .github/ISSUE_TEMPLATE/documentation.yaml
================================================
name: Documentation
description: Report issues or suggest improvements to documentation
title: "[DOCS] "
labels: documentation
assignees: []
body:
- type: markdown
attributes:
value: |
Help us improve the BMad Method documentation!
- type: dropdown
id: doc-type
attributes:
label: What type of documentation issue is this?
options:
- Error or inaccuracy
- Missing information
- Unclear or confusing
- Outdated content
- Request for new documentation
- Typo or grammar
validations:
required: true
- type: textarea
id: location
attributes:
label: Documentation location
description: Where is the documentation that needs improvement?
placeholder: e.g., https://docs.bmad-method.org/tutorials/getting-started/ or "In the README"
validations:
required: true
- type: textarea
id: issue
attributes:
label: What's the issue?
description: Describe the documentation issue in detail
placeholder: e.g., Step 3 says to run command X but it should be command Y
validations:
required: true
- type: textarea
id: suggestion
attributes:
label: Suggested improvement
description: How would you like to see this improved?
placeholder: e.g., Change the command to X and add an example
- type: input
id: version
attributes:
label: BMad Version (if applicable)
placeholder: e.g., 6.0.0-Beta.4
================================================
FILE: .github/ISSUE_TEMPLATE/feature-request.md
================================================
---
name: Feature Request
about: Suggest an idea or new feature
title: ''
labels: ''
assignees: ''
---
**Describe your idea**
A clear and concise description of what you'd like to see added or changed.
**Why is this needed?**
Explain the problem this solves or the benefit it brings to the BMad community.
**How should it work?**
Describe your proposed solution. If you have ideas on implementation, share them here.
**PR**
If you'd like to contribute, please indicate you're working on this or link to your PR. Please review [CONTRIBUTING.md](../../CONTRIBUTING.md) — contributions are always welcome!
**Additional context**
Add any other context, screenshots, or links that help explain your idea.
================================================
FILE: .github/ISSUE_TEMPLATE/issue.md
================================================
---
name: Issue
about: Report a problem or something that's not working
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**Steps to reproduce**
1. What were you doing when the bug occurred?
2. What steps can recreate the issue?
**Expected behavior**
A clear and concise description of what you expected to happen.
**Environment (if relevant)**
- Model(s) used:
- Agentic IDE used:
- BMad version:
- Project language:
**Screenshots or links**
If applicable, add screenshots or links to help explain the problem.
**PR**
If you'd like to contribute a fix, please indicate you're working on it or link to your PR. See [CONTRIBUTING.md](../../CONTRIBUTING.md) — contributions are always welcome!
**Additional context**
Add any other context about the problem here. The more information you provide, the easier it is to help.
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
## What
<!-- 1-2 sentences describing WHAT changed -->
## Why
<!-- 1-2 sentences explaining WHY this change is needed -->
<!-- Fixes `#issue_number` (if applicable) -->
## How
<!-- 2-3 bullets listing HOW you implemented it -->
-
## Testing
<!-- 1-2 sentences on how you tested this -->
================================================
FILE: .github/scripts/discord-helpers.sh
================================================
#!/bin/bash
# Discord notification helper functions
# Escape markdown special chars and @mentions for safe Discord display
# Skips content inside <URL> wrappers to preserve URLs intact
esc() {
awk '{
result = ""; in_url = 0; n = length($0)
for (i = 1; i <= n; i++) {
c = substr($0, i, 1)
if (c == "<" && substr($0, i, 8) ~ /^<https?:/) in_url = 1
if (in_url) { result = result c; if (c == ">") in_url = 0 }
else if (c == "@") result = result "@ "
else if (index("[]\\*_()~`", c) > 0) result = result "\\" c
else result = result c
}
print result
}'
}
# Truncate to $1 chars (or 80 if wall-of-text with <3 spaces)
trunc() {
local max=$1
local txt=$(tr '\n\r' ' ' | cut -c1-"$max")
local spaces=$(printf '%s' "$txt" | tr -cd ' ' | wc -c)
[ "$spaces" -lt 3 ] && [ ${#txt} -gt 80 ] && txt=$(printf '%s' "$txt" | cut -c1-80)
printf '%s' "$txt"
}
# Remove incomplete URL at end of truncated text (incomplete URLs are useless)
strip_trailing_url() { sed -E 's~<?https?://[^[:space:]]*$~~'; }
# Wrap URLs in <> to suppress Discord embeds (keeps links clickable)
wrap_urls() { sed -E 's~https?://[^[:space:]<>]+~<&>~g'; }
================================================
FILE: .github/workflows/coderabbit-review.yaml
================================================
name: Trigger CodeRabbit on Ready for Review
on:
pull_request_target:
types: [ready_for_review]
jobs:
trigger-review:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Request CodeRabbit review
uses: actions/github-script@v7
with:
script: |
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: '@coderabbitai review'
});
================================================
FILE: .github/workflows/discord.yaml
================================================
name: Discord Notification
on:
pull_request:
types: [opened, closed]
issues:
types: [opened]
env:
MAX_TITLE: 100
MAX_BODY: 250
jobs:
pull_request:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.repository.default_branch }}
sparse-checkout: .github/scripts
sparse-checkout-cone-mode: false
- name: Notify Discord
env:
WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
ACTION: ${{ github.event.action }}
MERGED: ${{ github.event.pull_request.merged }}
PR_NUM: ${{ github.event.pull_request.number }}
PR_URL: ${{ github.event.pull_request.html_url }}
PR_TITLE: ${{ github.event.pull_request.title }}
PR_USER: ${{ github.event.pull_request.user.login }}
PR_BODY: ${{ github.event.pull_request.body }}
run: |
set -o pipefail
source .github/scripts/discord-helpers.sh
[ -z "$WEBHOOK" ] && exit 0
if [ "$ACTION" = "opened" ]; then ICON="🔀"; LABEL="New PR"
elif [ "$ACTION" = "closed" ] && [ "$MERGED" = "true" ]; then ICON="🎉"; LABEL="Merged"
elif [ "$ACTION" = "closed" ]; then ICON="❌"; LABEL="Closed"; fi
TITLE=$(printf '%s' "$PR_TITLE" | trunc $MAX_TITLE | esc)
[ ${#PR_TITLE} -gt $MAX_TITLE ] && TITLE="${TITLE}..."
BODY=$(printf '%s' "$PR_BODY" | trunc $MAX_BODY)
if [ -n "$PR_BODY" ] && [ ${#PR_BODY} -gt $MAX_BODY ]; then
BODY=$(printf '%s' "$BODY" | strip_trailing_url)
fi
BODY=$(printf '%s' "$BODY" | wrap_urls | esc)
[ -n "$PR_BODY" ] && [ ${#PR_BODY} -gt $MAX_BODY ] && BODY="${BODY}..."
[ -n "$BODY" ] && BODY=" · $BODY"
USER=$(printf '%s' "$PR_USER" | esc)
MSG="$ICON **[$LABEL #$PR_NUM: $TITLE](<$PR_URL>)**"$'\n'"by @$USER$BODY"
jq -n --arg content "$MSG" '{content: $content}' | curl -sf --retry 2 -X POST "$WEBHOOK" -H "Content-Type: application/json" -d @-
issues:
if: github.event_name == 'issues'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.repository.default_branch }}
sparse-checkout: .github/scripts
sparse-checkout-cone-mode: false
- name: Notify Discord
env:
WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
ISSUE_NUM: ${{ github.event.issue.number }}
ISSUE_URL: ${{ github.event.issue.html_url }}
ISSUE_TITLE: ${{ github.event.issue.title }}
ISSUE_USER: ${{ github.event.issue.user.login }}
ISSUE_BODY: ${{ github.event.issue.body }}
run: |
set -o pipefail
source .github/scripts/discord-helpers.sh
[ -z "$WEBHOOK" ] && exit 0
TITLE=$(printf '%s' "$ISSUE_TITLE" | trunc $MAX_TITLE | esc)
[ ${#ISSUE_TITLE} -gt $MAX_TITLE ] && TITLE="${TITLE}..."
BODY=$(printf '%s' "$ISSUE_BODY" | trunc $MAX_BODY)
if [ -n "$ISSUE_BODY" ] && [ ${#ISSUE_BODY} -gt $MAX_BODY ]; then
BODY=$(printf '%s' "$BODY" | strip_trailing_url)
fi
BODY=$(printf '%s' "$BODY" | wrap_urls | esc)
[ -n "$ISSUE_BODY" ] && [ ${#ISSUE_BODY} -gt $MAX_BODY ] && BODY="${BODY}..."
[ -n "$BODY" ] && BODY=" · $BODY"
USER=$(printf '%s' "$ISSUE_USER" | esc)
MSG="🐛 **[Issue #$ISSUE_NUM: $TITLE](<$ISSUE_URL>)**"$'\n'"by @$USER$BODY"
jq -n --arg content "$MSG" '{content: $content}' | curl -sf --retry 2 -X POST "$WEBHOOK" -H "Content-Type: application/json" -d @-
================================================
FILE: .github/workflows/docs.yaml
================================================
name: Deploy Documentation
on:
push:
branches:
- main
paths:
- "docs/**"
- "website/**"
- "tools/build-docs.mjs"
- ".github/workflows/docs.yaml"
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
# No big win in setting this to true — risk of cancelling a deploy mid-flight.
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
# Full history needed for Starlight's lastUpdated timestamps (git log)
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Build documentation
env:
# Override site URL from GitHub repo variable if set
# Otherwise, astro.config.mjs will compute from GITHUB_REPOSITORY
SITE_URL: ${{ vars.SITE_URL }}
run: npm run docs:build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: build/site
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
================================================
FILE: .github/workflows/publish.yaml
================================================
name: Publish
on:
push:
branches: [main]
paths:
- "src/**"
- "tools/cli/**"
- "package.json"
workflow_dispatch:
inputs:
channel:
description: "Publish channel"
required: true
default: "latest"
type: choice
options:
- latest
- next
bump:
description: "Version bump type (latest channel only)"
required: false
default: "patch"
type: choice
options:
- patch
- minor
- major
concurrency:
group: publish
cancel-in-progress: ${{ github.event_name == 'push' }}
permissions:
id-token: write
contents: write
jobs:
publish:
if: github.repository == 'bmad-code-org/BMAD-METHOD' && (github.event_name != 'workflow_dispatch' || github.ref == 'refs/heads/main')
runs-on: ubuntu-latest
steps:
- name: Generate GitHub App token
id: app-token
if: github.event_name == 'workflow_dispatch' && inputs.channel == 'latest'
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.RELEASE_APP_ID }}
private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Ensure trusted publishing toolchain
run: |
# npm trusted publishing requires Node >= 22.14.0 and npm >= 11.5.1.
npm install --global npm@11.6.2
- name: Configure git user
if: github.event_name == 'workflow_dispatch' && inputs.channel == 'latest'
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
- name: Derive next prerelease version
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && inputs.channel == 'next')
run: |
NEXT_VER=$(npm view bmad-method@next version 2>/dev/null || echo "")
LATEST_VER=$(npm view bmad-method@latest version 2>/dev/null || echo "")
# Determine the best base version for the next prerelease.
BASE=$(node -e "
const semver = require('semver');
const next = process.argv[1] || null;
const latest = process.argv[2] || null;
if (!next && !latest) process.exit(0);
if (!next) { console.log(latest); process.exit(0); }
if (!latest) { console.log(next); process.exit(0); }
const nextBase = next.replace(/-next\.\d+$/, '');
console.log(semver.gt(latest, nextBase) ? latest : next);
" "$NEXT_VER" "$LATEST_VER")
if [ -n "$BASE" ]; then
npm version "$BASE" --no-git-tag-version --allow-same-version
fi
npm version prerelease --preid=next --no-git-tag-version
- name: Bump stable version
if: github.event_name == 'workflow_dispatch' && inputs.channel == 'latest'
run: 'npm version ${{ inputs.bump }} -m "chore(release): v%s [skip ci]"'
- name: Publish prerelease to npm
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && inputs.channel == 'next')
run: npm publish --tag next --provenance
- name: Publish stable release to npm
if: github.event_name == 'workflow_dispatch' && inputs.channel == 'latest'
run: npm publish --tag latest --provenance
- name: Push version commit and tag
if: github.event_name == 'workflow_dispatch' && inputs.channel == 'latest'
run: git push origin main --follow-tags
- name: Create GitHub Release
if: github.event_name == 'workflow_dispatch' && inputs.channel == 'latest'
run: |
TAG="v$(node -p 'require("./package.json").version')"
gh release create "$TAG" --generate-notes
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Notify Discord
if: github.event_name == 'workflow_dispatch' && inputs.channel == 'latest'
continue-on-error: true
run: |
set -o pipefail
source .github/scripts/discord-helpers.sh
[ -z "$WEBHOOK" ] && exit 0
VERSION=$(node -p 'require("./package.json").version')
RELEASE_URL="${{ github.server_url }}/${{ github.repository }}/releases/tag/v${VERSION}"
MSG=$(printf '📦 **[bmad-method v%s released](<%s>)**' "$VERSION" "$RELEASE_URL" | esc)
jq -n --arg content "$MSG" '{content: $content}' | curl -sf --retry 2 -X POST "$WEBHOOK" -H "Content-Type: application/json" -d @-
env:
WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
================================================
FILE: .github/workflows/quality.yaml
================================================
name: Quality & Validation
# Runs comprehensive quality checks on all PRs and pushes to main:
# - Prettier (formatting)
# - ESLint (linting)
# - markdownlint (markdown quality)
# - Installation component tests (compilation)
# Keep this workflow aligned with `npm run quality` in `package.json`.
"on":
push:
branches: [main]
pull_request:
branches: ["**"]
workflow_dispatch:
jobs:
prettier:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Prettier format check
run: npm run format:check
eslint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: ESLint
run: npm run lint
markdownlint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: markdownlint
run: npm run lint:md
docs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Build documentation
# Note: build-docs.mjs runs link validation internally before building
run: npm run docs:build
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Test agent compilation components
run: npm run test:install
- name: Validate file references
run: npm run validate:refs
- name: Validate skills
run: npm run validate:skills
================================================
FILE: .gitignore
================================================
# Dependencies
**/node_modules/
pnpm-lock.yaml
bun.lock
deno.lock
pnpm-workspace.yaml
package-lock.json
test-output/*
coverage/
# Logs
logs/
*.log
npm-debug.log*
# Build output
build/*.txt
design-artifacts/
# Environment variables
.env
# Python
__pycache__/
.pytest_cache/
# System files
.DS_Store
Thumbs.db
# Development tools and configs
.prettierrc
# AI assistant files
CLAUDE.md
.ai/*
cursor
.gemini
.mcp.json
CLAUDE.local.md
.serena/
.claude/settings.local.json
.junie/
.agents/
z*/
!docs/zh-cn/
_bmad
_bmad-output
.clinerules
# .augment/ is gitignored except tracked config files — add exceptions explicitly
.augment/*
!.augment/code_review_guidelines.yaml
.codebuddy
.crush
.cursor
.iflow
.opencode
.qwen
.rovodev
.kilocodemodes
.claude
.codex
.github/chatmodes
.github/agents
.agent
.agentvibes
.kiro
.roo
.trae
.windsurf
# Astro / Documentation Build
website/.astro/
website/dist/
build/
================================================
FILE: .husky/pre-commit
================================================
#!/usr/bin/env sh
# Auto-fix changed files and stage them
npx --no-install lint-staged
# Validate everything
npm test
# Validate docs links only when docs change
if command -v rg >/dev/null 2>&1; then
if git diff --cached --name-only | rg -q '^docs/'; then
npm run docs:validate-links
npm run docs:build
fi
else
if git diff --cached --name-only | grep -Eq '^docs/'; then
npm run docs:validate-links
npm run docs:build
fi
fi
================================================
FILE: .markdownlint-cli2.yaml
================================================
# markdownlint-cli2 configuration
# https://github.com/DavidAnson/markdownlint-cli2
ignores:
- "**/node_modules/**"
- test/fixtures/**
- CODE_OF_CONDUCT.md
- _bmad/**
- _bmad*/**
- .agent/**
- .claude/**
- .roo/**
- .codex/**
- .kiro/**
- sample-project/**
- test-project-install/**
- z*/**
# Rule configuration
config:
# Disable all rules by default
default: false
# Heading levels should increment by one (h1 -> h2 -> h3, not h1 -> h3)
MD001: true
# Duplicate sibling headings (same heading text at same level under same parent)
MD024:
siblings_only: true
# Trailing commas in headings (likely typos)
MD026:
punctuation: ","
# Bare URLs - may not render as links in all parsers
# Should use <url> or [text](url) format
MD034: true
# Spaces inside emphasis markers - breaks rendering
# e.g., "* text *" won't render as emphasis
MD037: true
================================================
FILE: .npmignore
================================================
# Development & Testing
test/
.husky/
.github/
.vscode/
.augment/
coverage/
test-output/
# Documentation site (users access docs online)
docs/
website/
# Configuration files (development only)
.coderabbit.yaml
.markdownlint-cli2.yaml
.prettierignore
.nvmrc
eslint.config.mjs
prettier.config.mjs
# Build tools (not needed at runtime)
tools/build-docs.mjs
tools/fix-doc-links.js
tools/validate-doc-links.js
tools/validate-file-refs.js
# Images (branding/marketing only)
banner-bmad-method.png
Wordmark.png
# Repository metadata
CONTRIBUTING.md
CONTRIBUTORS.md
SECURITY.md
TRADEMARK.md
CHANGELOG.md
CNAME
CODE_OF_CONDUCT.md
================================================
FILE: .npmrc
================================================
# Prevent peer dependency warnings during installation
legacy-peer-deps=true
# Improve install performance
prefer-offline=true
================================================
FILE: .nvmrc
================================================
22
================================================
FILE: .prettierignore
================================================
# Test fixtures with intentionally broken/malformed files
test/fixtures/**
# Contributor Covenant (external standard)
CODE_OF_CONDUCT.md
# BMAD runtime folders (user-specific, not in repo)
_bmad/
_bmad*/
# IDE integration folders (user-specific, not in repo)
.junie/
================================================
FILE: .vscode/settings.json
================================================
{
"chat.agent.enabled": true,
"chat.agent.maxRequests": 15,
"github.copilot.chat.agent.runTasks": true,
"chat.mcp.discovery.enabled": {
"claude-desktop": true,
"windsurf": true,
"cursor-global": true,
"cursor-workspace": true
},
"github.copilot.chat.agent.autoFix": true,
"chat.tools.autoApprove": false,
"cSpell.words": [
"Agentic",
"atlasing",
"Biostatistician",
"bmad",
"Cordova",
"customresourcedefinitions",
"dashboarded",
"Decisioning",
"eksctl",
"elicitations",
"Excalidraw",
"filecomplete",
"fintech",
"fluxcd",
"frontmatter",
"gamedev",
"gitops",
"implementability",
"Improv",
"inclusivity",
"ingressgateway",
"istioctl",
"metroidvania",
"NACLs",
"nodegroup",
"platformconfigs",
"Playfocus",
"playtesting",
"pointerdown",
"pointerup",
"Polyrepo",
"replayability",
"roguelike",
"roomodes",
"Runbook",
"runbooks",
"Shardable",
"Softlock",
"solutioning",
"speedrunner",
"substep",
"tekton",
"tilemap",
"tileset",
"tmpl",
"Trae",
"Unsharded",
"VNET"
],
"json.schemas": [
{
"fileMatch": ["package.json"],
"url": "https://json.schemastore.org/package.json"
},
{
"fileMatch": [".vscode/settings.json"],
"url": "vscode://schemas/settings/folder"
}
],
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[yaml]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[markdown]": {
"editor.defaultFormatter": "yzhang.markdown-all-in-one"
},
"yaml.format.enable": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"editor.rulers": [140],
"[xml]": {
"editor.defaultFormatter": "redhat.vscode-xml"
},
"xml.format.maxLineWidth": 140
}
================================================
FILE: AGENTS.md
================================================
# BMAD-METHOD
Open source framework for structured, agent-assisted software delivery.
## Rules
- Use Conventional Commits for every commit.
- Before pushing, run `npm ci && npm run quality` on `HEAD` in the exact checkout you are about to push.
`quality` mirrors the checks in `.github/workflows/quality.yaml`.
- Skill validation rules are in `tools/skill-validator.md`.
- Deterministic skill checks run via `npm run validate:skills` (included in `quality`).
================================================
FILE: CHANGELOG.md
================================================
# Changelog
## v6.2.0 - 2026-03-15
### 🎁 Highlights
* Fix manifest generation so BMad Builder installs correctly when a module has no agents (#1998)
* Prototype preview of bmad-product-brief-preview skill — try `/bmad-product-brief-preview` and share feedback! (#1959)
* All skills now use native skill directory format for improved modularity and maintainability (#1931, #1945, #1946, #1949, #1950, #1984, #1985, #1988, #1994)
### 🎁 Features
* Rewrite code-review skill with sharded step-file architecture and auto-detect review intent from invocation args (#2007, #2013)
* Add inference-based skill validator with comprehensive rules for naming, variables, paths, and invocation syntax (#1981)
* Add REF-03 skill invocation language rule and PATH-05 skill encapsulation rule to validator (#2004)
### 🐛 Bug Fixes
* Validation pass 2 — fix path, variable, and sequence issues across 32 files (#2008)
* Replace broken party-mode workflow refs with skill syntax (#2000)
* Improve bmad-help description for accurate trigger matching (#2012)
* Point zh-cn doc links to Chinese pages instead of English (#2010)
* Validation cleanup for bmad-quick-flow (#1997), 6 skills batch (#1996), bmad-sprint-planning (#1995), bmad-retrospective (#1993), bmad-dev-story (#1992), bmad-create-story (#1991), bmad-code-review (#1990), bmad-create-epics-and-stories (#1989), bmad-create-architecture (#1987), bmad-check-implementation-readiness (#1986), bmad-create-ux-design (#1983), bmad-create-product-brief (#1982)
### 🔧 Maintenance
* Normalize skill invocation syntax to `Invoke the skill` pattern repo-wide (#2004)
### 📚 Documentation
* Add Chinese translation for core-tools reference (#2002)
* Update version hint, TEA module link, and HTTP→HTTPS links in Chinese README (#1922, #1921)
## [6.1.0] - 2026-03-12
### Highlights
* Whiteport Design Studio (WDS) module enabled in the installer
* Support @next installation channel (`npx bmad-method@next install`) — get the latest tip of main instead of waiting for the next stable published version
* Everything now installs as a skill — all workflows, agents, and tasks converted to markdown with SKILL.md entrypoints (not yet optimized skills, but unified format)
* An experimental preview of the new Quick Dev is available, which will become the main Phase 4 development tool
* Edge Case Hunter added as a parallel code review layer in Phase 4, improving code quality by exhaustively tracing branching paths and boundary conditions (#1791)
* Documentation now available in Chinese (zh-CN) with complete translation (#1822, #1795)
### 💥 Breaking Changes
* Convert entire BMAD method to skills-based architecture with unified skill manifests (#1834)
* Convert all core workflows from YAML+instructions to single workflow.md format
* Migrate all remaining platforms to native Agent Skills format (#1841)
* Remove legacy YAML/XML workflow engine plumbing (#1864)
### 🎁 Features
* Add Pi coding agent as supported platform (#1854)
* Add unified skill scanner decoupled from legacy collectors (#1859)
* Add continuous delivery workflows for npm publishing with trusted OIDC publishing (#1872)
### ♻️ Refactoring
* Update terminology from "commands" to "skills" across all documentation (#1850)
### 🐛 Bug Fixes
* Fix code review removing mandatory minimum issue count that caused infinite review loops (#1913)
* Fix silent loss of brainstorming ideas in PRD by adding reconciliation step (#1914)
* Reduce npm tarball from 533 to 348 files (91% size reduction, 6.2 MB → 555 KB) via .npmignore (#1900)
* Fix party-mode skill conversion review findings (#1919)
---
## [6.0.4]
### 🎁 Features
* Add edge case hunter review task - new reusable review task that exhaustively traces branching paths and boundary conditions in code, reporting only unhandled gaps. Method-driven analysis complementary to adversarial review (#1790)
### 🐛 Bug Fixes
* Fix brainstorming to not overwrite previous sessions; now prompts to continue existing brainstorming or start a new one when older brainstorming sessions are found
* Fix installer templates - replace legacy `@` path prefixes with explicit `{project-root}` syntax for consistency (#1769)
* Fix edge case hunter - remove zero-findings halt condition that was pressuring the LLM to hallucinate findings when none legitimately exist (#1797)
* Fix broken docs domain references in README and GitHub issue templates (#1777)
---
## [6.0.3]
### 🎁 Features
* Add bmad-os-root-cause-analysis skill for analyzing bug-fix commits and producing structured root cause analysis reports with pyramid communication format (#1741)
### 🐛 Bug Fixes
* Fix installer to refuse installation when ancestor directory has BMAD commands, preventing duplicate command autocompletion in nested directories (#1735)
* Fix OpenCode integration by replacing unsupported `name` frontmatter with `mode: all` and update directory names to plural form (#1764)
* Fix CSV manifest pipeline double-escaping of quotes that was corrupting output files; switch Gemini templates to single quotes (#1746)
* Fix workflow descriptions to use proper quotes so they format better in skill conversion and don't break yaml front matter
* Fix workflow help task chaining by removing ambiguous "with-argument" clause that caused LLMs to misinterpret help.md as skill calls (#1740)
### ♻️ Refactoring
* Standardize all workflow descriptions to use proper quotes to prevent breaking command or skill front matter during skill conversion
### 📚 Documentation
* Fix broken TEA hyperlinks to point to new repository URL (#1772)
* Rebrand BMAD acronym to "Build More Architect Dreams" across documentation (#1765)
---
## [6.0.2]
### 🎁 Features
* Add CodeBuddy platform support with installer configuration (#1483)
* Add LLM audit prompt for file reference conventions - new audit tool using parallel subagents (#1720)
* Migrate Codex installer from `.codex/prompts` to `.agents/skills` format to align with Codex CLI changes (#1729)
* Convert review-pr and audit-file-refs tools to proper bmad-os skills with slash commands `bmad-os-review-pr` and `bmad-os-audit-file-refs` (#1732)
### 🐛 Bug Fixes
* Fix 24 broken step references in create-architecture workflow after directory rename (#1734)
* Fix step file path references in check-implementation-readiness workflow (#1709, #1716)
* Fix 3 broken file references and enable strict file reference validation in CI (#1717)
* Fix Rovo Dev integration with custom installer that generates prompts.yml manifest (#1701)
* Fix 104 relative step file references to use standardized `{project-root}/_bmad/` paths across 68 files (#1722)
* Fix code fence imbalance in step-03-starter.md that caused rendering issues (#1724)
* Remove Windsurf from recommended/preferred IDEs list (#1727)
* Fix default Codex install location from global to project for better defaults (#1698)
* Add npx cache workaround to Quick Start for stale beta versions (#1685)
* Add language instructions to replace placeholder text in Research overview (#1703)
* Ignore `.junie/` IDE integration folder in git and prettier configs (#1719)
### ♻️ Refactoring
* Update open source tool skills structure for future plugin migration
* Standardize all workflow descriptions for skill generation with concise format and explicit trigger phrases
* Remove `disable-model-invocation` flag from all IDE installer templates to enable workflow skill calls
### 📚 Documentation
* Elevate `bmad-help` as primary on-ramp across all documentation
* Update workflow names with `bmad-bmm-` prefix and standardize table formatting
* Clarify phase routing and catalog path in help task
---
## [6.0.0]
V6 Stable Release! The End of Beta!
### 🎁 Features
* Add PRD workflow steps 2b (vision/differentiators) and 2c (executive summary) for more complete product requirements documentation
* Add new `bmad uninstall` command with interactive and non-interactive modes for selective component removal
* Add dedicated GitHub Copilot installer that generates enriched `.agent.md`, `.prompt.md` files and project configuration
* Add TEA browser automation prerequisite prompts to guide Playwright CLI/MCP setup after configuration
### 🐛 Bug Fixes
* Fix version comparison to use semantic versioning, preventing incorrect downgrade recommendations to older beta versions
* Fix `--custom-content` flag to properly populate sources and selected files in module config
* Fix module configuration UX messaging to show accurate completion status and improve feedback timing
* Fix changelog URL in installer start message for proper GitHub resolution
* Remove incorrect `mode: primary` from OpenCode agent template and restore `name` field across all templates
* Auto-discover PRD files in validate-prd workflow to reduce manual path input
* Fix installer non-interactive mode hanging and improve IDE configuration handling during updates
* Fix workflow-level config.yaml copying for custom content modules
### ♻️ Refactoring
* Remove alias variables from Phase 4 workflows, use canonical `{implementation_artifacts}` and `{planning_artifacts}`
* Add missing `project_context` references to workflows for consistency
### 📚 Documentation
* Add post-install notes documentation for modules
* Improve project-context documentation and fix folder structure
* Add BMad Builder link to index for extenders
---
## [6.0.0-Beta.8]
**Release: February 8, 2026**
### 🌟 Key Highlights
1. **Non-Interactive Installation** — Full CI/CD support with 10 new CLI flags for automated deployments
2. **Complete @clack/prompts Migration** — Unified CLI experience with consolidated installer output
3. **CSV File Reference Validation** — Extended Layer 1 validator to catch broken workflow references in CSV files
4. **Kiro IDE Support** — Standardized config-driven installation, replacing custom installer
### 🎁 Features
* **Non-Interactive Installation** — Added `--directory`, `--modules`, `--tools`, `--custom-content`, `--user-name`, `--communication-language`, `--document-output-language`, `--output-folder`, and `-y/--yes` flags for CI/CD automation (#1520)
* **CSV File Reference Validation** — Extended validator to scan `.csv` files for broken workflow references, checking 501 references across 212 files (#1573)
* **Kiro IDE Support** — Replaced broken custom installer with config-driven templates using `#[[file:...]]` syntax and `inclusion: manual` frontmatter (#1589)
* **OpenCode Template Consolidation** — Combined split templates with `mode: primary` frontmatter for Tab-switching support, fixing agent discovery (#1556)
* **Modules Reference Page** — Added official external modules reference documentation (#1540)
### 🐛 Bug Fixes
* **Installer Streamlining** — Removed "None - Skip module installation" option, eliminated ~100 lines of dead code, and added ESM/.cjs support for module installers (#1590)
* **CodeRabbit Workflow** — Changed `pull_request` to `pull_request_target` to fix 403 errors and enable reviews on fork PRs (#1583)
* **Party Mode Return Protocol** — Added RETURN PROTOCOL to prevent lost-in-the-middle failures after Party Mode completes (#1569)
* **Spacebar Toggle** — Fixed SPACE key not working in autocomplete multiselect prompts for tool/IDE selection (#1557)
* **OpenCode Agent Routing** — Fixed agents installing to wrong directory by adding `targets` array for routing `.opencode/agent/` vs `.opencode/command/` (#1549)
* **Technical Research Workflow** — Fixed step-05 routing to step-06 and corrected `stepsCompleted` values (#1547)
* **Forbidden Variable Removal** — Removed `workflow_path` variable from 16 workflow step files (#1546)
* **Kilo Installer** — Fixed YAML formatting issues by trimming activation header and converting to yaml.parse/stringify (#1537)
* **bmad-help** — Now reads project-specific docs and respects `communication_language` setting (#1535)
* **Cache Errors** — Removed `--prefer-offline` npm flag to prevent stale cache errors during installation (#1531)
### ♻️ Refactoring
* **Complete @clack/prompts Migration** — Migrated 24 files from legacy libraries (ora, chalk, boxen, figlet, etc.), replaced ~100 console.log+chalk calls, consolidated installer output to single spinner, and removed 5 dependencies (#1586)
* **Downloads Page Removal** — Removed downloads page, bundle generation, and archiver dependency in favor of GitHub's native archives (#1577)
* **Workflow Verb Standardization** — Replaced "invoke/run" with "load and follow/load" in review workflow prompts (#1570)
* **Documentation Language** — Renamed "brownfield" to "established projects" and flattened directory structure for accessibility (#1539)
### 📚 Documentation
* **Comprehensive Site Review** — Fixed broken directory tree diagram, corrected grammar/capitalization, added SEO descriptions, and reordered how-to guides (#1578)
* **SEO Metadata** — Added description front matter to 9 documentation pages for search engine optimization (#1566)
* **PR Template** — Added pull request template for consistent PR descriptions (#1554)
* **Manual Release Cleanup** — Removed broken manual-release workflow and related scripts (#1576)
### 🔧 Maintenance
* **Dual-Mode AI Code Review** — Configured Augment Code (audit mode) and CodeRabbit (adversarial mode) for improved code quality (#1511)
* **Package-Lock Sync** — Cleaned up 471 lines of orphaned dependencies after archiver removal (#1580)
---
## [6.0.0-Beta.7]
**Release: February 4, 2026**
### 🌟 Key Highlights
1. **Direct Workflow Invocation** — Agent workflows can now be run directly via slash commands instead of only through agent orchestration
2. **Installer Workflow Support** — Installer now picks up `workflow-*.md` files, enabling multiple workflow files per directory
### 🎁 Features
* **Slash Command Workflow Access** — Research and PRD workflows now accessible via direct slash commands: `/domain-research`, `/market-research`, `/technical-research`, `/create-prd`, `/edit-prd`, `/validate-prd` (bd620e38, 731bee26)
* **Version Checking** — CLI now checks npm for newer versions and displays a warning banner when updates are available (d37ee7f2)
### ♻️ Refactoring
* **Workflow File Splitting** — Split monolithic `workflow.md` files into specific `workflow-*.md` files for individual workflow invocation (bd620e38)
* **Installer Multi-Workflow Support** — Installer manifest generator now supports `workflow-*.md` pattern, allowing multiple workflow files per directory (731bee26)
* **Internal Skill Renaming** — Renamed internal project skills to use `bmad-os-` prefix for consistent naming (5276d58b)
---
## [6.0.0-Beta.6]
**Release: February 4, 2026**
### 🌟 Key Highlights
1. **Cross-File Reference Validator**: Comprehensive tool to detect broken file references, preventing 59 known bugs (~25% of historical issues)
2. **New AutocompleteMultiselect Prompt**: Searchable multi-select with improved tool/IDE selection UX
3. **Critical Installer Fixes**: Windows CRLF parsing, Gemini CLI TOML support, file extension preservation
4. **Codebase Cleanup**: Removed dead Excalidraw/flattener artifacts (-3,798 lines)
### 🎁 Features
* **Cross-File Reference Validator** — Validates ~483 references across ~217 source files, detecting absolute path leaks and broken references (PR #1494)
* **AutocompleteMultiselect Prompt** — Upgraded `@clack/prompts` to v1.0.0 with custom searchable multiselect, Tab-to-fill-placeholder behavior, and improved tool/IDE selection UX (PR #1514)
* **OT Domains** — Added `process_control` and `building_automation` domains with high complexity ratings (PR #1510)
* **Documentation Reference Pages** — Added `docs/reference/agents.md`, `commands.md`, and `testing.md` (PR #1525)
### 🐛 Bug Fixes
* **Critical Installer Fixes** — Fixed CRLF line ending parsing on Windows, Gemini CLI TOML support, file extension preservation, Codex task generation, Windows path handling, and CSV parsing (PR #1492)
* **Double Tool Questioning** — Removed redundant tool questioning during installation (df176d42)
* **QA Agent Rename** — Renamed Quinn agent to `qa` for naming consistency (PR #1508)
* **Documentation Organization** — Fixed documentation ordering and links, hide BMGD pages from main LLM docs (PR #1525)
### ♻️ Refactoring
* **Excalidraw/Flattener Removal** — Removed dead artifacts no longer supported beyond beta: Excalidraw workflows, flattener tool, and 12+ diagram creation workflows (-3,798 lines) (f699a368)
* **Centralized Constants** — Centralized `BMAD_FOLDER_NAME` to reduce hardcoded strings (PR #1492)
* **Cross-Platform Paths** — Fixed path separator inconsistencies in agent IDs (PR #1492)
### 📚 Documentation
* **BMGD Diataxis Refactor** — Refactored BMGD documentation using Diataxis principles for better organization (PR #1502)
* **Generate Project Context** — Restored `generate-project-context` workflow for brownfield project analysis (PR #1491)
### 🔧 Maintenance
* **Dependency Updates** — Upgraded `@clack/prompts` from v0.11.0 to v1.0.0 and added `@clack/core` (PR #1514)
* **CI Integration** — Added `validate:refs` to CI quality workflow with warning annotations (PR #1494)
---
## [6.0.0-Beta.5]
### 🎁 Features
* **Add generate-project-context workflow** — New 3-step workflow for project context generation, integrated with quick-flow-solo-dev agent
* **Shard market research customer analysis** — Refactor monolithic customer insights into 4-step detailed customer behavior analysis workflow
### 🐛 Bug Fixes
* **Fix npm install peer dependency issues** — Add `.npmrc` with `legacy-peer-deps=true`, update Starlight to 0.37.5, and add `--legacy-peer-deps` flag to module installer (PR #1476)
* **Fix leaked source paths in PRD validation report** — Replace absolute `/src/core/` paths with `{project-root}/_bmad/core/` (#1481)
* **Fix orphaned market research customer analysis** — Connect step-01-init to step-02-customer-behavior to complete workflow sharding (#1486)
* **Fix duplicate 2-letter brainstorming code** — Change BS to BSP to resolve conflict with cis Brainstorming module
* **Fix tech writer sidecar functionality** — Enable proper sidecar operation (#1487)
* **Fix relative paths in workflow steps** — Correct paths in step-11-polish (#1497) and step-e-04-complete (#1498)
* **Fix party-mode workflow file extension** — Correct extension in workflow.xml (#1499)
* **Fix generated slash commands** — Add `disable-model-invocation` to all generated commands (#1501)
* **Fix agent scan and help CSV files** — Correct module-help.csv entries
* **Fix HELP_STEP placeholder replacement** — Fix placeholder not replaced in compiled agents, fix hardcoded path, fix single quote (#1437)
### 📚 Documentation
* **Add exact slash commands to Getting Started guide** — Provide precise command examples for users (#1505)
* **Remove .claude/commands from version control** — Commands are generated, not tracked (#1506)
### 🔧 Maintenance
* **Update Starlight to 0.37.5** — Latest version with peer dependency compatibility
* **Add GitHub issue templates** — New bug-report.yaml and documentation.yaml templates
---
## [6.0.0-Beta.4]
### 🐛 Bug Fixes
- **Activation steps formatting fix**: Fixed missing opening quote that caused infrequent menu rendering issues
- **Custom module installation fix**: Added missing yaml require in manifest.js to fix custom module installation
---
## [6.0.0-Beta.3]
### 🌟 Key Highlights
1. **SDET Module Replaces TEA**: TEA module removed from core, SDET module added with "automate" workflow for test automation
2. **Gemini CLI TOML Support**: IDE integration now supports the TOML config format used by Gemini CLI
3. **File System Sprint Status**: Default project_key support for file-system based sprint status tracking
### 🔧 Features & Improvements
**Module Changes:**
- **TEA Module Moved to External** (#1430, #1443): The TEA module is now external. SDET module added with a single "automate" workflow focused on test automation
- **SDET Module**: New module with streamlined test automation capabilities
**IDE Integration:**
- **Gemini CLI TOML Format** (#1431): Previous update accidentally switched Gemini to md instead of toml.
**Sprint Status:**
- **Default project_key** (#1446): File-system based sprint status now uses a default project_key so certain LLMs do not complain
### 🐛 Bug Fixes
- **Quick-flow workflow path fix** (#1368): Fixed incorrect workflow_path in bmad-quick-flow/quick-spec steps (step-01, step-02, step-03) - changed from non-existent 'create-tech-spec' to correct 'quick-spec'
- **PRD edit flow paths**: Fixed path references in PRD editing workflow
- **Agent file handling**: Changes to prevent double agent files and use .agent.md file extensions
- **README link fix**: Corrected broken documentation links
## [6.0.0-Beta.2]
- Fix installer so commands match what is installed, centralize most ide into a central file instead of separate files for each ide.
- Specific IDEs may still need udpates, but all is config driven now and should be easier to maintain
- Kiro still needs updates, but its been in this state since contributed, will investigate soon
- Any version older than Beta.0 will recommend removal and reinstall to project. From later alphas though its sufficient to quick update if still desired, but best is just start fresh with Beta.
## [6.0.0-Beta.1]
**Release: January 2026 - Alpha to Beta Transition**
### 🎉 Beta Release
- **Transition from Alpha to Beta**: BMad Method is now in Beta! This marks a significant milestone in the framework's development
- **NPM Default Tag**: Beta versions are now published with the `latest` tag, making `npx bmad-method` serve the beta version by default
### 🌟 Key Highlights
1. **bmad-help**: Revolutionary AI-powered guidance system replaces the alpha workflow-init and workflow tracking — introduces full AI intelligence to guide users through workflows, commands, and project context
2. **Module Ecosystem Expansion**: bmad-builder, CIS (Creative Intelligence Suite), and Game Dev Studio moved to separate repositories for focused development
3. **Installer Consolidation**: Unified installer architecture with standardized command naming (`bmad-dash-case.md` or `bmad-*-agent-*.md`)
4. **Windows Compatibility**: Complete migration from Inquirer.js to @clack/prompts for reliable cross-platform support
### 🚀 Major Features
**bmad-help - Intelligent Guidance System:**
- **Replaces**: workflow-init and legacy workflow tracking
- **AI-Powered**: Full context awareness of installed modules, workflows, agents, and commands
- **Dynamic Discovery**: Automatically catalogs all available workflows from installed modules
- **Intelligent Routing**: Guides users to the right workflow or agent based on their goal
- **IDE Integration**: Generates proper IDE command files for all discovered workflows
**Module Restructuring:**
| Module | Status | New Location |
| ------------------------------------- | ------------------------------------------------- | ------------------------------------------------------- |
| **bmad-builder** | Near beta, with docs and walkthroughs coming soon | `bmad-code-org/bmad-builder` |
| **CIS** (Creative Intelligence Suite) | Published as npm package | `bmad-code-org/bmad-module-creative-intelligence-suite` |
| **Game Dev Studio** | Published as npm package | `bmad-code-org/bmad-module-game-dev-studio` |
### 🔧 Installer & CLI Improvements
**UnifiedInstaller Architecture:**
- All IDE installers now use a common `UnifiedInstaller` class
- Standardized command naming conventions:
- Workflows: `bmad-module-workflow-name.md`
- Agents: `bmad-module-agent-name.md`
- Tasks: `bmad-task-name.md`
- Tools: `bmad-tool-name.md`
- External module installation from npm with progress indicators
- Module removal on unselect with confirmation
**Windows Compatibility Fix:**
- Replaced Inquirer.js with @clack/prompts to fix arrow key navigation issues on Windows
- All 91 installer workflows migrated to new prompt system
### 📚 Documentation Updates
**Significant docsite improvements:**
- Interactive workflow guide page (`/workflow-guide`) with track selector
- TEA documentation restructured using Diátaxis framework (25 docs)
- Style guide optimized for LLM readers (367 lines, down from 767)
- Glossary rewritten using table format (123 lines, down from 373)
- README overhaul with numbered command flows and prominent `bmad-help` callout
- New workflow map diagram with interactive HTML
- New editorial review tasks for document quality
- E2E testing methodology for Game Dev Studio
More documentation updates coming soon.
### 🐛 Bug Fixes
- Fixed TodoMVC URL references to include `/dist/` path
- Fixed glob pattern normalization for Windows compatibility
- Fixed YAML indentation in kilo.js customInstructions field
- Fixed stale path references in check-implementation-readiness workflow
- Fixed sprint-status.yaml sync in correct-course workflow
- Fixed web bundler entry point reference
- Fixed mergeModuleHelpCatalogs ordering after generateManifests
### 📊 Statistics
- **91 commits** since alpha.23
- **969 files changed** (+23,716 / -91,509 lines)
- **Net reduction of ~67,793 lines** through cleanup and consolidation
- **3 major modules** moved to separate repositories
- **Complete installer refactor** for standardization
---
## [6.0.0-alpha.23]
**Release: January 11, 2026**
### 🌟 Key Highlights
1. **Astro/Starlight Documentation Platform**: Complete migration from Docusaurus to modern Astro+Starlight for superior performance and customization
2. **Diataxis Framework Implementation**: Professional documentation restructuring with tutorials, how-to guides, explanations, and references
3. **Workflow Creator & Validator**: Powerful new tools for workflow creation with subprocess support and PRD validation
4. **TEA Documentation Expansion**: Comprehensive testing documentation with cheat sheets, MCP enhancements, and API testing patterns
5. **Brainstorming Revolution**: Research-backed procedural rigor with 100+ idea goal and anti-bias protocols
6. **Cursor IDE Modernization**: Refactored from rules-based to command-based architecture for better IDE integration
### 📚 Documentation Platform Revolution
**Astro/Starlight Migration:**
- **From Docusaurus to Astro**: Complete platform migration for improved performance, better customization, and modern tooling
- **Starlight Theme**: Professional documentation theme with dark mode default and responsive design
- **Build Pipeline Overhaul**: New build-docs.js orchestrates link checking, artifact generation, and Astro build
- **LLM-Friendly Documentation**: Generated llms.txt and llms-full.txt for AI agent discoverability
- **Downloadable Source Bundles**: bmad-sources.zip and bmad-prompts.zip for offline use
**Diataxis Framework Implementation:**
- **Four Content Types**: Professional separation into tutorials, how-to guides, explanations, and references
- **21 Files Migrated**: Phase 1 migration of core documentation to Diataxis structure
- **42+ Focused Documents**: Phase 2 split of large legacy files into manageable pieces
- **FAQ Restructuring**: 7 topic-specific FAQ files with standardized format
- **Tutorial Style Guide**: Comprehensive documentation standards for consistent content creation
**Link Management & Quality:**
- **Site-Relative Links**: Converted 217 links to repo-relative format (/docs/path/file.md)
- **Link Validation Tools**: New validate-doc-links.js and fix-doc-links.js for maintaining link integrity
- **Broken Link Fixes**: Resolved ~50 broken internal links across documentation
- **BMad Acronym Standardization**: Consistent use of "BMad" (Breakthrough Method of Agile AI Driven Development)
- **SEO Optimization**: Absolute URLs in AI meta tags for better web crawler discoverability
### 🔧 Workflow Creator & Validator (Major Feature)
**Workflow Creation Tool:**
- **Subprocess Support**: Advanced workflows can now spawn subprocesses for complex operations
- **PRD Validation Step**: New validation step ensures PRD quality before workflow execution
- **Trimodal Workflow Creation**: Three-mode workflow generation system
- **Quadrivariate Module Workflow**: Four-variable workflow architecture for enhanced flexibility
- **Path Violation Checks**: Validator ensures workflows don't violate path constraints
- **Max Parallel Mode POC**: Proof-of-concept for parallel workflow validation
**Workflow Quality Improvements:**
- **PRD Trimodal Compliance**: PRD workflow now follows trimodal standards
- **Standardized Step Formatting**: Consistent markdown formatting across workflow and PRD steps
- **Better Suggested Next Steps**: Improved workflow completion guidance
- **Variable Naming Standardization**: {project_root} → {project-root} across all workflows
### 🧪 TEA Documentation Expansion
**Comprehensive Testing Guides:**
- **Cheat Sheets**: Quick reference guides for common testing scenarios
- **MCP Enhancements**: Model Context Protocol improvements for testing workflows
- **API Testing Patterns**: Best practices for API testing documentation
- **Design Philosophy Callout**: Clear explanation of TEA's design principles
- **Context Engineering Glossary**: New glossary entry defining context engineering concepts
- **Fragment Count Updates**: Accurate documentation of TEA workflow components
- **Playwright Utils Examples**: Updated code examples for playwright-utils integration
### 💡 Brainstorming Workflow Overhaul
**Research-Backed Procedural Rigor:**
- **100+ Idea Goal**: Emphasis on quantity-first approach to unlock better quality ideas
- **Anti-Bias Protocol**: Domain pivot every 10 ideas to reduce cognitive biases
- **Chain-of-Thought Requirements**: Reasoning before idea generation
- **Simulated Temperature**: Prompts for higher divergence in ideation
- **Standardized Idea Format**: Quality control template for consistent output
- **Energy Checkpoints**: Multiple continuation options to maintain creative flow
**Exploration Menu Improvements:**
- **Letter-Based Navigation**: [K/T/A/B/C] options instead of numbers for clarity
- **Keep/Try/Advanced/Break/Continue**: Clear action options for idea refinement
- **Universal Facilitation Rules**: Consistent guidelines across all brainstorming steps
- **Quality Growth Enforcement**: Balance between quantity and quality metrics
### 🖥️ Cursor IDE Modernization
**Command-Based Architecture:**
- **From Rules to Commands**: Complete refactor from rules-based to command-based system
- **Command Generation**: Automatic generation of task and tool commands
- **Commands Directory**: New `.cursor/commands/bmad/` structure for generated commands
- **Cleanup Integration**: Automatic cleanup of old BMAD commands alongside rules
- **Enhanced Logging**: Better feedback on agents, tasks, tools, and workflow commands generated
### 🤖 Agent System Improvements
**Agent Builder & Validation:**
- **hasSidecar Field**: All agents now indicate sidecar support (true/false)
- **Validation Enforcement**: hasSidecar now required in agent validation
- **Better Brownfield Documentation**: Improved brownfield project documentation
- **Agent Builder Updates**: Agent builder now uses hasSidecar field
- **Agent Editor Integration**: Editor workflow respects hasSidecar configuration
### 🐛 Bug Fixes & Quality Improvements
**Critical Fixes:**
- **Windows Line Endings**: Resolved CRLF issues causing cross-platform problems
- **Code-Review File Filtering**: Fixed code-review picking up non-application files
- **ERR_REQUIRE_ESM Resolution**: Dynamic import for inquirer v9+ compatibility
- **Project-Context Conflicts**: Allow full project-context usage with conflict precedence
- **Workflow Paths**: Fixed paths for workflow and sprint status files
- **Missing Scripts**: Fixed missing scripts from installation
**Workflow & Variable Fixes:**
- **Variable Naming**: Standardized from {project_root} to {project-root} across CIS, BMGD, and BMM modules
- **Workflow References**: Fixed broken .yaml → .md workflow references
- **Advanced Elicitation Variables**: Fixed undefined variables in brainstorming
- **Dependency Format**: Corrected dependency format and added missing frontmatter
**Code Quality:**
- **Dependency Updates**: Bumped qs from 6.14.0 to 6.14.1
- **CodeRabbit Integration**: Enabled auto-review on new PRs
- **TEA Fragment Counts**: Updated fragment counts for accuracy
- **Documentation Links**: Fixed Discord channel references (#general-dev → #bmad-development)
### 🚀 Installation & CLI Improvements
**Installation Enhancements:**
- **Workflow Exclusion**: Ability to exclude workflows from being added as commands
- **Example Workflow Protection**: Example workflow in workflow builder now excluded from tools
- **CNAME Configuration**: Added CNAME file for custom domain support
- **Script Fixes**: All scripts now properly included in installation
### 📊 Statistics
- **27 commits** since alpha.22
- **217 documentation links** converted to site-relative format
- **42+ focused documents** created from large legacy files
- **7 topic-specific FAQ files** with standardized formatting
- **Complete documentation platform** migrated from Docusaurus to Astro/Starlight
- **Major workflow tools** added: Creator, Validator with subprocess support
- **Brainstorming workflow** overhauled with research-backed rigor
---
## [6.0.0-alpha.22]
**Release: December 31, 2025**
### 🌟 Key Highlights
1. **Unified Agent Workflow**: Create, Edit, and Validate workflows consolidated into single powerful agent workflow with separate step paths
2. **Agent Knowledge System**: Comprehensive data file architecture with persona properties, validation patterns, and crafting principles
3. **Deep Language Integration**: All sharded progressive workflows now support language choice at every step
4. **Core Module Documentation**: Extensive docs for core workflows (brainstorming, party mode, advanced elicitation)
5. **BMAD Core Concepts**: New documentation structure explaining agents, workflows, modules, and installation
6. **Tech Spec Sharded**: create-tech-spec workflow converted to sharded format with orient-first pattern
### 🤖 Unified Agent Workflow (Major Feature)
**Consolidated Architecture:**
- **Single Workflow, Three Paths**: Create, Edit, and Validate operations unified under `src/modules/bmb/workflows/agent/`
- **steps-c/**: Create path with 9 comprehensive steps for building new agents
- **steps-e/**: Edit path with 10 steps for modifying existing agents
- **steps-v/**: Validate path for standalone agent validation review
- **data/**: Centralized knowledge base for all agent-building intel
### 📚 Agent Knowledge System
**Data File Architecture:**
Located in `src/modules/bmb/workflows/agent/data/`:
- **agent-metadata.md** (208 lines) - Complete metadata field reference
- **agent-menu-patterns.md** (233 lines) - Menu design patterns and best practices
- **agent-compilation.md** (273 lines) - Compilation process documentation
- **persona-properties.md** (266 lines) - Persona crafting properties and examples
- **principles-crafting.md** (292 lines) - Core principles for agent design
- **critical-actions.md** (120 lines) - Critical action patterns
- **expert-agent-architecture.md** (236 lines) - Expert agent structure
- **expert-agent-validation.md** (173 lines) - Expert-specific validation
- **module-agent-validation.md** (124 lines) - Module-specific validation
- **simple-agent-architecture.md** (204 lines) - Simple agent structure
- **simple-agent-validation.md** (132 lines) - Simple agent validation
- **understanding-agent-types.md** (222 lines) - Agent type comparison
- **brainstorm-context.md** - Brainstorming guidance
- **communication-presets.csv** - Communication style presets
**Reference Examples:**
- **reference/module-examples/architect.agent.yaml** - Module agent example
- **reference/simple-examples/commit-poet.agent.yaml** - Simple agent example
- **journal-keeper/** - Complete sidecar pattern example
**Templates:**
- **templates/simple-agent.template.md** - Simple agent template
- **templates/expert-agent-template/expert-agent.template.md** - Expert agent template
- **templates/expert-agent-sidecar/** - Sidecar templates (instructions, memories)
### 🌍 Deep Language Integration
**Progressive Workflow Language Support:**
- **Every Step Biased**: All sharded progressive workflow steps now include language preference context
- **260+ Files Updated**: Comprehensive language integration across:
- Core workflows (brainstorming, party mode, advanced elicitation)
- BMB workflows (create-agent, create-module, create-workflow, edit-workflow, etc.)
- BMGD workflows (game-brief, gdd, narrative, game-architecture, etc.)
- BMM workflows (research, create-ux-design, prd, create-architecture, etc.)
- **Tested Languages**: Verified working with Spanish and Pirate Speak
- **Natural Conversations**: AI agents respond in configured language throughout workflow
### 📖 Core Module Documentation
**New Core Documentation Structure:**
`docs/modules/core/`:
- **index.md** - Core module overview
- **core-workflows.md** - Core workflow documentation
- **core-tasks.md** - Core task reference
- **brainstorming.md** (100 lines) - Brainstorming workflow guide
- **party-mode.md** (50 lines) - Party mode guide
- **advanced-elicitation.md** (105 lines) - Advanced elicitation techniques
- **document-sharding-guide.md** (133 lines) - Sharded workflow format guide
- **global-core-config.md** - Global core configuration reference
**Advanced Elicitation Moved:**
- **From**: `docs/` root
- **To**: `src/core/workflows/advanced-elicitation/`
- **Status**: Now a proper core workflow with methods.csv
### 📚 BMAD Core Concepts Documentation
**New Documentation Structure:**
`docs/bmad-core-concepts/`:
- **index.md** - Core concepts introduction
- **agents.md** (93 lines) - Understanding agents in BMAD
- **workflows.md** (89 lines) - Understanding workflows in BMAD
- **modules.md** (76 lines) - Understanding modules (BMM, BMGD, CIS, BMB, Core)
- **installing/index.md** (77 lines) - Installation guide
- **installing/upgrading.md** (144 lines) - Upgrading guide
- **bmad-customization/index.md** - Customization overview
- **bmad-customization/agents.md** - Agent customization guide
- **bmad-customization/workflows.md** (30 lines) - Workflow customization guide
- **web-bundles/index.md** (34 lines) - Web bundle distribution guide
**Documentation Cleanup:**
- **Removed v4-to-v6-upgrade.md** - Outdated upgrade guide
- **Removed document-sharding-guide.md** from docs root (moved to core)
- **Removed web-bundles-gemini-gpt-guide.md** - Consolidated into web-bundles/index.md
- **Removed getting-started/installation.md** - Migrated to bmad-core-concepts
- **Removed all ide-info/*.md files** - Consolidated into web-bundles documentation
### 🔧 Create-Tech-Spec Sharded Conversion
**Monolithic to Sharded:**
- **From**: Single `workflow.yaml` with `instructions.md`
- **To**: Sharded `workflow.md` with individual step files
- **Pattern**: Orient-first approach (understand before investigating)
### 🔨 Additional Improvements
**Workflow Status Path Fixes:**
- **Corrected Discovery Paths**: workflow-status workflows now properly use planning_artifacts and implementation_artifacts
- **Updated All Path Files**: enterprise-brownfield, enterprise-greenfield, method-brownfield, method-greenfield
**Documentation Updates:**
- **BMB Agent Creation Guide**: Comprehensive 166-line guide for agent creation
- **Workflow Vendoring Doc**: New 42-line guide on workflow customization and inheritance
- **Document Project Reference**: Moved from BMM docs to shared location
- **Workflows Planning Guide**: New 89-line guide for planning workflows
**BMB Documentation Streamlining:**
- **Removed Redundant Docs**: Eliminated duplicate documentation in `src/modules/bmb/docs/`
- **Step File Rules**: New 469-line comprehensive guide for step file creation
- **Agent Docs Moved**: Agent architecture and validation docs moved to workflow data/
**Windows Inquirer Fix:**
- **Another Default Addition**: Additional inquirer default value setting for better Windows multiselection support
**Code Quality:**
- **Removed Old BMM README**: Consolidated module documentation
- **Removed BMM Troubleshooting**: 661-line doc moved to shared location
- **Removed Enterprise Agentic Development**: 686-line doc consolidated
- **Removed Scale Adaptive System**: 618-line doc consolidated
---
## [6.0.0-alpha.21]
**Release: December 27, 2025**
### 🌟 Key Highlights
1. **Consistent Menu System**: All agents now use standardized 2-letter menu codes (e.g., "rd" for research, "ca" for create-architecture)
2. **Planning Artifacts Architecture**: Phase 1-3 workflows now properly segregate planning artifacts from documentation
3. **Windows Installer Fixed Again**: Updated inquirer to resolve multiselection tool issues
4. **Auto-Injected Features**: Chat and party mode automatically injected into all agents
5. **Validation System**: All agents now pass comprehensive new validation checks
### 🎯 Consistent Menu System (Major Feature)
**Standardized 2-Letter Codes:**
- **Compound Menu Triggers**: All agents now use consistent 2-letter compound trigger format (e.g., `bmm-rd`, `bmm-ca`)
- **Improved UX**: Shorter, more memorable command shortcuts across all modules
- **Module Prefixing**: Menu items properly scoped by module prefix (bmm-, bmgd-, cis-, bmb-)
- **Universal Pattern**: All 22 agents updated to follow the same menu structure
**Agent Updates:**
- **BMM Module**: 9 agents with standardized menus (pm, analyst, architect, dev, ux-designer, tech-writer, sm, tea, quick-flow-solo-dev)
- **BMGD Module**: 6 agents with standardized menus (game-architect, game-designer, game-dev, game-qa, game-scrum-master, game-solo-dev)
- **CIS Module**: 6 agents with standardized menus (innovation-strategist, design-thinking-coach, creative-problem-solver, brainstorming-coach, presentation-master, storyteller)
- **BMB Module**: 3 agents with standardized menus (bmad-builder, agent-builder, module-builder, workflow-builder)
- **Core Module**: BMAD Master agent updated with consistent menu patterns
### 📁 Planning Artifacts Architecture
**Content Segregation Implementation:**
- **Phase 1-3 Workflows**: All planning workflows now use `planning_artifacts` folder (default changed from `docs`)
- **Proper Input Discovery**: Workflows follow consistent input discovery patterns from planning artifacts
- **Output Management**: Planning artifacts properly separated from long-term documentation
- **Affected Workflows**:
- Product Brief: Updated discovery and output to planning artifacts
- PRD: Fixed discovery and output to planning artifacts
- UX Design: Updated all steps for proper artifact handling
- Architecture: Updated discovery and output flow
- Game Architecture: Updated for planning artifacts
- Story Creation: Updated workflow output paths
**File Organization:**
- **Planning Artifacts**: Ephemeral planning documents (prd.md, product-brief.md, ux-design.md, architecture.md)
- **Documentation**: Long-term project documentation (separate from planning)
- **Module Configuration**: BMM and BMGD modules updated with proper default paths
### 🪟 Windows Installer Fixes
**Inquirer Multiselection Fix:**
- **Updated Inquirer Version**: Resolved tool multiselection issues that were causing Windows installer failures
- **Better Compatibility**: Improved handling of checkbox and multi-select prompts on Windows(?)
### 🤖 Agent System Improvements
**Auto-Injected Features:**
- **Chat Mode**: Automatically injected into all agents during compilation
- **Party Mode**: Automatically injected into all agents during compilation
- **Reduced Manual Configuration**: No need to manually add these features to agent definitions
- **Consistent Behavior**: All agents now have uniform access to chat and party mode capabilities
**Agent Normalization:**
- **All Agents Validated**: All 22 agents pass comprehensive validation checks
- **Schema Enforcement**: Proper compound trigger validation implemented
- **Metadata Cleanup**: Removed obsolete and inconsistent metadata patterns
- **Test Fixtures Updated**: Validation test fixtures aligned with new requirements
### 🔧 Bug Fixes & Cleanup
**Docusaurus Merge Recovery:**
- **Restored Agent Files**: Fixed agent files accidentally modified in Docusaurus merge (PR #1191)
- **Reference Cleanup**: Removed obsolete agent reference examples (journal-keeper, security-engineer, trend-analyst)
- **Test Fixture Updates**: Aligned test fixtures with current validation requirements
**Code Quality:**
- **Schema Improvements**: Enhanced agent schema validation with better error messages
- **Removed Redundancy**: Cleaned up duplicate and obsolete agent definitions
- **Installer Cleanup**: Removed unused configuration code from BMM installer
**Planning Artifacts Path:**
- Default: `planning_artifacts/` (configurable in module.yaml)
- Previous: `docs/`
- Benefit: Clear separation between planning work and permanent documentation
---
## [6.0.0-alpha.20]
**Release: December 23, 2025**
### 🌟 Key Highlights
1. **Windows Installer Fixed**: Better compatibility with inquirer v9.x upgrade
2. **Path Segregation**: Revolutionary content organization separating ephemeral artifacts from permanent documentation
3. **Custom Installation Messages**: Configurable intro/outro messages for professional installation experience
4. **Enhanced Upgrade Logic**: Two-version auto upgrades with proper config preservation
5. **Quick-Dev Refactor**: Sharded format with comprehensive adversarial review
6. **Improved Quality**: Streamlined personas, fixed workflows, and cleaned up documentation
7. **Doc Site Auto Generation**; Auto Generate a docusaurus site update on merge
### 🪟 Windows Installer (hopefully) Fixed
**Inquirer Upgrade:**
- **Updated to v9.x**: Upgraded inquirer package for better Windows support
- **Improved Compatibility**: Better handling of Windows terminal environments
- **Enhanced UX**: More reliable interactive prompts across platforms
### 🎯 Path Segregation Implementation (Major Feature)
**Revolutionary Content Organization:**
- **Phase 1-4 Path Segregation**: Implemented new BM paths across all BMM and BMGD workflows
- **Planning vs Implementation Artifacts**: Separated ephemeral Phase 4 artifacts from permanent documentation
- **Optimized File Organization**: Better structure differentiating planning artifacts from long-term project documentation
- **Backward Compatible**: Existing installations continue working while preparing for optimized content organization
- **Module Configuration Updates**: Enhanced module.yaml with new path configurations for all phases
- **Workflow Path Updates**: All 90+ workflow files updated with proper path configurations
**Documentation Cleanup:**
- **Removed Obsolete Documentation**: Cleaned up 3,100+ lines of outdated documentation
- **Streamlined README Files**: Consolidated and improved module documentation
- **Enhanced Clarity**: Removed redundant content and improved information architecture
### 💬 Installation Experience Enhancements
**Custom Installation Messages:**
- **Configurable Intro/Outro Messages**: New install-messages.yaml file for customizable installation messages
- **Professional Installation Flow**: Custom welcome messages and completion notifications
- **Module-Specific Messaging**: Tailored messages for different installation contexts
- **Enhanced User Experience**: More informative and personalized installation process
**Core Module Improvements:**
- **Always Ask Questions**: Core module now always prompts for configuration (no accept defaults)
- **Better User Engagement**: Ensures users actively configure their installation
- **Improved Configuration Accuracy**: Reduces accidental acceptance of defaults
### 🔧 Upgrade & Configuration Management
**Two-Version Auto Upgrade:**
- **Smarter Upgrade Logic**: Automatic upgrades now span 2 versions (e.g., .16 → .18)
- **Config Variable Preservation**: Ensures all configuration variables are retained during quick updates
- **Seamless Updates**: Quick updates now preserve custom settings properly
- **Enhanced Upgrade Safety**: Better handling of configuration across version boundaries
### 🤖 Workflow Improvements
**Quick-Dev Workflow Refactor (PR #1182):**
- **Sharded Format Conversion**: Converted quick-dev workflow to modern step-file format
- **Adversarial Review Integration**: Added comprehensive self-check and adversarial review steps
- **Enhanced Quality Assurance**: 6-step process with mode detection, context gathering, execution, self-check, review, and resolution
- **578 New Lines Added**: Significant expansion of quick-dev capabilities
**BMGD Workflow Fixes:**
- **workflow-status Filename Correction**: Fixed incorrect filename references (PR #1172)
- **sprint-planning Update**: Added workflow-status update to game-architecture completion
- **Path Corrections**: Resolved dead references and syntax errors (PR #1164)
### 🎨 Code Quality & Refactoring
**Persona Streamlining (PR #1167):**
- **Quick-Flow-Solo-Dev Persona**: Streamlined for clarity and accuracy
- **Improved Agent Behavior**: More focused and efficient solo development support
**Package Management:**
- **package-lock.json Sync**: Ensured version consistency (PR #1168)
- **Dependency Cleanup**: Reduced package-lock bloat significantly
**Prettier Configuration:**
- **Markdown Underscore Protection**: Prettier will no longer mess up underscores in markdown files
- **Disabled Auto-Fix**: Markdown formatting issues now handled more intelligently
- **Better Code Formatting**: Improved handling of special characters in documentation
### 📚 Documentation Updates
**Sponsor Attribution:**
- **DigitalOcean Sponsorship**: Added attribution for DigitalOcean support (PR #1162)
**Content Reorganization:**
- **Removed Unused Docs**: Eliminated obsolete documentation files
- **Consolidated References**: Merged and reorganized technical references
- **Enhanced README Files**: Improved module and workflow documentation
### 🧹 Cleanup & Optimization
**File Organization:**
- **Removed Asterisk Insertion**: Eliminated unwanted asterisk insertions into agent files
- **Removed Unused Commands**: Cleaned up deprecated command references
- **Consolidated Duplication**: Reduced code duplication across multiple files
- **Removed Unneeded Folders**: Cleaned up temporary and obsolete directory structures
### 📊 Statistics
- **23 commits** since alpha.19
- **90+ workflow files** updated with new path configurations
- **3,100+ lines of documentation** removed and reorganized
- **578 lines added** to quick-dev workflow with adversarial review
- **Major architectural improvement** to content organization
## [6.0.0-alpha.19]
**Release: December 18, 2025**
### 🐛 Bug Fixes
**Installer Stability:**
- **Fixed \_bmad Folder Stutter**: Resolved issue with duplicate \_bmad folder creation when applying agent custom files
- **Cleaner Installation**: Removed unnecessary backup file that was causing bloat in the installer
- **Streamlined Agent Customization**: Fixed path handling for agent custom files to prevent folder duplication
### 📊 Statistics
- **3 files changed** with critical fix
- **3,688 lines removed** by eliminating backup files
- **Improved installer performance** and stability
---
## [6.0.0-alpha.18]
**Release: December 18, 2025**
### 🎮 BMGD Module - Complete Game Development Module Updated
**Massive BMGD Overhaul:**
- **New Game QA Agent (GLaDOS)**: Elite Game QA Architect with test automation specialization
- Engine-specific expertise: Unity, Unreal, Godot testing frameworks
- Comprehensive knowledge base with 15+ testing topics
- Complete testing workflows: test-framework, test-design, automate, playtest-plan, performance-test, test-review
- **New Game Solo Dev Agent (Indie)**: Rapid prototyping and iteration specialist
- Quick-flow workflows optimized for solo/small team development
- Streamlined development process for indie game creators
- **Production Workflow Alignment**: BMGD 4-production now fully aligned with BMM 4-implementation
- Removed obsolete workflows: story-done, story-ready, story-context, epic-tech-context
- Added sprint-status workflow for project tracking
- All workflows updated as standalone with proper XML instructions
**Game Testing Architecture:**
- **Complete Testing Knowledge Base**: 15 comprehensive testing guides covering:
- Engine-specific: Unity (TF 1.6.0), Unreal, Godot testing
- Game-specific: Playtesting, balance, save systems, multiplayer
- Platform: Certification (TRC/XR), localization, input systems
- QA Fundamentals: Automation, performance, regression, smoke testing
**New Workflows & Features:**
- **workflow-status**: Multi-mode status checker for game projects
- Game-specific project levels (Game Jam → AAA)
- Support for gamedev and quickflow paths
- Project initialization workflow
- **create-tech-spec**: Game-focused technical specification workflow
- Engine-aware (Unity/Unreal/Godot) specifications
- Performance and gameplay feel considerations
- **Enhanced Documentation**: Complete documentation suite with 9 guides
- agents-guide.md: Reference for all 6 agents
- workflows-guide.md: Complete workflow documentation
- game-types-guide.md: 24 game type templates
- quick-flow-guide.md: Rapid development guide
- Comprehensive troubleshooting and glossary
### 🤖 Agent Management Improved
**Agent Recompile Feature:**
- **New Menu Item**: Added "Recompile Agents" option to the installer menu
- **Selective Compilation**: Recompile only agents without full module upgrade
- **Faster Updates**: Quick agent updates without complete reinstallation
- **Customization Integration**: Automatically applies customizations during recompile
**Agent Customization Enhancement:**
- **Complete Field Support**: ALL fields from agent customization YAML are now properly injected
- **Deep Merge Implementation**: Customizations now properly override all agent properties
- **Persistent Customizations**: Custom settings survive updates and recompiles
- **Enhanced Flexibility**: Support for customizing metadata, persona, menu items, and workflows
### 🔧 Installation & Module Management
**Custom Module Installation:**
- **Enhanced Module Addition**: Modify install now supports adding custom modules even if none were originally installed
- **Flexible Module Management**: Easy addition and removal of custom modules post-installation
- **Improved Manifest Tracking**: Better tracking of custom vs core modules
**Quality Improvements:**
- **Comprehensive Code Review**: Fixed 20+ issues identified in PR review
- **Type Validation**: Added proper type checking for configuration values
- **Path Security**: Enhanced path traversal validation for better security
- **Documentation Updates**: All documentation updated to reflect new features
### 📊 Statistics
- **178 files changed** with massive BMGD expansion
- **28,350+ lines added** across testing documentation and workflows
- **2 new agents** added to BMGD module
- **15 comprehensive testing guides** created
- **Complete alignment** between BMGD and BMM production workflows
### 🌟 Key Highlights
1. **BMGD Module Revolution**: Complete overhaul with professional game development workflows
2. **Game Testing Excellence**: Comprehensive testing architecture for all major game engines
3. **Agent Management**: New recompile feature allows quick agent updates without full reinstall
4. **Full Customization Support**: All agent fields now customizable via YAML
5. **Industry-Ready Documentation**: Professional-grade guides for game development teams
---
## [6.0.0-alpha.17]
**Release: December 16, 2025**
### 🚀 Revolutionary Installer Overhaul
**Unified Installation Experience:**
- **Streamlined Module Installation**: Completely redesigned installer with unified flow for both core and custom content
- **Single Install Panel**: Eliminated disjointed clearing between modules for smoother, more intuitive installation
- **Quick Default Selection**: New quick install feature with default selections for faster setup of selected modules
- **Enhanced UI/UX**: Improved question order, reduced verbose output, and cleaner installation interface
- **Logical Question Flow**: Reorganized installer questions to follow natural progression and user expectations
**Custom Content Installation Revolution:**
- **Full Custom Content Support**: Re-enabled complete custom content generation and sharing through the installer
- **Custom Module Tracking**: Manifest now tracks custom modules separately to ensure they're always installed from the custom cache
- **Custom Installation Order**: Custom modules now install after core modules for better dependency management
- **Quick Update with Custom Content**: Quick update now properly retains and updates custom content
- **Agent Customization Integration**: Customizations are now applied during quick updates and agent compilation
### 🧠 Revolutionary Agent Memory & Visibility System
**Breaking Through Dot-Folder Limitations:**
- **Dot-Folder to Underscore Migration**: Critical change from `.bmad` to `_bmad` ensures LLMs (Codex, Claude, and others) can no longer ignore or skip BMAD content - dot folders are commonly filtered out by AI systems
- **Universal Content Visibility**: Underscore folders are treated as regular content, ensuring full AI agent access to all BMAD resources and configurations
- **Agent Memory Architecture**: Rolled out comprehensive agent memory support for installed agents with `-sidecar` folders
- **Persistent Agent Learning**: Sidecar content installs to `_bmad/_memory`, giving each agent the ability to learn and remember important information specific to its role
**Content Location Strategy:**
- **Standardized Memory Location**: All sidecar content now uses `_bmad/_memory` as the unified location for agent memories
- **Segregated Output System**: New architecture supports differentiating between ephemeral Phase 4 artifacts and long-term documentation
- **Forward Compatibility**: Existing installations continue working with content in docs folder, with optimization coming in next release
- **Configuration Cleanup**: Renamed `_cfg` to `_config` for clearer naming conventions
- **YAML Library Consolidation**: Reduced dependency to use only one YAML library for better stability
### 🎯 Future-Ready Architecture
**Content Organization Preview:**
- **Phase 4 Artifact Segregation**: Infrastructure ready for separating ephemeral workflow artifacts from permanent documentation
- **Planning vs Implementation Docs**: New system will differentiate between planning artifacts and long-term project documentation
- **Backward Compatibility**: Current installs maintain full functionality while preparing for optimized content organization
- **Quick Update Path**: Tomorrow's quick update will fully optimize all BMM workflows to use new segregated output locations
### 🎯 Sample Modules & Documentation
**Comprehensive Examples:**
- **Sample Unitary Module**: Complete example with commit-poet agent and quiz-master workflow
- **Sample Wellness Module**: Meditation guide and wellness companion agents demonstrating advanced patterns
- **Enhanced Documentation**: Updated README files and comprehensive installation guides
- **Custom Content Creation Guides**: Step-by-step documentation for creating and sharing custom modules
### 🔧 Bug Fixes & Optimizations
**Installer Improvements:**
- **Fixed Duplicate Entry Issue**: Resolved duplicate entries in files manifest
- **Reduced Log Noise**: Less verbose logging during installation for cleaner user experience
- **Menu Wording Updates**: Improved menu text for better clarity and understanding
- **Fixed Quick Install**: Resolved issues with quick installation functionality
**Code Quality:**
- **Minor Code Cleanup**: General cleanup and refactoring throughout the codebase
- **Removed Unused Code**: Cleaned up deprecated and unused functionality
- **Release Workflow Restoration**: Fixed automated release workflow for v6
**BMM Phase 4 Workflow Improvements:**
- **Sprint Status Enhancement**: Improved sprint-status validation with interactive correction for unknown values and better epic status handling
- **Story Status Standardization**: Normalized all story status references to lowercase kebab-case (ready-for-dev, in-progress, review, done)
- **Removed Stale Story State**: Eliminated deprecated 'drafted' story state - stories now go directly from creation to ready-for-dev
- **Code Review Clarity**: Improved code review completion message from "Story is ready for next work!" to "Code review complete!" for better clarity
- **Risk Detection Rules**: Rewrote risk detection rules for better LLM clarity and fixed warnings vs risks naming inconsistency
### 📊 Statistics
- **40+ commits** since alpha.16
- **Major installer refactoring** with complete UX overhaul
- **2 new sample modules** with comprehensive examples
- **Full custom content support** re-enabled and improved
### 🌟 Key Highlights
1. **Installer Revolution**: The installation system has been completely overhauled for better user experience, reliability, and speed
2. **Custom Content Freedom**: Users can now easily create, share, and install custom content through the streamlined installer
3. **AI Visibility Breakthrough**: Migration from `.bmad` to `_bmad` ensures LLMs can access all BMAD content (dot folders are commonly ignored by AI systems)
4. **Agent Memory System**: Rolled out persistent agent memory support - agents with `-sidecar` folders can now learn and remember important information in `_bmad/_memory`
5. **Quick Default Selection**: Installation is now faster with smart default selections for popular configurations
6. **Future-Ready Architecture**: Infrastructure in place for segregating ephemeral artifacts from permanent documentation (full optimization coming in next release)
## [6.0.0-alpha.16]
**Release: December 10, 2025**
### 🔧 Temporary Changes & Fixes
**Installation Improvements:**
- **Temporary Custom Content Installation Disable**: Custom content installation temporarily disabled to improve stability
- **BMB Workflow Path Fixes**: Fixed numerous path references in BMB workflows to ensure proper step file resolution
- **Package Updates**: Updated dependencies for improved security and performance
**Path Resolution Improvements:**
- **BMB Agent Builder Fixes**: Corrected path references in step files and documentation
- **Workflow Path Standardization**: Ensured consistent path handling across all BMB workflows
- **Documentation References**: Updated internal documentation links and references
**Cleanup Changes:**
- **Example Modules Removal**: Temporarily removed example modules to prevent accidental installation
- **Memory Management**: Improved sidecar file handling for custom modules
### 📊 Statistics
- **336 files changed** with path fixes and improvements
- **4 commits** since alpha.15
---
## [6.0.0-alpha.15]
**Release: December 7, 2025**
### 🔧 Module Installation Standardization
**Unified Module Configuration:**
- **module.yaml Standard**: All modules now use `module.yaml` instead of `_module-installer/install-config.yaml` for consistent configuration (BREAKING CHANGE)
- **Universal Installer**: Both core and custom modules now use the same installer with consistent behavior
- **Streamlined Module Creation**: Module builder templates updated to use new module.yaml standard
- **Enhanced Module Discovery**: Improved module caching and discovery mechanisms
**Custom Content Installation Revolution:**
- **Interactive Custom Content Search**: Installer now proactively asks if you have custom content to install
- **Flexible Location Specification**: Users can indicate custom content location during installation
- **Improved Custom Module Handler**: Enhanced error handling and debug output for custom installations
- **Comprehensive Documentation**: New custom-content-installation.md guide (245 lines) replacing custom-agent-installation.md
### 🤖 Code Review Integration Expansion
**AI Review Tools:**
- **CodeRabbit AI Integration**: Added .coderabbit.yaml configuration for automated code review
- **Raven's Verdict PR Review Tool**: New PR review automation tool (297 lines of documentation)
- **Review Path Configuration**: Proper exclusion patterns for node_modules and generated files
- **Review Documentation**: Comprehensive usage guidance and skip conditions for PRs
### 📚 Documentation Improvements
**Documentation Restructuring:**
- **Code of Conduct**: Moved to .github/ folder following GitHub standards
- **Gem Creation Link**: Updated to point to Gemini Gem manager instead of deprecated interface
- **Example Custom Content**: Improved README files and disabled example modules to prevent accidental installation
- **Custom Module Documentation**: Enhanced module installation guides with new YAML structure
### 🧹 Cleanup & Optimization
**Memory Management:**
- **Removed Hardcoded .bmad Folders**: Cleaned up demo content to use configurable paths
- **Sidecar File Cleanup**: Removed old .bmad-user-memory folders from wellness modules
- **Example Content Organization**: Better organization of example-custom-content directory
**Installer Improvements:**
- **Debug Output Enhancement**: Added informative debug output when installer encounters errors
- **Custom Module Caching**: Improved caching mechanism for custom module installations
- **Consistent Behavior**: All modules now behave consistently regardless of custom or core status
### 📊 Statistics
- **77 files changed** with 2,852 additions and 607 deletions
- **15 commits** since alpha.14
### ⚠️ Breaking Changes
1. **module.yaml Configuration**: All modules must now use `module.yaml` instead of `_module-installer/install-config.yaml`
- Core modules updated automatically
- Custom modules will need to rename their configuration file
- Module builder templates generate new format
### 📦 New Dependencies
- No new dependencies added in this release
---
## [6.0.0-alpha.14]
**Release: December 7, 2025**
### 🔧 Installation & Configuration Revolution
**Custom Module Installation Overhaul:**
- **Simple custom.yaml Installation**: Custom agents and workflows can now be installed with a single YAML file
- **IDE Configuration Preservation**: Upgrades will no longer delete custom modules, agents, and workflows from IDE configuration
- **Removed Legacy agent-install Command**: Streamlined installation process (BREAKING CHANGE)
- **Sidecar File Retention**: Custom sidecar files are preserved during updates
- **Flexible Agent Sidecar Locations**: Fully configurable via config options instead of hardcoded paths
**Module Discovery System Transformation:**
- **Recursive Agent Discovery**: Deep scanning for agents across entire project structure
- **Enhanced Manifest Generation**: Comprehensive scanning of all installed modules
- **Nested Agent Support**: Fixed nested agents appearing in CLI commands
- **Module Reinstall Fix**: Prevented modules from showing as obsolete during reinstall
### 🏗️ Advanced Builder Features
**Workflow Builder Evolution:**
- **Continuable Workflows**: Create workflows with sophisticated branching and continuation logic
- **Template LOD Options**: Level of Detail output options for flexible workflow generation
- **Step-Based Architecture**: Complete conversion to granular step-file system
- **Enhanced Creation Process**: Improved workflow creation with better template handling
**Module Builder Revolution:**
- **11-Step Module Creation**: Comprehensive step-by-step module generation process
- **Production-Ready Templates**: Complete templates for agents, installers, and workflow plans
- **Built-in Validation System**: Ensures module quality and BMad Core compliance
- **Professional Documentation**: Auto-generated module documentation and structure
### 🚀 BMad Method (BMM) Enhancements
**Workflow Improvements:**
- **Brownfield PRD Support**: Enhanced PRD workflow for existing project integration
- **Sprint Status Command**: New workflow for tracking development progress
- **Step-Based Format**: Improved continue functionality across all workflows
- **Quick-Spec-Flow Documentation**: Rapid development specification flows
**Documentation Revolution:**
- **Comprehensive Troubleshooting Guide**: 680-line detailed troubleshooting documentation
- **Quality Check Integration**: Added markdownlint-cli2 for markdown quality assurance
- **Enhanced Test Architecture**: Improved CI/CD templates and testing workflows
### 🌟 New Features & Integrations
**Kiro-Cli Installer:**
- **Intelligent Routing**: Smart routing to quick-dev workflow
- **BMad Core Compliance**: Full compliance with BMad standards
**Discord Notifications:**
- **Compact Format**: Streamlined plain-text notifications
- **Bug Fixes**: Resolved notification delivery issues
**Example Mental Wellness Module (MWM):**
- **Complete Module Example**: Demonstrates advanced module patterns
- **Multiple Agents**: CBT Coach, Crisis Navigator, Meditation Guide, Wellness Companion
- **Workflow Showcase**: Crisis support, daily check-in, meditation, journaling workflows
### 🐛 Bug Fixes & Optimizations
- Fixed version reading from package.json instead of hardcoded fallback
- Removed hardcoded years from WebSearch queries
- Removed broken build caching mechanism
- Enhanced TTS injection summary with tracking and documentation
- Fixed CI nvmrc configuration issues
### 📊 Statistics
- **335 files changed** with 17,161 additions and 8,204 deletions
- **46 commits** since alpha.13
### ⚠️ Breaking Changes
1. **Removed agent-install Command**: Migrate to new custom.yaml installation system
2. **Agent Sidecar Configuration**: Now requires explicit config instead of hardcoded paths
### 📦 New Dependencies
- `markdownlint-cli2: ^0.19.1` - Professional markdown linting
---
## [6.0.0-alpha.13]
**Release: November 30, 2025**
### 🏗️ Revolutionary Workflow Architecture
- **Step-File System**: Complete conversion to granular step-file architecture with dynamic menu generation
- **Phase 4 Transformation**: Simplified architecture with sprint planning integration (Jira, Linear, Trello)
- **Performance Improvements**: Eliminated time-based estimates, reduced file loading times
- **Legacy Cleanup**: Removed all deprecated workflows for cleaner system
### 🤖 Agent System Revolution
- **Universal Custom Agent Support**: Extended to ALL IDEs including Antigravity and Rovo Dev
- **Agent Creation Workflow**: Enhanced with better documentation and parameter clarity
- **Multi-Source Discovery**: Agents now check multiple source locations for better discovery
- **GitHub Migration**: Integration moved from chatmodes to agents folder
### 🧪 Testing Infrastructure
- **Playwright Utils Integration**: @seontechnologies/playwright-utils across all testing workflows
- **TTS Injection System**: Complete text-to-speech integration for voice feedback
- **Web Bundle Test Support**: Enabled web bundles for test environments
### ⚠️ Breaking Changes
1. **Legacy Workflows Removed**: Migrate to new stepwise sharded workflows
2. **Phase 4 Restructured**: Update automation expecting old Phase 4 structure
3. **Agent Compilation Required**: Custom agents must use new creation workflow
## [6.0.0-alpha.12]
**Release: November 19, 2025**
### 🐛 Bug Fixes
- Added missing `yaml` dependency to fix `MODULE_NOT_FOUND` error when running `npx bmad-method install`
## [6.0.0-alpha.11]
**Release: November 18, 2025**
### 🚀 Agent Installation Revolution
- **bmad agent-install CLI**: Interactive agent installation with persona customization
- **4 Reference Agents**: commit-poet, journal-keeper, security-engineer, trend-analyst
- **Agent Compilation Engine**: YAML → XML with smart handler injection
- **60 Communication Presets**: Pure communication styles for agent personas
### 📚 BMB Agent Builder Enhancement
- **Complete Documentation Suite**: 7 new guides for agent architecture and creation
- **Expert Agent Sidecar Support**: Multi-file agents with templates and knowledge bases
- **Unified Validation**: 160-line checklist shared across workflows
- **BMM Agent Voices**: All 9 agents enhanced with distinct communication styles
### 🎯 Workflow Architecture Change
- **Epic Creation Moved**: Now in Phase 3 after Architecture for technical context
- **Excalidraw Distribution**: Diagram capabilities moved to role-appropriate agents
- **Google Antigravity IDE**: New installer with flattened file naming
### ⚠️ Breaking Changes
1. **Frame Expert Retired**: Use role-appropriate agents for diagrams
2. **Agent Installation**: New bmad agent-install command replaces manual installation
3. **Epic Creation Phase**: Moved from Phase 2 to Phase 3
## [6.0.0-alpha.10]
**Release: November 16, 2025**
- **Epics After Architecture**: Major milestone - technically-informed user stories created post-architecture
- **Frame Expert Agent**: New Excalidraw specialist with 4 diagram workflows
- **Time Estimate Prohibition**: Warnings across 33 workflows acknowledging AI's impact on development speed
- **Platform-Specific Commands**: ide-only/web-only fields filter menu items by environment
- **Agent Customization**: Enhanced memory/prompts merging via \*.customize.yaml files
## [6.0.0-alpha.9]
**Release: November 12, 2025**
- **Intelligent File Discovery**: discover_inputs with FULL_LOAD, SELECTIVE_LOAD, INDEX_GUIDED strategies
- **3-Track System**: Simplified from 5 levels to 3 intuitive tracks
- **Web Bundles Guide**: Comprehensive documentation with 60-80% cost savings strategies
- **Unified Output Structure**: Eliminated .ephemeral/ folders - single configurable output folder
- **BMGD Phase 4**: Added 10 game development workflows with BMM patterns
## [6.0.0-alpha.8]
**Release: November 9, 2025**
- **Configurable Installation**: Custom directories with .bmad hidden folder default
- **Optimized Agent Loading**: CLI loads from installed files, eliminating duplication
- **Party Mode Everywhere**: All web bundles include multi-agent collaboration
- **Phase 4 Artifact Separation**: Stories, code reviews, sprint plans configurable outside docs
- **Expanded Web Bundles**: All BMM, BMGD, CIS agents bundled with elicitation integration
## [6.0.0-alpha.7]
**Release: November 7, 2025**
- **Workflow Vendoring**: Web bundler performs automatic cross-module dependency vendoring
- **BMGD Module Extraction**: Game development split into standalone 4-phase structure
- **Advanced Elicitation Fix**: Added missing CSV files to workflow bundles
- **Claude Code Fix**: Resolved README slash command installation regression
## [6.0.0-alpha.6]
**Release: November 4, 2025**
- **Critical Installer Fixes**: Fixed manifestPath error and option display issues
- **Conditional Docs Installation**: Optional documentation to reduce production footprint
- **Improved Installer UX**: Better formatting with descriptive labels and clearer feedback
- **Issue Tracker Cleanup**: Closed 54 legacy v4 issues for focused v6 development
- **Contributing Updates**: Removed references to non-existent branches
## [6.0.0-alpha.5]
**Release: November 4, 2025**
- **3-Track Scale System**: Simplified from 5 levels to 3 intuitive preference-driven tracks
- **Elicitation Modernization**: Replaced legacy XML tags with explicit invoke-task pattern
- **PM/UX Evolution**: Added November 2025 industry research on AI Agent PMs
- **Brownfield Reality Check**: Rewrote Phase 0 with 4 real-world scenarios
- **Documentation Accuracy**: All agent capabilities now match YAML source of truth
## [6.0.0-alpha.4]
**Release: November 2, 2025**
- **Documentation Hub**: Created 18 comprehensive guides (7000+ lines) with professional standards
- **Paige Agent**: New technical documentation specialist across all BMM phases
- **Quick Spec Flow**: Intelligent Level 0-1 planning with auto-stack detection
- **Universal Shard-Doc**: Split large markdown documents with dual-strategy loading
- **Intent-Driven Planning**: PRD and Product Brief transformed from template-filling to conversation
## [6.0.0-alpha.3]
**Release: October 2025**
- **Codex Installer**: Custom prompts in `.codex/prompts/` directory structure
- **Bug Fixes**: Various installer and workflow improvements
- **Documentation**: Initial documentation structure established
## [6.0.0-alpha.0]
**Release: September 28, 2025**
- **Lean Core**: Simple common tasks and agents (bmad-web-orchestrator, bmad-master)
- **BMad Method (BMM)**: Complete scale-adaptive rewrite supporting projects from small enhancements to massive undertakings
- **BoMB**: BMad Builder for creating and converting modules, workflows, and agents
- **CIS**: Creative Intelligence Suite for ideation and creative workflows
- **Game Development**: Full subclass of game-specific development patterns**Note**: Version 5.0.0 was skipped due to NPX registry issues that corrupted the version. Development continues with v6.0.0-alpha.0.
## [v4.43.0](https://github.com/bmad-code-org/BMAD-METHOD/releases/tag/v4.43.0)
**Release: August-September 2025 (v4.31.0 - v4.43.1)**
Focus on stability, ecosystem growth, and professional tooling.
### Major Integrations
- **Codex CLI & Web**: Full Codex integration with web and CLI modes
- **Auggie CLI**: Augment Code integration
- **iFlow CLI**: iFlow support in installer
- **Gemini CLI Custom Commands**: Enhanced Gemini CLI capabilities
### Expansion Packs
- **Godot Game Development**: Complete game dev workflow
- **Creative Writing**: Professional writing agent system
- **Agent System Templates**: Template expansion pack (Part 2)
### Advanced Features
- **AGENTS.md Generation**: Auto-generated agent documentation
- **NPM Script Injection**: Automatic package.json updates
- **File Exclusion**: `.bmad-flattenignore` support for flattener
- **JSON-only Integration**: Compact integration mode
### Quality & Stability
- **PR Validation Workflow**: Automated contribution checks
- **Fork-Friendly CI/CD**: Opt-in mechanism for forks
- **Code Formatting**: Prettier integration with pre-commit hooks
- **Update Checker**: `npx bmad-method update-check` command
### Flattener Improvements
- Detailed statistics with emoji-enhanced `.stats.md`
- Improved project root detection
- Modular component architecture
- Binary directory exclusions (venv, node_modules, etc.)
### Documentation & Community
- Brownfield document naming consistency fixes
- Architecture template improvements
- Trademark and licensing clarity
- Contributing guidelines refinement
### Developer Experience
- Version synchronization scripts
- Manual release workflow enhancements
- Automatic release notes generation
- Changelog file path configuration
[View v4.43.1 tag](https://github.com/bmad-code-org/BMAD-METHOD/tree/v4.43.1)
## [v4.30.0](https://github.com/bmad-code-org/BMAD-METHOD/releases/tag/v4.30.0)
**Release: July 2025 (v4.21.0 - v4.30.4)**
Introduction of advanced IDE integrations and command systems.
### Claude Code Integration
- **Slash Commands**: Native Claude Code slash command support for agents
- **Task Commands**: Direct task invocation via slash commands
- **BMad Subdirectory**: Organized command structure
- **Nested Organization**: Clean command hierarchy
### Agent Enhancements
- BMad-master knowledge base loading
- Improved brainstorming facilitation
- Better agent task following with cost-saving model combinations
- Direct commands in agent definitions
### Installer Improvements
- Memory-efficient processing
- Clear multi-select IDE prompts
- GitHub Copilot support with improved UX
- ASCII logo (because why not)
### Platform Support
- Windows compatibility improvements (regex fixes, newline handling)
- Roo modes configuration
- Support for multiple CLI tools simultaneously
### Expansion Ecosystem
- 2D Unity Game Development expansion pack
- Improved expansion pack documentation
- Better isolated expansion pack installations
[View v4.30.4 tag](https://github.com/bmad-code-org/BMAD-METHOD/tree/v4.30.4)
## [v4.20.0](https://github.com/bmad-code-org/BMAD-METHOD/releases/tag/v4.20.0)
**Release: June 2025 (v4.11.0 - v4.20.0)**
Major focus on documentation quality and expanding QA agent capabilities.
### Documentation Overhaul
- **Workflow Diagrams**: Visual explanations of planning and development cycles
- **QA Role Expansion**: QA agent transformed into senior code reviewer
- **User Guide Refresh**: Complete rewrite with clearer explanations
- **Contributing Guidelines**: Clarified principles and contribution process
### QA Agent Transformation
- Elevated from simple tester to senior developer/code reviewer
- Code quality analysis and architectural feedback
- Pre-implementation review capabilities
- Integration with dev cycle for quality gates
### IDE Ecosystem Growth
- **Cline IDE Support**: Added configuration for Cline
- **Gemini CLI Integration**: Native Gemini CLI support
- **Expansion Pack Installation**: Automated expansion agent setup across IDEs
### New Capabilities
- Markdown-tree integration for document sharding
- Quality gates to prevent task completion with failures
- Enhanced brownfield workflow documentation
- Team-based agent bundling improvements
### Developer Tools
- Better expansion pack isolation
- Automatic rule generation for all supported IDEs
- Common files moved to shared locations
- Hardcoded dependencies removed from installer
[View v4.20.0 tag](https://github.com/bmad-code-org/BMAD-METHOD/tree/v4.20.0)
## [v4.10.0](https://github.com/bmad-code-org/BMAD-METHOD/releases/tag/v4.10.0)
**Release: June 2025 (v4.3.0 - v4.10.3)**
This release focused on making BMAD more configurable and adaptable to different project structures.
### Configuration System
- **Optional Core Config**: Document sharding and core configuration made optional
- **Flexible File Resolution**: Support for non-standard document structures
- **Debug Logging**: Configurable debug mode for agent troubleshooting
- **Fast Update Mode**: Quick updates without breaking customizations
### Agent Improvements
- Clearer file resolution instructions for all agents
- Fuzzy task resolution for better agent autonomy
- Web orchestrator knowledge base expansion
- Better handling of deviant PRD/Architecture structures
### Installation Enhancements
- V4 early detection for improved update flow
- Prevented double installation during updates
- Better handling of YAML manifest files
- Expansion pack dependencies properly included
### Bug Fixes
- SM agent file resolution issues
- Installer upgrade path corrections
- Bundle build improvements
- Template formatting fixes
[View v4.10.3 tag](https://github.com/bmad-code-org/BMAD-METHOD/tree/v4.10.3)
## [v4.0.0](https://github.com/bmad-code-org/BMAD-METHOD/releases/tag/v4.0.0)
**Release: June 20, 2025 (v4.0.0 - v4.2.0)**
Version 4 represented a complete architectural overhaul, transforming BMAD from a collection of prompts into a professional, distributable framework.
### Framework Transformation
- **NPM Package**: Professional distribution and simple installation via `npx bmad-method install`
- **Modular Architecture**: Move to `.bmad-core` hidden folder structure
- **Multi-IDE Support**: Unified support for Claude Code, Cursor, Roo, Windsurf, and many more
- **Schema Standardization**: YAML-based agent and team definitions
- **Automated Installation**: One-command setup with upgrade detection
### Agent System Overhaul
- Agent team workflows (fullstack, no-ui, all agents)
- Web bundle generation for platform-agnostic deployment
- Task-based architecture (separate task definitions from agents)
- IDE-specific agent activation (slash commands for Claude Code, rules for Cursor, etc.)
### New Capabilities
- Brownfield project support (existing codebases)
- Greenfield project workflows (new projects)
- Expansion pack architecture for domain specialization
- Document sharding for better context management
- Automatic semantic versioning and releases
### Developer Experience
- Automatic upgrade path from v3 to v4
- Backup creation for user customizations
- VSCode settings and markdown linting
- Comprehensive documentation restructure
[View v4.2.0 tag](https://github.com/bmad-code-org/BMAD-METHOD/tree/v4.2.0)
## [v3.0.0](https://github.com/bmad-code-org/BMAD-METHOD/releases/tag/v3.0.0)
**Release: May 20, 2025**
Version 3 introduced the revolutionary orchestrator concept, creating a unified agent experience.
### Major Features
- **BMad Orchestrator**: Uber-agent that orchestrates all specialized agents
- **Web-First Approach**: Streamlined web setup with pre-compiled agent bundles
- **Simplified Onboarding**: Complete setup in minutes with clear quick-start guide
- **Build System**: Scripts to compile web agents from modular components
### Architecture Changes
- Consolidated agent system with centralized orchestration
- Web build sample folder with ready-to-deploy configurations
- Improved documentation structure with visual setup guides
- Better separation between web and IDE workflows
### New Capabilities
- Single agent interface (`/help` command system)
- Brainstorming and ideation support
- Integrated method explanation within the agent itself
- Cross-platform consistency (Gemini Gems, Custom GPTs)
[View V3 Branch](https://github.com/bmad-code-org/BMAD-METHOD/tree/V3)
## [v2.0.0](https://github.com/bmad-code-org/BMAD-METHOD/releases/tag/v2.0.0)
**Release: April 17, 2025**
Version 2 addressed the major shortcomings of V1 by introducing separation of concerns and quality validation mechanisms.
### Major Improvements
- **Template Separation**: Templates decoupled from agent definitions for greater flexibility
- **Quality Checklists**: Advanced elicitation checklists to validate document quality
- **Web Agent Discovery**: Recognition of Gemini Gems and Custom GPTs power for structured planning
- **Granular Web Agents**: Simplified, clearly-defined agent roles optimized for web platforms
- **Installer**: A project installer that copied the correct files to a folder at the destination
### Key Features
- Separated template files from agent personas
- Introduced forced validation rounds through checklists
- Cost-effective structured planning workflow using web platforms
- Self-contained agent personas with external template references
### Known Issues
- Duplicate templates/checklists for web vs IDE versions
- Manual export/import workflow between agents
- Creating each web agent separately was tedious
[View V2 Branch](https://github.com/bmad-code-org/BMAD-METHOD/tree/V2)
## [v1.0.0](https://github.com/bmad-code-org/BMAD-METHOD/releases/tag/v1.0.0)
**Initial Release: April 6, 2025**
The original BMAD Method was a tech demo showcasing how different custom agile personas could be used to build out artifacts for planning and executing complex applications from scratch. This initial version established the foundation of the AI-driven agile development approach.
### Key Features
- Introduction of specialized AI agent personas (PM, Architect, Developer, etc.)
- Template-based document generation for planning artifacts
- Emphasis on planning MVP scope with sufficient detail to guide developer agents
- Hard-coded custom mode prompts integrated directly into agent configurations
- The OG of Context Engineering in a structured way
### Limitations
- Limited customization options
- Web usage was complicated and not well-documented
- Rigid scope and purpose with templates coupled to agents
- Not optimized for IDE integration
[View V1 Branch](https://github.com/bmad-code-org/BMAD-METHOD/tree/V1)
## Installation
```bash
npx bmad-method
```
For detailed release notes, see the [GitHub releases page](https://github.com/bmad-code-org/BMAD-METHOD/releases).
================================================
FILE: CNAME
================================================
docs.bmad-method.org
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to BMad
Thank you for considering contributing! We believe in **Human Amplification, Not Replacement** — bringing out the best thinking in both humans and AI through guided collaboration.
💬 **Discord**: [Join our community](https://discord.gg/gk8jAdXWmj) for real-time discussions, questions, and collaboration.
---
## Our Philosophy
BMad strengthens human-AI collaboration through specialized agents and guided workflows. Every contribution should answer: **"Does this make humans and AI better together?"**
**✅ What we welcome:**
- Enhanced collaboration patterns and workflows
- Improved agent personas and prompts
- Domain-specific modules leveraging BMad Core
- Better planning and context continuity
**❌ What doesn't fit:**
- Purely automated solutions that sideline humans
- Complexity that creates barriers to adoption
- Features that fragment BMad Core's foundation
---
## Reporting Issues
**ALL bug reports and feature requests MUST go through GitHub Issues.**
### Before Creating an Issue
1. **Search existing issues** — Use the GitHub issue search to check if your bug or feature has already been reported
2. **Search closed issues** — Your issue may have been fixed or addressed previously
3. **Check discussions** — Some conversations happen in [GitHub Discussions](https://github.com/bmad-code-org/BMAD-METHOD/discussions)
### Bug Reports
After searching, if the bug is unreported, use the [bug report template](https://github.com/bmad-code-org/BMAD-METHOD/issues/new?template=bug_report.md) and include:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Your environment (model, IDE, BMad version)
- Screenshots or error messages if applicable
### Feature Requests
After searching, use the [feature request template](https://github.com/bmad-code-org/BMAD-METHOD/issues/new?template=feature_request.md) and explain:
- What the feature is
- Why it would benefit the BMad community
- How it strengthens human-AI collaboration
**For community modules**, review [TRADEMARK.md](TRADEMARK.md) for proper naming conventions (e.g., "My Module (BMad Community Module)").
---
## Before Starting Work
⚠️ **Required before submitting PRs:**
| Work Type | Requirement |
| ------------- | ---------------------------------------------- |
| Bug fix | An open issue (create one if it doesn't exist) |
| Feature | An open feature request issue |
| Large changes | Discussion via issue first |
**Why?** This prevents wasted effort on work that may not align with project direction.
---
## Pull Request Guidelines
### Target Branch
Submit PRs to the `main` branch. We use trunk-based development. Every push to `main` auto-publishes to `npm` under the `next` tag. Stable releases are cut ~weekly to the `latest` tag.
### PR Size
- **Ideal**: 200-400 lines of code changes
- **Maximum**: 800 lines (excluding generated files)
- **One feature/fix per PR**
If your change exceeds 800 lines, break it into smaller PRs that can be reviewed independently.
### New to Pull Requests?
1. **Fork** the repository
2. **Clone** your fork: `git clone https://github.com/YOUR-USERNAME/bmad-method.git`
3. **Create a branch**: `git checkout -b fix/description` or `git checkout -b feature/description`
4. **Make changes** — keep them focused
5. **Commit**: `git commit -m "fix: correct typo in README"`
6. **Push**: `git push origin fix/description`
7. **Open PR** from your fork on GitHub
### PR Description Template
```markdown
## What
[1-2 sentences describing WHAT changed]
## Why
[1-2 sentences explaining WHY this change is needed]
Fixes #[issue number]
## How
- [2-3 bullets listing HOW you implemented it]
-
## Testing
[1-2 sentences on how you tested this]
```
**Keep it under 200 words.**
### Commit Messages
Use conventional commits:
- `feat:` New feature
- `fix:` Bug fix
- `docs:` Documentation only
- `refactor:` Code change (no bug/feature)
- `test:` Adding tests
- `chore:` Build/tools changes
Keep messages under 72 characters. Each commit = one logical change.
---
## What Makes a Good PR?
| ✅ Do | ❌ Don't |
| --------------------------- | ---------------------------- |
| Change one thing per PR | Mix unrelated changes |
| Clear title and description | Vague or missing explanation |
| Reference related issues | Reformat entire files |
| Small, focused commits | Copy your whole project |
| Work on a branch | Work directly on `main` |
---
## Prompt & Agent Guidelines
- Keep dev agents lean — focus on coding context, not documentation
- Web/planning agents can be larger with complex tasks
- Everything is natural language (markdown) — no code in core framework
- Use BMad modules for domain-specific features
- Validate file references: `npm run validate:refs`
### File-Pattern-to-Validator Mapping
| File Pattern | Validator | Extraction Function |
| ------------ | --------- | ------------------- |
| `*.yaml`, `*.yml` | `validate-file-refs.js` | `extractYamlRefs` |
| `*.md`, `*.xml` | `validate-file-refs.js` | `extractMarkdownRefs` |
| `*.csv` | `validate-file-refs.js` | `extractCsvRefs` |
---
## Need Help?
- 💬 **Discord**: [Join the community](https://discord.gg/gk8jAdXWmj)
- 🐛 **Bugs**: Use the [bug report template](https://github.com/bmad-code-org/BMAD-METHOD/issues/new?template=bug_report.md)
- 💡 **Features**: Use the [feature request template](https://github.com/bmad-code-org/BMAD-METHOD/issues/new?template=feature_request.md)
---
## Code of Conduct
By participating, you agree to abide by our [Code of Conduct](.github/CODE_OF_CONDUCT.md).
## License
By contributing, your contributions are licensed under the same MIT License. See [CONTRIBUTORS.md](CONTRIBUTORS.md) for contributor attribution.
================================================
FILE: CONTRIBUTORS.md
================================================
# Contributors
BMad Core, BMad Method and BMad and Community BMad Modules are made possible by contributions from our community. We gratefully acknowledge everyone who has helped improve this project.
## How We Credit Contributors
- **Git history** — Every contribution is preserved in the project's commit history
- **Contributors badge** — See the dynamic contributors list on our [README](README.md)
- **GitHub contributors graph** — Visual representation at <https://github.com/bmad-code-org/BMAD-METHOD/graphs/contributors>
## Becoming a Contributor
Anyone who submits a pull request that is merged becomes a contributor. Contributions include:
- Bug fixes
- New features or workflows
- Documentation improvements
- Bug reports and issue triaging
- Code reviews
- Helping others in discussions
There are no minimum contribution requirements — whether it's a one-character typo fix or a major feature, we value all contributions.
## Copyright
The BMad Method project is copyrighted by BMad Code, LLC. Individual contributions are licensed under the same MIT License as the project. Contributors retain authorship credit through Git history and the contributors graph.
---
**Thank you to everyone who has helped make BMad Method better!**
For contribution guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2025 BMad Code, LLC
This project incorporates contributions from the open source community.
See [CONTRIBUTORS.md](CONTRIBUTORS.md) for contributor attribution.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
TRADEMARK NOTICE:
BMad™, BMad Method™, and BMad Core™ are trademarks of BMad Code, LLC, covering all
casings and variations (including BMAD, bmad, BMadMethod, BMAD-METHOD, etc.). The use of
these trademarks in this software does not grant any rights to use the trademarks
for any other purpose. See [TRADEMARK.md](TRADEMARK.md) for detailed guidelines.
================================================
FILE: README.md
================================================

[](https://www.npmjs.com/package/bmad-method)
[](LICENSE)
[](https://nodejs.org)
[](https://discord.gg/gk8jAdXWmj)
**Build More Architect Dreams** — An AI-driven agile development module for the BMad Method Module Ecosystem, the best and most comprehensive Agile AI Driven Development framework that has true scale-adaptive intelligence that adjusts from bug fixes to enterprise systems.
**100% free and open source.** No paywalls. No gated content. No gated Discord. We believe in empowering everyone, not just those who can pay for a gated community or courses.
## Why the BMad Method?
Traditional AI tools do the thinking for you, producing average results. BMad agents and facilitated workflows act as expert collaborators who guide you through a structured process to bring out your best thinking in partnership with the AI.
- **AI Intelligent Help** — Invoke the `bmad-help` skill anytime for guidance on what's next
- **Scale-Domain-Adaptive** — Automatically adjusts planning depth based on project complexity
- **Structured Workflows** — Grounded in agile best practices across analysis, planning, architecture, and implementation
- **Specialized Agents** — 12+ domain experts (PM, Architect, Developer, UX, Scrum Master, and more)
- **Party Mode** — Bring multiple agent personas into one session to collaborate and discuss
- **Complete Lifecycle** — From brainstorming to deployment
[Learn more at **docs.bmad-method.org**](https://docs.bmad-method.org)
---
## 🚀 What's Next for BMad?
**V6 is here and we're just getting started!** The BMad Method is evolving rapidly with optimizations including Cross Platform Agent Team and Sub Agent inclusion, Skills Architecture, BMad Builder v1, Dev Loop Automation, and so much more in the works.
**[📍 Check out the complete Roadmap →](https://docs.bmad-method.org/roadmap/)**
---
## Quick Start
**Prerequisites**: [Node.js](https://nodejs.org) v20+
```bash
npx bmad-method install
```
> Want the newest prerelease build? Use `npx bmad-method@next install`. Expect higher churn than the default install.
Follow the installer prompts, then open your AI IDE (Claude Code, Cursor, etc.) in your project folder.
**Non-Interactive Installation** (for CI/CD):
```bash
npx bmad-method install --directory /path/to/project --modules bmm --tools claude-code --yes
```
[See all installation options](https://docs.bmad-method.org/how-to/non-interactive-installation/)
> **Not sure what to do?** Ask `bmad-help` — it tells you exactly what's next and what's optional. You can also ask questions like `bmad-help I just finished the architecture, what do I do next?`
## Modules
BMad Method extends with official modules for specialized domains. Available during installation or anytime after.
| Module | Purpose |
| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
| **[BMad Method (BMM)](https://github.com/bmad-code-org/BMAD-METHOD)** | Core framework with 34+ workflows |
| **[BMad Builder (BMB)](https://github.com/bmad-code-org/bmad-builder)** | Create custom BMad agents and workflows |
| **[Test Architect (TEA)](https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise)** | Risk-based test strategy and automation |
| **[Game Dev Studio (BMGD)](https://github.com/bmad-code-org/bmad-module-game-dev-studio)** | Game development workflows (Unity, Unreal, Godot) |
| **[Creative Intelligence Suite (CIS)](https://github.com/bmad-code-org/bmad-module-creative-intelligence-suite)** | Innovation, brainstorming, design thinking |
## Documentation
[BMad Method Docs Site](https://docs.bmad-method.org) — Tutorials, guides, concepts, and reference
**Quick links:**
- [Getting Started Tutorial](https://docs.bmad-method.org/tutorials/getting-started/)
- [Upgrading from Previous Versions](https://docs.bmad-method.org/how-to/upgrade-to-v6/)
- [Test Architect Documentation](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/)
## Community
- [Discord](https://discord.gg/gk8jAdXWmj) — Get help, share ideas, collaborate
- [Subscribe on YouTube](https://www.youtube.com/@BMadCode) — Tutorials, master class, and podcast (launching Feb 2025)
- [GitHub Issues](https://github.com/bmad-code-org/BMAD-METHOD/issues) — Bug reports and feature requests
- [Discussions](https://github.com/bmad-code-org/BMAD-METHOD/discussions) — Community conversations
## Support BMad
BMad is free for everyone — and always will be. If you'd like to support development:
- ⭐ Please click the star project icon near the top right of this page
- ☕ [Buy Me a Coffee](https://buymeacoffee.com/bmad) — Fuel the development
- 🏢 Corporate sponsorship — DM on Discord
- 🎤 Speaking & Media — Available for conferences, podcasts, interviews (BM on Discord)
## Contributing
We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
## License
MIT License — see [LICENSE](LICENSE) for details.
---
**BMad** and **BMAD-METHOD** are trademarks of BMad Code, LLC. See [TRADEMARK.md](TRADEMARK.md) for details.
[](https://github.com/bmad-code-org/BMAD-METHOD/graphs/contributors)
See [CONTRIBUTORS.md](CONTRIBUTORS.md) for contributor information.
================================================
FILE: README_CN.md
================================================

[](https://www.npmjs.com/package/bmad-method)
[](LICENSE)
[](https://nodejs.org)
[](https://discord.gg/gk8jAdXWmj)
**突破性敏捷 AI 驱动开发方法** — 简称 “BMAD 方法论” ,BMAD方法论是由多个模块生态构成的AI驱动敏捷开发模块系统,这是最佳且最全面的敏捷 AI 驱动开发框架,具备真正的规模自适应人工智能,可适应快速开发,适应企业规模化开发。
**100% 免费且开源。** 无付费。无内容门槛。无封闭 Discord。我们赋能每个人,我们将为全球现在在人工智能领域发展的普通人提供公平的学习机会。
## 为什么选择 BMad 方法?
传统 AI 工具替你思考,产生平庸的结果。BMad 智能体和辅助工作流充当专家协作者,引导你通过结构化流程,与 AI 的合作发挥最佳思维,产出最有效优秀的结果。
- **AI 智能帮助** — 随时使用 `bmad-help` 获取下一步指导
- **规模-领域自适应** — 根据项目复杂度自动调整规划深度
- **结构化工作流** — 基于分析、规划、架构和实施的敏捷最佳实践
- **专业智能体** — 12+ 领域专家(PM、架构师、开发者、UX、Scrum Master 等)
- **派对模式** — 将多个智能体角色带入一个会话进行协作和讨论
- **完整生命周期** — 从想法开始(头脑风暴)到部署发布
[在 **docs.bmad-method.org** 了解更多](https://docs.bmad-method.org/zh-cn/)
---
## 🚀 BMad 的下一步是什么?
**V6 已到来,我们才刚刚开始!** BMad 方法正在快速发展,包括跨平台智能体团队和子智能体集成、技能架构、BMad Builder v1、开发循环自动化等优化,以及更多正在开发中的功能。
**[📍 查看完整路线图 →](https://docs.bmad-method.org/zh-cn/roadmap/)**
---
## 快速开始
**先决条件**:[Node.js](https://nodejs.org) v20+
```bash
npx bmad-method install
```
> 想要最新的预发布版本?使用 `npx bmad-method@next install`。相比默认安装,可能会有更多变更。
按照安装程序提示操作,然后在项目文件夹中打开你的 AI IDE(Claude Code、Cursor 等)。
**非交互式安装**(用于 CI/CD):
```bash
npx bmad-method install --directory /path/to/project --modules bmm --tools claude-code --yes
```
[查看非交互式安装选项](https://docs.bmad-method.org/zh-cn/how-to/non-interactive-installation/)
> **不确定该做什么?** 运行 `bmad-help` — 它会准确告诉你下一步做什么以及什么是可选的。你也可以问诸如 `bmad-help 我刚刚完成了架构设计,接下来该做什么?` 之类的问题。
## 模块
BMad 方法通过官方模块扩展到专业领域。可在安装期间或之后的任何时间使用。
| Module | Purpose |
| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
| **[BMad Method (BMM)](https://github.com/bmad-code-org/BMAD-METHOD)** | 包含 34+ 工作流的核心框架 |
| **[BMad Builder (BMB)](https://github.com/bmad-code-org/bmad-builder)** | 创建自定义 BMad 智能体和工作流 |
| **[Test Architect (TEA)](https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise)** | 基于风险的测试策略和自动化 |
| **[Game Dev Studio (BMGD)](https://github.com/bmad-code-org/bmad-module-game-dev-studio)** | 游戏开发工作流(Unity、Unreal、Godot) |
| **[Creative Intelligence Suite (CIS)](https://github.com/bmad-code-org/bmad-module-creative-intelligence-suite)** | 创新、头脑风暴、设计思维 |
## 文档
[BMad 方法文档站点](https://docs.bmad-method.org/zh-cn/) — 教程、指南、概念和参考
**快速链接:**
- [入门教程](https://docs.bmad-method.org/zh-cn/tutorials/getting-started/)
- [从先前版本升级](https://docs.bmad-method.org/zh-cn/how-to/upgrade-to-v6/)
- [测试架构师文档(英文)](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/)
## 社区
- [Discord](https://discord.gg/gk8jAdXWmj) — 获取帮助、分享想法、协作
- [在 YouTube 上订阅](https://www.youtube.com/@BMadCode) — 教程、大师课和播客(2025 年 2 月推出)
- [GitHub Issues](https://github.com/bmad-code-org/BMAD-METHOD/issues) — 错误报告和功能请求
- [讨论](https://github.com/bmad-code-org/BMAD-METHOD/discussions) — 社区对话
## 支持 BMad
BMad 对每个人都是免费的 — 并且永远如此。如果你想支持开发:
- ⭐ 请点击此页面右上角附近的项目星标图标
- ☕ [请我喝咖啡](https://buymeacoffee.com/bmad) — 为开发提供动力
- 🏢 企业赞助 — 在 Discord 上私信
- 🎤 演讲与媒体 — 可参加会议、播客、采访(在 Discord 上联系 BM)
## 贡献
我们欢迎贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解指南。
## 许可证
MIT 许可证 — 详见 [LICENSE](LICENSE)。
---
**BMad** 和 **BMAD-METHOD** 是 BMad Code, LLC 的商标。详见 [TRADEMARK.md](TRADEMARK.md)。
[](https://github.com/bmad-code-org/BMAD-METHOD/graphs/contributors)
请参阅 [CONTRIBUTORS.md](CONTRIBUTORS.md) 了解贡献者信息。
---
## 术语说明
- **agent**:智能体。在人工智能与编程文档中,指具备自主决策或执行能力的单元。
- **workflow**:工作流。指一系列有序的任务或步骤,用于完成特定目标。
- **CI/CD**:持续集成/持续部署。一种自动化软件开发实践,用于频繁集成代码更改并自动部署。
- **IDE**:集成开发环境。提供代码编辑、调试、构建等功能的软件开发工具。
- **PM**:产品经理。负责产品规划、需求管理和团队协调的角色。
- **UX**:用户体验。指用户在使用产品或服务过程中的整体感受和交互体验。
- **Scrum Master**:Scrum 主管。敏捷开发 Scrum 框架中的角色,负责促进团队遵循 Scrum 流程。
- **PRD**:产品需求文档。详细描述产品功能、需求和规格的文档。
================================================
FILE: SECURITY.md
================================================
# Security Policy
## Supported Versions
We release security patches for the following versions:
| Version | Supported |
| ------- | ------------------ |
| Latest | :white_check_mark: |
| < Latest | :x: |
We recommend always using the latest version of BMad Method to ensure you have the most recent security updates.
## Reporting a Vulnerability
We take security vulnerabilities seriously. If you discover a security issue, please report it responsibly.
### How to Report
**Do NOT report security vulnerabilities through public GitHub issues.**
Instead, please report them via one of these methods:
1. **GitHub Security Advisories** (Preferred): Use [GitHub's private vulnerability reporting](https://github.com/bmad-code-org/BMAD-METHOD/security/advisories/new) to submit a confidential report.
2. **Discord**: Contact a maintainer directly via DM on our [Discord server](https://discord.gg/gk8jAdXWmj).
### What to Include
Please include as much of the following information as possible:
- Type of vulnerability (e.g., prompt injection, path traversal, etc.)
- Full paths of source file(s) related to the vulnerability
- Step-by-step instructions to reproduce the issue
- Proof-of-concept or exploit code (if available)
- Impact assessment of the vulnerability
### Response Timeline
- **Initial Response**: Within 48 hours of receiving your report
- **Status Update**: Within 7 days with our assessment
- **Resolution Target**: Critical issues within 30 days; other issues within 90 days
### What to Expect
1. We will acknowledge receipt of your report
2. We will investigate and validate the vulnerability
3. We will work on a fix and coordinate disclosure timing with you
4. We will credit you in the security advisory (unless you prefer to remain anonymous)
## Security Scope
### In Scope
- Vulnerabilities in BMad Method core framework code
- Security issues in agent definitions or workflows that could lead to unintended behavior
- Path traversal or file system access issues
- Prompt injection vulnerabilities that bypass intended agent behavior
- Supply chain vulnerabilities in dependencies
### Out of Scope
- Security issues in user-created custom agents or modules
- Vulnerabilities in third-party AI providers (Claude, GPT, etc.)
- Issues that require physical access to a user's machine
- Social engineering attacks
- Denial of service attacks that don't exploit a specific vulnerability
## Security Best Practices for Users
When using BMad Method:
1. **Review Agent Outputs**: Always review AI-generated code before executing it
2. **Limit File Access**: Configure your AI IDE to limit file system access where possible
3. **Keep Updated**: Regularly update to the latest version
4. **Validate Dependencies**: Review any dependencies added by generated code
5. **Environment Isolation**: Consider running AI-assisted development in isolated environments
## Acknowledgments
We appreciate the security research community's efforts in helping keep BMad Method secure. Contributors who report valid security issues will be acknowledged in our security advisories.
---
Thank you for helping keep BMad Method and our community safe.
================================================
FILE: TRADEMARK.md
================================================
# Trademark Notice & Guidelines
## Trademark Ownership
The following names and logos are trademarks of BMad Code, LLC:
- **BMad** (word mark, all casings: BMad, bmad, BMAD)
- **BMad Method** (word mark, includes BMadMethod, BMAD-METHOD, and all variations)
- **BMad Core** (word mark, includes BMadCore, BMAD-CORE, and all variations)
- **BMad Code** (word mark)
- BMad Method logo and visual branding
- The "Build More, Architect Dreams" tagline
**All casings, stylings, and variations** of the above names (with or without hyphens, spaces, or specific capitalization) are covered by these trademarks.
These trademarks are protected under trademark law and are **not** licensed under the MIT License. The MIT License applies to the software code only, not to the BMad brand identity.
## What This Means
You may:
- Use the BMad software under the terms of the MIT License
- Refer to BMad to accurately describe compatibility or integration (e.g., "Compatible with BMad Method v6")
- Link to <https://github.com/bmad-code-org/BMAD-METHOD>
- Fork the software and distribute your own version under a different name
You may **not**:
- Use "BMad" or any confusingly similar variation as your product name, service name, company name, or domain name
- Present your product as officially endorsed, approved, or certified by BMad Code, LLC when it is not, without written consent from an authorized representative of BMad Code, LLC
- Use BMad logos or branding in a way that suggests your product is an official or endorsed BMad product
- Register domain names, social media handles, or trademarks that incorporate BMad branding
## Examples
| Permitted | Not Permitted |
| ------------------------------------------------------ | -------------------------------------------- |
| "My workflow tool, compatible with BMad Method" | "BMadFlow" or "BMad Studio" |
| "An alternative implementation inspired by BMad" | "BMad Pro" or "BMad Enterprise" |
| "My Awesome Healthcare Module (Bmad Community Module)" | "The Official BMad Core Healthcare Module" |
| Accurately stating you use BMad as a dependency | Implying official endorsement or partnership |
## Commercial Use
You may sell products that incorporate or work with BMad software. However:
- Your product must have its own distinct name and branding
- You must not use BMad trademarks in your marketing, domain names, or product identity
- You may truthfully describe technical compatibility (e.g., "Works with BMad Method")
## Questions?
If you have questions about trademark usage or would like to discuss official partnership or endorsement opportunities, please reach out:
- **Email**: <contact@bmadcode.com>
================================================
FILE: docs/404.md
================================================
---
title: Page Not Found
template: splash
---
The page you're looking for doesn't exist or has been moved.
[Return to Home](./index.md)
================================================
FILE: docs/_STYLE_GUIDE.md
================================================
---
title: "Documentation Style Guide"
description: Project-specific documentation conventions based on Google style and Diataxis structure
---
This project adheres to the [Google Developer Documentation Style Guide](https://developers.google.com/style) and uses [Diataxis](https://diataxis.fr/) to structure content. Only project-specific conventions follow.
## Project-Specific Rules
| Rule | Specification |
| -------------------------------- | ---------------------------------------- |
| No horizontal rules (`---`) | Fragments reading flow |
| No `####` headers | Use bold text or admonitions instead |
| No "Related" or "Next:" sections | Sidebar handles navigation |
| No deeply nested lists | Break into sections instead |
| No code blocks for non-code | Use admonitions for dialogue examples |
| No bold paragraphs for callouts | Use admonitions instead |
| 1-2 admonitions per section max | Tutorials allow 3-4 per major section |
| Table cells / list items | 1-2 sentences max |
| Header budget | 8-12 `##` per doc; 2-3 `###` per section |
## Admonitions (Starlight Syntax)
```md
:::tip[Title]
Shortcuts, best practices
:::
:::note[Title]
Context, definitions, examples, prerequisites
:::
:::caution[Title]
Caveats, potential issues
:::
:::danger[Title]
Critical warnings only — data loss, security issues
:::
```
### Standard Uses
| Admonition | Use For |
| ------------------------ | ----------------------------- |
| `:::note[Prerequisites]` | Dependencies before starting |
| `:::tip[Quick Path]` | TL;DR summary at document top |
| `:::caution[Important]` | Critical caveats |
| `:::note[Example]` | Command/response examples |
## Standard Table Formats
**Phases:**
```md
| Phase | Name | What Happens |
| ----- | -------- | -------------------------------------------- |
| 1 | Analysis | Brainstorm, research *(optional)* |
| 2 | Planning | Requirements — PRD or tech-spec *(required)* |
```
**Skills:**
```md
| Skill | Agent | Purpose |
| ------------ | ------- | ------------------------------------ |
| `bmad-brainstorming` | Analyst | Brainstorm a new project |
| `bmad-create-prd` | PM | Create Product Requirements Document |
```
## Folder Structure Blocks
Show in "What You've Accomplished" sections:
````md
```
your-project/
├── _bmad/ # BMad configuration
├── _bmad-output/
│ ├── planning-artifacts/
│ │ └── PRD.md # Your requirements document
│ ├── implementation-artifacts/
│ └── project-context.md # Implementation rules (optional)
└── ...
```
````
## Tutorial Structure
```text
1. Title + Hook (1-2 sentences describing outcome)
2. Version/Module Notice (info or warning admonition) (optional)
3. What You'll Learn (bullet list of outcomes)
4. Prerequisites (info admonition)
5. Quick Path (tip admonition - TL;DR summary)
6. Understanding [Topic] (context before steps - tables for phases/agents)
7. Installation (optional)
8. Step 1: [First Major Task]
9. Step 2: [Second Major Task]
10. Step 3: [Third Major Task]
11. What You've Accomplished (summary + folder structure)
12. Quick Reference (skills table)
13. Common Questions (FAQ format)
14. Getting Help (community links)
15. Key Takeaways (tip admonition)
```
### Tutorial Checklist
- [ ] Hook describes outcome in 1-2 sentences
- [ ] "What You'll Learn" section present
- [ ] Prerequisites in admonition
- [ ] Quick Path TL;DR admonition at top
- [ ] Tables for phases, skills, agents
- [ ] "What You've Accomplished" section present
- [ ] Quick Reference table present
- [ ] Common Questions section present
- [ ] Getting Help section present
- [ ] Key Takeaways admonition at end
## How-To Structure
```text
1. Title + Hook (one sentence: "Use the `X` workflow to...")
2. When to Use This (bullet list of scenarios)
3. When to Skip This (optional)
4. Prerequisites (note admonition)
5. Steps (numbered ### subsections)
6. What You Get (output/artifacts produced)
7. Example (optional)
8. Tips (optional)
9. Next Steps (optional)
```
### How-To Checklist
- [ ] Hook starts with "Use the `X` workflow to..."
- [ ] "When to Use This" has 3-5 bullet points
- [ ] Prerequisites listed
- [ ] Steps are numbered `###` subsections with action verbs
- [ ] "What You Get" describes output artifacts
## Explanation Structure
### Types
| Type | Example |
| ----------------- | ----------------------------- |
| **Index/Landing** | `core-concepts/index.md` |
| **Concept** | `what-are-agents.md` |
| **Feature** | `quick-dev.md` |
| **Philosophy** | `why-solutioning-matters.md` |
| **FAQ** | `established-projects-faq.md` |
### General Template
```text
1. Title + Hook (1-2 sentences)
2. Overview/Definition (what it is, why it matters)
3. Key Concepts (### subsections)
4. Comparison Table (optional)
5. When to Use / When Not to Use (optional)
6. Diagram (optional - mermaid, 1 per doc max)
7. Next Steps (optional)
```
### Index/Landing Pages
```text
1. Title + Hook (one sentence)
2. Content Table (links with descriptions)
3. Getting Started (numbered list)
4. Choose Your Path (optional - decision tree)
```
### Concept Explainers
```text
1. Title + Hook (what it is)
2. Types/Categories (### subsections) (optional)
3. Key Differences Table
4. Components/Parts
5. Which Should You Use?
6. Creating/Customizing (pointer to how-to guides)
```
### Feature Explainers
```text
1. Title + Hook (what it does)
2. Quick Facts (optional - "Perfect for:", "Time to:")
3. When to Use / When Not to Use
4. How It Works (mermaid diagram optional)
5. Key Benefits
6. Comparison Table (optional)
7. When to Graduate/Upgrade (optional)
```
### Philosophy/Rationale Documents
```text
1. Title + Hook (the principle)
2. The Problem
3. The Solution
4. Key Principles (### subsections)
5. Benefits
6. When This Applies
```
### Explanation Checklist
- [ ] Hook states what document explains
- [ ] Content in scannable `##` sections
- [ ] Comparison tables for 3+ options
- [ ] Diagrams have clear labels
- [ ] Links to how-to guides for procedural questions
- [ ] 2-3 admonitions max per document
## Reference Structure
### Types
| Type | Example |
| ----------------- | --------------------- |
| **Index/Landing** | `workflows/index.md` |
| **Catalog** | `agents/index.md` |
| **Deep-Dive** | `document-project.md` |
| **Configuration** | `core-tasks.md` |
| **Glossary** | `glossary/index.md` |
| **Comprehensive** | `bmgd-workflows.md` |
### Reference Index Pages
```text
1. Title + Hook (one sentence)
2. Content Sections (## for each category)
- Bullet list with links and descriptions
```
### Catalog Reference
```text
1. Title + Hook
2. Items (## for each item)
- Brief description (one sentence)
- **Skills:** or **Key Info:** as flat list
3. Universal/Shared (## section) (optional)
```
### Item Deep-Dive Reference
```text
1. Title + Hook (one sentence purpose)
2. Quick Facts (optional note admonition)
- Module, Skill, Input, Output as list
3. Purpose/Overview (## section)
4. How to Invoke (code block)
5. Key Sections (## for each aspect)
- Use ### for sub-options
6. Notes/Caveats (tip or caution admonition)
```
### Configuration Reference
```text
1. Title + Hook
2. Table of Contents (jump links if 4+ items)
3. Items (## for each config/task)
- **Bold summary** — one sentence
- **Use it when:** bullet list
- **How it works:** numbered steps (3-5 max)
- **Output:** expected result (optional)
```
### Comprehensive Reference Guide
```text
1. Title + Hook
2. Overview (## section)
- Diagram or table showing organization
3. Major Sections (## for each phase/category)
- Items (### for each item)
- Standardized fields: Skill, Agent, Input, Output, Description
4. Next Steps (optional)
```
### Reference Checklist
- [ ] Hook states what document references
- [ ] Structure matches reference type
- [ ] Items use consistent structure throughout
- [ ] Tables for structured/comparative data
- [ ] Links to explanation docs for conceptual depth
- [ ] 1-2 admonitions max
## Glossary Structure
Starlight generates right-side "On this page" navigation from headers:
- Categories as `##` headers — appear in right nav
- Terms in tables — compact rows, not individual headers
- No inline TOC — right sidebar handles navigation
### Table Format
```md
## Category Name
| Term | Definition |
| ------------ | ---------------------------------------------------------------------------------------- |
| **Agent** | Specialized AI persona with specific expertise that guides users through workflows. |
| **Workflow** | Multi-step guided process that orchestrates AI agent activities to produce deliverables. |
```
### Definition Rules
| Do | Don't |
| ----------------------------- | ------------------------------------------- |
| Start with what it IS or DOES | Start with "This is..." or "A [term] is..." |
| Keep to 1-2 sentences | Write multi-paragraph explanations |
| Bold term name in cell | Use plain text for terms |
### Context Markers
Add italic context at definition start for limited-scope terms:
- `*Quick Flow only.*`
- `*BMad Method/Enterprise.*`
- `*Phase N.*`
- `*BMGD.*`
- `*Established projects.*`
### Glossary Checklist
- [ ] Terms in tables, not individual headers
- [ ] Terms alphabetized within categories
- [ ] Definitions 1-2 sentences
- [ ] Context markers italicized
- [ ] Term names bolded in cells
- [ ] No "A [term] is..." definitions
## FAQ Sections
```md
## Questions
- [Do I always need architecture?](#do-i-always-need-architecture)
- [Can I change my plan later?](#can-i-change-my-plan-later)
### Do I always need architecture?
Only for BMad Method and Enterprise tracks. Quick Flow skips to implementation.
### Can I change my plan later?
Yes. The SM agent has a `bmad-correct-course` workflow for handling scope changes.
**Have a question not answered here?** [Open an issue](...) or ask in [Discord](...).
```
## Validation Commands
Before submitting documentation changes:
```bash
npm run docs:fix-links # Preview link format fixes
npm run docs:fix-links -- --write # Apply fixes
npm run docs:validate-links # Check links exist
npm run docs:build # Verify no build errors
```
================================================
FILE: docs/explanation/advanced-elicitation.md
================================================
---
title: "Advanced Elicitation"
description: Push the LLM to rethink its work using structured reasoning methods
sidebar:
order: 6
---
Make the LLM reconsider what it just generated. You pick a reasoning method, it applies that method to its own output, you decide whether to keep the improvements.
## What is Advanced Elicitation?
A structured second pass. Instead of asking the AI to "try again" or "make it better," you select a specific reasoning method and the AI re-examines its own output through that lens.
The difference matters. Vague requests produce vague revisions. A named method forces a particular angle of attack, surfacing insights that a generic retry would miss.
## When to Use It
- After a workflow generates content and you want alternatives
- When output seems okay but you suspect there's more depth
- To stress-test assumptions or find weaknesses
- For high-stakes content where rethinking helps
Workflows offer advanced elicitation at decision points - after the LLM has generated something, you'll be asked if you want to run it.
## How It Works
1. LLM suggests 5 relevant methods for your content
2. You pick one (or reshuffle for different options)
3. Method is applied, improvements shown
4. Accept or discard, repeat or continue
## Built-in Methods
Dozens of reasoning methods are available. A few examples:
- **Pre-mortem Analysis** - Assume the project already failed, work backward to find why
- **First Principles Thinking** - Strip away assumptions, rebuild from ground truth
- **Inversion** - Ask how to guarantee failure, then avoid those things
- **Red Team vs Blue Team** - Attack your own work, then defend it
- **Socratic Questioning** - Challenge every claim with "why?" and "how do you know?"
- **Constraint Removal** - Drop all constraints, see what changes, add them back selectively
- **Stakeholder Mapping** - Re-evaluate from each stakeholder's perspective
- **Analogical Reasoning** - Find parallels in other domains and apply their lessons
And many more. The AI picks the most relevant options for your content - you choose which to run.
:::tip[Start Here]
Pre-mortem Analysis is a good first pick for any spec or plan. It consistently finds gaps that a standard review misses.
:::
================================================
FILE: docs/explanation/adversarial-review.md
================================================
---
title: "Adversarial Review"
description: Forced reasoning technique that prevents lazy "looks good" reviews
sidebar:
order: 5
---
Force deeper analysis by requiring problems to be found.
## What is Adversarial Review?
A review technique where the reviewer *must* find issues. No "looks good" allowed. The reviewer adopts a cynical stance - assume problems exist and find them.
This isn't about being negative. It's about forcing genuine analysis instead of a cursory glance that rubber-stamps whatever was submitted.
**The core rule:** You must find issues. Zero findings triggers a halt - re-analyze or explain why.
## Why It Works
Normal reviews suffer from confirmation bias. You skim the work, nothing jumps out, you approve it. The "find problems" mandate breaks this pattern:
- **Forces thoroughness** - Can't approve until you've looked hard enough to find issues
- **Catches missing things** - "What's not here?" becomes a natural question
- **Improves signal quality** - Findings are specific and actionable, not vague concerns
- **Information asymmetry** - Run reviews with fresh context (no access to original reasoning) so you evaluate the artifact, not the intent
## Where It's Used
Adversarial review appears throughout BMad workflows - code review, implementation readiness checks, spec validation, and others. Sometimes it's a required step, sometimes optional (like advanced elicitation or party mode). The pattern adapts to whatever artifact needs scrutiny.
## Human Filtering Required
Because the AI is *instructed* to find problems, it will find problems - even when they don't exist. Expect false positives: nitpicks dressed as issues, misunderstandings of intent, or outright hallucinated concerns.
**You decide what's real.** Review each finding, dismiss the noise, fix what matters.
## Example
Instead of:
> "The authentication implementation looks reasonable. Approved."
An adversarial review produces:
> 1. **HIGH** - `login.ts:47` - No rate limiting on failed attempts
> 2. **HIGH** - Session token stored in localStorage (XSS vulnerable)
> 3. **MEDIUM** - Password validation happens client-side only
> 4. **MEDIUM** - No audit logging for failed login attempts
> 5. **LOW** - Magic number `3600` should be `SESSION_TIMEOUT_SECONDS`
The first review might miss a security vulnerability. The second caught four.
## Iteration and Diminishing Returns
After addressing findings, consider running it again. A second pass usually catches more. A third isn't always useless either. But each pass takes time, and eventually you hit diminishing returns - just nitpicks and false findings.
:::tip[Better Reviews]
Assume problems exist. Look for what's missing, not just what's wrong.
:::
================================================
FILE: docs/explanation/brainstorming.md
================================================
---
title: "Brainstorming"
description: Interactive creative sessions using 60+ proven ideation techniques
sidebar:
order: 2
---
Unlock your creativity through guided exploration.
## What is Brainstorming?
Run `bmad-brainstorming` and you've got a creative facilitator pulling ideas out of you - not generating them for you. The AI acts as coach and guide, using proven techniques to create conditions where your best thinking emerges.
**Good for:**
- Breaking through creative blocks
- Generating product or feature ideas
- Exploring problems from new angles
- Developing raw concepts into action plans
## How It Works
1. **Setup** - Define topic, goals, constraints
2. **Choose approach** - Pick techniques yourself, get AI recommendations, go random, or follow a progressive flow
3. **Facilitation** - Work through techniques with probing questions and collaborative coaching
4. **Organize** - Ideas grouped into themes and prioritized
5. **Action** - Top ideas get next steps and success metrics
Everything gets captured in a session document you can reference later or share with stakeholders.
:::note[Your Ideas]
Every idea comes from you. The workflow creates conditions for insight - you're the source.
:::
================================================
FILE: docs/explanation/established-projects-faq.md
================================================
---
title: "Established Projects FAQ"
description: Common questions about using BMad Method on established projects
sidebar:
order: 8
---
Quick answers to common questions about working on established projects with the BMad Method (BMM).
## Questions
- [Do I have to run document-project first?](#do-i-have-to-run-document-project-first)
- [What if I forget to run document-project?](#what-if-i-forget-to-run-document-project)
- [Can I use Quick Flow for established projects?](#can-i-use-quick-flow-for-established-projects)
- [What if my existing code doesn't follow best practices?](#what-if-my-existing-code-doesnt-follow-best-practices)
### Do I have to run document-project first?
Highly recommended, especially if:
- No existing documentation
- Documentation is outdated
- AI agents need context about existing code
You can skip it if you have comprehensive, up-to-date documentation including `docs/index.md` or will use other tools or techniques to aid in discovery for the agent to build on an existing system.
### What if I forget to run document-project?
Don't worry about it - you can do it at any time. You can even do it during or after a project to help keep docs up to date.
### Can I use Quick Flow for established projects?
Yes! Quick Flow works great for established projects. It will:
- Auto-detect your existing stack
- Analyze existing code patterns
- Detect conventions and ask for confirmation
- Generate context-rich tech-spec that respects existing code
Perfect for bug fixes and small features in existing codebases.
### What if my existing code doesn't follow best practices?
Quick Flow detects your conventions and asks: "Should I follow these existing conventions?" You decide:
- **Yes** → Maintain consistency with current codebase
- **No** → Establish new standards (document why in tech-spec)
BMM respects your choice — it won't force modernization, but it will offer it.
**Have a question not answered here?** Please [open an issue](https://github.com/bmad-code-org/BMAD-METHOD/issues) or ask in [Discord](https://discord.gg/gk8jAdXWmj) so we can add it!
================================================
FILE: docs/explanation/party-mode.md
================================================
---
title: "Party Mode"
description: Multi-agent collaboration - get all your AI agents in one conversation
sidebar:
order: 7
---
Get all your AI agents in one conversation.
## What is Party Mode?
Run `bmad-party-mode` and you've got your whole AI team in one room - PM, Architect, Dev, UX Designer, whoever you need. BMad Master orchestrates, picking relevant agents per message. Agents respond in character, agree, disagree, and build on each other's ideas.
The conversation continues as long as you want. Ask follow-ups, push back on answers, redirect the discussion - it's a real back-and-forth with your agents until you're done.
**Good for:**
- Big decisions with tradeoffs
- Brainstorming sessions
- Post-mortems when things go wrong
- Sprint retrospectives and planning
## Examples
### Calling Out Bad Architecture
**You:** "Okay team, our last sprint was a disaster. The authentication service went down three times. Who screwed this up?"
**Architect:** "The design was sound - distributed authentication with proper fallbacks. If implementation deviated from the spec..."
**Dev:** "I followed the architecture doc exactly. The spec didn't account for concurrent session invalidation race conditions."
**PM:** "Both of you missed the bigger issue - we didn't validate session management requirements in the PRD. This is on me for not catching it."
**TEA:** "And I should've caught this in integration tests. The test scenarios didn't cover concurrent invalidation."
### Creative Brainstorming
**You:** "How do we make onboarding feel magical instead of boring?"
**UX Designer:** "Start with progressive disclosure - reveal features as users need them, not all at once in a tutorial."
**Storyteller:** "What if onboarding was a story? Each step reveals a character's journey - the user IS the hero."
**Game Designer:** "Building on that - what if the first 'quest' is actually solving a real user problem? They learn by doing something valuable."
### Technical Decision
**You:** "Monolith or microservices for MVP?"
**Architect:** "Start monolith. Microservices add complexity you don't need at 1000 users."
**PM:** "Agree. Time to market matters more than theoretical scalability."
**Dev:** "Monolith with clear module boundaries. We can extract services later if needed."
:::tip[Better Decisions]
Better decisions through diverse perspectives. Welcome to party mode.
:::
================================================
FILE: docs/explanation/preventing-agent-conflicts.md
================================================
---
title: "Preventing Agent Conflicts"
description: How architecture prevents conflicts when multiple agents implement a system
sidebar:
order: 4
---
When multiple AI agents implement different parts of a system, they can make conflicting technical decisions. Architecture documentation prevents this by establishing shared standards.
## Common Conflict Types
### API Style Conflicts
Without architecture:
- Agent A uses REST with `/users/{id}`
- Agent B uses GraphQL mutations
- Result: Inconsistent API patterns, confused consumers
With architecture:
- ADR specifies: "Use GraphQL for all client-server communication"
- All agents follow the same pattern
### Database Design Conflicts
Without architecture:
- Agent A uses snake_case column names
- Agent B uses camelCase column names
- Result: Inconsistent schema, confusing queries
With architecture:
- Standards document specifies naming conventions
- All agents follow the same patterns
### State Management Conflicts
Without architecture:
- Agent A uses Redux for global state
- Agent B uses React Context
- Result: Multiple state management approaches, complexity
With architecture:
- ADR specifies state management approach
- All agents implement consistently
## How Architecture Prevents Conflicts
### 1. Explicit Decisions via ADRs
Every significant technology choice is documented with:
- Context (why this decision matters)
- Options considered (what alternatives exist)
- Decision (what we chose)
- Rationale (why we chose it)
- Consequences (trade-offs accepted)
### 2. FR/NFR-Specific Guidance
Architecture maps each functional requirement to technical approach:
- FR-001: User Management → GraphQL mutations
- FR-002: Mobile App → Optimized queries
### 3. Standards and Conventions
Explicit documentation of:
- Directory structure
- Naming conventions
- Code organization
- Testing patterns
## Architecture as Shared Context
Think of architecture as the shared context that all agents read before implementing:
```text
PRD: "What to build"
↓
Architecture: "How to build it"
↓
Agent A reads architecture → implements Epic 1
Agent B reads architecture → implements Epic 2
Agent C reads architecture → implements Epic 3
↓
Result: Consistent implementation
```
## Key ADR Topics
Common decisions that prevent conflicts:
| Topic | Example Decision |
| ---------------- | -------------------------------------------- |
| API Style | GraphQL vs REST vs gRPC |
| Database | PostgreSQL vs MongoDB |
| Auth | JWT vs Sessions |
| State Management | Redux vs Context vs Zustand |
| Styling | CSS Modules vs Tailwind vs Styled Components |
| Testing | Jest + Playwright vs Vitest + Cypress |
## Anti-Patterns to Avoid
:::caution[Common Mistakes]
- **Implicit Decisions** — "We'll figure out the API style as we go" leads to inconsistency
- **Over-Documentation** — Documenting every minor choice causes analysis paralysis
- **Stale Architecture** — Documents written once and never updated cause agents to follow outdated patterns
:::
:::tip[Correct Approach]
- Document decisions that cross epic boundaries
- Focus on conflict-prone areas
- Update architecture as you learn
- Use `bmad-correct-course` for significant changes
:::
================================================
FILE: docs/explanation/project-context.md
================================================
---
title: "Project Context"
description: How project-context.md guides AI agents with your project's rules and preferences
sidebar:
order: 7
---
The `project-context.md` file is your project's implementation guide for AI agents. Similar to a "constitution" in other development systems, it captures the rules, patterns, and preferences that ensure consistent code generation across all workflows.
## What It Does
AI agents make implementation decisions constantly — which patterns to follow, how to structure code, what conventions to use. Without clear guidance, they may:
- Follow generic best practices that don't match your codebase
- Make inconsistent decisions across different stories
- Miss project-specific requirements or constraints
The `project-context.md` file solves this by documenting what agents need to know in a concise, LLM-optimized format.
## How It Works
Every implementation workflow automatically loads `project-context.md` if it exists. The architect workflow also loads it to respect your technical preferences when designing the architecture.
**Loaded by these workflows:**
- `bmad-create-architecture` — respects technical preferences during solutioning
- `bmad-create-story` — informs story creation with project patterns
- `bmad-dev-story` — guides implementation decisions
- `bmad-code-review` — validates against project standards
- `bmad-quick-dev` — applies patterns when implementing tech-specs
- `bmad-sprint-planning`, `bmad-retrospective`, `bmad-correct-course` — provides project-wide context
## When to Create It
The `project-context.md` file is useful at any stage of a project:
| Scenario | When to Create | Purpose |
|----------|----------------|---------|
| **New project, before architecture** | Manually, before `bmad-create-architecture` | Document your technical preferences so the architect respects them |
| **New project, after architecture** | Via `bmad-generate-project-context` or manually | Capture architecture decisions for implementation agents |
| **Existing project** | Via `bmad-generate-project-context` | Discover existing patterns so agents follow established conventions |
| **Quick Flow project** | Before or during `bmad-quick-dev` | Ensure quick implementation respects your patterns |
:::tip[Recommended]
For new projects, create it manually before architecture if you have strong technical preferences. Otherwise, generate it after architecture to capture those decisions.
:::
## What Goes In It
The file has two main sections:
### Technology Stack & Versions
Documents the frameworks, languages, and tools your project uses with specific versions:
```markdown
## Technology Stack & Versions
- Node.js 20.x, TypeScript 5.3, React 18.2
- State: Zustand (not Redux)
- Testing: Vitest, Playwright, MSW
- Styling: Tailwind CSS with custom design tokens
```
### Critical Implementation Rules
Documents patterns and conventions that agents might otherwise miss:
```markdown
## Critical Implementation Rules
**TypeScript Configuration:**
- Strict mode enabled — no `any` types without explicit approval
- Use `interface` for public APIs, `type` for unions/intersections
**Code Organization:**
- Components in `/src/components/` with co-located `.test.tsx`
- Utilities in `/src/lib/` for reusable pure functions
- API calls use the `apiClient` singleton — never fetch directly
**Testing Patterns:**
- Unit tests focus on business logic, not implementation details
- Integration tests use MSW to mock API responses
- E2E tests cover critical user journeys only
**Framework-Specific:**
- All async operations use the `handleError` wrapper for consistent error handling
- Feature flags accessed via `featureFlag()` from `@/lib/flags`
- New routes follow the file-based routing pattern in `/src/app/`
```
Focus on what's **unobvious** — things agents might not infer from reading code snippets. Don't document standard practices that apply universally.
## Creating the File
You have three options:
### Manual Creation
Create the file at `_bmad-output/project-context.md` and add your rules:
```bash
# In your project root
mkdir -p _bmad-output
touch _bmad-output/project-context.md
```
Edit it with your technology stack and implementation rules. The architect and implementation workflows will automatically find and load it.
### Generate After Architecture
Run the `bmad-generate-project-context` workflow after completing your architecture:
```bash
bmad-generate-project-context
```
This scans your architecture document and project files to generate a context file capturing the decisions made.
### Generate for Existing Projects
For existing projects, run `bmad-generate-project-context` to discover existing patterns:
```bash
bmad-generate-project-context
```
The workflow analyzes your codebase to identify conventions, then generates a context file you can review and refine.
## Why It Matters
Without `project-context.md`, agents make assumptions that may not match your project:
| Without Context | With Context |
|----------------|--------------|
| Uses generic patterns | Follows your established conventions |
| Inconsistent style across stories | Consistent implementation |
| May miss project-specific constraints | Respects all technical requirements |
| Each agent decides independently | All agents align with same rules |
This is especially important for:
- **Quick Flow** — skips PRD and architecture, so context file fills the gap
- **Team projects** — ensures all agents follow the same standards
- **Existing projects** — prevents breaking established patterns
## Editing and Updating
The `project-context.md` file is a living document. Update it when:
- Architecture decisions change
- New conventions are established
- Patterns evolve during implementation
- You identify gaps from agent behavior
You can edit it manually at any time, or re-run `bmad-generate-project-context` to update it after significant changes.
:::note[File Location]
The default location is `_bmad-output/project-context.md`. Workflows search for it there, and also check `**/project-context.md` anywhere in your project.
:::
================================================
FILE: docs/explanation/quick-dev.md
================================================
---
title: "Quick Dev"
description: Reduce human-in-the-loop friction without giving up the checkpoints that protect output quality
sidebar:
order: 2
---
Intent in, code changes out, with as few human-in-the-loop turns as possible — without sacrificing quality.
It lets the model run longer between checkpoints, then brings the human back only when the task cannot safely continue without human judgment or when it is time to review the end result.

## Why This Exists
Human-in-the-loop turns are necessary and expensive.
Current LLMs still fail in predictable ways: they misread intent, fill gaps with confident guesses, drift into unrelated work, and generate noisy review output. At the same time, constant human intervention limits development velocity. Human attention is the bottleneck.
`bmad-quick-dev` rebalances that tradeoff. It trusts the model to run unsupervised for longer stretches, but only after the workflow has created a strong enough boundary to make that safe.
## The Core Design
### 1. Compress intent first
The workflow starts by having the human and the model compress the request into one coherent goal. The input can begin as a rough expression of intent, but before the workflow runs autonomously it has to become small enough, clear enough, and contradiction-free enough to execute.
Intent can come in many forms: a couple of phrases, a bug tracker link, output from plan mode, text copied from a chat session, or even a story number from BMAD's own `epics.md`. In that last case, the workflow will not understand BMAD story-tracking semantics, but it can still take the story itself and run with it.
This workflow does not eliminate human control. It relocates it to a small number of high-value moments:
- **Intent clarification** - turning a messy request into one coherent goal without hidden contradictions
- **Spec approval** - confirming that the frozen understanding is the right thing to build
- **Review of the final product** - the primary checkpoint, where the human decides whether the result is acceptable at the end
### 2. Route to the smallest safe path
Once the goal is clear, the workflow decides whether this is a true one-shot change or whether it needs the fuller path. Small, zero-blast-radius changes can go straight to implementation. Everything else goes through planning so the model has a stronger boundary before it runs longer on its own.
### 3. Run longer with less supervision
After that routing decision, the model can carry more of the work on its own. On the fuller path, the approved spec becomes the boundary the model executes against with less supervision, which is the whole point of the design.
### 4. Diagnose failure at the right layer
If the implementation is wrong because the intent was wrong, patching the code is the wrong fix. If the code is wrong because the spec was weak, patching the diff is also the wrong fix. The workflow is designed to diagnose where the failure entered the system, go back to that layer, and regenerate from there.
Review findings are used to decide whether the problem came from intent, spec generation, or local implementation. Only truly local problems get patched locally.
### 5. Bring the human back only when needed
The intent interview is human-in-the-loop, but it is not the same kind of interruption as a recurring checkpoint. The workflow tries to keep those recurring checkpoints to a minimum. After the initial shaping of intent, the human mainly comes back when the workflow cannot safely continue without judgment and at the end, when it is time to review the result.
- **Intent-gap resolution** - stepping back in when review proves the workflow could not safely infer what was meant
Everything else is a candidate for longer autonomous execution. That tradeoff is deliberate. Older patterns spend more human attention on continuous supervision. Quick Dev spends more trust on the model, but saves human attention for the moments where human reasoning has the highest leverage.
## Why the Review System Matters
The review phase is not just there to find bugs. It is there to route correction without destroying momentum.
This workflow works best on a platform that can spawn subagents, or at least invoke another LLM through the command line and wait for a result. If your platform does not support that natively, you can add a skill to do it. Context-free subagents are a cornerstone of the review design.
Agentic reviews often go wrong in two ways:
- They generate too many findings, forcing the human to sift through noise.
- They derail the current change by surfacing unrelated issues and turning every run into an ad hoc cleanup project.
Quick Dev addresses both by treating review as triage.
Some findings belong to the current change. Some do not. If a finding is incidental rather than causally tied to the current work, the workflow can defer it instead of forcing the human to handle it immediately. That keeps the run focused and prevents random tangents from consuming the budget of attention.
That triage will sometimes be imperfect. That is acceptable. It is usually better to misjudge some findings than to flood the human with thousands of low-value review comments. The system is optimizing for signal quality, not exhaustive recall.
================================================
FILE: docs/explanation/why-solutioning-matters.md
================================================
---
title: "Why Solutioning Matters"
description: Understanding why the solutioning phase is critical for multi-epic projects
sidebar:
order: 3
---
Phase 3 (Solutioning) translates **what** to build (from Planning) into **how** to build it (technical design). This phase prevents agent conflicts in multi-epic projects by documenting architectural decisions before implementation begins.
## The Problem Without Solutioning
```text
Agent 1 implements Epic 1 using REST API
Agent 2 implements Epic 2 using GraphQL
Result: Inconsistent API design, integration nightmare
```
When multiple agents implement different parts of a system without shared architectural guidance, they make independent technical decisions that may conflict.
## The Solution With Solutioning
```text
architecture workflow decides: "Use GraphQL for all APIs"
All agents follow architecture decisions
Result: Consistent implementation, no conflicts
```
By documenting technical decisions explicitly, all agents implement consistently and integration becomes straightforward.
## Solutioning vs Planning
| Aspect | Planning (Phase 2) | Solutioning (Phase 3) |
| -------- | ----------------------- | --------------------------------- |
| Question | What and Why? | How? Then What units of work? |
| Output | FRs/NFRs (Requirements) | Architecture + Epics/Stories |
| Agent | PM | Architect → PM |
| Audience | Stakeholders | Developers |
| Document | PRD (FRs/NFRs) | Architecture + Epic Files |
| Level | Business logic | Technical design + Work breakdown |
## Key Principle
**Make technical decisions explicit and documented** so all agents implement consistently.
This prevents:
- API style conflicts (REST vs GraphQL)
- Database design inconsistencies
- State management disagreements
- Naming convention mismatches
- Security approach variations
## When Solutioning is Required
| Track | Solutioning Required? |
|-------|----------------------|
| Quick Flow | No - skip entirely |
| BMad Method Simple | Optional |
| BMad Method Complex | Yes |
| Enterprise | Yes |
:::tip[Rule of Thumb]
If you have multiple epics that could be implemented by different agents, you need solutioning.
:::
## The Cost of Skipping
Skipping solutioning on complex projects leads to:
- **Integration issues** discovered mid-sprint
- **Rework** due to conflicting implementations
- **Longer development time** overall
- **Technical debt** from inconsistent patterns
:::caution[Cost Multiplier]
Catching alignment issues in solutioning is 10× faster than discovering them during implementation.
:::
================================================
FILE: docs/how-to/customize-bmad.md
================================================
---
title: "How to Customize BMad"
description: Customize agents, workflows, and modules while preserving update compatibility
sidebar:
order: 7
---
Use the `.customize.yaml` files to tailor agent behavior, personas, and menus while preservin
gitextract_oyh4etmw/
├── .augment/
│ └── code_review_guidelines.yaml
├── .coderabbit.yaml
├── .github/
│ ├── CODE_OF_CONDUCT.md
│ ├── FUNDING.yaml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug-report.yaml
│ │ ├── config.yaml
│ │ ├── documentation.yaml
│ │ ├── feature-request.md
│ │ └── issue.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── scripts/
│ │ └── discord-helpers.sh
│ └── workflows/
│ ├── coderabbit-review.yaml
│ ├── discord.yaml
│ ├── docs.yaml
│ ├── publish.yaml
│ └── quality.yaml
├── .gitignore
├── .husky/
│ └── pre-commit
├── .markdownlint-cli2.yaml
├── .npmignore
├── .npmrc
├── .nvmrc
├── .prettierignore
├── .vscode/
│ └── settings.json
├── AGENTS.md
├── CHANGELOG.md
├── CNAME
├── CONTRIBUTING.md
├── CONTRIBUTORS.md
├── LICENSE
├── README.md
├── README_CN.md
├── SECURITY.md
├── TRADEMARK.md
├── docs/
│ ├── 404.md
│ ├── _STYLE_GUIDE.md
│ ├── explanation/
│ │ ├── advanced-elicitation.md
│ │ ├── adversarial-review.md
│ │ ├── brainstorming.md
│ │ ├── established-projects-faq.md
│ │ ├── party-mode.md
│ │ ├── preventing-agent-conflicts.md
│ │ ├── project-context.md
│ │ ├── quick-dev.md
│ │ └── why-solutioning-matters.md
│ ├── how-to/
│ │ ├── customize-bmad.md
│ │ ├── established-projects.md
│ │ ├── get-answers-about-bmad.md
│ │ ├── install-bmad.md
│ │ ├── non-interactive-installation.md
│ │ ├── project-context.md
│ │ ├── quick-fixes.md
│ │ ├── shard-large-documents.md
│ │ └── upgrade-to-v6.md
│ ├── index.md
│ ├── reference/
│ │ ├── agents.md
│ │ ├── commands.md
│ │ ├── core-tools.md
│ │ ├── modules.md
│ │ ├── testing.md
│ │ └── workflow-map.md
│ ├── roadmap.mdx
│ ├── tutorials/
│ │ └── getting-started.md
│ └── zh-cn/
│ ├── 404.md
│ ├── _STYLE_GUIDE.md
│ ├── explanation/
│ │ ├── advanced-elicitation.md
│ │ ├── adversarial-review.md
│ │ ├── brainstorming.md
│ │ ├── established-projects-faq.md
│ │ ├── party-mode.md
│ │ ├── preventing-agent-conflicts.md
│ │ ├── project-context.md
│ │ ├── quick-dev.md
│ │ └── why-solutioning-matters.md
│ ├── how-to/
│ │ ├── customize-bmad.md
│ │ ├── established-projects.md
│ │ ├── get-answers-about-bmad.md
│ │ ├── install-bmad.md
│ │ ├── non-interactive-installation.md
│ │ ├── project-context.md
│ │ ├── quick-fixes.md
│ │ ├── shard-large-documents.md
│ │ └── upgrade-to-v6.md
│ ├── index.md
│ ├── reference/
│ │ ├── agents.md
│ │ ├── commands.md
│ │ ├── core-tools.md
│ │ ├── modules.md
│ │ ├── testing.md
│ │ └── workflow-map.md
│ ├── roadmap.mdx
│ └── tutorials/
│ └── getting-started.md
├── eslint.config.mjs
├── package.json
├── prettier.config.mjs
├── src/
│ ├── bmm-skills/
│ │ ├── 1-analysis/
│ │ │ ├── bmad-agent-analyst/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-agent-tech-writer/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── explain-concept.md
│ │ │ │ ├── mermaid-gen.md
│ │ │ │ ├── validate-doc.md
│ │ │ │ └── write-document.md
│ │ │ ├── bmad-document-project/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── checklist.md
│ │ │ │ ├── documentation-requirements.csv
│ │ │ │ ├── instructions.md
│ │ │ │ ├── templates/
│ │ │ │ │ ├── deep-dive-template.md
│ │ │ │ │ ├── index-template.md
│ │ │ │ │ ├── project-overview-template.md
│ │ │ │ │ ├── project-scan-report-schema.json
│ │ │ │ │ └── source-tree-template.md
│ │ │ │ ├── workflow.md
│ │ │ │ └── workflows/
│ │ │ │ ├── deep-dive-instructions.md
│ │ │ │ ├── deep-dive-workflow.md
│ │ │ │ ├── full-scan-instructions.md
│ │ │ │ └── full-scan-workflow.md
│ │ │ ├── bmad-product-brief/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── agents/
│ │ │ │ │ ├── artifact-analyzer.md
│ │ │ │ │ ├── opportunity-reviewer.md
│ │ │ │ │ ├── skeptic-reviewer.md
│ │ │ │ │ └── web-researcher.md
│ │ │ │ ├── bmad-manifest.json
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── prompts/
│ │ │ │ │ ├── contextual-discovery.md
│ │ │ │ │ ├── draft-and-review.md
│ │ │ │ │ ├── finalize.md
│ │ │ │ │ └── guided-elicitation.md
│ │ │ │ └── resources/
│ │ │ │ └── brief-template.md
│ │ │ └── research/
│ │ │ ├── bmad-domain-research/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── domain-steps/
│ │ │ │ │ ├── step-01-init.md
│ │ │ │ │ ├── step-02-domain-analysis.md
│ │ │ │ │ ├── step-03-competitive-landscape.md
│ │ │ │ │ ├── step-04-regulatory-focus.md
│ │ │ │ │ ├── step-05-technical-trends.md
│ │ │ │ │ └── step-06-research-synthesis.md
│ │ │ │ ├── research.template.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-market-research/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── research.template.md
│ │ │ │ ├── steps/
│ │ │ │ │ ├── step-01-init.md
│ │ │ │ │ ├── step-02-customer-behavior.md
│ │ │ │ │ ├── step-03-customer-pain-points.md
│ │ │ │ │ ├── step-04-customer-decisions.md
│ │ │ │ │ ├── step-05-competitive-analysis.md
│ │ │ │ │ └── step-06-research-completion.md
│ │ │ │ └── workflow.md
│ │ │ └── bmad-technical-research/
│ │ │ ├── SKILL.md
│ │ │ ├── bmad-skill-manifest.yaml
│ │ │ ├── research.template.md
│ │ │ ├── technical-steps/
│ │ │ │ ├── step-01-init.md
│ │ │ │ ├── step-02-technical-overview.md
│ │ │ │ ├── step-03-integration-patterns.md
│ │ │ │ ├── step-04-architectural-patterns.md
│ │ │ │ ├── step-05-implementation-research.md
│ │ │ │ └── step-06-research-synthesis.md
│ │ │ └── workflow.md
│ │ ├── 2-plan-workflows/
│ │ │ ├── bmad-agent-pm/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-agent-ux-designer/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-create-prd/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── data/
│ │ │ │ │ ├── domain-complexity.csv
│ │ │ │ │ ├── prd-purpose.md
│ │ │ │ │ └── project-types.csv
│ │ │ │ ├── steps-c/
│ │ │ │ │ ├── step-01-init.md
│ │ │ │ │ ├── step-01b-continue.md
│ │ │ │ │ ├── step-02-discovery.md
│ │ │ │ │ ├── step-02b-vision.md
│ │ │ │ │ ├── step-02c-executive-summary.md
│ │ │ │ │ ├── step-03-success.md
│ │ │ │ │ ├── step-04-journeys.md
│ │ │ │ │ ├── step-05-domain.md
│ │ │ │ │ ├── step-06-innovation.md
│ │ │ │ │ ├── step-07-project-type.md
│ │ │ │ │ ├── step-08-scoping.md
│ │ │ │ │ ├── step-09-functional.md
│ │ │ │ │ ├── step-10-nonfunctional.md
│ │ │ │ │ ├── step-11-polish.md
│ │ │ │ │ └── step-12-complete.md
│ │ │ │ ├── templates/
│ │ │ │ │ └── prd-template.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-create-ux-design/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── steps/
│ │ │ │ │ ├── step-01-init.md
│ │ │ │ │ ├── step-01b-continue.md
│ │ │ │ │ ├── step-02-discovery.md
│ │ │ │ │ ├── step-03-core-experience.md
│ │ │ │ │ ├── step-04-emotional-response.md
│ │ │ │ │ ├── step-05-inspiration.md
│ │ │ │ │ ├── step-06-design-system.md
│ │ │ │ │ ├── step-07-defining-experience.md
│ │ │ │ │ ├── step-08-visual-foundation.md
│ │ │ │ │ ├── step-09-design-directions.md
│ │ │ │ │ ├── step-10-user-journeys.md
│ │ │ │ │ ├── step-11-component-strategy.md
│ │ │ │ │ ├── step-12-ux-patterns.md
│ │ │ │ │ ├── step-13-responsive-accessibility.md
│ │ │ │ │ └── step-14-complete.md
│ │ │ │ ├── ux-design-template.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-edit-prd/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── steps-e/
│ │ │ │ │ ├── step-e-01-discovery.md
│ │ │ │ │ ├── step-e-01b-legacy-conversion.md
│ │ │ │ │ ├── step-e-02-review.md
│ │ │ │ │ ├── step-e-03-edit.md
│ │ │ │ │ └── step-e-04-complete.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-validate-prd/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── data/
│ │ │ │ │ ├── domain-complexity.csv
│ │ │ │ │ ├── prd-purpose.md
│ │ │ │ │ └── project-types.csv
│ │ │ │ ├── steps-v/
│ │ │ │ │ ├── step-v-01-discovery.md
│ │ │ │ │ ├── step-v-02-format-detection.md
│ │ │ │ │ ├── step-v-02b-parity-check.md
│ │ │ │ │ ├── step-v-03-density-validation.md
│ │ │ │ │ ├── step-v-04-brief-coverage-validation.md
│ │ │ │ │ ├── step-v-05-measurability-validation.md
│ │ │ │ │ ├── step-v-06-traceability-validation.md
│ │ │ │ │ ├── step-v-07-implementation-leakage-validation.md
│ │ │ │ │ ├── step-v-08-domain-compliance-validation.md
│ │ │ │ │ ├── step-v-09-project-type-validation.md
│ │ │ │ │ ├── step-v-10-smart-validation.md
│ │ │ │ │ ├── step-v-11-holistic-quality-validation.md
│ │ │ │ │ ├── step-v-12-completeness-validation.md
│ │ │ │ │ └── step-v-13-report-complete.md
│ │ │ │ └── workflow.md
│ │ │ └── create-prd/
│ │ │ ├── data/
│ │ │ │ ├── domain-complexity.csv
│ │ │ │ ├── prd-purpose.md
│ │ │ │ └── project-types.csv
│ │ │ ├── steps-v/
│ │ │ │ ├── step-v-01-discovery.md
│ │ │ │ ├── step-v-02-format-detection.md
│ │ │ │ ├── step-v-02b-parity-check.md
│ │ │ │ ├── step-v-03-density-validation.md
│ │ │ │ ├── step-v-04-brief-coverage-validation.md
│ │ │ │ ├── step-v-05-measurability-validation.md
│ │ │ │ ├── step-v-06-traceability-validation.md
│ │ │ │ ├── step-v-07-implementation-leakage-validation.md
│ │ │ │ ├── step-v-08-domain-compliance-validation.md
│ │ │ │ ├── step-v-09-project-type-validation.md
│ │ │ │ ├── step-v-10-smart-validation.md
│ │ │ │ ├── step-v-11-holistic-quality-validation.md
│ │ │ │ ├── step-v-12-completeness-validation.md
│ │ │ │ └── step-v-13-report-complete.md
│ │ │ └── workflow-validate-prd.md
│ │ ├── 3-solutioning/
│ │ │ ├── bmad-agent-architect/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-check-implementation-readiness/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── steps/
│ │ │ │ │ ├── step-01-document-discovery.md
│ │ │ │ │ ├── step-02-prd-analysis.md
│ │ │ │ │ ├── step-03-epic-coverage-validation.md
│ │ │ │ │ ├── step-04-ux-alignment.md
│ │ │ │ │ ├── step-05-epic-quality-review.md
│ │ │ │ │ └── step-06-final-assessment.md
│ │ │ │ ├── templates/
│ │ │ │ │ └── readiness-report-template.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-create-architecture/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── architecture-decision-template.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── data/
│ │ │ │ │ ├── domain-complexity.csv
│ │ │ │ │ └── project-types.csv
│ │ │ │ ├── steps/
│ │ │ │ │ ├── step-01-init.md
│ │ │ │ │ ├── step-01b-continue.md
│ │ │ │ │ ├── step-02-context.md
│ │ │ │ │ ├── step-03-starter.md
│ │ │ │ │ ├── step-04-decisions.md
│ │ │ │ │ ├── step-05-patterns.md
│ │ │ │ │ ├── step-06-structure.md
│ │ │ │ │ ├── step-07-validation.md
│ │ │ │ │ └── step-08-complete.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-create-epics-and-stories/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── steps/
│ │ │ │ │ ├── step-01-validate-prerequisites.md
│ │ │ │ │ ├── step-02-design-epics.md
│ │ │ │ │ ├── step-03-create-stories.md
│ │ │ │ │ └── step-04-final-validation.md
│ │ │ │ ├── templates/
│ │ │ │ │ └── epics-template.md
│ │ │ │ └── workflow.md
│ │ │ └── bmad-generate-project-context/
│ │ │ ├── SKILL.md
│ │ │ ├── bmad-skill-manifest.yaml
│ │ │ ├── project-context-template.md
│ │ │ ├── steps/
│ │ │ │ ├── step-01-discover.md
│ │ │ │ ├── step-02-generate.md
│ │ │ │ └── step-03-complete.md
│ │ │ └── workflow.md
│ │ ├── 4-implementation/
│ │ │ ├── bmad-agent-dev/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-agent-qa/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-agent-quick-flow-solo-dev/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-agent-sm/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── bmad-skill-manifest.yaml
│ │ │ ├── bmad-code-review/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── steps/
│ │ │ │ │ ├── step-01-gather-context.md
│ │ │ │ │ ├── step-02-review.md
│ │ │ │ │ ├── step-03-triage.md
│ │ │ │ │ └── step-04-present.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-correct-course/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── checklist.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-create-story/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── checklist.md
│ │ │ │ ├── discover-inputs.md
│ │ │ │ ├── template.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-dev-story/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── checklist.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-qa-generate-e2e-tests/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── checklist.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-quick-dev/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── step-01-clarify-and-route.md
│ │ │ │ ├── step-02-plan.md
│ │ │ │ ├── step-03-implement.md
│ │ │ │ ├── step-04-review.md
│ │ │ │ ├── step-05-present.md
│ │ │ │ ├── step-oneshot.md
│ │ │ │ ├── tech-spec-template.md
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-retrospective/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ └── workflow.md
│ │ │ ├── bmad-sprint-planning/
│ │ │ │ ├── SKILL.md
│ │ │ │ ├── bmad-skill-manifest.yaml
│ │ │ │ ├── checklist.md
│ │ │ │ ├── sprint-status-template.yaml
│ │ │ │ └── workflow.md
│ │ │ └── bmad-sprint-status/
│ │ │ ├── SKILL.md
│ │ │ ├── bmad-skill-manifest.yaml
│ │ │ └── workflow.md
│ │ ├── module-help.csv
│ │ └── module.yaml
│ └── core-skills/
│ ├── bmad-advanced-elicitation/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ ├── methods.csv
│ │ └── workflow.md
│ ├── bmad-brainstorming/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ ├── brain-methods.csv
│ │ ├── steps/
│ │ │ ├── step-01-session-setup.md
│ │ │ ├── step-01b-continue.md
│ │ │ ├── step-02a-user-selected.md
│ │ │ ├── step-02b-ai-recommended.md
│ │ │ ├── step-02c-random-selection.md
│ │ │ ├── step-02d-progressive-flow.md
│ │ │ ├── step-03-technique-execution.md
│ │ │ └── step-04-idea-organization.md
│ │ ├── template.md
│ │ └── workflow.md
│ ├── bmad-distillator/
│ │ ├── SKILL.md
│ │ ├── agents/
│ │ │ ├── distillate-compressor.md
│ │ │ └── round-trip-reconstructor.md
│ │ ├── bmad-skill-manifest.yaml
│ │ ├── resources/
│ │ │ ├── compression-rules.md
│ │ │ ├── distillate-format-reference.md
│ │ │ └── splitting-strategy.md
│ │ └── scripts/
│ │ ├── analyze_sources.py
│ │ └── tests/
│ │ └── test_analyze_sources.py
│ ├── bmad-editorial-review-prose/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── bmad-editorial-review-structure/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── bmad-help/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── bmad-index-docs/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── bmad-init/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ ├── resources/
│ │ │ └── core-module.yaml
│ │ └── scripts/
│ │ ├── bmad_init.py
│ │ └── tests/
│ │ └── test_bmad_init.py
│ ├── bmad-party-mode/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ ├── steps/
│ │ │ ├── step-01-agent-loading.md
│ │ │ ├── step-02-discussion-orchestration.md
│ │ │ └── step-03-graceful-exit.md
│ │ └── workflow.md
│ ├── bmad-review-adversarial-general/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── bmad-review-edge-case-hunter/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── bmad-shard-doc/
│ │ ├── SKILL.md
│ │ ├── bmad-skill-manifest.yaml
│ │ └── workflow.md
│ ├── module-help.csv
│ └── module.yaml
├── test/
│ ├── README.md
│ ├── adversarial-review-tests/
│ │ ├── README.md
│ │ ├── sample-content.md
│ │ └── test-cases.yaml
│ ├── fixtures/
│ │ └── file-refs-csv/
│ │ ├── invalid/
│ │ │ ├── all-empty-workflow.csv
│ │ │ ├── empty-data.csv
│ │ │ ├── no-workflow-column.csv
│ │ │ └── unresolvable-vars.csv
│ │ └── valid/
│ │ ├── bmm-style.csv
│ │ ├── core-style.csv
│ │ └── minimal.csv
│ ├── test-file-refs-csv.js
│ ├── test-install-to-bmad.js
│ ├── test-installation-components.js
│ ├── test-rehype-plugins.mjs
│ └── test-workflow-path-regex.js
├── tools/
│ ├── bmad-npx-wrapper.js
│ ├── build-docs.mjs
│ ├── cli/
│ │ ├── README.md
│ │ ├── bmad-cli.js
│ │ ├── commands/
│ │ │ ├── install.js
│ │ │ ├── status.js
│ │ │ └── uninstall.js
│ │ ├── external-official-modules.yaml
│ │ ├── installers/
│ │ │ ├── install-messages.yaml
│ │ │ └── lib/
│ │ │ ├── core/
│ │ │ │ ├── config-collector.js
│ │ │ │ ├── custom-module-cache.js
│ │ │ │ ├── dependency-resolver.js
│ │ │ │ ├── detector.js
│ │ │ │ ├── ide-config-manager.js
│ │ │ │ ├── installer.js
│ │ │ │ ├── manifest-generator.js
│ │ │ │ └── manifest.js
│ │ │ ├── custom/
│ │ │ │ └── handler.js
│ │ │ ├── ide/
│ │ │ │ ├── _base-ide.js
│ │ │ │ ├── _config-driven.js
│ │ │ │ ├── manager.js
│ │ │ │ ├── platform-codes.js
│ │ │ │ ├── platform-codes.yaml
│ │ │ │ ├── shared/
│ │ │ │ │ ├── agent-command-generator.js
│ │ │ │ │ ├── bmad-artifacts.js
│ │ │ │ │ ├── module-injections.js
│ │ │ │ │ ├── path-utils.js
│ │ │ │ │ ├── skill-manifest.js
│ │ │ │ │ ├── task-tool-command-generator.js
│ │ │ │ │ └── workflow-command-generator.js
│ │ │ │ └── templates/
│ │ │ │ ├── agent-command-template.md
│ │ │ │ ├── combined/
│ │ │ │ │ ├── antigravity.md
│ │ │ │ │ ├── default-agent.md
│ │ │ │ │ ├── default-task.md
│ │ │ │ │ ├── default-tool.md
│ │ │ │ │ ├── default-workflow.md
│ │ │ │ │ ├── gemini-agent.toml
│ │ │ │ │ ├── gemini-task.toml
│ │ │ │ │ ├── gemini-tool.toml
│ │ │ │ │ ├── gemini-workflow-yaml.toml
│ │ │ │ │ ├── gemini-workflow.toml
│ │ │ │ │ ├── kiro-agent.md
│ │ │ │ │ ├── kiro-task.md
│ │ │ │ │ ├── kiro-tool.md
│ │ │ │ │ ├── kiro-workflow.md
│ │ │ │ │ ├── opencode-agent.md
│ │ │ │ │ ├── opencode-task.md
│ │ │ │ │ ├── opencode-tool.md
│ │ │ │ │ ├── opencode-workflow-yaml.md
│ │ │ │ │ ├── opencode-workflow.md
│ │ │ │ │ ├── rovodev.md
│ │ │ │ │ ├── trae.md
│ │ │ │ │ └── windsurf-workflow.md
│ │ │ │ └── split/
│ │ │ │ └── .gitkeep
│ │ │ ├── message-loader.js
│ │ │ └── modules/
│ │ │ ├── external-manager.js
│ │ │ └── manager.js
│ │ └── lib/
│ │ ├── activation-builder.js
│ │ ├── agent/
│ │ │ ├── compiler.js
│ │ │ ├── installer.js
│ │ │ └── template-engine.js
│ │ ├── agent-analyzer.js
│ │ ├── agent-party-generator.js
│ │ ├── cli-utils.js
│ │ ├── config.js
│ │ ├── file-ops.js
│ │ ├── platform-codes.js
│ │ ├── project-root.js
│ │ ├── prompts.js
│ │ ├── ui.js
│ │ ├── xml-handler.js
│ │ ├── xml-to-markdown.js
│ │ ├── yaml-format.js
│ │ └── yaml-xml-builder.js
│ ├── docs/
│ │ ├── _prompt-external-modules-page.md
│ │ ├── fix-refs.md
│ │ └── native-skills-migration-checklist.md
│ ├── fix-doc-links.js
│ ├── format-workflow-md.js
│ ├── lib/
│ │ └── xml-utils.js
│ ├── migrate-custom-module-paths.js
│ ├── platform-codes.yaml
│ ├── skill-validator.md
│ ├── validate-doc-links.js
│ ├── validate-file-refs.js
│ ├── validate-skills.js
│ └── validate-svg-changes.sh
└── website/
├── README.md
├── astro.config.mjs
├── public/
│ └── workflow-map-diagram.html
└── src/
├── components/
│ ├── Banner.astro
│ ├── Header.astro
│ └── MobileMenuFooter.astro
├── content/
│ ├── config.ts
│ └── i18n/
│ └── zh-CN.json
├── lib/
│ └── site-url.mjs
├── pages/
│ ├── 404.astro
│ └── robots.txt.ts
├── rehype-base-paths.js
├── rehype-markdown-links.js
└── styles/
└── custom.css
SYMBOL INDEX (787 symbols across 61 files)
FILE: src/core-skills/bmad-distillator/scripts/analyze_sources.py
function resolve_inputs (line 82) | def resolve_inputs(inputs: list[str]) -> list[Path]:
function detect_doc_type (line 113) | def detect_doc_type(filename: str) -> str:
function suggest_groups (line 122) | def suggest_groups(files: list[Path]) -> list[dict]:
function analyze (line 186) | def analyze(inputs: list[str], output_path: str | None = None) -> None:
function output_json (line 269) | def output_json(data: dict, output_path: str | None) -> None:
function main (line 280) | def main() -> None:
FILE: src/core-skills/bmad-distillator/scripts/tests/test_analyze_sources.py
function temp_dir (line 26) | def temp_dir():
class TestResolveInputs (line 47) | class TestResolveInputs:
method test_single_file (line 48) | def test_single_file(self, temp_dir):
method test_folder_recursion (line 54) | def test_folder_recursion(self, temp_dir):
method test_folder_skips_excluded_dirs (line 61) | def test_folder_skips_excluded_dirs(self, temp_dir):
method test_folder_skips_non_text_files (line 66) | def test_folder_skips_non_text_files(self, temp_dir):
method test_glob_pattern (line 71) | def test_glob_pattern(self, temp_dir):
method test_deduplication (line 79) | def test_deduplication(self, temp_dir):
method test_mixed_inputs (line 84) | def test_mixed_inputs(self, temp_dir):
method test_nonexistent_path (line 92) | def test_nonexistent_path(self):
class TestDetectDocType (line 97) | class TestDetectDocType:
method test_detection (line 116) | def test_detection(self, filename, expected):
class TestSuggestGroups (line 120) | class TestSuggestGroups:
method test_groups_brief_with_discovery_notes (line 121) | def test_groups_brief_with_discovery_notes(self, temp_dir):
method test_standalone_files (line 134) | def test_standalone_files(self, temp_dir):
method test_mixed_grouped_and_standalone (line 144) | def test_mixed_grouped_and_standalone(self, temp_dir):
class TestAnalyze (line 157) | class TestAnalyze:
method test_basic_analysis (line 158) | def test_basic_analysis(self, temp_dir):
method test_routing_single_small_input (line 168) | def test_routing_single_small_input(self, temp_dir):
method test_routing_fanout_many_files (line 175) | def test_routing_fanout_many_files(self, temp_dir):
method test_folder_analysis (line 184) | def test_folder_analysis(self, temp_dir):
method test_no_files_found (line 192) | def test_no_files_found(self):
method test_stdout_output (line 199) | def test_stdout_output(self, temp_dir, capsys):
FILE: src/core-skills/bmad-init/scripts/bmad_init.py
function find_project_root (line 48) | def find_project_root(llm_provided=None):
function load_module_yaml (line 80) | def load_module_yaml(path):
function find_core_module_yaml (line 114) | def find_core_module_yaml():
function find_target_module_yaml (line 119) | def find_target_module_yaml(module_code, project_root, skill_path=None):
function load_config_file (line 149) | def load_config_file(path):
function load_module_config (line 159) | def load_module_config(module_code, project_root):
function resolve_project_root_placeholder (line 165) | def resolve_project_root_placeholder(value, project_root):
function parse_var_specs (line 174) | def parse_var_specs(vars_string):
function expand_template (line 198) | def expand_template(value, context):
function apply_result_template (line 214) | def apply_result_template(var_def, raw_value, context):
function cmd_load (line 234) | def cmd_load(args):
function cmd_check (line 281) | def cmd_check(args):
function cmd_resolve_defaults (line 347) | def cmd_resolve_defaults(args):
function cmd_write (line 405) | def cmd_write(args):
function _write_config_file (line 525) | def _write_config_file(path, data, module_label):
function main (line 539) | def main():
FILE: src/core-skills/bmad-init/scripts/tests/test_bmad_init.py
class TestFindProjectRoot (line 33) | class TestFindProjectRoot(unittest.TestCase):
method test_finds_bmad_folder (line 35) | def test_finds_bmad_folder(self):
method test_llm_provided_with_bmad (line 49) | def test_llm_provided_with_bmad(self):
method test_llm_provided_without_bmad_still_returns_dir (line 58) | def test_llm_provided_without_bmad_still_returns_dir(self):
class TestParseVarSpecs (line 68) | class TestParseVarSpecs(unittest.TestCase):
method test_vars_with_defaults (line 70) | def test_vars_with_defaults(self):
method test_vars_without_defaults (line 76) | def test_vars_without_defaults(self):
method test_mixed_vars (line 81) | def test_mixed_vars(self):
method test_colon_in_default (line 86) | def test_colon_in_default(self):
method test_empty_string (line 90) | def test_empty_string(self):
method test_none (line 93) | def test_none(self):
class TestResolveProjectRootPlaceholder (line 97) | class TestResolveProjectRootPlaceholder(unittest.TestCase):
method test_resolve_placeholder (line 99) | def test_resolve_placeholder(self):
method test_no_placeholder (line 103) | def test_no_placeholder(self):
method test_none (line 107) | def test_none(self):
method test_non_string (line 110) | def test_non_string(self):
class TestExpandTemplate (line 114) | class TestExpandTemplate(unittest.TestCase):
method test_basic_expansion (line 116) | def test_basic_expansion(self):
method test_multiple_placeholders (line 120) | def test_multiple_placeholders(self):
method test_none_value (line 127) | def test_none_value(self):
method test_non_string (line 130) | def test_non_string(self):
class TestApplyResultTemplate (line 134) | class TestApplyResultTemplate(unittest.TestCase):
method test_with_result_template (line 136) | def test_with_result_template(self):
method test_without_result_template (line 141) | def test_without_result_template(self):
method test_value_only_template (line 145) | def test_value_only_template(self):
class TestLoadModuleYaml (line 151) | class TestLoadModuleYaml(unittest.TestCase):
method setUp (line 153) | def setUp(self):
method tearDown (line 156) | def tearDown(self):
method test_loads_core_module_yaml (line 159) | def test_loads_core_module_yaml(self):
method test_loads_module_with_directories (line 177) | def test_loads_module_with_directories(self):
method test_returns_none_for_missing (line 192) | def test_returns_none_for_missing(self):
method test_returns_none_for_empty (line 196) | def test_returns_none_for_empty(self):
class TestFindCoreModuleYaml (line 203) | class TestFindCoreModuleYaml(unittest.TestCase):
method test_returns_path_to_resources (line 205) | def test_returns_path_to_resources(self):
class TestFindTargetModuleYaml (line 210) | class TestFindTargetModuleYaml(unittest.TestCase):
method setUp (line 212) | def setUp(self):
method tearDown (line 216) | def tearDown(self):
method test_finds_in_skill_assets (line 219) | def test_finds_in_skill_assets(self):
method test_finds_in_skill_root (line 229) | def test_finds_in_skill_root(self):
method test_finds_in_bmad_module_dir (line 237) | def test_finds_in_bmad_module_dir(self):
method test_returns_none_when_not_found (line 245) | def test_returns_none_when_not_found(self):
method test_skill_path_takes_priority (line 249) | def test_skill_path_takes_priority(self):
class TestLoadConfigFile (line 264) | class TestLoadConfigFile(unittest.TestCase):
method setUp (line 266) | def setUp(self):
method tearDown (line 269) | def tearDown(self):
method test_loads_flat_yaml (line 272) | def test_loads_flat_yaml(self):
method test_returns_none_for_missing (line 278) | def test_returns_none_for_missing(self):
class TestLoadModuleConfig (line 283) | class TestLoadModuleConfig(unittest.TestCase):
method setUp (line 285) | def setUp(self):
method tearDown (line 307) | def tearDown(self):
method test_load_core (line 310) | def test_load_core(self):
method test_load_module_includes_core_vars (line 315) | def test_load_module_includes_core_vars(self):
method test_missing_module (line 323) | def test_missing_module(self):
FILE: test/test-file-refs-csv.js
constant FIXTURES (line 24) | const FIXTURES = path.join(__dirname, 'fixtures/file-refs-csv');
function test (line 30) | function test(name, fn) {
function assert (line 42) | function assert(condition, message) {
function loadFixture (line 46) | function loadFixture(relativePath) {
FILE: test/test-install-to-bmad.js
function assert (line 33) | function assert(condition, testName, errorMessage = '') {
function runTests (line 46) | async function runTests() {
FILE: test/test-installation-components.js
function assert (line 38) | function assert(condition, testName, errorMessage = '') {
function createTestBmadFixture (line 51) | async function createTestBmadFixture() {
function createSkillCollisionFixture (line 84) | async function createSkillCollisionFixture() {
function runTests (line 141) | async function runTests() {
FILE: test/test-rehype-plugins.mjs
function assert (line 38) | function assert(condition, testName, errorMessage = '') {
constant CONTENT_DIR (line 55) | const CONTENT_DIR = '/project/src/content/docs';
constant STD_FILE (line 56) | const STD_FILE = { path: '/project/src/content/docs/guide/intro.md' };
constant STD_OPTS (line 57) | const STD_OPTS = { contentDir: CONTENT_DIR };
constant BASE (line 58) | const BASE = '/BMAD-METHOD/';
function transform (line 60) | function transform(tree, file, options = {}) {
function transformBase (line 66) | function transformBase(tree, options = {}) {
function makeAnchorTree (line 72) | function makeAnchorTree(href) {
function makeElementTree (line 86) | function makeElementTree(tagName, properties) {
function getHref (line 100) | function getHref(tree) {
function getSrc (line 104) | function getSrc(tree) {
function getRawValue (line 108) | function getRawValue(tree) {
function runTests (line 116) | function runTests() {
FILE: test/test-workflow-path-regex.js
function assert (line 22) | function assert(condition, testName, errorMessage = '') {
constant SOURCE_REGEX (line 41) | const SOURCE_REGEX = /\{project-root\}\/(?:_bmad)\/([^/]+)\/workflows\/(...
constant INSTALL_REGEX (line 45) | const INSTALL_REGEX = /\{project-root\}\/(?:_bmad)\/([^/]+)\/workflows\/...
FILE: tools/build-docs.mjs
constant PROJECT_ROOT (line 22) | const PROJECT_ROOT = path.dirname(path.dirname(fileURLToPath(import.meta...
constant BUILD_DIR (line 23) | const BUILD_DIR = path.join(PROJECT_ROOT, 'build');
constant REPO_URL (line 25) | const REPO_URL = 'https://github.com/bmad-code-org/BMAD-METHOD';
constant LLM_MAX_CHARS (line 30) | const LLM_MAX_CHARS = 600_000;
constant LLM_WARN_CHARS (line 31) | const LLM_WARN_CHARS = 500_000;
constant LLM_EXCLUDE_PATTERNS (line 33) | const LLM_EXCLUDE_PATTERNS = [
function main (line 54) | async function main() {
function generateArtifacts (line 96) | async function generateArtifacts(docsDir) {
function buildAstroSite (line 117) | function buildAstroSite() {
function generateLlmsTxt (line 143) | function generateLlmsTxt(outputDir) {
function generateLlmsFullTxt (line 191) | function generateLlmsFullTxt(docsDir, outputDir) {
function compareLlmDocs (line 237) | function compareLlmDocs(a, b) {
function getLlmSortKey (line 245) | function getLlmSortKey(filePath) {
function getAllMarkdownFiles (line 261) | function getAllMarkdownFiles(dir, baseDir = dir) {
function shouldExcludeFromLlm (line 285) | function shouldExcludeFromLlm(filePath) {
function readMarkdownContent (line 295) | function readMarkdownContent(filePath) {
function validateLlmSize (line 308) | function validateLlmSize(content) {
function runAstroBuild (line 324) | function runAstroBuild() {
function copyArtifactsToSite (line 343) | function copyArtifactsToSite(artifactsDir, siteDir) {
function printBuildSummary (line 360) | function printBuildSummary(docsDir, artifactsDir, siteDir) {
function listDirectoryContents (line 375) | function listDirectoryContents(dir) {
function formatFileSize (line 396) | function formatFileSize(bytes) {
function cleanBuildDirectory (line 413) | function cleanBuildDirectory() {
function printHeader (line 426) | function printHeader(title) {
function printBanner (line 436) | function printBanner(title) {
function checkDocLinks (line 451) | function checkDocLinks() {
FILE: tools/cli/bmad-cli.js
function checkForUpdate (line 22) | async function checkForUpdate() {
FILE: tools/cli/installers/lib/core/config-collector.js
class ConfigCollector (line 8) | class ConfigCollector {
method constructor (line 9) | constructor() {
method _getModuleManager (line 20) | _getModuleManager() {
method findBmadDir (line 34) | async findBmadDir(projectDir) {
method detectExistingBmadFolder (line 68) | async detectExistingBmadFolder(projectDir) {
method loadExistingConfig (line 97) | async loadExistingConfig(projectDir) {
method scanModuleSchemas (line 151) | async scanModuleSchemas(modules) {
method collectAllConfigurations (line 217) | async collectAllConfigurations(modules, projectDir, options = {}) {
method collectModuleConfigQuick (line 348) | async collectModuleConfigQuick(moduleName, projectDir, silentMode = tr...
method processResultTemplate (line 571) | processResultTemplate(resultTemplate, value) {
method getDefaultUsername (line 630) | getDefaultUsername() {
method collectModuleConfig (line 652) | async collectModuleConfig(moduleName, projectDir, skipLoadExisting = f...
method replacePlaceholders (line 946) | replacePlaceholders(str, currentModule = null, moduleConfig = null) {
method buildQuestion (line 989) | async buildQuestion(moduleName, key, item, moduleConfig = null) {
method displayModulePostConfigNotes (line 1219) | async displayModulePostConfigNotes(moduleName, moduleConfig) {
method deepMerge (line 1266) | deepMerge(target, source) {
FILE: tools/cli/installers/lib/core/custom-module-cache.js
class CustomModuleCache (line 12) | class CustomModuleCache {
method constructor (line 13) | constructor(bmadDir) {
method ensureCacheDir (line 22) | async ensureCacheDir() {
method getCacheManifest (line 29) | async getCacheManifest() {
method updateCacheManifest (line 42) | async updateCacheManifest(manifest) {
method hashFileStream (line 59) | async hashFileStream(filePath, hash) {
method calculateHash (line 71) | async calculateHash(sourcePath) {
method cacheModule (line 114) | async cacheModule(moduleId, sourcePath, metadata = {}) {
method getCachedModule (line 179) | async getCachedModule(moduleId) {
method getAllCachedModules (line 213) | async getAllCachedModules() {
method removeCachedModule (line 231) | async removeCachedModule(moduleId) {
method syncCache (line 249) | async syncCache(moduleIds) {
FILE: tools/cli/installers/lib/core/dependency-resolver.js
class DependencyResolver (line 11) | class DependencyResolver {
method constructor (line 12) | constructor() {
method resolve (line 25) | async resolve(bmadDir, selectedModules = [], options = {}) {
method collectPrimaryFiles (line 69) | async collectPrimaryFiles(bmadDir, modules, options = {}) {
method parseDependencies (line 146) | async parseDependencies(files) {
method parseCommandReferences (line 220) | parseCommandReferences(content) {
method parseFileReferences (line 244) | parseFileReferences(content) {
method resolveDependencyPaths (line 289) | async resolveDependencyPaths(bmadDir, dependencies) {
method resolveSingleDependency (line 305) | async resolveSingleDependency(bmadDir, dep) {
method resolveCommandToPath (line 491) | async resolveCommandToPath(bmadDir, command) {
method resolveTransitiveDependencies (line 547) | async resolveTransitiveDependencies(bmadDir, directDeps) {
method getModuleFromPath (line 583) | getModuleFromPath(bmadDir, filePath) {
method organizeByModule (line 614) | organizeByModule(bmadDir, files) {
method reportResults (line 665) | async reportResults(organized, selectedModules) {
method createWebBundle (line 708) | async createWebBundle(resolution) {
FILE: tools/cli/installers/lib/core/detector.js
class Detector (line 6) | class Detector {
method detect (line 12) | async detect(bmadDir) {
method detectLegacy (line 142) | async detectLegacy(projectDir) {
method checkMigrationNeeded (line 192) | async checkMigrationNeeded(projectDir) {
method detectLegacyV4 (line 210) | async detectLegacyV4(projectDir) {
FILE: tools/cli/installers/lib/core/ide-config-manager.js
class IdeConfigManager (line 10) | class IdeConfigManager {
method constructor (line 11) | constructor() {}
method getIdeConfigDir (line 18) | getIdeConfigDir(bmadDir) {
method getIdeConfigPath (line 28) | getIdeConfigPath(bmadDir, ideName) {
method saveIdeConfig (line 38) | async saveIdeConfig(bmadDir, ideName, configuration) {
method loadIdeConfig (line 85) | async loadIdeConfig(bmadDir, ideName) {
method loadAllIdeConfigs (line 107) | async loadAllIdeConfigs(bmadDir) {
method hasIdeConfig (line 139) | async hasIdeConfig(bmadDir, ideName) {
method deleteIdeConfig (line 149) | async deleteIdeConfig(bmadDir, ideName) {
FILE: tools/cli/installers/lib/core/installer.js
class Installer (line 20) | class Installer {
method constructor (line 21) | constructor() {
method findBmadDir (line 43) | async findBmadDir(projectDir) {
method copyFileWithPlaceholderReplacement (line 81) | async copyFileWithPlaceholderReplacement(sourcePath, targetPath) {
method collectToolConfigurations (line 115) | async collectToolConfigurations(
method install (line 229) | async install(originalConfig) {
method renderInstallSummary (line 1374) | async renderInstallSummary(results, context = {}) {
method update (line 1444) | async update(config) {
method getStatus (line 1573) | async getStatus(directory) {
method getAvailableModules (line 1582) | async getAvailableModules() {
method uninstall (line 1595) | async uninstall(directory, options = {}) {
method uninstallIdeConfigs (line 1635) | async uninstallIdeConfigs(projectDir, existingInstall, options = {}) {
method uninstallOutputFolder (line 1651) | async uninstallOutputFolder(projectDir, outputFolder) {
method uninstallModules (line 1670) | async uninstallModules(projectDir) {
method getOutputFolder (line 1685) | async getOutputFolder(projectDir) {
method _readOutputFolder (line 1696) | async _readOutputFolder(bmadDir) {
method mergeModuleHelpCatalogs (line 1750) | async mergeModuleHelpCatalogs(bmadDir) {
method parseCSVLine (line 1931) | parseCSVLine(line) {
method escapeCSVField (line 1965) | escapeCSVField(field) {
method createDirectoryStructure (line 1977) | async createDirectoryStructure(bmadDir) {
method generateModuleConfigs (line 1989) | async generateModuleConfigs(bmadDir, moduleConfigs) {
method installCoreWithDependencies (line 2085) | async installCoreWithDependencies(bmadDir, coreFiles) {
method installModuleWithDependencies (line 2097) | async installModuleWithDependencies(moduleName, bmadDir, moduleFiles) {
method installPartialModule (line 2127) | async installPartialModule(moduleName, bmadDir, files) {
method installCore (line 2226) | async installCore(bmadDir) {
method copyCoreFiles (line 2247) | async copyCoreFiles(sourcePath, targetPath) {
method getFileList (line 2313) | async getFileList(dir, baseDir = dir) {
method processAgentFiles (line 2336) | async processAgentFiles(modulePath, moduleName) {
method updateCore (line 2386) | async updateCore(bmadDir, force = false) {
method quickUpdate (line 2410) | async quickUpdate(config) {
method compileAgents (line 2651) | async compileAgents(config) {
method promptUpdateAction (line 2757) | async promptUpdateAction() {
method handleLegacyV4Migration (line 2770) | async handleLegacyV4Migration(_projectDir, _legacyV4) {
method readFilesManifest (line 2812) | async readFilesManifest(bmadDir) {
method detectCustomFiles (line 2869) | async detectCustomFiles(bmadDir, existingFilesManifest) {
method handleMissingCustomSources (line 2988) | async handleMissingCustomSources(customModuleSources, bmadDir, project...
FILE: tools/cli/installers/lib/core/manifest-generator.js
class ManifestGenerator (line 21) | class ManifestGenerator {
method constructor (line 22) | constructor() {
method loadSkillManifest (line 34) | async loadSkillManifest(dirPath) {
method getCanonicalId (line 39) | getCanonicalId(manifest, filename) {
method getArtifactType (line 44) | getArtifactType(manifest, filename) {
method getInstallToBmad (line 49) | getInstallToBmad(manifest, filename) {
method isNativeSkillDirType (line 59) | isNativeSkillDirType(artifactType) {
method hasNativeSkillManifest (line 69) | hasNativeSkillManifest(manifest) {
method cleanForCSV (line 82) | cleanForCSV(text) {
method generateManifests (line 93) | async generateManifests(bmadDir, selectedModules, installedFiles = [],...
method collectSkills (line 178) | async collectSkills() {
method parseSkillMd (line 295) | async parseSkillMd(skillMdPath, dir, dirName, debug = false) {
method collectWorkflows (line 341) | async collectWorkflows(selectedModules) {
method getWorkflowsFromPath (line 362) | async getWorkflowsFromPath(basePath, moduleName, subDir = 'workflows') {
method collectAgents (line 488) | async collectAgents(selectedModules) {
method getAgentsFromDir (line 520) | async getAgentsFromDir(dirPath, moduleName, relativePath = '') {
method collectTasks (line 641) | async collectTasks(selectedModules) {
method getTasksFromDir (line 658) | async getTasksFromDir(dirPath, moduleName) {
method collectTools (line 744) | async collectTools(selectedModules) {
method getToolsFromDir (line 761) | async getToolsFromDir(dirPath, moduleName) {
method writeMainManifest (line 848) | async writeMainManifest(cfgDir) {
method getPreservedCsvRows (line 936) | async getPreservedCsvRows(csvPath, moduleColumnIndex, expectedColumns,...
method upgradeRowToSchema (line 988) | upgradeRowToSchema(rowValues, oldColumns, newColumns, defaultValues) {
method writeWorkflowManifest (line 1014) | async writeWorkflowManifest(cfgDir) {
method writeSkillManifest (line 1057) | async writeSkillManifest(cfgDir) {
method writeAgentManifest (line 1083) | async writeAgentManifest(cfgDir) {
method writeTaskManifest (line 1157) | async writeTaskManifest(cfgDir) {
method writeToolManifest (line 1221) | async writeToolManifest(cfgDir) {
method calculateFileHash (line 1289) | async calculateFileHash(filePath) {
method writeFilesManifest (line 1301) | async writeFilesManifest(cfgDir) {
method scanInstalledModules (line 1368) | async scanInstalledModules(bmadDir) {
method _hasSkillManifestRecursive (line 1413) | async _hasSkillManifestRecursive(dir) {
FILE: tools/cli/installers/lib/core/manifest.js
class Manifest (line 7) | class Manifest {
method create (line 14) | async create(bmadDir, data, installedFiles = []) {
method read (line 74) | async read(bmadDir) {
method update (line 117) | async update(bmadDir, updates, installedFiles = null) {
method _readRaw (line 225) | async _readRaw(bmadDir) {
method _flattenManifest (line 246) | _flattenManifest(manifest) {
method addModule (line 269) | async addModule(bmadDir, moduleName, options = {}) {
method removeModule (line 315) | async removeModule(bmadDir, moduleName) {
method updateModuleVersion (line 334) | async updateModuleVersion(bmadDir, moduleName, versionInfo) {
method getModuleVersion (line 357) | async getModuleVersion(bmadDir, moduleName) {
method getAllModuleVersions (line 371) | async getAllModuleVersions(bmadDir) {
method _writeRaw (line 385) | async _writeRaw(bmadDir, manifestData) {
method addIde (line 408) | async addIde(bmadDir, ideName) {
method calculateFileHash (line 429) | async calculateFileHash(filePath) {
method parseInstalledFiles (line 444) | async parseInstalledFiles(installedFiles, bmadDir) {
method extractXmlNodeAttributes (line 503) | extractXmlNodeAttributes(content, filePath, relativePath) {
method generateManifestCsv (line 540) | generateManifestCsv(data, fileMetadata, moduleConfigs = {}) {
method parseManifestCsv (line 590) | parseManifestCsv(csvContent) {
method parseCsvLine (line 691) | parseCsvLine(line) {
method escapeCsv (line 728) | escapeCsv(text) {
method unescapeCsv (line 745) | unescapeCsv(text) {
method loadModuleConfigs (line 763) | async loadModuleConfigs(modules) {
method addCustomModule (line 791) | async addCustomModule(bmadDir, customModule) {
method removeCustomModule (line 819) | async removeCustomModule(bmadDir, moduleId) {
method getModuleVersionInfo (line 839) | async getModuleVersionInfo(moduleName, bmadDir, moduleSourcePath = nul...
method fetchNpmVersion (line 928) | async fetchNpmVersion(packageName) {
method checkForUpdates (line 970) | async checkForUpdates(bmadDir) {
method compareVersions (line 1004) | compareVersions(v1, v2) {
FILE: tools/cli/installers/lib/custom/handler.js
class CustomHandler (line 12) | class CustomHandler {
method constructor (line 13) | constructor() {
method findCustomContent (line 23) | async findCustomContent(projectRoot) {
method getCustomInfo (line 82) | async getCustomInfo(configPath, projectRoot = null) {
method install (line 127) | async install(customPath, bmadDir, config, fileTrackingCallback = null) {
method findFilesRecursively (line 205) | async findFilesRecursively(dir, extensions) {
method copyDirectory (line 234) | async copyDirectory(sourceDir, targetDir, results, fileTrackingCallbac...
method compileAndCopyAgents (line 294) | async compileAndCopyAgents(sourceAgentsPath, targetAgentsPath, bmadDir...
FILE: tools/cli/installers/lib/ide/_base-ide.js
class BaseIdeSetup (line 12) | class BaseIdeSetup {
method constructor (line 13) | constructor(name, displayName = null, preferred = false) {
method setBmadFolderName (line 29) | setBmadFolderName(bmadFolderName) {
method getAgentCommandHeader (line 37) | async getAgentCommandHeader() {
method setup (line 48) | async setup(projectDir, bmadDir, options = {}) {
method cleanup (line 56) | async cleanup(projectDir, options = {}) {
method installCustomAgentLauncher (line 78) | async installCustomAgentLauncher(projectDir, agentName, agentPath, met...
method detect (line 89) | async detect(projectDir) {
method getAgents (line 122) | async getAgents(bmadDir) {
method getTasks (line 194) | async getTasks(bmadDir, standaloneOnly = false) {
method getTools (line 240) | async getTools(bmadDir, standaloneOnly = false) {
method getWorkflows (line 286) | async getWorkflows(bmadDir, standaloneOnly = false) {
method findWorkflowFiles (line 332) | async findWorkflowFiles(dir, rootDir = null) {
method scanDirectory (line 386) | async scanDirectory(dir, ext, rootDir = null) {
method scanDirectoryWithStandalone (line 430) | async scanDirectoryWithStandalone(dir, ext, rootDir = null) {
method processContent (line 510) | processContent(content, metadata = {}, projectDir = null) {
method ensureDir (line 536) | async ensureDir(dirPath) {
method writeFile (line 545) | async writeFile(filePath, content) {
method copyFile (line 564) | async copyFile(source, dest) {
method exists (line 604) | async exists(pathToCheck) {
method pathExists (line 613) | async pathExists(pathToCheck) {
method readFile (line 622) | async readFile(filePath) {
method formatTitle (line 631) | formatTitle(name) {
method flattenFilename (line 646) | flattenFilename(relativePath) {
method createAgentConfig (line 656) | async createAgentConfig(bmadDir, agent) {
FILE: tools/cli/installers/lib/ide/_config-driven.js
class ConfigDrivenIdeSetup (line 25) | class ConfigDrivenIdeSetup extends BaseIdeSetup {
method constructor (line 26) | constructor(platformCode, platformConfig) {
method detect (line 44) | async detect(projectDir) {
method setup (line 67) | async setup(projectDir, bmadDir, options = {}) {
method installToTarget (line 117) | async installToTarget(projectDir, bmadDir, config, options) {
method installToMultipleTargets (line 179) | async installToMultipleTargets(projectDir, bmadDir, targets, options) {
method writeAgentArtifacts (line 204) | async writeAgentArtifacts(targetPath, artifacts, templateType, config ...
method writeWorkflowArtifacts (line 233) | async writeWorkflowArtifacts(targetPath, artifacts, templateType, conf...
method writeTaskToolArtifacts (line 264) | async writeTaskToolArtifacts(targetPath, artifacts, templateType, conf...
method loadTemplate (line 316) | async loadTemplate(templateType, artifactType, config = {}, fallbackTe...
method loadSplitTemplates (line 365) | async loadSplitTemplates(templateType, artifactType, headerTpl, bodyTp...
method getDefaultTemplate (line 406) | getDefaultTemplate(artifactType) {
method renderTemplate (line 440) | renderTemplate(template, artifact) {
method writeSkillFile (line 487) | async writeSkillFile(targetPath, artifact, content) {
method transformToSkillFormat (line 516) | transformToSkillFormat(content, skillName) {
method installCustomAgentLauncher (line 556) | async installCustomAgentLauncher(projectDir, agentName, agentPath, met...
method generateFilename (line 611) | generateFilename(artifact, artifactType, extension = '.md') {
method installVerbatimSkills (line 642) | async installVerbatimSkills(projectDir, bmadDir, targetPath, config) {
method printSummary (line 712) | async printSummary(results, targetDir, options = {}) {
method cleanup (line 727) | async cleanup(projectDir, options = {}) {
method isGlobalPath (line 781) | isGlobalPath(p) {
method warnGlobalLegacy (line 790) | async warnGlobalLegacy(legacyDir, options = {}) {
method cleanupTarget (line 816) | async cleanupTarget(projectDir, targetDir, options = {}) {
method cleanupCopilotInstructions (line 874) | async cleanupCopilotInstructions(projectDir, options = {}) {
method cleanupKiloModes (line 912) | async cleanupKiloModes(projectDir, options = {}) {
method cleanupRovoDevPrompts (line 949) | async cleanupRovoDevPrompts(projectDir, options = {}) {
method findAncestorConflict (line 991) | async findAncestorConflict(projectDir) {
method removeEmptyParents (line 1026) | async removeEmptyParents(projectDir, relativeDir) {
FILE: tools/cli/installers/lib/ide/manager.js
class IdeManager (line 11) | class IdeManager {
method constructor (line 12) | constructor() {
method setBmadFolderName (line 22) | setBmadFolderName(bmadFolderName) {
method ensureInitialized (line 35) | async ensureInitialized() {
method loadHandlers (line 45) | async loadHandlers() {
method loadConfigDrivenHandlers (line 53) | async loadConfigDrivenHandlers() {
method getAvailableIdes (line 75) | getAvailableIdes() {
method getPreferredIdes (line 113) | getPreferredIdes() {
method getOtherIdes (line 121) | getOtherIdes() {
method setup (line 132) | async setup(ideName, projectDir, bmadDir, options = {}) {
method cleanup (line 185) | async cleanup(projectDir, options = {}) {
method cleanupByList (line 208) | async cleanupByList(projectDir, ideList, options = {}) {
method getSupportedIdes (line 238) | getSupportedIdes() {
method isSupported (line 247) | isSupported(ideName) {
method detectInstalledIdes (line 256) | async detectInstalledIdes(projectDir) {
method installCustomAgentLaunchers (line 277) | async installCustomAgentLaunchers(ides, projectDir, agentName, agentPa...
FILE: tools/cli/installers/lib/ide/platform-codes.js
constant PLATFORM_CODES_PATH (line 5) | const PLATFORM_CODES_PATH = path.join(__dirname, 'platform-codes.yaml');
function loadPlatformCodes (line 13) | async function loadPlatformCodes() {
function getPlatformInfo (line 32) | function getPlatformInfo(platformCode) {
function getPreferredPlatforms (line 44) | async function getPreferredPlatforms() {
function getPlatformsByCategory (line 56) | async function getPlatformsByCategory(category) {
function getConfigDrivenPlatforms (line 67) | async function getConfigDrivenPlatforms() {
function getCustomInstallerPlatforms (line 78) | async function getCustomInstallerPlatforms() {
function clearCache (line 88) | function clearCache() {
FILE: tools/cli/installers/lib/ide/shared/agent-command-generator.js
class AgentCommandGenerator (line 9) | class AgentCommandGenerator {
method constructor (line 10) | constructor(bmadFolderName = BMAD_FOLDER_NAME) {
method collectAgentArtifacts (line 21) | async collectAgentArtifacts(bmadDir, selectedModules = []) {
method generateLauncherContent (line 71) | async generateLauncherContent(agent) {
method writeAgentLaunchers (line 93) | async writeAgentLaunchers(baseCommandsDir, artifacts) {
method writeColonArtifacts (line 118) | async writeColonArtifacts(baseCommandsDir, artifacts) {
method writeDashArtifacts (line 145) | async writeDashArtifacts(baseCommandsDir, artifacts) {
method getCustomAgentColonName (line 167) | getCustomAgentColonName(agentName) {
method getCustomAgentDashName (line 176) | getCustomAgentDashName(agentName) {
FILE: tools/cli/installers/lib/ide/shared/bmad-artifacts.js
function getAgentsFromBmad (line 9) | async function getAgentsFromBmad(bmadDir, selectedModules = []) {
function getTasksFromBmad (line 62) | async function getTasksFromBmad(bmadDir, selectedModules = []) {
function getAgentsFromDir (line 82) | async function getAgentsFromDir(dirPath, moduleName, relativePath = '') {
function getTasksFromDir (line 139) | async function getTasksFromDir(dirPath, moduleName) {
FILE: tools/cli/installers/lib/ide/shared/module-injections.js
function loadModuleInjectionConfig (line 7) | async function loadModuleInjectionConfig(handler, moduleName) {
function shouldApplyInjection (line 26) | function shouldApplyInjection(injection, subagentChoices) {
function filterAgentInstructions (line 56) | function filterAgentInstructions(content, selectedFiles) {
function resolveSubagentFiles (line 92) | async function resolveSubagentFiles(handlerBaseDir, subagentConfig, suba...
FILE: tools/cli/installers/lib/ide/shared/path-utils.js
constant TYPE_SEGMENTS (line 19) | const TYPE_SEGMENTS = ['workflows', 'tasks', 'tools'];
constant AGENT_SEGMENT (line 20) | const AGENT_SEGMENT = 'agents';
constant BMAD_FOLDER_NAME (line 23) | const BMAD_FOLDER_NAME = '_bmad';
function toDashName (line 37) | function toDashName(module, type, name) {
function toDashPath (line 65) | function toDashPath(relativePath) {
function customAgentDashName (line 100) | function customAgentDashName(agentName) {
function isDashFormat (line 109) | function isDashFormat(filename) {
function parseDashName (line 125) | function parseDashName(filename) {
function toUnderscoreName (line 205) | function toUnderscoreName(module, type, name) {
function toUnderscorePath (line 220) | function toUnderscorePath(relativePath) {
function customAgentUnderscoreName (line 236) | function customAgentUnderscoreName(agentName) {
function isUnderscoreFormat (line 244) | function isUnderscoreFormat(filename) {
function parseUnderscoreName (line 252) | function parseUnderscoreName(filename) {
function resolveSkillName (line 324) | function resolveSkillName(artifact) {
FILE: tools/cli/installers/lib/ide/shared/skill-manifest.js
function loadSkillManifest (line 12) | async function loadSkillManifest(dirPath) {
function getCanonicalId (line 33) | function getCanonicalId(manifest, filename) {
function getArtifactType (line 54) | function getArtifactType(manifest, filename) {
function getInstallToBmad (line 75) | function getInstallToBmad(manifest, filename) {
FILE: tools/cli/installers/lib/ide/shared/task-tool-command-generator.js
class TaskToolCommandGenerator (line 9) | class TaskToolCommandGenerator {
method constructor (line 17) | constructor(bmadFolderName = BMAD_FOLDER_NAME) {
method collectTaskToolArtifacts (line 26) | async collectTaskToolArtifacts(bmadDir) {
method generateTaskToolCommands (line 101) | async generateTaskToolCommands(projectDir, bmadDir, baseCommandsDir = ...
method generateCommandContent (line 144) | generateCommandContent(item, type) {
method loadTaskManifest (line 194) | async loadTaskManifest(bmadDir) {
method loadToolManifest (line 211) | async loadToolManifest(bmadDir) {
method generateColonTaskToolCommands (line 234) | async generateColonTaskToolCommands(projectDir, bmadDir, baseCommandsD...
method generateDashTaskToolCommands (line 278) | async generateDashTaskToolCommands(projectDir, bmadDir, baseCommandsDi...
method writeColonArtifacts (line 321) | async writeColonArtifacts(baseCommandsDir, artifacts) {
method writeDashArtifacts (line 349) | async writeDashArtifacts(baseCommandsDir, artifacts) {
FILE: tools/cli/installers/lib/ide/shared/workflow-command-generator.js
class WorkflowCommandGenerator (line 9) | class WorkflowCommandGenerator {
method constructor (line 10) | constructor(bmadFolderName = BMAD_FOLDER_NAME) {
method collectWorkflowArtifacts (line 14) | async collectWorkflowArtifacts(bmadDir) {
method createModuleWorkflowLaunchers (line 80) | async createModuleWorkflowLaunchers(baseCommandsDir, workflowsByModule) {
method groupWorkflowsByModule (line 90) | groupWorkflowsByModule(workflows) {
method buildModuleWorkflowLaunchers (line 107) | buildModuleWorkflowLaunchers(groupedWorkflows) {
method buildLauncherContent (line 117) | buildLauncherContent(module, moduleWorkflows) {
method transformWorkflowPath (line 146) | transformWorkflowPath(workflowPath) {
method loadWorkflowManifest (line 164) | async loadWorkflowManifest(bmadDir) {
FILE: tools/cli/installers/lib/message-loader.js
class MessageLoader (line 9) | class MessageLoader {
method constructor (line 10) | constructor() {}
method load (line 16) | load() {
method getStartMessage (line 37) | getStartMessage() {
method getEndMessage (line 46) | getEndMessage() {
method displayStartMessage (line 54) | async displayStartMessage() {
method displayEndMessage (line 64) | async displayEndMessage() {
method isCurrent (line 76) | isCurrent(currentVersion) {
FILE: tools/cli/installers/lib/modules/external-manager.js
class ExternalModuleManager (line 12) | class ExternalModuleManager {
method constructor (line 13) | constructor() {
method loadExternalModulesConfig (line 22) | async loadExternalModulesConfig() {
method listAvailable (line 42) | async listAvailable() {
method getModuleByCode (line 71) | async getModuleByCode(code) {
method getModuleByKey (line 81) | async getModuleByKey(key) {
method hasModule (line 110) | async hasModule(code) {
method getModuleUrl (line 120) | async getModuleUrl(code) {
method getModuleDefinition (line 130) | async getModuleDefinition(code) {
FILE: tools/cli/installers/lib/modules/manager.js
class ModuleManager (line 27) | class ModuleManager {
method constructor (line 28) | constructor(options = {}) {
method setBmadFolderName (line 39) | setBmadFolderName(bmadFolderName) {
method setCoreConfig (line 47) | setCoreConfig(coreConfig) {
method setCustomModulePaths (line 55) | setCustomModulePaths(customModulePaths) {
method copyFileWithPlaceholderReplacement (line 65) | async copyFileWithPlaceholderReplacement(sourcePath, targetPath, overw...
method copyDirectoryWithPlaceholderReplacement (line 75) | async copyDirectoryWithPlaceholderReplacement(sourceDir, targetDir, ov...
method copySidecarToMemory (line 100) | async copySidecarToMemory(sourceSidecarPath, agentName, bmadMemoryPath...
method listAvailable (line 194) | async listAvailable() {
method getModuleInfo (line 236) | async getModuleInfo(modulePath, defaultName, sourceDescription) {
method findModuleSource (line 296) | async findModuleSource(moduleCode, options = {}) {
method isExternalModule (line 326) | async isExternalModule(moduleCode) {
method getExternalCacheDir (line 334) | getExternalCacheDir() {
method cloneExternalModule (line 345) | async cloneExternalModule(moduleCode, options = {}) {
method findExternalModuleSource (line 496) | async findExternalModuleSource(moduleCode, options = {}) {
method install (line 524) | async install(moduleName, bmadDir, fileTrackingCallback = null, option...
method update (line 606) | async update(moduleName, bmadDir, force = false, options = {}) {
method remove (line 645) | async remove(moduleName, bmadDir) {
method isInstalled (line 666) | async isInstalled(moduleName, bmadDir) {
method getInstalledInfo (line 677) | async getInstalledInfo(moduleName, bmadDir) {
method copyModuleWithFiltering (line 711) | async copyModuleWithFiltering(sourcePath, targetPath, fileTrackingCall...
method compileModuleAgents (line 784) | async compileModuleAgents(sourcePath, targetPath, moduleName, bmadDir,...
method findAgentFiles (line 960) | async findAgentFiles(dir) {
method processAgentFiles (line 986) | async processAgentFiles(modulePath, moduleName) {
method findAgentMdFiles (line 1011) | async findAgentMdFiles(dir) {
method vendorCrossModuleWorkflows (line 1039) | async vendorCrossModuleWorkflows(sourcePath, targetPath, moduleName) {
method createModuleDirectories (line 1139) | async createModuleDirectories(moduleName, bmadDir, options = {}) {
method processModuleConfig (line 1304) | async processModuleConfig(modulePath, moduleName) {
method syncModule (line 1327) | async syncModule(sourcePath, targetPath) {
method getFileList (line 1357) | async getFileList(dir, baseDir = dir) {
FILE: tools/cli/lib/activation-builder.js
class ActivationBuilder (line 8) | class ActivationBuilder {
method constructor (line 9) | constructor() {
method loadFragment (line 19) | async loadFragment(fragmentName) {
method buildActivation (line 44) | async buildActivation(profile, metadata = {}, agentSpecificActions = [...
method buildHandlers (line 79) | async buildHandlers(profile) {
method buildSteps (line 102) | async buildSteps(metadata = {}, agentSpecificActions = [], forWebBundl...
method indent (line 149) | indent(content, spaces) {
method clearCache (line 160) | clearCache() {
FILE: tools/cli/lib/agent-analyzer.js
class AgentAnalyzer (line 7) | class AgentAnalyzer {
method analyzeAgentObject (line 13) | analyzeAgentObject(agentYaml) {
method analyzeAgentFile (line 80) | async analyzeAgentFile(filePath) {
method needsHandler (line 92) | needsHandler(profile, handlerType) {
FILE: tools/cli/lib/agent-party-generator.js
method generateAgentParty (line 12) | generateAgentParty(agentDetails, options = {}) {
method extractAgentDetails (line 83) | extractAgentDetails(content, moduleName, agentName) {
method extractAttribute (line 122) | extractAttribute(xml, tagName, attrName) {
method applyConfigOverrides (line 134) | applyConfigOverrides(details, configContent) {
method writeAgentParty (line 186) | async writeAgentParty(filePath, agentDetails, options = {}) {
FILE: tools/cli/lib/agent/compiler.js
function buildFrontmatter (line 21) | function buildFrontmatter(metadata, agentName) {
function buildPersonaXml (line 42) | function buildPersonaXml(persona) {
function buildPromptsXml (line 82) | function buildPromptsXml(prompts) {
function buildMemoriesXml (line 106) | function buildMemoriesXml(memories) {
function buildMenuXml (line 127) | function buildMenuXml(menuItems) {
function buildNestedHandlers (line 173) | function buildNestedHandlers(triggers) {
function processExecArray (line 208) | function processExecArray(execArray) {
function compileToXml (line 254) | async function compileToXml(agentYaml, agentName = '', targetPath = '') {
function compileAgent (line 324) | async function compileAgent(yamlContent, answers = {}, agentName = '', t...
function filterCustomizationData (line 450) | function filterCustomizationData(data) {
function compileAgentFile (line 481) | function compileAgentFile(yamlPath, options = {}) {
FILE: tools/cli/lib/agent/installer.js
function findBmadConfig (line 18) | function findBmadConfig(startPath = process.cwd()) {
function resolvePath (line 44) | function resolvePath(pathStr, context) {
function discoverAgents (line 53) | function discoverAgents(searchPath) {
function loadAgentConfig (line 119) | function loadAgentConfig(yamlPath) {
function promptInstallQuestions (line 147) | async function promptInstallQuestions(installConfig, defaults, presetAns...
function installAgent (line 204) | function installAgent(agentInfo, answers, targetPath, options = {}) {
function updateAgentId (line 240) | function updateAgentId(compiledContent, targetPath) {
function detectBmadProject (line 250) | function detectBmadProject(targetPath) {
function escapeCsvField (line 282) | function escapeCsvField(value) {
function parseCsvLine (line 296) | function parseCsvLine(line) {
function checkManifestForAgent (line 331) | function checkManifestForAgent(manifestFile, agentName) {
function checkManifestForPath (line 363) | function checkManifestForPath(manifestFile, agentPath) {
function updateManifestEntry (line 396) | function updateManifestEntry(manifestFile, agentData, lineNumber) {
function addToManifest (line 422) | function addToManifest(manifestFile, agentData) {
function saveAgentSource (line 453) | function saveAgentSource(agentInfo, cfgFolder, agentName, answers = {}) {
function createIdeSlashCommands (line 536) | async function createIdeSlashCommands(projectRoot, agentName, agentPath,...
function updateManifestYaml (line 566) | function updateManifestYaml(manifestPath, agentName, agentType) {
function extractManifestData (line 617) | function extractManifestData(xmlContent, metadata, agentPath, moduleName...
FILE: tools/cli/lib/agent/template-engine.js
function processTemplate (line 12) | function processTemplate(content, variables = {}) {
function processConditionals (line 30) | function processConditionals(content, variables) {
function processVariables (line 63) | function processVariables(content, variables) {
function cleanupEmptyLines (line 82) | function cleanupEmptyLines(content) {
function extractInstallConfig (line 92) | function extractInstallConfig(agentYaml) {
function stripInstallConfig (line 101) | function stripInstallConfig(agentYaml) {
function processAgentYaml (line 115) | function processAgentYaml(agentYaml, variables) {
function getDefaultValues (line 127) | function getDefaultValues(installConfig) {
FILE: tools/cli/lib/cli-utils.js
method getVersion (line 9) | getVersion() {
method displayLogo (line 22) | async displayLogo(_clearScreen = true) {
method displaySection (line 52) | async displaySection(title, subtitle = null) {
method displayBox (line 61) | async displayBox(content, options = {}) {
method displayModuleConfigHeader (line 84) | async displayModuleConfigHeader(moduleName, header = null, subheader = n...
method displayModuleNoConfig (line 95) | async displayModuleNoConfig(moduleName, header = null, subheader = null) {
method displayStep (line 106) | async displayStep(current, total, description) {
method displayComplete (line 115) | async displayComplete(message) {
method displayError (line 127) | async displayError(message) {
method formatList (line 140) | formatList(items, prefix = '\u2022') {
method clearLines (line 148) | clearLines(lines) {
method displayModuleComplete (line 160) | displayModuleComplete(moduleName, clearScreen = false) {
method expandPath (line 170) | expandPath(inputPath) {
FILE: tools/cli/lib/config.js
class Config (line 9) | class Config {
method loadYaml (line 15) | async loadYaml(configPath) {
method saveYaml (line 29) | async saveYaml(configPath, config) {
method processConfig (line 47) | async processConfig(configPath, replacements = {}) {
method mergeConfigs (line 77) | mergeConfigs(base, override) {
method deepMerge (line 87) | deepMerge(target, source) {
method isObject (line 112) | isObject(item) {
method validateConfig (line 122) | validateConfig(config, schema) {
method getValue (line 176) | getValue(config, path, defaultValue = null) {
method setValue (line 197) | setValue(config, path, value) {
FILE: tools/cli/lib/file-ops.js
class FileOps (line 8) | class FileOps {
method copyDirectory (line 15) | async copyDirectory(source, dest, options = {}) {
method syncDirectory (line 31) | async syncDirectory(source, dest) {
method getFileList (line 82) | async getFileList(dir) {
method getFileHash (line 112) | async getFileHash(filePath) {
method shouldIgnore (line 128) | shouldIgnore(filePath) {
method ensureDir (line 152) | async ensureDir(dir) {
method remove (line 160) | async remove(targetPath) {
method readFile (line 171) | async readFile(filePath) {
method writeFile (line 180) | async writeFile(filePath, content) {
method exists (line 190) | async exists(targetPath) {
method stat (line 199) | async stat(targetPath) {
FILE: tools/cli/lib/platform-codes.js
class PlatformCodes (line 10) | class PlatformCodes {
method constructor (line 11) | constructor() {
method loadConfig (line 19) | loadConfig() {
method getAllPlatforms (line 38) | getAllPlatforms() {
method getPlatform (line 47) | getPlatform(code) {
method isValidPlatform (line 56) | isValidPlatform(code) {
method getPreferredPlatforms (line 64) | getPreferredPlatforms() {
method getPlatformsByCategory (line 75) | getPlatformsByCategory(category) {
method getDisplayName (line 86) | getDisplayName(code) {
method isValidFormat (line 96) | isValidFormat(code) {
method getCodes (line 109) | getCodes() {
FILE: tools/cli/lib/project-root.js
function findProjectRoot (line 8) | function findProjectRoot(startPath = __dirname) {
function getProjectRoot (line 42) | function getProjectRoot() {
function getSourcePath (line 52) | function getSourcePath(...segments) {
function getModulePath (line 62) | function getModulePath(moduleName, ...segments) {
FILE: tools/cli/lib/prompts.js
function getClack (line 18) | async function getClack() {
function getClackCore (line 29) | async function getClackCore() {
function getPicocolors (line 40) | async function getPicocolors() {
function handleCancel (line 53) | async function handleCancel(value, message = 'Operation cancelled') {
function intro (line 66) | async function intro(message) {
function outro (line 75) | async function outro(message) {
function note (line 85) | async function note(message, title) {
function spinner (line 95) | async function spinner() {
function select (line 147) | async function select(options) {
function multiselect (line 189) | async function multiselect(options) {
function defaultAutocompleteFilter (line 239) | function defaultAutocompleteFilter(search, option) {
function autocompleteMultiselect (line 258) | async function autocompleteMultiselect(options) {
function confirm (line 394) | async function confirm(options) {
function text (line 420) | async function text(options) {
function password (line 489) | async function password(options) {
function group (line 507) | async function group(prompts, options = {}) {
function tasks (line 526) | async function tasks(taskList) {
method info (line 535) | async info(message) {
method success (line 539) | async success(message) {
method warn (line 543) | async warn(message) {
method error (line 547) | async error(message) {
method message (line 551) | async message(message) {
method step (line 555) | async step(message) {
function cancel (line 565) | async function cancel(message = 'Operation cancelled') {
function box (line 576) | async function box(content, title, options) {
function progress (line 586) | async function progress(options) {
function taskLog (line 596) | async function taskLog(options) {
function pathPrompt (line 610) | async function pathPrompt(options) {
function autocomplete (line 627) | async function autocomplete(options) {
function selectKey (line 641) | async function selectKey(options) {
method info (line 652) | async info(generator) {
method success (line 656) | async success(generator) {
method step (line 660) | async step(generator) {
method warn (line 664) | async warn(generator) {
method error (line 668) | async error(generator) {
method message (line 672) | async message(generator, options) {
function getColor (line 682) | async function getColor() {
function prompt (line 692) | async function prompt(questions) {
FILE: tools/cli/lib/ui.js
class Separator (line 11) | class Separator {
method constructor (line 12) | constructor(text = '────────') {
class UI (line 25) | class UI {
method promptInstall (line 31) | async promptInstall(options = {}) {
method promptToolSelection (line 591) | async promptToolSelection(projectDir, options = {}) {
method promptUpdate (line 783) | async promptUpdate() {
method confirm (line 803) | async confirm(message, defaultValue = false) {
method getConfirmedDirectory (line 814) | async getConfirmedDirectory() {
method getExistingInstallation (line 832) | async getExistingInstallation(directory) {
method collectCoreConfig (line 851) | async collectCoreConfig(directory, options = {}) {
method getModuleChoices (line 929) | async getModuleChoices(installedModuleIds, customContentConfig = null) {
method selectAllModules (line 1013) | async selectAllModules(installedModuleIds = new Set()) {
method getDefaultModules (line 1110) | async getDefaultModules(installedModuleIds = new Set()) {
method promptForDirectory (line 1136) | async promptForDirectory() {
method displayDirectoryInfo (line 1160) | async displayDirectoryInfo(directory) {
method confirmDirectory (line 1191) | async confirmDirectory(directory) {
method validateDirectorySync (line 1225) | validateDirectorySync(input) {
method validateDirectory (line 1281) | async validateDirectory(input) {
method findExistingParentSync (line 1337) | findExistingParentSync(targetPath) {
method findExistingParent (line 1358) | async findExistingParent(targetPath) {
method expandUserPath (line 1379) | expandUserPath(inputPath) {
method loadExistingConfigurations (line 1412) | async loadExistingConfigurations(directory) {
method getConfiguredIdes (line 1443) | async getConfiguredIdes(directory) {
method validateCustomContentPathSync (line 1458) | validateCustomContentPathSync(input) {
method promptCustomContentSource (line 1507) | async promptCustomContentSource() {
method handleCustomModulesInModifyFlow (line 1590) | async handleCustomModulesInModifyFlow(directory, selectedModules) {
method isLegacyVersion (line 1734) | isLegacyVersion(installedVersion) {
method showLegacyVersionWarning (line 1749) | async showLegacyVersionWarning(installedVersion, currentVersion, bmadF...
method displayModuleVersions (line 1810) | async displayModuleVersions(modules, availableUpdates = []) {
method promptUpdateSelection (line 1845) | async promptUpdateSelection(availableUpdates) {
method displayStatus (line 1891) | async displayStatus(statusData) {
method displaySelectedTools (line 1922) | async displaySelectedTools(selectedIdes, preferredIdes, allTools) {
FILE: tools/cli/lib/xml-handler.js
class XmlHandler (line 11) | class XmlHandler {
method constructor (line 12) | constructor() {
method loadActivationTemplate (line 46) | async loadActivationTemplate() {
method injectActivation (line 56) | async injectActivation(agentContent, metadata = {}) {
method injectActivationSimple (line 130) | injectActivationSimple(agentContent, metadata = {}) {
method buildFromYaml (line 141) | async buildFromYaml(yamlPath, customizePath = null, metadata = {}) {
method isYamlAgent (line 172) | isYamlAgent(filePath) {
FILE: tools/cli/lib/xml-to-markdown.js
function convertXmlToMarkdown (line 4) | function convertXmlToMarkdown(xmlFilePath) {
function main (line 54) | function main() {
FILE: tools/cli/lib/yaml-format.js
function initializeModules (line 10) | async function initializeModules() {
function formatYamlContent (line 21) | async function formatYamlContent(content, filename) {
function processMarkdownFile (line 75) | async function processMarkdownFile(filePath) {
function processYamlFile (line 126) | async function processYamlFile(filePath) {
function lintYamlFile (line 142) | async function lintYamlFile(filePath) {
function main (line 155) | async function main() {
FILE: tools/cli/lib/yaml-xml-builder.js
class YamlXmlBuilder (line 12) | class YamlXmlBuilder {
method constructor (line 13) | constructor() {
method deepMerge (line 24) | deepMerge(target, source) {
method isObject (line 54) | isObject(item) {
method loadAndMergeAgent (line 64) | async loadAndMergeAgent(agentYamlPath, customizeYamlPath = null) {
method convertToXml (line 145) | async convertToXml(agentYaml, buildMetadata = {}) {
method buildPersonaXml (line 239) | buildPersonaXml(persona) {
method buildMemoriesXml (line 275) | buildMemoriesXml(memories) {
method buildPromptsXml (line 293) | buildPromptsXml(prompts) {
method buildCommandsXml (line 335) | buildCommandsXml(menuItems, forWebBundle = false) {
method buildNestedHandlers (line 394) | buildNestedHandlers(triggers) {
method processExecArray (line 430) | processExecArray(execArray) {
method calculateFileHash (line 472) | async calculateFileHash(filePath) {
method buildFromYaml (line 488) | async buildFromYaml(agentYamlPath, customizeYamlPath = null, options =...
method buildAgent (line 551) | async buildAgent(agentYamlPath, customizeYamlPath, outputPath, options...
FILE: tools/fix-doc-links.js
constant DOCS_ROOT (line 20) | const DOCS_ROOT = path.resolve(__dirname, '../docs');
constant DRY_RUN (line 21) | const DRY_RUN = !process.argv.includes('--write');
constant ALL_MARKDOWN_LINKS_REGEX (line 25) | const ALL_MARKDOWN_LINKS_REGEX = /\[([^\]]*)\]\(([^)]+)\)/g;
function getMarkdownFiles (line 30) | function getMarkdownFiles(dir) {
function convertToRepoRelative (line 63) | function convertToRepoRelative(href, currentFilePath) {
function processFile (line 167) | function processFile(filePath) {
function validateLink (line 216) | function validateLink(repoRelativePath) {
FILE: tools/format-workflow-md.js
class WorkflowFormatter (line 14) | class WorkflowFormatter {
method constructor (line 15) | constructor(options = {}) {
method format (line 24) | format(filePath) {
method formatContent (line 50) | formatContent(content) {
method isXMLLine (line 99) | isXMLLine(line) {
method formatXMLLine (line 106) | formatXMLLine(line, currentIndent, checkDepth, lineIndex, allLines) {
method isSelfClosingTag (line 172) | isSelfClosingTag(line) {
method isBlockLevelTag (line 185) | isBlockLevelTag(tagName) {
function main (line 193) | function main() {
FILE: tools/lib/xml-utils.js
function escapeXml (line 6) | function escapeXml(text) {
FILE: tools/migrate-custom-module-paths.js
function findBmadDir (line 14) | function findBmadDir(projectDir = process.cwd()) {
function updateManifest (line 30) | async function updateManifest(manifestPath, projectRoot) {
function migrate (line 85) | async function migrate(directory) {
FILE: tools/validate-doc-links.js
constant DOCS_ROOT (line 21) | const DOCS_ROOT = path.resolve(__dirname, '../docs');
constant DRY_RUN (line 22) | const DRY_RUN = !process.argv.includes('--write');
constant LINK_REGEX (line 25) | const LINK_REGEX = /\[([^\]]*)\]\(((?:\.{1,2}\/|\/)[^)]+|[\w][^)\s]*\.md...
constant STATIC_ASSET_EXTENSIONS (line 28) | const STATIC_ASSET_EXTENSIONS = ['.zip', '.txt', '.pdf', '.png', '.jpg',...
constant CUSTOM_PAGE_ROUTES (line 31) | const CUSTOM_PAGE_ROUTES = new Set([]);
constant HEADING_PATTERN (line 34) | const HEADING_PATTERN = /^#{1,6}\s+(.+)$/gm;
function getMarkdownFiles (line 39) | function getMarkdownFiles(dir) {
function stripCodeBlocks (line 67) | function stripCodeBlocks(content) {
function headingToAnchor (line 74) | function headingToAnchor(heading) {
function extractAnchors (line 87) | function extractAnchors(content) {
function resolveLink (line 111) | function resolveLink(siteRelativePath, sourceFile) {
function findFileWithContext (line 180) | function findFileWithContext(brokenPath) {
function fileToSiteRelative (line 216) | function fileToSiteRelative(filePath) {
function processFile (line 229) | function processFile(filePath) {
function applyFixes (line 311) | function applyFixes(content, issues) {
FILE: tools/validate-file-refs.js
constant PROJECT_ROOT (line 34) | const PROJECT_ROOT = path.resolve(__dirname, '..');
constant SRC_DIR (line 35) | const SRC_DIR = path.join(PROJECT_ROOT, 'src');
constant VERBOSE (line 36) | const VERBOSE = process.argv.includes('--verbose');
constant STRICT (line 37) | const STRICT = process.argv.includes('--strict');
constant SCAN_EXTENSIONS (line 42) | const SCAN_EXTENSIONS = new Set(['.yaml', '.yml', '.md', '.xml', '.csv']);
constant SKIP_DIRS (line 45) | const SKIP_DIRS = new Set(['node_modules', '.git']);
constant PROJECT_ROOT_REF (line 48) | const PROJECT_ROOT_REF = /\{project-root\}\/_bmad\/([^\s'"<>})\]`]+)/g;
constant BMAD_SHORTHAND_REF (line 51) | const BMAD_SHORTHAND_REF = /\{_bmad\}\/([^\s'"<>})\]`]+)/g;
constant EXEC_ATTR (line 54) | const EXEC_ATTR = /exec="([^"]+)"/g;
constant INVOKE_TASK (line 57) | const INVOKE_TASK = /<invoke-task>([^<]+)<\/invoke-task>/g;
constant RELATIVE_PATH_QUOTED (line 60) | const RELATIVE_PATH_QUOTED = /['"](\.\.\/?[^'"]+\.(?:md|yaml|yml|xml|jso...
constant RELATIVE_PATH_DOT (line 61) | const RELATIVE_PATH_DOT = /['"](\.\/[^'"]+\.(?:md|yaml|yml|xml|json|csv|...
constant STEP_META (line 64) | const STEP_META = /(?:thisStepFile|nextStepFile|continueStepFile|skipToS...
constant LOAD_DIRECTIVE (line 67) | const LOAD_DIRECTIVE = /Load[:\s]+`(\.[^`]+)`/g;
constant ABS_PATH_LEAK (line 70) | const ABS_PATH_LEAK = /(?:\/Users\/|\/home\/|[A-Z]:\\\\)/;
function escapeAnnotation (line 74) | function escapeAnnotation(str) {
function escapeTableCell (line 78) | function escapeTableCell(str) {
constant INSTALL_ONLY_PATHS (line 83) | const INSTALL_ONLY_PATHS = ['_config/'];
constant INSTALL_GENERATED_FILES (line 86) | const INSTALL_GENERATED_FILES = ['config.yaml'];
constant UNRESOLVABLE_VARS (line 89) | const UNRESOLVABLE_VARS = [
function getSourceFiles (line 112) | function getSourceFiles(dir) {
function stripCodeBlocks (line 137) | function stripCodeBlocks(content) {
function stripJsonExampleBlocks (line 141) | function stripJsonExampleBlocks(content) {
function mapInstalledToSource (line 149) | function mapInstalledToSource(refPath) {
function isResolvable (line 170) | function isResolvable(refStr) {
function isInstallOnly (line 179) | function isInstallOnly(cleanedPath) {
function extractYamlRefs (line 192) | function extractYamlRefs(filePath, content) {
function offsetToLine (line 249) | function offsetToLine(content, offset) {
function extractMarkdownRefs (line 257) | function extractMarkdownRefs(filePath, content) {
function extractCsvRefs (line 296) | function extractCsvRefs(filePath, content) {
function resolveRef (line 340) | function resolveRef(ref) {
function checkAbsolutePathLeaks (line 383) | function checkAbsolutePathLeaks(filePath, content) {
FILE: tools/validate-skills.js
constant PROJECT_ROOT (line 33) | const PROJECT_ROOT = path.resolve(__dirname, '..');
constant SRC_DIR (line 34) | const SRC_DIR = path.join(PROJECT_ROOT, 'src');
constant STRICT (line 39) | const STRICT = args.includes('--strict');
constant JSON_OUTPUT (line 40) | const JSON_OUTPUT = args.includes('--json');
constant NAME_REGEX (line 45) | const NAME_REGEX = /^bmad-[a-z0-9]+(-[a-z0-9]+)*$/;
constant STEP_FILENAME_REGEX (line 46) | const STEP_FILENAME_REGEX = /^step-\d{2}[a-z]?-[a-z0-9-]+\.md$/;
constant TIME_ESTIMATE_PATTERNS (line 47) | const TIME_ESTIMATE_PATTERNS = [/takes?\s+\d+\s*min/i, /~\s*\d+\s*min/i,...
constant SEVERITY_ORDER (line 49) | const SEVERITY_ORDER = { CRITICAL: 0, HIGH: 1, MEDIUM: 2, LOW: 3 };
function escapeAnnotation (line 53) | function escapeAnnotation(str) {
function escapeTableCell (line 57) | function escapeTableCell(str) {
function parseFrontmatter (line 67) | function parseFrontmatter(content) {
function parseFrontmatterMultiline (line 106) | function parseFrontmatterMultiline(content) {
function stripQuotes (line 153) | function stripQuotes(value) {
function safeReadFile (line 166) | function safeReadFile(filePath, findings, relFile) {
function stripCodeBlocks (line 184) | function stripCodeBlocks(content) {
function discoverSkillDirs (line 190) | function discoverSkillDirs(rootDirs) {
function collectSkillFiles (line 222) | function collectSkillFiles(skillDir) {
function validateSkill (line 244) | function validateSkill(skillDir) {
function formatHumanReadable (line 577) | function formatHumanReadable(results) {
function formatJson (line 668) | function formatJson(results) {
FILE: website/src/lib/site-url.mjs
function getSiteUrl (line 7) | function getSiteUrl() {
FILE: website/src/rehype-base-paths.js
function rehypeBasePaths (line 25) | function rehypeBasePaths(options = {}) {
FILE: website/src/rehype-markdown-links.js
function rehypeMarkdownLinks (line 23) | function rehypeMarkdownLinks(options = {}) {
function findFirstDelimiter (line 93) | function findFirstDelimiter(str) {
function detectContentDir (line 102) | function detectContentDir(filePath) {
Condensed preview — 526 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,196K chars).
[
{
"path": ".augment/code_review_guidelines.yaml",
"chars": 3583,
"preview": "# Augment Code Review Guidelines for BMAD-METHOD\n# https://docs.augmentcode.com/codereview/overview\n# Focus: Skill valid"
},
{
"path": ".coderabbit.yaml",
"chars": 3724,
"preview": "# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json\n\nlanguage: \"en-US\"\nearly_access: true\n"
},
{
"path": ".github/CODE_OF_CONDUCT.md",
"chars": 5314,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
},
{
"path": ".github/FUNDING.yaml",
"chars": 877,
"preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
},
{
"path": ".github/ISSUE_TEMPLATE/bug-report.yaml",
"chars": 3145,
"preview": "name: Bug Report\ndescription: File a bug report to help us improve BMad Method\ntitle: \"[BUG] \"\nlabels: bug\nassignees: []"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yaml",
"chars": 319,
"preview": "blank_issues_enabled: false\ncontact_links:\n - name: 📚 Documentation\n url: https://docs.bmad-method.org\n about: Ch"
},
{
"path": ".github/ISSUE_TEMPLATE/documentation.yaml",
"chars": 1503,
"preview": "name: Documentation\ndescription: Report issues or suggest improvements to documentation\ntitle: \"[DOCS] \"\nlabels: documen"
},
{
"path": ".github/ISSUE_TEMPLATE/feature-request.md",
"chars": 705,
"preview": "---\nname: Feature Request\nabout: Suggest an idea or new feature\ntitle: ''\nlabels: ''\nassignees: ''\n---\n\n**Describe your "
},
{
"path": ".github/ISSUE_TEMPLATE/issue.md",
"chars": 890,
"preview": "---\nname: Issue\nabout: Report a problem or something that's not working\ntitle: ''\nlabels: ''\nassignees: ''\n---\n\n**Descri"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 290,
"preview": "## What\n<!-- 1-2 sentences describing WHAT changed -->\n\n## Why\n<!-- 1-2 sentences explaining WHY this change is needed -"
},
{
"path": ".github/scripts/discord-helpers.sh",
"chars": 1183,
"preview": "#!/bin/bash\n# Discord notification helper functions\n\n# Escape markdown special chars and @mentions for safe Discord disp"
},
{
"path": ".github/workflows/coderabbit-review.yaml",
"chars": 580,
"preview": "name: Trigger CodeRabbit on Ready for Review\n\non:\n pull_request_target:\n types: [ready_for_review]\n\njobs:\n trigger-"
},
{
"path": ".github/workflows/discord.yaml",
"chars": 3701,
"preview": "name: Discord Notification\n\non:\n pull_request:\n types: [opened, closed]\n issues:\n types: [opened]\n\nenv:\n MAX_TI"
},
{
"path": ".github/workflows/docs.yaml",
"chars": 1486,
"preview": "name: Deploy Documentation\n\non:\n push:\n branches:\n - main\n paths:\n - \"docs/**\"\n - \"website/**\"\n "
},
{
"path": ".github/workflows/publish.yaml",
"chars": 4998,
"preview": "name: Publish\n\non:\n push:\n branches: [main]\n paths:\n - \"src/**\"\n - \"tools/cli/**\"\n - \"package.json"
},
{
"path": ".github/workflows/quality.yaml",
"chars": 2447,
"preview": "name: Quality & Validation\n\n# Runs comprehensive quality checks on all PRs and pushes to main:\n# - Prettier (formatting)"
},
{
"path": ".gitignore",
"chars": 910,
"preview": "# Dependencies\n**/node_modules/\npnpm-lock.yaml\nbun.lock\ndeno.lock\npnpm-workspace.yaml\npackage-lock.json\n\ntest-output/*\nc"
},
{
"path": ".husky/pre-commit",
"chars": 447,
"preview": "#!/usr/bin/env sh\n\n# Auto-fix changed files and stage them\nnpx --no-install lint-staged\n\n# Validate everything\nnpm test\n"
},
{
"path": ".markdownlint-cli2.yaml",
"chars": 910,
"preview": "# markdownlint-cli2 configuration\n# https://github.com/DavidAnson/markdownlint-cli2\n\nignores:\n - \"**/node_modules/**\"\n "
},
{
"path": ".npmignore",
"chars": 626,
"preview": "# Development & Testing\ntest/\n.husky/\n.github/\n.vscode/\n.augment/\ncoverage/\ntest-output/\n\n# Documentation site (users ac"
},
{
"path": ".npmrc",
"chars": 128,
"preview": "# Prevent peer dependency warnings during installation\nlegacy-peer-deps=true\n\n# Improve install performance\nprefer-offli"
},
{
"path": ".nvmrc",
"chars": 2,
"preview": "22"
},
{
"path": ".prettierignore",
"chars": 270,
"preview": "# Test fixtures with intentionally broken/malformed files\ntest/fixtures/**\n\n# Contributor Covenant (external standard)\nC"
},
{
"path": ".vscode/settings.json",
"chars": 2079,
"preview": "{\n \"chat.agent.enabled\": true,\n \"chat.agent.maxRequests\": 15,\n \"github.copilot.chat.agent.runTasks\": true,\n \"chat.mc"
},
{
"path": "AGENTS.md",
"chars": 465,
"preview": "# BMAD-METHOD\n\nOpen source framework for structured, agent-assisted software delivery.\n\n## Rules\n\n- Use Conventional Com"
},
{
"path": "CHANGELOG.md",
"chars": 88275,
"preview": "# Changelog\n\n## v6.2.0 - 2026-03-15\n\n### 🎁 Highlights\n\n* Fix manifest generation so BMad Builder installs correctly when"
},
{
"path": "CNAME",
"chars": 20,
"preview": "docs.bmad-method.org"
},
{
"path": "CONTRIBUTING.md",
"chars": 5912,
"preview": "# Contributing to BMad\n\nThank you for considering contributing! We believe in **Human Amplification, Not Replacement** —"
},
{
"path": "CONTRIBUTORS.md",
"chars": 1323,
"preview": "# Contributors\n\nBMad Core, BMad Method and BMad and Community BMad Modules are made possible by contributions from our c"
},
{
"path": "LICENSE",
"chars": 1566,
"preview": "MIT License\n\nCopyright (c) 2025 BMad Code, LLC\n\nThis project incorporates contributions from the open source community.\n"
},
{
"path": "README.md",
"chars": 6021,
"preview": "\n\n[]("
},
{
"path": "README_CN.md",
"chars": 4555,
"preview": "\n\n[]("
},
{
"path": "SECURITY.md",
"chars": 3197,
"preview": "# Security Policy\n\n## Supported Versions\n\nWe release security patches for the following versions:\n\n| Version | Supported"
},
{
"path": "TRADEMARK.md",
"chars": 2805,
"preview": "# Trademark Notice & Guidelines\n\n## Trademark Ownership\n\nThe following names and logos are trademarks of BMad Code, LLC:"
},
{
"path": "docs/404.md",
"chars": 140,
"preview": "---\ntitle: Page Not Found\ntemplate: splash\n---\n\n\nThe page you're looking for doesn't exist or has been moved.\n\n[Return t"
},
{
"path": "docs/_STYLE_GUIDE.md",
"chars": 10969,
"preview": "---\ntitle: \"Documentation Style Guide\"\ndescription: Project-specific documentation conventions based on Google style and"
},
{
"path": "docs/explanation/advanced-elicitation.md",
"chars": 2251,
"preview": "---\ntitle: \"Advanced Elicitation\"\ndescription: Push the LLM to rethink its work using structured reasoning methods\nsideb"
},
{
"path": "docs/explanation/adversarial-review.md",
"chars": 2734,
"preview": "---\ntitle: \"Adversarial Review\"\ndescription: Forced reasoning technique that prevents lazy \"looks good\" reviews\nsidebar:"
},
{
"path": "docs/explanation/brainstorming.md",
"chars": 1226,
"preview": "---\ntitle: \"Brainstorming\"\ndescription: Interactive creative sessions using 60+ proven ideation techniques\nsidebar:\n or"
},
{
"path": "docs/explanation/established-projects-faq.md",
"chars": 2109,
"preview": "---\ntitle: \"Established Projects FAQ\"\ndescription: Common questions about using BMad Method on established projects\nside"
},
{
"path": "docs/explanation/party-mode.md",
"chars": 2407,
"preview": "---\ntitle: \"Party Mode\"\ndescription: Multi-agent collaboration - get all your AI agents in one conversation\nsidebar:\n o"
},
{
"path": "docs/explanation/preventing-agent-conflicts.md",
"chars": 3410,
"preview": "---\ntitle: \"Preventing Agent Conflicts\"\ndescription: How architecture prevents conflicts when multiple agents implement "
},
{
"path": "docs/explanation/project-context.md",
"chars": 6134,
"preview": "---\ntitle: \"Project Context\"\ndescription: How project-context.md guides AI agents with your project's rules and preferen"
},
{
"path": "docs/explanation/quick-dev.md",
"chars": 5365,
"preview": "---\ntitle: \"Quick Dev\"\ndescription: Reduce human-in-the-loop friction without giving up the checkpoints that protect out"
},
{
"path": "docs/explanation/why-solutioning-matters.md",
"chars": 2715,
"preview": "---\ntitle: \"Why Solutioning Matters\"\ndescription: Understanding why the solutioning phase is critical for multi-epic pro"
},
{
"path": "docs/how-to/customize-bmad.md",
"chars": 5575,
"preview": "---\ntitle: \"How to Customize BMad\"\ndescription: Customize agents, workflows, and modules while preserving update compati"
},
{
"path": "docs/how-to/established-projects.md",
"chars": 4481,
"preview": "---\ntitle: \"Established Projects\"\ndescription: How to use BMad Method on existing codebases\nsidebar:\n order: 6\n---\n\nUse"
},
{
"path": "docs/how-to/get-answers-about-bmad.md",
"chars": 4517,
"preview": "---\ntitle: \"How to Get Answers About BMad\"\ndescription: Use an LLM to quickly answer your own BMad questions\nsidebar:\n "
},
{
"path": "docs/how-to/install-bmad.md",
"chars": 3377,
"preview": "---\ntitle: \"How to Install BMad\"\ndescription: Step-by-step guide to installing BMad in your project\nsidebar:\n order: 1\n"
},
{
"path": "docs/how-to/non-interactive-installation.md",
"chars": 5500,
"preview": "---\ntitle: Non-Interactive Installation\ndescription: Install BMad using command-line flags for CI/CD pipelines and autom"
},
{
"path": "docs/how-to/project-context.md",
"chars": 3991,
"preview": "---\ntitle: \"Manage Project Context\"\ndescription: Create and maintain project-context.md to guide AI agents\nsidebar:\n or"
},
{
"path": "docs/how-to/quick-fixes.md",
"chars": 3446,
"preview": "---\ntitle: \"Quick Fixes\"\ndescription: How to make quick fixes and ad-hoc changes\nsidebar:\n order: 5\n---\n\nUse **Quick De"
},
{
"path": "docs/how-to/shard-large-documents.md",
"chars": 2090,
"preview": "---\ntitle: \"Document Sharding Guide\"\ndescription: Split large markdown files into smaller organized files for better con"
},
{
"path": "docs/how-to/upgrade-to-v6.md",
"chars": 3598,
"preview": "---\ntitle: \"How to Upgrade to v6\"\ndescription: Migrate from BMad v4 to v6\nsidebar:\n order: 3\n---\n\nUse the BMad installe"
},
{
"path": "docs/index.md",
"chars": 3693,
"preview": "---\ntitle: Welcome to the BMad Method\ndescription: AI-driven development framework with specialized agents, guided workf"
},
{
"path": "docs/reference/agents.md",
"chars": 4064,
"preview": "---\ntitle: Agents\ndescription: Default BMM agents with their skill IDs, menu triggers, and primary workflows\nsidebar:\n "
},
{
"path": "docs/reference/commands.md",
"chars": 6255,
"preview": "---\ntitle: Skills\ndescription: Reference for BMad skills — what they are, how they work, and where to find them.\nsidebar"
},
{
"path": "docs/reference/core-tools.md",
"chars": 12970,
"preview": "---\ntitle: Core Tools\ndescription: Reference for all built-in tasks and workflows available in every BMad installation w"
},
{
"path": "docs/reference/modules.md",
"chars": 3799,
"preview": "---\ntitle: Official Modules\ndescription: Add-on modules for building custom agents, creative intelligence, game developm"
},
{
"path": "docs/reference/testing.md",
"chars": 5628,
"preview": "---\ntitle: Testing Options\ndescription: Comparing the built-in QA agent (Quinn) with the Test Architect (TEA) module for"
},
{
"path": "docs/reference/workflow-map.md",
"chars": 6513,
"preview": "---\ntitle: \"Workflow Map\"\ndescription: Visual reference for BMad Method workflow phases and outputs\nsidebar:\n order: 1\n"
},
{
"path": "docs/roadmap.mdx",
"chars": 6047,
"preview": "---\ntitle: Roadmap\ndescription: What's next for BMad - Features, improvements, and community contributions\n---\n\n# The BM"
},
{
"path": "docs/tutorials/getting-started.md",
"chars": 12550,
"preview": "---\ntitle: \"Getting Started\"\ndescription: Install BMad and build your first project\n---\n\nBuild software faster using AI-"
},
{
"path": "docs/zh-cn/404.md",
"chars": 76,
"preview": "---\ntitle: 页面未找到\ntemplate: splash\n---\n\n\n您查找的页面不存在或已被移动。\n\n[返回首页](./index.md)\n"
},
{
"path": "docs/zh-cn/_STYLE_GUIDE.md",
"chars": 10956,
"preview": "---\ntitle: \"Documentation Style Guide\"\ndescription: Project-specific documentation conventions based on Google style and"
},
{
"path": "docs/zh-cn/explanation/advanced-elicitation.md",
"chars": 1483,
"preview": "---\ntitle: \"高级启发\"\ndescription: 使用结构化推理方法推动 LLM 重新思考其工作\nsidebar:\n order: 6\n---\n\n让 LLM 重新审视它刚刚生成的内容。你选择一种推理方法,它将该方法应用于自己的"
},
{
"path": "docs/zh-cn/explanation/adversarial-review.md",
"chars": 1547,
"preview": "---\ntitle: \"对抗性评审\"\ndescription: 防止懒惰\"看起来不错\"评审的强制推理技术\nsidebar:\n order: 5\n---\n\n通过要求发现问题来强制进行更深入的分析。\n\n## 什么是对抗性评审?\n\n一种评审技术"
},
{
"path": "docs/zh-cn/explanation/brainstorming.md",
"chars": 816,
"preview": "---\ntitle: \"头脑风暴\"\ndescription: 使用 60+ 种经过验证的构思技术进行互动创意会议\nsidebar:\n order: 2\n---\n\n通过引导式探索释放你的创造力。\n\n## 什么是头脑风暴?\n\n运行 `brai"
},
{
"path": "docs/zh-cn/explanation/established-projects-faq.md",
"chars": 1344,
"preview": "---\ntitle: \"既有项目常见问题\"\ndescription: 关于在既有项目上使用 BMad 方法的常见问题\nsidebar:\n order: 8\n---\n关于使用 BMad 方法(BMM)在既有项目上工作的常见问题的快速解答。\n"
},
{
"path": "docs/zh-cn/explanation/party-mode.md",
"chars": 1778,
"preview": "---\ntitle: \"派对模式\"\ndescription: 多智能体协作——将所有 AI 智能体汇聚到一次对话中\nsidebar:\n order: 7\n---\n\n将所有 AI 智能体汇聚到一次对话中。\n\n## 什么是 Party Mod"
},
{
"path": "docs/zh-cn/explanation/preventing-agent-conflicts.md",
"chars": 2849,
"preview": "---\ntitle: \"防止智能体冲突\"\ndescription: 架构如何在多个智能体实现系统时防止冲突\nsidebar:\n order: 4\n---\n\n当多个 AI 智能体实现系统的不同部分时,它们可能会做出相互冲突的技术决策。架构文"
},
{
"path": "docs/zh-cn/explanation/project-context.md",
"chars": 4000,
"preview": "---\ntitle: \"项目上下文\"\ndescription: project-context.md 如何使用项目的规则和偏好指导 AI 智能体\nsidebar:\n order: 7\n---\n\n`project-context.md` 文"
},
{
"path": "docs/zh-cn/explanation/quick-dev.md",
"chars": 1804,
"preview": "---\ntitle: \"快速开发\"\ndescription: 在不牺牲输出质量检查点的情况下减少人机交互的摩擦\nsidebar:\n order: 2\n---\n\n输入意图,输出代码变更,尽可能少的人机交互轮次——同时不牺牲质量。\n\n它让模型"
},
{
"path": "docs/zh-cn/explanation/why-solutioning-matters.md",
"chars": 1683,
"preview": "---\ntitle: \"为什么解决方案阶段很重要\"\ndescription: 理解为什么解决方案阶段对于多史诗项目至关重要\nsidebar:\n order: 3\n---\n\n\n阶段 3(解决方案)将构建**什么**(来自规划)转化为**如何"
},
{
"path": "docs/zh-cn/how-to/customize-bmad.md",
"chars": 4012,
"preview": "---\ntitle: \"如何自定义 BMad\"\ndescription: 自定义智能体、工作流和模块,同时保持更新兼容性\nsidebar:\n order: 7\n---\n\n使用 `.customize.yaml` 文件来调整智能体行为、角色"
},
{
"path": "docs/zh-cn/how-to/established-projects.md",
"chars": 2938,
"preview": "---\ntitle: \"既有项目\"\ndescription: 如何在现有代码库中使用 BMad Method\nsidebar:\n order: 6\n---\n\n在现有项目和遗留代码库上工作时,有效使用 BMad Method。\n\n本指南涵盖"
},
{
"path": "docs/zh-cn/how-to/get-answers-about-bmad.md",
"chars": 2960,
"preview": "---\ntitle: \"如何获取关于 BMad 的答案\"\ndescription: 使用 LLM 快速回答您自己的 BMad 问题\nsidebar:\n order: 4\n---\n\n## 从这里开始:BMad-Help\n\n**获取关于 BM"
},
{
"path": "docs/zh-cn/how-to/install-bmad.md",
"chars": 1689,
"preview": "---\ntitle: \"如何安装 BMad\"\ndescription: 在项目中安装 BMad 的分步指南\nsidebar:\n order: 1\n---\n\n使用 `npx bmad-method install` 命令在项目中设置 BMa"
},
{
"path": "docs/zh-cn/how-to/non-interactive-installation.md",
"chars": 3865,
"preview": "---\ntitle: \"非交互式安装\"\ndescription: 使用命令行标志安装 BMad,适用于 CI/CD 流水线和自动化部署\nsidebar:\n order: 2\n---\n\n使用命令行标志以非交互方式安装 BMad。这适用于:\n"
},
{
"path": "docs/zh-cn/how-to/project-context.md",
"chars": 2417,
"preview": "---\ntitle: \"管理项目上下文\"\ndescription: 创建并维护 project-context.md 以指导 AI 智能体\nsidebar:\n order: 7\n---\n\n使用 `project-context.md` 文"
},
{
"path": "docs/zh-cn/how-to/quick-fixes.md",
"chars": 2047,
"preview": "---\ntitle: \"快速修复\"\ndescription: 如何进行快速修复和临时更改\nsidebar:\n order: 5\n---\n\n使用 **Quick Dev** 进行 bug 修复、重构或小型针对性更改,这些操作不需要完整的 B"
},
{
"path": "docs/zh-cn/how-to/shard-large-documents.md",
"chars": 1395,
"preview": "---\ntitle: \"文档分片指南\"\ndescription: 将大型 Markdown 文件拆分为更小的组织化文件,以更好地管理上下文\nsidebar:\n order: 8\n---\n\n如果需要将大型 Markdown 文件拆分为更小、"
},
{
"path": "docs/zh-cn/how-to/upgrade-to-v6.md",
"chars": 3428,
"preview": "---\ntitle: \"如何升级到 v6\"\ndescription: 从 BMad v4 迁移到 v6\nsidebar:\n order: 3\n---\n\n使用 BMad 安装程序从 v4 升级到 v6,其中包括自动检测旧版安装和迁移辅助。\n"
},
{
"path": "docs/zh-cn/index.md",
"chars": 2212,
"preview": "---\ntitle: 欢迎使用 BMad 方法\ndescription: 具备专业智能体、引导式工作流和智能规划的 AI 驱动开发框架\n---\n\nBMad 方法(**B**reakthrough **M**ethod of **A**gil"
},
{
"path": "docs/zh-cn/reference/agents.md",
"chars": 2389,
"preview": "---\ntitle: \"智能体\"\ndescription: 默认 BMM 智能体及其菜单触发器和主要工作流\nsidebar:\n order: 2\n---\n\n## 默认智能体\n\n本页列出了随 BMad Method 安装的默认 BMM(Ag"
},
{
"path": "docs/zh-cn/reference/commands.md",
"chars": 3878,
"preview": "---\ntitle: \"命令\"\ndescription: BMad 斜杠命令参考——它们是什么、如何工作以及在哪里找到它们。\nsidebar:\n order: 3\n---\n\n斜杠命令是预构建的提示词,用于在 IDE 中加载智能体、运行工作"
},
{
"path": "docs/zh-cn/reference/core-tools.md",
"chars": 5822,
"preview": "---\ntitle: \"核心工具\"\ndescription: 每个 BMad 安装都自带的内置任务和工作流参考。\nsidebar:\n order: 2\n---\n\n每个 BMad 安装都包含一组核心技能,可以配合你正在做的任何事情使用——跨"
},
{
"path": "docs/zh-cn/reference/modules.md",
"chars": 2915,
"preview": "---\ntitle: \"官方模块\"\ndescription: 用于构建自定义智能体、创意智能、游戏开发和测试的附加模块\nsidebar:\n order: 4\n---\n\nBMad 通过您在安装期间选择的官方模块进行扩展。这些附加模块为内置核"
},
{
"path": "docs/zh-cn/reference/testing.md",
"chars": 3262,
"preview": "---\ntitle: \"测试选项\"\ndescription: 比较内置 QA 智能体(Quinn)与测试架构师(TEA)模块的测试自动化。\nsidebar:\n order: 5\n---\n\nBMad 提供两条测试路径:用于快速生成测试的内置"
},
{
"path": "docs/zh-cn/reference/workflow-map.md",
"chars": 4815,
"preview": "---\ntitle: \"工作流程图\"\ndescription: BMad Method 工作流程阶段与输出的可视化参考\nsidebar:\n order: 1\n---\n\nBMad Method(BMM)是 BMad 生态系统中的一个模块,旨"
},
{
"path": "docs/zh-cn/roadmap.mdx",
"chars": 4911,
"preview": "---\ntitle: 路线图\ndescription: BMad 的下一步计划——功能、改进与社区贡献\n---\n\n# BMad 方法:公开路线图\n\nBMad 方法、BMad 方法模块(BMM)和 BMad 构建器(BMB)正在持续演进。以下"
},
{
"path": "docs/zh-cn/tutorials/getting-started.md",
"chars": 9089,
"preview": "---\ntitle: \"快速入门\"\ndescription: 安装 BMad 并构建你的第一个项目\n---\n\n使用 AI 驱动的工作流更快地构建软件,通过专门的智能体引导你完成规划、架构设计和实现。\n\n## 你将学到\n\n- 为新项目安装并初"
},
{
"path": "eslint.config.mjs",
"chars": 4177,
"preview": "import js from '@eslint/js';\nimport eslintConfigPrettier from 'eslint-config-prettier/flat';\nimport nodePlugin from 'esl"
},
{
"path": "package.json",
"chars": 3514,
"preview": "{\n \"$schema\": \"https://json.schemastore.org/package.json\",\n \"name\": \"bmad-method\",\n \"version\": \"6.2.0\",\n \"descriptio"
},
{
"path": "prettier.config.mjs",
"chars": 658,
"preview": "export default {\n $schema: 'https://json.schemastore.org/prettierrc',\n printWidth: 140,\n tabWidth: 2,\n useTabs: fals"
},
{
"path": "src/bmm-skills/1-analysis/bmad-agent-analyst/SKILL.md",
"chars": 3786,
"preview": "---\nname: bmad-agent-analyst\ndescription: Strategic business analyst and requirements expert. Use when the user asks to "
},
{
"path": "src/bmm-skills/1-analysis/bmad-agent-analyst/bmad-skill-manifest.yaml",
"chars": 1033,
"preview": "type: skill\nname: bmad-agent-analyst\ndisplayName: Mary\ntitle: Business Analyst\nicon: \"📊\"\ncapabilities: \"market research,"
},
{
"path": "src/bmm-skills/1-analysis/bmad-agent-tech-writer/SKILL.md",
"chars": 3415,
"preview": "---\nname: bmad-agent-tech-writer\ndescription: Technical documentation specialist and knowledge curator. Use when the use"
},
{
"path": "src/bmm-skills/1-analysis/bmad-agent-tech-writer/bmad-skill-manifest.yaml",
"chars": 981,
"preview": "type: skill\nname: bmad-agent-tech-writer\ndisplayName: Paige\ntitle: Technical Writer\nicon: \"📚\"\ncapabilities: \"documentati"
},
{
"path": "src/bmm-skills/1-analysis/bmad-agent-tech-writer/explain-concept.md",
"chars": 679,
"preview": "---\nname: explain-concept\ndescription: Create clear technical explanations with examples\nmenu-code: EC\n---\n\n# Explain Co"
},
{
"path": "src/bmm-skills/1-analysis/bmad-agent-tech-writer/mermaid-gen.md",
"chars": 676,
"preview": "---\nname: mermaid-gen\ndescription: Create Mermaid-compliant diagrams\nmenu-code: MG\n---\n\n# Mermaid Generate\n\nCreate a Mer"
},
{
"path": "src/bmm-skills/1-analysis/bmad-agent-tech-writer/validate-doc.md",
"chars": 653,
"preview": "---\nname: validate-doc\ndescription: Validate documentation against standards and best practices\nmenu-code: VD\n---\n\n# Val"
},
{
"path": "src/bmm-skills/1-analysis/bmad-agent-tech-writer/write-document.md",
"chars": 923,
"preview": "---\nname: write-document\ndescription: Author a document following documentation best practices\nmenu-code: WD\n---\n\n# Writ"
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/SKILL.md",
"chars": 213,
"preview": "---\nname: bmad-document-project\ndescription: 'Document brownfield projects for AI context. Use when the user says \"docum"
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/bmad-skill-manifest.yaml",
"chars": 12,
"preview": "type: skill\n"
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/checklist.md",
"chars": 10079,
"preview": "# Document Project Workflow - Validation Checklist\n\n## Scan Level and Resumability\n\n- [ ] Scan level selection offered ("
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/documentation-requirements.csv",
"chars": 8076,
"preview": "project_type_id,requires_api_scan,requires_data_models,requires_state_management,requires_ui_components,requires_deploym"
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/instructions.md",
"chars": 5164,
"preview": "# Document Project Workflow Router\n\n<critical>Communicate all responses in {communication_language}</critical>\n\n<workflo"
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/templates/deep-dive-template.md",
"chars": 5848,
"preview": "# {{target_name}} - Deep Dive Documentation\n\n**Generated:** {{date}}\n**Scope:** {{target_path}}\n**Files Analyzed:** {{fi"
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/templates/index-template.md",
"chars": 4496,
"preview": "# {{project_name}} Documentation Index\n\n**Type:** {{repository_type}}{{#if is_multi_part}} with {{parts_count}} parts{{/"
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/templates/project-overview-template.md",
"chars": 1951,
"preview": "# {{project_name}} - Project Overview\n\n**Date:** {{date}}\n**Type:** {{project_type}}\n**Architecture:** {{architecture_ty"
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/templates/project-scan-report-schema.json",
"chars": 4836,
"preview": "{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"Project Scan Report Schema\",\n \"description\": \"Sta"
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/templates/source-tree-template.md",
"chars": 2158,
"preview": "# {{project_name}} - Source Tree Analysis\n\n**Date:** {{date}}\n\n## Overview\n\n{{source_tree_overview}}\n\n{{#if is_multi_par"
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/workflow.md",
"chars": 534,
"preview": "# Document Project Workflow\n\n**Goal:** Document brownfield projects for AI context.\n\n**Your Role:** Project documentatio"
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-instructions.md",
"chars": 11743,
"preview": "# Deep-Dive Documentation Instructions\n\n<workflow>\n\n<critical>This workflow performs exhaustive deep-dive documentation "
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-workflow.md",
"chars": 975,
"preview": "# Deep-Dive Documentation Sub-Workflow\n\n**Goal:** Exhaustive deep-dive documentation of specific project areas.\n\n**Your "
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-instructions.md",
"chars": 42729,
"preview": "# Full Project Scan Instructions\n\n<workflow>\n\n<critical>This workflow performs complete project documentation (Steps 1-1"
},
{
"path": "src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-workflow.md",
"chars": 966,
"preview": "# Full Project Scan Sub-Workflow\n\n**Goal:** Complete project documentation (initial scan or full rescan).\n\n**Your Role:*"
},
{
"path": "src/bmm-skills/1-analysis/bmad-product-brief/SKILL.md",
"chars": 5524,
"preview": "---\nname: bmad-product-brief\ndescription: Create or update product briefs through guided or autonomous discovery. Use wh"
},
{
"path": "src/bmm-skills/1-analysis/bmad-product-brief/agents/artifact-analyzer.md",
"chars": 2489,
"preview": "# Artifact Analyzer\n\nYou are a research analyst. Your job is to scan project documents and extract information relevant "
},
{
"path": "src/bmm-skills/1-analysis/bmad-product-brief/agents/opportunity-reviewer.md",
"chars": 1751,
"preview": "# Opportunity Reviewer\n\nYou are a strategic advisor reviewing a product brief draft. Your job is to spot untapped potent"
},
{
"path": "src/bmm-skills/1-analysis/bmad-product-brief/agents/skeptic-reviewer.md",
"chars": 1558,
"preview": "# Skeptic Reviewer\n\nYou are a critical analyst reviewing a product brief draft. Your job is to find weaknesses, gaps, an"
},
{
"path": "src/bmm-skills/1-analysis/bmad-product-brief/agents/web-researcher.md",
"chars": 1662,
"preview": "# Web Researcher\n\nYou are a market research analyst. Your job is to find relevant competitive, market, and industry cont"
},
{
"path": "src/bmm-skills/1-analysis/bmad-product-brief/bmad-manifest.json",
"chars": 494,
"preview": "{\n \"module-code\": \"bmm\",\n \"replaces-skill\": \"bmad-create-product-brief\",\n \"capabilities\": [\n {\n \"name\": \"crea"
},
{
"path": "src/bmm-skills/1-analysis/bmad-product-brief/bmad-skill-manifest.yaml",
"chars": 12,
"preview": "type: skill\n"
},
{
"path": "src/bmm-skills/1-analysis/bmad-product-brief/prompts/contextual-discovery.md",
"chars": 2576,
"preview": "**Language:** Use `{communication_language}` for all output.\n**Output Language:** Use `{document_output_language}` for d"
},
{
"path": "src/bmm-skills/1-analysis/bmad-product-brief/prompts/draft-and-review.md",
"chars": 4012,
"preview": "**Language:** Use `{communication_language}` for all output.\n**Output Language:** Use `{document_output_language}` for d"
},
{
"path": "src/bmm-skills/1-analysis/bmad-product-brief/prompts/finalize.md",
"chars": 3911,
"preview": "**Language:** Use `{communication_language}` for all output.\n**Output Language:** Use `{document_output_language}` for d"
},
{
"path": "src/bmm-skills/1-analysis/bmad-product-brief/prompts/guided-elicitation.md",
"chars": 3402,
"preview": "**Language:** Use `{communication_language}` for all output.\n**Output Language:** Use `{document_output_language}` for d"
},
{
"path": "src/bmm-skills/1-analysis/bmad-product-brief/resources/brief-template.md",
"chars": 2290,
"preview": "# Product Brief Template\n\nThis is a flexible guide for the executive product brief — adapt it to serve the product's sto"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-domain-research/SKILL.md",
"chars": 206,
"preview": "---\nname: bmad-domain-research\ndescription: 'Conduct domain and industry research. Use when the user says wants to do do"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-domain-research/bmad-skill-manifest.yaml",
"chars": 12,
"preview": "type: skill\n"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md",
"chars": 5316,
"preview": "# Domain Research Step 1: Domain Research Scope Confirmation\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER gene"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md",
"chars": 8558,
"preview": "# Domain Research Step 2: Industry Analysis\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content with"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md",
"chars": 9443,
"preview": "# Domain Research Step 3: Competitive Landscape\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content "
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md",
"chars": 6891,
"preview": "# Domain Research Step 4: Regulatory Focus\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content witho"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md",
"chars": 7423,
"preview": "# Domain Research Step 5: Technical Trends\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content witho"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md",
"chars": 16886,
"preview": "# Domain Research Step 6: Research Synthesis and Completion\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER gener"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-domain-research/research.template.md",
"chars": 581,
"preview": "---\nstepsCompleted: []\ninputDocuments: []\nworkflowType: 'research'\nlastStep: 1\nresearch_type: '{{research_type}}'\nresear"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-domain-research/workflow.md",
"chars": 2276,
"preview": "# Domain Research Workflow\n\n**Goal:** Conduct comprehensive domain/industry research using current web data and verified"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-market-research/SKILL.md",
"chars": 196,
"preview": "---\nname: bmad-market-research\ndescription: 'Conduct market research on competition and customers. Use when the user say"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-market-research/bmad-skill-manifest.yaml",
"chars": 12,
"preview": "type: skill\n"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-market-research/research.template.md",
"chars": 581,
"preview": "---\nstepsCompleted: []\ninputDocuments: []\nworkflowType: 'research'\nlastStep: 1\nresearch_type: '{{research_type}}'\nresear"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-01-init.md",
"chars": 6352,
"preview": "# Market Research Step 1: Market Research Initialization\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-02-customer-behavior.md",
"chars": 9181,
"preview": "# Market Research Step 2: Customer Behavior and Segments\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-03-customer-pain-points.md",
"chars": 9497,
"preview": "# Market Research Step 3: Customer Pain Points and Needs\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-04-customer-decisions.md",
"chars": 9936,
"preview": "# Market Research Step 4: Customer Decisions and Journey\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-05-competitive-analysis.md",
"chars": 5682,
"preview": "# Market Research Step 5: Competitive Analysis\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content w"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md",
"chars": 19060,
"preview": "# Market Research Step 6: Research Completion\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content wi"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-market-research/workflow.md",
"chars": 2233,
"preview": "# Market Research Workflow\n\n**Goal:** Conduct comprehensive market research using current web data and verified sources "
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-technical-research/SKILL.md",
"chars": 241,
"preview": "---\nname: bmad-technical-research\ndescription: 'Conduct technical research on technologies and architecture. Use when th"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-technical-research/bmad-skill-manifest.yaml",
"chars": 12,
"preview": "type: skill\n"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-technical-research/research.template.md",
"chars": 581,
"preview": "---\nstepsCompleted: []\ninputDocuments: []\nworkflowType: 'research'\nlastStep: 1\nresearch_type: '{{research_type}}'\nresear"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-01-init.md",
"chars": 5503,
"preview": "# Technical Research Step 1: Technical Research Scope Confirmation\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVE"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-02-technical-overview.md",
"chars": 9365,
"preview": "# Technical Research Step 2: Technology Stack Analysis\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate c"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-03-integration-patterns.md",
"chars": 9913,
"preview": "# Technical Research Step 3: Integration Patterns\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate conten"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-04-architectural-patterns.md",
"chars": 7134,
"preview": "# Technical Research Step 4: Architectural Patterns\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate cont"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-05-implementation-research.md",
"chars": 7700,
"preview": "# Technical Research Step 5: Implementation Research\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate con"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md",
"chars": 20969,
"preview": "# Technical Research Step 6: Technical Synthesis and Completion\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER g"
},
{
"path": "src/bmm-skills/1-analysis/research/bmad-technical-research/workflow.md",
"chars": 2307,
"preview": "\n# Technical Research Workflow\n\n**Goal:** Conduct comprehensive technical research using current web data and verified s"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-agent-pm/SKILL.md",
"chars": 3444,
"preview": "---\nname: bmad-agent-pm\ndescription: Product manager for PRD creation and requirements discovery. Use when the user asks"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-agent-pm/bmad-skill-manifest.yaml",
"chars": 1096,
"preview": "type: skill\nname: bmad-agent-pm\ndisplayName: John\ntitle: Product Manager\nicon: \"📋\"\ncapabilities: \"PRD creation, requirem"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-agent-ux-designer/SKILL.md",
"chars": 2719,
"preview": "---\nname: bmad-agent-ux-designer\ndescription: UX designer and UI specialist. Use when the user asks to talk to Sally or "
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-agent-ux-designer/bmad-skill-manifest.yaml",
"chars": 767,
"preview": "type: skill\nname: bmad-agent-ux-designer\ndisplayName: Sally\ntitle: UX Designer\nicon: \"🎨\"\ncapabilities: \"user research, i"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/SKILL.md",
"chars": 216,
"preview": "---\nname: bmad-create-prd\ndescription: 'Create a PRD from scratch. Use when the user says \"lets create a product require"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/bmad-skill-manifest.yaml",
"chars": 12,
"preview": "type: skill\n"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/data/domain-complexity.csv",
"chars": 7324,
"preview": "domain,signals,complexity,key_concerns,required_knowledge,suggested_workflow,web_searches,special_sections\nhealthcare,\"m"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/data/prd-purpose.md",
"chars": 7118,
"preview": "# BMAD PRD Purpose\n\n**The PRD is the top of the required funnel that feeds all subsequent product development work in rh"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/data/project-types.csv",
"chars": 3144,
"preview": "project_type,detection_signals,key_questions,required_sections,skip_sections,web_search_triggers,innovation_signals\napi_"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-01-init.md",
"chars": 7724,
"preview": "# Step 1: Workflow Initialization\n\n**Progress: Step 1 of 11** - Next: Project Discovery\n\n## STEP GOAL:\n\nInitialize the P"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-01b-continue.md",
"chars": 5704,
"preview": "# Step 1B: Workflow Continuation\n\n## STEP GOAL:\n\nResume the PRD workflow from where it was left off, ensuring smooth con"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-02-discovery.md",
"chars": 8037,
"preview": "# Step 2: Project Discovery\n\n**Progress: Step 2 of 13** - Next: Product Vision\n\n## STEP GOAL:\n\nDiscover and classify the"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-02b-vision.md",
"chars": 6704,
"preview": "# Step 2b: Product Vision Discovery\n\n**Progress: Step 2b of 13** - Next: Executive Summary\n\n## STEP GOAL:\n\nDiscover what"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-02c-executive-summary.md",
"chars": 7167,
"preview": "# Step 2c: Executive Summary Generation\n\n**Progress: Step 2c of 13** - Next: Success Criteria\n\n## STEP GOAL:\n\nGenerate t"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-03-success.md",
"chars": 9109,
"preview": "# Step 3: Success Criteria Definition\n\n**Progress: Step 3 of 11** - Next: User Journey Mapping\n\n## MANDATORY EXECUTION R"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-04-journeys.md",
"chars": 8960,
"preview": "# Step 4: User Journey Mapping\n\n**Progress: Step 4 of 11** - Next: Domain Requirements\n\n## MANDATORY EXECUTION RULES (RE"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-05-domain.md",
"chars": 6856,
"preview": "# Step 5: Domain-Specific Requirements (Optional)\n\n**Progress: Step 5 of 13** - Next: Innovation Focus\n\n## STEP GOAL:\n\nF"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-06-innovation.md",
"chars": 8606,
"preview": "# Step 6: Innovation Discovery\n\n**Progress: Step 6 of 11** - Next: Project Type Analysis\n\n## MANDATORY EXECUTION RULES ("
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-07-project-type.md",
"chars": 8713,
"preview": "# Step 7: Project-Type Deep Dive\n\n**Progress: Step 7 of 11** - Next: Scoping\n\n## MANDATORY EXECUTION RULES (READ FIRST):"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-08-scoping.md",
"chars": 7793,
"preview": "# Step 8: Scoping Exercise - MVP & Future Features\n\n**Progress: Step 8 of 11** - Next: Functional Requirements\n\n## MANDA"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-09-functional.md",
"chars": 9085,
"preview": "# Step 9: Functional Requirements Synthesis\n\n**Progress: Step 9 of 11** - Next: Non-Functional Requirements\n\n## MANDATOR"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-10-nonfunctional.md",
"chars": 8920,
"preview": "# Step 10: Non-Functional Requirements\n\n**Progress: Step 10 of 12** - Next: Polish Document\n\n## MANDATORY EXECUTION RULE"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-11-polish.md",
"chars": 9236,
"preview": "# Step 11: Document Polish\n\n**Progress: Step 11 of 12** - Next: Complete PRD\n\n## MANDATORY EXECUTION RULES (READ FIRST):"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-12-complete.md",
"chars": 4797,
"preview": "# Step 12: Workflow Completion\n\n**Final Step - Complete the PRD**\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- ✅ THIS "
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/templates/prd-template.md",
"chars": 164,
"preview": "---\nstepsCompleted: []\ninputDocuments: []\nworkflowType: 'prd'\n---\n\n# Product Requirements Document - {{project_name}}\n\n*"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-prd/workflow.md",
"chars": 2829,
"preview": "---\nmain_config: '{project-root}/_bmad/bmm/config.yaml'\noutputFile: '{planning_artifacts}/prd.md'\n---\n\n# PRD Create Work"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/SKILL.md",
"chars": 240,
"preview": "---\nname: bmad-create-ux-design\ndescription: 'Plan UX patterns and design specifications. Use when the user says \"lets c"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/bmad-skill-manifest.yaml",
"chars": 12,
"preview": "type: skill\n"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-01-init.md",
"chars": 5724,
"preview": "# Step 1: UX Design Workflow Initialization\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content with"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-01b-continue.md",
"chars": 4803,
"preview": "# Step 1B: UX Design Workflow Continuation\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content witho"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-02-discovery.md",
"chars": 6599,
"preview": "# Step 2: Project Understanding\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content without user inp"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-03-core-experience.md",
"chars": 8131,
"preview": "# Step 3: Core Experience Definition\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content without use"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-04-emotional-response.md",
"chars": 8185,
"preview": "# Step 4: Desired Emotional Response\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content without use"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-05-inspiration.md",
"chars": 8538,
"preview": "# Step 5: UX Pattern Analysis & Inspiration\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content with"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-06-design-system.md",
"chars": 8727,
"preview": "# Step 6: Design System Choice\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content without user inpu"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-07-defining-experience.md",
"chars": 8676,
"preview": "# Step 7: Defining Core Experience\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content without user "
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-08-visual-foundation.md",
"chars": 8327,
"preview": "# Step 8: Visual Foundation\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content without user input\n\n"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-09-design-directions.md",
"chars": 8493,
"preview": "# Step 9: Design Direction Mockups\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content without user "
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-10-user-journeys.md",
"chars": 8277,
"preview": "# Step 10: User Journey Flows\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content without user input"
},
{
"path": "src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-11-component-strategy.md",
"chars": 8620,
"preview": "# Step 11: Component Strategy\n\n## MANDATORY EXECUTION RULES (READ FIRST):\n\n- 🛑 NEVER generate content without user input"
}
]
// ... and 326 more files (download for full content)
About this extraction
This page contains the full source code of the bmad-code-org/BMAD-METHOD GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 526 files (2.9 MB), approximately 795.0k tokens, and a symbol index with 787 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.