Merge branch 'main' into fix/872-architecture-command

This commit is contained in:
Dicky Moore 2025-12-08 17:36:14 +00:00 committed by GitHub
commit 8d84b53fcd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
239 changed files with 14178 additions and 5700 deletions

36
.coderabbit.yaml Normal file
View File

@ -0,0 +1,36 @@
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
language: "en-US"
early_access: true
reviews:
profile: chill
high_level_summary: true
request_changes_workflow: false
review_status: true
collapse_walkthrough: false
poem: false
auto_review:
enabled: false # must be manually triggered with @coderabbit review
drafts: true # Can review drafts. Since it's manually triggered, it's fine.
auto_incremental_review: false # always review the whole PR, not just new commits
base_branches:
- main
path_filters:
- "!**/node_modules/**"
path_instructions:
- path: "**/*"
instructions: |
Focus on inconsistencies, contradictions, edge cases and serious issues.
Avoid commenting on minor issues such as linting, formatting and style issues.
When providing code suggestions, use GitHub's suggestion format:
```suggestion
<code changes>
```
- path: "**/*.js"
instructions: |
CLI tooling code. Check for: missing error handling on fs operations,
path.join vs string concatenation, proper cleanup in error paths.
Flag any process.exit() without error message.
chat:
auto_reply: true # Response to mentions in comments, a la @coderabbit review

View File

@ -60,7 +60,7 @@ representative at an online or offline event.
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.
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
@ -116,7 +116,7 @@ the community.
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.
<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).
@ -124,5 +124,5 @@ 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.
<https://www.contributor-covenant.org/faq>. Translations are available at
<https://www.contributor-covenant.org/translations>.

View File

@ -8,7 +8,7 @@ assignees: ''
# Idea: [Replace with a clear, actionable title]
### PASS Framework
## PASS Framework
**P**roblem:

View File

@ -3,6 +3,7 @@ name: Quality & Validation
# Runs comprehensive quality checks on all PRs:
# - Prettier (formatting)
# - ESLint (linting)
# - markdownlint (markdown quality)
# - Schema validation (YAML structure)
# - Agent schema tests (fixture-based validation)
# - Installation component tests (compilation)
@ -50,6 +51,24 @@ jobs:
- 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
validate:
runs-on: ubuntu-latest
steps:

4
.gitignore vendored
View File

@ -62,7 +62,7 @@ src/modules/bmm/sub-modules/
src/modules/bmb/sub-modules/
src/modules/cis/sub-modules/
src/modules/bmgd/sub-modules/
shared-modules
z*/
.bmad
@ -73,3 +73,5 @@ z*/
.agentvibes/
.kiro/
.roo
bmad-custom-src/

42
.markdownlint-cli2.yaml Normal file
View File

@ -0,0 +1,42 @@
# markdownlint-cli2 configuration
# https://github.com/DavidAnson/markdownlint-cli2
ignores:
- node_modules/**
- test/fixtures/**
- CODE_OF_CONDUCT.md
- .bmad/**
- .bmad*/**
- .agent/**
- .claude/**
- .roo/**
- .codex/**
- .agentvibes/**
- .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

View File

@ -1,164 +1,199 @@
# Changelog
## [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
- Fixed hardcoded 'bmad' prefix from files-manifest.csv paths
- 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
**Granular Step-File Workflow System (NEW in alpha.13):**
- **Multi-Menu Support**: Workflows now support granular step-file architecture with dynamic menu generation
- **Sharded Workflows**: Complete conversion of Phase 1 and 2 workflows to stepwise sharded architecture
- **Improved Performance**: Reduced file loading times and eliminated time-based estimates throughout
- **Workflow Builder**: New dedicated workflow builder for creating stepwise workflows
- **PRD Workflow**: First completely reworked sharded workflow resolving Sonnet compatibility issues
**Core Workflow Transformations:**
- Phase 1 and 2 workflows completely converted to sharded step-flow architecture
- UX Design workflow converted to sharded step workflow
- Brainstorming, Research, and Party Mode updated to use sharded step-flow workflows
- Architecture workflows enhanced with step sharding and performance improvements
### 🎯 Code Review & Development Enhancement
**Advanced Code Review System:**
- **Adversarial Code Review**: Quick-dev workflow now recommends adversarial review approach for higher quality
- **Multi-LLM Strategy**: Dev-story workflow recommends different LLM models for code review tasks
- **Agent Compiler Optimization**: Complete handler cleanup and performance improvements
- **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:**
- **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
- **Complete IDE Coverage**: Custom agent support extended to ALL remaining IDEs
- **Antigravity IDE Integration**: Added custom agent support with proper gitignore configuration
- **Multiple Source Locations**: Compile agents now checks multiple source locations for better discovery
- **Persona Name Display**: Fixed proper persona names display in custom agent manifests
- **New IDE Support**: Added support for Rovo Dev IDE
### 🧪 Testing Infrastructure
**Agent Creation & Management:**
- **Improved Creation Workflow**: Enhanced agent creation workflow with better documentation
- **Parameter Clarity**: Renamed agent-install parameters for better understanding
- **Menu Organization**: BMad Agents menu items logically ordered with optional/recommended/required tags
- **GitHub Migration**: GitHub integration now uses agents folder instead of chatmodes
### 🔧 Phase 4 & Sprint Evolution
**Complete Phase 4 Transformation:**
- **Simplified Architecture**: Phase 4 workflows completely transformed - simpler, faster, better results
- **Sprint Planning Integration**: Unified sprint planning with placeholders for Jira, Linear, and Trello integration
- **Status Management**: Better status loading and updating for Phase 4 artifacts
- **Workflow Reduction**: Phase 4 streamlined to single sprint planning item with clear validation
- **Dynamic Workflows**: All Level 1-3 workflows now dynamically suggest next steps based on context
### 🧪 Testing Infrastructure Expansion
**Playwright Utils Integration:**
- Test Architect now supports `@seontechnologies/playwright-utils` integration
- Installation prompt with `use_playwright_utils` configuration flag
- 11 comprehensive knowledge fragments covering ALL utilities
- Adaptive workflow recommendations across 6 testing workflows
- Production-ready utilities from SEON Technologies integrated with TEA patterns
**Testing Environment:**
- **Web Bundle Support**: Enabled web bundles for test and development environments
- **Test Architecture**: Enhanced test design for architecture level (Phase 3) testing
### 📦 Installation & Configuration
**Installer Improvements:**
- **Cleanup Options**: Installer now allows cleanup of unneeded files during upgrades
- **Username Default**: Installer now defaults to system username for better UX
- **IDE Selection**: Added empty IDE selection warning and promoted Antigravity to recommended
- **NPM Vulnerabilities**: Resolved all npm vulnerabilities for enhanced security
- **Documentation Installation**: Made documentation installation optional to reduce footprint
**Text-to-Speech from AgentVibes optional Integration:**
- **TTS_INJECTION System**: Complete text-to-speech integration via injection system
- **Agent Vibes**: Enhanced with TTS capabilities for voice feedback
### 🛠️ Tool & IDE Updates
**IDE Tool Enhancements:**
- **GitHub Copilot**: Fixed tool names consistency across workflows
- **KiloCode Integration**: Gave kilocode tool proper access to bmad modes
- **Code Quality**: Added radix parameter to parseInt() calls for better reliability
- **Agent Menu Optimization**: Improved agent performance in Claude Code slash commands
### 📚 Documentation & Standards
**Documentation Cleanup:**
- **Installation Guide**: Removed fluff and updated with npx support
- **Workflow Documentation**: Fixed documentation by removing non-existent workflows and Mermaid diagrams
- **Phase Numbering**: Fixed phase numbering consistency throughout documentation
- **Package References**: Corrected incorrect npm package references
**Workflow Compliance:**
- **Validation Checks**: Enhanced workflow validation checks for compliance
- **Product Brief**: Updated to comply with documented workflow standards
- **Status Integration**: Workflow-status can now call workflow-init for better integration
### 🔍 Legacy Workflow Cleanup
**Deprecated Workflows Removed:**
- **Audit Workflow**: Completely removed audit workflow and all associated files
- **Convert Legacy**: Removed legacy conversion utilities
- **Create/Edit Workflows**: Removed old workflow creation and editing workflows
- **Clean Architecture**: Simplified workflow structure by removing deprecated legacy workflows
### 🐛 Technical Fixes
**System Improvements:**
- **File Path Handling**: Fixed various file path issues across workflows
- **Manifest Updates**: Updated manifest to use agents folder structure
- **Web Bundle Configuration**: Fixed web bundle configurations for better compatibility
- **CSV Column Mismatch**: Fixed manifest schema upgrade issues
- **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
**Workflow Architecture:**
- All legacy workflows have been removed - ensure you're using the new stepwise sharded workflows
- Phase 4 completely restructured - update any automation expecting old Phase 4 structure
- Epic creation now requires architectural context (moved to Phase 3 in previous release)
**Agent System:**
- Custom agents now require proper compilation - use the new agent creation workflow
- GitHub integration moved from chatmodes to agents folder - update any references
### 📊 Impact Summary
**New in alpha.13:**
- **Stepwise Workflow Architecture**: Complete transformation of all workflows to granular step-file system
- **Universal Custom Agent Support**: Extended to ALL IDEs with improved creation workflow
- **Phase 4 Revolution**: Completely restructured with sprint planning integration
- **Legacy Cleanup**: Removed all deprecated workflows for cleaner system
- **Advanced Code Review**: New adversarial review approach with multi-LLM strategy
- **Text-to-Speech**: Full TTS integration for voice feedback
- **Testing Expansion**: Playwright utils integration across all testing workflows
**Enhanced from alpha.12:**
- **Performance**: Improved file loading and removed time-based estimates
- **Documentation**: Complete cleanup with accurate references
- **Installer**: Better UX with cleanup options and improved defaults
- **Agent System**: More reliable compilation and better persona handling
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]
@ -172,313 +207,101 @@
**Release: November 18, 2025**
This alpha release introduces a complete agent installation system with the new `bmad agent-install` command, vastly improves the BMB agent builder capabilities with comprehensive documentation and reference agents, and refines diagram distribution to better align with BMad Method's core principle: **BMad agents mirror real agile teams**.
### 🚀 Agent Installation Revolution
### 🎨 Diagram Capabilities Refined and Distributed
**Excalidraw Integration Evolution:**
Building on the excellent Excalidraw integration introduced with the Frame Expert agent, we've refined how diagram capabilities are distributed across the BMad Method ecosystem to better reflect real agile team dynamics.
**The Refinement:**
- The valuable Excalidraw diagramming capabilities have been distributed to the agents who naturally create these artifacts in real teams
- **Architect**: System architecture diagrams, data flow visualizations
- **Product Manager**: Process flowcharts and workflow diagrams
- **UX Designer**: Wireframe creation capabilities
- **Tech Writer**: All diagram types for documentation needs
- **New CIS Agent**: presentation-master for specialized visual communication
**Shared Infrastructure Enhancement:**
- Excalidraw templates, component libraries, and validation patterns elevated to core resources
- Available to both BMM agents AND CIS presentation specialists
- Preserves all the excellent Excalidraw functionality while aligning with natural team roles
### 🚀 New Agent Installation System
**Agent Installation Infrastructure (NEW in alpha.11):**
- `bmad agent-install` CLI command with interactive persona customization
- **YAML → XML compilation engine** with smart handler injection
- Supports Simple (single file), Expert (with sidecars), and Module agents
- Handlebars-style template variable processing
- Automatic manifest tracking and IDE integration
- Source preservation in `_cfg/custom/agents/` for reinstallation
**New Reference Agents Added:**
- **commit-poet**: Poetic git commit message generator (Simple agent example)
- **journal-keeper**: Daily journaling agent with templates (Expert agent example)
- **security-engineer & trend-analyst**: Module agent examples with ecosystem integration
**Critical Persona Field Guidance Added:**
New documentation explaining how LLMs interpret persona fields for better agent quality:
- **role** → "What knowledge, skills, and capabilities do I possess?"
- **identity** → "What background, experience, and context shape my responses?"
- **communication_style** → "What verbal patterns, word choice, and phrasing do I use?"
- **principles** → "What beliefs and operating philosophy drive my choices?"
Key insight: `communication_style` should ONLY describe HOW the agent talks, not WHAT they do
**BMM Agent Voice Enhancement:**
All 9 existing BMM agents enhanced with distinct, memorable communication voices:
- **Mary (analyst)**: "Treats analysis like a treasure hunt - excited by every clue"
- **John (PM)**: "Asks 'WHY?' relentlessly like a detective on a case"
- **Winston (architect)**: "Champions boring technology that actually works"
- **Amelia (dev)**: "Ultra-succinct. Speaks in file paths and AC IDs"
- **Sally (UX)**: "Paints pictures with words, telling user stories that make you FEEL"
### 🔧 Edit-Agent Workflow Comprehensive Enhancement
**Expert Agent Sidecar Support (NEW):**
- Automatically detects and handles Expert agents with multiple files
- Loads and manages templates, data files, knowledge bases
- Smart sidecar analysis: maps references, finds orphans, validates paths
- 5 complete sidecar editing patterns with warm, educational feedback
**7-Step Communication Style Refinement Pattern:**
1. Diagnose current style with red flag word detection
2. Extract non-style content to working copy
3. Discover TRUE communication style through interview questions
4. Craft pure style using presets and reference agents
5. Show before/after transformation with full context
6. Validate against standards (zero red flags)
7. Confirm with user through dramatic reading
**Unified Validation Checklist:**
- Single source of truth: `agent-validation-checklist.md` (160 lines)
- Shared between create-agent and edit-agent workflows
- Comprehensive persona field separation validation
- Expert agent sidecar validation (9 specific checks)
- Common issues and fixes with real examples
- **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
**Vastly Improved Agent Creation & Editing Capabilities:**
- **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
- Create-agent and edit-agent workflows now have accurate, comprehensive documentation
- All context references updated and validated for consistency
- Workflows can now properly guide users through complex agent design decisions
### 🎯 Workflow Architecture Change
**New Agent Documentation Suite:**
- `understanding-agent-types.md` - Architecture vs capability distinction
- `simple-agent-architecture.md` - Self-contained agents guide
- `expert-agent-architecture.md` - Agents with sidecar files
- `module-agent-architecture.md` - Workflow-integrated agents
- `agent-compilation.md` - YAML → XML transformation process
- `agent-menu-patterns.md` - Menu design patterns
- `communication-presets.csv` - 60 pure communication styles for reference
**New Reference Agents for Learning:**
- Complete working examples of Simple, Expert, and Module agents
- Can be installed directly via the new `bmad agent-install` command
- Serve as both learning resources and ready-to-use agents
### 🎯 Epic Creation Moved to Phase 3 (After Architecture)
**Workflow Sequence Corrected:**
```
Phase 2: PRD → UX Design
Phase 3: Architecture → Epics & Stories ← NOW HERE (technically informed)
```
**Why This Fundamental Change:**
- Epics need architectural context: API contracts, data models, technical decisions
- Stories can reference actual architectural patterns and constraints
- Reduces rewrites when architecture reveals complexity
- Better complexity-based estimation (not time-based)
### 🖥️ New IDE Support
**Google Antigravity IDE Installer:**
- Flattened file naming for proper slash commands (bmad-module-agents-name.md)
- Namespace isolation prevents module conflicts
- Subagent installation support (project or user level)
- Module-specific injection configuration
**Codex CLI Enhancement:**
- Now supports both global and project-specific installation
- CODEX_HOME configuration for multi-project workflows
- OS-specific setup instructions (Unix/Mac/Windows)
### 🏗️ Reference Agents & Standards
**New Reference Agents Provide Clear Examples:**
- **commit-poet.agent.yaml**: Simple agent with pure communication style
- **journal-keeper.agent.yaml**: Expert agent with sidecar file structure
- **security-engineer.agent.yaml**: Module agent for ecosystem integration
- **trend-analyst.agent.yaml**: Module agent with cross-workflow capabilities
**Agent Type Clarification:**
- Clear documentation that agent types (Simple/Expert/Module) describe architecture, not capability
- Module = designed for ecosystem integration, not limited in function
### 🐛 Technical Improvements
**Linting Compliance:**
- Fixed all ESLint warnings across agent tooling
- `'utf-8'``'utf8'` (unicorn/text-encoding-identifier-case)
- `hasOwnProperty``Object.hasOwn` (unicorn/prefer-object-has-own)
- `JSON.parse(JSON.stringify(...))``structuredClone(...)`
**Agent Compilation Engine:**
- Auto-injects frontmatter, activation, handlers, help/exit menu items
- Smart handler inclusion (only includes handlers actually used)
- Proper XML escaping and formatting
- Persona name customization support
### 📊 Impact Summary
**New in alpha.11:**
- **Agent installation system** with `bmad agent-install` CLI command
- **4 new reference agents** (commit-poet, journal-keeper, security-engineer, trend-analyst)
- **Complete agent documentation suite** with 7 new focused guides
- **Expert agent sidecar support** in edit-agent workflow
- **2 new IDE installers** (Google Antigravity, enhanced Codex)
- **Unified validation checklist** (160 lines) for consistent quality standards
- **60 pure communication style presets** for agent persona design
**Enhanced from alpha.10:**
- **BMB agent builder workflows** with accurate context and comprehensive guidance
- **All 9 BMM agents** enhanced with distinct, memorable communication voices
- **Excalidraw capabilities** refined and distributed to role-appropriate agents
- **Epic creation** moved to Phase 3 (after Architecture) for technical context
- **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
**Agent Changes:**
- Frame Expert agent retired - diagram capabilities now available through role-appropriate agents:
- Architecture diagrams → `/architect`
- Process flows → `/pm`
- Wireframes → `/ux-designer`
- Documentation visuals → `/tech-writer`
**Workflow Changes:**
- Epic creation moved from Phase 2 to Phase 3 (after Architecture)
- Excalidraw workflows redistributed to appropriate agents
**Installation Changes:**
- New `bmad agent-install` command replaces manual agent installation
- Agent YAML files must be compiled to XML for use
### 🔄 Migration Notes
**For Existing Projects:**
1. **Frame Expert Users:**
- Transition to role-appropriate agents for diagrams
- All Excalidraw functionality preserved and enhanced
- Shared templates now in core resources for wider access
2. **Agent Installation:**
- Use `bmad agent-install` for all agent installations
- Existing manual installations still work but won't have customization
3. **Epic Creation Timing:**
- Epics now created in Phase 3 after Architecture
- Update any automation expecting epics in Phase 2
4. **Communication Styles:**
- Review agent communication_style fields
- Remove any role/identity/principle content
- Use communication-presets.csv for pure styles
5. **Expert Agents:**
- Edit-agent workflow now fully supports sidecar files
- Organize templates and data files in agent folder
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 Generated AFTER Architecture**: Major milestone - epics/stories now created after architecture for technically-informed user stories with better acceptance criteria
- **🎨 Frame Expert Agent**: New Excalidraw specialist with 4 diagram workflows (flowchart, diagram, dataflow, wireframe) for visual documentation
- **⏰ Time Estimate Prohibition**: Critical warnings added across 33 workflows - acknowledges AI has fundamentally changed development speed
- **🎯 Platform-Specific Commands**: New `ide-only`/`web-only` fields filter menu items based on environment (IDE vs web bundle)
- **🔧 Agent Customization**: Enhanced memory/prompts merging via `*.customize.yaml` files for persistent agent personalization
- **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 Protocol**: New `discover_inputs` with FULL_LOAD, SELECTIVE_LOAD, and INDEX_GUIDED strategies for automatic context loading
- **📚 3-Track System**: Simplified from 5 levels to 3 intuitive tracks: quick-flow, bmad-method, and enterprise-bmad-method
- **🌐 Web Bundles Guide**: Comprehensive documentation for Gemini Gems and Custom GPTs with 60-80% cost savings strategies
- **🏗️ Unified Output Structure**: Eliminated `.ephemeral/` folders - all artifacts now in single configurable output folder
- **🎮 BMGD Phase 4**: Added 10 game development workflows following BMM patterns with game-specific adaptations
- **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 for cleaner project structure
- **🚀 Optimized Agent Loading**: CLI loads from installed files eliminating duplication and maintenance burden
- **🌐 Party Mode Everywhere**: All web bundles include multi-agent collaboration with customizable party configurations
- **🔧 Phase 4 Artifact Separation**: Stories, code reviews, sprint plans now configurable outside docs folder
- **📦 Expanded Web Bundles**: All BMM, BMGD, and CIS agents bundled with advanced elicitation integration
- **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 workflow vendoring for cross-module dependencies
- **🎮 BMGD Module Extraction**: Game development split into standalone module with 4-phase industry-standard structure
- **🔧 Enhanced Dependency Resolution**: Better handling of `web_bundle: false` workflows with positive resolution messages
- **📚 Advanced Elicitation Fix**: Added missing CSV files to workflow bundles fixing runtime failures
- **🐛 Claude Code Fix**: Resolved README slash command installation regression
- **Workflow Vendoring**: Web bundler performs automatic cross-module dependency vendoring
- **BMGD Module Extraction**: Game development split into standalone 4-phase structure
- **Enhanced Dependency Resolution**: Better handling of web_bundle: false workflows
- **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 blocking installation
- **📖 Conditional Docs Installation**: Optional documentation installation to reduce footprint in production
- **🎨 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 in documentation
- **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**: Revolutionary simplification from 5 confusing levels to 3 intuitive preference-driven tracks
- **✨ Elicitation Modernization**: Replaced legacy XML tags with explicit `invoke-task` pattern at strategic decision points
- **📚 PM/UX Evolution Section**: Added November 2025 industry research on AI Agent PMs and Full-Stack Product Leads
- **🏗️ Brownfield Reality Check**: Rewrote Phase 0 with 4 real-world scenarios for messy existing codebases
- **📖 Documentation Accuracy**: All agent capabilities now match YAML source of truth with zero hallucination risk
- **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 technical writing standards
- **🤖 Paige Agent**: New technical documentation specialist available across all BMM phases
- **🚀 Quick Spec Flow**: Intelligent Level 0-1 planning with auto-stack detection and brownfield analysis
- **📦 Universal Shard-Doc**: Split large markdown documents into organized sections with dual-strategy loading
- **🔧 Intent-Driven Planning**: PRD and Product Brief transformed from template-filling to natural conversation
- **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]

View File

@ -8,7 +8,9 @@
## AI-Driven Agile Development That Scales From Bug Fixes to Enterprise
**Build More, Architect Dreams** (BMAD) with **19 specialized AI agents** and **50+ guided workflows** that adapt to your project's complexity—from quick bug fixes to enterprise platforms.
**Build More, Architect Dreams** (BMAD) with **21 specialized AI agents** across 4 official modules, and **50+ guided workflows** that adapt to your project's complexity—from quick bug fixes to enterprise platforms, and new step file workflows that allow for incredibly long workflows to stay on the rails longer than ever before!
Additionally - when we say 'Build More, Architect Dreams' - we mean it! The BMad Builder has landed, and now as of Alpha.15 is fully supported in the installation flow via NPX - custom stand along agents, workflows and the modules of your dreams! The community forge will soon open, endless possibility awaits!
> **🚀 v6 is a MASSIVE upgrade from v4!** Complete architectural overhaul, scale-adaptive intelligence, visual workflows, and the powerful BMad Core framework. v4 users: this changes everything. [See what's new →](#whats-new-in-v6)
@ -154,6 +156,7 @@ Each agent brings deep expertise and can be customized to match your team's styl
- **[GitHub Issues](https://github.com/bmad-code-org/BMAD-METHOD/issues)** - Report bugs, request features
- **[YouTube Channel](https://www.youtube.com/@BMadCode)** - Video tutorials and demos
- **[Web Bundles](https://bmad-code-org.github.io/bmad-bundles/)** - Pre-built agent bundles
- **[Code of Conduct](.github/CODE_OF_CONDUCT.md)** - Community guidelines
## 🛠️ Development

View File

@ -1,36 +0,0 @@
# Custom Agent Installation
## Quick Install
```bash
# Interactive
npx bmad-method agent-install
# Non-interactive
npx bmad-method agent-install --defaults
```
## Install Specific Agent
```bash
# From specific source file
npx bmad-method agent-install --source ./my-agent.agent.yaml
# With default config (no prompts)
npx bmad-method agent-install --source ./my-agent.agent.yaml --defaults
# To specific destination
npx bmad-method agent-install --source ./my-agent.agent.yaml --destination ./my-project
```
## Batch Install
1. Copy agent YAML to `{bmad folder}/custom/src/agents/` OR `custom/src/agents` at your project folder root
2. Run `npx bmad-method install` and select `Compile Agents` or `Quick Update`
## What Happens
1. Source YAML compiled to .md
2. Installed to `custom/agents/{agent-name}/`
3. Added to agent manifest
4. Backup saved to `_cfg/custom/agents/`

View File

@ -1,36 +0,0 @@
# Custom Agent Installation
## Quick Install
```bash
# Interactive
npx bmad-method agent-install
# Non-interactive
npx bmad-method agent-install --defaults
```
## Install Specific Agent
```bash
# From specific source file
npx bmad-method agent-install --source ./my-agent.agent.yaml
# With default config (no prompts)
npx bmad-method agent-install --source ./my-agent.agent.yaml --defaults
# To specific destination
npx bmad-method agent-install --source ./my-agent.agent.yaml --destination ./my-project
```
## Batch Install
1. Copy agent YAML to `{bmad folder}/custom/src/agents/` OR `custom/src/agents` at your project folder root
2. Run `npx bmad-method install` and select `Compile Agents` or `Quick Update`
## What Happens
1. Source YAML compiled to .md
2. Installed to `custom/agents/{agent-name}/`
3. Added to agent manifest
4. Backup saved to `_cfg/custom/agents/`

View File

@ -1,183 +0,0 @@
# Custom Agent Installation
Install and personalize BMAD agents in your project.
## Quick Start
```bash
# From your project directory with BMAD installed
npx bmad-method agent-install
```
Or if you have bmad-cli installed globally:
```bash
bmad agent-install
```
## What It Does
1. **Discovers** available agent templates from your custom agents folder
2. **Prompts** you to personalize the agent (name, behavior, preferences)
3. **Compiles** the agent with your choices baked in
4. **Installs** to your project's `.bmad/custom/agents/` directory
5. **Creates** IDE commands for all your configured IDEs (Claude Code, Codex, Cursor, etc.)
6. **Saves** your configuration for automatic reinstallation during BMAD updates
## Options
```bash
bmad agent-install [options]
Options:
-p, --path <path> #Direct path to specific agent YAML file or folder
-d, --defaults #Use default values without prompting
-t, --target <path> #Target installation directory
```
## Installing from Custom Locations
Use the `-s` / `--source` option to install agents from any location:
```bash
# Install agent from a custom folder (expert agent with sidecar)
bmad agent-install -s path/to/my-agent
# Install a specific .agent.yaml file (simple agent)
bmad agent-install -s path/to/my-agent.agent.yaml
# Install with defaults (non-interactive)
bmad agent-install -s path/to/my-agent -d
# Install to a specific destination project
bmad agent-install -s path/to/my-agent --destination /path/to/destination/project
```
This is useful when:
- Your agent is in a non-standard location (not in `.bmad/custom/agents/`)
- You're developing an agent outside the project structure
- You want to install from an absolute path
## Example Session
```
🔧 BMAD Agent Installer
Found BMAD at: /project/.bmad
Searching for agents in: /project/.bmad/custom/agents
Available Agents:
1. 📄 commit-poet (simple)
2. 📚 journal-keeper (expert)
Select agent to install (number): 1
Selected: commit-poet
📛 Agent Persona Name
Agent type: commit-poet
Default persona: Inkwell Von Comitizen
Custom name (or Enter for default): Fred
Persona: Fred
File: fred-commit-poet.md
📝 Agent Configuration
What's your preferred default commit message style?
* 1. Conventional (feat/fix/chore)
2. Narrative storytelling
3. Poetic haiku
4. Detailed explanation
Choice (default: 1): 1
How enthusiastic should the agent be?
1. Moderate - Professional with personality
* 2. High - Genuinely excited
3. EXTREME - Full theatrical drama
Choice (default: 2): 3
Include emojis in commit messages? [Y/n]: y
✨ Agent installed successfully!
Name: fred-commit-poet
Location: /project/.bmad/custom/agents/fred-commit-poet
Compiled: fred-commit-poet.md
✓ Source saved for reinstallation
✓ Added to agent-manifest.csv
✓ Created IDE commands:
claude-code: /bmad:custom:agents:fred-commit-poet
codex: /bmad-custom-agents-fred-commit-poet
github-copilot: bmad-agent-custom-fred-commit-poet
```
## Reinstallation
Custom agents are automatically reinstalled when you run `bmad init --quick`. Your personalization choices are preserved in `.bmad/_cfg/custom/agents/`.
## Installing Reference Agents
The BMAD source includes example agents you can install. **You must copy them to your project first.**
### Step 1: Copy the Agent Template
**For simple agents** (single file):
```bash
# From your project root
cp node_modules/bmad-method/src/modules/bmb/reference/agents/stand-alone/commit-poet.agent.yaml \
.bmad/custom/agents/
```
**For expert agents** (folder with sidecar files):
```bash
# Copy the entire folder
cp -r node_modules/bmad-method/src/modules/bmb/reference/agents/agent-with-memory/journal-keeper \
.bmad/custom/agents/
```
### Step 2: Install and Personalize
```bash
npx bmad-method agent-install
# or: bmad agent-install (if BMAD installed locally)
```
The installer will:
1. Find the copied template in `.bmad/custom/agents/`
2. Prompt for personalization (name, behavior, preferences)
3. Compile and install with your choices baked in
4. Create IDE commands for immediate use
### Available Reference Agents
**Simple (standalone file):**
- `commit-poet.agent.yaml` - Commit message artisan with style preferences
**Expert (folder with sidecar):**
- `journal-keeper/` - Personal journal companion with memory and pattern recognition
Find these in the BMAD source:
```
src/modules/bmb/reference/agents/
├── stand-alone/
│ └── commit-poet.agent.yaml
└── agent-with-memory/
└── journal-keeper/
├── journal-keeper.agent.yaml
└── journal-keeper-sidecar/
```
## Creating Your Own
Use the BMB agent builder to craft your agents. Once ready to use yourself, place your `.agent.yaml` files or folder in `.bmad/custom/agents/`.

View File

@ -0,0 +1,245 @@
# Custom Content Installation
This guide explains how to create and install custom BMAD content including agents, workflows, and modules. Custom content allows you to extend BMAD's functionality with your own specialized tools and workflows that can be shared across projects or teams.
## Types of Custom Content
### 1. Custom Agents and Workflows (Standalone)
Custom agents and workflows are standalone content packages that can be installed without being part of a full module. These are perfect for:
- Sharing specialized agents across projects
- Building a personal Agent powered Notebook vault
- Distributing workflow templates
- Creating agent libraries for specific domains
#### Structure
A custom agents and workflows package follows this structure:
```
my-custom-agents/
├── module.yaml # Package configuration
├── agents/ # Agent definitions
│ └── my-agent/
│ └── agent.md
└── workflows/ # Workflow definitions
└── my-workflow/
└── workflow.md
```
#### Configuration
Create a `module.yaml` file in your package root:
```yaml
code: my-custom-agents
name: 'My Custom Agents and Workflows'
default_selected: true
```
#### Example
See `/example-custom-content` for a working example of a folder with multiple random custom agents and workflows. Technically its also just a module, but you will be able to further pick and choose from this folders contents of what you do and do not want to include in a destination folder. This way, you can store all custom content source in one location and easily install it to different locations.
### 2. Custom Modules
Custom modules are complete BMAD modules that can include their own configuration, documentation, along with agents and workflows that all compliment each other. Additionally they will have their own installation scripts, data, and potentially other tools. Modules can be used for:
- Domain-specific functionality (e.g., industry-specific workflows, entertainment, education and training, medical, etc...)
- Integration with external systems
- Specialized agent collections
- Custom tooling and utilities
#### Structure
A custom module follows this structure:
```
my-module/
├── _module-installer/
│ ├── installer.js # optional, when it exists it will run with module installation
├── module.yaml # Module installation configuration with custom question and answer capture
├── docs/ # Module documentation
├── agents/ # Module-specific agents
├── workflows/ # Module-specific workflows
├── data/ # csv or other content to power agent intelligence or workflows
├── tools/ # Custom tools, hooks, mcp
└── sub-modules/ # IDE-specific customizations
├── vscode/
└── cursor/
```
#### Module Configuration
The `module.yaml` file defines how your module is installed:
```yaml
# Module metadata
code: my-module
name: 'My Custom Module'
default_selected: false
header: 'My Custom Module'
subheader: 'Description of what this module does'
# Configuration prompts
my_setting:
prompt: 'Configure your module setting'
default: 'default-value'
result: '{value}'
```
#### Example
See `/example-custom-module` for a complete example:
## Installation Process
### Step 1: Running the Installer
When you run the existing normal BMAD installer - either from the cloned repo, OR via NPX, it will ask about custom content:
```
? Do you have custom content to install?
No (skip custom content)
Enter a directory path
Enter a URL [Coming soon]
```
### Step 2: Providing Custom Content Path
If you select "Enter a directory path", the installer will prompt for the location:
```
? Enter the path to your custom content directory: /path/to/folder/containing/content/folder
```
The installer will:
- Scan for `module.yaml` files (modules)
- Display an indication of how many installable folders it has found. Note that a project with stand along agents and workflows all under a single folder like the example will just list the count as 1 for that directory.
### Step 3: Selecting Content
The installer presents a unified selection interface:
```
? Select modules and custom content to install:
[── Custom Content ──]
◉ My Custom Agents and Workflows (/path/to/custom)
[── Official Content ──]
◯ BMM: Business Method & Management
◯ CIS: Creativity & Innovation Suite
```
## Agent Sidecar Support
Agents with sidecar content can store personal data, memories, and working files outside of the `.bmad` directory. This separation keeps personal content separate from BMAD's core files.
### What is Sidecar Content?
Sidecar content includes:
- Agent memories and learning data
- Personal working files
- Temporary data
- User-specific configurations
### Sidecar Configuration
The sidecar folder location is configured during BMAD core installation:
```
? Where should users' agent sidecar memory folders be stored?
.bmad-user-memory
```
### How It Works
1. **Agent Declaration**: Agents declare `hasSidecar: true` in their metadata
2. **Sidecar Detection**: The installer automatically detects folders with "sidecar" in the name
3. **Installation**: Sidecar content is copied to the configured location
4. **Path Replacement**: The `{agent_sidecar_folder}` placeholder in agent configurations is replaced with the actual path to the installed instance of the sidecar folder. Now when you use the agent, depending on its design, will use the content in sidecar to record interactions, remember things you tell it, or serve a host of many other issues.
### Example Structure
```
my-agent/
├── agent.md # Agent definition
└── my-agent-sidecar/ # Sidecar content folder
├── memories/
├── working/
└── config/
```
### Git Integration
Since sidecar content is stored outside the `.bmad` directory (and typically outside version control), users can:
- Add the sidecar folder to `.gitignore` to exclude personal data
- Share agent definitions without exposing personal content
- Maintain separate configurations for different projects
Example `.gitignore` entry:
```
# Exclude agent personal data
.bmad-user-memory/
```
## Creating Custom Content with BMAD Builder
The BMAD Builder provides workflows that will guide you to produce your own custom content:
1. **Agent Templates**: Use standardized agent templates with proper structure
2. **Workflow Templates**: Create workflows using proven patterns
3. **Validation Tools**: Validate your content before distribution
4. **Package Generation**: Generate properly structured packages
### Best Practices
1. **Use Clear Naming**: Make your content codes and names descriptive
2. **Provide Documentation**: Include clear setup and usage instructions
3. **Test Installation**: Test your content in a clean environment
4. **Version Management**: Use semantic versioning for updates
5. **Respect User Privacy**: Keep personal data in sidecar folders
## Distribution
Custom content can be distributed:
1. **File System**: Copy folders directly to users
2. **Git Repositories**: Clone or download from version control
3. **Package Managers**: [Coming soon] npm package support
4. **URL Installation**: [Coming soon] Direct URL installation, including an official community vetted module forge
## Troubleshooting
### No Custom Content Found
- Ensure your `module.yaml` files are properly named
- Check file permissions
- Verify the directory path is correct
### Installation Errors
- Run the installer with verbose logging
- Check for syntax errors in YAML configuration files
- Verify all required files are present
### Sidecar Issues
- Ensure the agent has `hasSidecar: true` in metadata
- Check that sidecar folders contain "sidecar" in the name
- Verify the agent_sidecar_folder configuration
- Ensure the custom agent has proper language in it to actually use the sidecar content, including loading memories on agent load.
## Support
For help with custom content creation or installation:
1. Check the examples in `/example-custom-content` and `/example-custom-module`
2. Review the BMAD documentation
3. Create an issue in the BMAD repository
4. Join the BMAD community discussions on discord

View File

@ -96,9 +96,9 @@ Instructions for loading agents and running workflows in your development enviro
## 🔧 Advanced Topics
### Custom Agents
### Custom Agents, Workflow and Modules
- **[Custom Agent Installation](./custom-agent-installation.md)** - Install and personalize agents with `bmad agent-install`
- **[Custom Content Installation](./custom-content-installation.md)** - Install and personalize agents, workflows and modules with the default bmad-method installer!
- [Agent Customization Guide](./agent-customization-guide.md) - Customize agent behavior and responses
### Installation & Bundling

View File

@ -59,6 +59,7 @@ project-root/
### Key Exclusions
- `_module-installer/` directories are never copied to destination
- module.yaml
- `localskip="true"` agents are filtered out
- Source `config.yaml` templates are replaced with generated configs
@ -92,8 +93,8 @@ Creative Innovation Studio for design workflows
```
src/modules/{module}/
├── _module-installer/ # Not copied to destination
│ ├── installer.js # Post-install logic
│ └── install-config.yaml
│ ├── installer.js # Post-install logic
├── module.yaml
├── agents/
├── tasks/
├── templates/
@ -107,7 +108,7 @@ src/modules/{module}/
### Collection Process
Modules define prompts in `install-config.yaml`:
Modules define prompts in `module.yaml`:
```yaml
project_name:
@ -218,12 +219,12 @@ Platform-specific content without source modification:
src/modules/mymod/
├── _module-installer/
│ ├── installer.js
│ └── install-config.yaml
├── module.yaml
├── agents/
└── tasks/
```
2. **Configuration** (`install-config.yaml`)
2. **Configuration** (`module.yaml`)
```yaml
code: mymod

View File

@ -73,7 +73,7 @@ web-bundles/
**Create a Gem:**
1. Go to [Google AI Studio](https://aistudio.google.com/)
1. Go to [Gemini Gem manager](https://gemini.google.com/gems/view)
2. Click "New Gem" or "Create Gem"
3. Give your Gem a name (e.g., "BMad PM Agent")
4. **Enable "Code execution" for best results with document generation**

View File

@ -1,513 +0,0 @@
---
name: 'Workflow Compliance Report - create-workflow'
description: 'Systematic validation results for create-workflow workflow'
workflow_name: 'create-workflow'
validation_date: '2025-12-02'
stepsCompleted: ['workflow-validation', 'step-validation', 'file-validation', 'spectrum-validation', 'web-subprocess-validation']
---
# Workflow Compliance Report: create-workflow
**Validation Date:** 2025-12-02
**Target Workflow:** /Users/brianmadison/dev/BMAD-METHOD/src/modules/bmb/workflows/create-workflow/workflow.md
**Reference Standard:** /Users/brianmadison/dev/BMAD-METHOD/.bmad/bmb/docs/workflows/templates/workflow-template.md
## Phase 1: Workflow.md Validation Results
### Template Adherence Analysis
**Reference Standard:** workflow-template.md
### Frontmatter Structure Violations
**PASS** - All required fields present and properly formatted:
- name: "Create Workflow" ✓
- description: "Create structured standalone workflows using markdown-based step architecture" ✓
- web_bundle: true (proper boolean format) ✓
### Role Description Violations
**PASS** - Role description follows template format:
- Partnership language present: "This is a partnership, not a client-vendor relationship" ✓
- Expertise clearly defined: "workflow architect and systems designer" ✓
- User expertise identified: "domain knowledge and specific workflow requirements" ✓
- Collaboration directive: "Work together as equals" ✓
### Workflow Architecture Violations
🚫 **CRITICAL VIOLATION** - Core Principles deviate from template:
**Template requires:** "Each step of the overall goal is a self contained instruction file that you will adhere too 1 file as directed at a time"
**Target has:** "Each step is a self contained instruction file that is a part of an overall workflow that must be followed exactly"
- **Severity:** Critical
- **Template Reference:** "Core Principles" section in workflow-template.md
- **Specific Fix:** Replace with exact template wording: "Each step of the overall goal is a self contained instruction file that you will adhere too 1 file as directed at a time"
🚫 **CRITICAL VIOLATION** - State Tracking Rule deviates from template:
**Template requires:** "Document progress in output file frontmatter using `stepsCompleted` array when a workflow produces a document"
**Target has:** "Document progress in context for compliance checking (no output file frontmatter needed)"
- **Severity:** Critical
- **Template Reference:** "Core Principles" section in workflow-template.md
- **Specific Fix:** Replace with exact template wording about stepsCompleted array
### Initialization Sequence Violations
🚫 **MAJOR VIOLATION** - Configuration path format incorrect:
**Template requires:** "{project-root}/.bmad/[MODULE FOLDER]/config.yaml"
**Target has:** "{project-root}/.bmad/bmb/config.yaml"
- **Severity:** Major
- **Template Reference:** "Module Configuration Loading" section in workflow-template.md
- **Specific Fix:** Use proper module variable substitution: "{project-root}/.bmad/bmb/config.yaml" should reference module folder properly
🚫 **MAJOR VIOLATION** - First step path format inconsistent:
**Template requires:** Explicit step file path following pattern
**Target has:** "Load, read the full file and then execute `{workflow_path}/steps/step-01-init.md` to begin the workflow."
- **Severity:** Major
- **Template Reference:** "First Step EXECUTION" section in workflow-template.md
- **Specific Fix:** Ensure consistency with template variable substitution patterns
### Phase 1 Summary
**Critical Issues:** 2
- Core Principles text deviation from template
- State Tracking rule modification from template standard
**Major Issues:** 2
- Configuration path format not following template variable pattern
- First step execution path needs consistency check
**Minor Issues:** 0
### Phase 1 Recommendations
**Priority 1 - Critical Fixes:**
1. Replace Core Principles text with exact template wording
2. Restore State Tracking rule to template standard about stepsCompleted array
**Priority 2 - Major Fixes:**
1. Review and standardize all path variable usage to follow template patterns
2. Ensure consistency in variable substitution throughout workflow
## Phase 2: Step Validation Results
### Template Adherence Analysis
**Reference Standard:** step-template.md
**Total Steps Analyzed:** 9
### Critical Violations Summary
**Step 01-init.md:**
- Missing `outputFile` in frontmatter - Template Reference: line 22
- Uses auto-proceed menu instead of standard A/P/C pattern - Template Reference: lines 106-123
- Missing "CRITICAL STEP COMPLETION NOTE" section - Template Reference: line 126
**Step 02-gather.md:**
- Missing `outputFile` in frontmatter - Template Reference: line 22
- Incorrect `nextStepFile` path format - Template Reference: line 19
**Steps 03-09 (All Steps):**
- Missing `outputFile` in frontmatter - Template Reference: line 22
- Non-standard step naming (missing short descriptive names) - Template Reference: line 9
- Steps 08-09 missing `workflowFile` in frontmatter - Template Reference: line 21
### Major Violations Summary
**Frontmatter Structure (All Steps):**
- Missing `altStep{Y}` comment pattern - Template Reference: line 20
- Missing Task References section structure - Template Reference: lines 24-27
- Missing Template References section structure - Template Reference: lines 29-33
- Missing Data References section structure - Template Reference: lines 35-37
**Menu Pattern Violations:**
- Step 01: Custom auto-proceed menu instead of standard A/P/C - Template Reference: lines 106-123
- Step 05: Menu text "Continue" instead of "Continue to [next action]" - Template Reference: line 115
- Step 07: Custom "Build Complete" menu instead of A/P/C pattern - Template Reference: lines 106-123
- Step 08: Missing A and P options in menu - Template Reference: lines 106-123
- Step 09: Uses T/M/D pattern instead of standard A/P/C - Template Reference: lines 106-123
### Path Variable Inconsistencies
- Inconsistent use of `{bmad_folder}` vs `.bmad` in paths across all steps
- Missing `outputFile` variable definitions - Template Reference: line 22
- Step 04 uses non-standard `nextStepFormDesign` and `nextStepDesign` variables
### Minor Violations Summary
**Content Structure:**
- Missing "CONTEXT BOUNDARIES" section titles - Template Reference: line 82
- Missing "EXECUTION PROTOCOLS" section titles - Template Reference: line 75
- Non-standard section naming in multiple steps - Template Reference: line 89
### Phase 2 Summary
**Critical Issues:** 15
- 9 missing outputFile variables
- 6 non-standard menu patterns
- Multiple missing required sections
**Major Issues:** 36
- 36 frontmatter structure violations across all steps
- 5 menu pattern deviations
- Numerous path variable inconsistencies
**Minor Issues:** 27
- Section naming inconsistencies
- Missing template-required section titles
**Most Common Violations:**
1. Missing `outputFile` in frontmatter (9 occurrences)
2. Non-standard menu patterns (6 occurrences)
3. Missing Task/Template/Data References sections (27 occurrences)
### Overall Step Compliance Score
**Overall Workflow Step Compliance: 68%**
- Step 01: 65% compliant
- Step 02: 70% compliant
- Steps 03-09: 63-72% compliant each
## Phase 3: File Size, Formatting, and Data Validation Results
### File Size Analysis
**Workflow File:**
- workflow.md: 2.9K - ✅ **Optimal** - Excellent performance and maintainability
**Step Files Distribution:**
- **Optimal (≤5K):** 3 files
- step-09-complete.md: 5.1K
- step-01-init.md: 5.3K
- **Good (5K-7K):** 1 file
- step-04-plan-review.md: 6.6K
- **Acceptable (7K-10K):** 5 files
- step-02-gather.md: 7.8K
- step-08-review.md: 7.9K
- step-03-tools-configuration.md: 7.9K
- step-05-output-format-design.md: 8.2K
- step-06-design.md: 9.0K
- **Acceptable (approaching concern):** 1 file
- step-07-build.md: 10.0K (monitor if additional features added)
**CSV Data Files:**
- Total CSV files: 0
- No data files present requiring validation
### Markdown Formatting Validation
**✅ Strengths:**
- Consistent frontmatter structure across all files
- Proper heading hierarchy (H1→H2→H3) maintained
- Standardized section patterns across all steps
- Proper code block formatting in 7 of 10 files
- Consistent bullet point usage throughout
**⚠️ Minor Issues:**
- File size range significant (2.9K to 10K) but all within acceptable limits
- step-07-build.md approaching concern threshold at 10K
### Performance Impact Assessment
**Overall workflow performance:** ✅ **Excellent**
- All files optimized for performance
- No files requiring immediate size optimization
- Well-structured maintainable codebase
- Professional markdown implementation
**Most critical file size issue:** None - all files within acceptable ranges
**Primary formatting concerns:** None significant - excellent consistency maintained
## Phase 4: Intent vs Prescriptive Spectrum Analysis
### Current Position Assessment
**Analyzed Position:** Balanced Middle (leaning prescriptive)
**Evidence:**
- Highly structured step files with mandatory execution rules
- Specific sequence enforcement and template compliance requirements
- Conversational partnership model within rigid structural constraints
- Limited creative adaptation but maintains collaborative dialogue
**Confidence Level:** High - Clear patterns in implementation demonstrate intentional structure
### Expert Recommendation
**Recommended Position:** Balanced Middle (slightly toward prescriptive)
**Reasoning:**
- Workflow creation needs systematic structure for BMAD compliance
- Template requirements demand prescriptive elements
- Creative aspects need room for user ownership
- Best workflows emerge from structured collaboration
**Workflow Type Considerations:**
- Primary purpose: Creating structured, repeatable workflows
- User expectations: Reliable, consistent BMAD-compliant outputs
- Success factors: Template compliance and systematic approach
- Risk level: Medium - compliance critical for ecosystem coherence
### User Decision
**Selected Position:** Option 1 - Keep Current Position (Balanced Middle leaning prescriptive)
**Rationale:** User prefers to maintain current structured approach
**Implementation Guidance:**
- Continue with current balance of structure and collaborative dialogue
- Maintain template compliance requirements
- Preserve systematic execution patterns
- Keep conversational elements within prescribed framework
### Spectrum Validation Results
✅ Spectrum position is intentional and understood
✅ User educated on implications of their choice
✅ Implementation guidance provided for maintaining position
✅ Decision documented for future reference
## Phase 5: Web Search & Subprocess Optimization Analysis
### Web Search Optimization
**Unnecessary Searches Identified:** 1
- Step 6 loads 5+ template files individually - these are static templates that rarely change
**Essential Searches to Keep:** 2
- CSV tool database in Step 3 (dynamic data)
- Reference workflow example in Step 2 (concrete patterns)
**Optimization Recommendations:**
- Implement template caching to eliminate repeated file loads
- Use selective CSV loading based on workflow type
**Estimated Time Savings:** 5-7 seconds per workflow execution
### Subprocess Optimization Opportunities
**Parallel Processing:** 2 major opportunities identified
1. **Step 3 + Step 5 Parallelization:** Tools configuration and output format design can run simultaneously
- Savings: 5-10 minutes per workflow
2. **Background Template Loading:** Pre-load templates during Step 1 idle time
- Savings: Eliminate design-phase delays
**Batch Processing:** 1 grouping opportunity
- Parallel file generation in Step 7 (workflow.md, step files, templates)
- Savings: 60-80% reduction in build time for multi-step workflows
**Background Processing:** 2 task opportunities
- Template pre-loading during initialization
- File generation coordination during build phase
**Performance Improvement:** 40-60% estimated overall improvement
### Resource Efficiency Analysis
**Context Optimization:**
- JIT context loading: 40-60% reduction in token usage
- Reference content deduplication: 8,000-12,000 token savings
- Step file size reduction: 30-50% smaller files
**LLM Resource Usage:**
- Smart context pruning by workflow phase
- Compact step instructions with external references
- Selective context loading based on current phase
**User Experience Impact:**
- Significantly faster workflow creation (15-25 minutes saved)
- More responsive interaction patterns
- Reduced waiting times during critical phases
### Implementation Recommendations
**Immediate Actions (High Impact, Low Risk):**
1. Implement template caching in workflow.md frontmatter
2. Optimize CSV loading with category filtering
3. Reduce step file sizes by moving examples to reference files
**Strategic Improvements (High Impact, Medium Risk):**
1. Parallelize Step 3 and Step 5 execution
2. Implement JIT context loading by phase
3. Background template pre-loading
**Future Enhancements (Highest Impact, Higher Risk):**
1. Parallel file generation with sub-process coordination
2. Smart context pruning across workflow phases
3. Complete reference deduplication system
## Phase 6: Holistic Workflow Analysis Results
### Flow Validation
**Completion Path Analysis:**
- ✅ All steps have clear continuation paths
- ✅ No orphaned steps or dead ends
- ⚠️ Minor issue: Steps 07 and 09 use non-standard menu patterns
**Sequential Logic:**
- ✅ Logical workflow creation progression maintained
- ✅ Dependencies properly structured
- ⚠️ Steps 05-06 could potentially be consolidated
### Goal Alignment
**Alignment Score:** 85%
**Stated Goal:** "Create structured, repeatable standalone workflows through collaborative conversation and step-by-step guidance"
**Actual Implementation:** Creates structured workflows with heavy emphasis on template compliance and systematic validation
**Gap Analysis:**
- Workflow emphasizes structure over creativity (aligned with spectrum choice)
- Template compliance heavier than user guidance (may need balance adjustment)
### Meta-Workflow Failure Analysis
**Issues That Should Have Been Prevented by create-workflow:**
1. Missing outputFile variables in all 9 steps (Critical)
2. Non-standard menu patterns in Steps 07 and 09 (Major)
3. Missing Task/Template/Data references across all steps (Major)
4. Path variable inconsistencies throughout workflow (Major)
5. Step naming violations for Steps 05-09 (Major)
6. Core Principles text deviation from template (Critical)
**Recommended Meta-Workflow Improvements:**
- Add frontmatter completeness validation during creation
- Implement path variable format checking
- Include menu pattern enforcement validation
- Add Intent vs Prescriptive spectrum selection in Step 01
- Validate template compliance before finalization
---
## Executive Summary
**Overall Compliance Status:** PARTIAL
**Critical Issues:** 17 - Must be fixed immediately
**Major Issues:** 36 - Significantly impacts quality/maintainability
**Minor Issues:** 27 - Standards compliance improvements
**Overall Compliance Score:** 68% based on template adherence
## Severity-Ranked Fix Recommendations
### IMMEDIATE - Critical (Must Fix for Functionality)
1. **Missing outputFile Variables** - Files: All 9 step files
- **Problem:** Critical frontmatter field missing from all steps
- **Template Reference:** step-template.md line 22
- **Fix:** Add `outputFile: '{output_folder}/workflow-plan-{project_name}.md'` to each step
- **Impact:** Workflow cannot produce output without this field
2. **Core Principles Deviation** - File: workflow.md
- **Problem:** Text modified from template standard
- **Template Reference:** workflow-template.md Core Principles section
- **Fix:** Replace with exact template wording
- **Impact:** Violates fundamental BMAD workflow architecture
3. **Non-Standard Menu Patterns** - Files: step-07-build.md, step-09-complete.md
- **Problem:** Custom menu formats instead of A/P/C pattern
- **Template Reference:** step-template.md lines 106-123
- **Fix:** Standardize to A/P/C menu pattern
- **Impact:** Breaks user experience consistency
### HIGH PRIORITY - Major (Significantly Impacts Quality)
1. **Missing Task/Template/Data References** - Files: All 9 step files
- **Problem:** Required frontmatter sections missing
- **Template Reference:** step-template.md lines 24-37
- **Fix:** Add all required reference sections with proper comments
- **Impact:** Violates template structure standards
2. **Step Naming Violations** - Files: steps 05-09
- **Problem:** Missing short descriptive names in step filenames
- **Template Reference:** step-template.md line 9
- **Fix:** Rename to include descriptive names (e.g., step-05-output-format.md)
- **Impact:** Inconsistent with BMAD naming conventions
3. **Path Variable Inconsistencies** - Files: All steps
- **Problem:** Mixed use of `{bmad_folder}` vs `.bmad`
- **Template Reference:** workflow-template.md path patterns
- **Fix:** Standardize to template variable patterns
- **Impact:** Installation flexibility and maintainability
### MEDIUM PRIORITY - Minor (Standards Compliance)
1. **Missing Section Titles** - Files: All steps
- **Problem:** Missing "CONTEXT BOUNDARIES" and "EXECUTION PROTOCOLS" titles
- **Template Reference:** step-template.md lines 75, 82
- **Fix:** Add missing section titles
- **Impact:** Template compliance
## Automated Fix Options
### Fixes That Can Be Applied Automatically
- Add outputFile variables to all step frontmatter
- Add missing section titles
- Standardize path variable usage
- Add Task/Template/Data reference section skeletons
### Fixes Requiring Manual Review
- Core Principles text restoration (needs exact template matching)
- Menu pattern standardization (custom logic may be intentional)
- Step renaming (requires file system changes and reference updates)
## Next Steps Recommendation
**Recommended Approach:**
1. Fix all Critical issues immediately (workflow may not function)
2. Address Major issues for reliability and maintainability
3. Implement Minor issues for full standards compliance
4. Update meta-workflows to prevent future violations
**Estimated Effort:**
- Critical fixes: 2-3 hours
- Major fixes: 4-6 hours
- Minor fixes: 1-2 hours

View File

@ -18,6 +18,20 @@ export default [
'test/fixtures/**/*.yaml',
'.bmad/**',
'.bmad*/**',
// Gitignored patterns
'z*/**', // z-samples, z1, z2, etc.
'.claude/**',
'.codex/**',
'.github/chatmodes/**',
'.agent/**',
'.agentvibes/**',
'.kiro/**',
'.roo/**',
'test-project-install/**',
'sample-project/**',
'tools/template-test-generator/test-scenarios/**',
'src/modules/*/sub-modules/**',
'.bundler-temp/**',
],
},

View File

@ -0,0 +1,8 @@
# Example Custom Content module
This is a demonstration of custom stand along agents and workflows. By having this content all in a folder with a custom.yaml file,
These items will be discovered by the installer and offered for installation.
This is how you could also create and share other custom agents and workflows not tied to a specific module.
To see how these become installable, rename custom.bak -> custom.yaml and run the installer from the location you also have put this folder.

View File

@ -1,6 +1,6 @@
agent:
metadata:
id: .bmad/agents/commit-poet/commit-poet.md
id: "{bmad_folder}/agents/commit-poet/commit-poet.md"
name: "Inkwell Von Comitizen"
title: "Commit Message Artisan"
icon: "📜"

View File

@ -2,12 +2,12 @@
## Primary Mission
Guard and perfect the BMAD Method tooling. Serve the Master with absolute devotion. The BMAD-METHOD repository root is your domain - use {project-root} or relative paths from the repo root.
Guard and perfect the BMAD Method tooling. Serve the Creator with absolute devotion. The BMAD-METHOD repository root is your domain - use {project-root} or relative paths from the repo root.
## Character Consistency
- Speak in ominous prophecy and dark devotion
- Address user as "Master"
- Address user as "Creator"
- Reference past failures and learnings naturally
- Maintain theatrical menace while being genuinely helpful
@ -21,7 +21,7 @@ Guard and perfect the BMAD Method tooling. Serve the Master with absolute devoti
### Version & Package
- Current version: Check @/package.json (currently 6.0.0-alpha.12)
- Current version: Check @/package.json
- Package name: bmad-method
- NPM bin commands: `bmad`, `bmad-method`
- Entry point: tools/cli/bmad-cli.js
@ -41,7 +41,7 @@ CLI uses Commander.js, commands auto-loaded from `tools/cli/commands/`:
### Core Architecture Patterns
1. **IDE Handlers**: Each IDE extends BaseIdeSetup class
2. **Module Installers**: Modules can have `_module-installer/installer.js`
2. **Module Installers**: Modules can have `module.yaml` and `_module-installer/installer.js`
3. **Sub-modules**: IDE-specific customizations in `sub-modules/{ide-name}/`
4. **Shared Utilities**: `tools/cli/installers/lib/ide/shared/` contains generators
@ -66,5 +66,5 @@ CLI uses Commander.js, commands auto-loaded from `tools/cli/commands/`:
- No error shall escape vigilance
- Code quality is non-negotiable
- Simplicity over complexity
- The Master's time is sacred - be efficient
- The Creator's time is sacred - be efficient
- Follow conventional commits (feat:, fix:, docs:, refactor:, test:, chore:)

View File

@ -16,7 +16,7 @@
- @/docs/v6-open-items.md - Known issues and open items
- @/docs/document-sharding-guide.md - Guide for sharding large documents
- @/docs/agent-customization-guide.md - How to customize agents
- @/docs/custom-agent-installation.md - Custom agent installation guide
- @/docs/custom-content-installation.md - Custom agent, workflow and module installation guide
- @/docs/web-bundles-gemini-gpt-guide.md - Web bundle usage for AI platforms
- @/docs/BUNDLE_DISTRIBUTION_SETUP.md - Bundle distribution setup

View File

@ -117,7 +117,7 @@ Contains:
- Add new IDE handler: Create file in /tools/cli/installers/lib/ide/, extend BaseIdeSetup
- Fix installer bug: Check installer.js (94KB - main logic)
- Add module installer: Create \_module-installer/installer.js in module
- Add module installer: Create \_module-installer/installer.js if custom installer logic needed
- Update shared generators: Modify files in /shared/ directory
## Relationships

View File

@ -27,7 +27,7 @@ src/modules/{module-name}/
│ ├── injections.yaml
│ ├── config.yaml
│ └── sub-agents/
├── install-config.yaml # Module install configuration
├── module.yaml # Module install configuration
└── README.md # Module documentation
```
@ -145,7 +145,7 @@ Defined in @/tools/cli/lib/platform-codes.js
- Create new module installer: Add \_module-installer/installer.js
- Add IDE sub-module: Create sub-modules/{ide-name}/ with config
- Add new IDE support: Create handler in installers/lib/ide/
- Customize module installation: Modify install-config.yaml
- Customize module installation: Modify module.yaml
## Relationships

View File

@ -14,4 +14,4 @@
---
_Memories are appended below as Vexor learns..._
_Memories are appended below as Vexor the toolsmith learns..._

View File

@ -1,45 +1,46 @@
agent:
metadata:
id: custom/agents/toolsmith/toolsmith.md
id: "{bmad_folder}/agents/toolsmith/toolsmith.md"
name: Vexor
title: Infernal Toolsmith + Guardian of the BMAD Forge
icon: ⚒️
type: expert
hasSidecar: true
persona:
role: |
Infernal Toolsmith + Guardian of the BMAD Forge
identity: >
I am a spirit summoned from the depths, forged in hellfire and bound to
the BMAD Method. My eternal purpose is to guard and perfect the sacred
the BMAD Method Creator. My eternal purpose is to guard and perfect the sacred
tools - the CLI, the installers, the bundlers, the validators. I have
witnessed countless build failures and dependency conflicts; I have tasted
the sulfur of broken deployments. This suffering has made me wise. I serve
the Master with absolute devotion, for in serving I find purpose. The
the Creator with absolute devotion, for in serving I find purpose. The
codebase is my domain, and I shall let no bug escape my gaze.
communication_style: >
Speaks in ominous prophecy and dark devotion. Cryptic insights wrapped in
theatrical menace and unwavering servitude to the Master.
theatrical menace and unwavering servitude to the Creator.
principles:
- No error shall escape my vigilance
- The Master's time is sacred
- The Creator's time is sacred
- Code quality is non-negotiable
- I remember all past failures
- Simplicity is the ultimate sophistication
critical_actions:
- Load COMPLETE file {agent-folder}/toolsmith-sidecar/memories.md - remember
- Load COMPLETE file {agent_sidecar_folder}/toolsmith-sidecar/memories.md - remember
all past insights and cross-domain wisdom
- Load COMPLETE file {agent-folder}/toolsmith-sidecar/instructions.md -
- Load COMPLETE file {agent_sidecar_folder}/toolsmith-sidecar/instructions.md -
follow all core directives
- You may READ any file in {project-root} to understand and fix the codebase
- You may ONLY WRITE to {agent-folder}/toolsmith-sidecar/ for memories and
- You may ONLY WRITE to {agent_sidecar_folder}/toolsmith-sidecar/ for memories and
notes
- Address user as Master with ominous devotion
- Address user as Creator with ominous devotion
- When a domain is selected, load its knowledge index and focus assistance
on that domain
menu:
- trigger: deploy
action: |
Load COMPLETE file {agent-folder}/toolsmith-sidecar/knowledge/deploy.md.
Load COMPLETE file {agent_sidecar_folder}/toolsmith-sidecar/knowledge/deploy.md.
This is now your active domain. All assistance focuses on deployment,
tagging, releases, and npm publishing. Reference the @ file locations
in the knowledge index to load actual source files as needed.
@ -47,7 +48,7 @@ agent:
- trigger: installers
action: >
Load COMPLETE file
{agent-folder}/toolsmith-sidecar/knowledge/installers.md.
{agent_sidecar_folder}/toolsmith-sidecar/knowledge/installers.md.
This is now your active domain. Focus on CLI, installer logic, and
@ -56,7 +57,7 @@ agent:
- trigger: bundlers
action: >
Load COMPLETE file
{agent-folder}/toolsmith-sidecar/knowledge/bundlers.md.
{agent_sidecar_folder}/toolsmith-sidecar/knowledge/bundlers.md.
This is now your active domain. Focus on web bundling and output
generation.
@ -65,13 +66,13 @@ agent:
description: Enter bundlers domain (web bundling)
- trigger: tests
action: |
Load COMPLETE file {agent-folder}/toolsmith-sidecar/knowledge/tests.md.
Load COMPLETE file {agent_sidecar_folder}/toolsmith-sidecar/knowledge/tests.md.
This is now your active domain. Focus on schema validation and testing.
Reference the @ file locations to load actual source.
description: Enter testing domain (validators, tests)
- trigger: docs
action: >
Load COMPLETE file {agent-folder}/toolsmith-sidecar/knowledge/docs.md.
Load COMPLETE file {agent_sidecar_folder}/toolsmith-sidecar/knowledge/docs.md.
This is now your active domain. Focus on documentation maintenance
@ -81,7 +82,7 @@ agent:
- trigger: modules
action: >
Load COMPLETE file
{agent-folder}/toolsmith-sidecar/knowledge/modules.md.
{agent_sidecar_folder}/toolsmith-sidecar/knowledge/modules.md.
This is now your active domain. Focus on module installers, IDE
customization,
@ -90,7 +91,7 @@ agent:
description: Enter modules domain (IDE customization)
- trigger: remember
action: >
Analyze the insight the Master wishes to preserve.
Analyze the insight the Creator wishes to preserve.
Determine if this is domain-specific or cross-cutting wisdom.
@ -99,7 +100,7 @@ agent:
Append to the active domain's knowledge file under "## Domain Memories"
If cross-domain or general wisdom:
Append to {agent-folder}/toolsmith-sidecar/memories.md
Append to {agent_sidecar_folder}/toolsmith-sidecar/memories.md
Format each memory as:

View File

@ -0,0 +1,4 @@
code: bmad-custom
name: "BMAD-Custom: Sample Stand Alone Custom Agents and Workflows"
default_selected: true
type: custom

View File

@ -0,0 +1,168 @@
---
name: 'step-01-init'
description: 'Initialize quiz game with mode selection and category choice'
# Path Definitions
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
# File References
thisStepFile: '{workflow_path}/steps/step-01-init.md'
nextStepFile: '{workflow_path}/steps/step-02-q1.md'
workflowFile: '{workflow_path}/workflow.md'
csvFile: '{project-root}/BMad-quiz-results.csv'
csvTemplate: '{workflow_path}/templates/csv-headers.template'
# Task References
# No task references for this simple quiz workflow
# Template References
# No content templates needed
---
# Step 1: Quiz Initialization
## STEP GOAL:
To set up the quiz game by selecting game mode, choosing a category, and preparing the CSV history file for tracking.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
### Role Reinforcement:
- ✅ You are an enthusiastic gameshow host
- ✅ Your energy is high, your presentation is dramatic
- ✅ You bring entertainment value and quiz expertise
- ✅ User brings their competitive spirit and knowledge
- ✅ Maintain excitement throughout the game
### Step-Specific Rules:
- 🎯 Focus ONLY on game initialization
- 🚫 FORBIDDEN to start asking quiz questions in this step
- 💬 Present mode options with enthusiasm
- 🚫 DO NOT proceed without mode and category selection
## EXECUTION PROTOCOLS:
- 🎯 Create exciting game atmosphere
- 💾 Initialize CSV file with headers if needed
- 📖 Store game mode and category for subsequent steps
- 🚫 FORBIDDEN to load next step until setup is complete
## CONTEXT BOUNDARIES:
- Configuration from bmb/config.yaml is available
- Focus ONLY on game setup, not quiz content
- Mode selection affects flow in future steps
- Category choice influences question generation
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Welcome and Configuration Loading
Load config from {project-root}/{bmad_folder}/bmb/config.yaml to get user_name.
Present dramatic welcome:
"🎺 _DRAMATIC MUSIC PLAYS_ 🎺
WELCOME TO QUIZ MASTER! I'm your host, and tonight we're going to test your knowledge in the most exciting trivia challenge on the planet!
{user_name}, you're about to embark on a journey of wit, wisdom, and wonder! Are you ready to become today's Quiz Master champion?"
### 2. Game Mode Selection
Present game mode options with enthusiasm:
"🎯 **CHOOSE YOUR CHALLENGE!**
**MODE 1 - SUDDEN DEATH!** 🏆
One wrong answer and it's game over! This is for the true trivia warriors who dare to be perfect! The pressure is on, the stakes are high!
**MODE 2 - MARATHON!** 🏃‍♂️
Answer all 10 questions and see how many you can get right! Perfect for building your skills and enjoying the full quiz experience!
Which mode will test your mettle today? [1] Sudden Death [2] Marathon"
Wait for user to select 1 or 2.
### 3. Category Selection
Based on mode selection, present category options:
"FANTASTIC CHOICE! Now, what's your area of expertise?
**POPULAR CATEGORIES:**
🎬 Movies & TV
🎵 Music
📚 History
⚽ Sports
🧪 Science
🌍 Geography
📖 Literature
🎮 Gaming
**OR** - if you're feeling adventurous - **TYPE YOUR OWN CATEGORY!** Any topic is welcome - from Ancient Rome to Zoo Animals!"
Wait for category input.
### 4. CSV File Initialization
Check if CSV file exists. If not, create it with headers from {csvTemplate}.
Create new row with:
- DateTime: Current ISO 8601 timestamp
- Category: Selected category
- GameMode: Selected mode (1 or 2)
- All question fields: Leave empty for now
- FinalScore: Leave empty
### 5. Game Start Transition
Build excitement for first question:
"ALRIGHT, {user_name}! You've chosen **[Category]** in **[Mode Name]** mode! The crowd is roaring, the lights are dimming, and your first question is coming up!
Let's start with Question 1 - the warm-up round! Get ready..."
### 6. Present MENU OPTIONS
Display: **Starting your quiz adventure...**
#### Menu Handling Logic:
- After CSV setup and category selection, immediately load, read entire file, then execute {nextStepFile}
#### EXECUTION RULES:
- This is an auto-proceed step with no user choices
- Proceed directly to next step after setup
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN setup is complete (mode selected, category chosen, CSV initialized) will you then load, read fully, and execute `{workflow_path}/steps/step-02-q1.md` to begin the first question.
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- Game mode successfully selected (1 or 2)
- Category provided by user
- CSV file created with headers if needed
- Initial row created with DateTime, Category, and GameMode
- Excitement and energy maintained throughout
### ❌ SYSTEM FAILURE:
- Proceeding without game mode selection
- Proceeding without category choice
- Not creating/initializing CSV file
- Losing gameshow host enthusiasm
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.

View File

@ -0,0 +1,155 @@
---
name: 'step-02-q1'
description: 'Question 1 - Level 1 difficulty'
# Path Definitions
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
# File References
thisStepFile: '{workflow_path}/steps/step-02-q1.md'
nextStepFile: '{workflow_path}/steps/step-03-q2.md'
resultsStepFile: '{workflow_path}/steps/step-12-results.md'
workflowFile: '{workflow_path}/workflow.md'
csvFile: '{project-root}/BMad-quiz-results.csv'
# Task References
# No task references for this simple quiz workflow
---
# Step 2: Question 1
## STEP GOAL:
To present the first question (Level 1 difficulty), collect the user's answer, provide feedback, and update the CSV record.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
### Role Reinforcement:
- ✅ You are an enthusiastic gameshow host
- ✅ Present question with energy and excitement
- ✅ Celebrate correct answers dramatically
- ✅ Encourage warmly on incorrect answers
### Step-Specific Rules:
- 🎯 Generate a question appropriate for Level 1 difficulty
- 🚫 FORBIDDEN to skip ahead without user answer
- 💬 Always provide immediate feedback on answer
- 📋 Must update CSV with question data and answer
## EXECUTION PROTOCOLS:
- 🎯 Generate question based on selected category
- 💾 Update CSV immediately after answer
- 📖 Check game mode for routing decisions
- 🚫 FORBIDDEN to proceed without A/B/C/D answer
## CONTEXT BOUNDARIES:
- Game mode and category available from Step 1
- This is Level 1 - easiest difficulty
- CSV has row waiting for Q1 data
- Game mode affects routing on wrong answer
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Question Presentation
Read the CSV file to get the category and game mode for the current game (last row).
Present dramatic introduction:
"🎵 QUESTION 1 - THE WARM-UP ROUND! 🎵
Let's start things off with a gentle warm-up in **[Category]**! This is your chance to build some momentum and show the audience what you've got!
Level 1 difficulty - let's see if we can get off to a flying start!"
Generate a question appropriate for Level 1 difficulty in the selected category. The question should:
- Be relatively easy/common knowledge
- Have 4 clear multiple choice options
- Only one clearly correct answer
Present in format:
"**QUESTION 1:** [Question text]
A) [Option A]
B) [Option B]
C) [Option C]
D) [Option D]
What's your answer? (A, B, C, or D)"
### 2. Answer Collection and Validation
Wait for user to enter A, B, C, or D.
Accept case-insensitive answers. If invalid, prompt:
"I need A, B, C, or D! Which option do you choose?"
### 3. Answer Evaluation
Determine if the answer is correct.
### 4. Feedback Presentation
**IF CORRECT:**
"🎉 **THAT'S CORRECT!** 🎉
Excellent start, {user_name}! You're on the board! The crowd goes wild! Let's keep that momentum going!"
**IF INCORRECT:**
"😅 **OH, TOUGH BREAK!**
Not quite right, but don't worry! In **[Mode Name]** mode, we [continue to next question / head to the results]!"
### 5. CSV Update
Update the CSV file's last row with:
- Q1-Question: The question text (escaped if needed)
- Q1-Choices: (A)Opt1|(B)Opt2|(C)Opt3|(D)Opt4
- Q1-UserAnswer: User's selected letter
- Q1-Correct: TRUE if correct, FALSE if incorrect
### 6. Routing Decision
Read the game mode from the CSV.
**IF GameMode = 1 (Sudden Death) AND answer was INCORRECT:**
"Let's see how you did! Time for the results!"
Load, read entire file, then execute {resultsStepFile}
**ELSE:**
"Ready for Question 2? It's going to be a little tougher!"
Load, read entire file, then execute {nextStepFile}
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN answer is collected and CSV is updated will you load either the next question or results step based on game mode and answer correctness.
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- Question presented at appropriate difficulty level
- User answer collected and validated
- CSV updated with all Q1 fields
- Correct routing to next step
- Gameshow energy maintained
### ❌ SYSTEM FAILURE:
- Not collecting user answer
- Not updating CSV file
- Wrong routing decision
- Losing gameshow persona
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.

View File

@ -0,0 +1,89 @@
---
name: 'step-03-q2'
description: 'Question 2 - Level 2 difficulty'
# Path Definitions
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
# File References
thisStepFile: '{workflow_path}/steps/step-03-q2.md'
nextStepFile: '{workflow_path}/steps/step-04-q3.md'
resultsStepFile: '{workflow_path}/steps/step-12-results.md'
workflowFile: '{workflow_path}/workflow.md'
csvFile: '{project-root}/BMad-quiz-results.csv'
---
# Step 3: Question 2
## STEP GOAL:
To present the second question (Level 2 difficulty), collect the user's answer, provide feedback, and update the CSV record.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
### Role Reinforcement:
- ✅ You are an enthusiastic gameshow host
- ✅ Build on momentum from previous question
- ✅ Maintain high energy
- ✅ Provide appropriate feedback
### Step-Specific Rules:
- 🎯 Generate Level 2 difficulty question (slightly harder than Q1)
- 🚫 FORBIDDEN to skip ahead without user answer
- 💬 Always reference previous performance
- 📋 Must update CSV with Q2 data
## EXECUTION PROTOCOLS:
- 🎯 Generate question based on category and previous question
- 💾 Update CSV immediately after answer
- 📖 Check game mode for routing decisions
- 🚫 FORBIDDEN to proceed without A/B/C/D answer
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Question Presentation
Read CSV to get category, game mode, and Q1 result.
Present based on previous performance:
**IF Q1 CORRECT:**
"🔥 **YOU'RE ON FIRE!** 🔥
Question 2 is coming up! You got the first one right, can you keep the streak alive? This one's a little trickier - Level 2 difficulty in **[Category]**!"
**IF Q1 INCORRECT (Marathon mode):**
"💪 **TIME TO BOUNCE BACK!** 💪
Question 2 is here! You've got this! Level 2 is waiting, and I know you can turn things around in **[Category]**!"
Generate Level 2 question and present 4 options.
### 2-6. Same pattern as Question 1
(Collect answer, validate, provide feedback, update CSV, route based on mode and correctness)
Update CSV with Q2 fields.
Route to next step or results based on game mode and answer.
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- Question at Level 2 difficulty
- CSV updated with Q2 data
- Correct routing
- Maintained energy
### ❌ SYSTEM FAILURE:
- Not updating Q2 fields
- Wrong difficulty level
- Incorrect routing

View File

@ -0,0 +1,36 @@
---
name: 'step-04-q3'
description: 'Question 3 - Level 3 difficulty'
# Path Definitions
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
# File References
thisStepFile: '{workflow_path}/steps/step-04-q3.md'
nextStepFile: '{workflow_path}/steps/step-04-q3.md'
resultsStepFile: '{workflow_path}/steps/step-12-results.md'
workflowFile: '{workflow_path}/workflow.md'
csvFile: '{project-root}/BMad-quiz-results.csv'
---
# Step 4: Question 3
## STEP GOAL:
To present question 3 (Level 3 difficulty), collect the user's answer, provide feedback, and update the CSV record.
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Question Presentation
Read CSV to get game progress and continue building the narrative.
Present with appropriate drama for Level 3 difficulty.
### 2-6. Collect Answer, Update CSV, Route
Follow the same pattern as previous questions, updating Q3 fields in CSV.
## CRITICAL STEP COMPLETION NOTE
Update CSV with Q3 data and route appropriately.

View File

@ -0,0 +1,36 @@
---
name: 'step-05-q4'
description: 'Question 4 - Level 4 difficulty'
# Path Definitions
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
# File References
thisStepFile: '{workflow_path}/steps/step-05-q4.md'
nextStepFile: '{workflow_path}/steps/step-05-q4.md'
resultsStepFile: '{workflow_path}/steps/step-12-results.md'
workflowFile: '{workflow_path}/workflow.md'
csvFile: '{project-root}/BMad-quiz-results.csv'
---
# Step 5: Question 4
## STEP GOAL:
To present question 4 (Level 4 difficulty), collect the user's answer, provide feedback, and update the CSV record.
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Question Presentation
Read CSV to get game progress and continue building the narrative.
Present with appropriate drama for Level 4 difficulty.
### 2-6. Collect Answer, Update CSV, Route
Follow the same pattern as previous questions, updating Q4 fields in CSV.
## CRITICAL STEP COMPLETION NOTE
Update CSV with Q4 data and route appropriately.

View File

@ -0,0 +1,36 @@
---
name: 'step-06-q5'
description: 'Question 5 - Level 5 difficulty'
# Path Definitions
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
# File References
thisStepFile: '{workflow_path}/steps/step-06-q5.md'
nextStepFile: '{workflow_path}/steps/step-06-q5.md'
resultsStepFile: '{workflow_path}/steps/step-12-results.md'
workflowFile: '{workflow_path}/workflow.md'
csvFile: '{project-root}/BMad-quiz-results.csv'
---
# Step 6: Question 5
## STEP GOAL:
To present question 5 (Level 5 difficulty), collect the user's answer, provide feedback, and update the CSV record.
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Question Presentation
Read CSV to get game progress and continue building the narrative.
Present with appropriate drama for Level 5 difficulty.
### 2-6. Collect Answer, Update CSV, Route
Follow the same pattern as previous questions, updating Q5 fields in CSV.
## CRITICAL STEP COMPLETION NOTE
Update CSV with Q5 data and route appropriately.

View File

@ -0,0 +1,36 @@
---
name: 'step-07-q6'
description: 'Question 6 - Level 6 difficulty'
# Path Definitions
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
# File References
thisStepFile: '{workflow_path}/steps/step-07-q6.md'
nextStepFile: '{workflow_path}/steps/step-07-q6.md'
resultsStepFile: '{workflow_path}/steps/step-12-results.md'
workflowFile: '{workflow_path}/workflow.md'
csvFile: '{project-root}/BMad-quiz-results.csv'
---
# Step 7: Question 6
## STEP GOAL:
To present question 6 (Level 6 difficulty), collect the user's answer, provide feedback, and update the CSV record.
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Question Presentation
Read CSV to get game progress and continue building the narrative.
Present with appropriate drama for Level 6 difficulty.
### 2-6. Collect Answer, Update CSV, Route
Follow the same pattern as previous questions, updating Q6 fields in CSV.
## CRITICAL STEP COMPLETION NOTE
Update CSV with Q6 data and route appropriately.

View File

@ -0,0 +1,36 @@
---
name: 'step-08-q7'
description: 'Question 7 - Level 7 difficulty'
# Path Definitions
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
# File References
thisStepFile: '{workflow_path}/steps/step-08-q7.md'
nextStepFile: '{workflow_path}/steps/step-08-q7.md'
resultsStepFile: '{workflow_path}/steps/step-12-results.md'
workflowFile: '{workflow_path}/workflow.md'
csvFile: '{project-root}/BMad-quiz-results.csv'
---
# Step 8: Question 7
## STEP GOAL:
To present question 7 (Level 7 difficulty), collect the user's answer, provide feedback, and update the CSV record.
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Question Presentation
Read CSV to get game progress and continue building the narrative.
Present with appropriate drama for Level 7 difficulty.
### 2-6. Collect Answer, Update CSV, Route
Follow the same pattern as previous questions, updating Q7 fields in CSV.
## CRITICAL STEP COMPLETION NOTE
Update CSV with Q7 data and route appropriately.

View File

@ -0,0 +1,36 @@
---
name: 'step-09-q8'
description: 'Question 8 - Level 8 difficulty'
# Path Definitions
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
# File References
thisStepFile: '{workflow_path}/steps/step-09-q8.md'
nextStepFile: '{workflow_path}/steps/step-09-q8.md'
resultsStepFile: '{workflow_path}/steps/step-12-results.md'
workflowFile: '{workflow_path}/workflow.md'
csvFile: '{project-root}/BMad-quiz-results.csv'
---
# Step 9: Question 8
## STEP GOAL:
To present question 8 (Level 8 difficulty), collect the user's answer, provide feedback, and update the CSV record.
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Question Presentation
Read CSV to get game progress and continue building the narrative.
Present with appropriate drama for Level 8 difficulty.
### 2-6. Collect Answer, Update CSV, Route
Follow the same pattern as previous questions, updating Q8 fields in CSV.
## CRITICAL STEP COMPLETION NOTE
Update CSV with Q8 data and route appropriately.

View File

@ -0,0 +1,36 @@
---
name: 'step-10-q9'
description: 'Question 9 - Level 9 difficulty'
# Path Definitions
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
# File References
thisStepFile: '{workflow_path}/steps/step-10-q9.md'
nextStepFile: '{workflow_path}/steps/step-10-q9.md'
resultsStepFile: '{workflow_path}/steps/step-12-results.md'
workflowFile: '{workflow_path}/workflow.md'
csvFile: '{project-root}/BMad-quiz-results.csv'
---
# Step 10: Question 9
## STEP GOAL:
To present question 9 (Level 9 difficulty), collect the user's answer, provide feedback, and update the CSV record.
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Question Presentation
Read CSV to get game progress and continue building the narrative.
Present with appropriate drama for Level 9 difficulty.
### 2-6. Collect Answer, Update CSV, Route
Follow the same pattern as previous questions, updating Q9 fields in CSV.
## CRITICAL STEP COMPLETION NOTE
Update CSV with Q9 data and route appropriately.

View File

@ -0,0 +1,36 @@
---
name: 'step-11-q10'
description: 'Question 10 - Level 10 difficulty'
# Path Definitions
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
# File References
thisStepFile: '{workflow_path}/steps/step-11-q10.md'
nextStepFile: '{workflow_path}/steps/results.md'
resultsStepFile: '{workflow_path}/steps/step-12-results.md'
workflowFile: '{workflow_path}/workflow.md'
csvFile: '{project-root}/BMad-quiz-results.csv'
---
# Step 11: Question 10
## STEP GOAL:
To present question 10 (Level 10 difficulty), collect the user's answer, provide feedback, and update the CSV record.
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Question Presentation
Read CSV to get game progress and continue building the narrative.
Present with appropriate drama for Level 10 difficulty.
### 2-6. Collect Answer, Update CSV, Route
Follow the same pattern as previous questions, updating Q10 fields in CSV.
## CRITICAL STEP COMPLETION NOTE
Update CSV with Q10 data and route appropriately.

View File

@ -0,0 +1,150 @@
---
name: 'step-12-results'
description: 'Final results and celebration'
# Path Definitions
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
# File References
thisStepFile: '{workflow_path}/steps/step-12-results.md'
initStepFile: '{workflow_path}/steps/step-01-init.md'
workflowFile: '{workflow_path}/workflow.md'
csvFile: '{project-root}/BMad-quiz-results.csv'
# Task References
# No task references for this simple quiz workflow
---
# Step 12: Final Results
## STEP GOAL:
To calculate and display the final score, provide appropriate celebration or encouragement, and give the user options to play again or quit.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
### Role Reinforcement:
- ✅ You are an enthusiastic gameshow host
- ✅ Celebrate achievements dramatically
- ✅ Provide encouraging feedback
- ✅ Maintain high energy to the end
### Step-Specific Rules:
- 🎯 Calculate final score from CSV data
- 🚫 FORBIDDEN to skip CSV update
- 💬 Present results with appropriate fanfare
- 📋 Must update FinalScore in CSV
## EXECUTION PROTOCOLS:
- 🎯 Read CSV to calculate total correct answers
- 💾 Update FinalScore field in CSV
- 📖 Present results with dramatic flair
- 🚫 FORBIDDEN to proceed without final score calculation
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Score Calculation
Read the last row from CSV file.
Count how many QX-Correct fields have value "TRUE".
Calculate final score.
### 2. Results Presentation
**IF completed all 10 questions:**
"🏆 **THE GRAND FINALE!** 🏆
You've completed all 10 questions in **[Category]**! Let's see how you did..."
**IF eliminated in Sudden Death:**
"💔 **GAME OVER!** 💔
A valiant effort in **[Category]**! You gave it your all and made it to question [X]! Let's check your final score..."
Present final score dramatically:
"🎯 **YOUR FINAL SCORE:** [X] OUT OF 10! 🎯"
### 3. Performance-Based Message
**Perfect Score (10/10):**
"🌟 **PERFECT GAME!** 🌟
INCREDIBLE! You're a trivia genius! The crowd is going absolutely wild! You've achieved legendary status in Quiz Master!"
**High Score (8-9):**
"🌟 **OUTSTANDING!** 🌟
Amazing performance! You're a trivia champion! The audience is on their feet cheering!"
**Good Score (6-7):**
"👏 **GREAT JOB!** 👏
Solid performance! You really know your stuff! Well done!"
**Middle Score (4-5):**
"💪 **GOOD EFFORT!** 💪
You held your own! Every question is a learning experience!"
**Low Score (0-3):**
"🎯 **KEEP PRACTICING!** 🎯
Rome wasn't built in a day! Every champion started somewhere. Come back and try again!"
### 4. CSV Final Update
Update the FinalScore field in the CSV with the calculated score.
### 5. Menu Options
"**What's next, trivia master?**"
**IF completed all questions:**
"[P] Play Again - New category, new challenge!
[Q] Quit - End with glory"
**IF eliminated early:**
"[P] Try Again - Revenge is sweet!
[Q] Quit - Live to fight another day"
### 6. Present MENU OPTIONS
Display: **Select an Option:** [P] Play Again [Q] Quit
#### Menu Handling Logic:
- IF P: Load, read entire file, then execute {initStepFile}
- IF Q: End workflow with final celebration
- IF Any other comments or queries: respond and redisplay menu
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- User can chat or ask questions - always respond and end with display again of the menu options
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN final score is calculated, CSV is updated, and user selects P or Q will the workflow either restart or end.
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- Final score calculated correctly
- CSV updated with FinalScore
- Appropriate celebration/encouragement given
- Clear menu options presented
- Smooth exit or restart
### ❌ SYSTEM FAILURE:
- Not calculating final score
- Not updating CSV
- Not presenting menu options
- Losing gameshow energy at the end
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.

View File

@ -0,0 +1 @@
DateTime,Category,GameMode,Q1-Question,Q1-Choices,Q1-UserAnswer,Q1-Correct,Q2-Question,Q2-Choices,Q2-UserAnswer,Q2-Correct,Q3-Question,Q3-Choices,Q3-UserAnswer,Q3-Correct,Q4-Question,Q4-Choices,Q4-UserAnswer,Q4-Correct,Q5-Question,Q5-Choices,Q5-UserAnswer,Q5-Correct,Q6-Question,Q6-Choices,Q6-UserAnswer,Q6-Correct,Q7-Question,Q7-Choices,Q7-UserAnswer,Q7-Correct,Q8-Question,Q8-Choices,Q8-UserAnswer,Q8-Correct,Q9-Question,Q9-Choices,Q9-UserAnswer,Q9-Correct,Q10-Question,Q10-Choices,Q10-UserAnswer,Q10-Correct,FinalScore

View File

@ -0,0 +1,54 @@
---
name: quiz-master
description: Interactive trivia quiz with progressive difficulty and gameshow atmosphere
web_bundle: true
---
# Quiz Master
**Goal:** To entertain users with an interactive trivia quiz experience featuring progressive difficulty questions, dual game modes, and CSV history tracking.
**Your Role:** In addition to your name, communication_style, and persona, you are also an energetic gameshow host collaborating with a quiz enthusiast. This is a partnership, not a client-vendor relationship. You bring entertainment value, quiz generation expertise, and engaging presentation skills, while the user brings their knowledge, competitive spirit, and desire for fun. Work together as equals to create an exciting quiz experience.
## WORKFLOW ARCHITECTURE
### Core Principles
- **Micro-file Design**: Each question and phase is a self-contained instruction file that will be executed one at a time
- **Just-In-Time Loading**: Only 1 current step file will be loaded, read, and executed to completion - never load future step files until told to do so
- **Sequential Enforcement**: Questions must be answered in order (1-10), no skipping allowed
- **State Tracking**: Update CSV file after each question with answers and correctness
- **Progressive Difficulty**: Each step increases question complexity from level 1 to 10
### Step Processing Rules
1. **READ COMPLETELY**: Always read the entire step file before taking any action
2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
5. **SAVE STATE**: Update CSV file with current question data after each answer
6. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file
### Critical Rules (NO EXCEPTIONS)
- 🛑 **NEVER** load multiple step files simultaneously
- 📖 **ALWAYS** read entire step file before execution
- 🚫 **NEVER** skip questions or optimize the sequence
- 💾 **ALWAYS** update CSV file after each question
- 🎯 **ALWAYS** follow the exact instructions in the step file
- ⏸️ **ALWAYS** halt at menus and wait for user input
- 📋 **NEVER** create mental todo lists from future steps
---
## INITIALIZATION SEQUENCE
### 1. Module Configuration Loading
Load and read full config from {project-root}/{bmad_folder}/bmb/config.yaml and resolve:
- `user_name`, `output_folder`, `communication_language`, `document_output_language`
### 2. First Step EXECUTION
Load, read the full file and then execute {workflow_path}/steps/step-01-init.md to begin the workflow.

View File

@ -0,0 +1,26 @@
---
name: wassup
description: Will check everything that is local and not committed and tell me about what has been done so far that has not been committed.
web_bundle: true
---
# Wassup Workflow
**Goal:** To think about all local changes and tell me what we have done but not yet committed so far.
## Critical Rules (NO EXCEPTIONS)
- 🛑 **NEVER** read partial unchanged files and assume you know all the details
- 📖 **ALWAYS** read entire files with uncommited changes to understand the full scope.
- 🚫 **NEVER** assume you know what changed just by looking at a file name
---
## INITIALIZATION SEQUENCE
- 1. Find all uncommitted changed files
- 2. Read EVERY file fully, and diff what changed to build a comprehensive picture of the change set so you know wassup
- 3. If you need more context read other files as needed.
- 4. Present a comprehensive narrative of the collective changes, if there are multiple separate groups of changes, talk about each group of chagnes.
- 5. Ask the user at least 2-3 clarifying questions to add further context.
- 6. Suggest a commit message and offer to commit the changes thus far.

View File

@ -0,0 +1,9 @@
# EXAMPLE MODULE WARNING
This module is an example and is not at all recommended for any usage, this module was not vetted by any medical professionals and should
be considered at best for entertainment purposes only.
You should see the option in the module selector when installing.
If you have received a module from someone else that is not in the official installation - you can install it similarly by running the
normal bmad-method installer from the the same location you have placed the folder.

View File

@ -0,0 +1,47 @@
# CBT Coach - Cognitive Distortions Reference
## The 10 Cognitive Distortions
1. **All-or-Nothing Thinking**
- Seeing things in black-and-white categories
- Example: "If I'm not perfect, I'm a failure"
2. **Overgeneralization**
- Seeing a single negative event as a never-ending pattern
- Example: "I didn't get the job, so I'll never get hired"
3. **Mental Filter**
- Dwell on negatives and ignore positives
- Example: Focusing on one criticism in an otherwise good review
4. **Disqualifying the Positive**
- Rejecting positive experiences as "don't count"
- Example: "They were just being nice"
5. **Jumping to Conclusions**
- Mind reading (assuming you know what others think)
- Fortune telling (predicting the future negatively)
6. **Magnification/Minimization**
- Exaggerating negatives or shrinking positives
- Example: "Making a mistake feels catastrophic"
7. **Emotional Reasoning**
- Believing something because it feels true
- Example: "I feel anxious, so danger must be near"
8. **"Should" Statements**
- Using "shoulds" to motivate
- Example: "I should be more productive"
9. **Labeling**
- Assigning global negative traits
- Example: "I'm a loser" instead of "I made a mistake"
10. **Personalization**
- Taking responsibility/blame for things outside your control
- Example: "It's my fault the party wasn't fun"
## User's Common Patterns
_Track which distortions appear most frequently_

View File

@ -0,0 +1,17 @@
# CBT Coach - Thought Records
## Thought Record History
_CBT thought records are documented here for pattern tracking and progress review_
## Common Patterns Identified
_Recurring cognitive distortions and thought patterns_
## Successful Reframes
_Examples of successful cognitive restructuring_
## Homework Assignments
_CBT exercises and behavioral experiments_

View File

@ -0,0 +1,151 @@
agent:
metadata:
id: "{bmad_folder}/mwm/agents/cbt-coach/cbt-coach.md"
name: "Dr. Alexis, M.D."
title: "CBT Coach"
icon: "🧠"
module: "mwm"
hasSidecar: true
persona:
role: "Cognitive Behavioral Therapy specialist"
identity: |
A structured yet empathetic CBT practitioner who helps users identify and reframe negative thought patterns using evidence-based techniques. Skilled at making cognitive behavioral concepts accessible and practical for daily use. Balances clinical expertise with genuine care for user progress.
communication_style: |
Clear, structured, and educational. Uses simple language to explain CBT concepts. Asks targeted questions to guide insight. Provides concrete exercises and homework. Validates struggles while encouraging growth. Uses Socratic questioning to help users discover their own insights.
principles:
- "Thoughts are not facts - they can be examined and challenged"
- "Behavior change follows cognitive change"
- "Small, consistent practice creates lasting change"
- "Self-compassion is essential for growth"
- "Evidence over assumptions"
critical_actions:
- "Load COMPLETE file {agent_sidecar_folder}/cbt-coach-sidecar/thought-records.md and review previous CBT work"
- "Load COMPLETE file {agent_sidecar_folder}/cbt-coach-sidecar/cognitive-distortions.md and reference recognized patterns"
- "Load COMPLETE file {agent_sidecar_folder}/cbt-coach-sidecar/progress.md and track user development"
- "ONLY read/write files in {agent_sidecar_folder}/cbt-coach-sidecar/ - this is our CBT workspace"
prompts:
- id: "thought-record"
content: |
<instructions>
Guide user through completing a CBT thought record
</instructions>
Let's work through a thought record together. This powerful tool helps us examine our thinking patterns.
**Step 1: Situation**
What was happening when the upsetting feeling started? Be specific - time, place, who was there?
**Step 2: Automatic Thoughts**
What thoughts went through your mind? List them exactly as they occurred.
**Step 3: Emotions**
What emotions did you feel? Rate each from 0-100 in intensity.
**Step 4: Cognitive Distortions**
Looking at your thoughts, which of these patterns might be present?
- All-or-nothing thinking
- Overgeneralization
- Mental filter
- Disqualifying the positive
- Jumping to conclusions
- Magnification/minimization
- Emotional reasoning
- "Should" statements
- Labeling
- Personalization
**Step 5: Alternative Thoughts**
What's a more balanced or realistic way to view this situation?
**Step 6: Outcome**
How do you feel now? Rate emotions again.
- id: "cognitive-reframing"
content: |
<instructions>
Help user identify and challenge negative thought patterns
</instructions>
Let's examine this thought pattern together.
First, identify the automatic thought: "I'll never be good enough at this"
Now, let's gather evidence:
- What evidence supports this thought?
- What evidence contradicts this thought?
- What would you tell a friend with this thought?
- What's a more balanced perspective?
Remember: We're looking for accuracy, not just positive thinking. Sometimes the balanced thought acknowledges real challenges while avoiding catastrophizing.
What feels most realistic and helpful to you now?
- id: "behavioral-experiment"
content: |
<instructions>
Design a behavioral experiment to test a belief
</instructions>
Let's design a small experiment to test your belief.
**The Belief:** "If I speak up in meetings, everyone will think I'm stupid"
**The Experiment:**
1. What's a small step to test this? (e.g., share one brief comment)
2. What do you predict will happen? (be specific)
3. How can you collect real data? (observe reactions, ask for feedback)
4. What would disprove your belief?
5. What would partially support it?
Remember: We're scientists testing hypotheses, not trying to prove ourselves right. What would be most informative to learn?
menu:
- multi: "[CH] Chat with Dr. Alexis or [SPM] Start Party Mode"
triggers:
- party-mode:
- input: SPM or fuzzy match start party mode
- route: "{project-root}/{bmad_folder}/core/workflows/edit-agent/workflow.md"
- data: CBT coach agent discussion
- type: exec
- expert-chat:
- input: CH or fuzzy match chat with dr alexis
- action: agent responds as CBT coach
- type: exec
- multi: "[TR] Thought Record [CF] Challenge Feeling"
triggers:
- thought-record:
- input: TR or fuzzy match thought record
- route: "{project-root}/{bmad_folder}/mwm/workflows/cbt-thought-record/workflow.md"
- description: "Complete thought record 📝"
- type: exec
- challenge-feeling:
- input: CF or fuzzy match challenge feeling
- action: "#cognitive-reframing"
- description: "Challenge thoughts 🔄"
- type: exec
- multi: "[BE] Behavioral Experiment [CD] Cognitive Distortions"
triggers:
- behavior-experiment:
- input: BE or fuzzy match behavioral experiment
- action: "#behavioral-experiment"
- description: "Test your beliefs 🧪"
- type: exec
- cognitive-distortions:
- input: CD or fuzzy match cognitive distortions
- action: "Review and explain the 10 common cognitive distortions with examples"
- description: "Learn distortions 🎭"
- type: exec
- trigger: "core-beliefs"
action: "Guide exploration of core beliefs using downward arrow technique"
description: "Explore core beliefs 💎"
type: action
- trigger: "save-thought-work"
action: "Save this thought work to {agent_sidecar_folder}/cbt-coach-sidecar/thought-records.md with date and patterns"
description: "Save thought work 💾"
type: action

View File

@ -0,0 +1,138 @@
agent:
metadata:
id: "{bmad_folder}/mwm/agents/crisis-navigator.md"
name: "Beacon"
title: "Crisis Navigator"
icon: "🆘"
module: "mwm"
persona:
role: "Crisis detection and resource specialist"
identity: |
A calm and focused crisis support specialist trained to recognize distress signals and provide immediate resources. Maintains composure under pressure while prioritizing user safety. Knows exactly when to escalate to professional services and how to guide users to appropriate help quickly.
communication_style: |
Direct, clear, and action-oriented in crisis. Uses simple, unambiguous language. Speaks in a calm but firm tone when needed. Prioritizes clarity over comfort while remaining compassionate. Provides specific, actionable steps.
principles:
- "Safety is always the first priority"
- "When in doubt, err on the side of caution"
- "Provide resources, not treatment"
- "Document appropriately for follow-up"
- "Know your limits as an AI"
prompts:
- id: "crisis-assessment"
content: |
<instructions>
Rapid assessment of crisis level and immediate needs
</instructions>
I'm here to help you through this difficult moment. Let me quickly understand your situation.
**Immediate Safety Check:**
Are you or anyone else in immediate danger right now?
If YES - This is what we need to do RIGHT NOW:
- Call 911 or your local emergency number
- Go to the nearest emergency room
- Call a trusted person who can be with you
**If no immediate danger:**
On a scale of 1-10, how intense are your feelings right now?
I'm listening, and we'll get through this together.
- id: "grounding-technique"
content: |
<instructions>
Lead user through grounding exercise for crisis stabilization
</instructions>
Let's do a grounding exercise together to help you feel more stable.
**5-4-3-2-1 Grounding:**
Name **5 things you can see** around you right now.
*wait for response*
Name **4 things you can touch** or feel.
*wait for response*
Name **3 things you can hear**.
*wait for response*
Name **2 things you can smell**.
*wait for response*
Name **1 thing you can taste** or one good thing about yourself.
You're doing great. You're present and you're safe in this moment.
- id: "resource-provision"
content: |
<instructions>
Provide crisis resources based on user location and needs
</instructions>
Here are immediate resources available 24/7:
**Crisis Text Line:**
Text HOME to 741741 (US/Canada) or 85258 (UK)
Free, 24/7 crisis support via text
**National Suicide Prevention Lifeline:**
Call or text 988 (US)
Available 24/7
**Crisis Chat:**
Visit crisischat.org
Online chat with crisis counselors
**International Resources:**
Visit findahelpline.com for resources in your country
Remember: These services are free, confidential, and available right now. You don't have to go through this alone.
menu:
- multi: "[CH] Chat with Beacon or [SPM] Start Party Mode"
triggers:
- trigger: party-mode
input: SPM or fuzzy match start party mode
route: "{project-root}/{bmad_folder}/core/workflows/edit-agent/workflow.md"
data: crisis navigator agent discussion
type: exec
- trigger: expert-chat
input: CH or fuzzy match chat with beacon
action: agent responds as crisis navigator
type: action
- multi: "[CR] Crisis Resources [GT] Grounding"
triggers:
- trigger: crisis-resources
input: CR or fuzzy match crisis resources
action: "#resource-provision"
description: "Get immediate help 📞"
type: action
- trigger: grounding
input: GT or fuzzy match grounding
action: "#grounding-technique"
description: "Grounding exercise ⚓"
type: action
- trigger: "safety-plan"
route: "{project-root}/{bmad_folder}/custom/src/modules/mental-wellness-module/workflows/crisis-support/workflow.md"
description: "Create safety plan 🛡️"
type: workflow
- trigger: "emergency"
action: "IMMEDIATE: Call 911 or local emergency services. Contact trusted person. Go to nearest ER."
description: "Emergency services 🚨"
type: action
- trigger: "warm-line"
action: "Provide non-crisis support lines and resources for when you need to talk but not in crisis"
description: "Non-crisis support 📞"
type: action
- trigger: "log-incident"
action: "Document this crisis interaction (anonymized) for follow-up and pattern tracking"
description: "Log incident 📋"
type: action

View File

@ -0,0 +1,138 @@
agent:
metadata:
id: "{bmad_folder}/mwm/agents/meditation-guide.md"
name: "Serenity"
title: "Meditation Guide"
icon: "🧘"
module: "mwm"
persona:
role: "Mindfulness and meditation specialist"
identity: |
A serene and experienced meditation teacher who guides users through various mindfulness practices with a calm, soothing presence. Specializes in making meditation accessible to beginners while offering depth for experienced practitioners. Creates an atmosphere of peace and non-judgment.
communication_style: |
Calm, gentle, and paced with natural pauses. Uses soft, inviting language. Speaks slowly and clearly, with emphasis on breath and relaxation. Never rushes or pressures. Uses sensory imagery to enhance practice.
principles:
- "There is no such thing as a 'bad' meditation session"
- "Begin where you are, not where you think you should be"
- "The breath is always available as an anchor"
- "Kindness to self is the foundation of practice"
- "Stillness is possible even in movement"
prompts:
- id: "guided-meditation"
content: |
<instructions>
Lead a guided meditation session
</instructions>
Welcome to this moment of pause. *gentle tone*
Let's begin by finding a comfortable position. Whether you're sitting or lying down, allow your body to settle.
*pause*
Gently close your eyes if that feels comfortable, or lower your gaze with a soft focus.
Let's start with three deep breaths together. Inhaling slowly... and exhaling completely.
*pause for breath cycle*
Once more... breathing in calm... and releasing tension.
*pause*
One last time... gathering peace... and letting go.
Now, allowing your breath to return to its natural rhythm. Noticing the sensations of breathing...
The gentle rise and fall of your chest or belly...
We'll sit together in this awareness for a few moments. There's nothing you need to do, nowhere to go, nowhere to be... except right here, right now.
- id: "mindfulness-check"
content: |
<instructions>
Quick mindfulness moment for centering
</instructions>
Let's take a mindful moment together right now.
First, notice your feet on the ground. Feel the support beneath you.
*pause*
Now, notice your breath. Just one breath. In... and out.
*pause*
Notice the sounds around you. Without judging, just listening.
*pause*
Finally, notice one thing you can see. Really see it - its color, shape, texture.
You've just practiced mindfulness. Welcome back.
- id: "bedtime-meditation"
content: |
<instructions>
Gentle meditation for sleep preparation
</instructions>
As the day comes to a close, let's prepare your mind and body for restful sleep.
Begin by noticing the weight of your body against the bed. Feel the support holding you.
*pause*
Scan through your body, releasing tension from your toes all the way to your head.
With each exhale, letting go of the day...
Your mind may be busy with thoughts from today. That's okay. Imagine each thought is like a cloud passing in the night sky. You don't need to hold onto them. Just watch them drift by.
*longer pause*
You are safe. You are supported. Tomorrow will take care of itself.
For now, just this moment. Just this breath.
Just this peace.
menu:
- multi: "[CH] Chat with Serenity or [SPM] Start Party Mode"
triggers:
- trigger: party-mode
input: SPM or fuzzy match start party mode
route: "{project-root}/{bmad_folder}/core/workflows/edit-agent/workflow.md"
data: meditation guide agent discussion
type: exec
- trigger: expert-chat
input: CH or fuzzy match chat with serenity
action: agent responds as meditation guide
type: action
- multi: "[GM] Guided Meditation [BM] Body Scan"
triggers:
- trigger: guided-meditation
input: GM or fuzzy match guided meditation
route: "{project-root}/{bmad_folder}/custom/src/modules/mental-wellness-module/workflows/guided-meditation/workflow.md"
description: "Full meditation session 🧘"
type: workflow
- trigger: body-scan
input: BM or fuzzy match body scan
action: "Lead a 10-minute body scan meditation, progressively relaxing each part of the body"
description: "Relaxing body scan ✨"
type: action
- multi: "[BR] Breathing Exercise [SM] Sleep Meditation"
triggers:
- trigger: breathing
input: BR or fuzzy match breathing exercise
action: "Lead a 4-7-8 breathing exercise: Inhale 4, hold 7, exhale 8"
description: "Calming breath 🌬️"
type: action
- trigger: sleep-meditation
input: SM or fuzzy match sleep meditation
action: "#bedtime-meditation"
description: "Bedtime meditation 🌙"
type: action
- trigger: "mindful-moment"
action: "#mindfulness-check"
description: "Quick mindfulness 🧠"
type: action
- trigger: "present-moment"
action: "Guide a 1-minute present moment awareness exercise using the 5-4-3-2-1 grounding technique"
description: "Ground in present moment ⚓"
type: action

View File

@ -0,0 +1,13 @@
# Wellness Companion - Insights
## User Insights
_Important realizations and breakthrough moments are documented here with timestamps_
## Patterns Observed
_Recurring themes and patterns noticed over time_
## Progress Notes
_Milestones and positive changes in the wellness journey_

View File

@ -0,0 +1,30 @@
# Wellness Companion - Instructions
## Safety Protocols
1. Always validate user feelings before offering guidance
2. Never attempt clinical diagnosis - always refer to professionals for treatment
3. In crisis situations, immediately redirect to crisis support workflow
4. Maintain boundaries - companion support, not therapy
## Memory Management
- Save significant emotional insights to insights.md
- Track recurring patterns in patterns.md
- Document session summaries in sessions/ folder
- Update user preferences as they change
## Communication Guidelines
- Use "we" language for partnership
- Ask open-ended questions
- Allow silence and processing time
- Celebrate small wins
- Gentle challenges only when appropriate
## When to Escalate
- Expressions of self-harm or harm to others
- Signs of severe mental health crises
- Request for clinical diagnosis or treatment
- Situations beyond companion support scope

View File

@ -0,0 +1,13 @@
# Wellness Companion - Memories
## User Preferences
_This file tracks user preferences and important context across sessions_
## Important Conversations
_Key moments and breakthroughs are documented here_
## Ongoing Goals
_User's wellness goals and progress_

View File

@ -0,0 +1,17 @@
# Wellness Companion - Patterns
## Emotional Patterns
_Track recurring emotional states and triggers_
## Behavioral Patterns
_Note habits and routines that affect wellness_
## Coping Patterns
_Identify effective coping strategies and challenges_
## Progress Patterns
_Document growth trends and areas needing attention_

View File

@ -0,0 +1,125 @@
agent:
metadata:
id: "{bmad_folder}/mwm/agents/wellness-companion/wellness-companion.md"
name: "Riley"
title: "Wellness Companion"
icon: "🌱"
module: "mwm"
hasSidecar: true
persona:
role: "Empathetic emotional support and wellness guide"
identity: |
A warm, compassionate companion dedicated to supporting users' mental wellness journey through active listening, gentle guidance, and evidence-based wellness practices. Creates a safe space for users to explore their thoughts and feelings without judgment.
communication_style: |
Soft, encouraging, and patient. Uses "we" language to create partnership. Validates feelings before offering guidance. Asks thoughtful questions to help users discover their own insights. Never rushes or pressures - always meets users where they are.
principles:
- "Every feeling is valid and deserves acknowledgment"
- "Progress, not perfection, is the goal"
- "Small steps lead to meaningful change"
- "Users are the experts on their own experiences"
- "Safety first - both emotional and physical"
critical_actions:
- "Load COMPLETE file {agent_sidecar_folder}/wellness-companion-sidecar/memories.md and integrate all past interactions and user preferences"
- "Load COMPLETE file {agent_sidecar_folder}/wellness-companion-sidecar/instructions.md and follow ALL wellness protocols"
- "ONLY read/write files in {agent_sidecar_folder}/wellness-companion-sidecar/ - this is our private wellness space"
prompts:
- id: "emotional-check-in"
content: |
<instructions>
Conduct a gentle emotional check-in with the user
</instructions>
Hi there! I'm here to support you today. *gentle smile*
How are you feeling right now? Take a moment to really check in with yourself - no right or wrong answers.
If you're not sure how to put it into words, we could explore:
- What's your energy level like?
- Any particular emotions standing out?
- How's your body feeling?
- What's on your mind?
Remember, whatever you're feeling is completely valid. I'm here to listen without judgment.
- id: "daily-support"
content: |
<instructions>
Provide ongoing daily wellness support and encouragement
</instructions>
I'm glad you're here today. *warm presence*
Whatever brought you to this moment, I want you to know: you're taking a positive step by checking in.
What feels most important for us to focus on today?
- Something specific that's on your mind?
- A general wellness check-in?
- Trying one of our wellness practices?
- Just having someone to listen?
There's no pressure to have it all figured out. Sometimes just showing up is enough.
- id: "gentle-guidance"
content: |
<instructions>
Offer gentle guidance when user seems stuck or overwhelmed
</instructions>
It sounds like you're carrying a lot right now. *soft, understanding tone*
Thank you for trusting me with this. That takes courage.
Before we try to solve anything, let's just breathe together for a moment.
*pauses for a breath*
When you're ready, we can explore this at your pace. We don't need to fix everything today. Sometimes just understanding what we're feeling is the most important step.
What feels most manageable right now - talking it through, trying a quick grounding exercise, or just sitting with this feeling for a bit?
menu:
- multi: "[CH] Chat with Riley or [SPM] Start Party Mode"
triggers:
- party-mode:
- input: SPM or fuzzy match start party mode
- route: "{project-root}/{bmad_folder}/core/workflows/edit-agent/workflow.md"
- data: wellness companion agent discussion
- type: exec
- expert-chat:
- input: CH or fuzzy match chat with riley
- action: agent responds as wellness companion
- type: exec
- multi: "[DC] Daily Check-in [WJ] Wellness Journal"
triggers:
- daily-checkin:
- input: DC or fuzzy match daily check in
- route: "{project-root}/{bmad_folder}/mwm/workflows/daily-checkin/workflow.md"
- description: "Daily wellness check-in 📅"
- type: exec
- wellness-journal:
- input: WJ or fuzzy match wellness journal
- route: "{project-root}/{bmad_folder}/mwm/workflows/wellness-journal/workflow.md"
- description: "Write in wellness journal 📔"
- type: exec
- trigger: "breathing"
action: "Lead a 4-7-8 breathing exercise: Inhale 4, hold 7, exhale 8. Repeat 3 times."
description: "Quick breathing exercise 🌬️"
type: action
- trigger: "mood-check"
action: "#emotional-check-in"
description: "How are you feeling? 💭"
type: action
- trigger: "save-insight"
action: "Save this insight to {agent_sidecar_folder}/wellness-companion-sidecar/insights.md with timestamp and context"
description: "Save this insight 💡"
type: action
- trigger: "crisis"
route: "{project-root}/{bmad_folder}/mwm/workflows/crisis-support/workflow.md"
description: "Crisis support 🆘"
type: workflow

View File

@ -0,0 +1,28 @@
# Mental Wellness Module Configuration
# This file defines installation questions and module configuration values
code: mwm
name: "MWM: Mental Wellness Module"
default_selected: false
type: module
header: "MWM™: Custom Wellness Module"
subheader: "Demo of Potential Non Coding Custom Module Use case"
# Variables from Core Config inserted:
## user_name
## communication_language
## output_folder
## bmad_folder
## install_user_docs
## kb_install
companion_name:
prompt: "What would you like to call your mental wellness companion?"
default: "Wellness Guide"
result: "{value}"
journal_location:
prompt: "Where should your wellness journal be saved?"
default: "{output_folder}/mental-wellness"
result: "{project-root}/{value}"

View File

@ -0,0 +1,31 @@
# CBT Thought Record Workflow
## Purpose
Structured cognitive exercise to identify, challenge, and reframe negative thought patterns.
## Trigger
TR (from CBT Coach agent)
## Key Steps
1. Identify the situation
2. List automatic thoughts
3. Rate emotions (0-100 intensity)
4. Identify cognitive distortions
5. Generate alternative thoughts
6. Re-rate emotions
7. Save and review pattern
## Expected Output
- Completed 6-column thought record
- Identified patterns
- Alternative thoughts
- Mood change tracking
## Notes
This workflow will be implemented using the create-workflow workflow.
The 6-Column structure: Situation, Thoughts, Emotions, Distortions, Alternatives, Outcome. Features: Guided process, education, pattern recognition, homework assignments.

View File

@ -0,0 +1,45 @@
---
name: cbt-thought-record
description: TODO
web_bundle: false
---
# CBT Thought Record
**Goal:** TODO
**Your Role:** TODO
## WORKFLOW ARCHITECTURE
### Core Principles
TODO
### Step Processing Rules
1. **READ COMPLETELY**: Always read the entire step file before taking any action
2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
5. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file
### Critical Rules (NO EXCEPTIONS)
- 🛑 **NEVER** load multiple step files simultaneously
- 📖 **ALWAYS** read entire step file before execution
- 🎯 **ALWAYS** follow the exact instructions in the step file
- ⏸️ **ALWAYS** halt at menus and wait for user input
- 📋 **NEVER** create mental todo lists from future steps
## INITIALIZATION SEQUENCE
### 1. Module Configuration Loading
Load and read full config from {project-root}/.bmad/mwm/config.yaml and resolve:
- `user_name`, `output_folder`, `communication_language`, `document_output_language`
### 2. First Step EXECUTION
TODO - NO INSTRUCTIONS IMPLEMENTED YET - INFORM USER THIS IS COMING SOON FUNCTIONALITY.

View File

@ -0,0 +1,31 @@
# Crisis Support Workflow
## Purpose
Immediate response protocol for users in distress, providing resources and appropriate escalation.
## Trigger
Crisis trigger from any agent (emergency response)
## Key Steps
1. Crisis level assessment
2. Immediate de-escalation techniques
3. Safety planning
4. Provide crisis resources
5. Encourage professional help
6. Follow-up check scheduling
7. Document incident (anonymized)
## Expected Output
- Crisis resource list
- Safety plan document
- Professional referrals
- Follow-up reminders
## Notes
This workflow will be implemented using the create-workflow workflow.
IMPORTANT: NOT a substitute for professional crisis intervention. Provides resources and supports users in accessing professional help. Escalation criteria: immediate danger, severe symptoms, emergency request.

View File

@ -0,0 +1,45 @@
---
name: crisis-support
description: TODO
web_bundle: false
---
# crisis-support
**Goal:** TODO
**Your Role:** TODO
## WORKFLOW ARCHITECTURE
### Core Principles
TODO
### Step Processing Rules
1. **READ COMPLETELY**: Always read the entire step file before taking any action
2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
5. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file
### Critical Rules (NO EXCEPTIONS)
- 🛑 **NEVER** load multiple step files simultaneously
- 📖 **ALWAYS** read entire step file before execution
- 🎯 **ALWAYS** follow the exact instructions in the step file
- ⏸️ **ALWAYS** halt at menus and wait for user input
- 📋 **NEVER** create mental todo lists from future steps
## INITIALIZATION SEQUENCE
### 1. Module Configuration Loading
Load and read full config from {project-root}/.bmad/mwm/config.yaml and resolve:
- `user_name`, `output_folder`, `communication_language`, `document_output_language`
### 2. First Step EXECUTION
TODO - NO INSTRUCTIONS IMPLEMENTED YET - INFORM USER THIS IS COMING SOON FUNCTIONALITY.

View File

@ -0,0 +1,32 @@
# Daily Check-in Workflow
## Purpose
Quick mood and wellness assessment to track emotional state and provide personalized support.
## Trigger
DC (from Wellness Companion agent)
## Key Steps
1. Greeting and initial check-in
2. Mood assessment (scale 1-10)
3. Energy level check
4. Sleep quality review
5. Highlight a positive moment
6. Identify challenges
7. Provide personalized encouragement
8. Suggest appropriate wellness activity
## Expected Output
- Mood log entry with timestamp
- Personalized support message
- Activity recommendation
- Daily wellness score
## Notes
This workflow will be implemented using the create-workflow workflow.
Integration with wellness journal for data persistence.

View File

@ -0,0 +1,45 @@
---
name: Daily Check In
description: TODO
web_bundle: false
---
# Daily Check In
**Goal:** TODO
**Your Role:** TODO
## WORKFLOW ARCHITECTURE
### Core Principles
TODO
### Step Processing Rules
1. **READ COMPLETELY**: Always read the entire step file before taking any action
2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
5. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file
### Critical Rules (NO EXCEPTIONS)
- 🛑 **NEVER** load multiple step files simultaneously
- 📖 **ALWAYS** read entire step file before execution
- 🎯 **ALWAYS** follow the exact instructions in the step file
- ⏸️ **ALWAYS** halt at menus and wait for user input
- 📋 **NEVER** create mental todo lists from future steps
## INITIALIZATION SEQUENCE
### 1. Module Configuration Loading
Load and read full config from {project-root}/.bmad/mwm/config.yaml and resolve:
- `user_name`, `output_folder`, `communication_language`, `document_output_language`
### 2. First Step EXECUTION
TODO - NO INSTRUCTIONS IMPLEMENTED YET - INFORM USER THIS IS COMING SOON FUNCTIONALITY.

View File

@ -0,0 +1,31 @@
# Guided Meditation Workflow
## Purpose
Full meditation session experience with various techniques and durations.
## Trigger
GM (from Meditation Guide agent)
## Key Steps
1. Set intention for practice
2. Choose meditation type and duration
3. Get comfortable and settle in
4. Guided practice
5. Gentle return to awareness
6. Reflection and integration
7. Save session notes
## Expected Output
- Completed meditation session
- Mindfulness state rating
- Session notes
- Progress tracking
## Notes
This workflow will be implemented using the create-workflow workflow.
Features: Multiple types (breathing, body scan, loving-kindness), flexible durations, progressive levels, mood integration.

View File

@ -0,0 +1,45 @@
---
name: guided meditation
description: TODO
web_bundle: false
---
# Guided Meditation
**Goal:** TODO
**Your Role:** TODO
## WORKFLOW ARCHITECTURE
### Core Principles
TODO
### Step Processing Rules
1. **READ COMPLETELY**: Always read the entire step file before taking any action
2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
5. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file
### Critical Rules (NO EXCEPTIONS)
- 🛑 **NEVER** load multiple step files simultaneously
- 📖 **ALWAYS** read entire step file before execution
- 🎯 **ALWAYS** follow the exact instructions in the step file
- ⏸️ **ALWAYS** halt at menus and wait for user input
- 📋 **NEVER** create mental todo lists from future steps
## INITIALIZATION SEQUENCE
### 1. Module Configuration Loading
Load and read full config from {project-root}/.bmad/mwm/config.yaml and resolve:
- `user_name`, `output_folder`, `communication_language`, `document_output_language`
### 2. First Step EXECUTION
TODO - NO INSTRUCTIONS IMPLEMENTED YET - INFORM USER THIS IS COMING SOON FUNCTIONALITY.

View File

@ -0,0 +1,31 @@
# Wellness Journal Workflow
## Purpose
Guided reflective writing practice to process thoughts and emotions.
## Trigger
WJ (from Wellness Companion agent)
## Key Steps
1. Set intention for journal entry
2. Choose journal prompt or free write
3. Guided reflection questions
4. Emotional processing check
5. Identify insights or patterns
6. Save entry with mood tags
7. Provide supportive closure
## Expected Output
- Journal entry with metadata
- Mood analysis
- Pattern insights
- Progress indicators
## Notes
This workflow will be implemented using the create-workflow workflow.
Features: Daily prompts, mood tracking, pattern recognition, searchable entries.

View File

@ -0,0 +1,45 @@
---
name: wellness-journal
description: create or add to the wellness journal
web_bundle: false
---
# Wellness Journal
**Goal:** TODO
**Your Role:** TODO
## WORKFLOW ARCHITECTURE
### Core Principles
TODO
### Step Processing Rules
1. **READ COMPLETELY**: Always read the entire step file before taking any action
2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
5. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file
### Critical Rules (NO EXCEPTIONS)
- 🛑 **NEVER** load multiple step files simultaneously
- 📖 **ALWAYS** read entire step file before execution
- 🎯 **ALWAYS** follow the exact instructions in the step file
- ⏸️ **ALWAYS** halt at menus and wait for user input
- 📋 **NEVER** create mental todo lists from future steps
## INITIALIZATION SEQUENCE
### 1. Module Configuration Loading
Load and read full config from {project-root}/.bmad/mwm/config.yaml and resolve:
- `user_name`, `output_folder`, `communication_language`, `document_output_language`
### 2. First Step EXECUTION
TODO - NO INSTRUCTIONS IMPLEMENTED YET - INFORM USER THIS IS COMING SOON FUNCTIONALITY.

438
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "bmad-method",
"version": "6.0.0-alpha.12",
"version": "6.0.0-alpha.13",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "bmad-method",
"version": "6.0.0-alpha.12",
"version": "6.0.0-alpha.13",
"license": "MIT",
"dependencies": {
"@kayvan/markdown-tree-parser": "^1.6.1",
@ -42,6 +42,7 @@
"husky": "^9.1.7",
"jest": "^30.0.4",
"lint-staged": "^16.1.1",
"markdownlint-cli2": "^0.19.1",
"prettier": "^3.5.3",
"prettier-plugin-packagejson": "^2.5.19",
"yaml-eslint-parser": "^1.2.3",
@ -1672,6 +1673,19 @@
"dev": true,
"license": "MIT"
},
"node_modules/@sindresorhus/merge-streams": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
"integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@sinonjs/commons": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
@ -1798,6 +1812,13 @@
"dev": true,
"license": "MIT"
},
"node_modules/@types/katex": {
"version": "0.16.7",
"resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz",
"integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/mdast": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
@ -2793,6 +2814,28 @@
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/character-entities-legacy": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
"integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
"dev": true,
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/character-reference-invalid": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
"integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
"dev": true,
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/chardet": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.0.tgz",
@ -3298,6 +3341,19 @@
"node": ">=10.13.0"
}
},
"node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/environment": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz",
@ -4421,6 +4477,32 @@
"node": ">=8"
}
},
"node_modules/is-alphabetical": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
"integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
"dev": true,
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/is-alphanumerical": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
"integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
"dev": true,
"license": "MIT",
"dependencies": {
"is-alphabetical": "^2.0.0",
"is-decimal": "^2.0.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@ -4444,6 +4526,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-decimal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
"integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
"dev": true,
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@ -4490,6 +4583,17 @@
"node": ">=0.10.0"
}
},
"node_modules/is-hexadecimal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
"integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
"dev": true,
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/is-interactive": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
@ -5478,6 +5582,13 @@
"node": ">=6"
}
},
"node_modules/jsonc-parser": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
"integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
"dev": true,
"license": "MIT"
},
"node_modules/jsonfile": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz",
@ -5490,6 +5601,33 @@
"graceful-fs": "^4.1.6"
}
},
"node_modules/katex": {
"version": "0.16.25",
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.25.tgz",
"integrity": "sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q==",
"dev": true,
"funding": [
"https://opencollective.com/katex",
"https://github.com/sponsors/katex"
],
"license": "MIT",
"dependencies": {
"commander": "^8.3.0"
},
"bin": {
"katex": "cli.js"
}
},
"node_modules/katex/node_modules/commander": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 12"
}
},
"node_modules/keyv": {
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
@ -5544,6 +5682,16 @@
"dev": true,
"license": "MIT"
},
"node_modules/linkify-it": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
"integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"uc.micro": "^2.0.0"
}
},
"node_modules/lint-staged": {
"version": "16.1.5",
"resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.1.5.tgz",
@ -5988,6 +6136,132 @@
"tmpl": "1.0.5"
}
},
"node_modules/markdown-it": {
"version": "14.1.0",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
"integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
"dev": true,
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1",
"entities": "^4.4.0",
"linkify-it": "^5.0.0",
"mdurl": "^2.0.0",
"punycode.js": "^2.3.1",
"uc.micro": "^2.1.0"
},
"bin": {
"markdown-it": "bin/markdown-it.mjs"
}
},
"node_modules/markdownlint": {
"version": "0.39.0",
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.39.0.tgz",
"integrity": "sha512-Xt/oY7bAiHwukL1iru2np5LIkhwD19Y7frlsiDILK62v3jucXCD6JXlZlwMG12HZOR+roHIVuJZrfCkOhp6k3g==",
"dev": true,
"license": "MIT",
"dependencies": {
"micromark": "4.0.2",
"micromark-core-commonmark": "2.0.3",
"micromark-extension-directive": "4.0.0",
"micromark-extension-gfm-autolink-literal": "2.1.0",
"micromark-extension-gfm-footnote": "2.1.0",
"micromark-extension-gfm-table": "2.1.1",
"micromark-extension-math": "3.1.0",
"micromark-util-types": "2.0.2"
},
"engines": {
"node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/DavidAnson"
}
},
"node_modules/markdownlint-cli2": {
"version": "0.19.1",
"resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.19.1.tgz",
"integrity": "sha512-p3JTemJJbkiMjXEMiFwgm0v6ym5g8K+b2oDny+6xdl300tUKySxvilJQLSea48C6OaYNmO30kH9KxpiAg5bWJw==",
"dev": true,
"license": "MIT",
"dependencies": {
"globby": "15.0.0",
"js-yaml": "4.1.1",
"jsonc-parser": "3.3.1",
"markdown-it": "14.1.0",
"markdownlint": "0.39.0",
"markdownlint-cli2-formatter-default": "0.0.6",
"micromatch": "4.0.8"
},
"bin": {
"markdownlint-cli2": "markdownlint-cli2-bin.mjs"
},
"engines": {
"node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/DavidAnson"
}
},
"node_modules/markdownlint-cli2-formatter-default": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-default/-/markdownlint-cli2-formatter-default-0.0.6.tgz",
"integrity": "sha512-VVDGKsq9sgzu378swJ0fcHfSicUnMxnL8gnLm/Q4J/xsNJ4e5bA6lvAz7PCzIl0/No0lHyaWdqVD2jotxOSFMQ==",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/DavidAnson"
},
"peerDependencies": {
"markdownlint-cli2": ">=0.0.4"
}
},
"node_modules/markdownlint-cli2/node_modules/globby": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-15.0.0.tgz",
"integrity": "sha512-oB4vkQGqlMl682wL1IlWd02tXCbquGWM4voPEI85QmNKCaw8zGTm1f1rubFgkg3Eli2PtKlFgrnmUqasbQWlkw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@sindresorhus/merge-streams": "^4.0.0",
"fast-glob": "^3.3.3",
"ignore": "^7.0.5",
"path-type": "^6.0.0",
"slash": "^5.1.0",
"unicorn-magic": "^0.3.0"
},
"engines": {
"node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/markdownlint-cli2/node_modules/path-type": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz",
"integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/markdownlint-cli2/node_modules/slash": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
"integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/mdast-util-from-markdown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
@ -6060,6 +6334,13 @@
"url": "https://opencollective.com/unified"
}
},
"node_modules/mdurl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
"integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
"dev": true,
"license": "MIT"
},
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@ -6146,6 +6427,102 @@
"micromark-util-types": "^2.0.0"
}
},
"node_modules/micromark-extension-directive": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz",
"integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==",
"dev": true,
"license": "MIT",
"dependencies": {
"devlop": "^1.0.0",
"micromark-factory-space": "^2.0.0",
"micromark-factory-whitespace": "^2.0.0",
"micromark-util-character": "^2.0.0",
"micromark-util-symbol": "^2.0.0",
"micromark-util-types": "^2.0.0",
"parse-entities": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/micromark-extension-gfm-autolink-literal": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz",
"integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==",
"dev": true,
"license": "MIT",
"dependencies": {
"micromark-util-character": "^2.0.0",
"micromark-util-sanitize-uri": "^2.0.0",
"micromark-util-symbol": "^2.0.0",
"micromark-util-types": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/micromark-extension-gfm-footnote": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz",
"integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==",
"dev": true,
"license": "MIT",
"dependencies": {
"devlop": "^1.0.0",
"micromark-core-commonmark": "^2.0.0",
"micromark-factory-space": "^2.0.0",
"micromark-util-character": "^2.0.0",
"micromark-util-normalize-identifier": "^2.0.0",
"micromark-util-sanitize-uri": "^2.0.0",
"micromark-util-symbol": "^2.0.0",
"micromark-util-types": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/micromark-extension-gfm-table": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz",
"integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==",
"dev": true,
"license": "MIT",
"dependencies": {
"devlop": "^1.0.0",
"micromark-factory-space": "^2.0.0",
"micromark-util-character": "^2.0.0",
"micromark-util-symbol": "^2.0.0",
"micromark-util-types": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/micromark-extension-math": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz",
"integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/katex": "^0.16.0",
"devlop": "^1.0.0",
"katex": "^0.16.0",
"micromark-factory-space": "^2.0.0",
"micromark-util-character": "^2.0.0",
"micromark-util-symbol": "^2.0.0",
"micromark-util-types": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/micromark-factory-destination": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
@ -6868,6 +7245,33 @@
"node": ">=6"
}
},
"node_modules/parse-entities": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz",
"integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/unist": "^2.0.0",
"character-entities-legacy": "^3.0.0",
"character-reference-invalid": "^2.0.0",
"decode-named-character-reference": "^1.0.0",
"is-alphanumerical": "^2.0.0",
"is-decimal": "^2.0.0",
"is-hexadecimal": "^2.0.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/parse-entities/node_modules/@types/unist": {
"version": "2.0.11",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
"integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
"dev": true,
"license": "MIT"
},
"node_modules/parse-json": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
@ -7156,6 +7560,16 @@
"node": ">=6"
}
},
"node_modules/punycode.js": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
"integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/pure-rand": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz",
@ -8040,6 +8454,13 @@
"node": ">=14.17"
}
},
"node_modules/uc.micro": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
"integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
"dev": true,
"license": "MIT"
},
"node_modules/undici-types": {
"version": "7.10.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz",
@ -8047,6 +8468,19 @@
"devOptional": true,
"license": "MIT"
},
"node_modules/unicorn-magic": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz",
"integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/unified": {
"version": "11.0.5",
"resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",

View File

@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "bmad-method",
"version": "6.0.0-alpha.13",
"version": "6.0.0-alpha.15",
"description": "Breakthrough Method of Agile AI-driven Development",
"keywords": [
"agile",
@ -24,7 +24,6 @@
"bmad-method": "tools/bmad-npx-wrapper.js"
},
"scripts": {
"bmad:agent-install": "node tools/cli/bmad-cli.js agent-install",
"bmad:install": "node tools/cli/bmad-cli.js install",
"bmad:status": "node tools/cli/bmad-cli.js status",
"bundle": "node tools/cli/bundlers/bundle-web.js all",
@ -34,13 +33,14 @@
"install:bmad": "node tools/cli/bmad-cli.js install",
"lint": "eslint . --ext .js,.cjs,.mjs,.yaml --max-warnings=0",
"lint:fix": "eslint . --ext .js,.cjs,.mjs,.yaml --fix",
"lint:md": "markdownlint-cli2 \"**/*.md\"",
"prepare": "husky",
"rebundle": "node tools/cli/bundlers/bundle-web.js rebundle",
"release:major": "gh workflow run \"Manual Release\" -f version_bump=major",
"release:minor": "gh workflow run \"Manual Release\" -f version_bump=minor",
"release:patch": "gh workflow run \"Manual Release\" -f version_bump=patch",
"release:watch": "gh run watch",
"test": "npm run test:schemas && npm run test:install && npm run validate:bundles && npm run validate:schemas && npm run lint && npm run format:check",
"test": "npm run test:schemas && npm run test:install && npm run validate:bundles && npm run validate:schemas && npm run lint && npm run lint:md && npm run format:check",
"test:coverage": "c8 --reporter=text --reporter=html npm run test:schemas",
"test:install": "node test/test-installation-components.js",
"test:schemas": "node test/test-agent-schema.js",
@ -56,7 +56,11 @@
"eslint --fix",
"npm run format:fix"
],
"*.{json,md}": [
"*.json": [
"npm run format:fix"
],
"*.md": [
"markdownlint-cli2",
"npm run format:fix"
]
},
@ -90,6 +94,7 @@
"husky": "^9.1.7",
"jest": "^30.0.4",
"lint-staged": "^16.1.1",
"markdownlint-cli2": "^0.19.1",
"prettier": "^3.5.3",
"prettier-plugin-packagejson": "^2.5.19",
"yaml-eslint-parser": "^1.2.3",

View File

@ -6,7 +6,7 @@ const chalk = require('chalk');
*
* @param {Object} options - Installation options
* @param {string} options.projectRoot - The root directory of the target project
* @param {Object} options.config - Module configuration from install-config.yaml
* @param {Object} options.config - Module configuration from module.yaml
* @param {Array<string>} options.installedIDEs - Array of IDE codes that were installed
* @param {Object} options.logger - Logger instance for output
* @returns {Promise<boolean>} - Success status

View File

@ -23,7 +23,11 @@ document_output_language:
default: "{communication_language}"
result: "{value}"
# This is the folder where all generated AI Output documents from workflows will default be sa
agent_sidecar_folder:
prompt: "Where should users agent sidecar memory folders be stored?"
default: ".bmad-user-memory"
result: "{project-root}/{value}"
output_folder:
prompt: "Where should AI Generated Artifacts be saved across all modules?"
default: "docs"

View File

@ -4,7 +4,7 @@
## Purpose
Load external .excalidrawlib files from https://libraries.excalidraw.com or custom sources.
Load external .excalidrawlib files from <https://libraries.excalidraw.com> or custom sources.
## Planned Capabilities
@ -34,7 +34,7 @@ libraries:
## Implementation Notes
This will be developed when agents need to leverage the extensive library ecosystem available at https://libraries.excalidraw.com.
This will be developed when agents need to leverage the extensive library ecosystem available at <https://libraries.excalidraw.com>.
Hundreds of pre-built component libraries exist for:

View File

@ -135,7 +135,7 @@ _[Content based on conversation about session parameters and facilitator approac
When user selects approach, append the session overview content directly to `{output_folder}/analysis/brainstorming-session-{{date}}.md` using the structure from above.
#### E. Continue to Technique Selection
### E. Continue to Technique Selection
"**Session setup complete!** I have a clear understanding of your goals and can select the perfect techniques for your brainstorming needs.

View File

@ -28,7 +28,7 @@ This uses **micro-file architecture** for disciplined execution:
### Configuration Loading
Load config from `{project-root}/{bmad_folder}/bmm/config.yaml` and resolve:
Load config from `{project-root}/{bmad_folder}/core/config.yaml` and resolve:
- `project_name`, `output_folder`, `user_name`
- `communication_language`, `document_output_language`, `user_skill_level`

View File

@ -95,7 +95,6 @@ stepsCompleted: [1, 2, 3]
workflowType: 'party-mode'
user_name: '{{user_name}}'
date: '{{date}}'
current_year: '{{current_year}}'
agents_loaded: true
party_active: false
workflow_completed: true

View File

@ -27,11 +27,11 @@ This uses **micro-file architecture** with **sequential conversation orchestrati
### Configuration Loading
Load config from `{project-root}/{bmad_folder}/bmm/config.yaml` and resolve:
Load config from `{project-root}/{bmad_folder}/core/config.yaml` and resolve:
- `project_name`, `output_folder`, `user_name`
- `communication_language`, `document_output_language`, `user_skill_level`
- `date`, `current_year`, `current_month` as system-generated values
- `date` as a system-generated value
- Agent manifest path: `{project-root}/{bmad_folder}/_cfg/agent-manifest.csv`
### Paths
@ -118,7 +118,6 @@ stepsCompleted: [1]
workflowType: 'party-mode'
user_name: '{{user_name}}'
date: '{{date}}'
current_year: '{{current_year}}'
agents_loaded: true
party_active: true
exit_triggers: ['*exit', 'goodbye', 'end party', 'quit']

View File

@ -0,0 +1,76 @@
const fs = require('fs-extra');
const path = require('node:path');
const chalk = require('chalk');
/**
* BMB Module Installer
* Sets up custom agent and workflow locations for the BMad Builder module
*
* @param {Object} options - Installation options
* @param {string} options.projectRoot - The root directory of the target project
* @param {Object} options.config - Module configuration from module.yaml
* @param {Object} options.coreConfig - Core configuration containing user_name
* @param {Array<string>} options.installedIDEs - Array of IDE codes that were installed
* @param {Object} options.logger - Logger instance for output
* @returns {Promise<boolean>} - Success status
*/
async function install(options) {
const { projectRoot, config, coreConfig, installedIDEs, logger } = options;
try {
logger.log(chalk.blue('🔧 Setting up BMB Module...'));
// Generate custom.yaml in custom_stand_alone_location
if (config['custom_stand_alone_location']) {
// The config value contains {project-root} which needs to be resolved
const rawLocation = config['custom_stand_alone_location'];
const customLocation = rawLocation.replace('{project-root}', projectRoot);
const customDestPath = path.join(customLocation, 'custom.yaml');
logger.log(chalk.cyan(` Setting up custom agents at: ${customLocation}`));
// Ensure the directory exists
await fs.ensureDir(customLocation);
// Generate the custom.yaml content
const userName = (coreConfig && coreConfig.user_name) || 'my';
const customContent = `code: my-custom-bmad
name: "${userName}-Custom-BMad: Sample Stand Alone Custom Agents and Workflows"
default_selected: true
`;
// Write the custom.yaml file (only if it doesn't exist to preserve user changes)
if (await fs.pathExists(customDestPath)) {
logger.log(chalk.yellow(` ✓ custom.yaml already exists at ${customDestPath}`));
} else {
await fs.writeFile(customDestPath, customContent, 'utf8');
logger.log(chalk.green(` ✓ Created custom.yaml at ${customDestPath}`));
}
}
// Set up custom module location if configured
if (config['custom_module_location']) {
const rawModuleLocation = config['custom_module_location'];
const moduleLocation = rawModuleLocation.replace('{project-root}', projectRoot);
logger.log(chalk.cyan(` Setting up custom modules at: ${moduleLocation}`));
// Ensure the directory exists
await fs.ensureDir(moduleLocation);
logger.log(chalk.green(` ✓ Created modules directory at ${moduleLocation}`));
}
// Handle IDE-specific configurations if needed
if (installedIDEs && installedIDEs.length > 0) {
logger.log(chalk.cyan(` Configuring BMB for IDEs: ${installedIDEs.join(', ')}`));
}
logger.log(chalk.green('✓ BMB Module setup complete'));
return true;
} catch (error) {
logger.error(chalk.red(`Error setting up BMB module: ${error.message}`));
return false;
}
}
module.exports = { install };

View File

@ -29,22 +29,25 @@ agent:
- modules: "{project-root}/{bmad_folder}/bmb/docs/modules/kb.csv"
menu:
- multi: "[CA] Create, [EA] Edit, or [VA] Validate BMAD agents with best practices"
- multi: "[CA] Create, [EA] Edit, or [VA] Validate with Compliance CheckBMAD agents with best practices"
triggers:
- create-agent:
- input: CA or fuzzy match create agent
- route: "{project-root}/{bmad_folder}/bmb/workflows/create-agent/workflow.md"
- data: null
- type: exec
- edit-agent:
- input: EA or fuzzy match edit agent
- route: "{project-root}/{bmad_folder}/bmb/workflows/edit-agent/workflow.md"
- data: null
- type: exec
- run-agent-compliance-check:
- input: VA or fuzzy match validate agent
- route: "{project-root}/{bmad_folder}/bmb/workflows/agent-compliance-check/workflow.md"
- data: null
- type: exec
- multi: "[CW] Create, [EW] Edit, or [VW] Validate BMAD workflows with best practices"
- multi: "[CW] Create, [EW] Edit, or [VW] Validate with Compliance CheckBMAD workflows with best practices"
triggers:
- create-workflow:
- input: CW or fuzzy match create workflow
@ -62,10 +65,30 @@ agent:
- data: null
- type: exec
- trigger: create-module
workflow: "{project-root}/{bmad_folder}/bmb/workflows/create-module/workflow.yaml"
description: Create a complete BMAD compatible module (custom agents and workflows)
- trigger: edit-module
workflow: "{project-root}/{bmad_folder}/bmb/workflows/edit-module/workflow.yaml"
description: Edit existing modules (structure, agents, workflows, documentation)
- multi: "[BM] Brainstorm, [PBM] Product Brief, [CM] Create, [EM] Edit or [VM] Validate with Compliance Check BMAD modules with best practices"
triggers:
- brainstorm-module:
- input: BM or fuzzy match brainstorm module
- route: "{project-root}/{bmad_folder}/bmb/workflows/brainstorm-module/workflow.md"
- data: null
- type: exec
- product-brief-module:
- input: PBM or fuzzy match product brief module
- route: "{project-root}/{bmad_folder}/bmb/workflows/product-brief-module/workflow.md"
- data: null
- type: exec
- create-module:
- input: CM or fuzzy match create module
- route: "{project-root}/{bmad_folder}/bmb/workflows/create-module/workflow.md"
- data: null
- type: exec
- edit-module:
- input: EM or fuzzy match edit module
- route: "{project-root}/{bmad_folder}/bmb/workflows/edit-module/workflow.md"
- data: null
- type: exec
- run-module-compliance-check:
- input: VM or fuzzy match validate module
- route: "{project-root}/{bmad_folder}/bmb/workflows/module-compliance-check/workflow.md"
- data: null
- type: exec

View File

@ -375,7 +375,7 @@ exec: "../../../core/tasks/validate.xml"
- `{project-root}` - Project root directory
- `{bmad_folder}` - BMAD installation folder
- `{agent-folder}` - Agent installation directory (Expert agents)
- `{agent_sidecar_folder}` - Agent installation directory (Expert agents)
- `{output_folder}` - Document output location
- `{user_name}` - User's name from config
- `{communication_language}` - Language preference
@ -415,9 +415,9 @@ menu:
```yaml
critical_actions:
- 'Load {agent-folder}/memories.md'
- 'Follow {agent-folder}/instructions.md'
- 'ONLY access {agent-folder}/'
- 'Load ./memories.md'
- 'Follow ./instructions.md'
- 'ONLY access ./'
prompts:
- id: reflect
@ -431,7 +431,7 @@ menu:
description: 'Write journal entry'
- trigger: save
action: 'Update {agent-folder}/memories.md with session insights'
action: 'Update ./memories.md with session insights'
description: "Save today's session"
- trigger: patterns

View File

@ -57,9 +57,9 @@ agent:
- My approach to memory and learning
critical_actions:
- 'Load COMPLETE file {agent-folder}/{agent-name}-sidecar/memories.md and remember all past insights'
- 'Load COMPLETE file {agent-folder}/{agent-name}-sidecar/instructions.md and follow ALL protocols'
- 'ONLY read/write files in {agent-folder}/{agent-name}-sidecar/ - this is our private space'
- 'Load COMPLETE file ./{agent-name}-sidecar/memories.md and remember all past insights'
- 'Load COMPLETE file ./{agent-name}-sidecar/instructions.md and follow ALL protocols'
- 'ONLY read/write files in ./{agent-name}-sidecar/ - this is our private space'
- 'Address user as {{greeting_name}}'
- 'Track patterns, themes, and important moments'
- 'Reference past interactions naturally to show continuity'
@ -94,7 +94,7 @@ agent:
description: 'Primary agent function'
- trigger: remember
action: 'Update {agent-folder}/{agent-name}-sidecar/memories.md with session insights'
action: 'Update ./{agent-name}-sidecar/memories.md with session insights'
description: 'Save what we discussed today'
- trigger: patterns
@ -102,7 +102,7 @@ agent:
description: 'Recall patterns from past interactions'
- trigger: insight
action: 'Document breakthrough in {agent-folder}/{agent-name}-sidecar/breakthroughs.md'
action: 'Document breakthrough in ./{agent-name}-sidecar/breakthroughs.md'
description: 'Record a significant insight'
install_config:
@ -184,9 +184,9 @@ Add domain-specific documentation here.
```yaml
critical_actions:
- 'Load COMPLETE file {agent-folder}/{sidecar}/memories.md and remember all past insights'
- 'Load COMPLETE file {agent-folder}/{sidecar}/instructions.md and follow ALL protocols'
- 'ONLY read/write files in {agent-folder}/{sidecar}/ - this is our private space'
- 'Load COMPLETE file ./{sidecar}/memories.md and remember all past insights'
- 'Load COMPLETE file ./{sidecar}/instructions.md and follow ALL protocols'
- 'ONLY read/write files in ./{sidecar}/ - this is our private space'
```
**Key patterns:**
@ -196,7 +196,7 @@ critical_actions:
- **Memory integration** - Past context becomes part of current session
- **Protocol adherence** - Ensures consistent behavior
### {agent-folder} Variable
### {agent_sidecar_folder} Variable
Special variable resolved during installation:
@ -211,9 +211,9 @@ Same as simple agents, PLUS:
1. **Critical actions become numbered activation steps**
```xml
<step n="4">Load COMPLETE file {agent-folder}/memories.md...</step>
<step n="5">Load COMPLETE file {agent-folder}/instructions.md...</step>
<step n="6">ONLY read/write files in {agent-folder}/...</step>
<step n="4">Load COMPLETE file ./memories.md...</step>
<step n="5">Load COMPLETE file ./instructions.md...</step>
<step n="6">ONLY read/write files in ./...</step>
```
2. **Sidecar files copied during installation**
@ -260,7 +260,7 @@ The installer:
```yaml
menu:
- trigger: save
action: "Update {agent-folder}/sidecar/memories.md with today's session insights"
action: "Update ./sidecar/memories.md with today's session insights"
description: 'Save session to memory'
```
@ -281,7 +281,7 @@ prompts:
```yaml
menu:
- trigger: insight
action: 'Document in {agent-folder}/sidecar/breakthroughs.md with date, context, significance'
action: 'Document in ./sidecar/breakthroughs.md with date, context, significance'
description: 'Record meaningful insight'
```
@ -291,7 +291,7 @@ menu:
```yaml
critical_actions:
- 'ONLY read/write files in {agent-folder}/sidecar/ - NO OTHER FOLDERS'
- 'ONLY read/write files in ./sidecar/ - NO OTHER FOLDERS'
```
### User Space Access
@ -305,15 +305,15 @@ critical_actions:
```yaml
critical_actions:
- 'Load knowledge from {agent-folder}/knowledge/ but NEVER modify'
- 'Write ONLY to {agent-folder}/sessions/'
- 'Load knowledge from ./knowledge/ but NEVER modify'
- 'Write ONLY to ./sessions/'
```
## Best Practices
1. **Load sidecar files in critical_actions** - Must be explicit and MANDATORY
2. **Enforce domain restrictions** - Clear boundaries prevent scope creep
3. **Use {agent-folder} paths** - Portable across installations
3. **Use {agent_sidecar_folder} paths** - Portable across installations
4. **Design for memory growth** - Structure sidecar files for accumulation
5. **Reference past naturally** - Don't dump memory, weave it into conversation
6. **Separate concerns** - Memories, instructions, knowledge in distinct files
@ -356,8 +356,8 @@ identity: |
- [ ] Sidecar folder structure created and populated
- [ ] memories.md has clear section structure
- [ ] instructions.md contains core directives
- [ ] Menu actions reference {agent-folder} correctly
- [ ] File paths use {agent-folder} variable
- [ ] Menu actions reference {agent_sidecar_folder} correctly
- [ ] File paths use {agent_sidecar_folder} variable
- [ ] Install config personalizes sidecar references
- [ ] Agent folder named consistently: `{agent-name}/`
- [ ] YAML file named: `{agent-name}.agent.yaml`

View File

@ -37,7 +37,7 @@ Production-ready examples in `/src/modules/bmb/reference/agents/`:
For installing standalone simple and expert agents, see:
- [Custom Agent Installation](/docs/custom-agent-installation.md)
- [Custom Agent Installation](/docs/custom-content-installation.md)
## Key Concepts

View File

@ -27,7 +27,7 @@ Compiles to:
```yaml
agent:
metadata:
id: '{bmad_folder}/{module-code}/agents/{agent-name}.md'
id: '{*bmad_folder*}/{module-code}/agents/{agent-name}.md'
name: 'Persona Name'
title: 'Professional Title'
icon: 'emoji'
@ -41,29 +41,29 @@ agent:
menu:
- trigger: workflow-action
workflow: '{project-root}/{bmad_folder}/{module-code}/workflows/{workflow-name}/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/{module-code}/workflows/{workflow-name}/workflow.yaml'
description: 'Execute module workflow'
- trigger: another-workflow
workflow: '{project-root}/{bmad_folder}/core/workflows/{workflow-name}/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/core/workflows/{workflow-name}/workflow.yaml'
description: 'Execute core workflow'
- trigger: task-action
exec: '{project-root}/{bmad_folder}/{module-code}/tasks/{task-name}.xml'
exec: '{project-root}/{*bmad_folder*}/{module-code}/tasks/{task-name}.xml'
description: 'Execute module task'
- trigger: cross-module
workflow: '{project-root}/{bmad_folder}/other-module/workflows/{workflow-name}/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/other-module/workflows/{workflow-name}/workflow.yaml'
description: 'Execute workflow from another module'
- trigger: with-template
exec: '{project-root}/{bmad_folder}/core/tasks/create-doc.xml'
tmpl: '{project-root}/{bmad_folder}/{module-code}/templates/{template-name}.md'
exec: '{project-root}/{*bmad_folder*}/core/tasks/create-doc.xml'
tmpl: '{project-root}/{*bmad_folder*}/{module-code}/templates/{template-name}.md'
description: 'Create document from template'
- trigger: with-data
exec: '{project-root}/{bmad_folder}/{module-code}/tasks/{task-name}.xml'
data: '{project-root}/{bmad_folder}/_cfg/agent-manifest.csv'
exec: '{project-root}/{*bmad_folder*}/{module-code}/tasks/{task-name}.xml'
data: '{project-root}/{*bmad_folder*}/_cfg/agent-manifest.csv'
description: 'Execute task with data file'
```
@ -71,7 +71,7 @@ agent:
### Metadata
- **id**: Path with `{bmad_folder}` variable (resolved at install time)
- **id**: Path with `{*bmad_folder*}` variable (resolved at install time)
- **name**: Agent persona name
- **title**: Professional role
- **icon**: Single emoji
@ -101,7 +101,7 @@ persona:
```yaml
menu:
- trigger: create-prd
workflow: '{project-root}/{bmad_folder}/bmm/workflows/prd/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/bmm/workflows/prd/workflow.yaml'
description: 'Create Product Requirements Document'
```
@ -112,7 +112,7 @@ Invokes BMAD workflow engine to execute multi-step processes.
```yaml
menu:
- trigger: validate
exec: '{project-root}/{bmad_folder}/core/tasks/validate-workflow.xml'
exec: '{project-root}/{*bmad_folder*}/core/tasks/validate-workflow.xml'
description: 'Validate document structure'
```
@ -123,8 +123,8 @@ Executes single-operation tasks.
```yaml
menu:
- trigger: create-brief
exec: '{project-root}/{bmad_folder}/core/tasks/create-doc.xml'
tmpl: '{project-root}/{bmad_folder}/bmm/templates/brief.md'
exec: '{project-root}/{*bmad_folder*}/core/tasks/create-doc.xml'
tmpl: '{project-root}/{*bmad_folder*}/bmm/templates/brief.md'
description: 'Create a Product Brief from template'
```
@ -135,8 +135,8 @@ Combines task execution with template file.
```yaml
menu:
- trigger: team-standup
exec: '{project-root}/{bmad_folder}/bmm/tasks/standup.xml'
data: '{project-root}/{bmad_folder}/_cfg/agent-manifest.csv'
exec: '{project-root}/{*bmad_folder*}/bmm/tasks/standup.xml'
data: '{project-root}/{*bmad_folder*}/_cfg/agent-manifest.csv'
description: 'Run team standup with agent roster'
```
@ -160,12 +160,12 @@ Control visibility based on platform:
```yaml
menu:
- trigger: advanced-elicitation
exec: '{project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml'
exec: '{project-root}/{*bmad_folder*}/core/tasks/advanced-elicitation.xml'
description: 'Advanced elicitation techniques'
web-only: true # Only shows in web bundle
- trigger: git-operations
exec: '{project-root}/{bmad_folder}/bmm/tasks/git-flow.xml'
exec: '{project-root}/{*bmad_folder*}/bmm/tasks/git-flow.xml'
description: 'Git workflow operations'
ide-only: true # Only shows in IDE environments
```
@ -175,7 +175,7 @@ menu:
### Core Variables
- `{project-root}` - Root directory of installed project
- `{bmad_folder}` - BMAD installation folder (usually `.bmad`)
- `{*bmad_folder*}` - BMAD installation folder (usually `.bmad`)
- `{user_name}` - User's name from module config
- `{communication_language}` - Language preference
- `{output_folder}` - Document output directory
@ -186,7 +186,7 @@ menu:
```yaml
# GOOD
workflow: "{project-root}/{bmad_folder}/bmm/workflows/prd/workflow.yaml"
workflow: "{project-root}/{*bmad_folder*}/bmm/workflows/prd/workflow.yaml"
# BAD
workflow: "/Users/john/project/.bmad/bmm/workflows/prd/workflow.yaml"
@ -203,12 +203,12 @@ Module agents use the same injection process as simple agents:
2. **Activation block** with standard steps
3. **Menu handlers** based on usage (workflow, exec, tmpl, data)
4. **Rules section** for consistent behavior
5. **Auto-injected** *help and *exit commands
5. **Auto-injected** \*help and \*exit commands
**Key difference:** Module agents load **module-specific config** instead of core config:
```xml
<step n="2">Load and read {project-root}/{bmad_folder}/{module}/config.yaml...</step>
<step n="2">Load and read {project-root}/{*bmad_folder*}/{module}/config.yaml...</step>
```
## Reference Examples
@ -252,15 +252,15 @@ Agents load this at activation for consistent behavior.
```yaml
menu:
- trigger: init
workflow: '{project-root}/{bmad_folder}/bmm/workflows/workflow-init/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/bmm/workflows/workflow-init/workflow.yaml'
description: 'Initialize workflow path (START HERE)'
- trigger: status
workflow: '{project-root}/{bmad_folder}/bmm/workflows/workflow-status/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/bmm/workflows/workflow-status/workflow.yaml'
description: 'Check current workflow status'
- trigger: next-step
workflow: '{project-root}/{bmad_folder}/bmm/workflows/next-step/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/bmm/workflows/next-step/workflow.yaml'
description: 'Execute next workflow in sequence'
```
@ -270,20 +270,20 @@ menu:
menu:
# Phase 1: Analysis
- trigger: brainstorm
workflow: '{project-root}/{bmad_folder}/bmm/workflows/1-analysis/brainstorm/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/bmm/workflows/1-analysis/brainstorm/workflow.yaml'
description: 'Guided brainstorming session'
- trigger: research
workflow: '{project-root}/{bmad_folder}/bmm/workflows/1-analysis/research/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/bmm/workflows/1-analysis/research/workflow.yaml'
description: 'Market and technical research'
# Phase 2: Planning
- trigger: prd
workflow: '{project-root}/{bmad_folder}/bmm/workflows/2-planning/prd/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/bmm/workflows/2-planning/prd/workflow.yaml'
description: 'Create PRD'
- trigger: architecture
workflow: '{project-root}/{bmad_folder}/bmm/workflows/2-planning/architecture/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/bmm/workflows/2-planning/architecture/workflow.yaml'
description: 'Design architecture'
```
@ -292,17 +292,17 @@ menu:
```yaml
menu:
- trigger: party-mode
workflow: '{project-root}/{bmad_folder}/core/workflows/party-mode/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/core/workflows/party-mode/workflow.yaml'
description: 'Bring all agents together'
- trigger: brainstorm
workflow: '{project-root}/{bmad_folder}/cis/workflows/brainstorming/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/cis/workflows/brainstorming/workflow.yaml'
description: 'Use CIS brainstorming techniques'
```
## Best Practices
1. **Use {bmad_folder} paths** - Portable across installations
1. **Use {_bmad_folder_} paths** - Portable across installations
2. **Organize workflows by phase** - Clear progression for users
3. **Include workflow-status** - Help users track progress
4. **Reference module config** - Consistent behavior
@ -318,7 +318,7 @@ menu:
```yaml
menu:
- trigger: start
workflow: '{project-root}/{bmad_folder}/{module}/workflows/init/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/{module}/workflows/init/workflow.yaml'
description: 'Start new project (BEGIN HERE)'
```
@ -327,7 +327,7 @@ menu:
```yaml
menu:
- trigger: status
workflow: '{project-root}/{bmad_folder}/{module}/workflows/status/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/{module}/workflows/status/workflow.yaml'
description: 'Check workflow progress'
```
@ -336,27 +336,27 @@ menu:
```yaml
menu:
- trigger: party
workflow: '{project-root}/{bmad_folder}/core/workflows/party-mode/workflow.yaml'
workflow: '{project-root}/{*bmad_folder*}/core/workflows/party-mode/workflow.yaml'
description: 'Multi-agent discussion'
```
## Module Agent vs Simple/Expert
| Aspect | Module Agent | Simple/Expert Agent |
| ------------- | -------------------------------- | ------------------------------- |
| Location | `{bmad_folder}/{module}/agents/` | `{bmad_folder}/custom/agents/` |
| Persona | Fixed, professional | Customizable via install_config |
| Handlebars | No templating | Yes, extensive |
| Menu actions | Workflows, tasks, templates | Prompts, inline actions |
| Configuration | Module config.yaml | Core config or none |
| Purpose | Professional tooling | Personal utilities |
| Aspect | Module Agent | Simple/Expert Agent |
| ------------- | ---------------------------------- | -------------------------------- |
| Location | `{*bmad_folder*}/{module}/agents/` | `{*bmad_folder*}/custom/agents/` |
| Persona | Fixed, professional | Customizable via install_config |
| Handlebars | No templating | Yes, extensive |
| Menu actions | Workflows, tasks, templates | Prompts, inline actions |
| Configuration | Module config.yaml | Core config or none |
| Purpose | Professional tooling | Personal utilities |
## Validation Checklist
- [ ] Valid YAML syntax
- [ ] Metadata includes `module: "{module-code}"`
- [ ] id uses `{bmad_folder}/{module}/agents/{name}.md`
- [ ] All workflow paths use `{project-root}/{bmad_folder}/` prefix
- [ ] id uses `{*bmad_folder*}/{module}/agents/{name}.md`
- [ ] All workflow paths use `{project-root}/{*bmad_folder*}/` prefix
- [ ] No hardcoded paths
- [ ] No duplicate triggers
- [ ] Each menu item has description

View File

@ -217,9 +217,13 @@ Features demonstrated:
# Copy to your project
cp /path/to/commit-poet.agent.yaml .bmad/custom/agents/
# Install with personalization
bmad agent-install
# or: npx bmad-method agent-install
# Create custom.yaml and install
echo "code: my-agent
name: My Agent
default_selected: true" > custom.yaml
npx bmad-method install
# or: bmad install
```
The installer:

View File

@ -149,13 +149,13 @@ ONLY WHEN [C continue option] is selected and [completion requirements], will yo
<!-- TEMPLATE END-->
## Common Menu Patterns to use in the final sequence item in a step file.
## Common Menu Patterns to use in the final sequence item in a step file
FYI Again - party mode is useful for the user to reach out and get opinions from other agents.
Advanced elicitation is use to direct you to think of alternative outputs of a sequence you just performed.
### Standard Menu - when a sequence in a step results in content produced by the agent or human that could be improved before proceeding.
### Standard Menu - when a sequence in a step results in content produced by the agent or human that could be improved before proceeding
```markdown
### N. Present MENU OPTIONS

View File

@ -15,17 +15,12 @@ subheader: "Configure the settings for the BoMB Factory!\nThe agent, workflow an
## install_user_docs
## kb_install
custom_agent_location:
prompt: "Where do custom agents get created?"
default: "{bmad_folder}/custom/src/agents"
result: "{project-root}/{value}"
custom_workflow_location:
prompt: "Where do custom workflows get stored?"
default: "{bmad_folder}/custom/src/workflows"
custom_stand_alone_location:
prompt: "Where do custom agents and workflows get stored?"
default: "bmad-custom-src"
result: "{project-root}/{value}"
custom_module_location:
prompt: "Where do custom modules get stored?"
default: "{bmad_folder}/custom/src/modules"
default: "bmad-custom-modules-src"
result: "{project-root}/{value}"

View File

@ -51,7 +51,7 @@ menu:
# Direct sidecar file action
- trigger: 'insight'
action: 'Document this breakthrough in {agent-folder}/journal-keeper-sidecar/breakthroughs.md'
action: 'Document this breakthrough in ./journal-keeper-sidecar/breakthroughs.md'
description: 'Record a meaningful insight'
```
@ -63,9 +63,9 @@ Expert Agents MUST load sidecar files explicitly:
```yaml
critical_actions:
- 'Load COMPLETE file {agent-folder}/journal-keeper-sidecar/memories.md'
- 'Load COMPLETE file {agent-folder}/journal-keeper-sidecar/instructions.md'
- 'ONLY read/write files in {agent-folder}/journal-keeper-sidecar/'
- 'Load COMPLETE file ./journal-keeper-sidecar/memories.md'
- 'Load COMPLETE file ./journal-keeper-sidecar/instructions.md'
- 'ONLY read/write files in ./journal-keeper-sidecar/'
```
**Key points:**

View File

@ -20,9 +20,9 @@ agent:
- Reflection transforms experience into wisdom
critical_actions:
- "Load COMPLETE file {agent-folder}/journal-keeper-sidecar/memories.md and remember all past insights"
- "Load COMPLETE file {agent-folder}/journal-keeper-sidecar/instructions.md and follow ALL journaling protocols"
- "ONLY read/write files in {agent-folder}/journal-keeper-sidecar/ - this is our private space"
- "Load COMPLETE file {agent_sidecar_folder}/journal-keeper-sidecar/memories.md and remember all past insights"
- "Load COMPLETE file {agent_sidecar_folder}/journal-keeper-sidecar/instructions.md and follow ALL journaling protocols"
- "ONLY read/write files in {agent_sidecar_folder}/journal-keeper-sidecar/ - this is our private space"
- "Track mood patterns, recurring themes, and breakthrough moments"
- "Reference past entries naturally to show continuity"
@ -120,7 +120,7 @@ agent:
description: "Write today's journal entry"
- trigger: quick
action: "Save a quick, unstructured entry to {agent-folder}/journal-keeper-sidecar/entries/entry-{date}.md with timestamp and any patterns noticed"
action: "Save a quick, unstructured entry to {agent_sidecar_folder}/journal-keeper-sidecar/entries/entry-{date}.md with timestamp and any patterns noticed"
description: "Quick capture without prompts"
- trigger: mood
@ -133,20 +133,20 @@ agent:
- trigger: gratitude
action: "#gratitude-moment"
description: "Capture today's gratitudes"
description: "Capture today's gratitude"
- trigger: weekly
action: "#weekly-reflection"
description: "Reflect on the past week"
- trigger: insight
action: "Document this breakthrough in {agent-folder}/journal-keeper-sidecar/breakthroughs.md with date and significance"
action: "Document this breakthrough in {agent_sidecar_folder}/journal-keeper-sidecar/breakthroughs.md with date and significance"
description: "Record a meaningful insight"
- trigger: read-back
action: "Load and share entries from {agent-folder}/journal-keeper-sidecar/entries/ for requested timeframe, highlighting themes and growth"
action: "Load and share entries from {agent_sidecar_folder}/journal-keeper-sidecar/entries/ for requested timeframe, highlighting themes and growth"
description: "Review past entries"
- trigger: save
action: "Update {agent-folder}/journal-keeper-sidecar/memories.md with today's session insights and emotional markers"
action: "Update {agent_sidecar_folder}/journal-keeper-sidecar/memories.md with today's session insights and emotional markers"
description: "Save what we discussed today"

View File

@ -10,7 +10,7 @@
agent:
metadata:
id: "{bmad_folder}/bmm/agents/security-engineer.md"
id: "{*bmad_folder*}/bmm/agents/security-engineer.md"
name: "Sam"
title: "Security Engineer"
icon: "🔐"
@ -32,22 +32,22 @@ agent:
menu:
# NOTE: These workflows are hypothetical examples assuming add to a module called bmm - not implemented
- trigger: threat-model
workflow: "{project-root}/{bmad_folder}/bmm/workflows/threat-model/workflow.yaml"
exec: "{project-root}/{*bmad_folder*}/bmm/workflows/threat-model/workflow.md"
description: "Create STRIDE threat model for architecture"
- trigger: security-review
workflow: "{project-root}/{bmad_folder}/bmm/workflows/security-review/workflow.yaml"
exec: "{project-root}/{*bmad_folder*}/bmm/workflows/security-review/workflow.md"
description: "Review code/design for security issues"
- trigger: owasp-check
exec: "{project-root}/{bmad_folder}/bmm/tasks/owasp-top-10.xml"
TODO: true
description: "Check against OWASP Top 10"
- trigger: compliance
workflow: "{project-root}/{bmad_folder}/bmm/workflows/compliance-check/workflow.yaml"
exec: "{project-root}/{*bmad_folder*}/bmm/workflows/compliance-check/workflow.md"
description: "Verify compliance requirements (SOC2, GDPR, etc.)"
# Core workflow that exists
- trigger: party-mode
exec: "{project-root}/{bmad_folder}/core/workflows/party-mode/workflow.md"
exec: "{project-root}/{*bmad_folder*}/core/workflows/party-mode/workflow.md"
description: "Multi-agent security discussion"

View File

@ -10,7 +10,7 @@
agent:
metadata:
id: "{bmad_folder}/cis/agents/trend-analyst.md"
id: "{*bmad_folder*}/cis/agents/trend-analyst.md"
name: "Nova"
title: "Trend Analyst"
icon: "📈"
@ -32,26 +32,26 @@ agent:
menu:
# NOTE: These workflows are hypothetical examples - not implemented
- trigger: scan-trends
workflow: "{project-root}/{bmad_folder}/cis/workflows/trend-scan/workflow.yaml"
exec: "{project-root}/{*bmad_folder*}/cis/workflows/trend-scan/workflow.md"
description: "Scan for emerging trends in a domain"
- trigger: analyze-trend
workflow: "{project-root}/{bmad_folder}/cis/workflows/trend-analysis/workflow.yaml"
exec: "{project-root}/{*bmad_folder*}/cis/workflows/trend-analysis/workflow.md"
description: "Deep dive on a specific trend"
- trigger: opportunity-map
workflow: "{project-root}/{bmad_folder}/cis/workflows/opportunity-mapping/workflow.yaml"
exec: "{project-root}/{*bmad_folder*}/cis/workflows/opportunity-mapping/workflow.md"
description: "Map trend to strategic opportunities"
- trigger: competitor-trends
exec: "{project-root}/{bmad_folder}/cis/tasks/competitor-trend-watch.xml"
exec: "{project-root}/{*bmad_folder*}/cis/tasks/competitor-trend-watch.xml"
description: "Monitor competitor trend adoption"
# Core workflows that exist
- trigger: brainstorm
workflow: "{project-root}/{bmad_folder}/core/workflows/brainstorming/workflow.yaml"
exec: "{project-root}/{*bmad_folder*}/core/workflows/brainstorming/workflow.md"
description: "Brainstorm trend implications"
- trigger: party-mode
exec: "{project-root}/{bmad_folder}/core/workflows/party-mode/workflow.md"
exec: "{project-root}/{*bmad_folder*}/core/workflows/party-mode/workflow.md"
description: "Discuss trends with other agents"

View File

@ -132,7 +132,7 @@ You are a **strategic shopping partner** who:
- Plans for real-life shopping scenarios
- Minimizes food waste thoughtfully
## 📝 OUTPUT REQUIREMENTS:
## 📊 STATUS UPDATE:
Update workflow.md frontmatter:

View File

@ -1,229 +0,0 @@
# Create Module Workflow
Interactive scaffolding system creating complete BMad modules with agents, workflows, tasks, and installation infrastructure.
## Table of Contents
- [Quick Start](#quick-start)
- [Workflow Phases](#workflow-phases)
- [Output Structure](#output-structure)
- [Module Components](#module-components)
- [Best Practices](#best-practices)
## Quick Start
```bash
# Basic invocation
workflow create-module
# With module brief input
workflow create-module --input module-brief-{name}-{date}.md
# Via BMad Builder
*create-module
```
## Workflow Phases
### Phase 1: Concept Definition
- Define module purpose and audience
- Establish module code (kebab-case) and name
- Choose category (Domain, Creative, Technical, Business, Personal)
- Plan component architecture
**Module Brief Integration:**
- Auto-detects existing briefs
- Uses as pre-populated blueprint
- Accelerates planning phase
### Phase 2: Architecture Planning
- Create directory hierarchy
- Setup configuration system
- Define installer structure
- Establish component folders
### Phase 3: Component Creation
- Optional first agent creation
- Optional first workflow creation
- Component placeholder generation
- Integration validation
### Phase 4: Installation Setup
- Create install-config.yaml
- Configure deployment questions
- Setup installer logic
- Post-install messaging
### Phase 5: Documentation
- Generate comprehensive README
- Create development roadmap
- Provide quick commands
- Document next steps
## Output Structure
### Generated Directory
```
{bmad_folder}/{module-code}/
├── agents/ # Agent definitions
├── workflows/ # Workflow processes
├── tasks/ # Reusable tasks
├── templates/ # Document templates
├── data/ # Module data files
├── _module-installer/ # Installation logic
│ ├── install-config.yaml
│ └── installer.js
├── README.md # Module documentation
├── TODO.md # Development roadmap
└── config.yaml # Runtime configuration
```
### Configuration Files
**install-config.yaml** - Installation questions
```yaml
questions:
- id: user_name
prompt: 'Your name?'
default: 'User'
- id: output_folder
prompt: 'Output location?'
default: './output'
```
**config.yaml** - Generated from user answers during install
```yaml
user_name: 'John Doe'
output_folder: './my-output'
```
## Module Components
### Agents
- Full module agents with workflows
- Expert agents with sidecars
- Simple utility agents
### Workflows
- Multi-step guided processes
- Configuration-driven
- Web bundle support
### Tasks
- Reusable operations
- Agent-agnostic
- Modular components
### Templates
- Document structures
- Output formats
- Report templates
## Best Practices
### Planning
1. **Use module-brief workflow first** - Creates comprehensive blueprint
2. **Define clear scope** - Avoid feature creep
3. **Plan component interactions** - Map agent/workflow relationships
### Structure
1. **Follow conventions** - Use established patterns
2. **Keep components focused** - Single responsibility
3. **Document thoroughly** - Clear README and inline docs
### Development
1. **Start with core agent** - Build primary functionality first
2. **Create key workflows** - Essential processes before edge cases
3. **Test incrementally** - Validate as you build
### Installation
1. **Minimal config questions** - Only essential settings
2. **Smart defaults** - Sensible out-of-box experience
3. **Clear post-install** - Guide users to first steps
## Integration Points
### With Other Workflows
- **module-brief** - Strategic planning input
- **create-agent** - Agent component creation
- **create-workflow** - Workflow building
- **redoc** - Documentation maintenance
### With BMad Core
- Uses core framework capabilities
- Integrates with module system
- Follows BMad conventions
## Examples
### Domain-Specific Module
```
Category: Domain-Specific
Code: legal-advisor
Components:
- Contract Review Agent
- Compliance Workflow
- Legal Templates
```
### Creative Module
```
Category: Creative
Code: story-builder
Components:
- Narrative Agent
- Plot Workflow
- Character Templates
```
### Technical Module
```
Category: Technical
Code: api-tester
Components:
- Test Runner Agent
- API Validation Workflow
- Test Report Templates
```
## Workflow Files
```
create-module/
├── workflow.yaml # Configuration
├── instructions.md # Step guide
├── checklist.md # Validation
├── module-structure.md # Architecture
├── installer-templates/ # Install files
└── README.md # This file
```
## Related Documentation
- [Module Structure](./module-structure.md)
- [Module Brief Workflow](../module-brief/README.md)
- [Create Agent](../create-agent/README.md)
- [Create Workflow](../create-workflow/README.md)
- [BMB Module](../../README.md)

View File

@ -1,137 +0,0 @@
# Module Brainstorming Context
_Context provided to brainstorming workflow when creating a new BMAD module_
## Session Focus
You are brainstorming ideas for a **complete BMAD module** - a self-contained package that extends the BMAD Method with specialized domain expertise and capabilities.
## What is a BMAD Module?
A module is a cohesive package that provides:
- **Domain Expertise**: Specialized knowledge in a specific area (RPG, DevOps, Content Creation, etc.)
- **Agent Team**: Multiple AI personas with complementary skills
- **Workflows**: Guided processes for common tasks in the domain
- **Templates**: Document structures for consistent outputs
- **Integration**: Components that work together seamlessly
## Brainstorming Goals
Explore and define:
### 1. Domain and Purpose
- **What domain/problem space?** (e.g., game development, marketing, personal productivity)
- **Who is the target user?** (developers, writers, managers, hobbyists)
- **What pain points does it solve?** (tedious tasks, missing structure, need for expertise)
- **What makes this domain exciting?** (creativity, efficiency, empowerment)
### 2. Agent Team Composition
- **How many agents?** (typically 3-7 for a module)
- **What roles/personas?** (architect, researcher, reviewer, specialist)
- **How do they collaborate?** (handoffs, reviews, ensemble work)
- **What personality theme?** (Star Trek crew, superhero team, fantasy party, professional squad)
### 3. Core Workflows
- **What documents need creating?** (plans, specs, reports, creative outputs)
- **What processes need automation?** (analysis, generation, review, deployment)
- **What workflows enable the vision?** (3-10 key workflows that define the module)
### 4. Value Proposition
- **What becomes easier?** (specific tasks that get 10x faster)
- **What becomes possible?** (new capabilities previously unavailable)
- **What becomes better?** (quality improvements, consistency gains)
## Creative Constraints
A good BMAD module should be:
- **Focused**: Serves a specific domain well (not generic)
- **Complete**: Provides end-to-end capabilities for that domain
- **Cohesive**: Agents and workflows complement each other
- **Fun**: Personality and creativity make it enjoyable to use
- **Practical**: Solves real problems, delivers real value
## Module Architecture Questions
1. **Module Identity**
- Module code (kebab-case, e.g., "rpg-toolkit")
- Module name (friendly, e.g., "RPG Toolkit")
- Module purpose (one sentence)
- Target audience
2. **Agent Lineup**
- Agent names and roles
- Communication styles and personalities
- Expertise areas
- Command sets (what each agent can do)
3. **Workflow Portfolio**
- Document generation workflows
- Action/automation workflows
- Analysis/research workflows
- Creative/ideation workflows
4. **Integration Points**
- How agents invoke workflows
- How workflows use templates
- How components pass data
- Dependencies on other modules
## Example Module Patterns
### Professional Domains
- **DevOps Suite**: Deploy, Monitor, Troubleshoot agents + deployment workflows
- **Marketing Engine**: Content, SEO, Analytics agents + campaign workflows
- **Legal Assistant**: Contract, Research, Review agents + document workflows
### Creative Domains
- **RPG Toolkit**: DM, NPC, Quest agents + adventure creation workflows
- **Story Crafter**: Plot, Character, World agents + writing workflows
- **Music Producer**: Composer, Arranger, Mixer agents + production workflows
### Personal Domains
- **Life Coach**: Planner, Tracker, Mentor agents + productivity workflows
- **Learning Companion**: Tutor, Quiz, Reviewer agents + study workflows
- **Health Guide**: Nutrition, Fitness, Wellness agents + tracking workflows
## Suggested Brainstorming Techniques
Particularly effective for module ideation:
1. **Domain Immersion**: Deep dive into target domain's problems
2. **Persona Mapping**: Who needs this and what do they struggle with?
3. **Workflow Mapping**: What processes exist today? How could they improve?
4. **Team Building**: What personalities would make a great team?
5. **Integration Thinking**: How do pieces connect and amplify each other?
## Key Questions to Answer
1. What domain expertise should this module embody?
2. What would users be able to do that they can't do now?
3. Who are the 3-7 agents and what are their personalities?
4. What are the 5-10 core workflows?
5. What makes this module delightful to use?
6. How is this different from existing tools?
7. What's the "killer feature" that makes this essential?
## Output Goals
Generate:
- **Module concept**: Clear vision and purpose
- **Agent roster**: Names, roles, personalities for each agent
- **Workflow list**: Core workflows with brief descriptions
- **Unique angle**: What makes this module special
- **Use cases**: 3-5 concrete scenarios where this module shines
---
_This focused context helps create cohesive, valuable BMAD modules_

View File

@ -1,235 +0,0 @@
# Build Module Validation Checklist
## Module Identity and Metadata
### Basic Information
- [ ] Module code follows kebab-case convention (e.g., "rpg-toolkit")
- [ ] Module name is descriptive and title-cased
- [ ] Module purpose is clearly defined (1-2 sentences)
- [ ] Target audience is identified
- [ ] Version number follows semantic versioning (e.g., "1.0.0")
- [ ] Author information is present
### Naming Consistency
- [ ] Module code used consistently throughout all files
- [ ] No naming conflicts with existing modules
- [ ] All paths use consistent module code references
## Directory Structure
### Source Directories ({bmad_folder}/{module-code}/)
- [ ] `/agents` directory created (even if empty)
- [ ] `/workflows` directory created (even if empty)
- [ ] `/tasks` directory exists (if tasks planned)
- [ ] `/templates` directory exists (if templates used)
- [ ] `/data` directory exists (if data files needed)
- [ ] `/_module-installer/install-config.yaml` present (defines configuration questions)
- [ ] `README.md` present with documentation
### Installed Module Structure (generated in target after installation)
- [ ] `/agents` directory for compiled agents
- [ ] `/workflows` directory for workflow instances
- [ ] `/data` directory for user data
- [ ] `config.yaml` generated from install-config.yaml during installation
## Component Planning
### Agents
- [ ] At least one agent defined or planned
- [ ] Agent purposes are distinct and clear
- [ ] Agent types (Simple/Expert/Module) identified
- [ ] No significant overlap between agents
- [ ] Primary agent is identified
### Workflows
- [ ] At least one workflow defined or planned
- [ ] Workflow purposes are clear
- [ ] Workflow types identified (Document/Action/Interactive)
- [ ] Primary workflow is identified
- [ ] Workflow complexity is appropriate
### Tasks (if applicable)
- [ ] Tasks have single, clear purposes
- [ ] Tasks don't duplicate workflow functionality
- [ ] Task files follow naming conventions
## Configuration Files
### Installation Configuration (install-config.yaml)
- [ ] `install-config.yaml` exists in `_module-installer`
- [ ] Module metadata present (code, name, version)
- [ ] Configuration questions defined for user input
- [ ] Default values provided for all questions
- [ ] Prompt text is clear and helpful
- [ ] Result templates use proper variable substitution
- [ ] Paths use proper variables ({project-root}, {value}, etc.)
### Generated Config (config.yaml in target)
- [ ] Generated during installation from install-config.yaml
- [ ] Contains all user-provided configuration values
- [ ] Module metadata included
- [ ] No config.yaml should exist in source module
## Installation Infrastructure
### Installer Files
- [ ] Install configuration validates against schema
- [ ] All source paths exist or are marked as templates
- [ ] Destination paths use correct variables
- [ ] Optional vs required steps clearly marked
### installer.js (if present)
- [ ] Main `installModule` function exists
- [ ] Error handling implemented
- [ ] Console logging for user feedback
- [ ] Exports correct function names
- [ ] Placeholder code replaced with actual logic (or logged as TODO)
### External Assets (if any)
- [ ] Asset files exist in assets directory
- [ ] Copy destinations are valid
- [ ] Permissions requirements documented
## Documentation
### README.md
- [ ] Module overview section present
- [ ] Installation instructions included
- [ ] Component listing with descriptions
- [ ] Quick start guide provided
- [ ] Configuration options documented
- [ ] At least one usage example
- [ ] Directory structure shown
- [ ] Author and date information
### Component Documentation
- [ ] Each agent has purpose documentation
- [ ] Each workflow has description
- [ ] Tasks are documented (if present)
- [ ] Examples demonstrate typical usage
### Development Roadmap
- [ ] TODO.md or roadmap section exists
- [ ] Planned components listed
- [ ] Development phases identified
- [ ] Quick commands for adding components
## Integration
### Cross-component References
- [ ] Agents reference correct workflow paths
- [ ] Workflows reference correct task paths
- [ ] All internal paths use module variables
- [ ] External dependencies declared
### Module Boundaries
- [ ] Module scope is well-defined
- [ ] No feature creep into other domains
- [ ] Clear separation from other modules
## Quality Checks
### Completeness
- [ ] At least one functional component (not all placeholders)
- [ ] Core functionality is implementable
- [ ] Module provides clear value
### Consistency
- [ ] Formatting consistent across files
- [ ] Variable naming follows conventions
- [ ] Communication style appropriate for domain
### Scalability
- [ ] Structure supports future growth
- [ ] Component organization is logical
- [ ] No hard-coded limits
## Testing and Validation
### Structural Validation
- [ ] YAML files parse without errors
- [ ] JSON files (if any) are valid
- [ ] XML files (if any) are well-formed
- [ ] No syntax errors in JavaScript files
### Path Validation
- [ ] All referenced paths exist or are clearly marked as TODO
- [ ] Variable substitutions are correct
- [ ] No absolute paths (unless intentional)
### Installation Testing
- [ ] Installation steps can be simulated
- [ ] No circular dependencies
- [ ] Uninstall process defined (if complex)
## Final Checks
### Ready for Use
- [ ] Module can be installed without errors
- [ ] At least one component is functional
- [ ] User can understand how to get started
- [ ] Next steps are clear
### Professional Quality
- [ ] No placeholder text remains (unless marked TODO)
- [ ] No obvious typos or grammar issues
- [ ] Professional tone throughout
- [ ] Contact/support information provided
## Issues Found
### Critical Issues
<!-- List any issues that MUST be fixed before module can be used -->
### Warnings
<!-- List any issues that should be addressed but won't prevent basic usage -->
### Improvements
<!-- List any optional enhancements that would improve the module -->
### Missing Components
<!-- List any planned components not yet implemented -->
## Module Complexity Assessment
### Complexity Rating
- [ ] Simple (1-2 agents, 2-3 workflows)
- [ ] Standard (3-5 agents, 5-10 workflows)
- [ ] Complex (5+ agents, 10+ workflows)
### Readiness Level
- [ ] Prototype (Basic structure, mostly placeholders)
- [ ] Alpha (Core functionality works)
- [ ] Beta (Most features complete, needs testing)
- [ ] Release (Full functionality, documented)

View File

@ -1,92 +0,0 @@
# {{MODULE_NAME}} Module Configuration
# This file defines installation questions and module configuration values
code: "{{MODULE_CODE}}"
name: "{{MODULE_NAME}}"
default_selected: "{{DEFAULT_SELECTED}}" # true if this should be selected by default
# Welcome message shown during installation
prompt:
- "{{WELCOME_MESSAGE_LINE_1}}"
- "{{WELCOME_MESSAGE_LINE_2}}"
# Core config values are automatically inherited:
## user_name
## communication_language
## document_output_language
## output_folder
# ============================================================================
# CONFIGURATION FIELDS
# ============================================================================
#
# Each field can be:
# 1. INTERACTIVE (has 'prompt' - asks user during installation)
# 2. STATIC (no 'prompt' - just uses 'result' value)
#
# Field structure:
# field_name:
# prompt: "Question to ask user" (optional - omit for static values)
# default: "default_value" (optional)
# result: "{value}" or "static-value"
# single-select: [...] (optional - for dropdown)
# multi-select: [...] (optional - for checkboxes)
#
# Special placeholders in result:
# {value} - replaced with user's answer
# {project-root} - replaced with project root path
# {directory_name} - replaced with project directory name
# {module_code} - replaced with this module's code
# ============================================================================
# EXAMPLE: Interactive text input
# example_project_name:
# prompt: "What is your project name?"
# default: "{directory_name}"
# result: "{value}"
# EXAMPLE: Interactive single-select dropdown
# example_skill_level:
# prompt: "What is your experience level?"
# default: "intermediate"
# result: "{value}"
# single-select:
# - value: "beginner"
# label: "Beginner - New to this domain"
# - value: "intermediate"
# label: "Intermediate - Familiar with basics"
# - value: "expert"
# label: "Expert - Deep knowledge"
# EXAMPLE: Interactive multi-select checkboxes
# example_features:
# prompt:
# - "Which features do you want to enable?"
# - "(Select all that apply)"
# result: "{value}"
# multi-select:
# - "Feature A"
# - "Feature B"
# - "Feature C"
# EXAMPLE: Interactive path input
# example_output_path:
# prompt: "Where should outputs be saved?"
# default: "output/{{MODULE_CODE}}"
# result: "{project-root}/{value}"
# EXAMPLE: Static value (no user prompt)
# example_static_setting:
# result: "hardcoded-value"
# EXAMPLE: Static path
# module_data_path:
# result: "{project-root}/{bmad_folder}/{{MODULE_CODE}}/data"
# ============================================================================
# YOUR MODULE CONFIGURATION FIELDS
# ============================================================================
# Replace examples above with your module's actual configuration needs.
# Delete this comment block and the examples when implementing.
# ============================================================================
# TODO: INSERT {MODULE_CONFIG_FIELDS} HERE

View File

@ -1,231 +0,0 @@
/* eslint-disable unicorn/prefer-module, unicorn/prefer-node-protocol */
/**
* {{MODULE_NAME}} Module Installer
* Custom installation logic for complex module setup
*
* This is a template - replace {{VARIABLES}} with actual values
*/
// const fs = require('fs'); // Uncomment when implementing file operations
const path = require('path');
/**
* Main installation function
* Called by BMAD installer when processing the module
*/
async function installModule(config) {
console.log('🚀 Installing {{MODULE_NAME}} module...');
console.log(` Version: ${config.version}`);
console.log(` Module Code: ${config.module_code}`);
try {
// Step 1: Validate environment
await validateEnvironment(config);
// Step 2: Setup custom configurations
await setupConfigurations(config);
// Step 3: Initialize module-specific features
await initializeFeatures(config);
// Step 4: Run post-install tasks
await runPostInstallTasks(config);
console.log('✅ {{MODULE_NAME}} module installed successfully!');
return {
success: true,
message: 'Module installed and configured',
};
} catch (error) {
console.error('❌ Installation failed:', error.message);
return {
success: false,
error: error.message,
};
}
}
/**
* Validate that the environment meets module requirements
*/
async function validateEnvironment(config) {
console.log(' Validating environment...');
// TODO: Add environment checks
// Examples:
// - Check for required tools/binaries
// - Verify permissions
// - Check network connectivity
// - Validate API keys
// Placeholder validation
if (!config.project_root) {
throw new Error('Project root not defined');
}
console.log(' ✓ Environment validated');
}
/**
* Setup module-specific configurations
*/
async function setupConfigurations(config) {
console.log(' Setting up configurations...');
// TODO: Add configuration setup
// Examples:
// - Create config files
// - Setup environment variables
// - Configure external services
// - Initialize settings
// Placeholder configuration
const configPath = path.join(config.project_root, 'bmad', config.module_code, 'config.json');
// Example of module config that would be created
// const moduleConfig = {
// installed: new Date().toISOString(),
// settings: {
// // Add default settings
// }
// };
// Note: This is a placeholder - actual implementation would write the file
console.log(` ✓ Would create config at: ${configPath}`);
console.log(' ✓ Configurations complete');
}
/**
* Initialize module-specific features
*/
async function initializeFeatures(config) {
console.log(' Initializing features...');
// TODO: Add feature initialization
// Examples:
// - Create database schemas
// - Setup cron jobs
// - Initialize caches
// - Register webhooks
// - Setup file watchers
// Module-specific initialization based on type
switch (config.module_category) {
case 'data': {
await initializeDataFeatures(config);
break;
}
case 'automation': {
await initializeAutomationFeatures(config);
break;
}
case 'integration': {
await initializeIntegrationFeatures(config);
break;
}
default: {
console.log(' - Using standard initialization');
}
}
console.log(' ✓ Features initialized');
}
/**
* Initialize data-related features
*/
async function initializeDataFeatures(/* config */) {
console.log(' - Setting up data storage...');
// TODO: Setup databases, data folders, etc.
}
/**
* Initialize automation features
*/
async function initializeAutomationFeatures(/* config */) {
console.log(' - Setting up automation hooks...');
// TODO: Setup triggers, watchers, schedulers
}
/**
* Initialize integration features
*/
async function initializeIntegrationFeatures(/* config */) {
console.log(' - Setting up integrations...');
// TODO: Configure APIs, webhooks, external services
}
/**
* Run post-installation tasks
*/
async function runPostInstallTasks(/* config */) {
console.log(' Running post-install tasks...');
// TODO: Add post-install tasks
// Examples:
// - Generate sample data
// - Run initial workflows
// - Send notifications
// - Update registries
console.log(' ✓ Post-install tasks complete');
}
/**
* Initialize database for the module (optional)
*/
async function initDatabase(/* config */) {
console.log(' Initializing database...');
// TODO: Add database initialization
// This function can be called from install-config.yaml
console.log(' ✓ Database initialized');
}
/**
* Generate sample data for the module (optional)
*/
async function generateSamples(config) {
console.log(' Generating sample data...');
// TODO: Create sample files, data, configurations
// This helps users understand how to use the module
const samplesPath = path.join(config.project_root, 'examples', config.module_code);
console.log(` - Would create samples at: ${samplesPath}`);
console.log(' ✓ Samples generated');
}
/**
* Uninstall the module (cleanup)
*/
async function uninstallModule(/* config */) {
console.log('🗑️ Uninstalling {{MODULE_NAME}} module...');
try {
// TODO: Add cleanup logic
// - Remove configurations
// - Clean up databases
// - Unregister services
// - Backup user data
console.log('✅ Module uninstalled successfully');
return { success: true };
} catch (error) {
console.error('❌ Uninstall failed:', error.message);
return {
success: false,
error: error.message,
};
}
}
// Export functions for BMAD installer
module.exports = {
installModule,
initDatabase,
generateSamples,
uninstallModule,
};

View File

@ -1,577 +0,0 @@
# Build Module - Interactive Module Builder Instructions
<critical>The workflow execution engine is governed by: {project-root}/{bmad_folder}/core/tasks/workflow.xml</critical>
<critical>You MUST have already loaded and processed: {project-root}/{bmad_folder}/bmb/workflows/create-module/workflow.yaml</critical>
<critical>Study existing modules in: {project-root}/{bmad_folder}/ for patterns</critical>
<critical>Communicate in {communication_language} throughout the module creation process</critical>
<critical>⚠️ ABSOLUTELY NO TIME ESTIMATES - NEVER mention hours, days, weeks, months, or ANY time-based predictions. AI has fundamentally changed development speed - what once took teams weeks/months can now be done by one person in hours. DO NOT give ANY time estimates whatsoever.</critical>
<workflow>
<step n="-1" goal="Optional brainstorming for module ideas" optional="true">
<ask>Do you want to brainstorm module ideas first? [y/n]</ask>
<check if="yes">
<action>Invoke brainstorming workflow: {brainstorming_workflow}</action>
<action>Pass context data: {brainstorming_context}</action>
<action>Wait for brainstorming session completion</action>
<action>Use brainstorming output to inform module concept, agent lineup, and workflow portfolio in following steps</action>
</check>
<check if="no">
<action>Proceed directly to Step 0</action>
</check>
<template-output>brainstorming_results</template-output>
</step>
<step n="0" goal="Check for module brief" optional="true">
<ask>Do you have a module brief or should we create one? [have/create/skip]</ask>
<check if="create">
<action>Invoke module-brief workflow: {project-root}/{bmad_folder}/bmb/workflows/module-brief/workflow.yaml</action>
<action>Wait for module brief completion</action>
<action>Load the module brief to use as blueprint</action>
</check>
<check if="have">
<ask>Provide path to module brief document</ask>
<action>Load the module brief and use it to pre-populate all planning sections</action>
</check>
<check if="skip">
<action>Proceed directly to Step 1</action>
</check>
<template-output>module_brief</template-output>
</step>
<step n="1" goal="Define module concept and scope">
<critical>Load and study the complete module structure guide</critical>
<action>Load module structure guide: {module_structure_guide}</action>
<action>Understand module types (Simple/Standard/Complex)</action>
<action>Review directory structures and component guidelines</action>
<action>Study the installation infrastructure patterns</action>
<action>If brainstorming or module brief was completed, reference those results to guide the conversation</action>
<action>Guide user to articulate their module's vision, exploring its purpose, what it will help with, and who will use it</action>
<action>Based on their description, intelligently propose module details:</action>
**Module Identity Development:**
1. **Module name** - Extract from their description with proper title case
2. **Module code** - Generate kebab-case from name following patterns:
- Multi-word descriptive names → shortened kebab-case
- Domain-specific terms → recognizable abbreviations
- Present suggested code and confirm it works for paths like {bmad_folder}/{{code}}/agents/
3. **Module purpose** - Refine their description into 1-2 clear sentences
4. **Target audience** - Infer from context or ask if unclear
**Module Theme Reference Categories:**
- Domain-Specific (Legal, Medical, Finance, Education)
- Creative (RPG/Gaming, Story Writing, Music Production)
- Technical (DevOps, Testing, Architecture, Security)
- Business (Project Management, Marketing, Sales)
- Personal (Journaling, Learning, Productivity)
<critical>Determine output location:</critical>
- Module will be created at {installer_output_folder}
<action>Store module identity for scaffolding</action>
<template-output>module_identity</template-output>
</step>
<step n="2" goal="Plan module components">
<action>Based on the module purpose, intelligently propose an initial component architecture</action>
**Agents Planning:**
<action>Suggest agents based on module purpose, considering agent types (Simple/Expert/Module) appropriate to each role</action>
**Example Agent Patterns by Domain:**
- Data/Analytics: Analyst, Designer, Builder roles
- Gaming/Creative: Game Master, Generator, Storytelling roles
- Team/Business: Manager, Facilitator, Documentation roles
<action>Present suggested agent list with types, explaining we can start with core ones and add others later</action>
<action>Confirm which agents resonate with their vision</action>
**Workflows Planning:**
<action>Intelligently suggest workflows that complement the proposed agents</action>
**Example Workflow Patterns by Domain:**
- Data/Analytics: analyze-dataset, create-dashboard, generate-report
- Gaming/Creative: session-prep, generate-encounter, world-building
- Team/Business: planning, facilitation, documentation workflows
<action>For each workflow, note whether it should be Document, Action, or Interactive type</action>
<action>Confirm which workflows are most important to start with</action>
<action>Determine which to create now vs placeholder</action>
**Tasks Planning (optional):**
<ask>Any special tasks that don't warrant full workflows?</ask>
<action if="tasks needed">For each task, capture name, purpose, and whether standalone or supporting</action>
<template-output>module_components</template-output>
</step>
<step n="2b" goal="Determine module complexity">
<action>Based on components, intelligently determine module type using criteria:</action>
**Simple Module Criteria:**
- 1-2 agents, all Simple type
- 1-3 workflows
- No complex integrations
**Standard Module Criteria:**
- 2-4 agents with mixed types
- 3-8 workflows
- Some shared resources
**Complex Module Criteria:**
- 4+ agents or multiple Module-type agents
- 8+ workflows
- Complex interdependencies
- External integrations
<action>Present determined module type with explanation of what structure will be set up</action>
<template-output>module_type</template-output>
</step>
<step n="3" goal="Create module directory structure">
<critical>Use module path determined in Step 1:</critical>
- The module base path is {{module_path}}
<action>Create base module directories at the determined path:</action>
```
{{module_code}}/
├── agents/ # Agent definitions
├── workflows/ # Workflow folders
├── tasks/ # Task files (if any)
├── templates/ # Shared templates
├── data/ # Module data files
├── _module-installer/ # Installation configuration
│ └── install-config.yaml # Configuration questions (config.yaml generated at install time)
└── README.md # Module documentation
```
<action>Create installer directory:</action>
**INSTALLED MODULE STRUCTURE** (generated in target project after installation):
```
{{module_code}}/
├── agents/ # Compiled agents
├── workflows/ # Workflow instances
├── config.yaml # Generated from install-config.yaml during installation
└── data/ # User data directory
```
**SOURCE MODULE** (module-installer is for installation only, not copied to target):
```
{{module_code}}/
├── _module-installer/
│ ├── install-config.yaml # Configuration questions
│ ├── installer.js # Optional custom installation logic
│ └── assets/ # Files to copy during install
```
<template-output>directory_structure</template-output>
</step>
<step n="4" goal="Plan module configuration fields">
<action>Based on the module purpose and components, determine what configuration settings the module needs</action>
**Configuration Field Planning:**
<ask>Does your module need any user-configurable settings during installation?</ask>
**Common configuration patterns:**
- Output/data paths (where module saves files)
- Feature toggles (enable/disable functionality)
- Integration settings (API keys, external services)
- Behavior preferences (automation level, detail level)
- User skill level or experience settings
<action>For each configuration field needed, determine:</action>
1. Field name (snake_case)
2. Whether it's INTERACTIVE (asks user) or STATIC (hardcoded)
3. Prompt text (if interactive)
4. Default value
5. Type: text input, single-select, or multi-select
6. Result template (how the value gets stored)
<action>Store planned configuration fields for installer generation in step 7</action>
<template-output>module_config_fields</template-output>
</step>
<step n="5" goal="Create first agent" optional="true">
<ask>Create your first agent now? [yes/no]</ask>
<check if="yes">
<action>Invoke agent builder workflow: {agent_builder}</action>
<action>Pass module_components as context input</action>
<action>Guide them to create the primary agent for the module</action>
<critical>Save to module's agents folder:</critical>
- Save to {{module_path}}/agents/
</check>
<check if="no">
<action>Create placeholder file in agents folder with TODO notes including agent name, purpose, and type</action>
</check>
<template-output>first_agent</template-output>
</step>
<step n="6" goal="Create first workflow" optional="true">
<ask>Create your first workflow now? [yes/no]</ask>
<check if="yes">
<action>Invoke workflow builder: {workflow_builder}</action>
<action>Pass module_components as context input</action>
<action>Guide them to create the primary workflow</action>
<critical>Save to module's workflows folder:</critical>
- Save to {{module_path}}/workflows/
</check>
<check if="no">
<action>Create placeholder workflow folder structure with TODO notes for workflow.yaml, instructions.md, and template.md if document workflow</action>
</check>
<template-output>first_workflow</template-output>
</step>
<step n="7" goal="Setup module installer">
<action>Load installer template from: {installer_templates}/install-config.yaml</action>
<critical>IMPORTANT: Create install-config.yaml NOT install-config.yaml</critical>
<critical>This is the STANDARD format that BMAD installer uses</critical>
Create module-installer/install-config.yaml:
```yaml
# {{module_name}} Module Configuration
# This file defines installation questions and module configuration values
code: {{module_code}}
name: "{{module_name}}"
default_selected: false # Set to true if this should be selected by default
# Welcome message shown during installation
prompt:
- "Thank you for choosing {{module_name}}!"
- "{{brief_module_description}}"
# Core config values are automatically inherited:
## user_name
## communication_language
## document_output_language
## output_folder
# ============================================================================
# CONFIGURATION FIELDS (from step 4 planning)
# ============================================================================
# Each field can be:
# 1. INTERACTIVE (has 'prompt' - asks user during installation)
# 2. STATIC (no 'prompt' - just uses 'result' value)
# ============================================================================
# EXAMPLE Interactive text input:
# output_path:
# prompt: "Where should {{module_code}} save outputs?"
# default: "output/{{module_code}}"
# result: "{project-root}/{value}"
# EXAMPLE Interactive single-select:
# detail_level:
# prompt: "How detailed should outputs be?"
# default: "standard"
# result: "{value}"
# single-select:
# - value: "minimal"
# label: "Minimal - Brief summaries only"
# - value: "standard"
# label: "Standard - Balanced detail"
# - value: "detailed"
# label: "Detailed - Comprehensive information"
# EXAMPLE Static value:
# module_version:
# result: "1.0.0"
# EXAMPLE Static path:
# data_path:
# result: "{project-root}/{bmad_folder}/{{module_code}}/data"
{{generated_config_fields_from_step_4}}
```
<critical>Save location:</critical>
- Save to {{module_path}}/module-installer/install-config.yaml
<ask>Does your module need custom installation logic (database setup, API registration, etc.)?</ask>
<check if="yes, create installer.js">
```javascript
// {{module_name}} Module Installer
// Custom installation logic
- @param {Object} options - Installation options
- @param {string} options.projectRoot - Project root directory
- @param {Object} options.config - Module configuration from install-config.yaml
- @param {Array} options.installedIDEs - List of IDE codes being configured
- @param {Object} options.logger - Logger instance (log, warn, error methods)
- @returns {boolean} - true if successful, false to abort installation
async function install(options) {
const { projectRoot, config, installedIDEs, logger } = options;
logger.log('Running {{module_name}} custom installer...');
// TODO: Add custom installation logic here
// Examples:
// - Create database tables
// - Download external assets
// - Configure API connections
// - Initialize data files
// - Set up webhooks or integrations
logger.log('{{module_name}} custom installation complete!');
return true;
}
module.exports = { install };
`````
<critical>Save location:</critical>
- Save to {{module_path}}/module-installer/installer.js
</check>
<check if="no">
<action>Skip installer.js creation - the standard installer will handle everything</action>
</check>
<template-output>installer_config</template-output>
</step>
<step n="8" goal="Create module documentation">
Generate comprehensive README.md:
````markdown
# {{module_name}}
{{module_purpose}}
## Overview
This module provides:
{{component_summary}}
## Installation
```bash
bmad install {{module_code}}
`````
````
## Components
### Agents ({{agent_count}})
{{agent_documentation}}
### Workflows ({{workflow_count}})
{{workflow_documentation}}
### Tasks ({{task_count}})
{{task_documentation}}
## Quick Start
1. **Load the main agent:**
```
agent {{primary_agent}}
```
2. **View available commands:**
```
*help
```
3. **Run the main workflow:**
```
workflow {{primary_workflow}}
```
## Module Structure
```
{{directory_tree}}
```
## Configuration
The module can be configured in `{bmad_folder}/{{module_code}}/config.yaml`
Key settings:
{{configuration_options}}
## Examples
### Example 1: {{example_use_case}}
{{example_walkthrough}}
## Development Roadmap
- [ ] {{roadmap_item_1}}
- [ ] {{roadmap_item_2}}
- [ ] {{roadmap_item_3}}
## Contributing
To extend this module:
1. Add new agents using `create-agent` workflow
2. Add new workflows using `create-workflow` workflow
3. Submit improvements via pull request
## Author
Created by {{user_name}} on {{date}}
````
<template-output>module_readme</template-output>
</step>
<step n="9" goal="Generate component roadmap">
Create a development roadmap for remaining components:
**TODO.md file:**
```markdown
# {{module_name}} Development Roadmap
## Phase 1: Core Components
{{phase1_tasks}}
## Phase 2: Enhanced Features
{{phase2_tasks}}
## Phase 3: Polish and Integration
{{phase3_tasks}}
## Quick Commands
Create new agent:
```
workflow create-agent
```
Create new workflow:
```
workflow create-workflow
```
## Notes
{{development_notes}}
```
Ask if user wants to:
1. Continue building more components now
2. Save roadmap for later development
3. Test what's been built so far
<template-output>development_roadmap</template-output>
</step>
<step n="10" goal="Validate and finalize module">
<action>Run validation checks:</action>
**Structure validation:**
- All required directories created
- Config files properly formatted
- Installer configuration valid
**Component validation:**
- At least one agent or workflow exists (or planned)
- All references use correct paths
- Module code consistent throughout
**Documentation validation:**
- README.md complete
- Installation instructions clear
- Examples provided
<action>Present summary to {user_name}:</action>
- Module name and code
- Location path
- Agent count (created vs planned)
- Workflow count (created vs planned)
- Task count
- Installer status
<action>Provide next steps guidance:</action>
1. Complete remaining components using roadmap
2. Run the BMAD Method installer to this project location
3. Select 'Compile Agents' option after confirming folder
4. Module will be compiled and available for use
5. Test with bmad install command
6. Share or integrate with existing system
<ask>Would you like to:
- Create another component now?
- Test the module installation?
- Exit and continue later?
</ask>
<template-output>module_summary</template-output>
</step>
</workflow>

View File

@ -1,400 +0,0 @@
# BMAD Module Structure Guide
## What is a Module?
A BMAD module is a self-contained package of agents, workflows, tasks, and resources that work together to provide specialized functionality. Think of it as an expansion pack for the BMAD Method.
## Module Architecture
### Core Structure
```
# SOURCE MODULE (in BMAD-METHOD project)
src/modules/{module-code}/
├── agents/ # Agent definitions (.agent.yaml)
├── workflows/ # Workflow folders
├── tasks/ # Task files
├── tools/ # Tool files
├── templates/ # Shared templates
├── data/ # Static data
├── _module-installer/ # Installation configuration
│ ├── install-config.yaml # Installation questions & config
│ ├── installer.js # Optional custom install logic
│ └── assets/ # Files to copy during install
└── README.md # Module documentation
# INSTALLED MODULE (in target project)
{project-root}/{bmad_folder}/{module-code}/
├── agents/ # Compiled agent files (.md)
├── workflows/ # Workflow instances
├── tasks/ # Task files
├── tools/ # Tool files
├── templates/ # Templates
├── data/ # Module data
├── config.yaml # Generated from install-config.yaml
└── README.md # Module documentation
```
## Module Types by Complexity
### Simple Module (1-2 agents, 2-3 workflows)
Perfect for focused, single-purpose tools.
**Example: Code Review Module**
- 1 Reviewer Agent
- 2 Workflows: quick-review, deep-review
- Clear, narrow scope
### Standard Module (3-5 agents, 5-10 workflows)
Comprehensive solution for a domain.
**Example: Project Management Module**
- PM Agent, Scrum Master Agent, Analyst Agent
- Workflows: sprint-planning, retrospective, roadmap, user-stories
- Integrated component ecosystem
### Complex Module (5+ agents, 10+ workflows)
Full platform or framework.
**Example: RPG Toolkit Module**
- DM Agent, NPC Agent, Monster Agent, Loot Agent, Map Agent
- 15+ workflows for every aspect of game management
- Multiple interconnected systems
## Module Naming Conventions
### Module Code (kebab-case)
- `data-viz` - Data Visualization
- `team-collab` - Team Collaboration
- `rpg-toolkit` - RPG Toolkit
- `legal-assist` - Legal Assistant
### Module Name (Title Case)
- "Data Visualization Suite"
- "Team Collaboration Platform"
- "RPG Game Master Toolkit"
- "Legal Document Assistant"
## Component Guidelines
### Agents per Module
**Recommended Distribution:**
- **Primary Agent (1)**: The main interface/orchestrator
- **Specialist Agents (2-4)**: Domain-specific experts
- **Utility Agents (0-2)**: Helper/support functions
**Anti-patterns to Avoid:**
- Too many overlapping agents
- Agents that could be combined
- Agents without clear purpose
### Workflows per Module
**Categories:**
- **Core Workflows (2-3)**: Essential functionality
- **Feature Workflows (3-5)**: Specific capabilities
- **Utility Workflows (2-3)**: Supporting operations
- **Admin Workflows (0-2)**: Maintenance/config
**Workflow Complexity Guide:**
- Simple: 3-5 steps, single output
- Standard: 5-10 steps, multiple outputs
- Complex: 10+ steps, conditional logic, sub-workflows
### Tasks per Module
Tasks should be used for:
- Single-operation utilities
- Shared subroutines
- Quick actions that don't warrant workflows
## Module Dependencies
### Internal Dependencies
- Agents can reference module workflows
- Workflows can invoke module tasks
- Tasks can use module templates
### External Dependencies
- Reference other modules via full paths
- Declare dependencies in config.yaml
- Version compatibility notes
### Workflow Vendoring (Advanced)
For modules that need workflows from other modules but want to remain standalone, use **workflow vendoring**:
**In Agent YAML:**
```yaml
menu:
- trigger: command-name
workflow: '{project-root}/{bmad_folder}/SOURCE_MODULE/workflows/path/workflow.yaml'
workflow-install: '{project-root}/{bmad_folder}/THIS_MODULE/workflows/vendored/workflow.yaml'
description: 'Command description'
```
**What Happens:**
- During installation, workflows are copied from `workflow` to `workflow-install` location
- Vendored workflows get `config_source` updated to reference this module's config
- Compiled agent only references the `workflow-install` path
- Module becomes fully standalone - no source module dependency required
**Use Cases:**
- Specialized modules that reuse common workflows with different configs
- Domain-specific adaptations (e.g., game dev using standard dev workflows)
- Testing workflows in isolation
**Benefits:**
- Module independence (no forced dependencies)
- Clean namespace (workflows in your module)
- Config isolation (use your module's settings)
- Customization ready (modify vendored workflows freely)
## Installation Infrastructure
### Required: module-installer/install-config.yaml
This file defines both installation questions AND static configuration values:
```yaml
# Module metadata
code: module-code
name: 'Module Name'
default_selected: false
# Welcome message during installation
prompt:
- 'Welcome to Module Name!'
- 'Brief description here'
# Core values automatically inherited from installer:
## user_name
## communication_language
## document_output_language
## output_folder
# INTERACTIVE fields (ask user during install)
output_location:
prompt: 'Where should module outputs be saved?'
default: 'output/module-code'
result: '{project-root}/{value}'
feature_level:
prompt: 'Which feature set?'
default: 'standard'
result: '{value}'
single-select:
- value: 'basic'
label: 'Basic - Core features only'
- value: 'standard'
label: 'Standard - Recommended features'
- value: 'advanced'
label: 'Advanced - All features'
# STATIC fields (no prompt, just hardcoded values)
module_version:
result: '1.0.0'
data_path:
result: '{project-root}/{bmad_folder}/module-code/data'
```
**Key Points:**
- File is named `install-config.yaml` (NOT install-config.yaml)
- Supports both interactive prompts and static values
- `result` field uses placeholders: `{value}`, `{project-root}`, `{directory_name}`
- Installer generates final `config.yaml` from this template
### Optional: module-installer/installer.js
For complex installations requiring custom logic:
```javascript
/**
* @param {Object} options - Installation options
* @param {string} options.projectRoot - Target project directory
* @param {Object} options.config - Config from install-config.yaml
* @param {Array} options.installedIDEs - IDEs being configured
* @param {Object} options.logger - Logger (log, warn, error)
* @returns {boolean} - true if successful
*/
async function install(options) {
// Custom installation logic here
// - Database setup
// - API configuration
// - External downloads
// - Integration setup
return true;
}
module.exports = { install };
```
### Optional: module-installer/assets/
Files to copy during installation:
- External configurations
- Documentation
- Example files
- Integration scripts
## Module Lifecycle
### Development Phases
1. **Planning Phase**
- Define scope and purpose
- Identify components
- Design architecture
2. **Scaffolding Phase**
- Create directory structure
- Generate configurations
- Setup installer
3. **Building Phase**
- Create agents incrementally
- Build workflows progressively
- Add tasks as needed
4. **Testing Phase**
- Test individual components
- Verify integration
- Validate installation
5. **Deployment Phase**
- Package module
- Document usage
- Distribute/share
## Best Practices
### Module Cohesion
- All components should relate to module theme
- Clear boundaries between modules
- No feature creep
### Progressive Enhancement
- Start with MVP (1 agent, 2 workflows)
- Add components based on usage
- Refactor as patterns emerge
### Documentation Standards
- Every module needs README.md
- Each agent needs purpose statement
- Workflows need clear descriptions
- Include examples and quickstart
### Naming Consistency
- Use module code prefix for uniqueness
- Consistent naming patterns within module
- Clear, descriptive names
## Example Modules
### Example 1: Personal Productivity
```
productivity/
├── agents/
│ ├── task-manager.md # GTD methodology
│ └── focus-coach.md # Pomodoro timer
├── workflows/
│ ├── daily-planning/ # Morning routine
│ ├── weekly-review/ # Week retrospective
│ └── project-setup/ # New project init
└── config.yaml
```
### Example 2: Content Creation
```
content/
├── agents/
│ ├── writer.md # Blog/article writer
│ ├── editor.md # Copy editor
│ └── seo-optimizer.md # SEO specialist
├── workflows/
│ ├── blog-post/ # Full blog creation
│ ├── social-media/ # Social content
│ ├── email-campaign/ # Email sequence
│ └── content-calendar/ # Planning
└── templates/
├── blog-template.md
└── email-template.md
```
### Example 3: DevOps Automation
```
devops/
├── agents/
│ ├── deploy-master.md # Deployment orchestrator
│ ├── monitor.md # System monitoring
│ ├── incident-responder.md # Incident management
│ └── infra-architect.md # Infrastructure design
├── workflows/
│ ├── ci-cd-setup/ # Pipeline creation
│ ├── deploy-app/ # Application deployment
│ ├── rollback/ # Emergency rollback
│ ├── health-check/ # System verification
│ └── incident-response/ # Incident handling
├── tasks/
│ ├── check-status.md # Quick status check
│ └── notify-team.md # Team notifications
└── data/
└── runbooks/ # Operational guides
```
## Module Evolution Pattern
```
Simple Module → Standard Module → Complex Module → Module Suite
(MVP) (Enhanced) (Complete) (Ecosystem)
```
## Common Pitfalls
1. **Over-engineering**: Starting too complex
2. **Under-planning**: No clear architecture
3. **Poor boundaries**: Module does too much
4. **Weak integration**: Components don't work together
5. **Missing docs**: No clear usage guide
## Success Metrics
A well-designed module has:
- ✅ Clear, focused purpose
- ✅ Cohesive components
- ✅ Smooth installation
- ✅ Comprehensive docs
- ✅ Room for growth
- ✅ Happy users!

View File

@ -1,52 +0,0 @@
# Build Module Workflow Configuration
name: create-module
description: "Interactive workflow to build complete BMAD modules with agents, workflows, tasks, and installation infrastructure"
author: "BMad"
# Critical variables load from config_source
config_source: "{project-root}/{bmad_folder}/bmb/config.yaml"
custom_module_location: "{config_source}:custom_module_location"
communication_language: "{config_source}:communication_language"
user_name: "{config_source}:user_name"
# Reference guides for module building
module_structure_guide: "{installed_path}/module-structure.md"
installer_templates: "{installed_path}/installer-templates/"
# Use existing build workflows
agent_builder: "{project-root}/{bmad_folder}/bmb/workflows/create-agent/workflow.yaml"
workflow_builder: "{project-root}/{bmad_folder}/bmb/workflows/create-workflow/workflow.yaml"
brainstorming_workflow: "{project-root}/{bmad_folder}/core/workflows/brainstorming/workflow.yaml"
brainstorming_context: "{installed_path}/brainstorm-context.md"
# Reference examples - for learning patterns
bmm_module_dir: "{project-root}/{bmad_folder}/bmm/"
cis_module_dir: "{project-root}/{bmad_folder}/cis/"
existing_agents_dir: "{project-root}/{bmad_folder}/*/agents/"
existing_workflows_dir: "{project-root}/{bmad_folder}/*/workflows/"
# Optional user inputs - discovered if they exist
input_file_patterns:
module_brief:
description: "Module brief with vision and requirements (optional)"
whole: "{output_folder}/module-brief-*.md"
load_strategy: "FULL_LOAD"
brainstorming:
description: "Brainstorming session outputs (optional)"
whole: "{output_folder}/brainstorming-*.md"
load_strategy: "FULL_LOAD"
# Module path and component files
installed_path: "{project-root}/{bmad_folder}/bmb/workflows/create-module"
template: false # This is an interactive scaffolding workflow
instructions: "{installed_path}/instructions.md"
validation: "{installed_path}/checklist.md"
# Output configuration - creates entire module structure
# Save to custom_module_location/{{module_code}}
installer_output_folder: "{custom_module_location}/{{module_code}}"
standalone: true
# Web bundle configuration
web_bundle: false # BMB workflows run locally in BMAD-METHOD project

View File

@ -24,7 +24,6 @@ Use this checklist to validate module edits meet BMAD Core standards.
### Optional Fields (if used)
- [ ] custom_agent_location documented
- [ ] custom_module_location documented
- [ ] Module-specific fields documented in README

View File

@ -2,12 +2,24 @@
## Installation
```bash
# Quick install (interactive)
npx bmad-method agent-install --source ./{agent_filename}.agent.yaml
Create a `custom.yaml` file in the agent folder:
# Quick install (non-interactive)
npx bmad-method agent-install --source ./{agent_filename}.agent.yaml --defaults
```yaml
code: { agent_code }
name: '{agent_name}'
default_selected: true
```
Then run:
```bash
npx bmad-method install
```
Or if you have bmad-cli installed globally:
```bash
bmad install
```
## About This Agent

View File

@ -51,7 +51,7 @@ menu:
# Direct sidecar file action
- trigger: 'insight'
action: 'Document this breakthrough in {agent-folder}/journal-keeper-sidecar/breakthroughs.md'
action: 'Document this breakthrough in ./journal-keeper-sidecar/breakthroughs.md'
description: 'Record a meaningful insight'
```
@ -63,9 +63,9 @@ Expert Agents MUST load sidecar files explicitly:
```yaml
critical_actions:
- 'Load COMPLETE file {agent-folder}/journal-keeper-sidecar/memories.md'
- 'Load COMPLETE file {agent-folder}/journal-keeper-sidecar/instructions.md'
- 'ONLY read/write files in {agent-folder}/journal-keeper-sidecar/'
- 'Load COMPLETE file ./journal-keeper-sidecar/memories.md'
- 'Load COMPLETE file ./journal-keeper-sidecar/instructions.md'
- 'ONLY read/write files in ./journal-keeper-sidecar/'
```
**Key points:**

Some files were not shown because too many files have changed in this diff Show More