This guide will help you understand and effectively use the BMad Method for agile AI-driven planning and development.
First, here is the full standard Greenfield Planning + Execution Workflow. Brownfield is very similar, but it's suggested to understand this greenfield first, even if on a simple project before tackling a brownfield project. The BMad Method needs to be installed to the root of your new project folder. For the planning phase, you can optionally perform it with powerful web agents, potentially resulting in higher quality results at a fraction of the cost it would take to complete if providing your own API key or credits in some Agentic tools. For planning, powerful thinking models and larger context - along with working as a partner with the agents will net the best results.
If you are going to use the BMad Method with a Brownfield project (an existing project), review Working in the Brownfield.
If the diagrams below don't render, install Markdown All in One along with the Markdown Preview Mermaid Support plugins to VSCode (or one of the forked clones). With these plugins, if you right click on the tab when open, there should be an Open Preview option, or check the IDE documentation.
Before development begins, BMad follows a structured planning workflow that's ideally done in web UI for cost efficiency:
graph TD
A["Start: Project Idea"] --> B{"Optional: Analyst Research"}
B -->|Yes| C["Analyst: Brainstorming (Optional)"]
B -->|No| G{"Project Brief Available?"}
C --> C2["Analyst: Market Research (Optional)"]
C2 --> C3["Analyst: Competitor Analysis (Optional)"]
C3 --> D["Analyst: Create Project Brief"]
D --> G
G -->|Yes| E["PM: Create PRD from Brief (Fast Track)"]
G -->|No| E2["PM: Interactive PRD Creation (More Questions)"]
E --> F["PRD Created with FRs, NFRs, Epics & Stories"]
E2 --> F
F --> F2{"UX Required?"}
F2 -->|Yes| F3["UX Expert: Create Front End Spec"]
F2 -->|No| H["Architect: Create Architecture from PRD"]
F3 --> F4["UX Expert: Generate UI Prompt for Lovable/V0 (Optional)"]
F4 --> H2["Architect: Create Architecture from PRD + UX Spec"]
H --> Q{"Early Test Strategy? (Optional)"}
H2 --> Q
Q -->|Yes| R["QA: Early Test Architecture Input on High-Risk Areas"]
Q -->|No| I
R --> I["PO: Run Master Checklist"]
I --> J{"Documents Aligned?"}
J -->|Yes| K["Planning Complete"]
J -->|No| L["PO: Update Epics & Stories"]
L --> M["Update PRD/Architecture as needed"]
M --> I
K --> N["📁 Switch to IDE (If in a Web Agent Platform)"]
N --> O["PO: Shard Documents"]
O --> P["Ready for SM/Dev Cycle"]
style A fill:#f5f5f5,color:#000
style B fill:#e3f2fd,color:#000
style C fill:#e8f5e9,color:#000
style C2 fill:#e8f5e9,color:#000
style C3 fill:#e8f5e9,color:#000
style D fill:#e8f5e9,color:#000
style E fill:#fff3e0,color:#000
style E2 fill:#fff3e0,color:#000
style F fill:#fff3e0,color:#000
style F2 fill:#e3f2fd,color:#000
style F3 fill:#e1f5fe,color:#000
style F4 fill:#e1f5fe,color:#000
style G fill:#e3f2fd,color:#000
style H fill:#f3e5f5,color:#000
style H2 fill:#f3e5f5,color:#000
style Q fill:#e3f2fd,color:#000
style R fill:#ffd54f,color:#000
style I fill:#f9ab00,color:#fff
style J fill:#e3f2fd,color:#000
style K fill:#34a853,color:#fff
style L fill:#f9ab00,color:#fff
style M fill:#fff3e0,color:#000
style N fill:#1a73e8,color:#fff
style O fill:#f9ab00,color:#fff
style P fill:#34a853,color:#fff
Critical Transition Point: Once the PO confirms document alignment, you must switch from web UI to IDE to begin the development workflow:
docs/prd.md and docs/architecture.md are in your project's docs folder (or a custom location you can specify during installation)PRD → docs/prd.md
Architecture → docs/architecture.md
Sharded Epics → docs/epics/
Sharded Stories → docs/stories/
QA Assessments → docs/qa/assessments/
QA Gates → docs/qa/gates/
Once planning is complete and documents are sharded, BMad follows a structured development workflow:
graph TD
A["Development Phase Start"] --> B["SM: Reviews Previous Story Dev/QA Notes"]
B --> B2["SM: Drafts Next Story from Sharded Epic + Architecture"]
B2 --> S{"High-Risk Story? (Optional)"}
S -->|Yes| T["QA: *risk + *design on Draft Story"]
S -->|No| B3
T --> U["Test Strategy & Risk Profile Created"]
U --> B3{"PO: Validate Story Draft (Optional)"}
B3 -->|Validation Requested| B4["PO: Validate Story Against Artifacts"]
B3 -->|Skip Validation| C{"User Approval"}
B4 --> C
C -->|Approved| D["Dev: Sequential Task Execution"]
C -->|Needs Changes| B2
D --> E["Dev: Implement Tasks + Tests"]
E --> V{"Mid-Dev QA Check? (Optional)"}
V -->|Yes| W["QA: *trace or *nfr for Early Validation"]
V -->|No| F
W --> X["Dev: Address Coverage/NFR Gaps"]
X --> F["Dev: Run All Validations"]
F --> G["Dev: Mark Ready for Review + Add Notes"]
G --> H{"User Verification"}
H -->|Request QA Review| I["QA: Test Architect Review + Quality Gate"]
H -->|Approve Without QA| M["IMPORTANT: Verify All Regression Tests and Linting are Passing"]
I --> J["QA: Test Architecture Analysis + Active Refactoring"]
J --> L{"QA Decision"}
L -->|Needs Dev Work| D
L -->|Approved| M
H -->|Needs Fixes| D
M --> N["IMPORTANT: COMMIT YOUR CHANGES BEFORE PROCEEDING!"]
N --> Y{"Gate Update Needed?"}
Y -->|Yes| Z["QA: *gate to Update Status"]
Y -->|No| K
Z --> K["Mark Story as Done"]
K --> B
style A fill:#f5f5f5,color:#000
style B fill:#e8f5e9,color:#000
style B2 fill:#e8f5e9,color:#000
style S fill:#e3f2fd,color:#000
style T fill:#ffd54f,color:#000
style U fill:#ffd54f,color:#000
style B3 fill:#e3f2fd,color:#000
style B4 fill:#fce4ec,color:#000
style C fill:#e3f2fd,color:#000
style D fill:#e3f2fd,color:#000
style E fill:#e3f2fd,color:#000
style V fill:#e3f2fd,color:#000
style W fill:#ffd54f,color:#000
style X fill:#e3f2fd,color:#000
style F fill:#e3f2fd,color:#000
style G fill:#e3f2fd,color:#000
style H fill:#e3f2fd,color:#000
style I fill:#f9ab00,color:#fff
style J fill:#ffd54f,color:#000
style K fill:#34a853,color:#fff
style L fill:#e3f2fd,color:#000
style M fill:#ff5722,color:#fff
style N fill:#d32f2f,color:#fff
style Y fill:#e3f2fd,color:#000
style Z fill:#ffd54f,color:#000
Before installing BMad Method, ensure you have:
If you want to do the planning on the web with Claude (Sonnet 4 or Opus), Gemini Gem (2.5 Pro), or Custom GPTs:
dist/teams/team-fullstack.txt/help to see available commands# Interactive installation (recommended)
npx bmad-method install
BMAD integrates with OpenAI Codex via AGENTS.md and committed core agent files.
Two installation modes:
.bmad-core/ ignored for local dev.npx bmad-method install -f -i codex -d ..bmad-core/ is tracked so you can commit it for Codex Web.npx bmad-method install -f -i codex-web -d .What gets generated:
AGENTS.md at the project root with a BMAD section containingpackage.json exists, helpful scripts are added:bmad:refresh, bmad:list, bmad:validateUsing Codex:
codex in the project root and prompt naturally, e.g., “As dev, implement …”..bmad-core/ and AGENTS.md, then open the repo in Codex and prompt the same way.Refresh after changes:
codex or codex-web) to update the BMAD block in AGENTS.md.There are two BMad agents — in the future they'll be consolidated into a single BMad-Master.
This agent can do any task or command that all other agents can do, aside from actual story implementation. Additionally, this agent can help explain the BMad Method when on the web by accessing the knowledge base and explaining anything to you about the process.
If you don't want to bother switching between different agents aside from the dev, this is the agent for you. Just remember that as the context grows, the performance of the agent degrades, therefore it is important to instruct the agent to compact the conversation and start a new conversation with the compacted conversation as the initial message. Do this often, preferably after each story is implemented.
This agent should NOT be used within the IDE, it is a heavyweight, special-purpose agent that utilizes a lot of context and can morph into any other agent. This exists solely to facilitate the teams within the web bundles. If you use a web bundle you will be greeted by the BMad Orchestrator.
Each agent has a YAML section that defines its dependencies:
dependencies:
templates:
- prd-template.md
- user-story-template.md
tasks:
- create-doc.md
- shard-doc.md
data:
- bmad-kb.md
Key Points:
In IDE:
# Some IDEs, like Cursor or Windsurf for example, utilize manual rules so interaction is done with the '@' symbol
@pm Create a PRD for a task management app
@architect Design the system architecture
@dev Implement the user authentication
# Some IDEs, like Claude Code, use slash commands instead
/pm Create user stories
/dev Fix the login bug
The QA agent in BMad is not just a "senior developer reviewer" - it's a Test Architect with deep expertise in test strategy, quality gates, and risk-based testing. Named Quinn, this agent provides advisory authority on quality matters while actively improving code when safe to do so.
@qa *risk {story} # Assess risks before development
@qa *design {story} # Create test strategy
@qa *trace {story} # Verify test coverage during dev
@qa *nfr {story} # Check quality attributes
@qa *review {story} # Full assessment → writes gate
The documentation uses short forms for convenience. Both styles are valid:
*risk → *risk-profile
*design → *test-design
*nfr → *nfr-assess
*trace → *trace-requirements (or just *trace)
*review → *review
*gate → *gate
*risk)When: After story draft, before development begins (earliest intervention point)
Identifies and assesses implementation risks:
tasks/risk-profile.md for authoritative rules)*design)When: After story draft, before development begins (guides what tests to write)
Creates comprehensive test strategies including:
Example output:
test_summary:
total: 24
by_level:
unit: 15
integration: 7
e2e: 2
by_priority:
P0: 8 # Must have - linked to critical risks
P1: 10 # Should have - medium risks
P2: 6 # Nice to have - low risks
*trace)When: During development (mid-implementation checkpoint)
Maps requirements to test coverage:
*nfr)When: During development or early review (validate quality attributes)
Validates non-functional requirements:
*review)When: After development complete, story marked "Ready for Review"
When you run @qa *review {story}, Quinn performs:
*gate)When: After review fixes or when gate status needs updating
Manages quality gate decisions:
docs/qa/gates/Note: Gates are advisory; teams choose their quality bar. WAIVED requires reason, approver, and expiry date. See templates/qa-gate-tmpl.yaml for schema and tasks/review-story.md (gate rules) and tasks/risk-profile.md for scoring.
The Test Architect provides value throughout the entire development lifecycle. Here's when and how to leverage each capability:
| Stage | Command | When to Use | Value | Output |
|---|---|---|---|---|
| Story Drafting | *risk |
After SM drafts story | Identify pitfalls early | docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md |
*design |
After risk assessment | Guide dev on test strategy | docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md |
|
| Development | *trace |
Mid-implementation | Verify test coverage | docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md |
*nfr |
While building features | Catch quality issues early | docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md |
|
| Review | *review |
Story marked complete | Full quality assessment | QA Results in story + gate file |
| Post-Review | *gate |
After fixing issues | Update quality decision | Updated docs/qa/gates/{epic}.{story}-{slug}.yml |
# Planning Stage - Run these BEFORE development starts
@qa *risk {draft-story} # What could go wrong?
@qa *design {draft-story} # What tests should we write?
# Development Stage - Run these DURING coding
@qa *trace {story} # Are we testing everything?
@qa *nfr {story} # Are we meeting quality standards?
# Review Stage - Run when development complete
@qa *review {story} # Comprehensive assessment + refactoring
# Post-Review - Run after addressing issues
@qa *gate {story} # Update gate status
Quinn enforces these test quality principles:
High-Risk Stories:
*risk and *design before development starts*trace and *nfr checkpointsComplex Integrations:
*trace during development to ensure all integration points tested*nfr to validate performance across integrationsPerformance-Critical:
*nfr early and often during developmentBrownfield/Legacy Code:
*risk to identify regression dangers*review with extra focus on backward compatibility*design and *risk during story draftingQuick reference for where Test Architect outputs are stored:
*risk-profile → docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
*test-design → docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md
*trace → docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md
*nfr-assess → docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
*review → QA Results section in story + gate file reference
*gate → docs/qa/gates/{epic}.{story}-{slug}.yml
BMad includes a personalization system through the technical-preferences.md file located in .bmad-core/data/ - this can help bias the PM and Architect to recommend your preferences for design patterns, technology selection, or anything else you would like to put in here.
When creating custom web bundles or uploading to AI platforms, include your technical-preferences.md content to ensure agents have your preferences from the start of any conversation.
The bmad-core/core-config.yaml file is a critical config that enables BMad to work seamlessly with differing project structures, more options will be made available in the future. Currently the most important is the devLoadAlwaysFiles list section in the yaml.
Define which files the dev agent should always load:
devLoadAlwaysFiles:
- docs/architecture/coding-standards.md
- docs/architecture/tech-stack.md
- docs/architecture/project-structure.md
You will want to verify from sharding your architecture that these documents exist, that they are as lean as possible, and contain exactly the information you want your dev agent to ALWAYS load into its context. These are the rules the agent will follow.
As your project grows and the code starts to build consistent patterns, coding standards should be reduced to include only the standards the agent still needs enforced. The agent will look at surrounding code in files to infer the coding standards that are relevant to the current task.
Remember: BMad is designed to enhance your development process, not replace your expertise. Use it as a powerful tool to accelerate your projects while maintaining control over design decisions and implementation details.