* This PR introduces a powerful new Codebase Flattener Tool that aggregates entire codebases into AI-optimized XML format, making it easy to share project context with AI assistants for analysis, debugging, and development assistance. - AI-Optimized XML Output : Generates clean, structured XML specifically designed for AI model consumption - Smart File Discovery : Recursive file scanning with intelligent filtering using glob patterns - Binary File Detection : Automatically identifies and excludes binary files, focusing on source code - Progress Tracking : Real-time progress indicators with comprehensive completion statistics - Flexible Output : Customizable output file location and naming via CLI arguments - Gitignore Integration : Automatically respects .gitignore patterns to exclude unnecessary files - CDATA Handling : Proper XML CDATA sections with escape sequence handling for ]]> patterns - Content Indentation : Beautiful XML formatting with properly indented file content (4-space indentation) - Error Handling : Robust error handling with detailed logging for problematic files - Hierarchical Formatting : Clean XML structure with proper indentation and formatting - File Content Preservation : Maintains original file formatting within indented CDATA sections - Exclusion Logic : Prevents self-inclusion of output files ( flattened-codebase.xml , repomix-output.xml ) - tools/flattener/main.js - Complete flattener implementation with CLI interface - package.json - Added new dependencies (glob, minimatch, fs-extra, commander, ora, chalk) - package-lock.json - Updated dependency tree - .gitignore - Added exclusions for flattener outputs - README.md - Comprehensive documentation with usage examples - docs/bmad-workflow-guide.md - Integration guidance - tools/cli.js - CLI integration - .vscode/settings.json - SonarLint configuration ``` current directory npm run flatten npm run flatten -- --output my-project.xml npm run flatten -- -o /path/to/output/codebase.xml ``` The tool provides comprehensive completion summaries including: - File count and breakdown (text/binary/errors) - Source code size and generated XML size - Total lines of code and estimated token count - Processing progress and performance metrics - Bug Fix : Corrected typo in exclusion patterns ( repromix-output.xml → repomix-output.xml ) - Performance : Efficient file processing with streaming and progress indicators - Reliability : Comprehensive error handling and validation - Maintainability : Clean, well-documented code with modular functions - AI Integration : Perfect for sharing codebase context with AI assistants - Code Reviews : Streamlined code review process with complete project context - Documentation : Enhanced project documentation and analysis capabilities - Development Workflow : Improved development assistance and debugging support This tool significantly enhances the BMad-Method framework's AI integration capabilities, providing developers with a seamless way to share complete project context for enhanced AI-assisted development workflows. * docs(bmad-core): update documentation for enhanced workflow and user guide - Fix typos and improve clarity in user guide - Add new enhanced development workflow documentation - Update brownfield workflow with flattened codebase instructions - Improve consistency in documentation formatting * chore: remove unused files and configurations - Delete deprecated bmad workflow guide and roomodes file - Remove sonarlint project configuration - Downgrade ora dependency version - Remove jest test script * Update package.json Removed jest as it is not needed. * Update working-in-the-brownfield.md added documentation for sharding docs * perf(flattener): improve memory efficiency by streaming xml output - Replace in-memory XML generation with streaming approach - Add comprehensive common ignore patterns list - Update statistics calculation to use file size instead of content length * fix/chore: Update console.log for user-guide.md install path. Cleaned up config files/folders and updated .gitignore (#347) * fix: Update console.log for user-guide.md install path Changed IMPORTANT: Please read the user guide installed at docs/user-guilde.md to IMPORTANT: Please read the user guide installed at .bmad-core/user-guide.md WHY: the actual install location of the user-guide.md is in the .bmad-core directory. * chore: remove formatting configs and clean up gitignore - Delete husky pre-commit hook and prettier config files - Remove VS Code chat/copilot settings - Reorganize and clean up gitignore entries * feat: Overhaul and Enhance 2D Unity Game Dev Expansion Pack (#350) * Updated game-sm agent to match the new core framework patterns * feat:Created more comprehensive game story matching new format system as well * feat:Added Game specific course correct task * feat:Updated dod-checklist to match new DoD format * feat:Added new Architect agent for appropriate architecture doc creation and design * feat:Overhaul of game-architecture-tmpl template * feat:Updated rest of templates besides level which doesnt really need it * feat: Finished extended architecture documentation needed for new game story tasks * feat: Updated game Developer to new format * feat: Updated last agent to new format and updated bmad-kb. bmad-kb I did my best with but im not sure of it's valid usage in the expansion pack, the AI generated more of the file then myself. I made sure to include it due to the new core-config file * feat: Finished updating designer agent to new format and cleaned up template linting errors * Built dist for web bundle * Increased expansion pack minor verison number * Updated architecht and design for sharding built-in * chore: bump bmad-2d-unity-game-dev version (minor) * updated config.yaml for game-specific pieces to supplement core-config.yaml * Updated game-core-config and epic processing for game story and game design. Initial implementation was far too generic * chore: bump bmad-2d-unity-game-dev version (patch) * feat: Fixed issue with multi-configs being needed. chore: bump bmad-2d-unity-game-dev version (patch) * Chore: Built web-bundle * feat: Added the ability to specify the unity editor install location.\nchore: bump bmad-2d-unity-game-dev version (patch) * feat: core-config must be in two places to support inherited tasks at this time so added instructions to copy and create one in expansion pack folder as well. chore: bump bmad-2d-unity-game-dev version (patch) * This PR introduces a powerful new Codebase Flattener Tool that aggregates entire codebases into AI-optimized XML format, making it easy to share project context with AI assistants for analysis, debugging, and development assistance. - AI-Optimized XML Output : Generates clean, structured XML specifically designed for AI model consumption - Smart File Discovery : Recursive file scanning with intelligent filtering using glob patterns - Binary File Detection : Automatically identifies and excludes binary files, focusing on source code - Progress Tracking : Real-time progress indicators with comprehensive completion statistics - Flexible Output : Customizable output file location and naming via CLI arguments - Gitignore Integration : Automatically respects .gitignore patterns to exclude unnecessary files - CDATA Handling : Proper XML CDATA sections with escape sequence handling for ]]> patterns - Content Indentation : Beautiful XML formatting with properly indented file content (4-space indentation) - Error Handling : Robust error handling with detailed logging for problematic files - Hierarchical Formatting : Clean XML structure with proper indentation and formatting - File Content Preservation : Maintains original file formatting within indented CDATA sections - Exclusion Logic : Prevents self-inclusion of output files ( flattened-codebase.xml , repomix-output.xml ) - tools/flattener/main.js - Complete flattener implementation with CLI interface - package.json - Added new dependencies (glob, minimatch, fs-extra, commander, ora, chalk) - package-lock.json - Updated dependency tree - .gitignore - Added exclusions for flattener outputs - README.md - Comprehensive documentation with usage examples - docs/bmad-workflow-guide.md - Integration guidance - tools/cli.js - CLI integration - .vscode/settings.json - SonarLint configuration ``` current directory npm run flatten npm run flatten -- --output my-project.xml npm run flatten -- -o /path/to/output/codebase.xml ``` The tool provides comprehensive completion summaries including: - File count and breakdown (text/binary/errors) - Source code size and generated XML size - Total lines of code and estimated token count - Processing progress and performance metrics - Bug Fix : Corrected typo in exclusion patterns ( repromix-output.xml → repomix-output.xml ) - Performance : Efficient file processing with streaming and progress indicators - Reliability : Comprehensive error handling and validation - Maintainability : Clean, well-documented code with modular functions - AI Integration : Perfect for sharing codebase context with AI assistants - Code Reviews : Streamlined code review process with complete project context - Documentation : Enhanced project documentation and analysis capabilities - Development Workflow : Improved development assistance and debugging support This tool significantly enhances the BMad-Method framework's AI integration capabilities, providing developers with a seamless way to share complete project context for enhanced AI-assisted development workflows. * chore: remove unused files and configurations - Delete deprecated bmad workflow guide and roomodes file - Remove sonarlint project configuration - Downgrade ora dependency version - Remove jest test script * docs: update command names and agent references in documentation - Change `*create` to `*draft` in workflow guide - Update PM agent commands to use consistent naming - Replace `analyst` references with `architect` - Fix command examples to match new naming conventions --------- Co-authored-by: PinkyD <paulbeanjr@gmail.com>
252 lines
11 KiB
Markdown
252 lines
11 KiB
Markdown
# BMad-Method BMAd Code User Guide
|
|
|
|
This guide will help you understand and effectively use the BMad Method for agile AI driven planning and development.
|
|
|
|
## The BMad Plan and Execute Workflow
|
|
|
|
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](./working-in-the-brownfield.md)**.
|
|
|
|
If you do not see the diagrams that following rendering, you can install Markdown All in One along with the Markdown Preview Mermaid Support plugins to VSCode (or one of the forked clones). With these plugin's, if you right click on the tab when open, there should be a Open Preview option, or check the IDE documentation.
|
|
|
|
### The Planning Workflow (Web UI or Powerful IDE Agents)
|
|
|
|
Before development begins, BMad follows a structured planning workflow that's ideally done in web UI for cost efficiency:
|
|
|
|
```mermaid
|
|
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 --> I["PO: Run Master Checklist"]
|
|
H2 --> I
|
|
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 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
|
|
```
|
|
|
|
#### Web UI to IDE Transition
|
|
|
|
**Critical Transition Point**: Once the PO confirms document alignment, you must switch from web UI to IDE to begin the development workflow:
|
|
|
|
1. **Copy Documents to Project**: Ensure `docs/prd.md` and `docs/architecture.md` are in your project's docs folder (or a custom location you can specify during installation)
|
|
2. **Switch to IDE**: Open your project in your preferred Agentic IDE
|
|
3. **Document Sharding**: Use the PO agent to shard the PRD and then the Architecture
|
|
4. **Begin Development**: Start the Core Development Cycle that follows
|
|
|
|
### The Core Development Cycle (IDE)
|
|
|
|
Once planning is complete and documents are sharded, BMad follows a structured development workflow:
|
|
|
|
```mermaid
|
|
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 --> B3{"QA: Review Story Draft (Optional)"}
|
|
B3 -->|Review Requested| B4["QA: Review Story Against Artifacts"]
|
|
B3 -->|Skip Review| C{"User Approval"}
|
|
B4 --> C
|
|
C -->|Approved| D["Dev: Sequential Task Execution"]
|
|
C -->|Needs Changes| B2
|
|
D --> E["Dev: Implement Tasks + Tests"]
|
|
E --> F["Dev: Run All Validations"]
|
|
F --> G["Dev: Mark Ready for Review + Add Notes"]
|
|
G --> H{"User Verification"}
|
|
H -->|Request QA Review| I["QA: Senior Dev Review + Active Refactoring"]
|
|
H -->|Approve Without QA| M["IMPORTANT: Verify All Regression Tests and Linting are Passing"]
|
|
I --> J["QA: Review, Refactor Code, Add Tests, Document Notes"]
|
|
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 --> 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 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 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
|
|
```
|
|
|
|
## Installation
|
|
|
|
### Optional
|
|
|
|
If you want to do the planning in the Web with Claude (Sonnet 4 or Opus), Gemini Gem (2.5 Pro), or Custom GPT's:
|
|
|
|
1. Navigate to `dist/teams/`
|
|
2. Copy `team-fullstack.txt`
|
|
3. Create new Gemini Gem or CustomGPT
|
|
4. Upload file with instructions: "Your critical operating instructions are attached, do not break character as directed"
|
|
5. Type `/help` to see available commands
|
|
|
|
### IDE Project Setup
|
|
|
|
```bash
|
|
# Interactive installation (recommended)
|
|
npx bmad-method install
|
|
```
|
|
|
|
## Special Agents
|
|
|
|
There are two bmad agents - in the future they will be consolidated into the single bmad-master.
|
|
|
|
### 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 in 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.
|
|
|
|
### BMad-Orchestrator
|
|
|
|
This agent should NOT be used within the IDE, it is a heavy weight special purpose agent that utilizes a lot of context and can morph into any other agent. This exists solely to facilitate the team's within the web bundles. If you use a web bundle you will be greeted by the BMad Orchestrator.
|
|
|
|
### How Agents Work
|
|
|
|
#### Dependencies System
|
|
|
|
Each agent has a YAML section that defines its dependencies:
|
|
|
|
```yaml
|
|
dependencies:
|
|
templates:
|
|
- prd-template.md
|
|
- user-story-template.md
|
|
tasks:
|
|
- create-doc.md
|
|
- shard-doc.md
|
|
data:
|
|
- bmad-kb.md
|
|
```
|
|
|
|
**Key Points:**
|
|
|
|
- Agents only load resources they need (lean context)
|
|
- Dependencies are automatically resolved during bundling
|
|
- Resources are shared across agents to maintain consistency
|
|
|
|
#### Agent Interaction
|
|
|
|
**In IDE:**
|
|
|
|
```bash
|
|
# Some Ide's, 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, like Claude Code use slash commands instead
|
|
/pm Create user stories
|
|
/dev Fix the login bug
|
|
```
|
|
|
|
#### Interactive Modes
|
|
|
|
- **Incremental Mode**: Step-by-step with user input
|
|
- **YOLO Mode**: Rapid generation with minimal interaction
|
|
|
|
## IDE Integration
|
|
|
|
### IDE Best Practices
|
|
|
|
- **Context Management**: Keep relevant files only in context, keep files as lean and focused as necessary
|
|
- **Agent Selection**: Use appropriate agent for task
|
|
- **Iterative Development**: Work in small, focused tasks
|
|
- **File Organization**: Maintain clean project structure
|
|
- **Commit Regularly**: Save your work frequently
|
|
|
|
## Technical Preferences System
|
|
|
|
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.
|
|
|
|
### Using with Web Bundles
|
|
|
|
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.
|
|
|
|
## Core Configuration
|
|
|
|
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.
|
|
|
|
### Developer Context Files
|
|
|
|
Define which files the dev agent should always load:
|
|
|
|
```yaml
|
|
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 it's 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 that the agent still makes with. The agent will look at surrounding code in files to infer the coding standards that are relevant to the current task.
|
|
|
|
## Getting Help
|
|
|
|
- **Discord Community**: [Join Discord](https://discord.gg/gk8jAdXWmj)
|
|
- **GitHub Issues**: [Report bugs](https://github.com/bmadcode/bmad-method/issues)
|
|
- **Documentation**: [Browse docs](https://github.com/bmadcode/bmad-method/docs)
|
|
- **YouTube**: [BMadCode Channel](https://www.youtube.com/@BMadCode)
|
|
|
|
## Conclusion
|
|
|
|
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.
|