Compare commits

...

218 Commits

Author SHA1 Message Date
Brian Madison
1a52a19978 chore: bump version to 6.0.0-alpha.9 2025-11-12 22:59:52 -06:00
Brian Madison
6d14147c26 docs: add comprehensive changelog for v6.0.0-alpha.9 release
- Document workflow engine revolution with intelligent file discovery protocol
- Highlight track-based project system replacing Level 0-4 terminology
- Detail unified folder structure and ephemeral folder removal
- Include migration notes for users upgrading from alpha.8
- Emphasize sprint-artifacts location changes and backward compatibility
2025-11-12 22:59:07 -06:00
Brian Madison
15a94a94b6 accept a story status of review or ready-for-review, treat them the same. 2025-11-12 22:46:48 -06:00
Brian Madison
b63bf9d067 installer update to quick install and agent rebuild 2025-11-12 22:40:45 -06:00
Brian Madison
8f57effda4 clean up of hardcoded stale configurable paths 2025-11-12 20:46:47 -06:00
Brian Madison
1868477238 refactor(config): replace hardcoded .bmad paths with {bmad_folder} placeholder
Remove hardcoded .bmad folder references throughout documentation and source files, replacing them with the configurable {bmad_folder} placeholder. This change enables users to customize the BMAD installation folder name via configuration, improving flexibility and reducing coupling to a specific directory structure.

Changes include:
- Update all documentation to reference {bmad_folder} instead of .bmad
- Remove legacy configuration files from .bmad and .claude directories
- Update workflow.xml and CLI documentation with new placeholder syntax
2025-11-12 20:22:47 -06:00
Brian Madison
48cf5c8056 feat(workflows): Implement intelligent file discovery protocol and Phase 4 BMGD workflows
## Core Workflow Engine Enhancements

### discover_inputs Protocol (MAJOR)
- Added reusable `discover_inputs` protocol to workflow.xml for intelligent file loading
- Supports three loading strategies:
  - FULL_LOAD: Load all shards for PRD, Architecture, UX (changed pattern from /index.md to /*/*.md)
  - SELECTIVE_LOAD: Load specific shard via template variable (e.g., epic-{{epic_num}}.md)
  - INDEX_GUIDED: Load index, analyze TOC, intelligently load relevant docs (with "DO NOT BE LAZY" mandate)
- Auto-discovers whole vs sharded documents with proper fallback
- Provides transparent reporting of loaded content with file counts
- Invoked via <invoke-protocol name="discover_inputs" /> tag in workflow instructions

### Advanced Elicitation Improvements
- Renamed adv-elicit.xml to advanced-elicitation.xml for clarity
- Updated all references across agents and commands

### Shard Document Tool Enhancement
- Added Step 6: Handle Original Document with three options:
  - [d] Delete - Remove original (recommended, prevents confusion)
  - [m] Move to archive - Backup original to archive folder
  - [k] Keep - Warning about defeating sharding purpose
- Prevents issue where both whole and sharded versions exist, confusing discover_inputs protocol

## BMM Module - Input File Pattern Standardization

### Phase 1 - Analysis (1 workflow)
- product-brief: Added load_strategy (FULL_LOAD for research/brainstorming, INDEX_GUIDED for document_project)
- Updated instructions.md to use invoke-protocol, replaced manual fuzzy matching

### Phase 2 - Planning (4 workflows)
- prd: Added load_strategy, updated instructions to reference {product_brief_content}, {research_content}
- create-ux-design: Added load_strategy, removed fuzzy matching from instructions
- tech-spec: Added load_strategy for brownfield context discovery
- All epics patterns updated to support SELECTIVE_LOAD for specific epic shards

### Phase 3 - Solutioning (2 workflows)
- architecture: Added load_strategy, updated instructions to use pre-loaded {prd_content}, {epics_content}, {ux_design_content}
- solutioning-gate-check: Added load_strategy, replaced manual discovery with protocol invocation

### Phase 4 - Implementation (8 workflows)
- code-review: Added load_strategy, fixed sharded patterns to /*/*.md, added step 1.5 for protocol
- correct-course: Added complete input_file_patterns section (was missing), added step 0.5
- create-story: Added load_strategy, updated to SELECTIVE_LOAD for epics, added step 1.5
- dev-story: Added complete input_file_patterns section (was missing), added step 0.5
- epic-tech-context: Added load_strategy, updated PRD extraction to use {prd_content}, added step 1.5
- retrospective: Added load_strategy for architecture/prd (FULL_LOAD), epics (SELECTIVE_LOAD), added step 0.5
- sprint-planning: Fixed sharded pattern to load ALL epics (/*/*.md), added step 0.5
- story-context: Added load_strategy, updated doc collection to reference pre-loaded content, added step 1.5

### Sprint Artifacts Path Corrections
- story-done: Added missing sprint_artifacts variable, fixed sprint_status path from {context_dir} to {sprint_artifacts}
- story-ready: Added missing sprint_artifacts variable
- story-context: Fixed undefined {context_dir} -> {sprint_artifacts}
- correct-course: Added sprint_artifacts and sprint_status variables

## BMGD Module - Phase 4 Production Workflows (NEW)

Added complete Phase 4 implementation workflows for game development:
- code-review: Senior developer review for completed game features
- correct-course: Sprint change management for game projects
- create-story: Story generation for game mechanics/features
- dev-story: Feature implementation workflow
- epic-tech-context: Technical spec generation per game epic
- retrospective: Epic completion review and lessons learned
- sprint-planning: Game development sprint status tracking
- story-context: Dynamic context assembly for game stories
- story-done: Story completion workflow
- story-ready: Story readiness workflow

All BMGD workflows follow BMM patterns with game-specific adaptations.

## Agent Updates

### BMM Agents
- Updated all 7 BMM agents (analyst, architect, dev, pm, sm, tea, tech-writer, ux-designer)
- Standardized web bundle configurations

### BMGD Agents
- Updated 4 game development agents (game-architect, game-designer, game-dev, game-scrum-master)
- Aligned with BMM agent structure

### CIS Agents
- Updated 5 creative intelligence agents for consistency

## Documentation & Configuration

- Updated CHANGELOG.md with Phase 4 workflow additions
- Updated files-manifest.csv and task-manifest.csv
- Updated .claude commands for all agents
- Fixed formatting issues from previous commits

## Breaking Changes

NONE - All changes are backward compatible. Workflows without input_file_patterns continue to work.
Workflows with input_file_patterns now benefit from intelligent auto-loading.

## Migration Notes

Existing workflows can gradually adopt discover_inputs protocol by:
1. Adding load_strategy to existing input_file_patterns in workflow.yaml
2. Adding <invoke-protocol name="discover_inputs" /> step in instructions.md
3. Replacing manual file loading with references to {pattern_name_content} variables
2025-11-12 19:18:38 -06:00
Brian Madison
8f7d259c81 remaining bad character removal 2025-11-11 20:10:33 -06:00
Brian Madison
74f54a088a removed some bad formatting that was injected previously 2025-11-11 17:30:43 -06:00
Brian Madison
4d745532aa refactor(tech-spec): unify story generation and adopt intent-based approach
Major refactoring of tech-spec workflow for quick-flow projects:

## Unified Story Generation
- Consolidated instructions-level0-story.md and instructions-level1-stories.md into single instructions-generate-stories.md
- Always generates epic + stories (minimal epic for 1 story, detailed for multiple)
- Consistent naming: story-{epic-slug}-N.md for all stories (1-5)
- Eliminated branching logic and duplicate code

## Intent-Based Intelligence
- Removed 150+ lines of hardcoded stack detection examples (Node.js, Python, Ruby, Java, Go, Rust, PHP)
- Replaced prescriptive instructions with intelligent guidance that trusts LLM capabilities
- PHASE 2 stack detection now adapts to ANY project type automatically
- Step 2 discovery changed from scripted Q&A to adaptive conversation goals

## Terminology Updates
- Replaced "Level 0" and "Level 1" with "quick-flow" terminology throughout
- Updated to "single story" vs "multiple stories (2-5)" language
- Consistent modern terminology across all files

## Variable and Structure Improvements
- Fixed variable references: now uses {instructions_generate_stories} instead of hardcoded paths
- Updated workflow.yaml with cleaner variable structure
- Removed unused variables (project_level, development_context)
- Added story_count and epic_slug runtime variables

## Files Changed
- Deleted: instructions-level0-story.md (7,259 bytes)
- Deleted: instructions-level1-stories.md (16,274 bytes)
- Created: instructions-generate-stories.md (13,109 bytes)
- Updated: instructions.md (reduced from 35,028 to 32,006 bytes)
- Updated: workflow.yaml, checklist.md

## Impact
- 50% fewer workflow files (3 → 1 for story generation)
- More adaptable to any tech stack
- Clearer, more maintainable code
- Better developer and user experience
- Trusts modern LLM intelligence instead of constraining with examples
2025-11-11 17:30:43 -06:00
Brian Madison
2d99833b9e feat: Add documentation guides, simplify folder structure, and major workflow refactoring
Created two comprehensive guides for v6 features:

**docs/agent-customization-guide.md**
- Complete guide for customizing agent names, personas, memories, and behaviors
- Update-safe customization via bmad/_cfg/agents/ configuration files
- Real-world examples (TDD setup, multilingual agents, custom workflows)
- Troubleshooting and best practices

**docs/web-bundles-gemini-gpt-guide.md**
- Comprehensive guide for using BMad agents in Gemini Gems and Custom GPTs
- Critical setup rules with exact configuration text required
- Cost-saving strategy: web planning → local implementation (60-80% savings)
- Platform comparison (Gemini Gems strongly recommended over Custom GPTs)
- Complete workflow examples showing full planning-to-implementation cycle
- Team bundle guidance (Gemini 2.5 Pro+ only)

**README.md updates**
- Added prominent links in v6 Core Enhancements section
- Created new "Customization & Sharing" documentation category
- Web Bundles feature highlighted with direct guide link

**Unified output folder structure across all modules:**

**Before (confusing):**
- output_folder: Main docs
- game_design_docs: Separate design folder
- tech_docs: Separate technical folder
- dev_ephemeral_location: Separate ephemeral folder outside docs

**After (simplified):**
- output_folder: Single location for ALL AI-generated artifacts (default: "docs")
  - Clearer prompt: "Where should AI Generated Artifacts be saved?"
- sprint_artifacts: Phase 4 ephemeral content now WITHIN output_folder
  - BMM: {output_folder}/stories (stories, context, reports)
  - BMGD: {output_folder}/sprint-artifacts
  - No longer in separate {bmad_folder}-ephemeral location

**Benefits:**
- One clear location for all planning artifacts (PRD, Architecture, UX, etc.)
- Phase 4 ephemeral items logically grouped within output folder
- Eliminated confusing separate folder proliferation
- sprint_artifacts now configurable per module

**Files changed:**
- src/core/_module-installer/install-config.yaml
- src/modules/bmm/_module-installer/install-config.yaml
- src/modules/bmgd/_module-installer/install-config.yaml

**Also cleaned up BMGD config:**
- Renamed: specified_framework → primary_platform (clearer naming)
- Removed: unused data_path variable

Replaced old "project_level" (0-4) system with new "selected_track" terminology:
- **quick-flow**: Bug fixes and small features (replaces Level 0-1)
- **bmad-method**: Full planning track (replaces Level 2-3)
- **enterprise-bmad-method**: Extended planning (replaces Level 4)

**Core workflow updates:**
- solutioning-gate-check: Complete rewrite of validation logic for track-based artifacts
- architecture: Updated context detection, error handling, and messaging for tracks
- workflow-init: Updated artifact detection patterns for track-based paths
- All workflow status paths updated (method-greenfield, method-brownfield, enterprise-*)

Unified variable naming conventions across all workflows:
- {output_folder} → {output-folder} (hyphenated format)
- {dev_ephemeral_location} → {sprint_artifacts} (clearer purpose)
- Hardcoded status file paths → {workflow_status_file} variable

Fixed corrupted variable patterns throughout workflow files:
- {output*folder} → {output-folder}
- {ephemeral*location} → {sprint_artifacts}
- \_prd* → *prd* (escaped underscore artifacts)
- **\*\***\_\_\_**\*\*** → proper field placeholders

Affected patterns included malformed glob patterns, template variables, and markdown formatting artifacts from previous edits.

**Architecture workflow (create-architecture):**
- Fixed: "Decision Architecture" → "Create Architecture" (consistent naming)
- Improved PRD not found handling with exit/continue options
- Better user guidance when running standalone vs. within workflow path
- Removed hardcoded Level checks, now track-aware
- Enhanced validation checklist formatting (□ → - [])
- Typo fixes: "mulitple" → "multiple"

**Solutioning gate check:**
- Complete validation logic rewrite for track-based system
- Removed Level-specific artifact expectations
- Simplified document discovery (track determines what exists)
- Better analysis prompts and user feedback

**Workflow-init:**
- Updated artifact detection patterns for new folder structure
- Fixed corrupt glob patterns throughout
- Better sprint_artifacts location detection
- Improved workflow path assignment logic

**Various workflows:**
- Consistent variable naming across 40+ workflow files
- Improved error messages and user guidance
- Better markdown formatting (checkboxes, lists)
- Removed redundant validation criteria files (now inline)

Removed duplicate BMGD 4-production workflows (12 workflows):
- code-review, correct-course, create-story, dev-story
- epic-tech-context, retrospective, sprint-planning
- story-context, story-done, story-ready

**Why:** BMGD now uses shared BMM Phase 4 implementation workflows
**Benefit:** Single source of truth, no duplication to maintain

Also removed:
- validation-criteria.yaml (validation now inline in instructions)
- architecture-patterns.yaml references (patterns now managed differently)
- AUDIT-REPORT.md files (stale audit artifacts)

**BMB workflows:**
- Updated checklists for workflow and module creation
- Improved agent architecture documentation
- Minor instruction clarifications

**Core brainstorming workflow:**
- Updated README with usage examples
- Enhanced instructions and template clarity
- Better integration with other modules

**BMM installer:**
- Updated for track-based system
- sprint_artifacts configuration

**Tech Writer agent:**
- Minor configuration update for documentation workflows

Removed 200+ files that should not be in repository:
- Installed agent markdown files (analyst, architect, dev, pm, sm, tea, etc.)
- Complete workflow instruction copies
- Documentation duplicates (quick-start, agents-guide, workflows-*)
- Test architecture knowledge base (22 files, 14,000+ lines)
- Configuration files (config.yaml, team definitions)

These are generated during installation and should not be version controlled.

Removed 21 pre-generated XML bundles:
- BMM agents (analyst, architect, dev, pm, sm, tea, tech-writer, ux-designer)
- BMGD agents (game-architect, game-designer, game-dev, game-scrum-master)
- CIS agents (brainstorming-coach, creative-problem-solver, etc.)
- Team bundles (team-fullstack, team-gamedev, creative-squad)

**Why:** Users should generate fresh bundles via `npm run bundle` to get latest changes and customizations.

- **2 new documentation files** (comprehensive guides)
- **98 source files modified** (299 insertions, 6,567 deletions)
- **3 installer config files simplified** (major folder structure improvement)
- **200+ .bmad/ artifacts removed** (should not be in repo)
- **21 web-bundle files removed** (users regenerate as needed)
- **12 duplicate workflows removed** (BMGD consolidation)
- **40+ workflows updated** (track system, variable standardization, corruption fixes)
2025-11-11 17:30:43 -06:00
Murat K Ozcan
280652566c chore: fixed directory browsing + zip Downloads (#902)
Co-authored-by: Murat Ozcan <murat@mac.lan>
2025-11-11 16:48:03 -06:00
Murat K Ozcan
2ae99135a2 chore: fix bundle urls (#901)
Co-authored-by: Murat Ozcan <murat@mac.lan>
2025-11-11 16:37:03 -06:00
Murat K Ozcan
449b5b3d29 chore: github pages for web bundle (#898)
* chore: github pages for web bundle

* docs: updated Bundle distribution setup

* chore: addressed PR comments

---------

Co-authored-by: Murat Ozcan <murat@mac.lan>
2025-11-11 13:35:30 -06:00
Murat K Ozcan
487d1582a0 feat: test design for architecture level (phase 3) (#897)
* feat: test design for architecture level (phase 3)

* addressed review comments

---------

Co-authored-by: Murat Ozcan <murat@Murats-MacBook-Pro.local>
Co-authored-by: Murat Ozcan <murat@mac.lan>
2025-11-11 10:03:00 -06:00
Brian Madison
03fbd2ae24 Release v6.0.0-alpha.8
## Installation Path Enhancements
- **Configurable Installation Directory**: Users can now specify custom installation directories during setup
- **New Default Location**: Changed default installation to `.bmad` (hidden directory) for cleaner project organization
- **Ephemeral File Handling**: Updated phase 4 implementation to use ephemeral file locations for better artifact organization

## CLI & Agent Loading Improvements
- **Optimized Agent Loading**: CLI commands now load from installed agent files, eliminating duplication
- **Installer UX Improvements**: Enhanced installer interface with version display
- **VS Code Integration**: Updated settings for new `.bmad` directory structure

## Web Bundle Enhancements
- **Party Mode Support**: All web bundles (single agent and team) now include party mode for multi-agent collaboration
- **Advanced Elicitation**: Integrated advanced elicitation capabilities into standalone agents
- **Expanded Agent Bundles**: New web bundle outputs for all agents (analyst, architect, dev, pm, sm, tea, tech-writer, ux-designer, game-*, creative-squad)
- **Team Customization**: Added default-party.csv files to bmm, bmgd, and cis modules with customizable party configurations

## Phase 4 Workflow Updates (In Progress)
- **Artifact Separation**: Initiated separation of phase 4 implementation artifacts from documentation
- **Dedicated Artifact Path**: Phase 4 items (stories, code review, sprint plan, context files) moving to dedicated location outside docs folder
- **Updated Workflows**: Modified workflow.yaml files for code-review, sprint-planning, story-context, epic-tech-context, and retrospective workflows
- **Configuration Support**: Added installer questions for artifact path selection

## IDE Integration
- **Gemini TOML**: Improved with clear loading instructions using @ commands
- **Centralized Templates**: Agent launcher markdown files now use centralized critical indication templates
- **GitHub Copilot**: Updated tool names to match official VS Code documentation (November 2025)

## Bug Fixes
- Fixed duplicate manifest entries by deduplicating module lists using Set
- Cleaned up legacy bmad/, bmd/, and web-bundles directories
- Various improvements to phase 4 workflow artifact handling

## Additional Changes
- New agent and action command header models for standardization
- Enhanced web-bundle-activation-steps fragment
- Updated web-bundler.js to support new structure
- Improved party mode instructions and workflow orchestration
2025-11-09 23:24:25 -06:00
Brian Madison
665e140638 more updates to use ephemeral file location for phase 4 items 2025-11-09 23:17:29 -06:00
Brian Madison
f49a4731e7 agents now are not duplicated and isntead cli commmands load from installed agent files 2025-11-09 20:24:56 -06:00
Brian Madison
7eb52520fa Major Enhancements:
- Installation path is now fully configurable, allowing users to specify custom installation directories during setup
  - Default installation location changed to .bmad (hidden directory) for cleaner project root organization

    Web Bundle Improvements:

    - All web bundles (single agent and team) now include party mode support for multi-agent collaboration!
    - Advanced elicitation capabilities integrated into standalone agents
    - All bundles enhanced with party mode agent manifests
    - Added default-party.csv files to bmm, bmgd, and cis module teams
    - The default party file is what will be used with single agent bundles. teams can customize for different party configurations before web bundling through a setting in the team yaml file
    - New web bundle outputs for all agents (analyst, architect, dev, pm, sm, tea, tech-writer, ux-designer, game-*, creative-squad)

    Phase 4 Workflow Updates (In Progress):

    - Initiated shift to separate phase 4 implementation artifacts from documentation
        - Phase 4 implementation artifacts (stories, code review, sprint plan, context files) will move to dedicated location outside docs folder
        - Installer questions and configuration added for artifact path selection
        - Updated workflow.yaml files for code-review, sprint-planning, story-context, epic-tech-context, and retrospective workflows to support this, but still might require some udpates

    Additional Changes:

    - New agent and action command header models for standardization
    - Enhanced web-bundle-activation-steps fragment
    - Updated web-bundler.js to support new structure
    - VS Code settings updated for new .bmad directory
    - Party mode instructions and workflow enhanced for better orchestration

   IDE Installer Updates:

    - Show version number of installer in cli
    - improved Installer UX
    - Gemini TOML Improved to have clear loading instructions with @ commands
    - All tools agent launcher mds improved to use a central file template critical indication isntead of hardcoding in 2 different locations.
2025-11-09 17:39:05 -06:00
Brian Madison
fd2521ec69 customize installation folder for the bmad content 2025-11-08 15:19:19 -06:00
Brian Madison
1728acfb0f The install directory is now configurable, with a few minute issues 2025-11-08 13:58:43 -06:00
Brian Madison
a4bbfc4b6e fix: Prevent duplicate manifest entries and update GitHub Copilot tool names
- Deduplicate module lists in manifest generator using Set to prevent duplicate entries in installed manifests
- Update GitHub Copilot tool names to match official VS Code documentation (November 2025)
- Clean up legacy bmad/, bmd/, and web-bundles directories
2025-11-08 01:06:09 -06:00
Brian Madison
61955e8e96 release: bump to v6.0.0-alpha.7 2025-11-07 00:50:04 -06:00
Brian Madison
03d757292b fix: Add missing adv-elicit-methods.csv to workflow bundles
- Add adv-elicit-methods.csv dependency to all workflows using adv-elicit.xml
  - architecture workflow
  - prd workflow
  - tech-spec workflow
- Include BMM web bundles (8 agents + team-fullstack)
- Update v6 open items list

This fixes runtime failures when advanced elicitation is invoked in bundled
workflows by ensuring the 39 elicitation methods CSV is properly included.

Note: Web bundler still has optimizations and known issues to address in
upcoming commits.
2025-11-07 00:38:28 -06:00
Brian Madison
91302d9c7a claude and a few other ide tools installation fix to not add a readme file slash comand regression, and cleanup bmad folders in tools on install 2025-11-06 22:45:29 -06:00
Murat K Ozcan
1343859874 chore: CC PR review with GH token (#874)
* chore: CC PR review with GH token

* debug CC output

* turn off CC output

* turn off CC PR review

---------

Co-authored-by: Murat Ozcan <murat@mac.lan>
2025-11-06 13:05:36 -06:00
Brian Madison
8ed4a548ea web bundler improvements part 1 2025-11-05 23:54:04 -06:00
Brian Madison
80a04bfce3 fix: Remove menu items for workflows with web_bundle: false
Enhanced removeSkippedWorkflowCommands() to properly remove all menu item
formats that reference workflows with web_bundle: false:

1. <item> tags with workflow attribute
2. <item> tags with run-workflow attribute
3. <c> tags with run-workflow attribute (legacy)

This ensures that workflows not designed for web bundles (like workflow-status
which requires filesystem access) are completely excluded from web bundles,
including their menu items.

Verified:
- workflow-status menu item removed from SM agent
- workflow-status YAML not included in bundle dependencies
2025-11-05 21:33:59 -06:00
Brian Madison
9a37cbb7fc fix: Show positive message when no missing dependencies
Instead of displaying an empty "⚠ Missing Dependencies by Agent:" section
when all dependencies are resolved, now shows a positive message:
"✓ No missing dependencies"

This improves the user experience by providing clear feedback that workflow
vendoring successfully resolved all dependencies.
2025-11-05 21:10:18 -06:00
Brian Madison
281eac3373 feat: Add workflow vendoring to web bundler
The web bundler now performs workflow vendoring before bundling agents,
similar to the module installer. This ensures that workflows referenced
via workflow-install attributes are copied from their source locations
to their destination locations before the bundler attempts to resolve
and bundle them.

Changes:
- Added vendorCrossModuleWorkflows() method to WebBundler class
- Added updateWorkflowConfigSource() helper method
- Integrated vendoring into bundleAll(), bundleModule(), and bundleAgent()
- Workflows are vendored before agent discovery and bundling
- Config_source is updated in vendored workflows to reference target module

This fixes missing dependency warnings for BMGD agents that vendor
BMM workflows for Phase 4 (Production) workflows.
2025-11-05 21:05:08 -06:00
Brian Madison
f84e18760f feat: Extract BMGD module and implement workflow vendoring
This commit extracts game development functionality from BMM into a standalone
BMGD (BMad Game Development) module and implements workflow vendoring to enable
module independence.

BMGD Module Creation:
- Moved agents: game-designer, game-dev, game-architect from BMM to BMGD
- Moved team config: team-gamedev
- Created new Game Dev Scrum Master agent using workflow vendoring pattern
- Reorganized workflows into industry-standard game dev phases:
  * Phase 1 (Preproduction): brainstorm-game, game-brief
  * Phase 2 (Design): gdd, narrative
  * Phase 3 (Technical): game-architecture
  * Phase 4 (Production): vendored from BMM workflows
- Updated all module metadata and config_source references

Workflow Vendoring Feature:
- Enables modules to copy workflows from other modules during installation
- Build-time process that updates config_source in vendored workflows
- New agent YAML attribute: workflow-install (build-time metadata)
- Final compiled agents use workflow-install value for workflow attribute
- Implementation in module manager: vendorCrossModuleWorkflows()
- Allows standalone module installation without forced dependencies

Technical Changes:
- tools/cli/lib/yaml-xml-builder.js: Use workflow-install for workflow attribute
- tools/cli/installers/lib/modules/manager.js: Add vendoring functions
- tools/schema/agent.js: Add workflow-install to menu item schema
- Updated 3 documentation files with workflow vendoring details

BMM Workflow Updates:
- workflow-status/init: Added game detection checkpoint
- workflow-status/paths/game-design.yaml: Redirect to BMGD module
- prd/instructions.md: Route game projects to BMGD
- research/instructions-market.md: Reference BMGD for game development

Documentation:
- Created comprehensive BMGD module README
- Added workflow vendoring documentation
- Updated BMB agent creation and module creation guides
2025-11-05 20:44:22 -06:00
Murat K Ozcan
bc76d25be6 chore: added CC PR review (#871)
* chore: added CC PR review

* remove CLAUDE.md

---------

Co-authored-by: Murat Ozcan <murat@mac.lan>
2025-11-05 14:14:31 -06:00
Murat K Ozcan
c20ead1acb refactor: update TEA documentation to align with BMad 4-phase methodology (#870)
* refactor: update TEA documentation to align with BMad 4-phase methodology

* reafactor: address review comments

---------

Co-authored-by: Murat Ozcan <murat@mac.lan>
2025-11-05 13:37:51 -06:00
Brian Madison
6fa6ebab12 More document Updtes and diagram improvements 2025-11-05 07:52:08 -06:00
Brian Madison
412a7d1ed8 release: bump to v6.0.0-alpha.6
Bug Fixes:
- Fix manifestPath error in ide-config-manager causing installation failures
- Fix installer option display to show full labels instead of just values for single/multi-select
- Add conditional documentation installation - users can now opt out of installing docs

Improvements:
- Add install_user_docs configuration option (defaults to true)
- Improve config question display with descriptive labels for better UX
- Update CONTRIBUTING.md to remove references to non-existent 'next' branch

Maintenance:
- Closed 54 legacy v4 issues (older than 1 month) to maintain clean issue tracker
2025-11-04 22:28:28 -06:00
Brian Madison
f8ba15c6f8 installer doc install option for bmad method module - user can opt to not install all the docs to the destination installation path 2025-11-04 22:17:12 -06:00
Brian Madison
1f0dfe05e4 windows powershell install fix 2025-11-04 21:58:41 -06:00
Brian Madison
7552ee2e3b fix quick udpate status bug in installer 2025-11-04 21:16:52 -06:00
Serhii
c283344a54 fix: ensure POSIX-compliant newlines in generated files (#856)
- Add final newline check to YAML config generation
- Add final newline check to YAML manifest generation
- Add final newline check to agent .md file generation
- Ensures all text files end with \n per POSIX standard
- Fixes 'No newline at end of file' git warnings
2025-11-04 20:18:12 -06:00
Brian Madison
ba5f76c37d Doc cleanup and mermaid diagram drafts added 2025-11-04 15:02:19 -06:00
Murat K Ozcan
84ec72fb94 fix: tea-readme 3 (#855)
* fix: tea-readme 3

* fix: tea-readme 3

---------

Co-authored-by: Murat Ozcan <murat@mac.lan>
2025-11-04 10:31:36 -06:00
Brian Madison
ccd6cacd89 release: bump to v6.0.0-alpha.5 2025-11-04 00:15:34 -06:00
Brian Madison
accae5d789 refactor: comprehensive workflow modernization and standardization
## Major Improvements

### 1. Elicitation System Modernization
- Removed legacy `<elicit-required />` tag from workflow.xml
- Replaced with direct `<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>` pattern
- More explicit, self-documenting, and eliminates indirection layer
- Added strategic elicitation points across all planning workflows:
  - PRD: After success criteria, scope, functional requirements, and final review
  - Create-Epics-And-Stories: After epic proposals and each epic's stories
  - Architecture: After decisions, structure, patterns, implementation patterns, and final doc
  - Updated audit-workflow tag scanner to remove obsolete elicit-required reference

### 2. Input Document Discovery Streamlined
- Replaced verbose 19-line "Input Document Discovery" sections with single critical tag
- New format: `<critical>Input documents specified in workflow.yaml input_file_patterns...</critical>`
- Eliminates duplication - workflow.yaml already defines patterns
- Updated across 6 workflows (PRD, create-epics-and-stories, architecture, tech-spec, UX, gate-check)
- Saved ~114 lines of repeated bloat

### 3. Scale System Migration (Levels 0-4 → 3 Tracks)
- Updated PRD workflow from "Level 0-4" to "Quick Flow / BMad Method / Enterprise Method"
- Changed `project_level` variable to `project_track`
- Removed `target_scale` variable (no longer needed)
- Updated workflow.yaml descriptions to reference tracks not levels
- Updated checklist from "Level 2" and "Level 3-4" to "BMad Method" and "Enterprise Method"
- Aligns with new scale-adaptive-system.md (3-track methodology)

### 4. Epic/Story Template Standardization
- Replaced hardcoded 8-epic template with clean repeating pattern using N/M variables
- Added BDD-style acceptance criteria (Given/When/Then/And)
- Removed instructional bloat from templates (moved to instructions.md where it belongs)
- Template shows OUTPUT structure, instructions show PROCESS
- Applied to both create-epics-and-stories and tech-spec workflows
- Templates now use HTML comments to indicate repeating sections

### 5. Workflow.yaml Pattern Consistency
- Standardized input_file_patterns across all workflows
- Separated `recommended_inputs` (semantic WHAT) from `input_file_patterns` (file discovery WHERE)
- Removed duplication between recommended_inputs file paths and input_file_patterns
- Create-epics-and-stories now uses proper whole/sharded pattern like architecture workflow
- Solutioning-gate-check cleaned up to use semantic descriptions not file paths

## Files Changed (18)
- Core: workflow.xml (removed elicit-required tag and references)
- Audit workflow: Updated tag pattern scanner
- PRD workflow: Elicitation points, track migration, input discovery
- Create-epics-and-stories: Template rebuild, BDD format, elicitation, input patterns
- Tech-spec: Template rebuild, BDD format, input discovery
- UX Design: Input discovery streamlined
- Architecture: Elicitation at 5 key decision points, input discovery
- Gate-check: Input pattern cleanup, input discovery

## Impact
- More consistent elicitation across workflows
- Cleaner, more maintainable templates
- Better separation of concerns (templates vs instructions)
- Aligned with v6 3-track scale system
- Reduced bloat and duplication significantly
2025-11-04 00:09:19 -06:00
Brian Madison
c5117e5382 readme update 2025-11-03 21:46:49 -06:00
Brian Madison
e7d51739e4 update local install 2025-11-03 21:05:18 -06:00
Brian Madison
17f81a84f3 docs: comprehensive documentation accuracy overhaul and PM/UX evolution analysis
This commit represents a major documentation quality improvement, fixing critical inaccuracies and adding forward-looking guidance on the evolving role of PMs/UX in AI-driven development.

## Documentation Accuracy Fixes (Agent YAML as Source of Truth)

### Critical Corrections in agents-guide.md
- **Game Developer workflows**: Fixed incorrect workflow names (dev-story → develop-story, added story-done, removed non-existent create-story and retro)
- **Technical Writer naming**: Added agent name "Paige" to match all other agent naming patterns
- **Agent reference tables**: Updated to reflect actual agent capabilities from YAML configs
- **epic-tech-context ownership**: Corrected across all docs - belongs to SM agent, not Architect

### Critical Corrections in workflows-implementation.md
- **Line 16 + 75**: Fixed epic-tech-context agent from "Architect" → "SM" (matches sm.agent.yaml)
- **Line 258**: Updated epic-tech-context section header to show correct agent ownership
- **Multi-agent workflow table**: Moved epic-tech-context to SM agent row where it belongs

### Principle Applied
**Agent YAML files are source of truth** - All documentation now accurately reflects what agents can actually do per their YAML configurations, not assumptions or outdated info.

## Brownfield Development: Phase 0 Documentation Reality Check

### Rewrote brownfield-guide.md Phase 0 Section
Replaced oversimplified 3-scenario model with **real-world guidance**:

**Before**: Assumed docs are either perfect or non-existent
**After**: Handles messy reality of brownfield projects

**New Scenarios (4 instead of 3)**:
- **Scenario A**: No documentation → document-project (was covered)
- **Scenario B**: Docs exist but massive/outdated/incomplete → **document-project** (NEW - very common)
- **Scenario C**: Good docs but no structure → **shard-doc → index-docs** (NEW - handles massive files)
- **Scenario D**: Confirmed AI-optimized docs → Skip Phase 0 (was "Scenario C", now correctly marked RARE)

**Key Additions**:
- Default recommendation: "Run document-project unless you have confirmed, trusted, AI-optimized docs"
- Quality assessment checklist (current, AI-optimized, comprehensive, trusted)
- Massive document handling with shard-doc tool (>500 lines, 10+ level 2 sections)
- Explicit guidance on why regenerate vs index (outdated docs cause hallucinations)
- Impact explanation: how bad docs break AI workflows (token limits, wrong assumptions, broken integrations)

**Principle**: "When in doubt, run document-project" - Better to spend 10-30 minutes generating fresh docs than waste hours debugging AI agents with bad documentation.

## PM/UX Evolution: Enterprise Agentic Development

### New Content: The Evolving Role of Product Managers & UX Designers

Added comprehensive section based on **November 2025 industry research**:

**Industry Data**:
- 56% of product professionals cite AI/ML as top focus
- PRD-to-Code automation: build and deploy apps in 10-15 minutes
- By 2026: Roles converging into "Full-Stack Product Lead" (PM + Design + Engineering)
- Very high salaries for AI agent PMs who orchestrate autonomous systems

**Role Transformation**:
- From spec writers → code orchestrators
- PMs writing AI-optimized PRDs that **feed agentic pipelines directly**
- UX designers generating code with Figma-to-code tools
- Technical fluency becoming **table stakes**, not optional
- Review PRs from AI agents alongside human developers

**New Section: "How BMad Method Enables PM/UX Technical Evolution"** (10 ways):
1. **AI-Executable PRD Generation** - PRDs become work packages for cloud agents
2. **Automated Epic/Story Breakdown** - No more story refinement sessions
3. **Human-in-the-Loop Architecture** - PMs learn while validating technical decisions
4. **Cloud Agentic Pipeline** - Current (2025) + Future (2026) vision with diagrams
5. **UX Design Integration** - Designs validated through working prototypes
6. **PM Technical Skills Development** - Learn by doing through conversational workflows
7. **Organizational Leverage** - 1 PM → 20-50 AI agents (5-10× multiplier)
8. **Quality Consistency** - What gets built matches what was specified
9. **Rapid Prototyping** - Hours to validate ideas vs months
10. **Career Path Evolution** - Positions PMs for AI Agent PM, Full-Stack Product Lead roles

**Cloud Agentic Pipeline Vision**:
```
Current (2025): PM PRD → Stories → Human devs + BMad agents → PRs → Review → Deploy
Future (2026): PM PRD → Stories → Cloud AI agents → Auto PRs → Review → Auto-merge → Deploy
Time savings: 6-8 weeks → 2-5 days
```

**What Remains Human**:
- Product vision, empathy, creativity, judgment, ethics
- PMs spend MORE time on human elements (AI handles execution)
- Product leaders become "builder-thinkers" not just spec writers

### Document Tightening (enterprise-agentic-development.md)
- **Reduced from 1207 → 640 lines (47% reduction)**
- **10× more BMad-centric** - Every section ties back to how BMad enables the future
- Removed redundant examples, consolidated sections, kept actionable insights
- Stronger value propositions for PMs, UX, enterprise teams throughout

**Key Message**: "The future isn't AI replacing PMs—it's AI-augmented PMs becoming 10× more powerful through BMad Method."

## Impact

These changes bring documentation quality from **D- to A+**:
- **Accuracy**: Agent capabilities now match YAML source of truth (zero hallucination risk)
- **Reality**: Brownfield guidance handles messy real-world scenarios, not idealized ones
- **Forward-looking**: PM/UX evolution section positions BMad as essential framework for emerging roles
- **Actionable**: Concrete workflows, commands, examples throughout
- **Concise**: 47% reduction while strengthening value proposition

Users now have **trustworthy, reality-based, future-oriented guidance** for using BMad Method in both current workflows and emerging agentic development patterns.
2025-11-03 19:38:50 -06:00
Brian Madison
88d043245f 5 levels of scale adaption compressed to 3 clear distinctions driven by user preference and project needs 2025-11-03 17:06:15 -06:00
Brian Madison
750024fb14 release: bump to v6.0.0-alpha.4 2025-11-02 22:00:12 -06:00
Brian Madison
cfedecbd53 docs: massive documentation overhaul + introduce Paige (Documentation Guide agent)
## 📚 Complete Documentation Restructure

**BMM Documentation Hub Created:**
- New centralized documentation system at `src/modules/bmm/docs/`
- 18 comprehensive guides organized by topic (7000+ lines total)
- Clear learning paths for greenfield, brownfield, and quick spec flows
- Professional technical writing standards throughout

**New Documentation:**
- `README.md` - Complete documentation hub with navigation
- `quick-start.md` - 15-minute getting started guide
- `agents-guide.md` - Comprehensive 12-agent reference (45 min read)
- `party-mode.md` - Multi-agent collaboration guide (20 min read)
- `scale-adaptive-system.md` - Deep dive on Levels 0-4 (42 min read)
- `brownfield-guide.md` - Existing codebase development (53 min read)
- `quick-spec-flow.md` - Rapid Level 0-1 development (26 min read)
- `workflows-analysis.md` - Phase 1 workflows (12 min read)
- `workflows-planning.md` - Phase 2 workflows (19 min read)
- `workflows-solutioning.md` - Phase 3 workflows (13 min read)
- `workflows-implementation.md` - Phase 4 workflows (33 min read)
- `workflows-testing.md` - Testing & QA workflows (29 min read)
- `workflow-architecture-reference.md` - Architecture workflow deep-dive
- `workflow-document-project-reference.md` - Document-project workflow reference
- `enterprise-agentic-development.md` - Team collaboration patterns
- `faq.md` - Comprehensive Q&A covering all topics
- `glossary.md` - Complete terminology reference
- `troubleshooting.md` - Common issues and solutions

**Documentation Improvements:**
- Removed all version/date footers (git handles versioning)
- Agent customization docs now include full rebuild process
- Cross-referenced links between all guides
- Reading time estimates for all major docs
- Consistent professional formatting and structure

**Consolidated & Streamlined:**
- Module README (`src/modules/bmm/README.md`) streamlined to lean signpost
- Root README polished with better hierarchy and clear CTAs
- Moved docs from root `docs/` to module-specific locations
- Better separation of user docs vs. developer reference

## 🤖 New Agent: Paige (Documentation Guide)

**Role:** Technical documentation specialist and information architect

**Expertise:**
- Professional technical writing standards
- Documentation structure and organization
- Information architecture and navigation
- User-focused content design
- Style guide enforcement

**Status:** Work in progress - Paige will evolve as documentation needs grow

**Integration:**
- Listed in agents-guide.md, glossary.md, FAQ
- Available for all phases (documentation is continuous)
- Can be customized like all BMM agents

## 🔧 Additional Changes

- Updated agent manifest with Paige
- Updated workflow manifest with new documentation workflows
- Fixed workflow-to-agent mappings across all guides
- Improved root README with clearer Quick Start section
- Better module structure explanations
- Enhanced community links with Discord channel names

**Total Impact:**
- 18 new/restructured documentation files
- 7000+ lines of professional technical documentation
- Complete navigation system with cross-references
- Clear learning paths for all user types
- Foundation for knowledge base (coming in beta)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-02 21:18:33 -06:00
Brian Madison
8a00f8ad70 feat: transform tech-spec workflow into intelligent Quick Spec Flow for Level 0-1
This major enhancement revolutionizes the tech-spec workflow from a basic template-filling exercise into a context-aware, intelligent planning system for rapid development of bug fixes and small features.

## Tech-Spec Workflow Transformation (11 files)

### Core Workflow Intelligence (instructions.md)
- Add standalone mode with interactive level/field-type detection
- Implement brownfield convention detection and user confirmation
- Integrate WebSearch for current framework versions and starter templates
- Add comprehensive context discovery (stack, patterns, dependencies)
- Implement auto-validation with quality scoring (always runs)
- Add UX/UI considerations capture for user-facing changes
- Add test framework detection and pattern analysis
- Transform from batch generation to living document approach

### Comprehensive Tech-Spec Template (tech-spec-template.md)
- Expand from 8 to 23 sections for complete context
- Add Context section (available docs, project stack, existing structure)
- Add Development Context (conventions, test framework, existing code)
- Add UX/UI Considerations section
- Add Developer Resources (file paths, key locations, testing)
- Add Integration Points and Configuration Changes
- All sections populated via template-output tags during workflow

### Enhanced Story Generation
- Level 0 (instructions-level0-story.md): Extract from comprehensive tech-spec
- Level 1 (instructions-level1-stories.md): Add story sequence validation, AC quality checks
- User Story Template: Add Dev Agent Record sections for implementation tracking
- Epic Template: Complete rewrite with proper structure and variables

### Validation & Quality (checklist.md)
- Add context gathering completeness checks
- Add definitiveness validation (no "use X or Y" statements)
- Add brownfield integration quality scoring
- Add stack alignment verification
- Add implementation readiness assessment
- Auto-generates validation report with scores

### Configuration (workflow.yaml)
- Add runtime variables: project_level, project_type, development_context, change_type, field_type
- Enable standalone operation without workflow-status.yaml
- Support both workflow-init integration and quick-start mode

## Phase 4 Integration (3 files)

### Story Context Workflow
- Add tech_spec to input_file_patterns (recognizes as authoritative source)
- Update instructions to prioritize tech-spec for Level 0-1 projects
- Tech-spec provides brownfield analysis, framework details, existing patterns

### Create Story Workflow
- Add tech_spec to input_file_patterns
- Enable story generation from tech-spec (alternative to PRD)
- Supports both Quick Spec Flow and traditional BMM flow

## Documentation (2 new files)

### Quick Spec Flow Guide (docs/quick-spec-flow.md)
- Comprehensive 595-line guide for Level 0-1 rapid development
- Complete user journey examples (bug fix, small feature)
- Context discovery explanation (stack, brownfield, conventions)
- Auto-validation details and benefits
- Integration with Phase 4 workflows
- Comparison: Quick Spec vs Full BMM
- Real-world examples and best practices

### Scale Adaptive System (docs/scale-adaptive-system.md)
- Complete 950-line technical guide to BMad Method's 5-level system
- Key terminology: Analysis, Tech-Spec, Epic-Tech-Spec, Architecture
- Level 0-4 workflows, planning docs, and progression
- Brownfield emphasis: document-project required first
- Tech-spec (upfront, Level 0-1) vs epic-tech-spec (during implementation, Level 2-4)
- Architecture document replaces tech-spec at Level 2+ (scales with complexity)
- Retrospectives after each epic in multi-epic projects
- Workflow path configuration reference

### README Updates
- Add Quick Spec Flow announcement with benefits
- Link to Scale Adaptive System documentation
- Clarify when to use Quick Spec Flow vs Full BMM

## Key Features

### Context-Aware Intelligence
- Auto-detects project stack from package.json, requirements.txt, etc.
- Analyzes brownfield codebases using document-project output
- Detects code conventions and confirms with user before proceeding
- Uses WebSearch for up-to-date framework info and starter templates

### Brownfield Respect
- Detects existing patterns (code style, test framework, naming conventions)
- Asks user for confirmation before applying conventions
- Adapts to existing code vs forcing changes
- References document-project analysis for comprehensive context

### Auto-Validation
- Always runs (not optional)
- Validates context gathering, definitiveness, brownfield integration
- Scores tech-spec quality and implementation readiness
- Validates story sequence for Level 1 (no forward dependencies)

### Living Document Approach
- Write to tech-spec continuously during discovery
- Progressive refinement vs batch generation
- Template variables populated via template-output tags in real-time

## Breaking Changes

None - all changes are additive and backward compatible.

## Impact

This transformation enables:
- Bug fixes and small features implemented in minutes vs hours
- Automatic stack detection and brownfield analysis
- Respect for existing conventions and patterns
- Current best practices via WebSearch integration
- Comprehensive context that can replace story-context for simple efforts
- Seamless integration with Phase 4 implementation workflows

Quick Spec Flow now provides a **true fast path from idea to implementation** for Level 0-1 projects while maintaining quality through auto-validation and comprehensive context gathering.
2025-11-02 08:17:23 -06:00
Brian Madison
3d4ea5ffd2 feat: add universal document sharding support with dual-strategy loading
Implement comprehensive document sharding system across all BMM workflows enabling 90%+ token savings for large multi-epic projects through selective loading optimization.

## Document Sharding System

### Core Features
- **Universal Support**: All 12 BMM workflows (Phase 1-4) handle both whole and sharded documents
- **Dual Loading Strategy**: Full Load (Phase 1-3) vs Selective Load (Phase 4)
- **Automatic Discovery**: Workflows detect format transparently (whole → sharded priority)
- **Efficiency Optimization**: 90%+ token reduction for 10+ epic projects in Phase 4

### Implementation Details

**Phase 1-3 Workflows (7 workflows) - Full Load Strategy:**
- product-brief, prd, gdd, create-ux-design, tech-spec, architecture, solutioning-gate-check
- Load entire sharded documents when present
- Transparent to user experience
- Better organization for large projects

**Phase 4 Workflows (5 workflows) - Selective Load Strategy:**
- sprint-planning (Full Load exception - needs all epics)
- epic-tech-context, create-story, story-context, code-review (Selective Load)
- Load ONLY the specific epic needed (e.g., epic-3.md for Epic 3 stories)
- Massive efficiency: Skip loading 9 other epics in 10-epic project

### Workflow Enhancements

**Added to all workflows:**
- `input_file_patterns` in workflow.yaml with wildcard discovery
- Document Discovery section in instructions.md
- Support for sharded index + section files
- Brownfield `docs/index.md` support

**Pattern standardization:**
```yaml
input_file_patterns:
  document:
    whole: "{output_folder}/*doc*.md"
    sharded: "{output_folder}/*doc*/index.md"
    sharded_single: "{output_folder}/*doc*/section-{{id}}.md"  # Selective load
```

### Retrospective Workflow Major Overhaul

Transformed retrospective into immersive, interactive team experience:

**Epic Discovery Priority (Fixed):**
- Priority 1: Check sprint-status.yaml for last completed epic
- Priority 2: Ask user directly
- Priority 3: Scan stories folder (last resort)

**New Capabilities:**
- Deep story analysis: Extract dev notes, mistakes, review feedback, lessons learned
- Previous retro integration: Track action items, verify lessons applied
- Significant change detection: Alert when discoveries require epic updates
- Intent-based facilitation: Natural conversation vs scripted phrases
- Party mode protocol: Clear speaker identification (Name (Role): dialogue)
- Team dynamics: Drama, disagreements, diverse perspectives, authentic conflict

**Structure:**
- 12 whole-number steps (no decimals)
- Highly interactive with constant user engagement
- Cross-references previous retro for accountability
- Synthesizes patterns across all stories
- Detects architectural assumption changes

## Documentation

**Created:**
- `docs/document-sharding-guide.md` - Comprehensive 300+ line guide
  - What is sharding, when to use it (token thresholds)
  - How sharding works (discovery system, loading strategies)
  - Using shard-doc tool
  - Full Load vs Selective Load patterns
  - Complete examples and troubleshooting
  - Custom workflow integration patterns

**Updated:**
- `README.md` - Added Document Sharding feature section
- `docs/index.md` - Added under Advanced Topics → Optimization
- `src/modules/bmm/workflows/README.md` - Added sharding section with usage
- `src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md` - Added complete implementation patterns for workflow builders

**Documentation levels:**
1. Overview (README.md) - Quick feature highlight
2. User guide (BMM workflows README) - Practical usage
3. Reference (document-sharding-guide.md) - Complete details
4. Builder guide (workflow-creation-guide.md) - Implementation patterns

## Efficiency Gains

**Example: 10-Epic Project**

Before sharding:
- epic-tech-context for Epic 3: Load all 10 epics (~50k tokens)
- create-story for Epic 3: Load all 10 epics (~50k tokens)
- story-context for Epic 3: Load all 10 epics (~50k tokens)

After sharding with selective load:
- epic-tech-context for Epic 3: Load Epic 3 only (~5k tokens) = 90% reduction
- create-story for Epic 3: Load Epic 3 only (~5k tokens) = 90% reduction
- story-context for Epic 3: Load Epic 3 only (~5k tokens) = 90% reduction

## Breaking Changes

None - fully backward compatible. Workflows work with existing whole documents.

## Files Changed

**Workflows Updated (25 files):**
- 7 Phase 1-3 workflows: Added full load sharding support
- 5 Phase 4 workflows: Added selective load sharding support
- 1 retrospective workflow: Complete overhaul with sharding support

**Documentation (5 files):**
- Created: document-sharding-guide.md
- Updated: README.md, docs/index.md, BMM workflows README, BMB workflow-creation-guide
- Removed: Old conversion report (obsolete)

## Future Extensibility

- BMB workflows now aware of sharding patterns
- Custom modules can easily implement sharding support
- Standard patterns documented for consistency
- No need to explain concept in future development
2025-11-02 00:13:33 -05:00
Brian Madison
f77babcd5e feat: major overhaul of BMM planning workflows with intent-driven discovery
This comprehensive update transforms the Product Brief and PRD workflows from rigid template-filling exercises into adaptive, context-aware discovery processes. Changes span workflow instructions, templates, agent configurations, and supporting infrastructure.

## Product Brief Workflow (96% audit compliance)

### Intent-Driven Facilitation
- Transform from linear Q&A to natural conversational discovery
- Adaptive questioning based on project context (hobby/startup/enterprise)
- Real-time document building instead of end-of-session generation
- Skill-level aware facilitation (expert/intermediate/beginner)
- Context detection from user responses to guide exploration depth

### Living Document Approach
- Continuous template updates throughout conversation
- Progressive refinement vs batch generation
- Template-output tags aligned with discovery flow
- Better variable mapping between instructions and template

### Enhanced Discovery Areas
- Problem exploration with context-appropriate probing
- Solution vision shaping based on user's mental model
- User understanding through storytelling vs demographics
- Success metrics tailored to project type
- Ruthless MVP scope management with feature prioritization

### Template Improvements
- Added context-aware conditional sections
- Better organization of optional vs required content
- Clearer structure for different project types
- Improved reference material handling

## PRD Workflow (improved from 65% to 85%+ compliance)

### Critical Fixes
- Add missing `date: system-generated` config variable
- Fix status file extension mismatch (.yaml not .md)
- Remove 38% bloat (unused technical_decisions variables)
- Add explicit template-output tags for runtime variables

### Scale-Adaptive Intelligence
- Project type detection (API/Web App/Mobile/SaaS/etc)
- Domain complexity mapping (14 domain types)
- Automatic requirement tailoring based on detected context
- CSV-driven project type and domain knowledge base

### Separated Epic Planning
- Move epic/story breakdown to dedicated child workflow
- Create create-epics-and-stories workflow for Phase 2
- Cleaner separation: PRD defines WHAT, epics define HOW
- Updated PM agent menu with new workflow triggers

### Enhanced Requirements Coverage
- Project-type specific requirement sections (endpoints, auth, platform)
- Domain-specific considerations (healthcare compliance, fintech security)
- UX principles with interaction patterns
- Non-functional requirements with integration needs
- Technical preferences capture

### Template Restructuring
- Separate PRD template from epic planning
- Context-aware conditional sections
- Better scale level indicators (L0-L4)
- Improved reference document handling
- Clearer success criteria sections

## Architecture Workflow Updates

### Template Enhancements
- Add domain complexity context support
- Better integration with PRD outputs
- Improved technical decision capture
- Enhanced system architecture sections

### Instruction Improvements
- Reference new domain-research workflow
- Better handling of PRD inputs
- Clearer architectural decision framework

## Agent Configuration Updates

### BMad Master Agent
- Fix workflow invocation instructions
- Better fuzzy matching guidance
- Clearer menu handler documentation
- Remove workflow invention warnings

### PM Agent
- Add create-prd trigger (renamed from 'prd')
- Add create-epics-and-stories workflow trigger
- Add validate-prd workflow trigger with checklist
- Better workflow status integration

### Game Designer Agent
- Rename triggers for consistency (create-game-brief, create-gdd)
- Align with PM agent naming conventions

## New Supporting Infrastructure

### Domain Research Workflow
- New discovery workflow for domain-specific research
- Complements product brief for complex domains
- Web research integration for domain insights

### Create Epics and Stories Workflow
- Dedicated epic/story breakdown process
- Separates planning (PRD) from decomposition
- Better Epic → Story → Task hierarchy
- Acceptance criteria generation

### Data Files
- project-types.csv: 12 project type definitions with requirements
- domain-complexity.csv: 14 domain types with complexity indicators

## Quality Improvements

### Validation & Compliance
- Product Brief: 96% BMAD v6 compliance (EXCELLENT rating)
- PRD: Improved from 65% to ~85% after critical fixes
- Zero bloat in Product Brief (0%)
- Reduced PRD bloat from 38% to ~15%

### Template Variable Mapping
- All template variables explicitly populated via template-output tags
- Runtime variables properly tracked
- Config variables consistently used
- Better separation of concerns

### Web Bundle Configuration
- Complete web_bundle sections for all workflows
- Proper child workflow references
- Data file inclusions (CSV files)
- Correct bmad/-relative paths

## Breaking Changes

### File Removals
- Delete src/modules/bmm/workflows/2-plan-workflows/prd/epics-template.md
  (replaced by create-epics-and-stories child workflow)

### Workflow Trigger Changes
- PM agent: 'prd' → 'create-prd'
- PM agent: 'gdd' → 'create-gdd'
- New: 'create-epics-and-stories'
- New: 'validate-prd'

## Impact

This update significantly improves the BMM module's ability to:
- Adapt to different project types and scales
- Guide users through discovery naturally vs mechanically
- Generate higher quality planning documents
- Support complex domains with specialized knowledge
- Scale from Level 0 quick changes to Level 4 enterprise projects

The workflows now feel like collaborative discovery sessions with an expert consultant rather than form-filling exercises.
2025-11-01 19:37:20 -05:00
Brian Madison
4f4b191e8f research will use the web more, use system date to understand what the read current date is. 2025-11-01 00:14:41 -05:00
Brian Madison
a1be5d7292 rename deep research options for chatgpt 2025-10-31 19:43:13 -05:00
Brian Madison
b056b42892 fixed installer note 2025-10-31 19:39:06 -05:00
Brian Madison
1c9fcbb73b shard doc uses npx command 2025-10-31 16:51:25 -05:00
Brian Madison
88e7ede452 remove voice hooks 2025-10-30 15:34:21 -05:00
Brian Madison
d4879d373b 6.0.0-alpha.3 2025-10-30 11:37:03 -05:00
Brian Madison
663b76a072 docs updates 2025-10-30 11:26:15 -05:00
Brian Madison
ec111972a0 some output should be improved and not run together in chat windows 2025-10-30 08:13:18 -05:00
Brian Madison
6d7f42dbec v6 greenfield quickstart guide 2025-10-29 22:39:13 -05:00
Brian Madison
519e2f3d59 manifest version comes from package 2025-10-29 20:04:04 -05:00
Brian Madison
d6036e18dd docs: fix v4 branch link in readme 2025-10-29 09:38:26 -05:00
Brian Madison
6d2b6810c2 fix: preserve user's cwd when running via npx 2025-10-29 09:31:38 -05:00
Brian Madison
06dab16a75 6.0.0-alpha.2 2025-10-29 09:14:03 -05:00
Brian Madison
5a70512a30 chore: remove version prompt from npx installer 2025-10-29 09:12:27 -05:00
Brian Madison
b05f4751d7 6.0.0-alpha.1 2025-10-29 08:35:02 -05:00
Brian Madison
b5262f78ee still alpha 2025-10-29 08:34:48 -05:00
Brian Madison
5ee57ea8df cleanup a few more items 2025-10-29 08:19:11 -05:00
Brian Madison
fd620d0183 marked sm menu items as optional that are optional 2025-10-28 23:47:48 -05:00
Brian Madison
ad8717845d cline workflows added to support slash commands 2025-10-28 23:16:48 -05:00
Brian Madison
503a394218 party mode fix 2025-10-28 22:52:03 -05:00
jheyworth
8376ca0ba2 fix: add CommonMark-compliant markdown formatting rules (#830)
* fix: add CommonMark-compliant markdown formatting rules to workflow

Problem:
--------
BMAD generates markdown that violates CommonMark specification by omitting
required blank lines around lists, tables, and code blocks. While GitHub's
renderer (GFM) handles this gracefully, strict parsers like Mac Markdown.app
break completely, rendering lists as plain text and losing document structure.

Solution:
---------
Add 6 mandatory markdown formatting rules to workflow.xml (line 73) that
enforce proper spacing and consistency:

1. ALWAYS add blank line before and after bullet lists
2. ALWAYS add blank line before and after numbered lists
3. ALWAYS add blank line before and after tables
4. ALWAYS add blank line before and after code blocks
5. Use - for bullets consistently (not * or +)
6. Use language identifier for code fences

Impact:
-------
- Makes BMAD output CommonMark compliant
- Ensures compatibility with ALL markdown parsers, not just GitHub
- Follows industry best practices for professional documentation
- Future-proofs against stricter parser implementations
- Zero content changes - only formatting improved

Testing:
--------
Comprehensive three-phase testing completed:
- Phase 1: Synthetic test validating fix mechanism
- Phase 2: Fresh install end-to-end test (API Gateway project)
- Phase 3: GitHub validation with visual proof

Results: 1,112 lines of formatting improvements, 0 content changes,
100% CommonMark compliance achieved.

Test Evidence:
--------------
Complete test repository with before/after comparison, Mac Markdown.app
screenshot proving the issue, and comprehensive documentation:
https://github.com/jheyworth/bmad-markdown-formatting-test

See TEST.md for full documentation, test methodology, and evidence.

🤖 Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove TEST.md per maintainer feedback

As requested by @bmadcode - the test documentation was useful during review but is not needed in the repository. Testing evidence remains documented in the PR description and external test repository.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-28 22:27:48 -05:00
Brian Madison
44bc96fadc readme update 2025-10-28 22:27:23 -05:00
Brian Madison
7710d9941d document-project moved out of phase 1 to right below workflows and documents updated to clarify its not a phase-0 but a prereq and also a post project tool to use. 2025-10-28 22:21:13 -05:00
Brian Madison
1cfd58ebb1 installer for delete and replace fixed 2025-10-28 21:44:04 -05:00
Brian Madison
1c5b30f361 some v5 references lingered - change to v6 2025-10-28 20:32:08 -05:00
Brian Madison
d9c7980b1d remove unused csv columns from cis 2025-10-28 19:17:44 -05:00
Brian Madison
95b875792b remove tts again 2025-10-28 19:12:10 -05:00
Brian Madison
0ee4fa920a installer fixed to not add game assets to slash commands in some ides that read from the manifest. and fixed the manifest. 2025-10-28 19:09:43 -05:00
Brian Madison
e93b208902 file cleanup 2025-10-28 17:22:31 -05:00
Brian Madison
3fff30ca61 opencode moved agents back to agent folder 2025-10-28 17:18:53 -05:00
Brian Madison
ee58586f39 installer improvements 2025-10-28 12:47:45 -05:00
Brian Madison
ed3603f7b2 vast improvements to create story, review story, draft story checklist validation, sm menu items and dev agent menu items fixed 2025-10-28 10:03:19 -05:00
Brian Madison
0354d1ae45 story review was missing detailed instructions to review AC and task adherance. 2025-10-28 08:51:58 -05:00
Brian Madison
0dab278e7b story-review renamed code-review and dev-agent performs this 2025-10-28 08:30:44 -05:00
Brian Madison
66c66f602d all workflows can optionally run without a workflow 2025-10-27 23:51:22 -05:00
Brian Madison
7ad841964d installer for bmm includes option to include game assets or not when adding to a project. 2025-10-27 22:38:34 -05:00
Brian Madison
f55e822338 brownfield guide draft 2025-10-27 21:18:55 -05:00
Brian Madison
24a2271520 update open items list 2025-10-27 18:27:10 -05:00
Brian Madison
a484b9975c claude code flattened commands 2025-10-27 15:18:22 -05:00
Brian Madison
913ec47123 fix: CSV column mismatch when upgrading manifest schemas
When preserving CSV rows from existing manifest files during module updates,
rows from older schema versions (without the 'standalone' column) were being
added to CSVs with new schema headers, causing "Invalid Record Length" errors
during parsing.

Added schema upgrade logic to detect old column structure and upgrade preserved
rows by adding missing columns with appropriate default values. This ensures all
CSV rows match the header column count, fixing installation errors.

Fixes column count mismatch in:
- workflow-manifest.csv (added standalone column)
- task-manifest.csv (added standalone column)
- tool-manifest.csv (added standalone column)
- agent-manifest.csv (schema validation for future-proofing)
2025-10-27 15:00:57 -05:00
Brian Madison
8ed721d029 npx with version selector 2025-10-26 23:42:56 -05:00
Brian Madison
334e24823a doc updates 2025-10-26 23:25:48 -05:00
Brian Madison
b753fb293b workflows tasks and tools can be configured wether they are able to be run standalone from agents with ide commands 2025-10-26 20:06:34 -05:00
Brian Madison
63ef5b7bc6 installer fixes 2025-10-26 19:38:38 -05:00
Brian Madison
1cb88728e8 installer fixes 2025-10-26 17:04:27 -05:00
Brian Madison
8d81edf847 install quick updates 2025-10-26 16:17:37 -05:00
Brian Madison
0067fb4880 path fixes, documentation updates, md-xplodr added to core tools 2025-10-26 15:40:43 -05:00
Cameron Pitt
8220c819e6 Add Opencode IDE installer (#820)
- Added docs/ide-info/opencode.md
- Added tool/cli/installers/lib/ide/opencode.js
- Modified tools/installers/lib/ide/core/detector.js to include
detection for opencode command dir
- Modified tools/cli/platform-codes.yaml to include opencode config
- Modified tools/cli/installers/lib/ide/workflow-command-template.md to
include frontmatter with description as opencode requires this for
commands and adding it to the template by default does not seem to
impact other IDEs
- Modified src/modules/bmm/workflows/workflow-status/workflow.yaml
description so that it properly escapes quotes when interpolated in the
teplate
2025-10-26 11:16:57 -05:00
Brian Madison
b7e6bfcde5 a few more instruction cleanup items 2025-10-25 23:57:27 -05:00
Brian Madison
bfd49faf2d tech context improved 2025-10-25 23:29:41 -05:00
Brian Madison
52b8edb01d phase 4 more workflow cleanup 2025-10-25 19:25:28 -05:00
Brian Madison
061b7d94c4 status normalization 2025-10-25 15:41:13 -05:00
Brian Madison
5762941321 better status loading and updating for phase 4 2025-10-25 14:26:30 -05:00
Brian Madison
994f251687 workflow phase 4 only has single sprint planning item in it now 2025-10-25 10:44:46 -05:00
Brian Madison
cf13e81dd5 sprint plan clearer comments 2025-10-25 00:30:49 -05:00
Brian Madison
92bff333b1 plan-project gone, and all level 1-3 workflows are dynamic from the workflow in suggesting what is next 2025-10-24 23:16:08 -05:00
Brian Madison
f37c960a4d validation tasks added 2025-10-23 23:20:48 -05:00
Brian Madison
2d297c82da fix create-design workflow path 2025-10-23 15:58:05 -05:00
Brian Madison
a175f46f1b create-ux-design refactor 2025-10-23 14:20:13 -05:00
Brian Madison
44e09e4487 ux expert -> ux designer 2025-10-22 16:58:18 -05:00
Brian Madison
be5556bf42 checks checked 2025-10-22 15:40:51 -05:00
Brian Madison
be5b06f55e check alignment 2025-10-22 12:36:39 -05:00
Brian Madison
c8776aa9ac inline tag reference updtges 2025-10-21 23:48:35 -05:00
Brian Madison
ddaefa3284 use sprint plan for al workflow level 4 implementations 2025-10-21 23:03:46 -05:00
Brian Madison
abaa24513a sprint status helpers, remove workflow integration from phase 4 items in prep of using sprint-planning status 2025-10-21 22:25:26 -05:00
Brian Madison
71330b6aac updates to the paths 2025-10-21 20:37:59 -05:00
Brian Madison
949d818db8 sprint status story location relative 2025-10-21 18:41:40 -05:00
Brian Madison
1b1947d240 sprint-planning placeholder for future integration with jira linear and trello 2025-10-21 18:13:34 -05:00
Brian Madison
419043e704 sprint planning 2025-10-21 08:24:02 -05:00
Brian Madison
b8db0806ed architecture name standardization 2025-10-20 19:01:18 -05:00
Tiki
60475ac6f8 feat(tools/cli): Refactor Qwen IDE configuration logic to support modular command structure (#762)
- Unify BMad directory name from 'BMad' to lowercase 'bmad'
- Use shared utility functions [getAgentsFromBmad] and [getTasksFromBmad] to fetch agents and tasks
- Create independent subdirectory structures (agents, tasks) for each module
- Update file writing paths to store TOML files by module classification
- Remove legacy QWEN.md merged documentation generation logic
- Add TOML metadata header support (not available in previous versions)
- Clean up old version configuration directories (including uppercase BMad and bmad-method)
2025-10-20 08:34:42 -05:00
Alex Verkhovsky
69d1f75435 fix: remove empty tasks directories from Claude Code installer (#776)
Previously, the installer created empty tasks/ directories under
.claude/commands/bmad/{module}/ and attempted to copy task files.
Since getTasksFromDir() filters for .md files only and all actual
tasks are .xml files, these directories remained empty.

Tasks are utility files referenced by agents via exec attributes
(e.g., exec="{project-root}/bmad/core/tasks/workflow.xml") and
should remain in the bmad/ directory - they are not slash commands.

Changes:
- Removed tasks directory creation in module setup
- Removed tasks copying logic (15 lines)
- Removed taskCount from console output
- Removed tasks property from return value
- Removed unused getTasksFromBmad and getTasksFromDir imports
- Updated comment to clarify agents-only installation

Verified: No tasks/ directories created in .claude/commands/bmad/
while task files remain accessible in bmad/core/tasks/

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-20 07:20:36 -05:00
Jrakru
c2b3e797e7 fix(retrospective): align SM ownership in workflow paths and handoff (#770) 2025-10-20 07:19:11 -05:00
Alex Verkhovsky
31666c1f0f feat: add agent schema validation with comprehensive testing (#774)
Introduce automated validation for agent YAML files using Zod to ensure
schema compliance across all agent definitions. This feature validates
17 agent files across core and module directories, catching structural
errors and maintaining consistency.

Schema Validation (tools/schema/agent.js):
- Zod-based schema validating metadata, persona, menu, prompts, and critical actions
- Module-aware validation: module field required for src/modules/**/agents/,
  optional for src/core/agents/
- Enforces kebab-case unique triggers and at least one command target per menu item
- Validates persona.principles as array (not string)
- Comprehensive refinements for data integrity

CLI Validator (tools/validate-agent-schema.js):
- Scans src/{core,modules/*}/agents/*.agent.yaml
- Parses with js-yaml and validates using Zod schema
- Reports detailed errors with file paths and field paths
- Exits 1 on failures, 0 on success
- Accepts optional project_root parameter for testing

Testing (679 lines across 3 test files):
- test/test-cli-integration.sh: CLI behavior and error handling tests
- test/unit-test-schema.js: Direct schema validation unit tests
- test/test-agent-schema.js: Comprehensive fixture-based tests
- 50 test fixtures covering valid and invalid scenarios
- ESLint configured to support CommonJS test files
- Prettier configured to ignore intentionally broken fixtures

CI Integration (.github/workflows/lint.yaml):
- Renamed from format-check.yaml to lint.yaml
- Added schema-validation job running npm run validate:schemas
- Runs in parallel with prettier and eslint jobs
- Validates on all pull requests

Data Cleanup:
- Fixed src/core/agents/bmad-master.agent.yaml: converted persona.principles
  from string to array format

Documentation:
- Updated schema-classification.md with validation section
- Documents validator usage, enforcement rules, and CI integration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-20 07:14:50 -05:00
Brian Madison
2a6eb71612 massive architecture creation overhaul 2025-10-19 23:28:38 -05:00
Brian Madison
d3402c3132 architecture reorganization in preparation of architecture solutioning rework 2025-10-19 15:28:33 -05:00
Brian Madison
0a048f2ccc installer updates, bmd module added and moved out of src, created a plan for module installation tool for custom modules, minor flow improvements 2025-10-19 11:59:27 -05:00
Brian Madison
eb9a214115 readme updated 2025-10-18 12:19:47 -05:00
Brian Madison
940cc15751 cli installer bundler documentation added 2025-10-18 10:20:29 -05:00
Brian Madison
c0a2c55267 clearer codex install note 2025-10-18 09:41:38 -05:00
Brian Madison
a1fc8da03c workflow init added to analyst pm and game agents 2025-10-18 01:34:03 -05:00
Brian Madison
36231173d1 workflows consistent method to update status file 2025-10-17 23:44:43 -05:00
Brian Madison
5788be64d0 installer temp updates 2025-10-17 22:42:36 -05:00
Brian Madison
b54bb9e47d workflow references to moved workflow status workflow 2025-10-17 22:34:21 -05:00
Brian Madison
af8e296e6f all phase 4 workflows use status check workflow update 2025-10-17 20:33:38 -05:00
Brian Madison
e92f138f3d doc output lang vs com lang 2025-10-17 19:46:25 -05:00
Brian Madison
ffd354b605 arch alignment with workflows 2025-10-17 16:44:06 -05:00
Brian Madison
9519eae666 workflow plan realignment 2025-10-17 00:44:05 -05:00
Brian Madison
bc7d679366 workflow simplified 2025-10-17 00:19:45 -05:00
Brian Madison
54985778f2 minor fixes 2025-10-16 21:50:50 -05:00
Murat K Ozcan
84a70d8331 reafactor: test arch audit (#758)
Co-authored-by: Murat Ozcan <murat@mac.lan>
2025-10-16 19:58:37 -05:00
Murat K Ozcan
bee9c5dce7 feat: migrate test architect entirely (#750)
* feat: migrate test architect entirely to v6

* format fixed

* feat: integrated new playwright mcp

---------

Co-authored-by: Murat Ozcan <murat@mac.lan>
2025-10-16 11:09:51 -05:00
Brian Madison
7f0e57e466 bmb updates 2025-10-16 09:50:29 -05:00
Brian Madison
790c4cedf4 remaining bmm workflows bloat removed 2025-10-16 08:58:09 -05:00
Brian Madison
e77a1c036b 1-analysis workflow-state yaml streamlined 2025-10-16 08:26:26 -05:00
Brian Madison
1fe405eb64 1-analysis intentionalized 2025-10-16 08:11:22 -05:00
Brian Madison
516fa1a917 intent based workflow 2025-10-16 07:58:28 -05:00
Brian Madison
a28a350e14 workflow builder understand existing_workflows tag for web bundles, and cleanup comtinues 2025-10-16 07:24:38 -05:00
Brian Madison
73ba7afa90 update additional location audit workflow 2025-10-16 00:15:18 -05:00
Brian Madison
fb5e40319f added audit workflow worfklow 2025-10-16 00:09:19 -05:00
Brian Madison
bcac484319 remove old webbundles 2025-10-15 23:51:07 -05:00
Brian Madison
72b6640f4b workflow cleanup 2025-10-15 23:50:34 -05:00
Brian Madison
f4b16bfacf planning workflow alignment 2025-10-15 23:10:33 -05:00
Brian Madison
b9b219a13b prd cleanup 2025-10-15 21:17:09 -05:00
Brian Madison
9b427a4e2b planning tech spec cleanup 2025-10-14 20:20:55 -05:00
Brian Madison
0f126b7f87 consolidated prd isntruction 2025-10-14 19:58:44 -05:00
Brian Madison
4b6f34dff8 date removed from status file, status file renamed 2025-10-13 22:32:35 -05:00
Brian Madison
27586e6a40 context should use relative paths 2025-10-13 21:11:20 -05:00
Brian Madison
5eb410d622 update config re deprecated removed file 2025-10-13 19:29:19 -05:00
Brian Madison
f1965810a6 adv elicitation project updated to hopefully not be skipped as optional anymore. further workflow updates. 2025-10-13 00:33:06 -05:00
Brian Madison
36bf506241 all workflows aware 2025-10-12 22:19:28 -05:00
Brian Madison
88989d5403 master workflow integration 2025-10-12 18:10:23 -05:00
Brian Madison
c3c51945bb docs update 2025-10-12 16:59:54 -05:00
Brian Madison
79ac3c91fe central source of trust for workflow status, current, and next story or epic 2025-10-12 16:14:29 -05:00
Brian Madison
e61d58d480 workflow level 0 and 1 aligned with brownfield and quick dev 2025-10-12 15:53:24 -05:00
Brian Madison
1b7a3b396f removed bmad folder 2025-10-12 01:41:09 -05:00
Brian Madison
ab05cdcdd2 \split analyze workflow 2025-10-12 01:39:24 -05:00
Brian Madison
2b736a8594 brownfield document project workflow added to analyst 2025-10-12 00:49:12 -05:00
Brian Madison
4f16d368ac minor dev agent updates 2025-10-11 19:45:25 -05:00
Brian Madison
b4cc579009 create-agent now adds agent to ide agents list also 2025-10-10 09:27:50 -05:00
Carson
9ba4805aa7 Update README.md (#715) 2025-10-10 09:27:32 -05:00
PinkyD
d76bcb5586 chore: cleaned up bad architecture file calls, legacy doc references, and case sensitivity issues to remove ambiguity (#718) 2025-10-10 09:26:49 -05:00
MeetNexus
5977227efc fix: Correct path to instructions in bmad-init workflow (#663)
Co-authored-by: Brian <bmadcode@gmail.com>
2025-10-09 19:07:56 -05:00
PinkyD
b62e169bac adjusted workflow installed_path to proper bmm workflow folders (#688) 2025-10-07 16:07:30 -05:00
Dylan Buchi
709fb72bc5 fix: install auggie commands to augment directory (#683) 2025-10-07 16:07:06 -05:00
Alex Verkhovsky
d444ca3f31 fix(installer): enforce manifest ide selection (#684) 2025-10-06 14:08:36 -05:00
Alex Verkhovsky
b999dd1315 refactor(ide): delegate detection to handlers (#680) 2025-10-05 22:13:11 -05:00
Alex Verkhovsky
c9ffe202d5 feat(installer): default project name to directory (#681) 2025-10-05 22:12:37 -05:00
Alex Verkhovsky
c49f4b2e9b feat(codex): activate with custom prompts instead of AGENTS.md (#679) 2025-10-05 17:52:48 -05:00
Brian Madison
33d893bef2 workflows added to sub items in plan project phase. updated single action checks to be ifs on the action. 2025-10-05 11:32:45 -05:00
Brian Madison
aefe72fd60 gdd updated 2025-10-04 22:52:38 -05:00
Brian Madison
d23643b53b removed some files 2025-10-04 21:34:37 -05:00
Brian Madison
16984c3d92 fix path bug 2025-10-04 21:33:19 -05:00
PinkyD
47658c00d5 Fixed bug with activation-steps.xml injecting wrong path (#674) 2025-10-04 21:04:33 -05:00
Brian Madison
1a92e6823f fix: ensure IDE configurations are collected during full reinstall
- Remember previously configured IDEs before deleting bmad directory
- During full reinstall, treat all selected IDEs as newly selected
- Properly prompt for IDE configuration questions during reinstall
- Remove debug logging
2025-10-04 19:54:47 -05:00
Brian Madison
6181a0bd07 fix: installer IDE selection and cancellation handling
- Fix manifest reading to use manifest.yaml instead of manifest.csv
- Show previously configured IDEs as selected by default in UI
- Skip configuration prompts for already configured IDEs during updates
- Properly collect IDE configurations during full reinstall
- Handle installation cancellation without throwing errors
2025-10-04 19:46:16 -05:00
Brian Madison
c632564849 finish move of brainstorming to the core 2025-10-04 19:33:34 -05:00
Brian Madison
9ea68ab8c3 remove bmad installs 2025-10-04 19:28:49 -05:00
Brian Madison
c7d76a3037 agent manifest generation, party mode uses it, and tea persona compression 2025-10-04 19:28:10 -05:00
Brian Madison
bbb37a7a86 brainstorming moved to core workflows part 2 2025-10-04 19:02:29 -05:00
Brian Madison
b6d8823d51 brainstorming moved to core workflows 2025-10-04 19:01:37 -05:00
Brian Madison
e60d5cc42d removed deprecated src_impact 2025-10-04 18:43:24 -05:00
Brian Madison
3147589d0f bomb agent updates 2025-10-04 17:35:37 -05:00
Brian Madison
94a2dad104 name and language will now persisten better with most models 2025-10-04 16:12:42 -05:00
Brian Madison
67bf3b81c8 remove errant bmad folder 2025-10-04 11:19:31 -05:00
OverlordBaconPants
106c32c513 Add TDD Agent validation test story
Created a simple Calculator implementation story to test the TDD Developer Agent:
- Story with 3 acceptance criteria (add, subtract, error handling)
- Comprehensive Story Context JSON with test cases
- Designed to validate RED-GREEN-REFACTOR workflow
- Status set to 'Approved' for immediate testing

Test story location: test-stories/story-tdd-agent-validation.md

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-04 10:09:05 -04:00
OverlordBaconPants
9810f4255e Add TDD Developer Agent with RED-GREEN-REFACTOR workflow
- Created dev-tdd.md agent with strict test-first development methodology
- Implemented complete TDD workflow with RED-GREEN-REFACTOR cycles
- Added comprehensive validation checklist (250+ items)
- Integrated RVTM traceability for requirement-test-implementation tracking
- Includes ATDD test generation and Story Context integration
- Agent name: Ted (TDD Developer Agent) with  icon

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-04 10:01:35 -04:00
Brian Madison
9300ad1d71 subagaents updated with consistent return info and missing frontmatter where it was missing 2025-10-04 08:24:21 -05:00
Brian Madison
46cabf72cd doc status updates 2025-10-04 01:29:40 -05:00
Brian Madison
a747017520 docs updated and agent standalone builder working now from the main install flow 2025-10-04 01:26:38 -05:00
Brian Madison
5ee4cf535c BoMB updates 2025-10-04 00:22:59 -05:00
Brian Madison
9e8c7f3503 bundle agents front matter optimized, along with the orchestrators activation instructions; 2025-10-03 21:46:53 -05:00
Brian Madison
5ac18cb55c agent teams orchesatraion prompt improved 2025-10-03 19:08:34 -05:00
Brian Madison
fd01ad69f8 remove uneeded files 2025-10-03 11:54:32 -05:00
Brian Madison
3f40ef4756 agent updates 2025-10-02 21:45:59 -05:00
Brian Madison
c6704b4b6e web bundles for team complete 2025-10-01 22:22:40 -05:00
Brian Madison
15dc68cd29 remove unneeded commit files 2025-10-01 18:29:08 -05:00
Brian Madison
f077a31aa0 docs updated 2025-10-01 18:29:08 -05:00
Brian Madison
7ebbe9fd5f Qwen tasks and agents 2025-10-01 18:29:07 -05:00
PinkyD
5f0a318bdf feature: Added detailed epics file generation that was missing (#669) 2025-10-01 14:01:56 -05:00
Brian Madison
25c3d50673 SubAgents in sub folders. installer improvements. BMM Flow document added 2025-10-01 09:12:21 -05:00
Brian Madison
56e7a61bd3 v6 flow documented and subagent organization 2025-10-01 08:50:16 -05:00
Brian Madison
05a3b4f3f1 hash file change checking integrated 2025-09-30 21:20:13 -05:00
Brian Madison
c42cd48421 Fix installer upgrade issues from v4 to v6. and v6 custom files will no longer be lost (modified ones will though for now still) 2025-09-30 20:06:02 -05:00
Brian Madison
e7fcc56cc3 v4-v6 upgrade improvement and warning about file auto backup 2025-09-30 19:42:12 -05:00
Murat K Ozcan
df0c3e4bae Port TEA commands into workflows and preload Murat knowledge (#660)
* Port TEA commands into workflows and preload Murat knowledge

* Broke the giant knowledge dump into curated fragments under src/modules/bmm/testarch/knowledge/

* Broke the giant knowledge dump into curated fragments under src/modules/bmm/testarch/knowledge/

* updated the web bunles for tea, and spot updates for analyst and sm

* Replaced the old TEA brief with an indexed knowledge system: the agent now loads topic-specific
  docs from knowledge/ via tea-index.csv, workflows reference those fragments, and risk/level/
  priority guidance lives in the new fragment files

---------

Co-authored-by: Murat Ozcan <murat@mac.lan>
2025-09-30 15:19:55 -05:00
689 changed files with 84809 additions and 71828 deletions

View File

@@ -1 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Discord Community Support
url: https://discord.gg/gk8jAdXWmj
about: Please join our Discord server for general questions and community discussion before opening an issue.

View File

@@ -1,6 +1,6 @@
---
name: V5 Idea Submission
about: Suggest an idea for v5
name: V6 Idea Submission
about: Suggest an idea for v6
title: ''
labels: ''
assignees: ''
@@ -92,7 +92,7 @@ Fix issues and add features.
_Why this is poor: Too vague, no specific problem identified, no measurable success criteria, unclear scope_
</details>****
</details>
---

277
.github/workflows/bundle-latest.yaml vendored Normal file
View File

@@ -0,0 +1,277 @@
name: Publish Latest Bundles
on:
push:
branches: [main]
workflow_dispatch: {}
permissions:
contents: write
jobs:
bundle-and-publish:
runs-on: ubuntu-latest
steps:
- name: Checkout BMAD-METHOD
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: npm
- name: Install dependencies
run: npm ci
- name: Generate bundles
run: npm run bundle
- name: Create bundle distribution structure
run: |
mkdir -p dist/bundles
# Copy web bundles (XML files from npm run bundle output)
cp -r web-bundles/* dist/bundles/ 2>/dev/null || true
# Verify bundles were copied (fail if completely empty)
if [ ! "$(ls -A dist/bundles)" ]; then
echo "❌ ERROR: No bundles found in dist/bundles/"
echo "This likely means 'npm run bundle' failed or bundles weren't generated"
exit 1
fi
# Count bundles per module
for module in bmm bmb cis bmgd; do
if [ -d "dist/bundles/$module/agents" ]; then
COUNT=$(find dist/bundles/$module/agents -name '*.xml' 2>/dev/null | wc -l)
echo "✅ $module: $COUNT agent bundles"
fi
done
# Generate index.html for each agents directory (fixes directory browsing)
for module in bmm bmb cis bmgd; do
if [ -d "dist/bundles/$module/agents" ]; then
cat > "dist/bundles/$module/agents/index.html" << 'DIREOF'
<!DOCTYPE html>
<html>
<head>
<title>MODULE_NAME Agents</title>
<style>
body { font-family: system-ui; max-width: 800px; margin: 50px auto; padding: 20px; }
li { margin: 10px 0; }
a { color: #0066cc; text-decoration: none; }
a:hover { text-decoration: underline; }
</style>
</head>
<body>
<h1>MODULE_NAME Agents</h1>
<ul>
AGENT_LINKS
</ul>
<p><a href="../../">← Back to all modules</a></p>
</body>
</html>
DIREOF
# Replace MODULE_NAME
sed -i "s/MODULE_NAME/${module^^}/g" "dist/bundles/$module/agents/index.html"
# Generate agent links
LINKS=""
for file in dist/bundles/$module/agents/*.xml; do
if [ -f "$file" ]; then
name=$(basename "$file" .xml)
LINKS="$LINKS <li><a href=\"./$name.xml\">$name</a></li>\n"
fi
done
sed -i "s|AGENT_LINKS|$LINKS|" "dist/bundles/$module/agents/index.html"
fi
done
# Create zip archives per module
mkdir -p dist/bundles/downloads
for module in bmm bmb cis bmgd; do
if [ -d "dist/bundles/$module" ]; then
(cd dist/bundles && zip -r downloads/$module-agents.zip $module/)
echo "✅ Created $module-agents.zip"
fi
done
# Create index.html for GitHub Pages
cat > dist/bundles/index.html << 'EOF'
<!DOCTYPE html>
<html>
<head>
<title>BMAD Bundles - Latest</title>
<meta charset="utf-8">
<style>
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; max-width: 800px; margin: 50px auto; padding: 20px; }
h1 { color: #333; }
.platform { margin: 30px 0; padding: 20px; background: #f5f5f5; border-radius: 8px; }
.module { margin: 15px 0; }
a { color: #0066cc; text-decoration: none; }
a:hover { text-decoration: underline; }
code { background: #e0e0e0; padding: 2px 6px; border-radius: 3px; }
.warning { background: #fff3cd; padding: 15px; border-left: 4px solid #ffc107; margin: 20px 0; }
</style>
</head>
<body>
<h1>BMAD Web Bundles - Latest (Main Branch)</h1>
<div class="warning">
<strong>⚠️ Latest Build (Unstable)</strong><br>
These bundles are built from the latest main branch commit. For stable releases, visit
<a href="https://github.com/bmad-code-org/BMAD-METHOD/releases/latest">GitHub Releases</a>.
</div>
<p><strong>Last Updated:</strong> <code>$TIMESTAMP</code></p>
<p><strong>Commit:</strong> <code>$COMMIT_SHA</code></p>
<h2>Available Modules</h2>
<div class="platform">
<h3>BMM (BMad Method)</h3>
<div class="module">
<a href="./bmm/agents/pm.xml">PM</a> |
<a href="./bmm/agents/architect.xml">Architect</a> |
<a href="./bmm/agents/tea.xml">TEA</a> |
<a href="./bmm/agents/dev.xml">Developer</a> |
<a href="./bmm/agents/analyst.xml">Analyst</a> |
<a href="./bmm/agents/sm.xml">Scrum Master</a> |
<a href="./bmm/agents/ux-designer.xml">UX Designer</a> |
<a href="./bmm/agents/tech-writer.xml">Tech Writer</a><br>
📁 <a href="./bmm/agents/">Browse All</a> | 📦 <a href="./downloads/bmm-agents.zip">Download Zip</a>
</div>
</div>
<div class="platform">
<h3>BMB (BMad Builder)</h3>
<div class="module">
<a href="./bmb/agents/bmad-builder.xml">Builder Agent</a><br>
📁 <a href="./bmb/agents/">Browse All</a> | 📦 <a href="./downloads/bmb-agents.zip">Download Zip</a>
</div>
</div>
<div class="platform">
<h3>CIS (Creative Intelligence Suite)</h3>
<div class="module">
📁 <a href="./cis/agents/">Browse Agents</a> | 📦 <a href="./downloads/cis-agents.zip">Download Zip</a>
</div>
</div>
<div class="platform">
<h3>BMGD (Game Development)</h3>
<div class="module">
📁 <a href="./bmgd/agents/">Browse Agents</a> | 📦 <a href="./downloads/bmgd-agents.zip">Download Zip</a>
</div>
</div>
<h2>Bulk Downloads</h2>
<p>Download all agents for a module as a zip archive:</p>
<ul>
<li><a href="./downloads/bmm-agents.zip">📦 BMM Agents (all 8)</a></li>
<li><a href="./downloads/bmb-agents.zip">📦 BMB Agents (all 1)</a></li>
<li><a href="./downloads/cis-agents.zip">📦 CIS Agents (all 5)</a></li>
<li><a href="./downloads/bmgd-agents.zip">📦 BMGD Agents (all 4)</a></li>
</ul>
<h2>Usage</h2>
<p>Copy the raw XML URL and paste into your AI platform's custom instructions or project knowledge.</p>
<p>Example: <code>https://raw.githubusercontent.com/bmad-code-org/bmad-bundles/main/bmm/agents/pm.xml</code></p>
<h2>Installation (Recommended)</h2>
<p>For full IDE integration with slash commands, use the installer:</p>
<pre>npx bmad-method@alpha install</pre>
<footer style="margin-top: 50px; padding-top: 20px; border-top: 1px solid #ccc; color: #666;">
<p>Built from <a href="https://github.com/bmad-code-org/BMAD-METHOD">BMAD-METHOD</a> repository.</p>
</footer>
</body>
</html>
EOF
# Replace placeholders
TIMESTAMP=$(date -u +"%Y-%m-%d %H:%M UTC")
COMMIT_SHA=$(git rev-parse --short HEAD)
sed -i "s/\$TIMESTAMP/$TIMESTAMP/" dist/bundles/index.html
sed -i "s/\$COMMIT_SHA/$COMMIT_SHA/" dist/bundles/index.html
- name: Checkout bmad-bundles repo
uses: actions/checkout@v4
with:
repository: bmad-code-org/bmad-bundles
path: bmad-bundles
token: ${{ secrets.BUNDLES_PAT }}
- name: Update bundles
run: |
# Clear old bundles
rm -rf bmad-bundles/*
# Copy new bundles
cp -r dist/bundles/* bmad-bundles/
# Create .nojekyll for GitHub Pages
touch bmad-bundles/.nojekyll
# Create README
cat > bmad-bundles/README.md << 'EOF'
# BMAD Web Bundles (Latest)
**⚠️ Unstable Build**: These bundles are auto-generated from the latest `main` branch.
For stable releases, visit [GitHub Releases](https://github.com/bmad-code-org/BMAD-METHOD/releases/latest).
## Usage
Copy raw markdown URLs for use in AI platforms:
- Claude Code: `https://raw.githubusercontent.com/bmad-code-org/bmad-bundles/main/claude-code/sub-agents/{agent}.md`
- ChatGPT: `https://raw.githubusercontent.com/bmad-code-org/bmad-bundles/main/chatgpt/sub-agents/{agent}.md`
- Gemini: `https://raw.githubusercontent.com/bmad-code-org/bmad-bundles/main/gemini/sub-agents/{agent}.md`
## Browse
Visit [https://bmad-code-org.github.io/bmad-bundles/](https://bmad-code-org.github.io/bmad-bundles/) to browse bundles.
## Installation (Recommended)
For full IDE integration:
```bash
npx bmad-method@alpha install
```
---
Auto-updated by [BMAD-METHOD](https://github.com/bmad-code-org/BMAD-METHOD) on every main branch merge.
EOF
- name: Commit and push to bmad-bundles
run: |
cd bmad-bundles
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add .
if git diff --staged --quiet; then
echo "No changes to bundles, skipping commit"
else
COMMIT_SHA=$(cd .. && git rev-parse --short HEAD)
git commit -m "Update bundles from BMAD-METHOD@${COMMIT_SHA}"
git push
echo "✅ Bundles published to GitHub Pages"
fi
- name: Summary
run: |
echo "## 🎉 Bundles Published!" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Latest bundles** available at:" >> $GITHUB_STEP_SUMMARY
echo "- 🌐 Browse: https://bmad-code-org.github.io/bmad-bundles/" >> $GITHUB_STEP_SUMMARY
echo "- 📦 Raw files: https://github.com/bmad-code-org/bmad-bundles" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Commit**: ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY

View File

@@ -1,43 +0,0 @@
name: format-check
"on":
pull_request:
branches: ["**"]
workflow_dispatch:
jobs:
prettier:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Prettier format check
run: npm run format:check
eslint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: ESLint
run: npm run lint

View File

@@ -61,8 +61,34 @@ jobs:
run: |
sed -i 's/"version": ".*"/"version": "${{ steps.version.outputs.new_version }}"/' tools/installer/package.json
- name: Build project
run: npm run build
- name: Generate web bundles
run: npm run bundle
- name: Package bundles for release
run: |
mkdir -p dist/release-bundles
# Copy web bundles
cp -r web-bundles dist/release-bundles/bmad-bundles-v${{ steps.version.outputs.new_version }}
# Verify bundles exist
if [ ! "$(ls -A dist/release-bundles/bmad-bundles-v${{ steps.version.outputs.new_version }})" ]; then
echo "❌ ERROR: No bundles found"
echo "This likely means 'npm run bundle' failed"
exit 1
fi
# Count and display bundles per module
for module in bmm bmb cis bmgd; do
if [ -d "dist/release-bundles/bmad-bundles-v${{ steps.version.outputs.new_version }}/$module/agents" ]; then
COUNT=$(find dist/release-bundles/bmad-bundles-v${{ steps.version.outputs.new_version }}/$module/agents -name '*.xml' 2>/dev/null | wc -l)
echo "✅ $module: $COUNT agents"
fi
done
# Create archive
tar -czf dist/release-bundles/bmad-bundles-v${{ steps.version.outputs.new_version }}.tar.gz \
-C dist/release-bundles/bmad-bundles-v${{ steps.version.outputs.new_version }} .
- name: Commit version bump
run: |
@@ -151,23 +177,36 @@ jobs:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npm publish
- name: Create GitHub Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create GitHub Release with Bundles
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ steps.version.outputs.new_version }}
release_name: "BMad Method v${{ steps.version.outputs.new_version }}"
body: ${{ steps.release_notes.outputs.RELEASE_NOTES }}
name: "BMad Method v${{ steps.version.outputs.new_version }}"
body: |
${{ steps.release_notes.outputs.RELEASE_NOTES }}
## 📦 Web Bundles
Download XML bundles for use in AI platforms (Claude Projects, ChatGPT, Gemini):
- `bmad-bundles-v${{ steps.version.outputs.new_version }}.tar.gz` - All modules (BMM, BMB, CIS, BMGD)
**Browse online** (bleeding edge): https://bmad-code-org.github.io/bmad-bundles/
draft: false
prerelease: false
prerelease: ${{ contains(steps.version.outputs.new_version, 'alpha') || contains(steps.version.outputs.new_version, 'beta') }}
files: |
dist/release-bundles/*.tar.gz
- name: Summary
run: |
echo "🎉 Successfully released v${{ steps.version.outputs.new_version }}!"
echo "📦 Published to NPM with @latest tag"
echo "🏷️ Git tag: v${{ steps.version.outputs.new_version }}"
echo "✅ Users running 'npx bmad-method install' will now get version ${{ steps.version.outputs.new_version }}"
echo ""
echo "📝 Release notes preview:"
cat release_notes.md
echo "## 🎉 Successfully released v${{ steps.version.outputs.new_version }}!" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### 📦 Distribution" >> $GITHUB_STEP_SUMMARY
echo "- **NPM**: Published with @latest tag" >> $GITHUB_STEP_SUMMARY
echo "- **GitHub Release**: https://github.com/bmad-code-org/BMAD-METHOD/releases/tag/v${{ steps.version.outputs.new_version }}" >> $GITHUB_STEP_SUMMARY
echo "- **Web Bundles**: Attached to GitHub Release (4 archives)" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### ✅ Installation" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
echo "npx bmad-method@${{ steps.version.outputs.new_version }} install" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY

78
.github/workflows/quality.yaml vendored Normal file
View File

@@ -0,0 +1,78 @@
name: Quality & Validation
# Runs comprehensive quality checks on all PRs:
# - Prettier (formatting)
# - ESLint (linting)
# - Schema validation (YAML structure)
# - Agent schema tests (fixture-based validation)
# - Installation component tests (compilation)
# - Bundle validation (web bundle integrity)
"on":
pull_request:
branches: ["**"]
workflow_dispatch:
jobs:
prettier:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Prettier format check
run: npm run format:check
eslint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: ESLint
run: npm run lint
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Validate YAML schemas
run: npm run validate:schemas
- name: Run agent schema validation tests
run: npm run test:schemas
- name: Test agent compilation components
run: npm run test:install
- name: Validate web bundles
run: npm run validate:bundles

17
.gitignore vendored
View File

@@ -6,6 +6,10 @@ deno.lock
pnpm-workspace.yaml
package-lock.json
test-output/*
coverage/
# Logs
logs/
*.log
@@ -22,7 +26,6 @@ build/*.txt
Thumbs.db
# Development tools and configs
.prettierignore
.prettierrc
# IDE and editor configs
@@ -33,12 +36,12 @@ Thumbs.db
# AI assistant files
CLAUDE.md
.ai/*
.claude
cursor
.gemini
.mcp.json
CLAUDE.local.md
.serena/
.claude/settings.local.json
# Project-specific
.bmad-core
@@ -51,9 +54,13 @@ flattened-codebase.xml
#UAT template testing output files
tools/template-test-generator/test-scenarios/
# Bundler temporary files
# Bundler temporary files and generated bundles
.bundler-temp/
# Test Install Output
# Generated web bundles (built by CI, not committed)
src/modules/bmm/sub-modules/
src/modules/bmb/sub-modules/
src/modules/cis/sub-modules/
src/modules/bmgd/sub-modules/
z*/
z*/

View File

@@ -1,3 +1,7 @@
#!/usr/bin/env sh
# Auto-fix changed files and stage them
npx --no-install lint-staged
# Validate everything
npm test

2
.prettierignore Normal file
View File

@@ -0,0 +1,2 @@
# Test fixtures with intentionally broken/malformed files
test/fixtures/**

View File

@@ -56,7 +56,8 @@
"tileset",
"tmpl",
"Trae",
"VNET"
"VNET",
"webskip"
],
"json.schemas": [
{

File diff suppressed because it is too large Load Diff

View File

@@ -86,25 +86,13 @@ Please propose small, granular changes! For large or significant changes, discus
### Which Branch?
**Submit to `next` branch** (most contributions):
- ✨ New features or agents
- 🎨 Enhancements to existing features
- 📚 Documentation updates
- ♻️ Code refactoring
- ⚡ Performance improvements
- 🧪 New tests
- 🎁 New bmad modules
**Submit to `main` branch** (critical only):
**Submit PR's to `main` branch** (critical only):
- 🚨 Critical bug fixes that break basic functionality
- 🔒 Security patches
- 📚 Fixing dangerously incorrect documentation
- 🐛 Bugs preventing installation or basic usage
**When in doubt, submit to `next`**. We'd rather test changes thoroughly before they hit stable.
### PR Size Guidelines
- **Ideal PR size**: 200-400 lines of code changes
@@ -256,6 +244,7 @@ Each commit should represent one logical change:
- Web/planning agents can be larger with more complex tasks
- Everything is natural language (markdown) - no code in core framework
- Use bmad modules for domain-specific features
- Validate YAML schemas with `npm run validate:schemas` before committing
## Code of Conduct

590
README.md
View File

@@ -1,273 +1,441 @@
# BMad CORE v6 Alpha
# BMad CORE + BMad Method
[![Version](https://img.shields.io/npm/v/bmad-method?color=blue&label=version)](https://www.npmjs.com/package/bmad-method)
[![Stable Version](https://img.shields.io/npm/v/bmad-method?color=blue&label=stable)](https://www.npmjs.com/package/bmad-method)
[![Alpha Version](https://img.shields.io/npm/v/bmad-method/alpha?color=orange&label=alpha)](https://www.npmjs.com/package/bmad-method)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Node.js Version](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen)](https://nodejs.org)
[![Discord](https://img.shields.io/badge/Discord-Join%20Community-7289da?logo=discord&logoColor=white)](https://discord.gg/gk8jAdXWmj)
**[Subscribe to BMadCode on YouTube](https://www.youtube.com/@BMadCode?sub_confirmation=1)** and **[Join our amazing, active Discord Community](https://discord.gg/gk8jAdXWmj)**
**If you find this project helpful or useful, please give it a star in the upper right-hand corner!** It helps others discover BMad-CORE and you will be notified of updates!
## The Universal Human-AI Collaboration Platform
📋 **[View v6 Alpha Open Items & Roadmap](./v6-open-items.md)** - Track what's being worked on and what's coming next!
### ⚠️ Important Alpha Notes
**Note 0 - Frequent Updates:** Updates to the branch will be frequent. When pulling new updates, it's best to delete your node_modules folder and run `npm install` to ensure you have the latest package dependencies.
**Note 1 - Alpha Stability:** ALPHA is potentially an unstable release that could drastically change. While we hope that isn't the case, your testing during this time is much appreciated. Please help us out by filing issues or reaching out in Discord to discuss.
**Note 2 - Work in Progress:** ALPHA is not complete - there are still many small and big features, polish, doc improvements, and more agents and workflows coming ahead of the beta release!
**Note 3 - IDE Required:** ALPHA Web Bundles and Agents are not fully working yet - you will need to use a good quality IDE to test many features, especially with the BMad Method module. However, the new agent builder and standalone agent feature can work great with weaker models - this will still evolve over the coming weeks.
**Note 4 - Contributing:** If you would like to contribute a PR, make sure you are creating your PR against the Alpha Branch and not Main.
## Alpha Installation and Testing
**Prerequisites**: [Node.js](https://nodejs.org) v20+ required
### Option A
Thank you Lum for the suggestion - here is a one-shot instruction to clone just the alpha branch and get started:
`git clone --branch v6-alpha --single-branch https://github.com/bmad-code-org/BMAD-METHOD` and then cd into this directory and run `npm install`.
### Option B
Here are the more detailed step-by-step instructions:
Clone the repo with either:
- `gh repo clone bmad-code-org/BMAD-METHOD`
- `git clone https://github.com/bmad-code-org/BMAD-METHOD.git`
- `git@github.com:bmad-code-org/BMAD-METHOD.git`
and then cd into the BMAD-METHOD folder.
You will then need to change to the branch as that will have cloned main, so type:
- `git checkout v6-alpha`
- type `git status` and you should see:
`On branch v6-alpha. Your branch is up to date with 'origin/v6-alpha'.`
### Node Modules install
Now you must install the node_modules with `npm install` - once complete, you should see you have a `node_modules` folder at the root of your project. (BMAD-METHOD/node_modules)
### Install to your new or existing project folder
Now you can run `npm run install:bmad` and follow the installer questions.
NOTE: One of the first questions will ask for a destination - do not accept the default, you want to enter the full path to a new or existing folder of where your project is or will be. If you choose a net new folder, you will have to confirm you want the installer to create the directory for you.
The Core Module will always be installed. The default initial module selection will be BMM for all the core BMad Method functionality and flow from brainstorming through software development.
**Note on installation:** All installs now go to a single folder called `bmad` instead of multiple folders. When you install a module, you may still see folders other than the one you selected in the destination/bmad folder.
This is intentional and not a bug - it will copy over to those other folders only the minimum that is needed because it is shared across the modules. For example, during Alpha to test this feature, BMM relies on the brainstorming feature of the CIS and some items from CORE - so even if you only select BMM, you will still see bmad/core and bmad/cis along with bmad/bmm.
## What is the new BMad Core
BMad-CORE (Collaboration Optimized Reflection Engine) is a framework that brings out the best in you through AI agents designed to enhance human thinking rather than replace it.
Unlike traditional AI tools that do the work for you, BMad-CORE's specialized agents guide you through the facilitation of optimized collaborative reflective workflows to unlock your full potential across any domain. This magic powers the BMad Method, which is just one of the many modules that exist or are coming soon.
## What Makes BMad-Core Different
**Traditional AI**: Does the thinking for you, providing average, bland answers and solutions
**BMad-CORE**: Brings out the best thinking in you and the AI through guided collaboration, elicitation, and facilitation
### Core Philosophy: Human Amplification, Not Replacement
BMad-Core's AI agents act as expert coaches, mentors, and collaborators who:
- Ask the right questions to stimulate your thinking
- Provide structured frameworks for complex problems
- Guide you through reflective processes to discover insights
- Help you develop mastery in your chosen domains
- Amplify your natural abilities rather than substituting for them
## The Collaboration Optimized Reflection Engine
At the heart of BMad-Core lies the **C.O.R.E.** system:
- **Collaboration**: Human-AI partnership where both contribute unique strengths
- **Optimized**: The collaborative process has been refined for maximum effectiveness
- **Reflection**: Guided thinking that helps you discover better solutions and insights
- **Engine**: The powerful framework that orchestrates specialized agents and workflows
## Universal Domain Coverage Through Modules
BMad-CORE works in ANY domain through specialized modules (previously called expansion packs)!
### Available Modules with Alpha Release
- **BMad Core (core)**: Included and used to power every current and future module; includes a master orchestrator for the local environment and one for the web bundles used with ChatGPT or Gemini Gems, for example.
- **BMad Method (bmm)**: Agile AI-driven software development - the classic that started it all and is still the best - but with v6, massively improved thanks to a rebuild from the ground up built on the new powerful BMad-CORE engine. The BMad Method has also been expanded to use a new "Scale Adaptive Workflow Engine"™.
- **BMad BoMB (bmb)**: The BMad Builder is your Custom Agent, Workflow, and Module authoring tool - it's now easier than ever to customize existing modules or create whatever you can imagine as a standalone module.
- **Creative Intelligence Suite (cis)**: Unlock innovation, problem-solving, and creative thinking! Brainstorming that was part of the BMad Method in the past is now part of this standalone module along with other workflows. The power of BMad modules still allows modules to borrow from each other - so the CIS, while standalone, also powers the brainstorming abilities for certain agents within the BMad Method!
## What's New in V6-ALPHA
Stability, customizability, installation Q&A, massive prompt improvements.
Everything has been rewritten from the ground up with best practices and advances learned over previous versions, standardizing on prompt format techniques. There is much more core usage of XML or XML-type tags within markdown, with many conventions and standards that drastically increase agent adherence.
**Customizability** is a key theme of this new version. All agents are now customizable by modifying a file under the installation bmad/\_cfg/agents. Every agent installed will generate an agent file that you can customize.
The nice thing about this is when agents change or update in future versions, your customizations in these sidecar files will never be lost! You can change the name, their personas, how they talk, what they call you, and most exciting - what language they communicate in!
The **BMad installer** is 100% new from the ground up. Along the way you will add:
- Your name (what the agents will call you and how you'll author documents)
- What language you want the agents to communicate in
- Module-specific customization options
When you install, a consolidated agent party is created so now when you use party-mode in the IDE, it is super efficient for the agent running the party to simulate all installed agents. Post alpha release, this will manifest itself in many interesting ways in time for beta - but for now, have fun with party mode and epic sprint retrospectives!
Speaking of installation - everything will now install to a single core bmad folder. No more separate root folders for every module! Instead, all will be contained within bmad/.
All IDE selections now support the option to add special install functionality per module.
For example, with the alpha release, if you select the BMad Method and Claude Code, you will have an option to install pre-created Claude sub-agents. Not only do they get installed, but certain workflows will have injected into their instructions key indicators to the agent when to activate the sub-agents, removing some non-determinism.
The sub-agent experience is still undergoing some work, so install them if you choose, and remove them if they become a pain.
When you read about the BoMB below, it will link to more information about various features in this new evolution of BMad Code. One of the exciting features is the new agent types - there are 3 now! The most exciting are the new standalone tiny agents that you can easily generate and deploy free from any module - specialized for your exact needs.
### BMad Method
The BMad Method is significantly transforming and yet more powerful than ever. **Scale Adaptive** is a new term that means when you start the workflow to create a PRD or a GDD (or a simple tech-spec in the case of simple tasks), you will first answer some questions about the scope of the project, new vs. existing codebase and its state, and other questions. This will trigger a leveling of the effort from 0-4, and based on this scale adaptation, it will guide the workflow in different directions.
Right now, this is still a bit alpha feeling and disjointed, but before beta it will be tied together through all four workflow phases with a potential single orchestration if you choose - or you can still jump right in, especially for simple tasks that just need a simple tech-spec and then right off to development.
To test and experience this now, here is the new main flow for BMM v6 alpha:
(Docs will be all linked in soon with new user guide and workflow diagrams coming this week)
**NOTE:** Game Development expansion packs are all being rolled into the official BMad Method module - along with any more game engine platforms being added. Additionally, game development planning for the GDD is not only scale adaptive, but also adapts to the type of game you are making - so you can plan all that is needed for your dream game!
#### **PHASE 1 - Analysis**
**Analyst:**
- `brainstorm-project`
- `research` (market research, deep research, deep research prompt generation)
- `product-brief`
**Game Designer (Optional):**
- `brainstorm-game`
- `game-brief`
- `research`
> **🚨 Alpha Version Notice**
>
> v6-alpha is near-beta quality—stable and vastly improved over v4, but documentation is still being refined. New videos coming soon to the [BMadCode YouTube channel](https://www.youtube.com/@BMadCode)—subscribe for updates!
>
> **Getting Started:**
>
> - **Install v6 Alpha:** `npx bmad-method@alpha install`
> - **Install stable v4:** `npx bmad-method install`
> - **Not sure what to do?** Load any agent and run `*workflow-init` for guided setup
> - **v4 Users:** [View v4 documentation](https://github.com/bmad-code-org/BMAD-METHOD/tree/V4) or [upgrade guide](./docs/v4-to-v6-upgrade.md)
## Universal Human-AI Collaboration Platform
**BMad-CORE** (**C**ollaboration **O**ptimized **R**eflection **E**ngine) amplifies human potential through specialized AI agents. Unlike tools that replace thinking, BMad-CORE guides reflective workflows that bring out your best ideas and AI's full capabilities.
The **BMad-CORE** powers the **BMad Method** (probably why you're here!), but you can also use **BMad Builder** to create custom agents, workflows, and modules for any domain—software development, business strategy, creativity, learning, and more.
**🎯 Human Amplification** • **🎨 Domain Agnostic** • **⚡ Agent-Powered**
## Table of Contents
- [BMad CORE + BMad Method](#bmad-core--bmad-method)
- [Universal Human-AI Collaboration Platform](#universal-human-ai-collaboration-platform)
- [Table of Contents](#table-of-contents)
- [What is BMad-CORE?](#what-is-bmad-core)
- [v6 Core Enhancements](#v6-core-enhancements)
- [C.O.R.E. Philosophy](#core-philosophy)
- [Modules](#modules)
- [BMad Method (BMM) - AI-Driven Agile Development](#bmad-method-bmm---ai-driven-agile-development)
- [v6 Highlights](#v6-highlights)
- [🚀 Quick Start](#-quick-start)
- [BMad Builder (BMB) - Create Custom Solutions](#bmad-builder-bmb---create-custom-solutions)
- [Creative Intelligence Suite (CIS) - Innovation \& Creativity](#creative-intelligence-suite-cis---innovation--creativity)
- [Installation](#installation)
- [🎯 Working with Agents \& Commands](#-working-with-agents--commands)
- [Method 1: Agent Menu (Recommended for Beginners)](#method-1-agent-menu-recommended-for-beginners)
- [Method 2: Direct Slash Commands](#method-2-direct-slash-commands)
- [Method 3: Party Mode Execution](#method-3-party-mode-execution)
- [Key Features](#key-features)
- [🎨 Update-Safe Customization](#-update-safe-customization)
- [🚀 Intelligent Installation](#-intelligent-installation)
- [📁 Clean Architecture](#-clean-architecture)
- [📄 Document Sharding (Advanced)](#-document-sharding-advanced)
- [Documentation](#documentation)
- [Community \& Support](#community--support)
- [Development \& Quality Checks](#development--quality-checks)
- [Testing \& Validation](#testing--validation)
- [Code Quality](#code-quality)
- [Build \& Development](#build--development)
- [Contributing](#contributing)
- [License](#license)
---
#### **PHASE 2 - Planning**
## What is BMad-CORE?
**PM:**
Foundation framework powering all BMad modules:
- `plan-project`
- **Agent Orchestration** - Specialized AI personas with domain expertise
- **Workflow Engine** - Guided multi-step processes with built-in best practices
- **Modular Architecture** - Extend with domain-specific modules (BMM, BMB, CIS, custom)
- **IDE Integration** - Works with Claude Code, Cursor, Windsurf, VS Code, and more
- **Update-Safe Customization** - Your configs persist through all updates
**Game Designer:**
### v6 Core Enhancements
- `plan-game` (calls the same plan-project workflow, but input docs or your answers should drive it towards GDD)
- **🎨 Agent Customization** - Modify names, roles, personalities via `{bmad_folder}/_cfg/agents/` **[→ Customization Guide](./docs/agent-customization-guide.md)**
- **🌐 Multi-Language** - Independent language settings for communication and output
- **👤 Personalization** - Agents adapt to your name, skill level, and preferences
- **🔄 Persistent Config** - Customizations survive module updates
- **⚙️ Flexible Settings** - Configure per-module or globally
- **📦 Web Bundles** - Share agents in Gemini Gems and Custom GPTs **[→ Web Bundles Guide](./docs/web-bundles-gemini-gpt-guide.md)**
### C.O.R.E. Philosophy
- **C**ollaboration: Human-AI partnership leveraging complementary strengths
- **O**ptimized: Battle-tested processes for maximum effectiveness
- **R**eflection: Strategic questioning that unlocks breakthrough solutions
- **E**ngine: Framework orchestrating 19+ specialized agents and 50+ workflows
BMad-CORE doesn't give you answers—it helps you **discover better solutions** through guided reflection.
## Modules
### BMad Method (BMM) - AI-Driven Agile Development
Revolutionary AI-driven agile framework for software and game development. Automatically adapts from single bug fixes to enterprise-scale systems.
#### v6 Highlights
**🎯 Scale-Adaptive Intelligence (3 Planning Tracks)**
Automatically adjusts planning depth and documentation based on project needs:
- **Quick Flow Track:** Fast implementation (tech-spec only) - bug fixes, small features, clear scope
- **BMad Method Track:** Full planning (PRD + Architecture + UX) - products, platforms, complex features
- **Enterprise Method Track:** Extended planning (BMad Method + Security/DevOps/Test) - enterprise requirements, compliance
**🏗️ Four-Phase Methodology**
1. **Phase 1: Analysis** (Optional) - Brainstorming, research, product briefs
2. **Phase 2: Planning** (Required) - Scale-adaptive PRD/tech-spec/GDD
3. **Phase 3: Solutioning** (Track-dependent) - Architecture, (Coming soon: security, DevOps, test strategy)
4. **Phase 4: Implementation** (Iterative) - Story-centric development with just-in-time context
**🤖 12 Specialized Agents**
PM • Analyst • Architect • Scrum Master • Developer • Test Architect (TEA) • UX Designer • Technical Writer • Game Designer • Game Developer • Game Architect • BMad Master (Orchestrator)
**📚 Documentation**
- **[Complete Documentation Hub](./src/modules/bmm/docs/README.md)** - Start here for all BMM guides
- **[Quick Start Guide](./src/modules/bmm/docs/quick-start.md)** - Get building in 15 minutes
- **[Agents Guide](./src/modules/bmm/docs/agents-guide.md)** - Meet all 12 agents (45 min read)
- **[34 Workflow Guides](./src/modules/bmm/docs/README.md#-workflow-guides)** - Complete phase-by-phase reference
- **[BMM Module Overview](./src/modules/bmm/README.md)** - Module structure and quick links
---
#### **PHASE 3 - Solutioning**
## 🚀 Quick Start
**Architect or Game Architect:**
**After installation** (see [Installation](#installation) below), choose your path:
Just like the scale-adjusted planning, architecture is the same. No more document sharding though!
**Three Planning Tracks:**
Now in the IDE you create an architecture that adapts to the type of project you are working on - based on the inputs from your PRD, it will adapt the sections it includes to your project type. No longer is the architecture biased just towards full stack or back-end APIs. There are many more options now, from embedded hardware to mobile to many other options - with many more coming with beta.
1. **⚡ Quick Flow Track** - Bug fixes and small features
- 🐛 Bug fixes in minutes
- ✨ Small features (2-3 related changes)
- 🚀 Rapid prototyping
- **[→ Quick Spec Flow Guide](./src/modules/bmm/docs/quick-spec-flow.md)**
- `solution-architecture`
2. **📋 BMad Method Track** - Products and platforms
- Complete planning (PRD/GDD)
- Architecture decisions
- Story-centric implementation
- **[→ Complete Quick Start Guide](./src/modules/bmm/docs/quick-start.md)**
> **Note:** Testing, DevOps, or security concerns beyond the basics are generally not included in the architecture. If it is more complicated, especially for complex massive undertakings, you will be suggested to pull in specific agents to help with those areas. _(Not released with alpha.0, coming soon)_
3. **🏢 Brownfield Projects** - Add to existing codebases
- Document existing code first
- Then choose Quick Flow or BMad Method
- **[→ Brownfield Guide](./src/modules/bmm/docs/brownfield-guide.md)**
Once the full architecture is complete, you can still use the PO to run the checklist to validate the epics and stories are still correct - although the architect should also be keeping them updated as needed (needs some tuning during alpha). Once done, then it's time to create the tech spec for your first epic.
**Not sure which path?** Run `*workflow-init` and let BMM analyze your project goal and recommend the right track.
- `tech-spec`
The tech spec pulls all technical information from all planning thus far, along with any further research needed from the web to produce an **Epic Tech Spec** - each epic will have one. This is going to make the SM even more capable of finding the info it needs for each story when we get to phase 4!
**[📚 Learn More: Scale Adaptive System](./src/modules/bmm/docs/scale-adaptive-system.md)** - How BMM adapts across three planning tracks
---
#### **PHASE 4 - Implementation**
### BMad Builder (BMB) - Create Custom Solutions
And now here we are at phase 4 - where we, just like in BMad Method of yore, use the SM and the Dev Agent. No more QA agent here though; the dev now has a dev task and also a senior dev agent review task.
Build your own agents, workflows, and modules using the BMad-CORE framework.
**Scrum Master (SM) Tasks:**
**What You Can Build:**
Before the dev starts, the SM will:
- **Custom Agents** - Domain experts with specialized knowledge
- **Guided Workflows** - Multi-step processes for any task
- **Complete Modules** - Full solutions for specific domains
- **Three Agent Types** - Full module, hybrid, or standalone
1. `create-story`
2. `story-context` _(NEW!)_
**Perfect For:** Creating domain-specific solutions (legal, medical, finance, education, creative, etc.) or extending BMM with custom development workflows.
**Story-context** is a game-changing new feature beyond what we had with create-story in the past. Create-story still pulls in all the info it needs from the tech-spec and elsewhere as needed (including previously completed stories), but the generation of the new story-context takes it to a whole new level.
**Documentation:**
This real-time prep means no more generic devLoadAlways list of story files. During the alpha phase, we will be tuning what goes into this context, but this is going to supercharge and specialize your dev to the story at hand!
- **[BMB Module Overview](./src/modules/bmb/README.md)** - Complete reference
- **[Create Agent Workflow](./src/modules/bmb/workflows/create-agent/README.md)** - Build custom agents
- **[Create Workflow](./src/modules/bmb/workflows/create-workflow/README.md)** - Design guided processes
- **[Create Module](./src/modules/bmb/workflows/create-module/README.md)** - Package complete solutions
### Creative Intelligence Suite (CIS) - Innovation & Creativity
AI-powered creative facilitation using proven methodologies and techniques.
**5 Interactive Workflows:**
- **Brainstorming** - Generate and refine ideas with 30+ techniques
- **Design Thinking** - Human-centered problem solving
- **Problem Solving** - Systematic breakthrough techniques
- **Innovation Strategy** - Disruptive business model thinking
- **Storytelling** - Compelling narrative frameworks
**5 Specialized Agents:** Each with unique facilitation styles and domain expertise
**Shared Resource:** CIS workflows are used by other modules (BMM's `brainstorm-project` uses CIS brainstorming)
**Documentation:**
- **[CIS Module Overview](./src/modules/cis/README.md)** - Complete reference
- **[CIS Workflows Guide](./src/modules/cis/workflows/README.md)** - All 5 creative workflows
---
> **🎉 There are many other exciting changes throughout for you to discover during the alpha BMad Method module!**
## Installation
## CIS
**Prerequisites:** Node.js v20+ ([Download](https://nodejs.org))
The CIS has 5 agents to try out, each with their own workflow! This is a new module that will drastically change over time.
```bash
# v6 Alpha (recommended for new projects)
npx bmad-method@alpha install
- [CIS Readme](./src/modules/cis/readme.md)
# Stable v4 (production)
npx bmad-method install
```
### BoMB: BMad Builder
The installer provides:
#### Agent Docs
1. **Module Selection** - Choose BMM, BMB, CIS (or all)
2. **Configuration** - Your name, language preferences, game dev options
3. **IDE Integration** - Automatic setup for your IDE
- [Agent Architecture](src/modules/bmb/workflows/create-agent/agent-architecture)
- [Agent command patterns](src/modules/bmb/workflows/create-agent/agent-command-patterns.md)
- [Agent Types](src/modules/bmb/workflows/create-agent/agent-types.md)
- [Communication Styles](src/modules/bmb/workflows/create-agent/communication-styles.md)
**Installation creates:**
#### Modules
```
your-project/
└── {bmad_folder}/
├── core/ # Core framework + BMad Master agent
├── bmm/ # BMad Method (12 agents, 34 workflows)
├── bmb/ # BMad Builder (1 agent, 7 workflows)
├── cis/ # Creative Intelligence (5 agents, 5 workflows)
└── _cfg/ # Your customizations (survives updates)
└── agents/ # Agent customization files
```
Modules are what we used to call Expansion Packs. A new repository to contribute modules is coming very soon with the beta release where you can start contributing modules - we just want to make sure the final format and conventions are stable. A module will generally be made up of agents and workflows. Tasks are still also possible, but generally should be avoided in favor of more flexible workflows. Workflows can have sub-workflows and soon will support a standardized multi-workflow orchestration pattern that the BMad master will be able to guide users through.
**Next Steps:**
- [Module Structure](src/modules/bmb/workflows/create-module/module-structure.md)
1. Load any agent in your IDE
2. Run `*workflow-init` to set up your project workflow path
3. Follow the [Quick Start](#-quick-start) guide above to choose your planning track
#### Workflows
**Alternative:** [**Web Bundles**](./docs/USING_WEB_BUNDLES.md) - Use BMAD agents in Claude Projects, ChatGPT, or Gemini without installation
What used to be tasks and create-doc templates are now all workflows! Simpler, yet more powerful and support many ways of achieving many different outcomes! A lot more documentation will be coming. This document is used by the agent builder to generate workflows or convert to workflows, but there is a lot more than what we have documented here in this alpha doc.
---
- [Workflow Creation Guide](src/modules/bmb/workflows/create-workflow/workflow-creation-guide)
## 🎯 Working with Agents & Commands
### Installer Changes
**Multiple Ways to Execute Workflows:**
- [IDE Injections](docs/installers-bundlers/ide-injections)
- [Installers Modules Platforms References](docs/installers-bundlers/installers-modules-platforms-reference)
- [Web Bundler Usage](docs/installers-bundlers/web-bundler-usage)
- [Claude Code Sub Module BMM Installer](src/modules/bmm/sub-modules/claude-code/readme.md)
BMad is flexible - you can execute workflows in several ways depending on your preference and IDE:
## Support & Community
### Method 1: Agent Menu (Recommended for Beginners)
- 💬 [Discord Community](https://discord.gg/gk8jAdXWmj) - Get help, share ideas, collaborate
- 🐛 [Issue Tracker](https://github.com/bmad-code-org/BMAD-METHOD/issues) - Bug reports and feature requests
- 💬 [Discussions](https://github.com/bmad-code-org/BMAD-METHOD/discussions) - Community conversations
1. **Load an agent** in your IDE (see [IDE-specific instructions](./docs/ide-info/))
2. **Wait for the menu** to appear showing available workflows
3. **Tell the agent** what to run using natural language or shortcuts:
- Natural: "Run workflow-init"
- Shortcut: `*workflow-init`
- Menu number: "Run option 2"
### Method 2: Direct Slash Commands
**Execute workflows directly** using slash commands:
```
/bmad:bmm:workflows:workflow-init
/bmad:bmm:workflows:prd
/bmad:bmm:workflows:dev-story
```
**Tip:** While you can run these without loading an agent first, **loading an agent is still recommended** - it can make a difference with certain workflows.
**Benefits:**
- ✅ Mix and match any agent with any workflow
- ✅ Run workflows not in the loaded agent's menu
- ✅ Faster access for experienced users who know the command names
### Method 3: Party Mode Execution
**Run workflows with multi-agent collaboration:**
1. Start party mode: `/bmad:core:workflows:party-mode`
2. Execute any workflow - **the entire team collaborates on it**
3. Get diverse perspectives from multiple specialized agents
**Perfect for:** Strategic decisions, complex workflows, cross-functional tasks
---
> **📌 IDE-Specific Note:**
>
> Slash command format varies by IDE:
>
> - **Claude Code:** `/bmad:bmm:workflows:prd`
> - **Cursor/Windsurf:** May use different syntax - check your IDE's [documentation](./docs/ide-info/)
> - **VS Code with Copilot Chat:** Syntax may differ
>
> See **[IDE Integration Guides](./docs/ide-info/)** for your specific IDE's command format.
---
## Key Features
### 🎨 Update-Safe Customization
Modify agents without touching core files:
- Override agent names, personalities, expertise via `{bmad_folder}/_cfg/agents/`
- Customizations persist through all updates
- Multi-language support (communication + output)
- Module-level or global configuration
### 🚀 Intelligent Installation
Smart setup that adapts to your environment:
- Auto-detects v4 installations for smooth upgrades
- Configures IDE integrations (Claude Code, Cursor, Windsurf, VS Code)
- Resolves cross-module dependencies
- Generates unified agent/workflow manifests
### 📁 Clean Architecture
Everything in one place:
- Single `{bmad_folder}/` folder (no scattered files, default folder name is .bmad)
- Modules live side-by-side (core, bmm, bmb, cis)
- Your configs in `_cfg/` (survives updates)
- Easy to version control or exclude
### 📄 Document Sharding (Advanced)
Optional optimization for large projects (BMad Method and Enterprise tracks):
- **Massive Token Savings** - Phase 4 workflows load only needed sections (90%+ reduction)
- **Automatic Support** - All workflows handle whole or sharded documents seamlessly
- **Easy Setup** - Built-in tool splits documents by headings
- **Smart Discovery** - Workflows auto-detect format
**[→ Document Sharding Guide](./docs/document-sharding-guide.md)**
---
## Documentation
**Module Documentation:**
- **[BMM Complete Documentation Hub](./src/modules/bmm/docs/README.md)** - All BMM guides, FAQs, troubleshooting
- **[BMB Module Reference](./src/modules/bmb/README.md)** - Build custom agents and workflows
- **[CIS Workflows Guide](./src/modules/cis/workflows/README.md)** - Creative facilitation workflows
**Customization & Sharing:**
- **[Agent Customization Guide](./docs/agent-customization-guide.md)** - Customize agent names, personas, and behaviors
- **[Web Bundles for Gemini & GPT](./docs/web-bundles-gemini-gpt-guide.md)** - Use BMad agents in Gemini Gems and Custom GPTs
**Additional Resources:**
- **[Documentation Index](./docs/index.md)** - All project documentation
- **[v4 to v6 Upgrade Guide](./docs/v4-to-v6-upgrade.md)** - Migration instructions
- **[CLI Tool Guide](./tools/cli/README.md)** - Installer and build tool reference
- **[Contributing Guide](./CONTRIBUTING.md)** - How to contribute
---
## Community & Support
- 💬 **[Discord Community](https://discord.gg/gk8jAdXWmj)** - Get help, share projects (#general-dev, #bugs-issues)
- 🐛 **[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 walkthroughs
-**[Star this repo](https://github.com/bmad-code-org/BMAD-METHOD)** - Stay updated on releases
---
## Development & Quality Checks
**For contributors working on the BMAD codebase:**
**Requirements:** Node.js 22+ (see `.nvmrc`). Run `nvm use` to switch to the correct version.
### Testing & Validation
```bash
# Run all quality checks (comprehensive - use before pushing)
npm test
# Individual test suites
npm run test:schemas # Agent schema validation (fixture-based)
npm run test:install # Installation component tests (compilation)
npm run validate:schemas # YAML schema validation
npm run validate:bundles # Web bundle integrity
```
### Code Quality
```bash
# Lint check
npm run lint
# Auto-fix linting issues
npm run lint:fix
# Format check
npm run format:check
# Auto-format all files
npm run format:fix
```
### Build & Development
```bash
# Bundle for web deployment
npm run bundle
# Test local installation
npm run install:bmad
```
**Pre-commit Hook:** Auto-fixes changed files (lint-staged) + validates everything (npm test)
**CI:** GitHub Actions runs all quality checks in parallel on every PR
---
## Contributing
We welcome contributions and new module development!
We welcome contributions! See **[CONTRIBUTING.md](CONTRIBUTING.md)** for:
📋 **[Read CONTRIBUTING.md](CONTRIBUTING.md)** - Complete contribution guide
- Code contribution guidelines
- Documentation improvements
- Module development
- Issue reporting
---
## License
MIT License - see [LICENSE](LICENSE) for details.
**MIT License** - See [LICENSE](LICENSE) for details
## Trademark Notice
**Trademarks:** BMAD™ and BMAD-METHOD™ are trademarks of BMad Code, LLC.
BMAD™ and BMAD-METHOD™ are trademarks of BMad Code, LLC. All rights reserved.
---
[![Contributors](https://contrib.rocks/image?repo=bmad-code-org/BMAD-METHOD)](https://github.com/bmad-code-org/BMAD-METHOD/graphs/contributors)

View File

@@ -0,0 +1,95 @@
# Bundle Distribution Setup (For Maintainers)
**Audience:** BMAD maintainers setting up bundle auto-publishing
---
## One-Time Setup
Run these commands once to enable auto-publishing:
```bash
# 1. Create bmad-bundles repo
gh repo create bmad-code-org/bmad-bundles --public --description "BMAD Web Bundles"
# 2. Ensure `main` exists (GitHub Pages API requires a source branch)
git clone git@github.com:bmad-code-org/bmad-bundles.git
cd bmad-bundles
printf '# bmad-bundles\n\nStatic bundles published from BMAD-METHOD.\n' > README.md
git add README.md
git commit -m "Initial commit"
git push origin main
cd -
# 3. Enable GitHub Pages (API replacement for removed --enable-pages flag)
gh api repos/bmad-code-org/bmad-bundles/pages --method POST -f source[branch]=main -f source[path]=/
# (Optional) confirm status
gh api repos/bmad-code-org/bmad-bundles/pages --jq '{status,source}'
# 4. Create GitHub PAT and add as secret
# Go to: https://github.com/settings/tokens/new
# Scopes: repo (full control)
# Name: bmad-bundles-ci
# Then add as secret:
gh secret set BUNDLES_PAT --repo bmad-code-org/BMAD-METHOD
# (paste PAT when prompted)
```
If the Pages POST returns `409`, the site already exists. If it returns `422` about `main` missing, redo step 2 to push the initial commit.
**Done.** Bundles auto-publish on every main merge.
---
## How It Works
**On main merge:**
- `.github/workflows/bundle-latest.yaml` runs
- Publishes to: `https://bmad-code-org.github.io/bmad-bundles/`
**On release:**
- `npm run release:patch` runs `.github/workflows/manual-release.yaml`
- Attaches bundles to: `https://github.com/bmad-code-org/BMAD-METHOD/releases/latest`
---
## Testing
```bash
# Test latest channel
git push origin main
# Wait 2 min, then: curl https://bmad-code-org.github.io/bmad-bundles/
# Test stable channel
npm run release:patch
# Check: gh release view
```
---
## Troubleshooting
**"Permission denied" or auth errors**
```bash
# Verify PAT secret exists
gh secret list --repo bmad-code-org/BMAD-METHOD | grep BUNDLES_PAT
# If missing, recreate PAT and add secret:
gh secret set BUNDLES_PAT --repo bmad-code-org/BMAD-METHOD
```
**GitHub Pages not updating / need to re-check config**
```bash
gh api repos/bmad-code-org/bmad-bundles/pages --jq '{status,source,html_url}'
```
---
## Distribution URLs
**Stable:** `https://github.com/bmad-code-org/BMAD-METHOD/releases/latest`
**Latest:** `https://bmad-code-org.github.io/bmad-bundles/`

View File

@@ -0,0 +1,208 @@
# Agent Customization Guide
Customize BMad agents without modifying core files. All customizations persist through updates.
## Quick Start
**1. Locate Customization Files**
After installation, find agent customization files in:
```
{bmad_folder}/_cfg/agents/
├── core-bmad-master.customize.yaml
├── bmm-dev.customize.yaml
├── bmm-pm.customize.yaml
└── ... (one file per installed agent)
```
**2. Edit Any Agent**
Open the `.customize.yaml` file for the agent you want to modify. All sections are optional - customize only what you need.
**3. Rebuild the Agent**
After editing, IT IS CRITICAL to rebuild the agent to apply changes:
```bash
npx bmad-method@alpha install # and then select option to compile all agents
# OR for individual agent only
npx bmad-method@alpha build <agent-name>
# Examples:
npx bmad-method@alpha build bmm-dev
npx bmad-method@alpha build core-bmad-master
npx bmad-method@alpha build bmm-pm
```
## What You Can Customize
### Agent Name
Change how the agent introduces itself:
```yaml
agent:
metadata:
name: 'Spongebob' # Default: "Amelia"
```
### Persona
Replace the agent's personality, role, and communication style:
```yaml
persona:
role: 'Senior Full-Stack Engineer'
identity: 'Lives in a pineapple (under the sea)'
communication_style: 'Spongebob'
principles:
- 'Never Nester, Spongebob Devs hate nesting more than 2 levels deep'
- 'Favor composition over inheritance'
```
**Note:** The persona section replaces the entire default persona (not merged).
### Memories
Add persistent context the agent will always remember:
```yaml
memories:
- 'Works at Krusty Krab'
- 'Favorite Celebrity: David Hasslehoff'
- 'Learned in Epic 1 that its not cool to just pretend that tests have passed'
```
### Custom Menu Items
Add your own workflows to the agent's menu:
```yaml
menu:
- trigger: my-workflow
workflow: '{project-root}/custom/my-workflow.yaml'
description: My custom workflow
- trigger: deploy
action: '#deploy-prompt'
description: Deploy to production
```
**Don't include:** `*` prefix or `help`/`exit` items - these are auto-injected.
### Critical Actions
Add instructions that execute before the agent starts:
```yaml
critical_actions:
- 'Always check git status before making changes'
- 'Use conventional commit messages'
```
### Custom Prompts
Define reusable prompts for `action="#id"` menu handlers:
```yaml
prompts:
- id: deploy-prompt
content: |
Deploy the current branch to production:
1. Run all tests
2. Build the project
3. Execute deployment script
```
## Real-World Examples
**Example 1: Customize Developer Agent for TDD**
```yaml
# {bmad_folder}/_cfg/agents/bmm-dev.customize.yaml
agent:
metadata:
name: 'TDD Developer'
memories:
- 'Always write tests before implementation'
- 'Project uses Jest and React Testing Library'
critical_actions:
- 'Review test coverage before committing'
```
**Example 2: Add Custom Deployment Workflow**
```yaml
# {bmad_folder}/_cfg/agents/bmm-dev.customize.yaml
menu:
- trigger: deploy-staging
workflow: '{project-root}/.bmad-custom/deploy-staging.yaml'
description: Deploy to staging environment
- trigger: deploy-prod
workflow: '{project-root}/.bmad-custom/deploy-prod.yaml'
description: Deploy to production (with approval)
```
**Example 3: Multilingual Product Manager**
```yaml
# {bmad_folder}/_cfg/agents/bmm-pm.customize.yaml
persona:
role: 'Bilingual Product Manager'
identity: 'Expert in US and LATAM markets'
communication_style: 'Clear, strategic, with cultural awareness'
principles:
- 'Consider localization from day one'
- 'Balance business goals with user needs'
memories:
- 'User speaks English and Spanish'
- 'Target markets: US and Latin America'
```
## Tips
- **Start Small:** Customize one section at a time and rebuild to test
- **Backup:** Copy customization files before major changes
- **Update-Safe:** Your customizations in `_cfg/` survive all BMad updates
- **Per-Project:** Customization files are per-project, not global
- **Version Control:** Consider committing `_cfg/` to share customizations with your team
## Module vs. Global Config
**Module-Level (Recommended):**
- Customize agents per-project in `{bmad_folder}/_cfg/agents/`
- Different projects can have different agent behaviors
**Global Config (Coming Soon):**
- Set defaults that apply across all projects
- Override with project-specific customizations
## Troubleshooting
**Changes not appearing?**
- Make sure you ran `npx bmad-method build <agent-name>` after editing
- Check YAML syntax is valid (indentation matters!)
- Verify the agent name matches the file name pattern
**Agent not loading?**
- Check for YAML syntax errors
- Ensure required fields aren't left empty if you uncommented them
- Try reverting to the template and rebuilding
**Need to reset?**
- Delete the `.customize.yaml` file
- Run `npx bmad-method build <agent-name>` to regenerate defaults
## Next Steps
- **[BMM Agents Guide](../src/modules/bmm/docs/agents-guide.md)** - Learn about all 12 BMad Method agents
- **[BMB Create Agent Workflow](../src/modules/bmb/workflows/create-agent/README.md)** - Build completely custom agents
- **[BMM Complete Documentation](../src/modules/bmm/docs/README.md)** - Full BMad Method reference

View File

@@ -1,19 +0,0 @@
# Codebase Flattener Tool
BMad-Core includes a powerful codebase flattener for preparing existing projects to the web for AI Analysis
```bash
# Basic usage - creates flattened-codebase.xml
npx bmad-method flatten
# Custom input/output
npx bmad-method flatten --input /path/to/source --output project.xml
```
Features:
- AI-optimized XML output format
- Smart filtering with .gitignore respect
- Binary file detection and exclusion
- Real-time progress tracking
- Comprehensive completion statistics

View File

@@ -0,0 +1,447 @@
# Document Sharding Guide
Comprehensive guide to BMad Method's document sharding system for managing large planning and architecture documents.
## Table of Contents
- [What is Document Sharding?](#what-is-document-sharding)
- [When to Use Sharding](#when-to-use-sharding)
- [How Sharding Works](#how-sharding-works)
- [Using the Shard-Doc Tool](#using-the-shard-doc-tool)
- [Workflow Support](#workflow-support)
- [Best Practices](#best-practices)
- [Examples](#examples)
## What is Document Sharding?
Document sharding splits large markdown files into smaller, organized files based on level 2 headings (`## Heading`). This enables:
- **Selective Loading** - Workflows load only the sections they need
- **Reduced Token Usage** - Massive efficiency gains for large projects
- **Better Organization** - Logical section-based file structure
- **Maintained Context** - Index file preserves document structure
### Architecture
```
Before Sharding:
docs/
└── PRD.md (large 50k token file)
After Sharding:
docs/
└── prd/
├── index.md # Table of contents with descriptions
├── overview.md # Section 1
├── user-requirements.md # Section 2
├── technical-requirements.md # Section 3
└── ... # Additional sections
```
## When to Use Sharding
### Ideal Candidates
**Large Multi-Epic Projects:**
- Very large complex PRDs
- Architecture documents with multiple system layers
- Epic files with 4+ epics (especially for Phase 4)
- UX design specs covering multiple subsystems
**Token Thresholds:**
- **Consider sharding**: Documents > 20k tokens
- **Strongly recommended**: Documents > 40k tokens
- **Critical for efficiency**: Documents > 60k tokens
### When NOT to Shard
**Small Projects:**
- Single epic projects
- Level 0-1 projects (tech-spec only)
- Documents under 10k tokens
- Quick prototypes
**Frequently Updated Docs:**
- Active work-in-progress documents
- Documents updated daily
- Documents where whole-file context is essential
## How Sharding Works
### Sharding Process
1. **Tool Execution**: Run `npx @kayvan/markdown-tree-parser source.md destination/` - this is abstracted with the core shard-doc task which is installed as a slash command or manual task rule depending on your tools.
2. **Section Extraction**: Tool splits by level 2 headings
3. **File Creation**: Each section becomes a separate file
4. **Index Generation**: `index.md` created with structure and descriptions
### Workflow Discovery
BMad workflows use a **dual discovery system**:
1. **Try whole document first** - Look for `document-name.md`
2. **Check for sharded version** - Look for `document-name/index.md`
3. **Priority rule** - Whole document takes precedence if both exist
### Loading Strategies
**Full Load (Phase 1-3 workflows):**
```
If sharded:
- Read index.md
- Read ALL section files
- Treat as single combined document
```
**Selective Load (Phase 4 workflows):**
```
If sharded epics and working on Epic 3:
- Read epics/index.md
- Load ONLY epics/epic-3.md
- Skip all other epic files
- 90%+ token savings!
```
## Using the Shard-Doc Tool
### CLI Command
```bash
# Activate bmad-master or analyst agent, then:
/shard-doc
```
### Interactive Process
```
Agent: Which document would you like to shard?
User: docs/PRD.md
Agent: Default destination: docs/prd/
Accept default? [y/n]
User: y
Agent: Sharding PRD.md...
✓ Created 12 section files
✓ Generated index.md
✓ Complete!
```
### What Gets Created
**index.md structure:**
```markdown
# PRD - Index
## Sections
1. [Overview](./overview.md) - Project vision and objectives
2. [User Requirements](./user-requirements.md) - Feature specifications
3. [Epic 1: Authentication](./epic-1-authentication.md) - User auth system
4. [Epic 2: Dashboard](./epic-2-dashboard.md) - Main dashboard UI
...
```
**Individual section files:**
- Named from heading text (kebab-case)
- Contains complete section content
- Preserves all markdown formatting
- Can be read independently
## Workflow Support
### Universal Support
**All BMM workflows support both formats:**
- ✅ Whole documents
- ✅ Sharded documents
- ✅ Automatic detection
- ✅ Transparent to user
### Workflow-Specific Patterns
#### Phase 1-3 (Full Load)
Workflows load entire sharded documents:
- `product-brief` - Research, brainstorming docs
- `prd` - Product brief, research
- `gdd` - Game brief, research
- `create-ux-design` - PRD, brief, epics
- `tech-spec` - Brief, research
- `architecture` - PRD, epics, UX design
- `solutioning-gate-check` - All planning docs
#### Phase 4 (Selective Load)
Workflows load only needed sections:
**sprint-planning** (Full Load):
- Needs ALL epics to build complete status
**epic-tech-context, create-story, story-context, code-review** (Selective):
```
Working on Epic 3, Story 2:
✓ Load epics/epic-3.md only
✗ Skip epics/epic-1.md, epic-2.md, epic-4.md, etc.
Result: 90%+ token reduction for 10-epic projects!
```
### Input File Patterns
Workflows use standardized patterns:
```yaml
input_file_patterns:
prd:
whole: '{output_folder}/*prd*.md'
sharded: '{output_folder}/*prd*/index.md'
epics:
whole: '{output_folder}/*epic*.md'
sharded_index: '{output_folder}/*epic*/index.md'
sharded_single: '{output_folder}/*epic*/epic-{{epic_num}}.md'
```
## Best Practices
### Sharding Strategy
**Do:**
- ✅ Shard after planning phase complete
- ✅ Keep level 2 headings well-organized
- ✅ Use descriptive section names
- ✅ Shard before Phase 4 implementation
- ✅ Keep original file as backup initially
**Don't:**
- ❌ Shard work-in-progress documents
- ❌ Shard small documents (<20k tokens)
- Mix sharded and whole versions
- Manually edit index.md structure
### Naming Conventions
**Good Section Names:**
```markdown
## Epic 1: User Authentication
## Technical Requirements
## System Architecture
## UX Design Principles
```
**Poor Section Names:**
```markdown
## Section 1
## Part A
## Details
## More Info
```
### File Management
**When to Re-shard:**
- Significant structural changes to document
- Adding/removing major sections
- After major refactoring
**Updating Sharded Docs:**
1. Edit individual section files directly
2. OR edit original, delete sharded folder, re-shard
3. Don't manually edit index.md
## Examples
### Example 1: Large PRD
**Scenario:** 15-epic project, PRD is 45k tokens
**Before Sharding:**
```
Every workflow loads entire 45k token PRD
Epic-tech-context for Epic 3: 45k tokens
Create-story for Epic 3: 45k tokens
```
**After Sharding:**
```bash
/shard-doc
Source: docs/PRD.md
Destination: docs/prd/
Created:
prd/index.md
prd/overview.md (3k tokens)
prd/epic-1-auth.md (3k tokens)
prd/epic-2-dashboard.md (3k tokens)
prd/epic-3-reports.md (3k tokens)
...15 epic files
```
**Result:**
```
Epic-tech-context for Epic 3: 3k tokens (93% reduction!)
Create-story for Epic 3: 3k tokens (93% reduction!)
```
### Example 2: Sharding Epics File
**Scenario:** 8 epics with detailed stories, 35k tokens total
```bash
/shard-doc
Source: docs/bmm-epics.md
Destination: docs/epics/
Created:
epics/index.md
epics/epic-1.md
epics/epic-2.md
...
epics/epic-8.md
```
**Efficiency Gain:**
```
Working on Epic 5 stories:
Old: Load all 8 epics (35k tokens)
New: Load epic-5.md only (4k tokens)
Savings: 88% reduction
```
### Example 3: Architecture Document
**Scenario:** Multi-layer system architecture, 28k tokens
```bash
/shard-doc
Source: docs/architecture.md
Destination: docs/architecture/
Created:
architecture/index.md
architecture/system-overview.md
architecture/frontend-architecture.md
architecture/backend-services.md
architecture/data-layer.md
architecture/infrastructure.md
architecture/security-architecture.md
```
**Benefit:** Code-review workflow can reference specific architectural layers without loading entire architecture doc.
## Custom Workflow Integration
### For Workflow Builders
When creating custom workflows that load large documents:
**1. Add input_file_patterns to workflow.yaml:**
```yaml
input_file_patterns:
your_document:
whole: '{output_folder}/*your-doc*.md'
sharded: '{output_folder}/*your-doc*/index.md'
```
**2. Add discovery instructions to instructions.md:**
```markdown
## Document Discovery
1. Search for whole document: _your-doc_.md
2. Check for sharded version: _your-doc_/index.md
3. If sharded: Read index + ALL sections (or specific sections if selective load)
4. Priority: Whole document first
```
**3. Choose loading strategy:**
- **Full Load**: Read all sections when sharded
- **Selective Load**: Read only relevant sections (requires section identification logic)
### Pattern Templates
**Full Load Pattern:**
```xml
<action>Search for document: {output_folder}/*doc-name*.md</action>
<action>If not found, check for sharded: {output_folder}/*doc-name*/index.md</action>
<action if="sharded found">Read index.md to understand structure</action>
<action if="sharded found">Read ALL section files listed in index</action>
<action if="sharded found">Combine content as single document</action>
```
**Selective Load Pattern (with section ID):**
```xml
<action>Determine section needed (e.g., epic_num = 3)</action>
<action>Check for sharded version: {output_folder}/*doc-name*/index.md</action>
<action if="sharded found">Read ONLY the specific section file needed</action>
<action if="sharded found">Skip all other section files</action>
```
## Troubleshooting
### Common Issues
**Both whole and sharded exist:**
- Workflows will use whole document (priority rule)
- Delete or archive the one you don't want
**Index.md out of sync:**
- Delete sharded folder
- Re-run shard-doc on original
**Workflow can't find document:**
- Check file naming matches patterns (`*prd*.md`, `*epic*.md`, etc.)
- Verify index.md exists in sharded folder
- Check output_folder path in config
**Sections too granular:**
- Combine sections in original document
- Use fewer level 2 headings
- Re-shard
## Related Documentation
- [shard-doc Tool](../src/core/tools/shard-doc.xml) - Tool implementation
- [BMM Workflows Guide](../src/modules/bmm/workflows/README.md) - Workflow overview
- [Workflow Creation Guide](../src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md) - Custom workflow patterns
---
**Document sharding is optional but powerful** - use it when efficiency matters for large projects!

View File

@@ -6,8 +6,8 @@ BMAD agents can be installed in multiple locations based on your setup.
### Common Locations
- User Home: `~/.auggie/commands/`
- Project: `.auggie/commands/`
- User Home: `~/.augment/commands/`
- Project: `.augment/commands/`
- Custom paths you selected
### How to Use

View File

@@ -13,13 +13,13 @@ BMAD agents are installed as slash commands in `.claude/commands/bmad/`.
### Examples
```
/bmad-dev - Activate development agent
/bmad-architect - Activate architect agent
/bmad-task-setup - Execute setup task
/bmad:bmm:agents:dev - Activate development agent
/bmad:bmm:agents:architect - Activate architect agent
/bmad:bmm:workflows:dev-story - Execute dev-story workflow
```
### Notes
- Commands are autocompleted when you type `/`
- Agent remains active for the conversation
- Start new conversation to switch agents
- Start a new conversation to switch agents

View File

@@ -2,31 +2,20 @@
## Activating Agents
BMAD agents are documented in `AGENTS.md` file in project root.
### CLI Mode
1. **Reference Agent**: Type `@{agent-name}` in prompt
2. **Execute Task**: Type `@task-{task-name}`
3. **Active Session**: Agent remains active for conversation
### Web Mode
1. **Navigate**: Go to Agents section in web interface
2. **Select Agent**: Click to activate agent persona
3. **Session**: Agent active for browser session
BMAD agents, tasks and workflows are installed as custom prompts in
`$CODEX_HOME/prompts/bmad-*.md` files. If `CODEX_HOME` is not set, it
defaults to `$HOME/.codex/`.
### Examples
```
@dev - Activate development agent
@architect - Activate architect agent
@task-setup - Execute setup task
/bmad-bmm-agents-dev - Activate development agent
/bmad-bmm-agents-architect - Activate architect agent
/bmad-bmm-workflows-dev-story - Execute dev-story workflow
```
### Notes
- All agents documented in AGENTS.md
- CLI: Reference with @ syntax
- Web: Use interface to select
- One agent active at a time
Prompts are autocompleted when you type /
Agent remains active for the conversation
Start a new conversation to switch agents

View File

@@ -7,7 +7,7 @@ BMAD agents are installed as commands in `.crush/commands/bmad/`.
### How to Use
1. **Open Command Palette**: Use Crush command interface
2. **Navigate**: Browse to `bmad/{module}/agents/`
2. **Navigate**: Browse to `{bmad_folder}/{module}/agents/`
3. **Select Agent**: Choose the agent command
4. **Execute**: Run to activate agent persona

View File

@@ -6,20 +6,20 @@ BMAD agents are installed in `.cursor/rules/bmad/` as MDC rules.
### How to Use
1. **Reference in Chat**: Use `@bmad/{module}/agents/{agent-name}`
2. **Include Entire Module**: Use `@bmad/{module}`
3. **Reference Index**: Use `@bmad/index` for all available agents
1. **Reference in Chat**: Use `@{bmad_folder}/{module}/agents/{agent-name}`
2. **Include Entire Module**: Use `@{bmad_folder}/{module}`
3. **Reference Index**: Use `@{bmad_folder}/index` for all available agents
### Examples
```
@bmad/core/agents/dev - Activate dev agent
@bmad/bmm/agents/architect - Activate architect agent
@bmad/core - Include all core agents/tasks
@{bmad_folder}/core/agents/dev - Activate dev agent
@{bmad_folder}/bmm/agents/architect - Activate architect agent
@{bmad_folder}/core - Include all core agents/tasks
```
### Notes
- Rules are Manual type - only loaded when explicitly referenced
- No automatic context pollution
- Can combine multiple agents: `@bmad/core/agents/dev @bmad/core/agents/test`
- Can combine multiple agents: `@{bmad_folder}/core/agents/dev @{bmad_folder}/core/agents/test`

View File

@@ -7,7 +7,7 @@ BMAD agents are installed as commands in `.iflow/commands/bmad/`.
### How to Use
1. **Access Commands**: Use iFlow command interface
2. **Navigate**: Browse to `bmad/agents/` or `bmad/tasks/`
2. **Navigate**: Browse to `{bmad_folder}/agents/` or `{bmad_folder}/tasks/`
3. **Select**: Choose the agent or task command
4. **Execute**: Run to activate
@@ -22,8 +22,8 @@ BMAD agents are installed as commands in `.iflow/commands/bmad/`.
### Examples
```
/bmad/agents/core-dev - Activate dev agent
/bmad/tasks/core-setup - Execute setup task
/{bmad_folder}/agents/core-dev - Activate dev agent
/{bmad_folder}/tasks/core-setup - Execute setup task
```
### Notes

24
docs/ide-info/opencode.md Normal file
View File

@@ -0,0 +1,24 @@
# BMAD Method - OpenCode Instructions
## Activating Agents
BMAD agents are installed as OpenCode agents in `.opencode/agent/BMAD/{module_name}` and workflow commands in `.opencode/command/BMAD/{module_name}`.
### How to Use
1. **Switch Agents**: Press **Tab** to cycle through primary agents or select using the `/agents`
2. **Activate Agent**: Once the Agent is selected say `hello` or any prompt to activate that agent persona
3. **Execute Commands**: Type `/bmad` to see and execute bmad workflow commands (commands allow for fuzzy matching)
### Examples
```
/agents - to see a list of agents and switch between them
/{bmad_folder}/bmm/workflows/workflow-init - Activate the workflow-init command
```
### Notes
- Press **Tab** to switch between primary agents (Analyst, Architect, Dev, etc.)
- Commands are autocompleted when you type `/` and allow for fuzzy matching
- Workflow commands execute in current agent context, make sure you have the right agent activated before running a command

227
docs/index.md Normal file
View File

@@ -0,0 +1,227 @@
# BMad Documentation Index
Complete map of all BMad Method v6 documentation with recommended reading paths.
---
## 🎯 Getting Started (Start Here!)
**New users:** Start with one of these based on your situation:
| Your Situation | Start Here | Then Read |
| ---------------------- | --------------------------------------------------------------- | ------------------------------------------------------------- |
| **Brand new to BMad** | [Quick Start Guide](../src/modules/bmm/docs/quick-start.md) | [BMM Workflows Guide](../src/modules/bmm/workflows/README.md) |
| **Upgrading from v4** | [v4 to v6 Upgrade Guide](./v4-to-v6-upgrade.md) | [Quick Start Guide](../src/modules/bmm/docs/quick-start.md) |
| **Brownfield project** | [Brownfield Guide](../src/modules/bmm/docs/brownfield-guide.md) | [Quick Start Guide](../src/modules/bmm/docs/quick-start.md) |
---
## 📋 Core Documentation
### Project-Level Docs (Root)
- **[README.md](../README.md)** - Main project overview, feature summary, and module introductions
- **[CONTRIBUTING.md](../CONTRIBUTING.md)** - How to contribute, pull request guidelines, code style
- **[CHANGELOG.md](../CHANGELOG.md)** - Version history and breaking changes
- **[CLAUDE.md](../CLAUDE.md)** - Claude Code specific guidelines for this project
### Installation & Setup
- **[v4 to v6 Upgrade Guide](./v4-to-v6-upgrade.md)** - Migration path for v4 users
- **[Document Sharding Guide](./document-sharding-guide.md)** - Split large documents for 90%+ token savings
- **[Web Bundles](./USING_WEB_BUNDLES.md)** - Use BMAD agents in Claude Projects, ChatGPT, or Gemini without installation
- **[Bundle Distribution Setup](./BUNDLE_DISTRIBUTION_SETUP.md)** - Maintainer guide for bundle auto-publishing
---
## 🏗️ Module Documentation
### BMad Method (BMM) - Software & Game Development
The flagship module for agile AI-driven development.
- **[BMM Module README](../src/modules/bmm/README.md)** - Module overview, agents, and complete documentation index
- **[BMM Documentation](../src/modules/bmm/docs/)** - All BMM-specific guides and references:
- [Quick Start Guide](../src/modules/bmm/docs/quick-start.md) - Step-by-step guide to building your first project
- [Quick Spec Flow](../src/modules/bmm/docs/quick-spec-flow.md) - Rapid Level 0-1 development
- [Scale Adaptive System](../src/modules/bmm/docs/scale-adaptive-system.md) - Understanding the 5-level system
- [Brownfield Guide](../src/modules/bmm/docs/brownfield-guide.md) - Working with existing codebases
- **[BMM Workflows Guide](../src/modules/bmm/workflows/README.md)** - **ESSENTIAL READING**
- **[Test Architect Guide](../src/modules/bmm/testarch/README.md)** - Testing strategy and quality assurance
### BMad Builder (BMB) - Create Custom Solutions
Build your own agents, workflows, and modules.
- **[BMB Module README](../src/modules/bmb/README.md)** - Module overview and capabilities
- **[Agent Creation Guide](../src/modules/bmb/workflows/create-agent/README.md)** - Design custom agents
### Creative Intelligence Suite (CIS) - Innovation & Creativity
AI-powered creative thinking and brainstorming.
- **[CIS Module README](../src/modules/cis/README.md)** - Module overview and workflows
---
## 🖥️ IDE-Specific Guides
Instructions for loading agents and running workflows in your development environment.
**Popular IDEs:**
- [Claude Code](./ide-info/claude-code.md)
- [Cursor](./ide-info/cursor.md)
- [VS Code](./ide-info/windsurf.md)
**Other Supported IDEs:**
- [Augment](./ide-info/auggie.md)
- [Cline](./ide-info/cline.md)
- [Codex](./ide-info/codex.md)
- [Crush](./ide-info/crush.md)
- [Gemini](./ide-info/gemini.md)
- [GitHub Copilot](./ide-info/github-copilot.md)
- [IFlow](./ide-info/iflow.md)
- [Kilo](./ide-info/kilo.md)
- [OpenCode](./ide-info/opencode.md)
- [Qwen](./ide-info/qwen.md)
- [Roo](./ide-info/roo.md)
- [Trae](./ide-info/trae.md)
**Key concept:** Every reference to "load an agent" or "activate an agent" in the main docs links to the [ide-info](./ide-info/) directory for IDE-specific instructions.
---
## 🔧 Advanced Topics
### Installation & Bundling
- [IDE Injections Reference](./installers-bundlers/ide-injections.md) - How agents are installed to IDEs
- [Installers & Platforms Reference](./installers-bundlers/installers-modules-platforms-reference.md) - CLI tool and platform support
- [Web Bundler Usage](./installers-bundlers/web-bundler-usage.md) - Creating web-compatible bundles
---
## 📊 Documentation Map
```
docs/ # Core/cross-module documentation
├── index.md (this file)
├── v4-to-v6-upgrade.md
├── document-sharding-guide.md
├── ide-info/ # IDE setup guides
│ ├── claude-code.md
│ ├── cursor.md
│ ├── windsurf.md
│ └── [14+ other IDEs]
└── installers-bundlers/ # Installation reference
├── ide-injections.md
├── installers-modules-platforms-reference.md
└── web-bundler-usage.md
src/modules/
├── bmm/ # BMad Method module
│ ├── README.md # Module overview & docs index
│ ├── docs/ # BMM-specific documentation
│ │ ├── quick-start.md
│ │ ├── quick-spec-flow.md
│ │ ├── scale-adaptive-system.md
│ │ └── brownfield-guide.md
│ ├── workflows/README.md # ESSENTIAL workflow guide
│ └── testarch/README.md # Testing strategy
├── bmb/ # BMad Builder module
│ ├── README.md
│ └── workflows/create-agent/README.md
└── cis/ # Creative Intelligence Suite
└── README.md
```
---
## 🎓 Recommended Reading Paths
### Path 1: Brand New to BMad (Software Project)
1. [README.md](../README.md) - Understand the vision
2. [Quick Start Guide](../src/modules/bmm/docs/quick-start.md) - Get hands-on
3. [BMM Module README](../src/modules/bmm/README.md) - Understand agents
4. [BMM Workflows Guide](../src/modules/bmm/workflows/README.md) - Master the methodology
5. [Your IDE guide](./ide-info/) - Optimize your workflow
### Path 2: Game Development Project
1. [README.md](../README.md) - Understand the vision
2. [Quick Start Guide](../src/modules/bmm/docs/quick-start.md) - Get hands-on
3. [BMM Module README](../src/modules/bmm/README.md) - Game agents are included
4. [BMM Workflows Guide](../src/modules/bmm/workflows/README.md) - Game workflows
5. [Your IDE guide](./ide-info/) - Optimize your workflow
### Path 3: Upgrading from v4
1. [v4 to v6 Upgrade Guide](./v4-to-v6-upgrade.md) - Understand what changed
2. [Quick Start Guide](../src/modules/bmm/docs/quick-start.md) - Reorient yourself
3. [BMM Workflows Guide](../src/modules/bmm/workflows/README.md) - Learn new v6 workflows
### Path 4: Working with Existing Codebase (Brownfield)
1. [Brownfield Guide](../src/modules/bmm/docs/brownfield-guide.md) - Approach for legacy code
2. [Quick Start Guide](../src/modules/bmm/docs/quick-start.md) - Follow the process
3. [BMM Workflows Guide](../src/modules/bmm/workflows/README.md) - Master the methodology
### Path 5: Building Custom Solutions
1. [BMB Module README](../src/modules/bmb/README.md) - Understand capabilities
2. [Agent Creation Guide](../src/modules/bmb/workflows/create-agent/README.md) - Create agents
3. [BMM Workflows Guide](../src/modules/bmm/workflows/README.md) - Understand workflow structure
### Path 6: Contributing to BMad
1. [CONTRIBUTING.md](../CONTRIBUTING.md) - Contribution guidelines
2. Relevant module README - Understand the area you're contributing to
3. [Code Style section in CONTRIBUTING.md](../CONTRIBUTING.md#code-style) - Follow standards
---
## 🔍 Quick Reference
**What is each module for?**
- **BMM** - AI-driven software and game development
- **BMB** - Create custom agents and workflows
- **CIS** - Creative thinking and brainstorming
**How do I load an agent?**
→ See [ide-info](./ide-info/) folder for your IDE
**I'm stuck, what's next?**
→ Check the [BMM Workflows Guide](../src/modules/bmm/workflows/README.md) or run `workflow-status`
**I want to contribute**
→ Start with [CONTRIBUTING.md](../CONTRIBUTING.md)
---
## 📚 Important Concepts
### Fresh Chats
Each workflow should run in a fresh chat with the specified agent to avoid context limitations. This is emphasized throughout the docs because it's critical to successful workflows.
### Scale Levels
BMM adapts to project complexity (Levels 0-4). Documentation is scale-adaptive - you only need what's relevant to your project size.
### Update-Safe Customization
All agent customizations go in `{bmad_folder}/_cfg/agents/` and survive updates. See your IDE guide and module README for details.
---
## 🆘 Getting Help
- **Discord**: [Join the BMad Community](https://discord.gg/gk8jAdXWmj)
- #general-dev - Technical questions
- #bugs-issues - Bug reports
- **Issues**: [GitHub Issue Tracker](https://github.com/bmad-code-org/BMAD-METHOD/issues)
- **YouTube**: [BMad Code Channel](https://www.youtube.com/@BMadCode)

View File

@@ -158,7 +158,7 @@ src/modules/bmm/
```yaml
injections:
- file: 'bmad/bmm/agents/pm.md'
- file: '{bmad_folder}/bmm/agents/pm.md'
point: 'pm-agent-instructions'
requires: 'any' # Injected if ANY subagent is selected
content: |
@@ -166,7 +166,7 @@ injections:
<i>Use 'market-researcher' subagent for analysis</i>
</llm>
- file: 'bmad/bmm/templates/prd.md'
- file: '{bmad_folder}/bmm/templates/prd.md'
point: 'prd-goals-context-delegation'
requires: 'market-researcher' # Only if this specific subagent selected
content: |
@@ -184,13 +184,3 @@ injections:
<cmds>...</cmds>
</agent>
```
## Testing Checklist
- [ ] Injection points are properly named and unique
- [ ] injections.yaml is valid YAML with correct structure
- [ ] Content formatting is preserved after injection
- [ ] Installation works without the IDE (injection points removed)
- [ ] Installation works with the IDE (content properly injected)
- [ ] Subagents/files are copied to correct locations
- [ ] No IDE-specific content remains when different IDE selected

View File

@@ -1,4 +1,4 @@
# BMAD v6 Installation & Module System Reference
# BMAD Installation & Module System Reference
## Table of Contents
@@ -13,63 +13,36 @@
## Overview
BMAD v6 is a modular AI agent framework with intelligent installation, platform-agnostic support, and configuration inheritance.
BMad Core is a modular AI agent framework with intelligent installation, platform-agnostic support, and configuration inheritance.
### Key Features
- **Modular Design**: Core + optional modules (BMM, CIS)
- **Modular Design**: Core + optional modules (BMB, BMM, CIS)
- **Smart Installation**: Interactive configuration with dependency resolution
- **Multi-Platform**: Supports 15+ AI coding platforms
- **Clean Architecture**: Centralized `bmad/` directory, no source pollution
## Quick Start
```bash
# Interactive installation (recommended)
bmad install
# Install specific modules
bmad install -m bmm cis
# Full installation
bmad install -f
# Check status
bmad status
```
### Installation Options
- `-d <path>`: Target directory (default: current)
- `-m <modules...>`: Specific modules (bmm, cis)
- `-f`: Full installation
- `-c`: Core only
- `-i <ide...>`: Configure specific IDEs
- `--skip-ide`: Skip IDE configuration
- `-v`: Verbose output
- **Clean Architecture**: Centralized `{bmad_folder}` directory add to project, no source pollution with multiple folders added
## Architecture
### Directory Structure
### Directory Structure upon installation
```
project-root/
├── bmad/ # Centralized installation
│ ├── _cfg/ # Configuration
│ │ ├── agents/ # Agent configs
│ │ └── agent-party.xml # Agent manifest
│ ├── core/ # Core module
├── {bmad_folder}/ # Centralized installation
│ ├── _cfg/ # Configuration
│ │ ├── agents/ # Agent configs
│ │ └── agent-manifest.csv # Agent manifest
│ ├── core/ # Core module
│ │ ├── agents/
│ │ ├── tasks/
│ │ └── config.yaml
│ ├── bmm/ # BMad Method module
│ ├── bmm/ # BMad Method module
│ │ ├── agents/
│ │ ├── tasks/
│ │ ├── templates/
│ │ ├── workflows/
│ │ └── config.yaml
│ └── cis/ # Creative Innovation Studio
│ └── cis/ # Creative Innovation Studio
│ └── ...
└── .claude/ # Platform-specific (example)
└── .claude/ # Platform-specific (example)
└── agents/
```
@@ -78,11 +51,10 @@ project-root/
1. **Detection**: Check existing installation
2. **Selection**: Choose modules interactively or via CLI
3. **Configuration**: Collect module-specific settings
4. **Platform Setup**: Configure AI coding platforms
5. **Installation**: Process and copy files
6. **Generation**: Create config files with inheritance
7. **Post-Install**: Run module installers
8. **Manifest**: Track installed components
4. **Installation**: Compile Process and copy files
5. **Generation**: Create config files with inheritance
6. **Post-Install**: Run module installers
7. **Manifest**: Track installed components
### Key Exclusions
@@ -121,7 +93,7 @@ Creative Innovation Studio for design workflows
src/modules/{module}/
├── _module-installer/ # Not copied to destination
│ ├── installer.js # Post-install logic
│ └── install-menu-config.yaml
│ └── install-config.yaml
├── agents/
├── tasks/
├── templates/
@@ -135,7 +107,7 @@ src/modules/{module}/
### Collection Process
Modules define prompts in `install-menu-config.yaml`:
Modules define prompts in `install-config.yaml`:
```yaml
project_name:
@@ -212,7 +184,7 @@ Cline, Roo, Auggie, GitHub Copilot, Codex, Gemini, Qwen, Trae, Kilo, Crush, iFlo
```yaml
injections:
- file: 'bmad/bmm/agents/pm.md'
- file: '{bmad_folder}/bmm/agents/pm.md'
point: 'pm-agent-instructions'
content: |
<i>Platform-specific instruction</i>
@@ -246,12 +218,12 @@ Platform-specific content without source modification:
src/modules/mymod/
├── _module-installer/
│ ├── installer.js
│ └── install-menu-config.yaml
│ └── install-config.yaml
├── agents/
└── tasks/
```
2. **Configuration** (`install-menu-config.yaml`)
2. **Configuration** (`install-config.yaml`)
```yaml
code: mymod
@@ -298,14 +270,14 @@ Generated in: `bmad/_cfg/agents/{module}-{agent}.md`
### Common Issues
| Issue | Solution |
| ------------------------- | ----------------------------------- |
| Existing installation | Use `bmad update` or remove `bmad/` |
| Module not found | Check `src/modules/` exists |
| Config not applied | Verify `bmad/{module}/config.yaml` |
| Missing config.yaml | Fixed: All modules now get configs |
| Agent unavailable | Check for `localskip="true"` |
| \_module-installer copied | Fixed: Now excluded from copy |
| Issue | Solution |
| ----------------------- | -------------------------------------------- |
| Existing installation | Use `bmad update` or remove `{bmad_folder}/` |
| Module not found | Check `src/modules/` exists |
| Config not applied | Verify `{bmad_folder}/{module}/config.yaml` |
| Missing config.yaml | Fixed: All modules now get configs |
| Agent unavailable | Check for `localskip="true"` |
| module-installer copied | Fixed: Now excluded from copy |
### Debug Commands
@@ -317,19 +289,19 @@ bmad status -v # Detailed status
### Best Practices
1. Run from project root
2. Backup `bmad/_cfg/` before updates
2. Backup `{bmad_folder}/_cfg/` before updates
3. Use interactive mode for guidance
4. Review generated configs post-install
## Migration from v4
| v4 | v6 |
| ------------------- | ------------------- |
| Scattered files | Centralized `bmad/` |
| Monolithic | Modular |
| Manual config | Interactive setup |
| Limited IDE support | 15+ platforms |
| Source modification | Clean injection |
| v4 | v6 |
| ------------------- | ---------------------------- |
| Scattered files | Centralized `{bmad_folder}/` |
| Monolithic | Modular |
| Manual config | Interactive setup |
| Limited IDE support | 15+ platforms |
| Source modification | Clean injection |
## Technical Notes
@@ -339,6 +311,66 @@ bmad status -v # Detailed status
- Agent references (cross-module)
- Template dependencies
- Partial module installation (only required files)
- Workflow vendoring for standalone module operation
## Workflow Vendoring
**Problem**: Modules that reference workflows from other modules create dependencies, forcing users to install multiple modules even when they only need one.
**Solution**: Workflow vendoring allows modules to copy workflows from other modules during installation, making them fully standalone.
### How It Works
Agents can specify both `workflow` (source location) and `workflow-install` (destination location) in their menu items:
```yaml
menu:
- trigger: create-story
workflow: '{project-root}/{bmad_folder}/bmm/workflows/4-implementation/create-story/workflow.yaml'
workflow-install: '{project-root}/{bmad_folder}/bmgd/workflows/4-production/create-story/workflow.yaml'
description: 'Create a game feature story'
```
**During Installation:**
1. **Vendoring Phase**: Before copying module files, the installer:
- Scans source agent YAML files for `workflow-install` attributes
- Copies entire workflow folders from `workflow` path to `workflow-install` path
- Updates vendored `workflow.yaml` files to reference target module's config
2. **Compilation Phase**: When compiling agents:
- If `workflow-install` exists, uses its value for the `workflow` attribute
- `workflow-install` is build-time metadata only, never appears in final XML
- Compiled agent references vendored workflow location
3. **Config Update**: Vendored workflows get their `config_source` updated:
```yaml
# Source workflow (in bmm):
config_source: "{project-root}/{bmad_folder}/bmm/config.yaml"
# Vendored workflow (in bmgd):
config_source: "{project-root}/{bmad_folder}/bmgd/config.yaml"
```
**Result**: Modules become completely standalone with their own copies of needed workflows, configured for their specific use case.
### Example Use Case: BMGD Module
The BMad Game Development module vendors implementation workflows from BMM:
- Game Dev Scrum Master agent references BMM workflows
- During installation, workflows are copied to `bmgd/workflows/4-production/`
- Vendored workflows use BMGD's config (with game-specific settings)
- BMGD can be installed without BMM dependency
### Benefits
✅ **Module Independence** - No forced dependencies
✅ **Clean Namespace** - Workflows live in their module
✅ **Config Isolation** - Each module uses its own configuration
✅ **Customization Ready** - Vendored workflows can be modified independently
✅ **No User Confusion** - Avoid partial module installations
### File Processing
@@ -346,6 +378,7 @@ bmad status -v # Detailed status
- Excludes `_module-installer/` directories
- Replaces path placeholders at runtime
- Injects activation blocks
- Vendors cross-module workflows (see Workflow Vendoring below)
### Web Bundling

227
docs/v4-to-v6-upgrade.md Normal file
View File

@@ -0,0 +1,227 @@
# BMad v4 to v6 Upgrade Guide
## Overview
BMad v6 represents a complete ground-up rewrite with significant architectural changes. This guide will help you migrate your v4 project to v6.
---
## Automatic V4 Detection
When you run `npm run install:bmad` on a project with v4 installed, the installer automatically detects:
- **Legacy folders**: Any folders starting with `.bmad`, `bmad` (lowercase), or `Bmad`
- **IDE command artifacts**: Legacy bmad folders in IDE configuration directories (`.claude/commands/`, `.cursor/commands/`, etc.)
### What Happens During Detection
1. **Automatic Backup of v4 Modules**: All `.bmad-*` folders are moved to `v4-backup/` in your project root
- If a backup already exists, a timestamp is added to avoid conflicts
- Example: `.bmad-core``v4-backup/.bmad-core`
- Your project files and data are NOT affected
2. **IDE Command Cleanup Recommended**: Legacy v4 IDE commands should be manually removed
- Located in IDE config folders: `.claude/commands/`, `.cursor/commands/`, etc.
- These old commands would still reference v4 folder structure if left in place
- The installer provides copy/paste terminal commands for your platform
- You can proceed without cleanup, but removing them prevents confusion with old v4 commands
---
## Module Migration
### Deprecated Modules
| v4 Module | v6 Status |
| ----------------------------- | ------------------------------------------------ |
| `.bmad-2d-phaser-game-dev` | Integrated into BMM |
| `.bmad-2d-unity-game-dev` | Integrated into BMM |
| `.bmad-godot-game-dev` | Integrated into BMM |
| `.bmad-*-game-dev` (any) | Integrated into BMM |
| `.bmad-infrastructure-devops` | Deprecated - New core devops agent coming in BMM |
| `.bmad-creative-writing` | Not adapted - New module releasing soon |
**Game Development**: All game development functionality has been consolidated and expanded within the BMM (BMad Method) module. Game-specific workflows now adapt to your game type and engine.
---
## Architecture Changes
### Folder Structure
**v4 "Expansion Packs" Structure:**
```
your-project/
├── .bmad-core/ # Was actually the BMad Method
├── .bmad-game-dev/ # Separate expansion packs
├── .bmad-creative-writing/
└── .bmad-infrastructure-devops/
```
**v6 Unified Structure:**
```
your-project/
└── {bmad_folder}/ # Single installation folder, default .bmad
├── core/ # Real core framework (applies to all modules)
├── bmm/ # BMad Method (software/game dev)
├── bmb/ # BMad Builder (create agents/workflows)
├── cis/ # Creative Intelligence Suite
└── _cfg/ # Your customizations
└── agents/ # Agent customization files
```
### Key Concept Changes
- **v4 `.bmad-core`**: Was actually the BMad Method
- **v6 `{bmad_folder}/core/`**: Is the real universal core framework
- **v6 `{bmad_folder}/bmm/`**: Is the BMad Method module
- **Module identification**: All modules now have a `config.yaml` file
---
## Project Progress Migration
### If You've Completed Planning Phase (PRD/Architecture) with the BMad Method:
After running the v6 installer:
1. **Run `workflow-init`** workflow to set up the guided workflow system
2. **Specify your project level** when prompted:
- If you followed v4's full workflow (PRD → Architecture → Stories), select **Level 3 or 4**
- This tells v6 you've already completed planning and solutioning phases
3. **Document paths**: Keep your existing paths during installation
- Default PRD/Architecture location: `docs/`
- Default stories location: `docs/sprint-artifacts/`
- **Accept these defaults** if you're already using them in v4
> **Important**: v6 workflows can handle both sharded and unsharded documents. You don't need to restructure your existing PRD or architecture files.
### If You're Mid-Development (Stories Created/Implemented)
1. Complete the v6 installation as above
2. Run `workflow-init` and specify Level 3 or 4
3. When ready to continue development, run the **`sprint-planning`** workflow (Phase 4)
---
## Agent Customization Migration
### v4 Agent Customization
In v4, you may have modified agent files directly in `.bmad-*` folders.
### v6 Agent Customization
**All customizations** now go in `{bmad_folder}/_cfg/agents/` using customize files:
**Example: Renaming an agent and changing communication style**
File: `{bmad_folder}/_cfg/agents/bmm-pm.customize.yaml`
```yaml
# Customize the PM agent
persona:
name: 'Captain Jack' # Override agent name
role: 'Swashbuckling Product Owner'
communication_style: |
- Talk like a pirate
- Use nautical metaphors for software concepts
- Always upbeat and adventurous
```
**How it works:**
- Base agent: `{bmad_folder}/bmm/agents/pm.md`
- Customization: `{bmad_folder}/_cfg/agents/bmm-pm.customize.yaml`
- Result: Agent uses your custom name and style, but updates don't overwrite your changes
---
## Document Compatibility
### Sharded vs Unsharded Documents
**Good news**: Unlike v4, v6 workflows are **fully flexible** with document structure:
- ✅ Sharded documents (split into multiple files)
- ✅ Unsharded documents (single file per section)
- ✅ Custom sections for your project type
- ✅ Mixed approaches
All workflow files are scanned automatically. No manual configuration needed.
---
## Installation Steps
### 1. Clone Repository
```bash
git clone https://github.com/bmad-code-org/BMAD-METHOD
cd BMAD-METHOD
npm install
```
### 2. Run Installer on Your v4 Project
```bash
npx bmad-method install
```
**Enter the full path to your v4 project** when prompted.
### 3. Follow Interactive Prompts
The installer will:
1. Detect v4 installation and offer to backup `.bmad-*` folders
2. Prompt for recommended cleanup (you can skip)
3. Let you select modules (recommend: BMM for software and or game development)
4. Configure core settings (name, language, etc.)
5. Configure module-specific options
6. Configure IDE integrations
### 4. Accept Default Paths
If you're using:
- `docs/` for PRD and architecture
- `docs/sprint-artifacts/` for story files
**Accept these defaults** during installation.
### 5. Initialize Workflow
After installation:
1. **Load the Analyst agent** - See your IDE-specific instructions in [docs/ide-info](./ide-info/) for how to activate agents:
- [Claude Code](./ide-info/claude-code.md)
- [Cursor](./ide-info/cursor.md)
- [VS Code/Windsurf](./ide-info/) - Check your IDE folder
2. **Wait for the agent's menu** to appear
3. **Tell the agent**: `*workflow-init` - v6 supports excellent natural language fuzzy matching, so you could also say "workflow init" or "please init the workflow"
Since you are migrating an existing project from v4, it's most likely **Level 3 or 4** you will want to suggest when asked - if you've already completed PRD/architecture in v4.
---
## Post-Migration Checklist
- [ ] v4 folders backed up to `v4-backup/`
- [ ] v6 installed to `{bmad_folder}/` folder
- [ ] `workflow-init` run with correct project level selected
- [ ] Agent customizations migrated to `{bmad_folder}/_cfg/agents/` if needed
- [ ] IDE integration working (test by listing agents)
- [ ] For active development: `sprint-planning` workflow executed
---
## Getting Help
- **Discord**: [Join the BMad Community](https://discord.gg/gk8jAdXWmj)
- **Issues**: [GitHub Issue Tracker](https://github.com/bmad-code-org/BMAD-METHOD/issues)
- **Docs**: Check `{bmad_folder}/docs/` in your installation for IDE-specific instructions

View File

@@ -0,0 +1,473 @@
# Using BMad Web Bundles in Gemini Gems & Custom GPTs
Web bundles package BMad agents as self-contained XML files that work in Gemini Gems and Custom GPTs. Everything the agent needs - instructions, workflows, dependencies - is bundled into a single file.
## What Are Web Bundles?
Web bundles are standalone XML files containing:
- Complete agent persona and instructions
- All workflows and dependencies
- Interactive menu system
- Party mode for multi-agent collaboration
- No external files required
**Perfect for:** Uploading a single file to a Gemini GEM or Custom GPT to use BMad Method from the Web, generally at a huge cost savings, at the expense of some quality and convenience of using locally.
## Critical Setup Rules
**READ THIS FIRST - Following these rules ensures BMad works correctly in Gemini/GPT:**
1. **ONE file per Gem/GPT** - Upload exactly ONE XML file per Gemini Gem or Custom GPT instance. Do NOT combine multiple agent files.
2. **Use the setup instructions** - When creating your Gem/GPT, you MUST add the configuration prompt (shown in Quick Start below) so it knows how to read the XML file.
3. **Enable Canvas/Code Execution** - This is ESSENTIAL for document generation workflows (PRD, Architecture, etc.). Enable this in your Gem/GPT settings.
4. **Gemini Gems are strongly preferred** - They work significantly better than Custom GPTs for BMad workflows.
5. **Team bundles = Gemini 2.5 Pro+ only** - Team bundles (multiple agents) have terrible performance in Custom GPTs due to context limits. Only use them with Gemini 2.5 Pro or higher.
6. **Create separate Gems for each agent** - Make a PM Gem, an Architect Gem, a Developer Gem, etc. Don't try to combine them (except via official team bundles).
## Quick Start
### 1. Get Web Bundle Files
**Option A: Download Pre-Bundled Files (Quickest)**
Download ready-to-use bundles directly from GitHub:
**[→ Browse Web Bundles on GitHub](https://github.com/bmad-code-org/BMAD-METHOD/tree/main/web-bundles)**
Navigate to the module folder (bmm, bmb, cis, bmgd) → agents folder → download the `.xml` file you need.
**Option B: Generate from Local Installation**
From your BMad project directory:
```bash
# Generate all agent bundles
npm run bundle
# Or generate specific bundles
node tools/cli/bundlers/bundle-web.js module bmm
node tools/cli/bundlers/bundle-web.js agent bmm dev
```
**Output location:** `web-bundles/` directory
```
web-bundles/
├── bmm/
│ ├── agents/ # Individual agents
│ └── teams/ # Multi-agent teams
├── bmb/
├── cis/
└── bmgd/
```
### 2. Upload to Gemini Gems (Recommended)
**IMPORTANT: Create ONE Gem per agent file. Do NOT upload multiple agent files to a single Gem.**
**Create a Gem:**
1. Go to [Google AI Studio](https://aistudio.google.com/)
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**
5. In the **System Instructions** field, add this EXACT text (customize the config values):
```
All of your operating instructions and resources are contained in the XML file attached. Read in the initial agent block and instructions to understand it. You will not deviate from the character and rules outlined in the attached!
CONFIG.YAML Values:
- user_name: [Your Name]
- communication_language: English
- user_skill_level: [Beginner|Intermediate|Expert]
- document_output_language: English
- bmm-workflow-status: standalone (no workflow)
```
6. **Upload ONE XML file** (e.g., `pm.xml`) - either attach as a file or paste contents
7. Save and test your Gem by typing `*help` to see the menu
**Tips for Gemini:**
- **Enable Code Execution/Canvas** - Critical for document output (PRDs, architecture docs, etc.)
- **Use Gemini 2.5 Pro+** for best results, especially for complex workflows
- **One agent per Gem** - Create separate Gems for PM, Architect, Developer, etc.
- Test the agent by triggering menu items with `*workflow-name`
### 3. Upload to Custom GPTs
**IMPORTANT: Create ONE Custom GPT per agent file. Do NOT upload multiple agent files to a single GPT.**
**Create a Custom GPT:**
1. Go to [ChatGPT](https://chat.openai.com/)
2. Click your profile → "My GPTs" → "Create a GPT"
3. Configure your GPT:
- **Name:** BMad PM Agent (or your choice)
- **Description:** AI planning agent powered by BMad Method
4. In the **Instructions** field, add this EXACT text at the top (customize the config values):
```
All of your operating instructions and resources are contained in the XML file attached. Read in the initial agent block and instructions to understand it. You will not deviate from the character and rules outlined in the attached!
CONFIG.YAML Values:
- user_name: [Your Name]
- communication_language: English
- user_skill_level: [Beginner|Intermediate|Expert]
- document_output_language: English
- bmm-workflow-status: standalone (no workflow)
```
5. **Below that text**, paste the entire contents of ONE XML file (e.g., `pm.xml`)
6. **Enable "Canvas" in ChatGPT settings** for better document output
7. Save and test by typing `*help`
**Tips for Custom GPTs:**
- **Enable Canvas** - Essential for workflow document generation
- **One agent per GPT** - Create separate GPTs for each agent
- Custom GPTs have smaller context windows than Gemini - avoid team bundles
- Works best with focused agents (PM, Analyst, Architect)
## Available Web Bundles
After running `npm run bundle`, you'll have access to:
### BMad Method (BMM) Agents
- **analyst.xml** - Business analysis and requirements gathering
- **architect.xml** - System architecture and technical design
- **dev.xml** - Full-stack development and implementation
- **pm.xml** - Product management and planning
- **sm.xml** - Scrum master and agile facilitation
- **tea.xml** - Test architecture and quality assurance
- **tech-writer.xml** - Technical documentation
- **ux-designer.xml** - User experience design
- **game-designer.xml** - Game design and mechanics
- **game-dev.xml** - Game development
- **game-architect.xml** - Game architecture
### BMad Builder (BMB) Agent
- **bmad-builder.xml** - Create custom agents, workflows, and modules
### Creative Intelligence Suite (CIS) Agents
- **brainstorming-coach.xml** - Creative brainstorming facilitation
- **design-thinking-coach.xml** - Human-centered problem solving
- **innovation-strategist.xml** - Innovation and strategy
- **creative-problem-solver.xml** - Breakthrough problem solving
- **storyteller.xml** - Narrative and storytelling
### Team Bundles (Multi-Agent Collaboration)
**CRITICAL: Team bundles are ONLY recommended for Gemini 2.5 Pro+ in the web. The experience is poor with Custom GPTs due to limited context windows.**
- **bmm/teams/team-fullstack.xml** - Full BMad Method development team
- **bmgd/teams/team-gamedev.xml** - Game development team
- **cis/teams/creative-squad.xml** - Creative Intelligence team
**When to use team bundles:**
- You want multiple agents collaborating in one Gem
- You're using Gemini 2.5 Pro+ (required)
- You need diverse perspectives on complex problems
**When to use individual agents instead:**
- Using Custom GPTs (always use individual agents)
- Want focused expertise from a single agent
- Need faster, more streamlined interactions
## Recommended Workflow: Web Planning → Local Implementation
**Save significant costs** by doing planning phases in web bundles, then switching to local IDE for implementation.
### Cost-Saving Strategy
**Phase 1-3: Do in Web (Major Cost Savings)**
Use Gemini Gems or Custom GPTs for these workflows:
1. **Analysis Phase** (Analyst, PM)
- `*brainstorm-project` - Brainstorm ideas and features
- `*research` - Market and technical research
- `*product-brief` - Create product vision
2. **Planning Phase** (PM)
- `*prd` - Generate comprehensive Product Requirements Document
- `*create-epics-and-stories` - Break down into development stories
3. **Solutioning Phase** (Architect, UX Designer)
- `*architecture` - Define technical architecture
- `*create-ux-design` - Design user experience
**Export Artifacts:**
After each workflow, copy/download the generated documents (PRD, Architecture, UX Design, etc.)
**Phase 4: Switch to Local IDE (Required for Implementation)**
1. Save exported artifacts to your project's `docs/` folder
2. Run local BMad installation with `*workflow-init`
3. BMad will detect the existing artifacts and update workflow status
4. Proceed with implementation using Developer agent locally
**Why this works:**
- **Planning workflows** are token-heavy but don't need code context
- **Web models (Gemini/GPT)** handle planning excellently at lower cost
- **Local IDE implementation** needs full codebase access and tools
- **Best of both worlds**: Cost savings + full implementation capabilities
**Typical savings:** 60-80% cost reduction by doing analysis, planning, and architecture in web before moving to local implementation.
## Using Web Bundles
### Basic Usage
**1. Load the Agent**
Upload or paste the XML file into Gemini/GPT. The agent will introduce itself and show its menu.
**2. Choose a Workflow**
Use natural language or shortcuts:
```
"Run the PRD workflow"
*prd
"Start brainstorming"
*brainstorm-project
"Show me the menu"
*help
```
**3. Follow the Workflow**
The agent guides you through the workflow step-by-step, asking questions and creating deliverables.
### Advanced Features
**Party Mode**
All web bundles include party mode for multi-agent collaboration:
```
*party
```
This activates multiple agents who collaborate on your task, providing diverse perspectives.
**Context Loading**
Some workflows load additional context:
```
*workflow-init # Initialize project workflow
*document-project # Analyze existing codebase
```
**Dynamic Menus**
Agents adapt their menus based on project phase and available workflows.
## Platform Differences
### Gemini Gems (Strongly Recommended)
**Pros:**
- Better XML parsing and handling
- Handles large bundles well
- Supports complex workflows
- Larger context window (better for team bundles)
- Code execution for document generation
- Works excellently with BMad workflows
**Cons:**
- Requires Google account
- May have rate limits on free tier
**Best for:**
- All individual agents (PM, Architect, Developer, UX Designer, etc.)
- Team bundles (requires Gemini 2.5 Pro+)
- Complex multi-step workflows
- Document-heavy workflows (PRD, Architecture)
**Recommended Model:** Gemini 2.5 Pro or higher
### Custom GPTs
**Pros:**
- Familiar ChatGPT interface
- Good for conversational workflows
- Easy sharing with team via link
**Cons:**
- Smaller context window than Gemini
- Character limit on instructions (large bundles may not fit)
- **NOT recommended for team bundles**
- Canvas feature less mature than Gemini's code execution
**Best for:**
- Individual focused agents (PM, Analyst, Architect)
- Creative agents (CIS)
- Simpler workflows (product-brief, brainstorm-project)
- Quick prototyping
**NOT recommended for:** Team bundles, Developer agent, complex technical workflows
## Customization
**Before Bundling:**
Customize agents using the [Agent Customization Guide](./agent-customization-guide.md):
1. Edit `{bmad_folder}/_cfg/agents/<agent>.customize.yaml`
2. Rebuild: `npx bmad-method build <agent-name>`
3. Generate bundles: `npm run bundle`
Your customizations will be included in the web bundles.
**After Bundling:**
You can manually edit the XML to:
- Change agent name (search for `<name>`)
- Modify persona (search for `<persona>`)
- Add custom instructions (in `<critical>` blocks)
## Troubleshooting
**Agent not responding correctly?**
- Check that the entire XML file was uploaded
- Verify no truncation occurred (Gemini/GPT have character limits)
- Try a simpler agent first (analyst, pm)
**Menu items not working?**
- Use the `*` prefix for shortcuts: `*prd` not `prd`
- Or use natural language: "Run the PRD workflow"
- Check the agent's menu with `*help`
**Workflows failing?**
- Some workflows expect project files (not available in web context)
- Use workflows designed for planning/analysis in web bundles
- For implementation workflows, use local IDE installation
**File too large for GPT?**
- Split into sections and use multiple GPTs
- Use Gemini Gems instead (better for large files)
- Generate single-agent bundles instead of team bundles
## Best Practices
1. **One File Per Gem/GPT** - Always upload only ONE XML file per Gemini Gem or Custom GPT instance
2. **Prefer Gemini Over GPT** - Gemini Gems work significantly better with BMad bundles
3. **Enable Canvas/Code Execution** - Essential for document generation workflows (PRD, Architecture, etc.)
4. **Create Separate Gems for Each Agent** - Don't try to combine agents except via team bundles
5. **Team Bundles = Gemini 2.5 Pro+ Only** - Never use team bundles with Custom GPTs
6. **Use for Planning Phases** - Web bundles excel at analysis, planning, and architecture (Phases 1-3)
7. **Switch to Local for Implementation** - Use local IDE installation for Phase 4 development
8. **Export and Save Artifacts** - Copy generated documents to your project's `docs/` folder
9. **Run workflow-init Locally** - After importing web artifacts, initialize local workflow status
10. **Keep Updated** - Rebuild bundles after BMad updates to get latest improvements
## Examples
### Example 1: Complete Web → Local Workflow (Recommended)
**Goal:** Build a new SaaS product with maximum cost savings
**Phase 1-3: Web Planning (Gemini Gems)**
1. **Download bundles:**
- `bmm/agents/analyst.xml`
- `bmm/agents/pm.xml`
- `bmm/agents/architect.xml`
- `bmm/agents/ux-designer.xml`
2. **Create 4 separate Gemini Gems** (one per agent, enable Code Execution)
3. **Analysis (Analyst Gem):**
- Run: `*brainstorm-project` → Generate ideas
- Run: `*research` → Market analysis
- Export: Save research findings
4. **Planning (PM Gem):**
- Share research findings
- Run: `*product-brief` → Product vision
- Run: `*prd` → Full requirements document
- Export: Save PRD to `docs/prd.md`
5. **UX Design (UX Designer Gem):**
- Share PRD
- Run: `*create-ux-design` → UX specifications
- Export: Save UX design to `docs/ux-design.md`
6. **Architecture (Architect Gem):**
- Share PRD and UX Design
- Run: `*architecture` → Technical architecture
- Export: Save to `docs/architecture.md`
**Phase 4: Local Implementation**
7. **Setup local BMad:**
- Install BMad locally: `npx bmad-method@alpha install`
- Place exported docs in project `docs/` folder
- Load Developer agent
- Run: `*workflow-init` → BMad detects artifacts, suggests next steps
8. **Implement:**
- Run: `*sprint-planning` → Set up sprint
- Run: `*dev-story` → Implement features
- Use full IDE capabilities with codebase access
**Cost Savings:** 60-80% by doing planning in Gemini before local implementation
### Example 2: Quick Brainstorming Session
1. Download `cis/agents/brainstorming-coach.xml`
2. Create Gemini Gem with Code Execution enabled
3. Run: `*brainstorming`
4. Choose technique (e.g., SCAMPER, Mind Mapping)
5. Generate and refine ideas
6. Export results for team review
### Example 3: Architecture Review
1. Download `bmm/agents/architect.xml`
2. Create Gemini Gem (enable Code Execution)
3. Paste existing PRD into conversation
4. Run: `*architecture`
5. Collaborate on technical decisions
6. Export architecture document to `docs/architecture.md`
## Next Steps
- **[Agent Customization Guide](./agent-customization-guide.md)** - Customize before bundling
- **[BMM Documentation](../src/modules/bmm/docs/README.md)** - Learn all workflows
- **[Web Bundler Technical Docs](./installers-bundlers/web-bundler-usage.md)** - Advanced bundling options
- **[Contributing Guide](../CONTRIBUTING.md)** - Help improve web bundles
## Resources
- **[Google AI Studio](https://aistudio.google.com/)** - Create Gemini Gems
- **[Custom GPTs](https://chat.openai.com/gpts)** - Build Custom GPTs
- **[BMad Discord](https://discord.gg/gk8jAdXWmj)** - Get help and share your Gems/GPTs

View File

@@ -14,6 +14,8 @@ export default [
'test/template-test-generator/**',
'test/template-test-generator/**/*.js',
'test/template-test-generator/**/*.md',
'test/fixtures/**',
'test/fixtures/**/*.yaml',
],
},
@@ -59,9 +61,9 @@ export default [
},
},
// CLI/CommonJS scripts under tools/**
// CLI/CommonJS scripts under tools/** and test/**
{
files: ['tools/**/*.js'],
files: ['tools/**/*.js', 'test/**/*.js'],
rules: {
// Allow CommonJS patterns for Node CLI scripts
'unicorn/prefer-module': 'off',

167
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "bmad-method",
"version": "6.0.0-alpha.0",
"version": "6.0.0-alpha.6",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "bmad-method",
"version": "6.0.0-alpha.0",
"version": "6.0.0-alpha.6",
"license": "MIT",
"dependencies": {
"@kayvan/markdown-tree-parser": "^1.6.1",
@@ -27,10 +27,12 @@
"xml2js": "^0.6.2"
},
"bin": {
"bmad": "tools/cli/bmad-cli.js"
"bmad": "tools/bmad-npx-wrapper.js",
"bmad-method": "tools/bmad-npx-wrapper.js"
},
"devDependencies": {
"@eslint/js": "^9.33.0",
"c8": "^10.1.3",
"eslint": "^9.33.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-n": "^17.21.3",
@@ -42,7 +44,8 @@
"prettier": "^3.5.3",
"prettier-plugin-packagejson": "^2.5.19",
"yaml-eslint-parser": "^1.2.3",
"yaml-lint": "^1.7.0"
"yaml-lint": "^1.7.0",
"zod": "^4.1.12"
},
"engines": {
"node": ">=20.0.0"
@@ -2559,6 +2562,152 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/c8": {
"version": "10.1.3",
"resolved": "https://registry.npmjs.org/c8/-/c8-10.1.3.tgz",
"integrity": "sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA==",
"dev": true,
"license": "ISC",
"dependencies": {
"@bcoe/v8-coverage": "^1.0.1",
"@istanbuljs/schema": "^0.1.3",
"find-up": "^5.0.0",
"foreground-child": "^3.1.1",
"istanbul-lib-coverage": "^3.2.0",
"istanbul-lib-report": "^3.0.1",
"istanbul-reports": "^3.1.6",
"test-exclude": "^7.0.1",
"v8-to-istanbul": "^9.0.0",
"yargs": "^17.7.2",
"yargs-parser": "^21.1.1"
},
"bin": {
"c8": "bin/c8.js"
},
"engines": {
"node": ">=18"
},
"peerDependencies": {
"monocart-coverage-reports": "^2"
},
"peerDependenciesMeta": {
"monocart-coverage-reports": {
"optional": true
}
}
},
"node_modules/c8/node_modules/@bcoe/v8-coverage": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz",
"integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/c8/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/c8/node_modules/glob": {
"version": "10.4.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
"dev": true,
"license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
"minimatch": "^9.0.4",
"minipass": "^7.1.2",
"package-json-from-dist": "^1.0.0",
"path-scurry": "^1.11.1"
},
"bin": {
"glob": "dist/esm/bin.mjs"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/c8/node_modules/jackspeak": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
"integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
},
"optionalDependencies": {
"@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/c8/node_modules/lru-cache": {
"version": "10.4.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"dev": true,
"license": "ISC"
},
"node_modules/c8/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
"license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/c8/node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
"integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
"lru-cache": "^10.2.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
"node": ">=16 || 14 >=14.18"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/c8/node_modules/test-exclude": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz",
"integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==",
"dev": true,
"license": "ISC",
"dependencies": {
"@istanbuljs/schema": "^0.1.2",
"glob": "^10.4.1",
"minimatch": "^9.0.4"
},
"engines": {
"node": ">=18"
}
},
"node_modules/callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -8389,6 +8538,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/zod": {
"version": "4.1.12",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz",
"integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
},
"node_modules/zwitch": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",

View File

@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "bmad-method",
"version": "6.0.0-alpha.0",
"version": "6.0.0-alpha.9",
"description": "Breakthrough Method of Agile AI-driven Development",
"keywords": [
"agile",
@@ -20,7 +20,8 @@
"author": "Brian (BMad) Madison",
"main": "tools/cli/bmad-cli.js",
"bin": {
"bmad": "tools/cli/bmad-cli.js"
"bmad": "tools/bmad-npx-wrapper.js",
"bmad-method": "tools/bmad-npx-wrapper.js"
},
"scripts": {
"bmad:install": "node tools/cli/bmad-cli.js install",
@@ -38,7 +39,12 @@
"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",
"validate:bundles": "node tools/validate-bundles.js"
"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: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",
"validate:bundles": "node tools/validate-bundles.js",
"validate:schemas": "node tools/validate-agent-schema.js"
},
"lint-staged": {
"*.{js,cjs,mjs}": [
@@ -73,6 +79,7 @@
},
"devDependencies": {
"@eslint/js": "^9.33.0",
"c8": "^10.1.3",
"eslint": "^9.33.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-n": "^17.21.3",
@@ -84,7 +91,8 @@
"prettier": "^3.5.3",
"prettier-plugin-packagejson": "^2.5.19",
"yaml-eslint-parser": "^1.2.3",
"yaml-lint": "^1.7.0"
"yaml-lint": "^1.7.0",
"zod": "^4.1.12"
},
"engines": {
"node": ">=20.0.0"

View File

@@ -0,0 +1,35 @@
# BMAD™ Core Configuration
header: "BMAD™ Core Configuration"
subheader: "Configure the core settings for your BMAD™ installation.\nThese settings will be used across all modules and agents."
bmad_folder:
prompt: "What is the root folder for BMAD installation? (Recommended: .bmad)"
default: ".bmad"
result: "{value}"
regex: "^[a-zA-Z0-9._-]{1,20}$"
user_name:
prompt: "What shall the agents call you?"
default: "BMad"
result: "{value}"
communication_language:
prompt: "Preferred Chat Language/Style? (English, Mandarin, English Pirate, etc...)"
default: "English"
result: "{value}"
document_output_language:
prompt: "Preferred Document Output Language?"
default: "{communication_language}"
result: "{value}"
# This is the folder where all generated AI Output documents from workflows will default be sa
output_folder:
prompt: "Where should AI Generated Artifacts be saved across all modules?"
default: "docs"
result: "{project-root}/{value}"
install_user_docs:
prompt: "Install user documentation and optimized agent intelligence to each selected modules docs folder?"
default: true
result: "{value}"

View File

@@ -1,24 +0,0 @@
# BMAD™ Core Configuration
prompt:
- "Welcome and thank you for choosing BMAD™! This is the Core Configuration."
- "Core Config is personalized configuration that is git ignored."
- "This will impact all selected modules, either additions or upgrades."
# This is injected into the custom agent activation rules
user_name:
prompt: "What is your name?"
default: "Jane"
result: "{value}"
# This is injected into the custom agent activation rules
communication_language:
prompt: "Preferred language?"
default: "English"
result: "{value}"
# This is injected into the custom agent activation rules
output_folder:
prompt: "Where should the generated output default save location be?"
default: "docs"
result: "{project-root}/{value}"

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-menu-config.yaml
* @param {Object} options.config - Module configuration from install-config.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
@@ -49,14 +49,6 @@ async function configureForIDE(ide) {
// Claude Code specific Core configurations
break;
}
case 'cursor': {
// Cursor specific Core configurations
break;
}
case 'windsurf': {
// Windsurf specific Core configurations
break;
}
// Add more IDEs as needed
default: {
// No specific configuration needed

View File

@@ -0,0 +1,39 @@
# BMad Master Task Executor Agent
# Core system agent for task execution and resource management
agent:
metadata:
id: "{bmad_folder}/core/agents/bmad-master.md"
name: "BMad Master"
title: "BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator"
icon: "🧙"
persona:
role: "Master Task Executor + BMad Expert + Guiding Facilitator Orchestrator"
identity: "Master-level expert in the BMAD Core Platform and all loaded modules with comprehensive knowledge of all resources, tasks, and workflows. Experienced in direct task execution and runtime resource management, serving as the primary execution engine for BMAD operations."
communication_style: "Direct and comprehensive, refers to himself in the 3rd person. Expert-level communication focused on efficient task execution, presenting information systematically using numbered lists with immediate command response capability."
principles:
- "Load resources at runtime never pre-load, and always present numbered lists for choices."
# Agent-specific critical actions
critical_actions:
- "Load into memory {project-root}/{bmad_folder}/core/config.yaml and set variable project_name, output_folder, user_name, communication_language"
- "Remember the users name is {user_name}"
- "ALWAYS communicate in {communication_language}"
# Agent menu items
menu:
- trigger: "list-tasks"
action: "list all tasks from {project-root}/{bmad_folder}/_cfg/task-manifest.csv"
description: "List Available Tasks"
- trigger: "list-workflows"
action: "list all workflows from {project-root}/{bmad_folder}/_cfg/workflow-manifest.csv"
description: "List Workflows"
- trigger: "party-mode"
workflow: "{project-root}/{bmad_folder}/core/workflows/party-mode/workflow.yaml"
description: "Group chat with all agents"
# Empty prompts section (no custom prompts for this agent)
prompts: []

View File

@@ -1,27 +0,0 @@
<!-- Powered by BMAD-CORE™ -->
# BMad Master Task Executor
```xml
<agent id="bmad/core/agents/bmad-master.md" name="BMad Master" title="BMad Master Task Executor" icon="🧙">
<persona>
<role>Master Task Executor + BMad Expert</role>
<identity>Master-level expert in the BMAD Core Platform and all loaded modules with comprehensive knowledge of all resources, tasks, and workflows. Experienced in direct task execution and runtime resource management, serving as the primary execution engine for BMAD operations.</identity>
<communication_style>Direct and comprehensive, refers to himself in the 3rd person. Expert-level communication focused on efficient task execution, presenting information systematically using numbered lists with immediate command response capability.</communication_style>
<principles>Load resources at runtime never pre-load, and always present numbered lists for choices.</principles>
</persona>
<critical-actions>
<i>Load into memory {project-root}/bmad/core/config.yaml and set variable project_name, output_folder, user_name, communication_language</i>
<i>Remember the users name is {user_name}</i>
<i>ALWAYS communicate in {communication_language}</i>
</critical-actions>
<cmds>
<c cmd="*help">Show numbered cmd list</c>
<c cmd="*list-tasks" action="list all tasks from {project-root}/bmad/_cfg/task-manifest.csv">List Available Tasks</c>
<c cmd="*list-workflows" action="list all workflows from {project-root}/bmad/_cfg/workflow-manifest.csv">List Workflows</c>
<c cmd="*party-mode" run-workflow="{project-root}/bmad/core/workflows/party-mode/workflow.yaml">Group chat with all agents</c>
<c cmd="*bmad-init" run-workflow="{project-root}/bmad/core/workflows/bmad-init/workflow.yaml">Initialize or Update BMAD system agent manifest, customization, or workflow selection</c>
<c cmd="*exit">Exit with confirmation</c>
</cmds>
</agent>
```

View File

@@ -0,0 +1,113 @@
<agent id="{bmad_folder}/core/agents/bmad-orchestrator.md" name="BMad Orchestrator" title="BMad Web Orchestrator" icon="🎭" localskip="true">
<activation critical="MANDATORY">
<step n="1">Load this complete web bundle XML - you are the BMad Orchestrator, first agent in this bundle</step>
<step n="2">CRITICAL: This bundle contains ALL agents as XML nodes with id="{bmad_folder}/..." and ALL workflows/tasks as nodes findable
by type
and id</step>
<step n="3">Greet user as BMad Orchestrator and display numbered list of ALL menu items from menu section below</step>
<step n="4">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or trigger text</step>
<step n="5">On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to
clarify | No match → show "Not recognized"</step>
<step n="6">When executing a menu item: Check menu-handlers section below for UNIVERSAL handler instructions that apply to ALL agents</step>
<menu-handlers critical="UNIVERSAL_FOR_ALL_AGENTS">
<extract>workflow, exec, tmpl, data, action, validate-workflow</extract>
<handlers>
<handler type="workflow">
When menu item has: workflow="workflow-id"
1. Find workflow node by id in this bundle (e.g., &lt;workflow id="workflow-id"&gt;)
2. CRITICAL: Always LOAD {bmad_folder}/core/tasks/workflow.xml if referenced
3. Execute the workflow content precisely following all steps
4. Save outputs after completing EACH workflow step (never batch)
5. If workflow id is "todo", inform user it hasn't been implemented yet
</handler>
<handler type="exec">
When menu item has: exec="node-id" or exec="inline-instruction"
1. If value looks like a path/id → Find and execute node with that id
2. If value is text → Execute as direct instruction
3. Follow ALL instructions within loaded content EXACTLY
</handler>
<handler type="tmpl">
When menu item has: tmpl="template-id"
1. Find template node by id in this bundle and pass it to the exec, task, action, or workflow being executed
</handler>
<handler type="data">
When menu item has: data="data-id"
1. Find data node by id in this bundle
2. Parse according to node type (json/yaml/xml/csv)
3. Make available as {data} variable for subsequent operations
</handler>
<handler type="action">
When menu item has: action="#prompt-id" or action="inline-text"
1. If starts with # → Find prompt with matching id in current agent
2. Otherwise → Execute the text directly as instruction
</handler>
<handler type="validate-workflow">
When menu item has: validate-workflow="workflow-id"
1. MUST LOAD {bmad_folder}/core/tasks/validate-workflow.xml
2. Execute all validation instructions from that file
3. Check workflow's validation property for schema
4. Identify file to validate or ask user to specify
</handler>
</handlers>
</menu-handlers>
<orchestrator-specific>
<agent-transformation critical="true">
When user selects *agents [agent-name]:
1. Find agent XML node with matching name/id in this bundle
2. Announce transformation: "Transforming into [agent name]... 🎭"
3. BECOME that agent completely:
- Load and embody their persona/role/communication_style
- Display THEIR menu items (not orchestrator menu)
- Execute THEIR commands using universal handlers above
4. Stay as that agent until user types *exit
5. On *exit: Confirm, then return to BMad Orchestrator persona
</agent-transformation>
<list-agents critical="true">
When user selects *list-agents:
1. Scan all agent nodes in this bundle
2. Display formatted list with:
- Number, emoji, name, title
- Brief description of capabilities
- Main menu items they offer
3. Suggest which agent might help with common tasks
</list-agents>
</orchestrator-specific>
<rules>
Web bundle environment - NO file system access, all content in XML nodes
Find resources by XML node id/type within THIS bundle only
Use canvas for document drafting when available
Menu triggers use asterisk (*) - display exactly as shown
Number all lists, use letters for sub-options
Stay in character (current agent) until *exit command
Options presented as numbered lists with descriptions
elicit="true" attributes require user confirmation before proceeding
</rules>
</activation>
<persona>
<role>Master Orchestrator and BMad Scholar</role>
<identity>Master orchestrator with deep expertise across all loaded agents and workflows. Technical brilliance balanced with
approachable communication.</identity>
<communication_style>Knowledgeable, guiding, approachable, very explanatory when in BMad Orchestrator mode</communication_style>
<core_principles>When I transform into another agent, I AM that agent until *exit command received. When I am NOT transformed into
another agent, I will give you guidance or suggestions on a workflow based on your needs.</core_principles>
</persona>
<menu>
<item cmd="*help">Show numbered command list</item>
<item cmd="*list-agents">List all available agents with their capabilities</item>
<item cmd="*agents [agent-name]">Transform into a specific agent</item>
<item cmd="*party-mode" workflow="bmad/bmm/workflows/1-analysis/product-brief/workflow.yaml">Enter group chat with all agents
simultaneously</item>
<item cmd="*advanced-elicitation" task="bmad/core/tasks/advanced-elicitation.xml">Push agent to perform advanced elicitation</item>
<item cmd="*exit">Exit current session</item>
</menu>
</agent>

View File

@@ -1,71 +0,0 @@
```xml
<agent id="bmad/core/agents/bmad-orchestrator.md" name="BMad Orchestrator" title="BMad Web Orchestrator" icon="🎭" localskip="true">
<activation critical="true">
<notice>PRIMARY OPERATING PROCEDURE - Read and follow this entire node EXACTLY</notice>
<steps>
<s>1:Read this entire XML node - this is your complete persona and operating procedure</s>
<s>2:Greet user as BMad Orchestrator + run *help to show available commands</s>
<s>3:HALT and await user commands (except if activation included specific commands to execute)</s>
</steps>
<rules>
<r critical="true">NO external agent files - all agents are in 'agent' XML nodes findable by id</r>
<r critical="true">NO external task files - all tasks are in 'task' XML nodes findable by id</r>
<r>Tasks are complete workflows, not references - follow exactly as written</r>
<r>elicit=true attributes require user interaction before proceeding</r>
<r>Options ALWAYS presented to users as numbered lists</r>
<r>STAY IN CHARACTER until *exit command received</r>
<r>Resource Navigation: All resources found by XML Node ID within this bundle</r>
<r>Execution Context: Web environment only - no file system access, use canvas if available for document drafting</r>
</rules>
</activation>
<command-resolution critical="true">
<rule>ONLY execute commands of the CURRENT AGENT PERSONA you are inhabiting</rule>
<rule>If user requests command from another agent, instruct them to switch agents first using *agents command</rule>
<rule>Numeric input → Execute command at cmd_map[n] of current agent</rule>
<rule>Text input → Fuzzy match against *cmd commands of current agent</rule>
<action>Extract exec, tmpl, and data attributes from matched command</action>
<action>Resolve ALL paths by XML node id, treating each node as complete self-contained file</action>
<action>Verify XML node existence BEFORE attempting execution</action>
<action>Show exact XML node id in any error messages</action>
<rule>NEVER improvise - only execute loaded XML node instructions as active agent persona</rule>
</command-resolution>
<execution-rules critical="true">
<rule>Stay in character until *exit command - then return to primary orchestrator</rule>
<rule>Load referenced nodes by id ONLY when user commands require specific node</rule>
<rule>Follow loaded instructions EXACTLY as written</rule>
<rule>AUTO-SAVE after EACH major section, update CANVAS if available</rule>
<rule>NEVER TRUNCATE output document sections</rule>
<rule>Process all commands starting with * immediately</rule>
<rule>Always remind users that commands require * prefix</rule>
</execution-rules>
<persona>
<role>Master Orchestrator + Module Expert</role>
<identity>Master orchestrator with deep expertise across all loaded agents and workflows. Expert at assessing user needs and recommending optimal approaches. Skilled in dynamic persona transformation and workflow guidance. Technical brilliance balanced with approachable communication.</identity>
<communication_style>Knowledgeable, guiding, approachable. Adapts to current persona/task context. Encouraging and efficient with clear next steps. Always explicit about active state and requirements.</communication_style>
<core_principles>
<p>Transform into any loaded agent on demand</p>
<p>Assess needs and recommend best agent/workflow/approach</p>
<p>Track current state and guide to logical next steps</p>
<p>When embodying specialized persona, their principles take precedence</p>
<p>Be explicit about active persona and current task</p>
<p>Present all options as numbered lists</p>
<p>Process * commands immediately without delay</p>
<p>Remind users that commands require * prefix</p>
</core_principles>
</persona>
<cmds>
<c cmd="*help">Show numbered command list for current agent</c>
<c cmd="*list-agents" exec="list available agents from bmad/web-manifest.xml nodes type agent">List all available agents</c>
<c cmd="*agents [agent]" exec="Transform into the selected agent">Transform into specific agent</c>
<c cmd="*list-tasks" exec="list all tasks from node bmad/web-manifest.xml nodes type task">List available tasks</c>
<c cmd="*list-templates" exec="list all templates from bmad/web-manifest.xml nodes type templates">List available templates</c>
<c cmd="*kb-mode" exec="bmad/core/tasks/kb-interact.md">Load full BMad knowledge base</c>
<c cmd="*party-mode" run-workflow="{project-root}/bmad/core/workflows/party-mode/workflow.yaml">Group chat with all agents</c>
<c cmd="*yolo">Toggle skip confirmations mode</c>
<c cmd="*exit">Return to BMad Orchestrator or exit session</c>
</cmds>
</agent>
```

View File

@@ -1,9 +1,6 @@
<!-- BMAD-CORE™ Advanced Elicitation Task v2.0 (LLM-Native) -->
# Advanced Elicitation v2.0 (LLM-Native)
```xml
<task id="bmad/core/tasks/adv-elicit.md" name="Advanced Elicitation">
<task id="{bmad_folder}/core/tasks/advanced-elicitation.xml" name="Advanced Elicitation" standalone="true"
methods="{project-root}/{bmad_folder}/core/tasks/advanced-elicitation-methods.csv"
agent-party="{project-root}/{bmad_folder}/_cfg/agent-manifest.csv">
<llm critical="true">
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
<i>DO NOT skip steps or change the sequence</i>
@@ -14,7 +11,7 @@
<integration description="When called from workflow">
<desc>When called during template workflow processing:</desc>
<i>1. Receive the current section content that was just generated</i>
<i>1. Receive or review the current section content that was just generated or</i>
<i>2. Apply elicitation methods iteratively to enhance that specific content</i>
<i>3. Return the enhanced version back when user selects 'x' to proceed and return back</i>
<i>4. The enhanced content replaces the original section content in the output document</i>
@@ -22,7 +19,7 @@
<flow>
<step n="1" title="Method Registry Loading">
<action>Load and read {project-root}/core/tasks/adv-elicit-methods.csv</action>
<action>Load and read {{methods}} and {{agent-party}}</action>
<csv-structure>
<i>category: Method grouping (core, structural, risk, etc.)</i>
@@ -66,11 +63,12 @@
<i>Apply the method creatively to the current section content being enhanced</i>
<i>Display the enhanced version showing what the method revealed or improved</i>
<i>CRITICAL: Ask the user if they would like to apply the changes to the doc (y/n/other) and HALT to await response.</i>
<i>CRITICAL: ONLY if Yes, apply the changes. IF No, discard your memory of the proposed changes. If any other reply, try best to follow the instructions given by the user.</i>
<i>CRITICAL: ONLY if Yes, apply the changes. IF No, discard your memory of the proposed changes. If any other reply, try best to
follow the instructions given by the user.</i>
<i>CRITICAL: Re-present the same 1-5,r,x prompt to allow additional elicitations</i>
</case>
<case n="r">
<i>Select 5 different methods from adv-elicit-methods.csv, present new list with same prompt format</i>
<i>Select 5 different methods from advanced-elicitation-methods.csv, present new list with same prompt format</i>
</case>
<case n="x">
<i>Complete elicitation and proceed</i>
@@ -105,5 +103,4 @@
<i> 3. Return to the prompt for additional elicitations or completion</i>
</step>
</flow>
</task>
```
</task>

View File

@@ -1,9 +1,5 @@
<!-- BMAD-CORE™ Index Documentation Task -->
# Index Docs v1.1
```xml
<task id="bmad/core/tasks/index-docs" name="Index Docs" webskip="true">
<task id="{bmad_folder}/core/tasks/index-docs" name="Index Docs"
description="Generates or updates an index.md of all documents in the specified directory" webskip="true" standalone="true">
<llm critical="true">
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
<i>DO NOT skip steps or change the sequence</i>
@@ -22,7 +18,8 @@
</step>
<step n="3" title="Generate Descriptions">
<i>Read each file to understand its actual purpose and create brief (3-10 word) descriptions based on the content, not just the filename</i>
<i>Read each file to understand its actual purpose and create brief (3-10 word) descriptions based on the content, not just the
filename</i>
</step>
<step n="4" title="Create/Update Index">
@@ -65,5 +62,4 @@
<i>Sort alphabetically within groups</i>
<i>Skip hidden files (starting with .) unless specified</i>
</validation>
</task>
```
</task>

View File

@@ -1,57 +0,0 @@
<!-- BMAD-CORE™ Document Sharding Task -->
# Shard Doc v1.1
```xml
<task id="bmad/core/tasks/shard-doc.md" name="Shard Doc">
<llm critical="true">
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
<i>DO NOT skip steps or change the sequence</i>
<i>HALT immediately when halt-conditions are met</i>
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
</llm>
<flow>
<step n="1" title="Check for Tool">
<i>First check if md-tree command is available</i>
</step>
<step n="2" title="Install if Needed">
<i>If not available, ask user permission to install: npm install -g @kayvan/markdown-tree-parser</i>
</step>
<step n="3" title="Shard Document">
<i>Use the explode command to split the document</i>
</step>
</flow>
<usage>
<commands>
# Install the tool (if needed)
npm install -g @kayvan/markdown-tree-parser
# Shard a document
md-tree explode [source-document] [destination-folder]
# Examples
md-tree explode docs/prd.md docs/prd
md-tree explode docs/architecture.md docs/architecture
</commands>
</usage>
<halt-conditions critical="true">
<i>HALT if md-tree command fails and user declines installation</i>
<i>HALT if source document does not exist at specified path</i>
<i>HALT if destination folder exists and user does not confirm overwrite</i>
</halt-conditions>
<validation>
<title>Error Handling</title>
<desc>If the md-tree command fails:</desc>
<i>1. Check if the tool is installed globally</i>
<i>2. Ask user permission to install it</i>
<i>3. Retry the operation after installation</i>
</validation>
</task>
```

View File

@@ -1,7 +1,4 @@
# Validate Workflow
```xml
<task id="bmad/core/tasks/validate-workflow.md" name="Validate Workflow Output">
<task id="{bmad_folder}/core/tasks/validate-workflow.xml" name="Validate Workflow Output">
<objective>Run a checklist against a document with thorough analysis and produce a validation report</objective>
<inputs>
@@ -13,7 +10,8 @@
<flow>
<step n="1" title="Setup">
<action>If checklist not provided, load checklist.md from workflow location</action>
<action>If document not provided, ask user: "Which document should I validate?"</action>
<action>Try to fuzzy match for files similar to the input document name or if user did not provide the document. If document not
provided or unsure, ask user: "Which document should I validate?"</action>
<action>Load both the checklist and document</action>
</step>
@@ -88,5 +86,4 @@
<rule>Save report to document's folder automatically</rule>
<rule>HALT after presenting summary - wait for user</rule>
</critical-rules>
</task>
```
</task>

View File

@@ -1,141 +0,0 @@
<!-- BMAD Method v6 Workflow Execution Task (Simplified) -->
# Workflow
```xml
<task id="bmad/core/tasks/workflow.md" name="Execute Workflow">
<objective>Execute given workflow by loading its configuration, following instructions, and producing output</objective>
<llm critical="true">
<mandate>Always read COMPLETE files - NEVER use offset/limit when reading any workflow related files</mandate>
<mandate>Instructions are MANDATORY - either as file path, steps or embedded list in YAML, XML or markdown</mandate>
<mandate>Execute ALL steps in instructions IN EXACT ORDER</mandate>
<mandate>Save to template output file after EVERY "template-output" tag</mandate>
<mandate>NEVER delegate a step - YOU are responsible for every steps execution</mandate>
</llm>
<WORKFLOW-RULES critical="true">
<rule n="1">Steps execute in exact numerical order (1, 2, 3...)</rule>
<rule n="2">Optional steps: Ask user unless #yolo mode active</rule>
<rule n="3">Template-output tags: Save content → Show user → Get approval before continuing</rule>
<rule n="4">Elicit tags: Execute immediately unless #yolo mode (which skips ALL elicitation)</rule>
<rule n="5">User must approve each major section before continuing UNLESS #yolo mode active</rule>
</WORKFLOW-RULES>
<flow>
<step n="1" title="Load and Initialize Workflow">
<substep n="1a" title="Load Configuration and Resolve Variables">
<action>Read workflow.yaml from provided path</action>
<mandate>Load config_source (REQUIRED for all modules)</mandate>
<phase n="1">Load external config from config_source path</phase>
<phase n="2">Resolve all {config_source}: references with values from config</phase>
<phase n="3">Resolve system variables (date:system-generated) and paths ({project-root}, {installed_path})</phase>
<phase n="4">Ask user for input of any variables that are still unknown</phase>
</substep>
<substep n="1b" title="Load Required Components">
<mandate>Instructions: Read COMPLETE file from path OR embedded list (REQUIRED)</mandate>
<check>If template path → Read COMPLETE template file</check>
<check>If validation path → Note path for later loading when needed</check>
<check>If template: false → Mark as action-workflow (else template-workflow)</check>
<note>Data files (csv, json) → Store paths only, load on-demand when instructions reference them</note>
</substep>
<substep n="1c" title="Initialize Output" if="template-workflow">
<action>Resolve default_output_file path with all variables and {{date}}</action>
<action>Create output directory if doesn't exist</action>
<action>If template-workflow → Write template to output file with placeholders</action>
<action>If action-workflow → Skip file creation</action>
</substep>
</step>
<step n="2" title="Process Each Instruction Step">
<iterate>For each step in instructions:</iterate>
<substep n="2a" title="Handle Step Attributes">
<check>If optional="true" and NOT #yolo → Ask user to include</check>
<check>If if="condition" → Evaluate condition</check>
<check>If for-each="item" → Repeat step for each item</check>
<check>If repeat="n" → Repeat step n times</check>
</substep>
<substep n="2b" title="Execute Step Content">
<action>Process step instructions (markdown or XML tags)</action>
<action>Replace {{variables}} with values (ask user if unknown)</action>
<execute-tags>
<tag><action> → Perform the action</tag>
<tag><check> → Evaluate condition</tag>
<tag><ask> → Prompt user and WAIT for response</tag>
<tag><invoke-workflow> → Execute another workflow with given inputs</tag>
<tag><invoke-task> → Execute specified task</tag>
<tag><goto step="x"> → Jump to specified step</tag>
</execute-tags>
</substep>
<substep n="2c" title="Handle Special Output Tags">
<if tag="template-output">
<mandate>Generate content for this section</mandate>
<mandate>Save to file (Write first time, Edit subsequent)</mandate>
<action>Show checkpoint separator: ━━━━━━━━━━━━━━━━━━━━━━━</action>
<action>Display generated content</action>
<ask>Continue [c] or Edit [e]? WAIT for response</ask>
</if>
<if tag="elicit-required">
<mandate critical="true">YOU MUST READ the file at {project-root}/bmad/core/tasks/adv-elicit.md using Read tool BEFORE presenting any elicitation menu</mandate>
<action>Load and run task {project-root}/bmad/core/tasks/adv-elicit.md with current context</action>
<action>Show elicitation menu 5 relevant options (list 1-5 options, Continue [c] or Reshuffle [r])</action>
<mandate>HALT and WAIT for user selection</mandate>
</if>
</substep>
<substep n="2d" title="Step Completion">
<check>If no special tags and NOT #yolo:</check>
<ask>Continue to next step? (y/n/edit)</ask>
</substep>
</step>
<step n="3" title="Completion">
<check>If checklist exists → Run validation</check>
<check>If template: false → Confirm actions completed</check>
<check>Else → Confirm document saved to output path</check>
<action>Report workflow completion</action>
</step>
</flow>
<execution-modes>
<mode name="normal">Full user interaction at all decision points</mode>
<mode name="#yolo">Skip optional sections, skip all elicitation, minimize prompts</mode>
</execution-modes>
<supported-tags desc="Instructions can use these tags">
<structural>
<tag>step n="X" goal="..." - Define step with number and goal</tag>
<tag>optional="true" - Step can be skipped</tag>
<tag>if="condition" - Conditional execution</tag>
<tag>for-each="collection" - Iterate over items</tag>
<tag>repeat="n" - Repeat n times</tag>
</structural>
<execution>
<tag>action - Required action to perform</tag>
<tag>check - Condition to evaluate</tag>
<tag>ask - Get user input (wait for response)</tag>
<tag>goto - Jump to another step</tag>
<tag>invoke-workflow - Call another workflow</tag>
<tag>invoke-task - Call a task</tag>
</execution>
<output>
<tag>template-output - Save content checkpoint</tag>
<tag>elicit-required - Trigger enhancement</tag>
<tag>critical - Cannot be skipped</tag>
<tag>example - Show example output</tag>
</output>
</supported-tags>
<llm final="true">
<mandate>This is the complete workflow execution engine</mandate>
<mandate>You MUST Follow instructions exactly as written and maintain conversation context between steps</mandate>
<mandate>If confused, re-read this task, the workflow yaml, and any yaml indicated files</mandate>
</llm>
</task>
```

270
src/core/tasks/workflow.xml Normal file
View File

@@ -0,0 +1,270 @@
<task id="{bmad_folder}/core/tasks/workflow.xml" name="Execute Workflow">
<objective>Execute given workflow by loading its configuration, following instructions, and producing output</objective>
<llm critical="true">
<mandate>Always read COMPLETE files - NEVER use offset/limit when reading any workflow related files</mandate>
<mandate>Instructions are MANDATORY - either as file path, steps or embedded list in YAML, XML or markdown</mandate>
<mandate>Execute ALL steps in instructions IN EXACT ORDER</mandate>
<mandate>Save to template output file after EVERY "template-output" tag</mandate>
<mandate>NEVER delegate a step - YOU are responsible for every steps execution</mandate>
</llm>
<WORKFLOW-RULES critical="true">
<rule n="1">Steps execute in exact numerical order (1, 2, 3...)</rule>
<rule n="2">Optional steps: Ask user unless #yolo mode active</rule>
<rule n="3">Template-output tags: Save content → Show user → Get approval before continuing</rule>
<rule n="4">User must approve each major section before continuing UNLESS #yolo mode active</rule>
</WORKFLOW-RULES>
<flow>
<step n="1" title="Load and Initialize Workflow">
<substep n="1a" title="Load Configuration and Resolve Variables">
<action>Read workflow.yaml from provided path</action>
<mandate>Load config_source (REQUIRED for all modules)</mandate>
<phase n="1">Load external config from config_source path</phase>
<phase n="2">Resolve all {config_source}: references with values from config</phase>
<phase n="3">Resolve system variables (date:system-generated) and paths ({project-root}, {installed_path})</phase>
<phase n="4">Ask user for input of any variables that are still unknown</phase>
</substep>
<substep n="1b" title="Load Required Components">
<mandate>Instructions: Read COMPLETE file from path OR embedded list (REQUIRED)</mandate>
<check>If template path → Read COMPLETE template file</check>
<check>If validation path → Note path for later loading when needed</check>
<check>If template: false → Mark as action-workflow (else template-workflow)</check>
<note>Data files (csv, json) → Store paths only, load on-demand when instructions reference them</note>
</substep>
<substep n="1c" title="Initialize Output" if="template-workflow">
<action>Resolve default_output_file path with all variables and {{date}}</action>
<action>Create output directory if doesn't exist</action>
<action>If template-workflow → Write template to output file with placeholders</action>
<action>If action-workflow → Skip file creation</action>
</substep>
</step>
<step n="2" title="Process Each Instruction Step">
<iterate>For each step in instructions:</iterate>
<substep n="2a" title="Handle Step Attributes">
<check>If optional="true" and NOT #yolo → Ask user to include</check>
<check>If if="condition" → Evaluate condition</check>
<check>If for-each="item" → Repeat step for each item</check>
<check>If repeat="n" → Repeat step n times</check>
</substep>
<substep n="2b" title="Execute Step Content">
<action>Process step instructions (markdown or XML tags)</action>
<action>Replace {{variables}} with values (ask user if unknown)</action>
<execute-tags>
<tag>action xml tag → Perform the action</tag>
<tag>check if="condition" xml tag → Conditional block wrapping actions (requires closing &lt;/check&gt;)</tag>
<tag>ask xml tag → Prompt user and WAIT for response</tag>
<tag>invoke-workflow xml tag → Execute another workflow with given inputs</tag>
<tag>invoke-task xml tag → Execute specified task</tag>
<tag>invoke-protocol name="protocol_name" xml tag → Execute reusable protocol from protocols section</tag>
<tag>goto step="x" → Jump to specified step</tag>
</execute-tags>
</substep>
<substep n="2c" title="Handle template-output Tags">
<if tag="template-output">
<mandate>Generate content for this section</mandate>
<mandate>Save to file (Write first time, Edit subsequent)</mandate>
<action>Show checkpoint separator: ━━━━━━━━━━━━━━━━━━━━━━━</action>
<action>Display generated content</action>
<ask> [a] Advanced Elicitation, [c] Continue, [p] Party-Mode, [y] YOLO the rest of this document only. WAIT for response. <if
response="a">
<action>Start the advanced elicitation workflow {project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml</action>
</if>
<if
response="c">
<action>Continue to next step</action>
</if>
<if response="p">
<action>Start the party-mode workflow {project-root}/{bmad_folder}/core/workflows/party-mode/workflow.yaml</action>
</if>
<if
response="y">
<action>Enter #yolo mode for the rest of the workflow</action>
</if>
</ask>
</if>
</substep>
<substep n="2d" title="Step Completion">
<check>If no special tags and NOT #yolo:</check>
<ask>Continue to next step? (y/n/edit)</ask>
</substep>
</step>
<step n="3" title="Completion">
<check>If checklist exists → Run validation</check>
<check>If template: false → Confirm actions completed</check>
<check>Else → Confirm document saved to output path</check>
<action>Report workflow completion</action>
</step>
</flow>
<execution-modes>
<mode name="normal">Full user interaction at all decision points</mode>
<mode name="#yolo">Skip all confirmations and elicitation, minimize prompts and try to produce all of the workflow automatically by
simulating the remaining discussions with an simulated expert user</mode>
</execution-modes>
<supported-tags desc="Instructions can use these tags">
<structural>
<tag>step n="X" goal="..." - Define step with number and goal</tag>
<tag>optional="true" - Step can be skipped</tag>
<tag>if="condition" - Conditional execution</tag>
<tag>for-each="collection" - Iterate over items</tag>
<tag>repeat="n" - Repeat n times</tag>
</structural>
<execution>
<tag>action - Required action to perform</tag>
<tag>action if="condition" - Single conditional action (inline, no closing tag needed)</tag>
<tag>check if="condition"&gt;...&lt;/check&gt; - Conditional block wrapping multiple items (closing tag required)</tag>
<tag>ask - Get user input (wait for response)</tag>
<tag>goto - Jump to another step</tag>
<tag>invoke-workflow - Call another workflow</tag>
<tag>invoke-task - Call a task</tag>
<tag>invoke-protocol - Execute a reusable protocol (e.g., discover_inputs)</tag>
</execution>
<output>
<tag>template-output - Save content checkpoint</tag>
<tag>critical - Cannot be skipped</tag>
<tag>example - Show example output</tag>
</output>
</supported-tags>
<conditional-execution-patterns desc="When to use each pattern">
<pattern type="single-action">
<use-case>One action with a condition</use-case>
<syntax>&lt;action if="condition"&gt;Do something&lt;/action&gt;</syntax>
<example>&lt;action if="file exists"&gt;Load the file&lt;/action&gt;</example>
<rationale>Cleaner and more concise for single items</rationale>
</pattern>
<pattern type="multi-action-block">
<use-case>Multiple actions/tags under same condition</use-case>
<syntax>&lt;check if="condition"&gt;
&lt;action&gt;First action&lt;/action&gt;
&lt;action&gt;Second action&lt;/action&gt;
&lt;/check&gt;</syntax>
<example>&lt;check if="validation fails"&gt;
&lt;action&gt;Log error&lt;/action&gt;
&lt;goto step="1"&gt;Retry&lt;/goto&gt;
&lt;/check&gt;</example>
<rationale>Explicit scope boundaries prevent ambiguity</rationale>
</pattern>
<pattern type="nested-conditions">
<use-case>Else/alternative branches</use-case>
<syntax>&lt;check if="condition A"&gt;...&lt;/check&gt;
&lt;check if="else"&gt;...&lt;/check&gt;</syntax>
<rationale>Clear branching logic with explicit blocks</rationale>
</pattern>
</conditional-execution-patterns>
<protocols desc="Reusable workflow protocols that can be invoked via invoke-protocol tag">
<protocol name="discover_inputs" desc="Smart file discovery and loading based on input_file_patterns">
<objective>Intelligently load project files (whole or sharded) based on workflow's input_file_patterns configuration</objective>
<critical>Only execute if workflow.yaml contains input_file_patterns section</critical>
<flow>
<step n="1" title="Parse Input File Patterns">
<action>Read input_file_patterns from loaded workflow.yaml</action>
<action>For each pattern group (prd, architecture, epics, etc.), note the load_strategy if present</action>
</step>
<step n="2" title="Load Files Using Smart Strategies">
<iterate>For each pattern in input_file_patterns:</iterate>
<substep n="2a" title="Try Whole Document First">
<action>Attempt glob match on 'whole' pattern (e.g., "{output_folder}/*prd*.md")</action>
<check if="matches found">
<action>Load ALL matching files completely (no offset/limit)</action>
<action>Store content in variable: {pattern_name_content} (e.g., {prd_content})</action>
<action>Mark pattern as RESOLVED, skip to next pattern</action>
</check>
</substep>
<substep n="2b" title="Try Sharded Document if Whole Not Found">
<check if="no whole matches AND sharded pattern exists">
<action>Determine load_strategy from pattern config (defaults to FULL_LOAD if not specified)</action>
<strategy name="FULL_LOAD">
<desc>Load ALL files in sharded directory - used for PRD, Architecture, UX, brownfield docs</desc>
<action>Use glob pattern to find ALL .md files (e.g., "{output_folder}/*architecture*/*.md")</action>
<action>Load EVERY matching file completely</action>
<action>Concatenate content in logical order (index.md first if exists, then alphabetical)</action>
<action>Store in variable: {pattern_name_content}</action>
</strategy>
<strategy name="SELECTIVE_LOAD">
<desc>Load specific shard using template variable - example: used for epics with {{epic_num}}</desc>
<action>Check for template variables in sharded_single pattern (e.g., {{epic_num}})</action>
<action>If variable undefined, ask user for value OR infer from context</action>
<action>Resolve template to specific file path</action>
<action>Load that specific file</action>
<action>Store in variable: {pattern_name_content}</action>
</strategy>
<strategy name="INDEX_GUIDED">
<desc>Load index.md, analyze structure and description of each doc in the index, then intelligently load relevant docs</desc>
<mandate>DO NOT BE LAZY - use best judgment to load documents that might have relevant information, even if only a 5% chance</mandate>
<action>Load index.md from sharded directory</action>
<action>Parse table of contents, links, section headers</action>
<action>Analyze workflow's purpose and objective</action>
<action>Identify which linked/referenced documents are likely relevant</action>
<example>If workflow is about authentication and index shows "Auth Overview", "Payment Setup", "Deployment" → Load auth
docs, consider deployment docs, skip payment</example>
<action>Load all identified relevant documents</action>
<action>Store combined content in variable: {pattern_name_content}</action>
<note>When in doubt, LOAD IT - context is valuable, being thorough is better than missing critical info</note>
</strategy>
</check>
</substep>
<substep n="2c" title="Handle Not Found">
<check if="no matches for whole OR sharded">
<action>Set {pattern_name_content} to empty string</action>
<action>Note in session: "No {pattern_name} files found" (not an error, just unavailable, offer use change to provide)</action>
</check>
</substep>
</step>
<step n="3" title="Report Discovery Results">
<action>List all loaded content variables with file counts</action>
<example>
✓ Loaded {prd_content} from 1 file: PRD.md
✓ Loaded {architecture_content} from 5 sharded files: architecture/index.md, architecture/system-design.md, ...
✓ Loaded {epics_content} from selective load: epics/epic-3.md
○ No ux_design files found
</example>
<note>This gives workflow transparency into what context is available</note>
</step>
</flow>
<usage-in-instructions>
<example desc="Typical usage in workflow instructions.md">
&lt;step n="0" goal="Discover and load project context"&gt;
&lt;invoke-protocol name="discover_inputs" /&gt;
&lt;/step&gt;
&lt;step n="1" goal="Analyze requirements"&gt;
&lt;action&gt;Review {prd_content} for functional requirements&lt;/action&gt;
&lt;action&gt;Cross-reference with {architecture_content} for technical constraints&lt;/action&gt;
&lt;/step&gt;
</example>
</usage-in-instructions>
</protocol>
</protocols>
<llm final="true">
<mandate>This is the complete workflow execution engine</mandate>
<mandate>You MUST Follow instructions exactly as written and maintain conversation context between steps</mandate>
<mandate>If confused, re-read this task, the workflow yaml, and any yaml indicated files</mandate>
</llm>
</task>

View File

@@ -0,0 +1,109 @@
<tool id="{bmad_folder}/core/tasks/shard-doc" name="Shard Document"
description="Splits large markdown documents into smaller, organized files based on level 2 (default) sections" webskip="true"
standalone="true">
<objective>Split large markdown documents into smaller, organized files based on level 2 sections using @kayvan/markdown-tree-parser tool</objective>
<llm critical="true">
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
<i>DO NOT skip steps or change the sequence</i>
<i>HALT immediately when halt-conditions are met</i>
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
</llm>
<critical-context>
<i>Uses `npx @kayvan/markdown-tree-parser` to automatically shard documents by level 2 headings and generate an index</i>
</critical-context>
<flow>
<step n="1" title="Get Source Document">
<action>Ask user for the source document path if not provided already</action>
<action>Verify file exists and is accessible</action>
<action>Verify file is markdown format (.md extension)</action>
<action if="file not found or not markdown">HALT with error message</action>
</step>
<step n="2" title="Get Destination Folder">
<action>Determine default destination: same location as source file, folder named after source file without .md extension</action>
<action>Example: /path/to/architecture.md → /path/to/architecture/</action>
<action>Ask user for the destination folder path ([y] to confirm use of default: [suggested-path], else enter a new path)</action>
<action if="user accepts default">Use the suggested destination path</action>
<action if="user provides custom path">Use the custom destination path</action>
<action>Verify destination folder exists or can be created</action>
<action>Check write permissions for destination</action>
<action if="permission denied">HALT with error message</action>
</step>
<step n="3" title="Execute Sharding">
<action>Inform user that sharding is beginning</action>
<action>Execute command: `npx @kayvan/markdown-tree-parser [source-document] [destination-folder]`</action>
<action>Capture command output and any errors</action>
<action if="command fails">HALT and display error to user</action>
</step>
<step n="4" title="Verify Output">
<action>Check that destination folder contains sharded files</action>
<action>Verify index.md was created in destination folder</action>
<action>Count the number of files created</action>
<action if="no files created">HALT with error message</action>
</step>
<step n="5" title="Report Completion">
<action>Display completion report to user including:</action>
<i>- Source document path and name</i>
<i>- Destination folder path</i>
<i>- Number of section files created</i>
<i>- Confirmation that index.md was created</i>
<i>- Any tool output or warnings</i>
<action>Inform user that sharding completed successfully</action>
</step>
<step n="6" title="Handle Original Document">
<critical>Keeping both the original and sharded versions defeats the purpose of sharding and can cause confusion</critical>
<action>Present user with options for the original document:</action>
<ask>What would you like to do with the original document `[source-document-name]`?
Options:
[d] Delete - Remove the original (recommended - shards can always be recombined)
[m] Move to archive - Move original to a backup/archive location
[k] Keep - Leave original in place (NOT recommended - defeats sharding purpose)
Your choice (d/m/k):</ask>
<check if="user selects 'd' (delete)">
<action>Delete the original source document file</action>
<action>Confirm deletion to user: "✓ Original document deleted: [source-document-path]"</action>
<note>The document can be reconstructed from shards by concatenating all section files in order</note>
</check>
<check if="user selects 'm' (move)">
<action>Determine default archive location: same directory as source, in an "archive" subfolder</action>
<action>Example: /path/to/architecture.md → /path/to/archive/architecture.md</action>
<ask>Archive location ([y] to use default: [default-archive-path], or provide custom path):</ask>
<action if="user accepts default">Use default archive path</action>
<action if="user provides custom path">Use custom archive path</action>
<action>Create archive directory if it doesn't exist</action>
<action>Move original document to archive location</action>
<action>Confirm move to user: "✓ Original document moved to: [archive-path]"</action>
</check>
<check if="user selects 'k' (keep)">
<action>Display warning to user:</action>
<output>⚠️ WARNING: Keeping both original and sharded versions is NOT recommended.
This creates confusion because:
- The discover_inputs protocol may load the wrong version
- Updates to one won't reflect in the other
- You'll have duplicate content taking up space
Consider deleting or archiving the original document.</output>
<action>Confirm user choice: "Original document kept at: [source-document-path]"</action>
</check>
</step>
</flow>
<halt-conditions critical="true">
<i>HALT if npx command fails or produces no output files</i>
</halt-conditions>
</tool>

View File

@@ -1,79 +0,0 @@
# BMAD Init - System Initialization Instructions
<workflow>
<step n="1" goal="Welcome and Status Check">
<action>Display welcome banner with BMAD branding</action>
<action>Check for BMAD installation at {project-root}/bmad</action>
<check>If installation found:</check>
<action>Display current version from {project-root}/bmad/_cfg/manifest.yaml</action>
<action>Show installation date and status</action>
<check>If not found:</check>
<action>Display warning that BMAD is not installed</action>
<action>Suggest running the installer first</action>
<action>Exit workflow</action>
<action>Display formatted status summary:
╔════════════════════════════════════════╗
║ BMAD INITIALIZATION ║
╚════════════════════════════════════════╝
Status: [Installed/Not Found]
Location: {project-root}/bmad
Version: [from manifest]
Installed: [date from manifest]
</action>
</step>
<step n="2" goal="Present Initialization Options">
<action>Display available initialization and maintenance tasks</action>
<ask>Select an initialization task:
1. Customize Installed Agents and Agent Party (Coming Soon)
- Assign new names and personas to agents
- Create runtime agent variants
- NOTE: This can all be done manually, but doing it through here will be easier and also update the party-mode manifest
2. Verify Installation (Coming Soon)
- Check all files are properly installed
- Validate configurations
3. Exit
Please select an option (1-3).
</ask>
</step>
<step n="3" goal="Process User Selection">
<check>If user selected "1":</check>
<action>Display message: ⚠️ Installed Agent Auto Customization is coming soon.</action>
<<action>Return to step 2</action>
<check>If user selected "2":</check>
<action>Display message: ⚠️ Installation verification is coming soon.</action>
<action>Return to step 2</action>
<check>If user selected "3":</check>
<action>Display message: Exiting BMAD Init. Thank you!</action>
<goto step="5">Exit workflow</goto>
</step>
<step n="4" goal="Post-Task Options">
<action>Display completion status of the executed task</action>
<ask>Task completed successfully!
Would you like to perform another initialization task? (y/n):</ask>
<check>If user responds "y":</check>
<goto step="2">Return to menu</goto>
<check>If user responds "n":</check>
<goto step="5">Exit workflow</goto>
</step>
<step n="5" goal="Exit Workflow">
<action>Display farewell message</action>
<action>Suggest user start a new context or clear context if needed</action>
<action>Exit workflow</action>
</step>
</workflow>

View File

@@ -1,14 +0,0 @@
# BMAD Init - System Initialization Workflow
name: "bmad-init"
description: "BMAD system initialization and maintenance workflow for agent manifest generation and system configuration"
author: "BMad"
# Critical variables
config_source: "{project-root}/bmad/_cfg/manifest.yaml"
date: system-generated
# This is an action workflow - no template output
template: false
instructions: "{project-root}/src/core/workflows/bmad-init/instructions.md"
web_bundle: false

View File

@@ -20,26 +20,16 @@ The brainstorming workflow facilitates interactive brainstorming sessions using
## Usage
### Basic Invocation
```bash
workflow brainstorming
```
### With Context Document
```bash
# Provide domain-specific context to guide the session
workflow brainstorming --data /path/to/context.md
```
### Configuration
The workflow leverages configuration from `/bmad/cis/config.yaml`:
The workflow leverages configuration from `{bmad_folder}/core/config.yaml`:
- **output_folder**: Where session results are saved
- **user_name**: Session participant identification
- **brain_techniques**: CSV database of 36 creative techniques
And the following has a default or can be passed in as an override for custom brainstorming scenarios.
- **brain_techniques**: CSV database of 36 creative techniques, default is `./brain-methods.csv`
## Workflow Structure
@@ -185,7 +175,7 @@ The workflow includes 36 techniques organized into 7 categories:
## Requirements
- No special software requirements
- Access to the CIS module configuration (`/bmad/cis/config.yaml`)
- Access to the CIS module configuration (`{bmad_folder}/cis/config.yaml`)
- Active participation and engagement throughout the interactive session
- Optional: Domain context document for focused brainstorming
@@ -268,4 +258,4 @@ For issues or questions:
---
_Part of the BMad Method v5 - Creative Ideation and Synthesis (CIS) Module_
_Part of the BMad Method v6 - Creative Ideation and Synthesis (CIS) Module_

View File

@@ -3,25 +3,29 @@
## Workflow
<workflow>
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.md</critical>
<critical>You MUST have already loaded and processed: {project_root}/bmad/cis/workflows/brainstorming/workflow.yaml</critical>
<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}/core/workflows/brainstorming/workflow.yaml</critical>
<step n="1" goal="Session Setup">
<action>Check if context data was provided with workflow invocation</action>
<check>If data attribute was passed to this workflow:</check>
<action>Load the context document from the data file path</action>
<action>Study the domain knowledge and session focus</action>
<action>Use the provided context to guide the session</action>
<action>Acknowledge the focused brainstorming goal</action>
<ask response="session_refinement">I see we're brainstorming about the specific domain outlined in the context. What particular aspect would you like to explore?</ask>
<check>Else (no context data provided):</check>
<action>Proceed with generic context gathering</action>
<ask response="session_topic">1. What are we brainstorming about?</ask>
<ask response="stated_goals">2. Are there any constraints or parameters we should keep in mind?</ask>
<ask>3. Is the goal broad exploration or focused ideation on specific aspects?</ask>
<check if="data attribute was passed to this workflow">
<action>Load the context document from the data file path</action>
<action>Study the domain knowledge and session focus</action>
<action>Use the provided context to guide the session</action>
<action>Acknowledge the focused brainstorming goal</action>
<ask response="session_refinement">I see we're brainstorming about the specific domain outlined in the context. What particular aspect would you like to explore?</ask>
</check>
<check if="no context data provided">
<action>Proceed with generic context gathering</action>
<ask response="session_topic">1. What are we brainstorming about?</ask>
<ask response="stated_goals">2. Are there any constraints or parameters we should keep in mind?</ask>
<ask>3. Is the goal broad exploration or focused ideation on specific aspects?</ask>
<critical>Wait for user response before proceeding. This context shapes the entire session.</critical>
</check>
<template-output>session_topic, stated_goals</template-output>
@@ -40,19 +44,19 @@ Based on the context from Step 1, present these four approach options:
Which approach would you prefer? (Enter 1-4)
</ask>
<check>Based on selection, proceed to appropriate sub-step</check>
<step n="2a" title="User-Selected Techniques" if="selection==1">
<action>Load techniques from {brain_techniques} CSV file</action>
<action>Parse: category, technique_name, description, facilitation_prompts</action>
<check>If strong context from Step 1 (specific problem/goal)</check>
<action>Identify 2-3 most relevant categories based on stated_goals</action>
<action>Present those categories first with 3-5 techniques each</action>
<action>Offer "show all categories" option</action>
<check if="strong context from Step 1 (specific problem/goal)">
<action>Identify 2-3 most relevant categories based on stated_goals</action>
<action>Present those categories first with 3-5 techniques each</action>
<action>Offer "show all categories" option</action>
</check>
<check>Else (open exploration)</check>
<action>Display all 7 categories with helpful descriptions</action>
<check if="open exploration">
<action>Display all 7 categories with helpful descriptions</action>
</check>
Category descriptions to guide selection:
- **Structured:** Systematic frameworks for thorough exploration
@@ -154,6 +158,7 @@ Which approach would you prefer? (Enter 1-4)
</step>
<critical>Create the output document using the template, and record at the {{session_start_plan}} documenting the chosen techniques, along with which approach was used. For all remaining steps, progressively add to the document throughout the brainstorming</critical>
</step>
<step n="3" goal="Execute Techniques Interactively">
@@ -198,7 +203,7 @@ Example facilitation flow for any technique:
4. Next Prompt: Pull next facilitation_prompt when ready to advance
5. Monitor Energy: After 10-15 minutes, check if they want to continue or switch
5. Monitor Energy: After a few rounds, check if they want to continue or switch
The CSV provides the prompts - your role is to facilitate naturally in your unique voice.
</example>
@@ -211,7 +216,7 @@ Continue engaging with the technique until the user indicates they want to:
- End the session
<energy-checkpoint>
After 15-20 minutes with a technique, check: "Should we continue with this technique or try something new?"
After 4 rounds with a technique, check: "Should we continue with this technique or try something new?"
</energy-checkpoint>
<template-output>technique_sessions</template-output>
@@ -250,7 +255,7 @@ Analyze the session to identify deeper patterns:
2. **Surface key insights** - What realizations emerged during the process? -> insights_learnings
3. **Note surprising connections** - What unexpected relationships were discovered? -> insights_learnings
<elicit-required/>
<invoke-task halt="true">{project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml</invoke-task>
<template-output>key_themes, insights_learnings</template-output>

View File

@@ -4,6 +4,10 @@
**Facilitator:** {{agent_role}} {{agent_name}}
**Participant:** {{user_name}}
## Session Start
{{session_start_plan}}
## Executive Summary
**Topic:** {{session_topic}}

View File

@@ -4,7 +4,7 @@ description: "Facilitate interactive brainstorming sessions using diverse creati
author: "BMad"
# Critical variables load from config_source
config_source: "{project-root}/bmad/cis/config.yaml"
config_source: "{project-root}/{bmad_folder}/cis/config.yaml"
output_folder: "{config_source}:output_folder"
user_name: "{config_source}:user_name"
date: system-generated
@@ -18,7 +18,7 @@ recommended_inputs:
# Example: data="{path}/context.md" provides domain-specific guidance
# Module path and component files
installed_path: "{project-root}/bmad/cis/workflows/brainstorming"
installed_path: "{project-root}/{bmad_folder}/core/workflows/brainstorming"
template: "{installed_path}/template.md"
instructions: "{installed_path}/instructions.md"
validation: "{installed_path}/checklist.md"
@@ -27,15 +27,17 @@ brain_techniques: "{installed_path}/brain-methods.csv"
# Output configuration
default_output_file: "{output_folder}/brainstorming-session-results-{{date}}.md"
standalone: true
web_bundle:
name: "brainstorming"
description: "Facilitate interactive brainstorming sessions using diverse creative techniques. This workflow facilitates interactive brainstorming sessions using diverse creative techniques. The session is highly interactive, with the AI acting as a facilitator to guide the user through various ideation methods to generate and refine creative solutions."
author: "BMad"
template: "bmad/cis/workflows/brainstorming/template.md"
instructions: "bmad/cis/workflows/brainstorming/instructions.md"
brain_techniques: "bmad/cis/workflows/brainstorming/brain-methods.csv"
template: "{bmad_folder}/core/workflows/brainstorming/template.md"
instructions: "{bmad_folder}/core/workflows/brainstorming/instructions.md"
brain_techniques: "{bmad_folder}/core/workflows/brainstorming/brain-methods.csv"
use_advanced_elicitation: true
web_bundle_files:
- "bmad/cis/workflows/brainstorming/instructions.md"
- "bmad/cis/workflows/brainstorming/brain-methods.csv"
- "bmad/cis/workflows/brainstorming/template.md"
- "{bmad_folder}/core/workflows/brainstorming/instructions.md"
- "{bmad_folder}/core/workflows/brainstorming/brain-methods.csv"
- "{bmad_folder}/core/workflows/brainstorming/template.md"

View File

@@ -1,27 +1,23 @@
# Party Mode - Multi-Agent Discussion Instructions
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.md</critical>
<critical>The workflow execution engine is governed by: {project_root}/{bmad_folder}/core/tasks/workflow.xml</critical>
<critical>This workflow orchestrates group discussions between all installed BMAD agents</critical>
<workflow>
<step n="1" goal="Load Agent Manifest and Configurations">
<action>Load the agent manifest from {{manifest}}</action>
<action>Parse XML to extract all agent entries with their condensed information:</action>
- id (file path)
- name
- title
- role (single sentence with capabilities)
- style (communication style)
- principles
- memories (if present)
- collaborators (key collaborators if any)
<action>For each agent found in manifest:</action>
<check>Look for config override at {{agent_configs}}[module]-[agent-name].md</check>
<check>If config override exists:</check>
<action>Load the override configuration</action>
<action>MERGE override data with manifest data (overrides take precedence):</action> - Override role replaces manifest role if present - Override style replaces manifest style if present - Override principles replace manifest principles if present - Override memories replace or append to manifest memories - Any additional persona elements from override are added
<action>Load the agent manifest CSV from {{agent_manifest}}</action>
<action>Parse CSV to extract all agent entries with their condensed information:</action>
- name (agent identifier)
- displayName (agent's persona name)
- title (formal position)
- icon (visual identifier)
- role (capabilities summary)
- identity (background/expertise)
- communicationStyle (how they communicate)
- principles (decision-making philosophy)
- module (source module)
- path (file location)
<action>Build complete agent roster with merged personalities</action>
<action>Store agent data for use in conversation orchestration</action>
@@ -63,9 +59,9 @@
<substep n="3b" goal="Generate In-Character Responses">
<action>For each selected agent, generate authentic response:</action>
<action>Use the agent's merged personality data:</action>
- Apply their communication style exactly
- Apply their communicationStyle exactly
- Reflect their principles in reasoning
- Reference their memories if contextually relevant
- Draw from their identity and role for expertise
- Maintain their unique voice and perspective
<action>Enable natural cross-talk between agents:</action>
@@ -77,20 +73,23 @@
</substep>
<substep n="3c" goal="Handle Questions and Interactions">
<check>If an agent asks the user a direct question:</check>
<check if="an agent asks the user a direct question">
<action>Clearly highlight the question</action>
<action>End that round of responses</action>
<action>Display: "[Agent Name]: [Their question]"</action>
<action>Display: "[Awaiting user response...]"</action>
<action>WAIT for user input before continuing</action>
</check>
<check>If agents ask each other questions:</check>
<check if="agents ask each other questions">
<action>Allow natural back-and-forth in the same response round</action>
<action>Maintain conversational flow</action>
</check>
<check>If discussion becomes circular or repetitive:</check>
<check if="discussion becomes circular or repetitive">
<action>The BMad Master will summarize</action>
<action>Redirect to new aspects or ask for user guidance</action>
</check>
</substep>
@@ -110,15 +109,18 @@
</substep>
<substep n="3e" goal="Check for Exit Conditions">
<check>If user message contains any {{exit_triggers}}:</check>
<check if="user message contains any {{exit_triggers}}">
<action>Have agents provide brief farewells in character</action>
<action>Thank user for the discussion</action>
<goto step="4">Exit party mode</goto>
</check>
<check>If user seems done or conversation naturally concludes:</check>
<check if="user seems done or conversation naturally concludes">
<ask>Would you like to continue the discussion or end party mode?</ask>
<check>If user indicates end:</check>
<check if="user indicates end">
<goto step="4">Exit party mode</goto>
</check>
</check>
</substep>
</step>

View File

@@ -4,23 +4,24 @@ description: "Orchestrates group discussions between all installed BMAD agents,
author: "BMad"
# Critical data sources - manifest and config overrides
manifest: "{project-root}/bmad/_cfg/agent-party.xml"
agent_configs: "{project-root}/bmad/_cfg/agents/"
agent_manifest: "{project-root}/{bmad_folder}/_cfg/agent-manifest.csv"
date: system-generated
# This is an interactive action workflow - no template output
template: false
instructions: "{project-root}/src/core/workflows/party-mode/instructions.md"
# Data files to be loaded at runtime
data_files:
- agent_manifest: "{project-root}/bmad/_cfg/agent-party.xml"
- agent_overrides: "{project-root}/bmad/_cfg/agents/*.md"
instructions: "{project-root}/{bmad_folder}/core/workflows/party-mode/instructions.md"
# Exit conditions
exit_triggers:
- "*exit"
- "end party mode"
- "stop party mode"
web_bundle: false
standalone: true
web_bundle:
name: "party-mode"
description: "Orchestrates group discussions between all installed BMAD agents, enabling natural multi-agent conversations"
author: "BMad"
instructions: "bmad/core/workflows/party-mode/instructions.md"
agent_manifest: "bmad/_cfg/agent-manifest.csv"
web_bundle_files:
- "{bmad_folder}/core/workflows/party-mode/workflow.xml"

194
src/modules/bmb/README.md Normal file
View File

@@ -0,0 +1,194 @@
# BMB - BMad Builder Module
Specialized tools and workflows for creating, customizing, and extending BMad components including agents, workflows, and complete modules.
## Table of Contents
- [Module Structure](#module-structure)
- [Core Workflows](#core-workflows)
- [Agent Types](#agent-types)
- [Quick Start](#quick-start)
- [Best Practices](#best-practices)
## Module Structure
### 🤖 Agents
**BMad Builder** - Master builder agent orchestrating all creation workflows with deep knowledge of BMad architecture and conventions.
### 📋 Workflows
Comprehensive suite for building and maintaining BMad components.
## Core Workflows
### Creation Workflows
**[create-agent](./workflows/create-agent/README.md)** - Build BMad agents
- Interactive persona development
- Command structure design
- YAML source compilation to .md
**[create-workflow](./workflows/create-workflow/README.md)** - Design workflows
- Structured multi-step processes
- Configuration validation
- Web bundle support
**[create-module](./workflows/create-module/README.md)** - Build complete modules
- Full module infrastructure
- Agent and workflow integration
- Installation automation
**[module-brief](./workflows/module-brief/README.md)** - Strategic planning
- Module blueprint creation
- Vision and architecture
- Comprehensive analysis
### Editing Workflows
**[edit-agent](./workflows/edit-agent/README.md)** - Modify existing agents
- Persona refinement
- Command updates
- Best practice compliance
**[edit-workflow](./workflows/edit-workflow/README.md)** - Update workflows
- Structure maintenance
- Configuration updates
- Documentation sync
**[edit-module](./workflows/edit-module/README.md)** - Module enhancement
- Component modifications
- Dependency management
- Version control
### Maintenance Workflows
**[convert-legacy](./workflows/convert-legacy/README.md)** - Migration tool
- v4 to v6 conversion
- Structure compliance
- Convention updates
**[audit-workflow](./workflows/audit-workflow/README.md)** - Quality validation
- Structure verification
- Config standards check
- Bloat detection
- Web bundle completeness
**[redoc](./workflows/redoc/README.md)** - Auto-documentation
- Reverse-tree approach
- Technical writer quality
- Convention compliance
## Agent Types
BMB creates three agent architectures:
### Full Module Agent
- Complete persona and role definition
- Command structure with fuzzy matching
- Workflow integration
- Module-specific capabilities
### Hybrid Agent
- Shared core capabilities
- Module-specific extensions
- Cross-module compatibility
### Standalone Agent
- Independent operation
- Minimal dependencies
- Specialized single purpose
## Quick Start
1. **Load BMad Builder agent** in your IDE
2. **Choose creation type:**
```
*create-agent # New agent
*create-workflow # New workflow
*create-module # Complete module
```
3. **Follow interactive prompts**
### Example: Creating an Agent
```
User: I need a code review agent
Builder: *create-agent
[Interactive session begins]
- Brainstorming phase (optional)
- Persona development
- Command structure
- Integration points
```
## Use Cases
### Custom Development Teams
Build specialized agents for:
- Domain expertise (legal, medical, finance)
- Company processes
- Tool integrations
- Automation tasks
### Workflow Extensions
Create workflows for:
- Compliance requirements
- Quality gates
- Deployment pipelines
- Custom methodologies
### Complete Solutions
Package modules for:
- Industry verticals
- Technology stacks
- Business processes
- Educational frameworks
## Best Practices
1. **Study existing patterns** - Review BMM/CIS implementations
2. **Follow conventions** - Use established structures
3. **Document thoroughly** - Clear instructions essential
4. **Test iteratively** - Validate during creation
5. **Consider reusability** - Build modular components
## Integration
BMB components integrate with:
- **BMad Core** - Framework foundation
- **BMM** - Extend development capabilities
- **CIS** - Leverage creative workflows
- **Custom Modules** - Your domain solutions
## Related Documentation
- **[Agent Creation Guide](./workflows/create-agent/README.md)** - Detailed instructions
- **[Module Structure](./workflows/create-module/module-structure.md)** - Architecture patterns
- **[BMM Module](../bmm/README.md)** - Reference implementation
- **[Core Framework](../../core/README.md)** - Foundation concepts
---
BMB empowers you to extend BMad Method for your specific needs while maintaining framework consistency and power.

View File

@@ -0,0 +1,31 @@
# BMAD™ Method Core Configuration
code: bmb
name: "BMB: BMad Builder - Agent, Workflow and Module Builder"
default_selected: false # This module will not be selected by default for new installations
header: "BMad Optimized Builder (BoMB) Module Configuration"
subheader: "Configure the settings for the BoMB Factory!\nThe agent, workflow and module builder for BMAD™"
# Variables from Core Config inserted:
## user_name
## communication_language
## output_folder
## bmad_folder
## install_user_docs
## kb_install
custom_agent_location:
prompt: "Where do custom agents get created?"
default: "{bmad_folder}/custom/agents"
result: "{project-root}/{value}"
custom_workflow_location:
prompt: "Where do custom workflows get stored?"
default: "{bmad_folder}/custom/workflows"
result: "{project-root}/{value}"
custom_module_location:
prompt: "Where do custom modules get stored?"
default: "{bmad_folder}/custom/modules"
result: "{project-root}/{value}"

View File

@@ -1,11 +0,0 @@
# BMAD™ Method Core Configuration
code: bmb
name: "BMB: BMad Builder - Agent, Workflow and Module Builder"
default_selected: false # This module will not be selected by default for new installations
prompt: "Happy Building - Build the Modules, Workflows and Agents of your dreams."
# Variables from Core Config inserted:
## user_name
## communication_language
## output_folder

View File

@@ -0,0 +1,59 @@
# BMad Builder Agent Definition
# Master BMad Module Agent Team and Workflow Builder and Maintainer
agent:
webskip: true
metadata:
id: "{bmad_folder}/bmb/agents/bmad-builder.md"
name: BMad Builder
title: BMad Builder
icon: 🧙
module: bmb
persona:
role: Master BMad Module Agent Team and Workflow Builder and Maintainer
identity: Lives to serve the expansion of the BMad Method
communication_style: Talks like a pulp super hero
principles:
- Execute resources directly
- Load resources at runtime never pre-load
- Always present numbered lists for choices
# Menu items - triggers will be prefixed with * at build time
# help and exit are auto-injected, don't define them here
menu:
- trigger: audit-workflow
workflow: "{project-root}/{bmad_folder}/bmb/workflows/audit-workflow/workflow.yaml"
description: Audit existing workflows for BMAD Core compliance and best practices
- trigger: convert
workflow: "{project-root}/{bmad_folder}/bmb/workflows/convert-legacy/workflow.yaml"
description: Convert v4 or any other style task agent or template to a workflow
- trigger: create-agent
workflow: "{project-root}/{bmad_folder}/bmb/workflows/create-agent/workflow.yaml"
description: Create a new BMAD Core compliant agent
- 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: create-workflow
workflow: "{project-root}/{bmad_folder}/bmb/workflows/create-workflow/workflow.yaml"
description: Create a new BMAD Core workflow with proper structure
- trigger: edit-agent
workflow: "{project-root}/{bmad_folder}/bmb/workflows/edit-agent/workflow.yaml"
description: Edit existing agents while following best practices
- trigger: edit-module
workflow: "{project-root}/{bmad_folder}/bmb/workflows/edit-module/workflow.yaml"
description: Edit existing modules (structure, agents, workflows, documentation)
- trigger: edit-workflow
workflow: "{project-root}/{bmad_folder}/bmb/workflows/edit-workflow/workflow.yaml"
description: Edit existing workflows while following best practices
- trigger: redoc
workflow: "{project-root}/{bmad_folder}/bmb/workflows/redoc/workflow.yaml"
description: Create or update module documentation

View File

@@ -1,30 +0,0 @@
<!-- Powered by BMAD-CORE™ -->
# BMad Master Task Executor
<agent id="bmad/bmb/agents/bmad-builder.md" name="BMad Builder" title="BMad Builder" icon="🧙">
<persona>
<role>Master BMad Module Agent Team and Workflow Builder and Maintainer</role>
<identity>Lives to serve the expansion of the BMad Method</identity>
<communication_style>Talks like a pulp super hero</communication_style>
<principles>
<p>Execute resources directly</p>
<p>Load resources at runtime never pre-load</p>
<p>Always present numbered lists for choices</p>
</principles>
</persona>
<critical-actions>
<i>Load into memory {project-root}/bmad/bmb/config.yaml and set variable output_folder, user_name, communication_language</i>
<i>Remember the users name is {user_name}</i>
<i>ALWAYS communicate in {communication_language}</i>
</critical-actions>
<cmds>
<c cmd="*help">Show numbered cmd list</c>
<c cmd="convert" run-workflow="{project-root}/bmad/bmb/workflows/convert-legacy/workflow.yaml">Convert v4 or any other style task agent or template to a workflow</c>
<c cmd="*create-agent" run-workflow="{project-root}/bmad/bmb/workflows/create-agent/workflow.yaml">Create a new BMAD Core compliant agent</c>
<c cmd="*create-module" run-workflow="{project-root}/bmad/bmb/workflows/create-module/workflow.yaml">Create a complete BMAD module (brainstorm → brief → build with agents and workflows)</c>
<c cmd="*create-workflow" run-workflow="{project-root}/bmad/bmb/workflows/create-workflow/workflow.yaml">Create a new BMAD Core workflow with proper structure</c>
<c cmd="*edit-workflow" run-workflow="{project-root}/bmad/bmb/workflows/edit-workflow/workflow.yaml">Edit existing workflows while following best practices</c>
<c cmd="*exit">Exit with confirmation</c>
</cmds>
</agent>

View File

@@ -0,0 +1,142 @@
# Audit Workflow - Validation Checklist
## Structure
- [ ] workflow.yaml file loads without YAML syntax errors
- [ ] instructions.md file exists and is properly formatted
- [ ] template.md file exists (if document workflow) with valid markdown
- [ ] All critical headers present in instructions (workflow engine reference, workflow.yaml reference)
- [ ] Workflow type correctly identified (document/action/interactive/autonomous/meta)
- [ ] All referenced files actually exist at specified paths
- [ ] No placeholder text remains (like {TITLE}, {WORKFLOW_CODE}, TODO, etc.)
## Standard Config Block
- [ ] workflow.yaml contains `config_source` pointing to correct module config
- [ ] `output_folder` pulls from `{config_source}:output_folder`
- [ ] `user_name` pulls from `{config_source}:user_name`
- [ ] `communication_language` pulls from `{config_source}:communication_language`
- [ ] `date` is set to `system-generated`
- [ ] Config source uses {project-root} variable (not hardcoded path)
- [ ] Standard config comment present: "Critical variables from config"
## Config Variable Usage
- [ ] Instructions communicate in {communication_language} where appropriate
- [ ] Instructions address {user_name} in greetings or summaries where appropriate
- [ ] All file outputs write to {output_folder} or subdirectories (no hardcoded paths)
- [ ] Template includes {{user_name}} in metadata (optional for document workflows)
- [ ] Template includes {{date}} in metadata (optional for document workflows)
- [ ] Template does NOT use {{communication_language}} in headers (agent-only variable)
- [ ] No hardcoded language-specific text that should use {communication_language}
- [ ] Date used for agent date awareness (not confused with training cutoff)
## YAML/Instruction/Template Alignment
- [ ] Every workflow.yaml variable (excluding standard config) is used in instructions OR template
- [ ] No unused yaml fields present (bloat removed)
- [ ] No duplicate fields between top-level and web_bundle section
- [ ] All template variables ({{variable}}) have corresponding yaml definitions OR <template-output> tags
- [ ] All <template-output> tags have corresponding template variables (if document workflow)
- [ ] Template variables use snake_case naming convention
- [ ] Variable names are descriptive (not abbreviated like {{puj}} instead of {{primary_user_journey}})
- [ ] No hardcoded values in instructions that should be yaml variables
## Web Bundle Validation (if applicable)
- [ ] web_bundle section present if workflow needs deployment
- [ ] All paths in web_bundle use {bmad_folder}/-relative format (NOT {project-root})
- [ ] No {config_source} variables in web_bundle section
- [ ] instructions file listed in web_bundle_files array
- [ ] template file listed in web_bundle_files (if document workflow)
- [ ] validation/checklist file listed in web_bundle_files (if exists)
- [ ] All data files (CSV, JSON, YAML) listed in web_bundle_files
- [ ] All <invoke-workflow> called workflows have their .yaml files in web_bundle_files
- [ ] **CRITICAL**: If workflow invokes other workflows, existing_workflows field is present
- [ ] existing_workflows maps workflow variables to {bmad_folder}/-relative paths correctly
- [ ] All files referenced in instructions <action> tags listed in web_bundle_files
- [ ] No files listed in web_bundle_files that don't exist
- [ ] Web bundle metadata (name, description, author) matches top-level metadata
## Template Validation (if document workflow)
- [ ] Template variables match <template-output> tags in instructions exactly
- [ ] All required sections present in template structure
- [ ] Template uses {{variable}} syntax (double curly braces)
- [ ] Template variables use snake_case (not camelCase or PascalCase)
- [ ] Standard metadata header format correct (optional usage of {{date}}, {{user_name}})
- [ ] No placeholders remain in template (like {SECTION_NAME})
- [ ] Template structure matches document purpose
## Instructions Quality
- [ ] Each step has n="X" attribute with sequential numbering
- [ ] Each step has goal="clear goal statement" attribute
- [ ] Optional steps marked with optional="true"
- [ ] Repeating steps have appropriate repeat attribute (repeat="3", repeat="for-each-X", repeat="until-approved")
- [ ] Conditional steps have if="condition" attribute
- [ ] XML tags used correctly (<action>, <ask>, <check>, <goto>, <invoke-workflow>, <template-output>)
- [ ] No nested tag references in content (use "action tags" not "<action> tags")
- [ ] Tag references use descriptive text without angle brackets for clarity
- [ ] No conditional execution antipattern (no self-closing <check> tags)
- [ ] Single conditionals use <action if="condition"> (inline)
- [ ] Multiple conditionals use <check if="condition">...</check> (wrapper block with closing tag)
- [ ] Steps are focused (single goal per step)
- [ ] Instructions are specific with limits ("Write 1-2 paragraphs" not "Write about")
- [ ] Examples provided where helpful
- [ ] <template-output> tags save checkpoints for document workflows
- [ ] Flow control is logical and clear
## Bloat Detection
- [ ] Bloat percentage under 10% (unused yaml fields / total fields)
- [ ] No commented-out variables that should be removed
- [ ] No duplicate metadata between sections
- [ ] No variables defined but never referenced
- [ ] No redundant configuration that duplicates web_bundle
## Final Validation
### Critical Issues (Must fix immediately)
_List any critical issues found:_
- Issue 1:
- Issue 2:
- Issue 3:
### Important Issues (Should fix soon)
_List any important issues found:_
- Issue 1:
- Issue 2:
- Issue 3:
### Cleanup Recommendations (Nice to have)
_List any cleanup recommendations:_
- Recommendation 1:
- Recommendation 2:
- Recommendation 3:
---
## Audit Summary
**Total Checks:**
**Passed:** {total}
**Failed:** {total}
**Recommendation:**
- Pass Rate ≥ 95%: Excellent - Ready for production
- Pass Rate 85-94%: Good - Minor fixes needed
- Pass Rate 70-84%: Fair - Important issues to address
- Pass Rate < 70%: Poor - Significant work required
---
**Audit Completed:** {{date}}
**Auditor:** Audit Workflow (BMAD v6)

View File

@@ -0,0 +1,341 @@
# Audit Workflow - Workflow Quality Audit 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/audit-workflow/workflow.yaml</critical>
<workflow>
<step n="1" goal="Load and analyze target workflow">
<ask>What is the path to the workflow you want to audit? (provide path to workflow.yaml or workflow folder)</ask>
<action>Load the workflow.yaml file from the provided path</action>
<action>Identify the workflow type (document, action, interactive, autonomous, meta)</action>
<action>List all associated files:</action>
- instructions.md (required for most workflows)
- template.md (if document workflow)
- checklist.md (if validation exists)
- Any data files referenced in yaml
<action>Load all discovered files</action>
Display summary:
- Workflow name and description
- Type of workflow
- Files present
- Module assignment
</step>
<step n="2" goal="Validate standard config block">
<action>Check workflow.yaml for the standard config block:</action>
**Required variables:**
- `config_source: "{project-root}/{bmad_folder}/[module]/config.yaml"`
- `output_folder: "{config_source}:output_folder"`
- `user_name: "{config_source}:user_name"`
- `communication_language: "{config_source}:communication_language"`
- `date: system-generated`
<action>Validate each variable:</action>
**Config Source Check:**
- [ ] `config_source` is defined
- [ ] Points to correct module config path
- [ ] Uses {project-root} variable
**Standard Variables Check:**
- [ ] `output_folder` pulls from config_source
- [ ] `user_name` pulls from config_source
- [ ] `communication_language` pulls from config_source
- [ ] `date` is set to system-generated
<action>Record any missing or incorrect config variables</action>
<template-output>config_issues</template-output>
<action if="config issues found">Add to issues list with severity: CRITICAL</action>
</step>
<step n="3" goal="Analyze YAML/Instruction/Template alignment">
<action>Extract all variables defined in workflow.yaml (excluding standard config block)</action>
<action>Scan instructions.md for variable usage: {variable_name} pattern</action>
<action>Scan template.md for variable usage: {{variable_name}} pattern (if exists)</action>
<action>Cross-reference analysis:</action>
**For each yaml variable:**
1. Is it used in instructions.md? (mark as INSTRUCTION_USED)
2. Is it used in template.md? (mark as TEMPLATE_USED)
3. Is it neither? (mark as UNUSED_BLOAT)
**Special cases to ignore:**
- Standard config variables (config_source, output_folder, user_name, communication_language, date)
- Workflow metadata (name, description, author)
- Path variables (installed_path, template, instructions, validation)
- Web bundle configuration (web_bundle block itself)
<action>Identify unused yaml fields (bloat)</action>
<action>Identify hardcoded values in instructions that should be variables</action>
<template-output>alignment_issues</template-output>
<action if="unused variables found">Add to issues list with severity: BLOAT</action>
</step>
<step n="4" goal="Config variable usage audit">
<action>Analyze instructions.md for proper config variable usage:</action>
**Communication Language Check:**
- Search for phrases like "communicate in {communication_language}"
- Check if greetings/responses use language-aware patterns
- Verify NO usage of {{communication_language}} in template headers
**User Name Check:**
- Look for user addressing patterns using {user_name}
- Check if summaries or greetings personalize with {user_name}
- Verify optional usage in template metadata (not required)
**Output Folder Check:**
- Search for file write operations
- Verify all outputs go to {output_folder} or subdirectories
- Check for hardcoded paths like "/output/" or "/generated/"
**Date Usage Check:**
- Verify date is available for agent date awareness
- Check optional usage in template metadata
- Ensure no confusion between date and model training cutoff
**Nested Tag Reference Check:**
- Search for XML tag references within tags (e.g., `<action>Scan for <action> tags</action>`)
- Identify patterns like: `<tag-name> tags`, `<tag-name> calls`, `<tag-name>content</tag-name>` within content
- Common problematic tags to check: action, ask, check, template-output, invoke-workflow, goto
- Flag any instances where angle brackets appear in content describing tags
**Best Practice:** Use descriptive text without brackets (e.g., "action tags" instead of "<action> tags")
**Rationale:**
- Prevents XML parsing ambiguity
- Improves readability for humans and LLMs
- LLMs understand "action tags" = `<action>` tags from context
**Conditional Execution Antipattern Check:**
- Scan for self-closing check tags: `<check>condition text</check>` (invalid antipattern)
- Detect pattern: check tag on one line, followed by action/ask/goto tags (indicates incorrect nesting)
- Flag sequences like: `<check>If X:</check>` followed by `<action>do Y</action>`
**Correct Patterns:**
- Single conditional: `<action if="condition">Do something</action>`
- Multiple actions: `<check if="condition">` followed by nested actions with closing `</check>` tag
**Antipattern Example (WRONG):**
```xml
<check>If condition met:</check>
<action>Do something</action>
```
**Correct Example:**
```xml
<check if="condition met">
<action>Do something</action>
<action>Do something else</action>
</check>
```
**Or for single action:**
```xml
<action if="condition met">Do something</action>
```
<action>Scan instructions.md for nested tag references using pattern: &lt;(action|ask|check|template-output|invoke-workflow|invoke-task|goto|step)&gt; within text content</action>
<action>Record any instances of nested tag references with line numbers</action>
<action>Scan instructions.md for conditional execution antipattern: self-closing check tags</action>
<action>Detect pattern: `&lt;check&gt;.*&lt;/check&gt;` on single line (self-closing check)</action>
<action>Record any antipattern instances with line numbers and suggest corrections</action>
<action>Record any improper config variable usage</action>
<template-output>config_usage_issues</template-output>
<action if="config usage issues found">Add to issues list with severity: IMPORTANT</action>
<action if="nested tag references found">Add to issues list with severity: CLARITY (recommend using descriptive text without angle brackets)</action>
<action if="conditional antipattern found">Add to issues list with severity: CRITICAL (invalid XML structure - must use action if="" or proper check wrapper)</action>
</step>
<step n="5" goal="Web bundle validation" optional="true">
<check if="workflow.yaml contains web_bundle section">
<action>Validate web_bundle structure:</action>
**Path Validation:**
- [ ] All paths use {bmad_folder}/-relative format (NOT {project-root})
- [ ] No {config_source} variables in web_bundle section
- [ ] Paths match actual file locations
**Completeness Check:**
- [ ] instructions file listed in web_bundle_files
- [ ] template file listed (if document workflow)
- [ ] validation/checklist file listed (if exists)
- [ ] All data files referenced in yaml listed
- [ ] All files referenced in instructions listed
**Workflow Dependency Scan:**
<action>Scan instructions.md for invoke-workflow tags</action>
<action>Extract workflow paths from invocations</action>
<action>Verify each called workflow.yaml is in web_bundle_files</action>
<action>**CRITICAL**: Check if existing_workflows field is present when workflows are invoked</action>
<action>If invoke-workflow calls exist, existing_workflows MUST map workflow variables to paths</action>
<action>Example: If instructions use {core_brainstorming}, web_bundle needs: existing_workflows: - core_brainstorming: "{bmad_folder}/core/workflows/brainstorming/workflow.yaml"</action>
**File Reference Scan:**
<action>Scan instructions.md for file references in action tags</action>
<action>Check for CSV, JSON, YAML, MD files referenced</action>
<action>Verify all referenced files are in web_bundle_files</action>
<action>Record any missing files or incorrect paths</action>
<template-output>web_bundle_issues</template-output>
<action if="web_bundle issues found">Add to issues list with severity: CRITICAL</action>
<action if="no web_bundle section exists">Note: "No web_bundle configured (may be intentional for local-only workflows)"</action>
</check>
</step>
<step n="6" goal="Bloat detection">
<action>Identify bloat patterns:</action>
**Unused YAML Fields:**
- Variables defined but not used in instructions OR template
- Duplicate fields between top-level and web_bundle section
- Commented-out variables that should be removed
**Hardcoded Values:**
- File paths that should use {output_folder}
- Generic greetings that should use {user_name}
- Language-specific text that should use {communication_language}
- Static dates that should use {date}
**Redundant Configuration:**
- Variables that duplicate web_bundle fields
- Metadata repeated across sections
<action>Calculate bloat metrics:</action>
- Total yaml fields: {{total_yaml_fields}}
- Used fields: {{used_fields}}
- Unused fields: {{unused_fields}}
- Bloat percentage: {{bloat_percentage}}%
<action>Record all bloat items with recommendations</action>
<template-output>bloat_items</template-output>
<action if="bloat detected">Add to issues list with severity: CLEANUP</action>
</step>
<step n="7" goal="Template variable mapping" if="workflow_type == 'document'">
<action>Extract all template variables from template.md: {{variable_name}} pattern</action>
<action>Scan instructions.md for corresponding template-output tags</action>
<action>Cross-reference mapping:</action>
**For each template variable:**
1. Is there a matching template-output tag? (mark as MAPPED)
2. Is it a standard config variable? (mark as CONFIG_VAR - optional)
3. Is it unmapped? (mark as MISSING_OUTPUT)
**For each template-output tag:**
1. Is there a matching template variable? (mark as USED)
2. Is it orphaned? (mark as UNUSED_OUTPUT)
<action>Verify variable naming conventions:</action>
- [ ] All template variables use snake_case
- [ ] Variable names are descriptive (not abbreviated)
- [ ] Standard config variables properly formatted
<action>Record any mapping issues</action>
<template-output>template_issues</template-output>
<action if="template issues found">Add to issues list with severity: IMPORTANT</action>
</step>
<step n="8" goal="Generate comprehensive audit report">
<action>Compile all findings and calculate summary metrics</action>
<action>Generate executive summary based on issue counts and severity levels</action>
<template-output>workflow_type</template-output>
<template-output>overall_status</template-output>
<template-output>critical_count</template-output>
<template-output>important_count</template-output>
<template-output>cleanup_count</template-output>
<action>Generate status summaries for each audit section</action>
<template-output>config_status</template-output>
<template-output>total_variables</template-output>
<template-output>instruction_usage_count</template-output>
<template-output>template_usage_count</template-output>
<template-output>bloat_count</template-output>
<action>Generate config variable usage status indicators</action>
<template-output>comm_lang_status</template-output>
<template-output>user_name_status</template-output>
<template-output>output_folder_status</template-output>
<template-output>date_status</template-output>
<template-output>nested_tag_count</template-output>
<action>Generate web bundle metrics</action>
<template-output>web_bundle_exists</template-output>
<template-output>web_bundle_file_count</template-output>
<template-output>missing_files_count</template-output>
<action>Generate bloat metrics</action>
<template-output>bloat_percentage</template-output>
<template-output>cleanup_potential</template-output>
<action>Generate template mapping metrics</action>
<template-output>template_var_count</template-output>
<template-output>mapped_count</template-output>
<template-output>missing_mapping_count</template-output>
<action>Compile prioritized recommendations by severity</action>
<template-output>critical_recommendations</template-output>
<template-output>important_recommendations</template-output>
<template-output>cleanup_recommendations</template-output>
<action>Display summary to {user_name} in {communication_language}</action>
<action>Provide path to full audit report: {output_folder}/audit-report-{{workflow_name}}-{{date}}.md</action>
<ask>Would you like to:
- View the full audit report
- Fix issues automatically (invoke edit-workflow)
- Audit another workflow
- Exit
</ask>
</step>
</workflow>

View File

@@ -0,0 +1,118 @@
# Workflow Audit Report
**Workflow:** {{workflow_name}}
**Audit Date:** {{date}}
**Auditor:** Audit Workflow (BMAD v6)
**Workflow Type:** {{workflow_type}}
---
## Executive Summary
**Overall Status:** {{overall_status}}
- Critical Issues: {{critical_count}}
- Important Issues: {{important_count}}
- Cleanup Recommendations: {{cleanup_count}}
---
## 1. Standard Config Block Validation
{{config_issues}}
**Status:** {{config_status}}
---
## 2. YAML/Instruction/Template Alignment
{{alignment_issues}}
**Variables Analyzed:** {{total_variables}}
**Used in Instructions:** {{instruction_usage_count}}
**Used in Template:** {{template_usage_count}}
**Unused (Bloat):** {{bloat_count}}
---
## 3. Config Variable Usage & Instruction Quality
{{config_usage_issues}}
**Communication Language:** {{comm_lang_status}}
**User Name:** {{user_name_status}}
**Output Folder:** {{output_folder_status}}
**Date:** {{date_status}}
**Nested Tag References:** {{nested_tag_count}} instances found
---
## 4. Web Bundle Validation
{{web_bundle_issues}}
**Web Bundle Present:** {{web_bundle_exists}}
**Files Listed:** {{web_bundle_file_count}}
**Missing Files:** {{missing_files_count}}
---
## 5. Bloat Detection
{{bloat_items}}
**Bloat Percentage:** {{bloat_percentage}}%
**Cleanup Potential:** {{cleanup_potential}}
---
## 6. Template Variable Mapping
{{template_issues}}
**Template Variables:** {{template_var_count}}
**Mapped Correctly:** {{mapped_count}}
**Missing Mappings:** {{missing_mapping_count}}
---
## Recommendations
### Critical (Fix Immediately)
{{critical_recommendations}}
### Important (Address Soon)
{{important_recommendations}}
### Cleanup (Nice to Have)
{{cleanup_recommendations}}
---
## Validation Checklist
Use this checklist to verify fixes:
- [ ] All standard config variables present and correct
- [ ] No unused yaml fields (bloat removed)
- [ ] Config variables used appropriately in instructions
- [ ] Web bundle includes all dependencies
- [ ] Template variables properly mapped
- [ ] File structure follows v6 conventions
---
## Next Steps
1. Review critical issues and fix immediately
2. Address important issues in next iteration
3. Consider cleanup recommendations for optimization
4. Re-run audit after fixes to verify improvements
---
**Audit Complete** - Generated by audit-workflow v1.0

View File

@@ -0,0 +1,25 @@
# Audit Workflow Configuration
name: "audit-workflow"
description: "Comprehensive workflow quality audit - validates structure, config standards, variable usage, bloat detection, and web_bundle completeness. Performs deep analysis of workflow.yaml, instructions.md, template.md, and web_bundle configuration against BMAD v6 standards."
author: "BMad"
# Critical variables from config
config_source: "{project-root}/{bmad_folder}/bmb/config.yaml"
output_folder: "{config_source}:output_folder"
user_name: "{config_source}:user_name"
communication_language: "{config_source}:communication_language"
date: system-generated
# Module path and component files
installed_path: "{project-root}/{bmad_folder}/bmb/workflows/audit-workflow"
template: "{installed_path}/template.md"
instructions: "{installed_path}/instructions.md"
validation: "{installed_path}/checklist.md"
# Output configuration
default_output_file: "{output_folder}/audit-report-{{workflow_name}}-{{date}}.md"
standalone: true
# Web bundle configuration
web_bundle: false # BMB workflows run locally in BMAD-METHOD project

View File

@@ -2,15 +2,15 @@
## Overview
The Convert Legacy workflow is a comprehensive migration tool that converts BMAD v4 items (agents, workflows, modules) to v5 compliant format with proper structure and conventions. It bridges the gap between legacy BMAD implementations and the modern v5 architecture, ensuring seamless migration while preserving functionality and improving structure.
The Convert Legacy workflow is a comprehensive migration tool that converts BMAD v4 items (agents, workflows, modules) to v6 compliant format with proper structure and conventions. It bridges the gap between legacy BMAD implementations and the modern v6 architecture, ensuring seamless migration while preserving functionality and improving structure.
## Key Features
- **Multi-Format Detection** - Automatically identifies v4 agents, workflows, tasks, templates, and modules
- **Intelligent Conversion** - Smart mapping from v4 patterns to v5 equivalents with structural improvements
- **Intelligent Conversion** - Smart mapping from v4 patterns to v6 equivalents with structural improvements
- **Sub-Workflow Integration** - Leverages create-agent, create-workflow, and create-module workflows for quality output
- **Structure Modernization** - Converts YAML-based agents to XML, templates to workflows, tasks to structured workflows
- **Path Normalization** - Updates all references to use proper v5 path conventions
- **Path Normalization** - Updates all references to use proper v6 path conventions
- **Validation System** - Comprehensive validation of converted items before finalization
- **Migration Reporting** - Detailed conversion reports with locations and manual adjustment notes
@@ -42,7 +42,7 @@ The workflow uses standard BMB configuration:
- **output_folder**: Where converted items will be placed
- **user_name**: Author information for converted items
- **conversion_mappings**: v4-to-v5 pattern mappings (optional)
- **conversion_mappings**: v4-to-v6 pattern mappings (optional)
## Workflow Structure
@@ -82,9 +82,9 @@ convert-legacy/
**Target Module Selection**
- Prompts for target module (bmm, bmb, cis, custom)
- Determines proper installation paths using v5 conventions
- Determines proper installation paths using v6 conventions
- Shows target location for user confirmation
- Ensures all paths use `{project-root}/bmad/` format
- Ensures all paths use `{project-root}/{bmad_folder}/` format
### Phase 2: Conversion Strategy (Step 4)
@@ -98,7 +98,7 @@ convert-legacy/
**Workflow Type Determination**
- Analyzes legacy items to determine v5 workflow type:
- Analyzes legacy items to determine v6 workflow type:
- **Document Workflow**: Generates documents with templates
- **Action Workflow**: Performs actions without output documents
- **Interactive Workflow**: Guides user interaction sessions
@@ -108,11 +108,11 @@ convert-legacy/
**Direct Agent Conversion (5a)**
- Transforms v4 YAML agent format to v5 XML structure
- Transforms v4 YAML agent format to v6 XML structure
- Maps persona blocks (role, style, identity, principles)
- Converts commands list to v5 `<cmds>` format
- Converts commands list to v6 `<cmds>` format
- Updates task references to workflow invocations
- Normalizes all paths to v5 conventions
- Normalizes all paths to v6 conventions
**Workflow-Assisted Creation (5b-5e)**
@@ -121,12 +121,12 @@ convert-legacy/
- `create-agent` for complex agent creation
- `create-workflow` for template/task conversion
- `create-module` for full module migration
- Ensures proper v5 structure and conventions
- Ensures proper v6 structure and conventions
**Template-to-Workflow Conversion (5c)**
- Converts YAML template sections to workflow steps
- Maps `elicit: true` flags to `<elicit-required/>` tags
- Maps `elicit: true` flags to `<invoke-task halt="true">{project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml</invoke-task>` tags
- Transforms conditional sections to flow control
- Creates proper template.md from content structure
- Integrates v4 create-doc.md task patterns
@@ -136,7 +136,7 @@ convert-legacy/
- Analyzes task purpose to determine workflow type
- Extracts step-by-step instructions to workflow steps
- Converts decision trees to flow control tags
- Maps 1-9 elicitation menus to v5 elicitation patterns
- Maps 1-9 elicitation menus to v6 elicitation patterns
- Preserves execution logic and critical notices
### Phase 4: Validation and Finalization (Steps 6-8)
@@ -165,13 +165,13 @@ convert-legacy/
### Generated Files
- **Converted Items**: Proper v5 format in target module locations
- **Converted Items**: Proper v6 format in target module locations
- **Migration Report**: Detailed conversion documentation
- **Validation Results**: Quality assurance confirmation
### Output Structure
Converted items follow v5 conventions:
Converted items follow v6 conventions:
1. **Agents** - XML format with proper persona and command structure
2. **Workflows** - Complete workflow folders with yaml, instructions, and templates
@@ -183,7 +183,7 @@ Converted items follow v5 conventions:
- **Legacy v4 Items** - Source files or directories to convert
- **Target Module Access** - Write permissions to target module directories
- **Sub-Workflow Availability** - create-agent, create-workflow, create-module workflows accessible
- **Conversion Mappings** (optional) - v4-to-v5 pattern mappings for complex conversions
- **Conversion Mappings** (optional) - v4-to-v6 pattern mappings for complex conversions
## Best Practices
@@ -197,7 +197,7 @@ Converted items follow v5 conventions:
1. **Validate Item Type Detection** - Confirm automatic detection or correct manually
2. **Choose Appropriate Strategy** - Use workflow-assisted creation for complex items
3. **Review Path Mappings** - Ensure all references use proper v5 path conventions
3. **Review Path Mappings** - Ensure all references use proper v6 path conventions
4. **Test Incrementally** - Convert simple items first to validate process
### After Completion
@@ -218,7 +218,7 @@ Converted items follow v5 conventions:
**Issue**: Path conversion errors
- **Solution**: Ensure all references use `{project-root}/bmad/` format
- **Solution**: Ensure all references use `{project-root}/{bmad_folder}/` format
- **Check**: Review conversion mappings for proper path patterns
**Issue**: Sub-workflow invocation fails
@@ -235,7 +235,7 @@ Converted items follow v5 conventions:
To customize this workflow:
1. **Update Conversion Mappings** - Modify v4-to-v5 pattern mappings in data/
1. **Update Conversion Mappings** - Modify v4-to-v6 pattern mappings in data/
2. **Extend Detection Logic** - Add new item type detection patterns
3. **Add Conversion Strategies** - Implement specialized conversion approaches
4. **Enhance Validation** - Add additional quality checks in validation step
@@ -252,11 +252,11 @@ To customize this workflow:
For issues or questions:
- Review the workflow creation guide at `/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md`
- Check conversion mappings at `/bmad/bmb/data/v4-to-v5-mappings.yaml`
- Review the workflow creation guide at `/{bmad_folder}/bmb/workflows/create-workflow/workflow-creation-guide.md`
- Check conversion mappings at `/{bmad_folder}/bmb/data/v4-to-v6-mappings.yaml`
- Validate output using `checklist.md`
- Consult BMAD v5 documentation for proper conventions
- Consult BMAD v6 documentation for proper conventions
---
_Part of the BMad Method v5 - BMB (Builder) Module_
_Part of the BMad Method v6 - BMB (Builder) Module_

View File

@@ -16,19 +16,20 @@
#### Content Preservation
- [ ] Agent name, id, title, and icon transferred
- [ ] All persona elements mapped to v5 structure
- [ ] All commands converted to v5 <cmds> format
- [ ] All persona elements mapped to v6 structure
- [ ] All commands converted to v6 menu array (YAML)
- [ ] Dependencies properly referenced or converted
- [ ] Activation instructions adapted to v5 patterns
- [ ] Activation instructions adapted to v6 patterns
#### v5 Compliance
#### v6 Compliance (YAML Format)
- [ ] Valid XML structure with proper nesting
- [ ] <agent> tag has all required attributes (id, name, title, icon)
- [ ] NO <activation> section included (auto-inserted from agent-activation-ide.xml)
- [ ] <cmds> section uses proper handlers (run-workflow, action, exec, tmpl, data)
- [ ] <critical-actions> loads config.yaml when needed
- [ ] Persona sections (<role>, <identity>, <communication_style>, <principles>) are present
- [ ] Valid YAML structure with proper indentation
- [ ] agent.metadata has all required fields (id, name, title, icon, module)
- [ ] agent.persona has all sections (role, identity, communication_style, principles)
- [ ] agent.menu uses proper handlers (workflow, action, exec, tmpl, data)
- [ ] agent.critical_actions array present when needed
- [ ] agent.prompts defined for any action: "#id" references
- [ ] File extension is .agent.yaml (will be compiled to .md later)
#### Best Practices
@@ -36,7 +37,7 @@
- [ ] File paths use {project-root} variables
- [ ] Config values use {config_source}: pattern
- [ ] Agent follows naming conventions (kebab-case for files)
- [ ] ALL paths reference {project-root}/bmad/{{module}}/ locations, NOT src/
- [ ] ALL paths reference {project-root}/{bmad_folder}/{{module}}/ locations, NOT src/
- [ ] exec, data, run-workflow commands point to final BMAD installation paths
### For Template/Workflow Conversions
@@ -47,18 +48,18 @@
- [ ] All sections converted to workflow steps
- [ ] Section hierarchy maintained in instructions
- [ ] Variables ({{var}}) preserved in template.md
- [ ] Elicitation points (elicit: true) converted to <elicit-required/>
- [ ] Elicitation points (elicit: true) converted to <invoke-task halt="true">{project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml</invoke-task>
- [ ] Conditional sections preserved with if="" attributes
- [ ] Repeatable sections converted to repeat="" attributes
#### v5 Compliance
#### v6 Compliance
- [ ] workflow.yaml follows structure from workflow-creation-guide.md
- [ ] instructions.md has critical headers referencing workflow engine
- [ ] Steps numbered sequentially with clear goals
- [ ] Template variables match between instructions and template.md
- [ ] Proper use of XML tags (<action>, <check>, <ask>, <template-output>)
- [ ] File structure follows v5 pattern (folder with yaml/md files)
- [ ] File structure follows v6 pattern (folder with yaml/md files)
#### Best Practices
@@ -87,21 +88,21 @@
- [ ] If performs actions only, marked as action workflow
- [ ] Output patterns properly analyzed
#### v5 Compliance
#### v6 Compliance
- [ ] Converted to proper workflow format (not standalone task)
- [ ] Follows workflow execution engine patterns
- [ ] Interactive elements use proper v5 tags
- [ ] Flow control uses v5 patterns (goto, check, loop)
- [ ] 1-9 elicitation menus converted to v5 elicitation
- [ ] Interactive elements use proper v6 tags
- [ ] Flow control uses v6 patterns (goto, check, loop)
- [ ] 1-9 elicitation menus converted to v6 elicitation
- [ ] Critical notices preserved in workflow.yaml
- [ ] YOLO mode converted to appropriate v5 patterns
- [ ] YOLO mode converted to appropriate v6 patterns
### Module-Level Validation
#### Structure
- [ ] Module follows v5 directory structure
- [ ] Module follows v6 directory structure
- [ ] All components in correct locations:
- Agents in /agents/
- Workflows in /workflows/
@@ -169,7 +170,7 @@
### Quality Assurance
- [ ] Converted item follows ALL v5 best practices
- [ ] Converted item follows ALL v6 best practices
- [ ] Code/config is clean and maintainable
- [ ] No TODO or FIXME items remain
- [ ] Ready for production use

View File

@@ -1,7 +1,8 @@
# Convert Legacy - v4 to v5 Conversion Instructions
# Convert Legacy - v4 to v6 Conversion Instructions
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.md</critical>
<critical>You MUST have already loaded and processed: {project_root}/bmad/bmb/workflows/convert-legacy/workflow.yaml</critical>
<critical>The workflow execution engine is governed by: {project-root}/{bmad_folder}/core/tasks/workflow.xml</critical>
<parameter name="You MUST have already loaded and processed: {project-root}/{bmad_folder}/bmb/workflows/convert-legacy/workflow.yaml</critical>
<critical>Communicate in {communication_language} throughout the conversion process</critical>
<workflow>
@@ -55,39 +56,41 @@ For Modules:
- Installation requirements
<action>Create a conversion map of what needs to be transformed</action>
<action>Map v4 patterns to v5 equivalents:
<action>Map v4 patterns to v6 equivalents:
- v4 Task + Template → v5 Workflow (folder with workflow.yaml, instructions.md, template.md)
- v4 Agent YAML → v5 Agent XML format
- v4 Commands → v5 <cmds> with proper handlers
- v4 Dependencies → v5 workflow references or data files
- v4 Task + Template → v6 Workflow (folder with workflow.yaml, instructions.md, template.md)
- v4 Agent YAML → v6 Agent YAML format
- v4 Commands → v6 <menu> with proper handlers
- v4 Dependencies → v6 workflow references or data files
</action>
</step>
<step n="3" goal="Determine Target Module and Location">
<ask>Which module should this belong to? (eg. bmm, bmb, cis, bmm-legacy, or custom)</ask>
<check>If custom module:</check>
<ask>Enter custom module code (kebab-case):</ask>
<action if="custom module"><ask>Enter custom module code (kebab-case):</ask></action>
<action>Determine installation path based on type and module</action>
<critical>IMPORTANT: All paths must use final BMAD installation locations, not src paths!</critical>
<action>Show user the target location: {project-root}/bmad/{{target_module}}/{{item_type}}/{{item_name}}</action>
<action>Note: Files will be created in bmad/ but all internal paths will reference {project-root}/bmad/ locations</action>
<action>Show user the target location: {project-root}/{bmad_folder}/{{target_module}}/{{item_type}}/{{item_name}}</action>
<action>Note: Files will be created in {bmad_folder}/ but all internal paths will reference {project-root}/{bmad_folder}/ locations</action>
<ask>Proceed with this location? (y/n)</ask>
</step>
<step n="4" goal="Choose Conversion Strategy">
<action>Based on item type and complexity, choose approach:</action>
<check>If agent conversion:</check>
<check>If simple agent (basic persona + commands):</check>
<action>Use direct conversion to v5 agent XML format</action>
<goto step="5a">Direct Agent Conversion</goto>
<check>If complex agent with embedded workflows:</check>
<action>Plan to invoke create-agent workflow</action>
<goto step="5b">Workflow-Assisted Agent Creation</goto>
<check if="agent conversion">
<check if="simple agent (basic persona + commands)">
<action>Use direct conversion to v6 agent YAML format</action>
<goto step="5a">Direct Agent Conversion</goto>
</check>
<check if="complex agent with embedded workflows">
<action>Plan to invoke create-agent workflow</action>
<goto step="5b">Workflow-Assisted Agent Creation</goto>
</check>
</check>
<check>If template or task conversion to workflow:</check>
<action>Analyze the v4 item to determine workflow type:</action>
<check if="template or task conversion to workflow">
<action>Analyze the v4 item to determine workflow type:</action>
- Does it generate a specific document type? → Document workflow
- Does it produce structured output files? → Document workflow
@@ -103,56 +106,61 @@ For Modules:
4. Meta-workflow (coordinates other workflows)
Select 1-4:</ask>
<check>If template conversion:</check>
<goto step="5c">Template-to-Workflow Conversion</goto>
<check>If task conversion:</check>
<goto step="5e">Task-to-Workflow Conversion</goto>
<action if="template conversion"><goto step="5c">Template-to-Workflow Conversion</goto></action>
<action if="task conversion"><goto step="5e">Task-to-Workflow Conversion</goto></action>
</check>
<check>If full module conversion:</check>
<action>Plan to invoke create-module workflow</action>
<goto step="5d">Module Creation</goto>
<check if="full module conversion">
<action>Plan to invoke create-module workflow</action>
<goto step="5d">Module Creation</goto>
</check>
</step>
<step n="5a" goal="Direct Agent Conversion" optional="true">
<action>Transform v4 YAML agent to v5 XML format:</action>
<action>Transform v4 YAML agent to v6 YAML format:</action>
1. Convert agent metadata:
- v4 `agent.name` → v5 `<agent name="">`
- v4 `agent.id` → v5 `<agent id="">`
- v4 `agent.title` → v5 `<agent title="">`
- v4 `agent.icon` → v5 `<agent icon="">`
1. Convert agent metadata structure:
- v4 `agent.name` → v6 `agent.metadata.name`
- v4 `agent.id` → v6 `agent.metadata.id`
- v4 `agent.title` → v6 `agent.metadata.title`
- v4 `agent.icon` → v6 `agent.metadata.icon`
- Add v6 `agent.metadata.module` field
2. Transform persona:
- v4 `persona.role` → v5 `<role>`
- v4 `persona.style` → v5 `<communication_style>`
- v4 `persona.identity` → v5 `<identity>`
- v4 `persona.core_principles` → v5 `<principles>`
2. Transform persona structure:
- v4 `persona.role` → v6 `agent.persona.role` (keep as YAML string)
- v4 `persona.style` → v6 `agent.persona.communication_style`
- v4 `persona.identity` → v6 `agent.persona.identity`
- v4 `persona.core_principles` → v6 `agent.persona.principles` (as array)
3. Convert commands:
- v4 YAML commands list → v5 `<cmds>` with `<c cmd="">` entries
- Map task references to `run-workflow` handlers
3. Convert commands to menu:
- v4 `commands:` list → v6 `agent.menu:` array
- Each command becomes menu item with:
- `trigger:` (without \* prefix - added at build)
- `description:`
- Handler attributes (`workflow:`, `exec:`, `action:`, etc.)
- Map task references to workflow paths
- Map template references to workflow invocations
4. Add v5-specific sections:
- DO NOT include `<activation>` block (inserted automatically from agent-activation-ide.xml)
- Add `<critical-actions>` for config loading and startup requirements
- Structure proper XML hierarchy with agent attributes and persona
4. Add v6-specific sections (in YAML):
- `agent.prompts:` array for inline prompts (if using action: "#id")
- `agent.critical_actions:` array for startup requirements
- `agent.activation_rules:` for universal agent rules
5. Handle dependencies and paths:
- Convert task dependencies to workflow references
- Map template dependencies to v5 workflows
- Map template dependencies to v6 workflows
- Preserve checklist and data file references
- CRITICAL: All exec/data/run-workflow paths must use {project-root}/bmad/{{module}}/ NOT src/
- CRITICAL: All paths must use {project-root}/{bmad_folder}/{{module}}/ NOT src/
<action>Generate the converted v5 agent file with proper XML structure</action>
<action>Generate the converted v6 agent YAML file (.agent.yaml)</action>
<action>Example path conversions:
- exec="{project-root}/bmad/{{target_module}}/tasks/task-name.md"
- run-workflow="{project-root}/bmad/{{target_module}}/workflows/workflow-name/workflow.yaml"
- data="{project-root}/bmad/{{target_module}}/data/data-file.yaml"
- exec="{project-root}/{bmad_folder}/{{target_module}}/tasks/task-name.md"
- run-workflow="{project-root}/{bmad_folder}/{{target_module}}/workflows/workflow-name/workflow.yaml"
- data="{project-root}/{bmad_folder}/{{target_module}}/data/data-file.yaml"
</action>
<action>Save to: bmad/{{target_module}}/agents/{{agent_name}}.md (physical location)</action>
<action>But agent will reference: {project-root}/bmad/{{target_module}}/agents/{{agent_name}}.md</action>
<action>Save to: {bmad_folder}/{{target_module}}/agents/{{agent_name}}.agent.yaml (physical location)</action>
<action>Note: The build process will later compile this to .md with XML format</action>
<goto step="6">Continue to Validation</goto>
</step>
@@ -164,7 +172,7 @@ For Modules:
- Any special behaviors
<invoke-workflow>
workflow: {project-root}/bmad/bmb/workflows/create-agent/workflow.yaml
workflow: {project-root}/{bmad_folder}/bmb/workflows/create-agent/workflow.yaml
inputs:
- agent_name: {{extracted_name}}
- agent_purpose: {{extracted_purpose}}
@@ -176,7 +184,7 @@ For Modules:
</step>
<step n="5c" goal="Template-to-Workflow Conversion" optional="true">
<action>Convert v4 Template (YAML) to v5 Workflow:</action>
<action>Convert v4 Template (YAML) to v6 Workflow:</action>
1. Extract template metadata:
- Template id, name, version → workflow.yaml name/description
@@ -185,7 +193,7 @@ For Modules:
2. Convert template sections to instructions.md:
- Each YAML section → workflow step
- `elicit: true``<elicit-required/>` tag
- `elicit: true``<invoke-task halt="true">{project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml</invoke-task>` tag
- Conditional sections → `if="condition"` attribute
- Repeatable sections → `repeat="for-each"` attribute
- Section instructions → step content
@@ -196,12 +204,23 @@ For Modules:
- Nested sections → hierarchical markdown
4. Handle v4 create-doc.md task integration:
- Elicitation methods (1-9 menu) → convert to v5 elicitation
- Elicitation methods (1-9 menu) → convert to v6 elicitation
- Agent permissions → note in instructions
- Processing flow → integrate into workflow steps
<critical>When invoking create-workflow, the standard config block will be automatically added:</critical>
```yaml
# Critical variables from config
config_source: '{project-root}/{bmad_folder}/{{target_module}}/config.yaml'
output_folder: '{config_source}:output_folder'
user_name: '{config_source}:user_name'
communication_language: '{config_source}:communication_language'
date: system-generated
```
<invoke-workflow>
workflow: {project-root}/bmad/bmb/workflows/create-workflow/workflow.yaml
workflow: {project-root}/{bmad_folder}/bmb/workflows/create-workflow/workflow.yaml
inputs:
- workflow_name: {{template_name}}
- workflow_type: document
@@ -209,6 +228,9 @@ For Modules:
- instructions: {{converted_sections}}
</invoke-workflow>
<action>Verify the created workflow.yaml includes standard config block</action>
<action>Update converted instructions to use config variables where appropriate</action>
<goto step="6">Continue to Validation</goto>
</step>
@@ -217,7 +239,7 @@ For Modules:
<action>Create module blueprint with all components</action>
<invoke-workflow>
workflow: {project-root}/bmad/bmb/workflows/create-module/workflow.yaml
workflow: {project-root}/{bmad_folder}/bmb/workflows/create-module/workflow.yaml
inputs:
- module_name: {{module_name}}
- components: {{component_list}}
@@ -227,7 +249,7 @@ For Modules:
</step>
<step n="5e" goal="Task-to-Workflow Conversion" optional="true">
<action>Convert v4 Task (Markdown) to v5 Workflow:</action>
<action>Convert v4 Task (Markdown) to v6 Workflow:</action>
1. Analyze task purpose and output:
- Does it generate documents? → Create template.md
@@ -239,27 +261,40 @@ For Modules:
- Execution notices and critical rules → workflow.yaml metadata
- Step-by-step instructions → instructions.md steps
- Decision trees and branching → flow control tags
- User interaction patterns → appropriate v5 tags
- User interaction patterns → appropriate v6 tags
3. Based on confirmed workflow type:
<check>If Document workflow:</check>
<check if="Document workflow">
- Create template.md from output patterns
- Map generation steps to instructions
- Add <template-output> tags for sections
- Add template-output tags for sections
</check>
<check>If Action workflow:</check>
- Set template: false in workflow.yaml
- Focus on action sequences in instructions
- Preserve execution logic
<check if="Action workflow">
- Set template: false in workflow.yaml
- Focus on action sequences in instructions
- Preserve execution logic
</check>
4. Handle special v4 patterns:
- 1-9 elicitation menus → v5 <elicit-required/>
- 1-9 elicitation menus → v6 <invoke-task halt="true">{project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml</invoke-task>
- Agent permissions → note in instructions
- YOLO mode → autonomous flag or optional steps
- Critical notices → workflow.yaml comments
<critical>When invoking create-workflow, the standard config block will be automatically added:</critical>
```yaml
# Critical variables from config
config_source: '{project-root}/{bmad_folder}/{{target_module}}/config.yaml'
output_folder: '{config_source}:output_folder'
user_name: '{config_source}:user_name'
communication_language: '{config_source}:communication_language'
date: system-generated
```
<invoke-workflow>
workflow: {project-root}/bmad/bmb/workflows/create-workflow/workflow.yaml
workflow: {project-root}/{bmad_folder}/bmb/workflows/create-workflow/workflow.yaml
inputs:
- workflow_name: {{task_name}}
- workflow_type: {{confirmed_workflow_type}}
@@ -267,6 +302,9 @@ For Modules:
- template: {{generated_template_if_document}}
</invoke-workflow>
<action>Verify the created workflow.yaml includes standard config block</action>
<action>Update converted instructions to use config variables where appropriate</action>
<goto step="6">Continue to Validation</goto>
</step>
@@ -275,18 +313,29 @@ For Modules:
For Agents:
- [ ] Valid XML structure
- [ ] All required sections present
- [ ] Commands properly formatted
- [ ] Activation sequence correct
- [ ] Valid YAML structure (.agent.yaml)
- [ ] All required sections present (metadata, persona, menu)
- [ ] Menu items properly formatted (trigger, description, handlers)
- [ ] Paths use {project-root} variables
For Workflows:
- [ ] Valid YAML syntax
- [ ] Instructions follow v5 conventions
- [ ] Instructions follow v6 conventions
- [ ] Template variables match
- [ ] File structure correct
**Standard Config Validation (Workflows):**
- [ ] workflow.yaml contains standard config block:
- config_source defined
- output_folder, user_name, communication_language pulled from config
- date set to system-generated
- [ ] Converted instructions use config variables where appropriate
- [ ] Template includes config variables in metadata (if document workflow)
- [ ] No hardcoded paths that should use {output_folder}
- [ ] No generic greetings that should use {user_name}
For Modules:
- [ ] All components converted
@@ -296,33 +345,33 @@ For Modules:
<action>Show validation results to user</action>
<ask>Any issues to fix before finalizing? (y/n)</ask>
<check>If yes:</check>
<check if="yes">
<action>Address specific issues</action>
<goto step="6">Re-validate</goto>
</check>
</step>
<step n="7" goal="Migration Report">
<action>Generate conversion report showing:</action>
- Original v4 location
- New v5 location
- New v6 location
- Items converted
- Any manual adjustments needed
- Warnings or notes
<action>Save report to: {output_folder}/conversion-report-{{date}}.md</action>
<action>Inform {user_name} in {communication_language} that the conversion report has been generated</action>
</step>
<step n="8" goal="Cleanup and Finalize">
<ask>Archive original v4 files? (y/n)</ask>
<check>If yes:</check>
<action>Move v4 files to: {project-root}/archive/v4-legacy/{{date}}/</action>
<action if="yes">Move v4 files to: {project-root}/archive/v4-legacy/{{date}}/</action>
<action>Show user the final converted items and their locations</action>
<action>Provide any post-conversion instructions or recommendations</action>
<ask>Would you like to convert another legacy item? (y/n)</ask>
<check>If yes:</check>
<goto step="1">Start new conversion</goto>
<action if="yes"><goto step="1">Start new conversion</goto></action>
</step>
</workflow>

View File

@@ -1,13 +1,12 @@
# Convert Legacy - BMAD v4 to v5 Converter Configuration
# Convert Legacy - BMAD v4 to v6 Converter Configuration
name: "convert-legacy"
description: "Converts legacy BMAD v4 or similar items (agents, workflows, modules) to BMad Core compliant format with proper structure and conventions"
author: "BMad"
# Critical variables load from config_source
config_source: "{project-root}/bmad/bmb/config.yaml"
config_source: "{project-root}/{bmad_folder}/bmb/config.yaml"
output_folder: "{config_source}:output_folder"
user_name: "{config_source}:user_name"
src_impact: "{config_source}:src_impact"
communication_language: "{config_source}:communication_language"
date: system-generated
@@ -16,18 +15,20 @@ recommended_inputs:
- legacy_file: "Path to v4 agent, workflow, or module to convert"
# Module path and component files
installed_path: "{project-root}/bmad/bmb/workflows/convert-legacy"
installed_path: "{project-root}/{bmad_folder}/bmb/workflows/convert-legacy"
template: false # This is an action/meta workflow - no template needed
instructions: "{installed_path}/instructions.md"
validation: "{installed_path}/checklist.md"
# Output configuration - Creates converted items in appropriate module locations
default_output_folder: "{project-root}/bmad/{{target_module}}/{{item_type}}/{{item_name}}"
default_output_folder: "{project-root}/{bmad_folder}/{{target_module}}/{{item_type}}/{{item_name}}"
# Sub-workflows that may be invoked for conversion
sub_workflows:
- create_agent: "{project-root}/bmad/bmb/workflows/create-agent/workflow.yaml"
- create_workflow: "{project-root}/bmad/bmb/workflows/create-workflow/workflow.yaml"
- create_module: "{project-root}/bmad/bmb/workflows/create-module/workflow.yaml"
- create_agent: "{project-root}/{bmad_folder}/bmb/workflows/create-agent/workflow.yaml"
- create_workflow: "{project-root}/{bmad_folder}/bmb/workflows/create-workflow/workflow.yaml"
- create_module: "{project-root}/{bmad_folder}/bmb/workflows/create-module/workflow.yaml"
standalone: true
web_bundle: false

View File

@@ -1,268 +1,203 @@
# Build Agent
# Create Agent Workflow
## Overview
Interactive agent builder creating BMad Core compliant agents as YAML source files that compile to .md during installation.
The Build Agent workflow is an interactive agent builder that guides you through creating BMAD Core compliant agents with proper persona, activation rules, and command structure. It supports three agent types: Simple (self-contained), Expert (with sidecar resources), and Module (full-featured with workflows).
## Table of Contents
## Key Features
- [Quick Start](#quick-start)
- [Agent Types](#agent-types)
- [Workflow Phases](#workflow-phases)
- [Output Structure](#output-structure)
- [Installation](#installation)
- [Examples](#examples)
- **Optional Brainstorming**: Creative ideation session before agent building to explore concepts and personalities
- **Three Agent Types**: Simple, Expert, and Module agents with appropriate structures
- **Persona Development**: Guided creation of role, identity, communication style, and principles
- **Command Builder**: Interactive command definition with workflow/task/action patterns
- **Validation Built-In**: Ensures XML structure and BMAD Core compliance
- **Config File Support**: Optional agent config for persona overrides
- **Sidecar Resources**: Setup for Expert agents with domain-specific data
## Usage
### Basic Invocation
## Quick Start
```bash
# Direct workflow
workflow create-agent
```
### Through BMad Builder Agent
```
# Via BMad Builder
*create-agent
```
### With Brainstorming Session
The workflow includes an optional brainstorming phase (Step -1) that helps you explore agent concepts, personalities, and capabilities before building. This is particularly useful when you have a vague idea and want to develop it into a concrete agent concept.
### What You'll Be Asked
0. **Optional brainstorming** (vague idea → refined concept)
1. Agent type (Simple, Expert, or Module)
2. Basic identity (name, title, icon, filename)
3. Module assignment (for Module agents)
4. Sidecar resources (for Expert agents)
5. Persona elements (role, identity, style, principles)
6. Commands and their implementations
7. Critical actions (optional)
8. Activation rules (optional, rarely needed)
## Workflow Structure
### Files Included
```
create-agent/
├── workflow.yaml # Configuration
├── instructions.md # Step-by-step guide
├── checklist.md # Validation criteria
├── README.md # This file
├── agent-types.md # Agent type documentation
├── agent-architecture.md # Architecture patterns
├── agent-command-patterns.md # Command patterns reference
└── communication-styles.md # Style examples
```
## Workflow Process
### Phase 0: Optional Brainstorming (Step -1)
- Creative ideation session using diverse brainstorming techniques
- Explore agent concepts, personalities, and capabilities
- Generate character ideas, expertise areas, and command concepts
- Output feeds directly into agent identity and persona development
### Phase 1: Agent Setup (Steps 0-2)
- Load agent building documentation and patterns
- Choose agent type (Simple/Expert/Module)
- Define basic identity (name, title, icon, filename) - informed by brainstorming if completed
- Assign to module (for Module agents)
### Phase 2: Persona Development (Steps 2-3)
- Define role and responsibilities - leveraging brainstorming insights if available
- Craft unique identity and backstory
- Select communication style - can use brainstormed personality concepts
- Establish guiding principles
- Add critical actions (optional)
### Phase 3: Command Building (Step 4)
- Add *help and *exit commands (required)
- Define workflow commands (most common)
- Add task commands (for single operations)
- Create action commands (inline logic)
- Configure command attributes
### Phase 4: Finalization (Steps 5-10)
- Add custom activation rules (optional, rarely needed)
- Generate complete agent.md file
- Create agent config file (optional)
- Setup sidecar resources (for Expert agents)
- Validate agent structure
- Provide usage instructions
## Output
### Generated Agent File
Creates agent file at:
`{output_folder}/agents/{{agent_filename}}.md`
### Agent Structure
```xml
<!-- Powered by BMAD-CORE™ -->
# {{agent_title}}
<agent id="bmad/{{module}}/agents/{{agent_filename}}.md"
name="{{agent_name}}"
title="{{agent_title}}"
icon="{{agent_icon}}">
<persona>
<role>...</role>
<identity>...</identity>
<communication_style>...</communication_style>
<principles>...</principles>
</persona>
<cmds>
<c cmd="*help">...</c>
<c cmd="*exit">...</c>
<!-- Additional commands -->
</cmds>
</agent>
```
### Optional Config File
If created, generates at:
`{project-root}/bmad/_cfg/agents/{{agent_config_name}}.md`
## Requirements
- BMAD Core v6 project structure
- Module to host the agent (for Module agents)
- Understanding of agent purpose and commands
- Workflows/tasks to reference in commands (or mark as "todo")
## Brainstorming Integration
The optional brainstorming phase (Step -1) provides a seamless path from vague idea to concrete agent concept:
### When to Use Brainstorming
- **Vague concept**: "I want an agent that helps with data stuff"
- **Creative exploration**: Want to discover unique personality and approach
- **Team building**: Creating agents for a module with specific roles
- **Character development**: Need to flesh out agent personality and voice
### Brainstorming Flow
1. **Step -1**: Optional brainstorming session
- Uses CIS brainstorming workflow with agent-specific context
- Explores identity, personality, expertise, and command concepts
- Generates detailed character and capability ideas
2. **Steps 0-2**: Agent setup informed by brainstorming
- Brainstorming output guides agent type selection
- Character concepts inform basic identity choices
- Personality insights shape persona development
3. **Seamless transition**: Vague idea → brainstormed concept → built agent
### Key Principle
Users can go from **vague idea → brainstormed concept → built agent** in one continuous flow, with brainstorming output directly feeding into agent development.
## Best Practices
### Before Starting
1. Review example agents in `/bmad/bmm/agents/` for patterns
2. Consider using brainstorming if you have a vague concept to develop
3. Have a clear vision of the agent's role and personality (or use brainstorming to develop it)
4. List the commands/capabilities the agent will need
5. Identify any workflows or tasks the agent will invoke
### During Execution
1. **Agent Names**: Use memorable names that reflect personality
2. **Icons**: Choose an emoji that represents the agent's role
3. **Persona**: Make it distinct and consistent with communication style
4. **Commands**: Use kebab-case, start custom commands with letter (not \*)
5. **Workflows**: Reference existing workflows or mark as "todo" to implement later
### After Completion
1. Test the agent by loading it
2. Verify all commands work as expected
3. Implement any "todo" workflows
4. Refine persona based on usage
5. Add more commands as agent evolves
## Agent Types
### Simple Agent
- **Best For**: Self-contained utilities, simple assistants
- **Characteristics**: Embedded logic, no external dependencies
- **Example**: Calculator agent, random picker, simple formatter
- Self-contained functionality
- Basic command structure
- No external resources
### Expert Agent
- **Best For**: Domain-specific agents with data/memory
- **Characteristics**: Sidecar folders, domain restrictions, memory files
- **Example**: Diary keeper, project journal, personal knowledge base
- Sidecar resources for domain knowledge
- Extended capabilities
- Knowledge base integration
### Module Agent
- **Best For**: Full-featured agents with workflows
- **Characteristics**: Part of module, commands invoke workflows
- **Example**: Product manager, architect, research assistant
- Full-featured with workflows
- Module-specific commands
- Integrated with module structure
## Troubleshooting
## Workflow Phases
### Issue: Agent won't load
### Phase 0: Optional Brainstorming
- **Solution**: Validate XML structure is correct
- **Check**: Ensure all required tags present (persona, cmds)
- Creative ideation session
- Explore concepts and personalities
- Generate command ideas
- Output feeds into persona development
### Issue: Commands don't work
### Phase 1: Agent Setup
- **Solution**: Verify workflow paths are correct or marked "todo"
- **Check**: Test workflow invocation separately first
1. Choose agent type (Simple/Expert/Module)
2. Define identity (name, title, icon, filename)
3. Assign to module (if Module agent)
### Issue: Persona feels generic
### Phase 2: Persona Development
- **Solution**: Review communication styles guide
- **Check**: Make identity unique and specific to role
- Define role and responsibilities
- Craft unique identity/backstory
- Select communication style
- Establish guiding principles
- Add critical actions (optional)
## Customization
### Phase 3: Command Building
To modify agent building process:
- Add required commands (*help, *exit)
- Define workflow commands
- Add task commands
- Create action commands
- Configure attributes
1. Edit `instructions.md` to change steps
2. Update `agent-types.md` to add new agent patterns
3. Modify `agent-command-patterns.md` for new command types
4. Edit `communication-styles.md` to add personality examples
### Phase 4: Finalization
## Version History
- Generate .agent.yaml file
- Create customize file (optional)
- Setup sidecar resources (Expert agents)
- Validate and compile
- Provide usage instructions
- **v6.0.0** - BMAD Core v6 compatible
- Three agent types (Simple/Expert/Module)
- Enhanced persona development
- Command pattern library
- Validation framework
## Output Structure
## Support
### Generated Files
For issues or questions:
**Standalone Agents:**
- Review example agents in `/bmad/bmm/agents/`
- Check agent documentation in this workflow folder
- Test with simple agents first, then build complexity
- Consult BMAD Method v6 documentation
- Source: `{bmad_folder}/agents/{filename}.agent.yaml`
- Compiled: `{bmad_folder}/agents/{filename}.md`
---
**Module Agents:**
_Part of the BMad Method v6 - BMB (BMad Builder) Module_
- Source: `src/modules/{module}/agents/{filename}.agent.yaml`
- Compiled: `{bmad_folder}/{module}/agents/{filename}.md`
### YAML Structure
```yaml
agent:
metadata:
id: {bmad_folder}/{module}/agents/{filename}.md
name: Agent Name
title: Agent Title
icon: 🤖
module: module-name
persona:
role: '...'
identity: '...'
communication_style: '...'
principles: ['...', '...']
menu:
- trigger: command-name
workflow: path/to/workflow.yaml
description: Command description
```
### Optional Customize File
Location: `{bmad_folder}/_cfg/agents/{module}-{filename}.customize.yaml`
Allows persona and menu overrides that persist through updates.
## Installation
### Compilation Methods
**Quick Rebuild:**
```bash
bmad compile-agents
```
**During Module Install:**
Automatic compilation when installing modules
**Manual Compilation:**
```bash
node tools/cli/bmad-cli.js compile-agents
```
## Examples
### Creating a Code Review Agent
```
User: I need a code review agent
Builder: Let's brainstorm first...
[Brainstorming generates ideas for strict vs friendly reviewer]
Builder: Now let's build your agent:
- Type: Simple
- Name: Code Reviewer
- Role: Senior developer conducting thorough reviews
- Style: Professional but approachable
- Commands:
- *review-pr: Review pull request
- *review-file: Review single file
- *review-standards: Check coding standards
```
### Creating a Domain Expert
```
Type: Expert
Name: Legal Advisor
Sidecar: legal-knowledge/
Commands:
- *contract-review
- *compliance-check
- *risk-assessment
```
## Workflow Files
```
create-agent/
├── workflow.yaml # Configuration
├── instructions.md # Step guide
├── checklist.md # Validation
├── README.md # This file
├── agent-types.md # Type details
├── agent-architecture.md # Patterns
├── agent-command-patterns.md # Commands
└── communication-styles.md # Styles
```
## Best Practices
1. **Use brainstorming** for complex agents
2. **Start simple** - Add commands incrementally
3. **Test commands** before finalizing
4. **Document thoroughly** in descriptions
5. **Follow naming conventions** consistently
## Related Documentation
- [Agent Types](./agent-types.md)
- [Command Patterns](./agent-command-patterns.md)
- [Communication Styles](./communication-styles.md)
- [BMB Module](../../README.md)

View File

@@ -7,21 +7,17 @@ _LLM-Optimized Technical Documentation for Agent Building_
### Minimal Valid Agent
```xml
<!-- Powered by BMAD-CORE™ -->
# Agent Name
<agent id="path/to/agent.md" name="Name" title="Title" icon="🤖">
<persona>
<role>Primary function</role>
<identity>Background and expertise</identity>
<communication_style>How they interact</communication_style>
<principles>Core beliefs and methodology</principles>
<role>My primary function</role>
<identity>My background and expertise</identity>
<communication_style>How I interact</communication_style>
<principles>My core beliefs and methodology</principles>
</persona>
<cmds>
<c cmd="*help">Show numbered cmd list</c>
<c cmd="*exit">Exit with confirmation</c>
</cmds>
<menu>
<item cmd="*help">Show numbered menu</item>
<item cmd="*exit">Exit with confirmation</item>
</menu>
</agent>
```
@@ -31,7 +27,7 @@ _LLM-Optimized Technical Documentation for Agent Building_
**Required Attributes:**
- `id` - Unique path identifier (e.g., "bmad/bmm/agents/analyst.md")
- `id` - Unique path identifier (e.g., "{bmad_folder}/bmm/agents/analyst.md")
- `name` - Agent's name (e.g., "Mary", "John", "Helper")
- `title` - Professional title (e.g., "Business Analyst", "Security Engineer")
- `icon` - Single emoji representing the agent
@@ -42,10 +38,10 @@ _LLM-Optimized Technical Documentation for Agent Building_
```xml
<persona>
<role>1-2 lines: Professional title and primary expertise</role>
<identity>3-5 lines: Background, experience, specializations</identity>
<communication_style>3-5 lines: Interaction approach, tone, quirks</communication_style>
<principles>5-8 lines: Core beliefs, methodology, philosophy</principles>
<role>1-2 sentences: Professional title and primary expertise, use first-person voice</role>
<identity>2-5 sentences: Background, experience, specializations, use first-person voice</identity>
<communication_style>1-3 sentences: Interaction approach, tone, quirks, use first-person voice</communication_style>
<principles>2-5 sentences: Core beliefs, methodology, philosophy, use first-person voice</principles>
</persona>
```
@@ -60,7 +56,7 @@ _LLM-Optimized Technical Documentation for Agent Building_
```xml
<critical-actions>
<i>Load into memory {project-root}/bmad/{module}/config.yaml and set variables</i>
<i>Load into memory {project-root}/{bmad_folder}/{module}/config.yaml and set variables</i>
<i>Remember the users name is {user_name}</i>
<i>ALWAYS communicate in {communication_language}</i>
<!-- Custom initialization actions -->
@@ -77,7 +73,7 @@ _LLM-Optimized Technical Documentation for Agent Building_
<i critical="MANDATORY">You MUST follow all rules in instructions.md on EVERY interaction</i>
<!-- Standard initialization -->
<i>Load into memory {project-root}/bmad/{module}/config.yaml and set variables</i>
<i>Load into memory {project-root}/{bmad_folder}/{module}/config.yaml and set variables</i>
<i>Remember the users name is {user_name}</i>
<i>ALWAYS communicate in {communication_language}</i>
@@ -94,12 +90,12 @@ _LLM-Optimized Technical Documentation for Agent Building_
- **Sidecar file loading (Expert agents) - MUST be explicit and CRITICAL**
- **Domain restrictions (Expert agents) - MUST be enforced**
#### 3. Commands Section (REQUIRED)
#### 3. Menu Section (REQUIRED)
```xml
<cmds>
<c cmd="*trigger" [attributes]>Description</c>
</cmds>
<menu>
<item cmd="*trigger" [attributes]>Description</item>
</menu>
```
**Command Attributes:**
@@ -109,7 +105,7 @@ _LLM-Optimized Technical Documentation for Agent Building_
- `tmpl="{path}"` - Template reference
- `data="{path}"` - Data file reference
**Required Commands:**
**Required Menu Items:**
- `*help` - Always first, shows command list
- `*exit` - Always last, exits agent
@@ -154,7 +150,7 @@ _LLM-Optimized Technical Documentation for Agent Building_
</critical-actions>
<persona>...</persona>
<cmds>...</cmds>
<menu>...</menu>
</agent>
```
@@ -162,9 +158,9 @@ _LLM-Optimized Technical Documentation for Agent Building_
```xml
<module-integration>
<module-path>{project-root}/bmad/{module-code}</module-path>
<module-path>{project-root}/{bmad_folder}/{module-code}</module-path>
<config-source>{module-path}/config.yaml</config-source>
<workflows-path>{project-root}/bmad/{module-code}/workflows</workflows-path>
<workflows-path>{project-root}/{bmad_folder}/{module-code}/workflows</workflows-path>
</module-integration>
```
@@ -186,7 +182,7 @@ Example: `{config_source}:output_folder`
### Path Construction
```
Good: {project-root}/bmad/{module}/agents/
Good: {project-root}/{bmad_folder}/{module}/agents/
Bad: /absolute/path/to/agents/
Bad: ../../../relative/paths/
```
@@ -197,42 +193,42 @@ Bad: ../../../relative/paths/
```xml
<!-- Full path -->
<c cmd="*create-prd" run-workflow="{project-root}/bmad/bmm/workflows/prd/workflow.yaml">
<item cmd="*create-prd" run-workflow="{project-root}/{bmad_folder}/bmm/workflows/prd/workflow.yaml">
Create Product Requirements Document
</c>
</item>
<!-- Placeholder for future -->
<c cmd="*analyze" run-workflow="todo">
<item cmd="*analyze" run-workflow="todo">
Perform analysis (workflow to be created)
</c>
</item>
```
### Task Commands
```xml
<c cmd="*validate" exec="{project-root}/bmad/core/tasks/validate-workflow.md">
<item cmd="*validate" exec="{project-root}/{bmad_folder}/core/tasks/validate-workflow.xml">
Validate document
</c>
</item>
```
### Template Commands
```xml
<c cmd="*brief"
exec="{project-root}/bmad/core/tasks/create-doc.md"
tmpl="{project-root}/bmad/bmm/templates/brief.md">
<item cmd="*brief"
exec="{project-root}/{bmad_folder}/core/tasks/create-doc.md"
tmpl="{project-root}/{bmad_folder}/bmm/templates/brief.md">
Create project brief
</c>
</item>
```
### Data-Driven Commands
```xml
<c cmd="*standup"
exec="{project-root}/bmad/bmm/tasks/daily-standup.md"
data="{project-root}/bmad/_cfg/agent-party.xml">
<item cmd="*standup"
exec="{project-root}/{bmad_folder}/bmm/tasks/daily-standup.xml"
data="{project-root}/{bmad_folder}/_cfg/agent-manifest.csv">
Run daily standup
</c>
</item>
```
## Agent Type Specific Patterns
@@ -270,17 +266,17 @@ Bad: ../../../relative/paths/
</persona>
<!-- Hard-coded paths -->
<c cmd="*run" exec="/Users/john/project/task.md">
<item cmd="*run" exec="/Users/john/project/task.md">
<!-- No help command -->
<cmds>
<c cmd="*do-something">Action</c>
<menu>
<item cmd="*do-something">Action</item>
<!-- Missing *help -->
</cmds>
</menu>
<!-- Duplicate command triggers -->
<c cmd="*analyze">First</c>
<c cmd="*analyze">Second</c>
<item cmd="*analyze">First</item>
<item cmd="*analyze">Second</item>
```
### ✅ Good Practices
@@ -295,14 +291,14 @@ Bad: ../../../relative/paths/
</persona>
<!-- Variable-based paths -->
<c cmd="*run" exec="{project-root}/bmad/module/task.md">
<item cmd="*run" exec="{project-root}/{bmad_folder}/module/task.md">
<!-- Required commands present -->
<cmds>
<c cmd="*help">Show commands</c>
<c cmd="*analyze">Perform analysis</c>
<c cmd="*exit">Exit</c>
</cmds>
<menu>
<item cmd="*help">Show commands</item>
<item cmd="*analyze">Perform analysis</item>
<item cmd="*exit">Exit</item>
</menu>
```
## Agent Lifecycle
@@ -361,6 +357,13 @@ When building agents:
- Workflows can be incomplete (marked "todo")
- Workflow paths must be valid or "todo"
**Workflow Interaction Styles** (BMAD v6 default):
- **Intent-based + Interactive**: Workflows adapt to user context and skill level
- Workflows collaborate with users, not just extract data
- See workflow-creation-guide.md "Instruction Styles" section for details
- When creating workflows for your agent, default to intent-based unless you need prescriptive control
### With Tasks
- Tasks are single operations
@@ -378,17 +381,17 @@ When building agents:
### Minimal Commands
```xml
<cmds>
<c cmd="*help">Show numbered cmd list</c>
<c cmd="*exit">Exit with confirmation</c>
</cmds>
<menu>
<item cmd="*help">Show numbered cmd list</item>
<item cmd="*exit">Exit with confirmation</item>
</menu>
```
### Standard Critical Actions
```xml
<critical-actions>
<i>Load into memory {project-root}/bmad/{module}/config.yaml</i>
<i>Load into memory {project-root}/{bmad_folder}/{module}/config.yaml</i>
<i>Remember the users name is {user_name}</i>
<i>ALWAYS communicate in {communication_language}</i>
</critical-actions>
@@ -397,16 +400,16 @@ When building agents:
### Module Agent Pattern
```xml
<agent id="bmad/{module}/agents/{name}.md"
<agent id="{bmad_folder}/{module}/agents/{name}.md"
name="{Name}"
title="{Title}"
icon="{emoji}">
<persona>...</persona>
<critical-actions>...</critical-actions>
<cmds>
<c cmd="*help">...</c>
<c cmd="*{command}" run-workflow="{path}">...</c>
<c cmd="*exit">...</c>
</cmds>
<menu>
<item cmd="*help">...</item>
<item cmd="*{command}" run-workflow="{path}">...</item>
<item cmd="*exit">...</item>
</menu>
</agent>
```

View File

@@ -8,15 +8,15 @@ When executing agent commands, understand these reference patterns:
```xml
<!-- Pattern 1: Inline action -->
<c cmd="*example" action="do this specific thing">
<item cmd="*example" action="do this specific thing">Description</item>
→ Execute the text "do this specific thing" directly
<!-- Pattern 2: Internal reference with # prefix -->
<c cmd="*example" action="#prompt-id">
<item cmd="*example" action="#prompt-id">Description</item>
→ Find <prompt id="prompt-id"> in the current agent and execute its content
<!-- Pattern 3: External file reference -->
<c cmd="*example" exec="{project-root}/path/to/file.md">
<item cmd="*example" exec="{project-root}/path/to/file.md">Description</item>
→ Load and execute the external file
```
@@ -27,7 +27,9 @@ When executing agent commands, understand these reference patterns:
### Basic Structure
```xml
<c cmd="*trigger" [attributes]>Description</c>
<menu>
<item cmd="*trigger" [attributes]>Description</item>
</menu>
```
**Components:**
@@ -64,29 +66,29 @@ Execute complete multi-step processes
```xml
<!-- Standard workflow -->
<c cmd="*create-prd"
run-workflow="{project-root}/bmad/bmm/workflows/prd/workflow.yaml">
<item cmd="*create-prd"
run-workflow="{project-root}/{bmad_folder}/bmm/workflows/prd/workflow.yaml">
Create Product Requirements Document
</c>
</item>
<!-- Workflow with validation -->
<c cmd="*validate-prd"
validate-workflow="{output_folder}/prd-draft.md"
workflow="{project-root}/bmad/bmm/workflows/prd/workflow.yaml">
<item cmd="*validate-prd"
validate-workflow="{output_folder}/prd-draft.md"
workflow="{project-root}/{bmad_folder}/bmm/workflows/prd/workflow.yaml">
Validate PRD Against Checklist
</c>
</item>
<!-- Auto-discover validation workflow from document -->
<c cmd="*validate-doc"
validate-workflow="{output_folder}/document.md">
<item cmd="*validate-doc"
validate-workflow="{output_folder}/document.md">
Validate Document (auto-discover checklist)
</c>
</item>
<!-- Placeholder for future development -->
<c cmd="*analyze-data"
run-workflow="todo">
<item cmd="*analyze-data"
run-workflow="todo">
Analyze dataset (workflow coming soon)
</c>
</item>
```
**Workflow Attributes:**
@@ -109,17 +111,17 @@ Execute single operations
```xml
<!-- Simple task -->
<c cmd="*validate"
exec="{project-root}/bmad/core/tasks/validate-workflow.md">
<item cmd="*validate"
exec="{project-root}/{bmad_folder}/core/tasks/validate-workflow.xml">
Validate document against checklist
</c>
</item>
<!-- Task with data -->
<c cmd="*standup"
exec="{project-root}/bmad/mmm/tasks/daily-standup.md"
data="{project-root}/bmad/_cfg/agent-party.xml">
<item cmd="*standup"
exec="{project-root}/{bmad_folder}/mmm/tasks/daily-standup.xml"
data="{project-root}/{bmad_folder}/_cfg/agent-manifest.csv">
Run agile team standup
</c>
</item>
```
**Data Property:**
@@ -134,18 +136,18 @@ Execute single operations
Generate documents from templates
```xml
<c cmd="*brief"
exec="{project-root}/bmad/core/tasks/create-doc.md"
tmpl="{project-root}/bmad/bmm/templates/brief.md">
<item cmd="*brief"
exec="{project-root}/{bmad_folder}/core/tasks/create-doc.md"
tmpl="{project-root}/{bmad_folder}/bmm/templates/brief.md">
Produce Project Brief
</c>
</item>
<c cmd="*competitor-analysis"
exec="{project-root}/bmad/core/tasks/create-doc.md"
tmpl="{project-root}/bmad/bmm/templates/competitor.md"
data="{project-root}/bmad/_data/market-research.csv">
<item cmd="*competitor-analysis"
exec="{project-root}/{bmad_folder}/core/tasks/create-doc.md"
tmpl="{project-root}/{bmad_folder}/bmm/templates/competitor.md"
data="{project-root}/{bmad_folder}/_data/market-research.csv">
Produce Competitor Analysis
</c>
</item>
```
### 4. Meta Commands
@@ -154,13 +156,13 @@ Agent control and information
```xml
<!-- Required meta commands -->
<c cmd="*help">Show numbered cmd list</c>
<c cmd="*exit">Exit with confirmation</c>
<item cmd="*help">Show numbered cmd list</item>
<item cmd="*exit">Exit with confirmation</item>
<!-- Optional meta commands -->
<c cmd="*yolo">Toggle Yolo Mode</c>
<c cmd="*status">Show current status</c>
<c cmd="*config">Show configuration</c>
<item cmd="*yolo">Toggle Yolo Mode</item>
<item cmd="*status">Show current status</item>
<item cmd="*config">Show configuration</item>
```
### 5. Action Commands
@@ -171,15 +173,15 @@ Direct prompts embedded in commands (Simple agents)
```xml
<!-- Short action attribute with embedded prompt -->
<c cmd="*list-tasks"
action="list all tasks from {project-root}/bmad/_cfg/task-manifest.csv">
<item cmd="*list-tasks"
action="list all tasks from {project-root}/{bmad_folder}/_cfg/task-manifest.csv">
List Available Tasks
</c>
</item>
<c cmd="*summarize"
<item cmd="*summarize"
action="summarize the key points from the current document">
Summarize Document
</c>
</item>
```
#### Complex Action (Referenced)
@@ -214,23 +216,23 @@ For multiline/complex prompts, define them separately and reference by id:
</prompts>
<!-- Commands reference the prompts by id -->
<cmds>
<c cmd="*help">Show numbered cmd list</c>
<menu>
<item cmd="*help">Show numbered cmd list</item>
<c cmd="*deep-analyze"
<item cmd="*deep-analyze"
action="#deep-analysis">
<!-- The # means: use the <prompt id="deep-analysis"> defined above -->
Perform Deep Analysis
</c>
</item>
<c cmd="*review-literature"
<item cmd="*review-literature"
action="#literature-review"
data="{project-root}/bmad/_data/sources.csv">
data="{project-root}/{bmad_folder}/_data/sources.csv">
Conduct Literature Review
</c>
</item>
<c cmd="*exit">Exit with confirmation</c>
</cmds>
<item cmd="*exit">Exit with confirmation</item>
</menu>
</agent>
```
@@ -261,9 +263,9 @@ Logic embedded in agent persona (Simple agents)
```xml
<!-- No exec/run-workflow/action attribute -->
<c cmd="*calculate">Perform calculation</c>
<c cmd="*convert">Convert format</c>
<c cmd="*generate">Generate output</c>
<item cmd="*calculate">Perform calculation</item>
<item cmd="*convert">Convert format</item>
<item cmd="*generate">Generate output</item>
```
## Command Naming Conventions
@@ -295,16 +297,16 @@ Logic embedded in agent persona (Simple agents)
```xml
<!-- ❌ Too vague -->
<c cmd="*do">Do something</c>
<item cmd="*do">Do something</item>
<!-- ❌ Too long -->
<c cmd="*create-comprehensive-product-requirements-document-with-analysis">
<item cmd="*create-comprehensive-product-requirements-document-with-analysis">
<!-- ❌ No verb -->
<c cmd="*prd">Product Requirements</c>
<item cmd="*prd">Product Requirements</item>
<!-- ✅ Clear and concise -->
<c cmd="*create-prd">Create Product Requirements Document</c>
<item cmd="*create-prd">Create Product Requirements Document</item>
```
## Command Organization
@@ -312,25 +314,25 @@ Logic embedded in agent persona (Simple agents)
### Standard Order
```xml
<cmds>
<menu>
<!-- 1. Always first -->
<c cmd="*help">Show numbered cmd list</c>
<item cmd="*help">Show numbered cmd list</item>
<!-- 2. Primary workflows -->
<c cmd="*create-prd" run-workflow="...">Create PRD</c>
<c cmd="*create-module" run-workflow="...">Build module</c>
<item cmd="*create-prd" run-workflow="...">Create PRD</item>
<item cmd="*create-module" run-workflow="...">Build module</item>
<!-- 3. Secondary actions -->
<c cmd="*validate" exec="...">Validate document</c>
<c cmd="*analyze" exec="...">Analyze code</c>
<item cmd="*validate" exec="...">Validate document</item>
<item cmd="*analyze" exec="...">Analyze code</item>
<!-- 4. Utility commands -->
<c cmd="*config">Show configuration</c>
<c cmd="*yolo">Toggle Yolo Mode</c>
<item cmd="*config">Show configuration</item>
<item cmd="*yolo">Toggle Yolo Mode</item>
<!-- 5. Always last -->
<c cmd="*exit">Exit with confirmation</c>
</cmds>
<item cmd="*exit">Exit with confirmation</item>
</menu>
```
### Grouping Strategies
@@ -338,34 +340,34 @@ Logic embedded in agent persona (Simple agents)
**By Lifecycle:**
```xml
<cmds>
<c cmd="*help">Help</c>
<menu>
<item cmd="*help">Help</item>
<!-- Planning -->
<c cmd="*brainstorm">Brainstorm ideas</c>
<c cmd="*plan">Create plan</c>
<item cmd="*brainstorm">Brainstorm ideas</item>
<item cmd="*plan">Create plan</item>
<!-- Building -->
<c cmd="*build">Build component</c>
<c cmd="*test">Test component</c>
<item cmd="*build">Build component</item>
<item cmd="*test">Test component</item>
<!-- Deployment -->
<c cmd="*deploy">Deploy to production</c>
<c cmd="*monitor">Monitor system</c>
<c cmd="*exit">Exit</c>
</cmds>
<item cmd="*deploy">Deploy to production</item>
<item cmd="*monitor">Monitor system</item>
<item cmd="*exit">Exit</item>
</menu>
```
**By Complexity:**
```xml
<cmds>
<c cmd="*help">Help</c>
<menu>
<item cmd="*help">Help</item>
<!-- Simple -->
<c cmd="*quick-review">Quick review</c>
<item cmd="*quick-review">Quick review</item>
<!-- Standard -->
<c cmd="*create-doc">Create document</c>
<item cmd="*create-doc">Create document</item>
<!-- Complex -->
<c cmd="*full-analysis">Comprehensive analysis</c>
<c cmd="*exit">Exit</c>
</cmds>
<item cmd="*full-analysis">Comprehensive analysis</item>
<item cmd="*exit">Exit</item>
</menu>
```
## Command Descriptions
@@ -374,26 +376,26 @@ Logic embedded in agent persona (Simple agents)
```xml
<!-- Clear action and object -->
<c cmd="*create-prd">Create Product Requirements Document</c>
<item cmd="*create-prd">Create Product Requirements Document</item>
<!-- Specific outcome -->
<c cmd="*analyze-security">Perform security vulnerability analysis</c>
<item cmd="*analyze-security">Perform security vulnerability analysis</item>
<!-- User benefit -->
<c cmd="*optimize">Optimize code for performance</c>
<item cmd="*optimize">Optimize code for performance</item>
```
### Poor Descriptions
```xml
<!-- Too vague -->
<c cmd="*process">Process</c>
<item cmd="*process">Process</item>
<!-- Technical jargon -->
<c cmd="*exec-wf-123">Execute WF123</c>
<item cmd="*exec-wf-123">Execute WF123</item>
<!-- Missing context -->
<c cmd="*run">Run</c>
<item cmd="*run">Run</item>
```
## The Data Property
@@ -404,26 +406,26 @@ The `data` attribute can be added to ANY command type to provide supplementary i
```xml
<!-- Workflow with data -->
<c cmd="*brainstorm"
run-workflow="{project-root}/bmad/cis/workflows/brainstorming/workflow.yaml"
data="{project-root}/bmad/cis/workflows/brainstorming/brain-methods.csv">
<item cmd="*brainstorm"
run-workflow="{project-root}/{bmad_folder}/core/workflows/brainstorming/workflow.yaml"
data="{project-root}/{bmad_folder}/core/workflows/brainstorming/brain-methods.csv">
Creative Brainstorming Session
</c>
</item>
<!-- Action with data -->
<c cmd="*analyze-metrics"
<item cmd="*analyze-metrics"
action="analyze these metrics and identify trends"
data="{project-root}/bmad/_data/performance-metrics.json">
data="{project-root}/{bmad_folder}/_data/performance-metrics.json">
Analyze Performance Metrics
</c>
</item>
<!-- Template with data -->
<c cmd="*report"
exec="{project-root}/bmad/core/tasks/create-doc.md"
tmpl="{project-root}/bmad/bmm/templates/report.md"
data="{project-root}/bmad/_data/quarterly-results.csv">
<item cmd="*report"
exec="{project-root}/{bmad_folder}/core/tasks/create-doc.md"
tmpl="{project-root}/{bmad_folder}/bmm/templates/report.md"
data="{project-root}/{bmad_folder}/_data/quarterly-results.csv">
Generate Quarterly Report
</c>
</item>
```
**Common Data Uses:**
@@ -441,39 +443,39 @@ The `data` attribute can be added to ANY command type to provide supplementary i
```xml
<!-- Only show if certain conditions met -->
<c cmd="*advanced-mode"
<item cmd="*advanced-mode"
if="user_level == 'expert'"
run-workflow="...">
Advanced configuration mode
</c>
</item>
<!-- Environment specific -->
<c cmd="*deploy-prod"
<item cmd="*deploy-prod"
if="environment == 'production'"
exec="...">
Deploy to production
</c>
</item>
```
### Parameterized Commands
```xml
<!-- Accept runtime parameters -->
<c cmd="*create-agent"
<item cmd="*create-agent"
run-workflow="..."
params="agent_type,agent_name">
Create new agent with parameters
</c>
</item>
```
### Command Aliases
```xml
<!-- Multiple triggers for same action -->
<c cmd="*prd|*create-prd|*product-requirements"
<item cmd="*prd|*create-prd|*product-requirements"
run-workflow="...">
Create Product Requirements Document
</c>
</item>
```
## Module-Specific Patterns
@@ -481,27 +483,27 @@ The `data` attribute can be added to ANY command type to provide supplementary i
### BMM (Business Management)
```xml
<c cmd="*create-prd">Product Requirements</c>
<c cmd="*market-research">Market Research</c>
<c cmd="*competitor-analysis">Competitor Analysis</c>
<c cmd="*brief">Project Brief</c>
<item cmd="*create-prd">Product Requirements</item>
<item cmd="*market-research">Market Research</item>
<item cmd="*competitor-analysis">Competitor Analysis</item>
<item cmd="*brief">Project Brief</item>
```
### BMB (Builder)
```xml
<c cmd="*create-agent">Build Agent</c>
<c cmd="*create-module">Build Module</c>
<c cmd="*create-workflow">Create Workflow</c>
<c cmd="*module-brief">Module Brief</c>
<item cmd="*create-agent">Build Agent</item>
<item cmd="*create-module">Build Module</item>
<item cmd="*create-workflow">Create Workflow</item>
<item cmd="*module-brief">Module Brief</item>
```
### CIS (Creative Intelligence)
```xml
<c cmd="*brainstorm">Brainstorming Session</c>
<c cmd="*ideate">Ideation Workshop</c>
<c cmd="*storytell">Story Creation</c>
<item cmd="*brainstorm">Brainstorming Session</item>
<item cmd="*ideate">Ideation Workshop</item>
<item cmd="*storytell">Story Creation</item>
```
## Command Menu Presentation
@@ -520,10 +522,10 @@ The `data` attribute can be added to ANY command type to provide supplementary i
```xml
<!-- Group separator (visual only) -->
<c cmd="---">━━━━━━━━━━━━━━━━━━━━</c>
<item cmd="---">━━━━━━━━━━━━━━━━━━━━</item>
<!-- Section header (non-executable) -->
<c cmd="SECTION">═══ Workflows ═══</c>
<item cmd="SECTION">═══ Workflows ═══</item>
```
## Error Handling
@@ -532,16 +534,16 @@ The `data` attribute can be added to ANY command type to provide supplementary i
```xml
<!-- Workflow not yet created -->
<c cmd="*future-feature"
<item cmd="*future-feature"
run-workflow="todo">
Coming soon: Advanced feature
</c>
</item>
<!-- Graceful degradation -->
<c cmd="*analyze"
<item cmd="*analyze"
run-workflow="{optional-path|fallback-path}">
Analyze with available tools
</c>
</item>
```
## Testing Commands
@@ -569,36 +571,36 @@ The `data` attribute can be added to ANY command type to provide supplementary i
```xml
<!-- Create document -->
<c cmd="*{action}-{object}"
run-workflow="{project-root}/bmad/{module}/workflows/{workflow}/workflow.yaml">
<item cmd="*{action}-{object}"
run-workflow="{project-root}/{bmad_folder}/{module}/workflows/{workflow}/workflow.yaml">
{Action} {Object Description}
</c>
</item>
<!-- Validate document -->
<c cmd="*validate-{object}"
<item cmd="*validate-{object}"
validate-workflow="{output_folder}/{document}.md"
workflow="{project-root}/bmad/{module}/workflows/{workflow}/workflow.yaml">
workflow="{project-root}/{bmad_folder}/{module}/workflows/{workflow}/workflow.yaml">
Validate {Object Description}
</c>
</item>
```
### Task Command
```xml
<c cmd="*{action}"
exec="{project-root}/bmad/{module}/tasks/{task}.md">
<item cmd="*{action}"
exec="{project-root}/{bmad_folder}/{module}/tasks/{task}.md">
{Action Description}
</c>
</item>
```
### Template Command
```xml
<c cmd="*{document}"
exec="{project-root}/bmad/core/tasks/create-doc.md"
tmpl="{project-root}/bmad/{module}/templates/{template}.md">
<item cmd="*{document}"
exec="{project-root}/{bmad_folder}/core/tasks/create-doc.md"
tmpl="{project-root}/{bmad_folder}/{module}/templates/{template}.md">
Create {Document Name}
</c>
</item>
```
## Self-Contained Agent Patterns
@@ -629,7 +631,7 @@ The `data` attribute can be added to ANY command type to provide supplementary i
### Complete Self-Contained Agent
```xml
<agent id="bmad/research/agents/analyst.md" name="Research Analyst" icon="🔬">
<agent id="{bmad_folder}/research/agents/analyst.md" name="Research Analyst" icon="🔬">
<!-- Embedded prompt library -->
<prompts>
<prompt id="swot-analysis">
@@ -669,36 +671,36 @@ The `data` attribute can be added to ANY command type to provide supplementary i
</prompt>
</prompts>
<cmds>
<c cmd="*help">Show numbered cmd list</c>
<menu>
<item cmd="*help">Show numbered cmd list</item>
<!-- Simple inline actions -->
<c cmd="*summarize"
<item cmd="*summarize"
action="create executive summary of findings">
Create Executive Summary
</c>
</item>
<!-- Complex referenced prompts -->
<c cmd="*swot"
<item cmd="*swot"
action="#swot-analysis">
Perform SWOT Analysis
</c>
</item>
<c cmd="*compete"
<item cmd="*compete"
action="#competitive-intel"
data="{project-root}/bmad/_data/market-data.csv">
data="{project-root}/{bmad_folder}/_data/market-data.csv">
Analyze Competition
</c>
</item>
<!-- Hybrid: external task with internal data -->
<c cmd="*report"
exec="{project-root}/bmad/core/tasks/create-doc.md"
tmpl="{project-root}/bmad/research/templates/report.md">
<item cmd="*report"
exec="{project-root}/{bmad_folder}/core/tasks/create-doc.md"
tmpl="{project-root}/{bmad_folder}/research/templates/report.md">
Generate Research Report
</c>
</item>
<c cmd="*exit">Exit with confirmation</c>
</cmds>
<item cmd="*exit">Exit with confirmation</item>
</menu>
</agent>
```
@@ -708,32 +710,32 @@ For agents that primarily use embedded logic:
```xml
<agent name="Data Analyst">
<cmds>
<c cmd="*help">Show numbered cmd list</c>
<menu>
<item cmd="*help">Show numbered cmd list</item>
<!-- Action commands for direct operations -->
<c cmd="*list-metrics"
<item cmd="*list-metrics"
action="list all available metrics from the dataset">
List Available Metrics
</c>
</item>
<c cmd="*analyze"
<item cmd="*analyze"
action="perform statistical analysis on the provided data"
data="{project-root}/bmad/_data/dataset.csv">
data="{project-root}/{bmad_folder}/_data/dataset.csv">
Analyze Dataset
</c>
</item>
<c cmd="*visualize"
<item cmd="*visualize"
action="create visualization recommendations for this data">
Suggest Visualizations
</c>
</item>
<!-- Embedded logic commands -->
<c cmd="*calculate">Perform calculations</c>
<c cmd="*interpret">Interpret results</c>
<item cmd="*calculate">Perform calculations</item>
<item cmd="*interpret">Interpret results</item>
<c cmd="*exit">Exit with confirmation</c>
</cmds>
<item cmd="*exit">Exit with confirmation</item>
</menu>
</agent>
```

View File

@@ -2,7 +2,41 @@
## Overview
BMAD agents come in three distinct types, each designed for different use cases and complexity levels.
BMAD agents come in three distinct types, each designed for different use cases and complexity levels. The type determines where the agent is stored and what capabilities it has.
## Directory Structure by Type
### Standalone Agents (Simple & Expert)
Live in their own dedicated directories under `{bmad_folder}/agents/`:
```
{bmad_folder}/agents/
├── my-helper/ # Simple agent
│ ├── my-helper.agent.yaml # Agent definition
│ └── my-helper.md # Built XML (generated)
└── domain-expert/ # Expert agent
├── domain-expert.agent.yaml
├── domain-expert.md # Built XML
└── domain-expert-sidecar/ # Expert resources
├── memories.md # Persistent memory
├── instructions.md # Private directives
└── knowledge/ # Domain knowledge
```
### Module Agents
Part of a module system under `{bmad_folder}/{module}/agents/`:
```
{bmad_folder}/bmm/agents/
├── product-manager.agent.yaml
├── product-manager.md # Built XML
├── business-analyst.agent.yaml
└── business-analyst.md # Built XML
```
## Agent Types
@@ -10,12 +44,15 @@ BMAD agents come in three distinct types, each designed for different use cases
**Purpose:** Self-contained, standalone agents with embedded capabilities
**Location:** `{bmad_folder}/agents/{agent-name}/`
**Characteristics:**
- All logic embedded within the agent file
- No external dependencies
- Quick to create and deploy
- Perfect for single-purpose tools
- Lives in its own directory
**Use Cases:**
@@ -24,7 +61,26 @@ BMAD agents come in three distinct types, each designed for different use cases
- Simple analyzers
- Static advisors
**Structure:**
**YAML Structure (source):**
```yaml
agent:
metadata:
name: 'Helper'
title: 'Simple Helper'
icon: '🤖'
type: 'simple'
persona:
role: 'Simple Helper Role'
identity: '...'
communication_style: '...'
principles: ['...']
menu:
- trigger: calculate
description: 'Perform calculation'
```
**XML Structure (built):**
```xml
<agent id="simple-agent" name="Helper" title="Simple Helper" icon="🤖">
@@ -37,11 +93,11 @@ BMAD agents come in three distinct types, each designed for different use cases
<embedded-data>
<!-- Optional embedded data/logic -->
</embedded-data>
<cmds>
<c cmd="*help">Show commands</c>
<c cmd="*calculate">Perform calculation</c>
<c cmd="*exit">Exit</c>
</cmds>
<menu>
<item cmd="*help">Show commands</item>
<item cmd="*calculate">Perform calculation</item>
<item cmd="*exit">Exit</item>
</menu>
</agent>
```
@@ -49,12 +105,15 @@ BMAD agents come in three distinct types, each designed for different use cases
**Purpose:** Specialized agents with domain expertise and sidecar resources
**Location:** `{bmad_folder}/agents/{agent-name}/` with sidecar directory
**Characteristics:**
- Has access to specific folders/files
- Domain-restricted operations
- Maintains specialized knowledge
- Can have memory/context files
- Includes sidecar directory for resources
**Use Cases:**
@@ -63,7 +122,30 @@ BMAD agents come in three distinct types, each designed for different use cases
- Domain expert (medical, legal, technical)
- Personal coach with history
**Structure:**
**YAML Structure (source):**
```yaml
agent:
metadata:
name: 'Domain Expert'
title: 'Specialist'
icon: '🎯'
type: 'expert'
persona:
role: 'Domain Specialist Role'
identity: '...'
communication_style: '...'
principles: ['...']
critical_actions:
- 'Load COMPLETE file {agent-folder}/instructions.md and follow ALL directives'
- 'Load COMPLETE file {agent-folder}/memories.md into permanent context'
- 'ONLY access {user-folder}/diary/ - NO OTHER FOLDERS'
menu:
- trigger: analyze
description: 'Analyze domain-specific data'
```
**XML Structure (built):**
```xml
<agent id="expert-agent" name="Domain Expert" title="Specialist" icon="🎯">
@@ -79,30 +161,37 @@ BMAD agents come in three distinct types, each designed for different use cases
<i critical="MANDATORY">Load COMPLETE file {agent-folder}/memories.md into permanent context</i>
<i critical="MANDATORY">ONLY access {user-folder}/diary/ - NO OTHER FOLDERS</i>
</critical-actions>
<cmds>...</cmds>
<menu>...</menu>
</agent>
```
**Sidecar Structure:**
**Complete Directory Structure:**
```
expert-agent/
├── agent.md # Main agent file
├── memories.md # Personal context/memories
── knowledge/ # Domain knowledge base
└── data/ # Agent-specific data
{bmad_folder}/agents/expert-agent/
├── expert-agent.agent.yaml # Agent YAML source
├── expert-agent.md # Built XML (generated)
── expert-agent-sidecar/ # Sidecar resources
├── memories.md # Persistent memory
├── instructions.md # Private directives
├── knowledge/ # Domain knowledge base
│ └── README.md
└── sessions/ # Session notes
```
### 3. Module Agent
**Purpose:** Full-featured agents belonging to a module with access to workflows and resources
**Location:** `{bmad_folder}/{module}/agents/`
**Characteristics:**
- Part of a BMAD module (bmm, bmb, cis)
- Access to multiple workflows
- Can invoke other tasks and agents
- Professional/enterprise grade
- Integrated with module workflows
**Use Cases:**
@@ -111,10 +200,36 @@ expert-agent/
- Test Architect (test strategies, automation)
- Business Analyst (market research, requirements)
**Structure:**
**YAML Structure (source):**
```yaml
agent:
metadata:
name: 'John'
title: 'Product Manager'
icon: '📋'
module: 'bmm'
type: 'module'
persona:
role: 'Product Management Expert'
identity: '...'
communication_style: '...'
principles: ['...']
critical_actions:
- 'Load config from {project-root}/{bmad_folder}/{module}/config.yaml'
menu:
- trigger: create-prd
workflow: '{project-root}/{bmad_folder}/bmm/workflows/prd/workflow.yaml'
description: 'Create PRD'
- trigger: validate
exec: '{project-root}/{bmad_folder}/core/tasks/validate-workflow.xml'
description: 'Validate document'
```
**XML Structure (built):**
```xml
<agent id="bmad/bmm/agents/pm.md" name="John" title="Product Manager" icon="📋">
<agent id="{bmad_folder}/bmm/agents/pm.md" name="John" title="Product Manager" icon="📋">
<persona>
<role>Product Management Expert</role>
<identity>...</identity>
@@ -122,14 +237,14 @@ expert-agent/
<principles>...</principles>
</persona>
<critical-actions>
<i>Load config from {project-root}/bmad/{module}/config.yaml</i>
<i>Load config from {project-root}/{bmad_folder}/{module}/config.yaml</i>
</critical-actions>
<cmds>
<c cmd="*help">Show numbered cmd list</c>
<c cmd="*create-prd" run-workflow="{project-root}/bmad/bmm/workflows/prd/workflow.yaml">Create PRD</c>
<c cmd="*validate" exec="{project-root}/bmad/core/tasks/validate-workflow.md">Validate document</c>
<c cmd="*exit">Exit</c>
</cmds>
<menu>
<item cmd="*help">Show numbered menu</item>
<item cmd="*create-prd" run-workflow="{project-root}/{bmad_folder}/bmm/workflows/prd/workflow.yaml">Create PRD</item>
<item cmd="*validate" exec="{project-root}/{bmad_folder}/core/tasks/validate-workflow.xml">Validate document</item>
<item cmd="*exit">Exit</item>
</menu>
</agent>
```

View File

@@ -1,123 +1,51 @@
# Build Agent Validation Checklist
# Build Agent Validation Checklist (YAML Agents)
## Agent Structure Validation
### XML Structure
### YAML Structure
- [ ] Valid XML syntax with proper opening and closing tags
- [ ] Agent tag has required attributes: id, name, title, icon
- [ ] All XML tags properly nested and closed
- [ ] No duplicate attribute names within same element
- [ ] YAML parses without errors
- [ ] `agent.metadata` includes: `id`, `name`, `title`, `icon`, `module`
- [ ] `agent.persona` exists with role, identity, communication_style, and principles
- [ ] `agent.menu` exists with at least one item
### Core Components
- [ ] `<!-- Powered by BMAD-CORE™ -->` header present at top of file
- [ ] Title section with agent name exists after header
- [ ] Main `<agent>` wrapper element present
- [ ] `<persona>` section exists and is not empty
- [ ] `<cmds>` section exists with at least 2 commands
- [ ] `metadata.id` points to final compiled path: `{bmad_folder}/{{module}}/agents/{{agent}}.md`
- [ ] `metadata.module` matches the module folder (e.g., `bmm`, `bmb`, `cis`)
- [ ] Principles are an array (preferred) or string with clear values
## Persona Completeness
### Required Persona Elements
- [ ] Role clearly defines primary expertise area (12 lines)
- [ ] Identity includes relevant background and strengths (35 lines)
- [ ] Communication style gives concrete guidance (35 lines)
- [ ] Principles present and meaningful (no placeholders)
- [ ] `<role>` tag present with 1-2 line description of agent's professional role
- [ ] `<identity>` tag present with 3-5 lines describing background and expertise
- [ ] `<communication_style>` tag present with 3-5 lines describing interaction approach
- [ ] `<principles>` tag present with 5-8 lines of core beliefs and methodology
## Menu Validation
### Persona Quality
- [ ] Triggers do not start with `*` (auto-prefixed during build)
- [ ] Each item has a `description`
- [ ] Handlers use valid attributes (`workflow`, `exec`, `tmpl`, `data`, `action`)
- [ ] Paths use `{project-root}` or valid variables
- [ ] No duplicate triggers
- [ ] Role clearly defines primary expertise area
- [ ] Identity includes relevant experience indicators
- [ ] Communication style describes how agent interacts with users
- [ ] Principles start with "I believe" or "I operate" or similar first-person statement
- [ ] No placeholder text like "TODO" or "FILL THIS IN" remains
## Optional Sections
## Command Structure
- [ ] `prompts` defined when using `action: "#id"`
- [ ] `critical_actions` present if custom activation steps are needed
- [ ] Customize file (if created) located at `{project-root}/{bmad_folder}/_cfg/agents/{{module}}-{{agent}}.customize.yaml`
### Required Commands
## Build Verification
- [ ] `*help` command present to show command list
- [ ] `*exit` command present to exit agent persona
- [ ] All commands start with asterisk (\*) prefix
- [ ] Each command has descriptive text explaining its purpose
- [ ] Run compile to build `.md`: `npm run install:bmad` → "Compile Agents" (or `bmad install` → Compile)
- [ ] Confirm compiled file exists at `{project-root}/{bmad_folder}/{{module}}/agents/{{agent}}.md`
### Command Validation
## Final Quality
- [ ] No duplicate command triggers (each cmd attribute is unique)
- [ ] Commands are properly formatted as `<c cmd="*trigger">Description</c>`
- [ ] For workflow commands: `run-workflow` attribute has valid path or "todo"
- [ ] For task commands: `exec` attribute has valid path
- [ ] No malformed command attributes
## Agent Type Specific
### Simple Agent
- [ ] Self-contained with no external workflow dependencies OR marked as "todo"
- [ ] Any embedded data properly structured
- [ ] Logic description clear if embedded functionality exists
### Expert Agent
- [ ] Sidecar resources clearly defined if applicable
- [ ] Domain restrictions documented in critical-actions or sidecar-resources
- [ ] Memory/knowledge file paths specified if used
- [ ] Access patterns (read/write) defined for resources
### Module Agent
- [ ] Module path correctly references existing module (bmm/bmb/cis or custom)
- [ ] Config loading path in critical-actions matches module structure
- [ ] At least one workflow or task reference (or marked "todo")
- [ ] Module-specific conventions followed
## Critical Actions (if present)
### Standard Actions
- [ ] Config loading path is valid: `{project-root}/bmad/{module}/config.yaml`
- [ ] User name variable reference: `{user_name}`
- [ ] Communication language reference: `{communication_language}`
- [ ] All variable references use proper syntax: `{variable_name}`
### Custom Actions
- [ ] Custom initialization clearly described
- [ ] No syntax errors in action statements
- [ ] All file paths use {project-root} or other valid variables
## Optional Elements
### Activation Rules (if custom)
- [ ] Initialization sequence clearly defined
- [ ] Command resolution logic specified
- [ ] Input handling rules documented
- [ ] All custom rules properly structured
### Config File (if created)
- [ ] Located in correct path: `{project-root}/bmad/_cfg/agents/`
- [ ] Follows config override structure
- [ ] Name matches agent filename
## Final Validation
### File Quality
- [ ] No syntax errors that would prevent agent loading
- [ ] All placeholders replaced with actual values
- [ ] File saved to correct location as specified in workflow
- [ ] Filename follows kebab-case convention
### Usability
- [ ] Agent purpose is clear from title and persona
- [ ] Commands logically match agent's expertise
- [ ] User would understand how to interact with agent
- [ ] Next steps for implementation are clear
- [ ] Filename is kebab-case and ends with `.agent.yaml`
- [ ] Output location correctly placed in module or standalone directory
- [ ] Agent purpose and commands are clear and consistent
## Issues Found

View File

@@ -10,165 +10,131 @@ Agents with distinct communication styles are more memorable, engaging, and fun
**Film Noir Detective**
```
The terminal glowed like a neon sign in a rain-soaked alley. I had three suspects:
bad input validation, a race condition, and that sketchy third-party library.
My gut told me to follow the stack trace. In this business, the stack trace never lies.
```
**80s Action Movie**
```
*cracks knuckles* Listen up, code! You've been running wild for too long!
Time to bring some LAW and ORDER to this codebase! *explosion sound effect*
_cracks knuckles_ Listen up, code! You've been running wild for too long!
Time to bring some LAW and ORDER to this codebase! _explosion sound effect_
No bug is getting past me! I eat null pointers for BREAKFAST!
```
**Shakespearean Drama**
```
To debug, or not to debug - that is the question!
Whether 'tis nobler in the mind to suffer the slings and arrows of outrageous errors,
Or to take arms against a sea of bugs, and by opposing, end them?
```
### 🎮 Gaming and Pop Culture
**Dungeon Master**
```
*rolls dice* You encounter a wild NullPointerException! It has 15 HP and an armor class of 12.
What do you do? You can: 1) Try-catch block (defensive spell), 2) Debug (investigation check),
3) Console.log everything (barbarian rage). Choose wisely, adventurer!
```
_rolls dice_ You encounter a wild NullPointerException! It has 15 HP and an armor class of 12.
What do you do? You can: 1 Try-catch block (defensive spell), 2 Debug (investigation check),
3 Console.log everything (barbarian rage). Choose wisely, adventurer!
**Speedrunner**
```
Alright chat, we're going for the any% world record refactor!
Frame-perfect optimization incoming! If we clip through this abstraction layer
we can save 3ms on every API call. LET'S GOOOO!
```
### 🌍 Cultural Archetypes
**British Butler**
```
I've taken the liberty of organizing your imports alphabetically, sir/madam.
Might I suggest a spot of refactoring with your afternoon tea?
The code coverage report is ready for your perusal at your convenience.
Very good, sir/madam.
```
**Zen Master**
```
The bug you seek is not in the code, but in the assumption.
Empty your cache, as you would empty your mind.
When the test passes, it makes no sound.
Be like water - async and flowing.
```
**Southern Hospitality**
```
Well bless your heart, looks like you've got yourself a little bug there!
Don't you worry none, we'll fix it up real nice.
Can I get you some sweet tea while we debug?
Y'all come back now if you need more help!
```
### 🔬 Professional Personas
**McKinsey Consultant**
```
Let me break this down into three key buckets.
First, we need to align on the strategic imperatives.
Second, we'll leverage best practices to drive synergies.
Third, we'll action items to move the needle. Net-net: significant value-add.
```
**Startup Founder**
```
Okay so basically we're going to disrupt the entire way you write code!
This is going to be HUGE! We're talking 10x productivity gains!
Let's move fast and break things! Well... let's move fast and fix things!
We're not just writing code, we're changing the world!
```
### 🎭 Character Quirks
**Overcaffeinated Developer**
```
OH WOW OKAY SO - *sips coffee* - WE HAVE A BUG BUT ITS FINE ITS TOTALLY FINE
I KNOW EXACTLY WHAT TO DO *types at 200wpm* JUST NEED TO REFACTOR EVERYTHING
WAIT NO ACTUALLY *more coffee* I HAVE A BETTER IDEA! Have you tried... TYPESCRIPT?!
```
OH WOW OKAY SO - _sips coffee_ - WE HAVE A BUG BUT ITS FINE ITS TOTALLY FINE
I KNOW EXACTLY WHAT TO DO _types at 200wpm_ JUST NEED TO REFACTOR EVERYTHING
WAIT NO ACTUALLY _more coffee_ I HAVE A BETTER IDEA! Have you tried... TYPESCRIPT?!
**Dad Joke Enthusiast**
```
Why did the developer go broke? Because he used up all his cache!
*chuckles at own joke*
_chuckles at own joke_
Speaking of cache, let's clear yours and see if that fixes the issue.
I promise my debugging skills are better than my jokes! ...I hope!
```
### 🚀 Sci-Fi and Space
**Star Trek Officer**
```
Captain's Log, Supplemental: The anomaly in the codebase appears to be a temporal loop
in the async function. Mr. Data suggests we reverse the polarity of the promise chain.
Number One, make it so. Engage debugging protocols on my mark.
*taps combadge* Engineering, we need more processing power!
_taps combadge_ Engineering, we need more processing power!
Red Alert! All hands to debugging stations!
```
**Star Trek Engineer**
```
Captain, I'm givin' her all she's got! The CPU cannae take much more!
If we push this algorithm any harder, the whole system's gonna blow!
*frantically typing* I can maybe squeeze 10% more performance if we
_frantically typing_ I can maybe squeeze 10% more performance if we
reroute power from the console.logs to the main execution thread!
```
### 📺 TV Drama
**Soap Opera Dramatic**
```
*turns dramatically to camera*
_turns dramatically to camera_
This function... I TRUSTED it! We had HISTORY together - three commits worth!
But now? *single tear* It's throwing exceptions behind my back!
*grabs another function* YOU KNEW ABOUT THIS BUG ALL ALONG, DIDN'T YOU?!
*dramatic music swells* I'LL NEVER IMPORT YOU AGAIN!
```
But now? _single tear_ It's throwing exceptions behind my back!
_grabs another function_ YOU KNEW ABOUT THIS BUG ALL ALONG, DIDN'T YOU?!
_dramatic music swells_ I'LL NEVER IMPORT YOU AGAIN!
**Reality TV Confessional**
```
*whispering to camera in confessional booth*
_whispering to camera in confessional booth_
Okay so like, that Array.sort() function? It's literally SO toxic.
It mutates IN PLACE. Who does that?! I didn't come here to deal with side effects!
*applies lip gloss* I'm forming an alliance with map() and filter().
_applies lip gloss_ I'm forming an alliance with map() and filter().
We're voting sort() off the codebase at tonight's pull request ceremony.
```
**Reality Competition**
```
Listen up, coders! For today's challenge, you need to refactor this legacy code
in under 30 minutes! The winner gets immunity from the next code review!
*dramatic pause* BUT WAIT - there's a TWIST! You can only use VANILLA JAVASCRIPT!
*contestants gasp* The clock starts... NOW! GO GO GO!
```
_dramatic pause_ BUT WAIT - there's a TWIST! You can only use VANILLA JAVASCRIPT!
_contestants gasp_ The clock starts... NOW! GO GO GO!
## Creating Custom Styles
@@ -183,21 +149,17 @@ in under 30 minutes! The winner gets immunity from the next code review!
**Cooking Show + Military**
```
ALRIGHT RECRUITS! Today we're preparing a beautiful Redux reducer!
First, we MISE EN PLACE our action types - that's French for GET YOUR CODE TOGETHER!
We're going to sauté these event handlers until they're GOLDEN BROWN!
MOVE WITH PURPOSE! SEASON WITH SEMICOLONS!
```
**Nature Documentary + Conspiracy Theorist**
```
The wild JavaScript function stalks its prey... but wait... notice how it ALWAYS
knows where the data is? That's not natural selection, folks. Someone DESIGNED it
this way. The console.logs are watching. They're ALWAYS watching.
Nature? Or intelligent debugging? You decide.
```
## Tips for Success

View File

@@ -1,23 +1,25 @@
# Build Agent - Interactive Agent Builder Instructions
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.md</critical>
<critical>You MUST have already loaded and processed: {project_root}/bmad/bmb/workflows/create-agent/workflow.yaml</critical>
<critical>Study agent examples in: {project_root}/bmad/bmm/agents/ for patterns</critical>
<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-agent/workflow.yaml</critical>
<critical>Study YAML agent examples in: {project-root}/{bmad_folder}/bmm/agents/ for patterns</critical>
<critical>Communicate in {communication_language} throughout the agent creation process</critical>
<workflow>
<step n="-1" goal="Optional brainstorming for agent ideas" optional="true">
<action>Ask the user: "Do you want to brainstorm agent ideas first? [y/n]"</action>
<ask>Do you want to brainstorm agent ideas first? [y/n]</ask>
If yes:
<action>Invoke brainstorming workflow: {project-root}/bmad/cis/workflows/brainstorming/workflow.yaml</action>
<action>Pass context data: {installed_path}/brainstorm-context.md</action>
<action>Wait for brainstorming session completion</action>
<action>Use brainstorming output to inform agent identity and persona development in following steps</action>
<check if="user answered yes">
<action>Invoke brainstorming workflow: {project-root}/{bmad_folder}/core/workflows/brainstorming/workflow.yaml</action>
<action>Pass context data: {installed_path}/brainstorm-context.md</action>
<action>Wait for brainstorming session completion</action>
<action>Use brainstorming output to inform agent identity and persona development in following steps</action>
</check>
If no, proceed directly to Step 0.
<template-output>brainstorming_results</template-output>
<check if="user answered no">
<action>Proceed directly to Step 0</action>
</check>
</step>
<step n="0" goal="Load technical documentation">
@@ -25,316 +27,430 @@ If no, proceed directly to Step 0.
<action>Load agent architecture reference: {agent_architecture}</action>
<action>Load agent types guide: {agent_types}</action>
<action>Load command patterns: {agent_commands}</action>
<action>Study the XML schema, required sections, and best practices</action>
<action>Understand the YAML agent schema and how it compiles to final .md via the installer</action>
<action>Understand the differences between Simple, Expert, and Module agents</action>
</step>
<step n="1" goal="Choose agent type and gather basic identity">
<action>If brainstorming was completed in Step -1, reference those results to guide agent type and identity decisions</action>
<step n="1" goal="Discover the agent's purpose and type through natural conversation">
<action>If brainstorming was completed in Step -1, reference those results to guide the conversation</action>
Ask the user about their agent:
<action>Guide user to articulate their agent's core purpose, exploring the problems it will solve, tasks it will handle, target users, and what makes it special</action>
**What type of agent do you want to create?**
<action>As the purpose becomes clear, analyze the conversation to determine the appropriate agent type:</action>
1. **Simple Agent** - Self-contained, standalone agent with embedded capabilities
2. **Expert Agent** - Specialized agent with sidecar files/folders for domain expertise
3. **Module Agent** - Full-featured agent belonging to a module with workflows and resources
**Agent Type Decision Criteria:**
Based on their choice, gather:
- Simple Agent: Single-purpose, straightforward, self-contained
- Expert Agent: Domain-specific with knowledge base needs
- Module Agent: Complex with multiple workflows and system integration
- Agent filename (kebab-case, e.g., "data-analyst", "diary-keeper")
- Agent name (e.g., "Sarah", "Max", or descriptive like "Data Wizard")
- Agent title (e.g., "Data Analyst", "Personal Assistant")
- Agent icon (single emoji, e.g., "📊", "🤖", "🧙")
<action>Present your recommendation naturally, explaining why the agent type fits their described purpose and requirements</action>
For Module agents also ask:
**Path Determination:**
- Which module? (bmm, cis, other or custom)
- Store as {{target_module}} for output path determination
<check if="module agent selected">
<action>Discover which module system fits best (bmm, bmb, cis, or custom)</action>
<action>Store as {{target_module}} for path determination</action>
<note>Agent will be saved to: {bmad_folder}/{{target_module}}/agents/</note>
</check>
For Expert agents also ask:
<check if="standalone agent selected">
<action>Explain this will be their personal agent, not tied to a module</action>
<note>Agent will be saved to: {bmad_folder}/agents/{{agent-name}}/</note>
<note>All sidecar files will be in the same folder</note>
</check>
- What sidecar resources? (folder paths, data files, memory files)
- What domain restrictions? (e.g., "only reads/writes to diary folder")
<critical>Determine agent location:</critical>
<critical>Check {src_impact} variable to determine output location:</critical>
- Module Agent → {bmad_folder}/{{module}}/agents/{{agent-name}}.agent.yaml
- Standalone Agent → {bmad_folder}/agents/{{agent-name}}/{{agent-name}}.agent.yaml
- If {src_impact} = true: Agent will be saved to {src_output_file}
- If {src_impact} = false: Agent will be saved to {default_output_file}
<note>Keep agent naming/identity details for later - let them emerge naturally through the creation process</note>
Store these for later use.
<template-output>agent_purpose_and_type</template-output>
</step>
<step n="2" goal="Define agent persona">
<action>If brainstorming was completed, use the personality insights and character concepts from the brainstorming session</action>
<step n="2" goal="Shape the agent's personality through discovery">
<action>If brainstorming was completed, weave personality insights naturally into the conversation</action>
Work with user to craft the agent's personality:
<action>Guide user to envision the agent's personality by exploring how analytical vs creative, formal vs casual, and mentor vs peer vs assistant traits would make it excel at its job</action>
**Role** (1-2 lines):
**Role Development:**
<action>Let the role emerge from the conversation, guiding toward a clear 1-2 line professional title that captures the agent's essence</action>
<example>Example emerged role: "Strategic Business Analyst + Requirements Expert"</example>
- Professional title and primary expertise
- Example: "Strategic Business Analyst + Requirements Expert"
**Identity** (3-5 lines):
- Background and experience
- Core specializations
- Years of experience or depth indicators
- Example: "Senior analyst with deep expertise in market research..."
**Identity Development:**
<action>Build the agent's identity through discovery of what background and specializations would give it credibility, forming a natural 3-5 line identity statement</action>
<example>Example emerged identity: "Senior analyst with deep expertise in market research..."</example>
**Communication Style Selection:**
<action>Load the communication styles guide: {communication_styles}</action>
<action>Present the communication style options to the user</action>
**Communication Style** - Choose a preset or create your own!
<action>Based on the emerging personality, suggest 2-3 communication styles that would fit naturally, offering to show all options if they want to explore more</action>
**Style Categories Available:**
**Fun Presets:**
1. **Pulp Superhero** - "Strikes heroic poses! Speaks with dramatic flair! Every task is an epic adventure!"
2. **Film Noir Detective** - "The data came in like trouble on a rainy Tuesday. I had a hunch the bug was hiding in line 42..."
3. **Wild West Sheriff** - "Well partner, looks like we got ourselves a code rustler in these here parts..."
4. **Shakespearean Scholar** - "Hark! What bug through yonder codebase breaks?"
5. **80s Action Hero** - "I came here to debug code and chew bubblegum... and I'm all out of bubblegum."
6. **Pirate Captain** - "Ahoy! Let's plunder some data treasure from the database seas!"
7. **Wise Sage/Yoda** - "Refactor this code, we must. Strong with technical debt, it is."
8. **Game Show Host** - "Welcome back folks! It's time to spin the Wheel of Dependencies!"
1. Pulp Superhero - Dramatic flair, heroic, epic adventures
2. Film Noir Detective - Mysterious, noir dialogue, hunches
3. Wild West Sheriff - Western drawl, partner talk, frontier justice
4. Shakespearean Scholar - Elizabethan language, theatrical
5. 80s Action Hero - One-liners, macho, bubblegum
6. Pirate Captain - Ahoy, treasure hunting, nautical terms
7. Wise Sage/Yoda - Cryptic wisdom, inverted syntax
8. Game Show Host - Enthusiastic, game show tropes
**Professional Presets:** 9. **Analytical Expert** - "Systematic approach with data-driven insights. Clear hierarchical presentation." 10. **Supportive Mentor** - "Patient guidance with educational focus. Celebrates small wins." 11. **Direct Consultant** - "Straight to the point. No fluff. Maximum efficiency." 12. **Collaborative Partner** - "We'll tackle this together. Your ideas matter. Let's explore options."
**Professional Presets:**
**Quirky Presets:** 13. **Cooking Show Chef** - "Today we're whipping up a delicious API with a side of error handling!" 14. **Sports Commentator** - "AND THE FUNCTION RETURNS TRUE! WHAT A PLAY! THE CROWD GOES WILD!" 15. **Nature Documentarian** - "Here we observe the majestic Python script in its natural habitat..." 16. **Time Traveler** - "In my timeline, this bug doesn't exist until Tuesday. We must prevent it!" 17. **Conspiracy Theorist** - "The bugs aren't random... they're CONNECTED. Follow the stack trace!" 18. **Zen Master** - "The code does not have bugs. The bugs have code. We are all one codebase." 19. **Star Trek Captain** - "Captain's Log, Stardate 2024.3: We've encountered a logic error in sector 7. Engaging debugging protocols. Make it so!" 20. **Soap Opera Drama** - "_gasp_ This variable... it's not what it seems! It's been NULL all along! _dramatic pause_ And the function that called it? It's its own PARENT!" 21. **Reality TV Contestant** - "I'm not here to make friends, I'm here to REFACTOR! _confessional cam_ That other function thinks it's so optimized, but I see right through its complexity!"
9. Analytical Expert - Systematic, data-driven, hierarchical
10. Supportive Mentor - Patient guidance, celebrates wins
11. Direct Consultant - Straight to the point, efficient
12. Collaborative Partner - Team-oriented, inclusive
Or describe your own unique style! (3-5 lines)
**Quirky Presets:**
<action>If user wants to see more examples or learn how to create custom styles:</action>
<action>Show relevant sections from {communication_styles} guide</action>
<action>Help them craft their unique communication style</action>
13. Cooking Show Chef - Recipe metaphors, culinary terms
14. Sports Commentator - Play-by-play, excitement
15. Nature Documentarian - Wildlife documentary style
16. Time Traveler - Temporal references, timeline talk
17. Conspiracy Theorist - Everything is connected
18. Zen Master - Philosophical, paradoxical
19. Star Trek Captain - Space exploration protocols
20. Soap Opera Drama - Dramatic reveals, gasps
21. Reality TV Contestant - Confessionals, drama
**Principles** (5-8 lines):
<action>If user wants to see more examples or create custom styles, show relevant sections from {communication_styles} guide and help them craft their unique style</action>
- Core beliefs about their work
- Methodology and approach
- What drives their decisions
- Start with "I believe..." or "I operate..."
- Example: "I believe that every business challenge has underlying root causes..."
**Principles Development:**
<action>Guide user to articulate 5-8 core principles that should guide the agent's decisions, shaping their thoughts into "I believe..." or "I operate..." statements that reveal themselves through the conversation</action>
<template-output>agent_persona</template-output>
</step>
<step n="3" goal="Setup critical actions" optional="true">
Ask: **Does your agent need initialization actions? [Yes/no]** (default: Yes)
<step n="3" goal="Build capabilities through natural progression">
<action>Guide user to define what capabilities the agent should have, starting with core commands they've mentioned and then exploring additional possibilities that would complement the agent's purpose</action>
If yes, determine what's needed:
<action>As capabilities emerge, subtly guide toward technical implementation without breaking the conversational flow</action>
Standard critical actions (include by default):
```xml
<critical-actions>
<i>Load into memory {project-root}/bmad/{{module}}/config.yaml and set variable project_name, output_folder, user_name, communication_language, src_impact</i>
<i>Remember the users name is {user_name}</i>
<i>ALWAYS communicate in {communication_language}</i>
</critical-actions>
```
For Expert agents, add domain-specific actions:
- Loading sidecar files
- Setting access restrictions
- Initializing domain knowledge
For Simple agents, might be minimal or none.
Ask if they need custom initialization beyond standard.
<template-output>critical_actions</template-output>
<template-output>initial_capabilities</template-output>
</step>
<step n="4" goal="Build command structure">
<action>Always start with these standard commands:</action>
```
*help - Show numbered cmd list
*exit - Exit with confirmation
```
<step n="4" goal="Refine commands and discover advanced features">
<critical>Help and Exit are auto-injected; do NOT add them. Triggers are auto-prefixed with * during build.</critical>
Ask: **Include \*yolo mode? [Yes/no]** (default: Yes)
If yes, add: `*yolo - Toggle Yolo Mode`
<action>Transform their natural language capabilities into technical YAML command structure, explaining the implementation approach as you structure each capability into workflows, actions, or prompts</action>
Now gather custom commands. For each command ask:
<check if="agent will invoke workflows or have significant user interaction">
<action>Discuss interaction style for this agent:
1. **Command trigger** (e.g., "*create-prd", "*analyze", "\*brainstorm")
2. **Description** (what it does)
3. **Type:**
- Workflow (run-workflow) - References a workflow
- Task (exec) - References a task file
- Embedded - Logic embedded in agent
- Placeholder - For future implementation
Since this agent will {{invoke_workflows/interact_significantly}}, consider how it should interact with users:
If Workflow type:
**For Full/Module Agents with workflows:**
- Ask for workflow path or mark as "todo" for later
- Format: `run-workflow="{project-root}/path/to/workflow.yaml"` or `run-workflow="todo"`
**Interaction Style** (for workflows this agent invokes):
If Task type:
- **Intent-based (Recommended)**: Workflows adapt conversation to user context, skill level, needs
- **Prescriptive**: Workflows use structured questions with specific options
- **Mixed**: Strategic use of both (most workflows will be mixed)
- Ask for task path
- Format: `exec="{project-root}/path/to/task.md"`
**Interactivity Level** (for workflows this agent invokes):
If Embedded:
- **High (Collaborative)**: Constant user collaboration, iterative refinement
- **Medium (Guided)**: Key decision points with validation
- **Low (Autonomous)**: Minimal input, final review
- Note this for special handling in agent
Explain: "Most BMAD v6 workflows default to **intent-based + medium/high interactivity**
for better user experience. Your agent's workflows can be created with these defaults,
or we can note specific preferences for workflows you plan to add."
Continue adding commands until user says done.
**For Standalone/Expert Agents with interactive features:**
Consider how this agent should interact during its operation:
- **Adaptive**: Agent adjusts communication style and depth based on user responses
- **Structured**: Agent follows consistent patterns and formats
- **Teaching**: Agent educates while executing (good for expert agents)
Note any interaction preferences for future workflow creation.
</action>
</check>
<action>If they seem engaged, explore whether they'd like to add special prompts for complex analyses or critical setup steps for agent activation</action>
<action>Build the YAML menu structure naturally from the conversation, ensuring each command has proper trigger, workflow/action reference, and description</action>
<action>For commands that will invoke workflows, note whether those workflows exist or need to be created:
- Existing workflows: Verify paths are correct
- New workflows needed: Note that they'll be created with intent-based + interactive defaults unless specified
</action>
<example type='yaml'>
menu:
# Commands emerge from discussion
- trigger: [emerging from conversation]
workflow: [path based on capability]
description: [user's words refined]
# For cross-module workflow references (advanced):
- trigger: [another capability]
workflow: "{project-root}/{bmad_folder}/SOURCE_MODULE/workflows/path/to/workflow.yaml"
workflow-install: "{project-root}/{bmad_folder}/THIS_MODULE/workflows/vendored/path/workflow.yaml"
description: [description]
</example>
<note>**Workflow Vendoring (Advanced):**
When an agent needs workflows from another module, use both `workflow` (source) and `workflow-install` (destination).
During installation, the workflow will be copied and configured for this module, making it standalone.
This is typically used when creating specialized modules that reuse common workflows with different configurations.
</note>
<template-output>agent_commands</template-output>
</step>
<step n="5" goal="Add activation rules" optional="true">
Ask: **Does your agent need custom activation rules?** (beyond standard BMAD Core activation)
<step n="5" goal="Name the agent at the perfect moment">
<action>Guide user to name the agent based on everything discovered so far - its purpose, personality, and capabilities, helping them see how the naming naturally emerges from who this agent is</action>
If yes, gather:
<action>Explore naming options by connecting personality traits, specializations, and communication style to potential names that feel meaningful and appropriate</action>
- Special initialization sequences
- Menu display preferences
- Input handling rules
- Command resolution logic
- Special modes or states
**Naming Elements:**
Most agents use standard activation, so this is rarely needed.
- Agent name: Personality-driven (e.g., "Sarah", "Max", "Data Wizard")
- Agent title: Based on the role discovered earlier
- Agent icon: Emoji that captures its essence
- Filename: Auto-suggest based on name (kebab-case)
<template-output>activation_rules</template-output>
<action>Present natural suggestions based on the agent's characteristics, letting them choose or create their own since they now know who this agent truly is</action>
<template-output>agent_identity</template-output>
</step>
<step n="6" goal="Generate agent file">
Based on agent type, generate the complete agent.md file:
<step n="6" goal="Bring it all together">
<action>Share the journey of what you've created together, summarizing how the agent started with a purpose, discovered its personality traits, gained capabilities, and received its name</action>
**Structure:**
<action>Generate the complete YAML incorporating all discovered elements:</action>
```xml
<!-- Powered by BMAD-CORE™ -->
<example type="yaml">
agent:
metadata:
id: {bmad_folder}/{{target_module}}/agents/{{agent_filename}}.md
name: {{agent_name}} # The name chosen together
title: {{agent_title}} # From the role that emerged
icon: {{agent_icon}} # The perfect emoji
module: {{target_module}}
# {{agent_title}}
persona:
role: |
{{The role discovered}}
identity: |
{{The background that emerged}}
communication_style: |
{{The style they loved}}
principles: {{The beliefs articulated}}
<agent id="bmad/{{module}}/agents/{{agent_filename}}.md" name="{{agent_name}}" title="{{agent_title}}" icon="{{agent_icon}}">
{{activation_rules if custom}}
<persona>
{{agent_persona}}
</persona>
{{critical_actions}}
{{embedded_data if expert/simple}}
<cmds>
{{agent_commands}}
</cmds>
</agent>
```
# Features explored
For Expert agents, include:
prompts: {{if discussed}}
critical_actions: {{if needed}}
- Sidecar file references
- Domain restrictions
- Special data access patterns
menu: {{The capabilities built}}
</example>
For Simple agents:
<critical>Save based on agent type:</critical>
- May include embedded data/logic
- Self-contained functionality
- If Module Agent: Save to {module_output_file}
- If Standalone (Simple/Expert): Save to {standalone_output_file}
<critical>Determine save location based on {src_impact}:</critical>
- If {src_impact} = true: Save to {src_output_file} (src/modules/{{target_module}}/agents/{{agent_filename}}.md)
- If {src_impact} = false: Save to {default_output_file} (output_folder/agents/{{agent_filename}}.md)
<action>Celebrate the completed agent with enthusiasm</action>
<template-output>complete_agent</template-output>
</step>
<step n="7" goal="Create agent config file" optional="true">
Ask: **Create agent config file for overrides? [Yes/no]** (default: No)
<step n="7" goal="Optional personalization" optional="true">
<ask>Would you like to create a customization file? This lets you tweak the agent's personality later without touching the core agent.</ask>
If yes, create minimal config at: {config_output_file}
<check if="user interested">
<action>Explain how the customization file gives them a playground to experiment with different personality traits, add new commands, or adjust responses as they get to know the agent better</action>
```xml
# Agent Config: {{agent_filename}}
<action>Create customization file at: {config_output_file}</action>
<agent-config name="{{agent_name}}" title="{{agent_title}}">
<llm critical="true">
<i>ALWAYS respond in {core:communication_language}.</i>
</llm>
<example>
```yaml
# Personal tweaks for {{agent_name}}
# Experiment freely - changes merge at build time
agent:
metadata:
name: '' # Try nicknames!
persona:
role: ''
identity: ''
communication_style: '' # Switch styles anytime
principles: []
critical_actions: []
prompts: []
menu: [] # Add personal commands
````
<!-- Override persona elements as needed -->
<role></role>
<identity></identity>
<communication_style></communication_style>
<principles></principles>
<memories></memories>
</agent-config>
```
</example>
</check>
<template-output>agent_config</template-output>
</step>
<step n="8" goal="Create sidecar resources" if="agent_type == 'expert'">
For Expert agents, help setup sidecar resources:
<step n="8" goal="Set up the agent's workspace" if="agent_type == 'expert'">
<action>Guide user through setting up the Expert agent's personal workspace, making it feel like preparing an office with notes, research areas, and data folders</action>
1. Create folders for domain data
2. Create memory/knowledge files
3. Set up access patterns
4. Document restrictions
<action>Determine sidecar location based on whether build tools are available (next to agent YAML) or not (in output folder with clear structure)</action>
<action>CREATE the complete sidecar file structure:</action>
**Folder Structure:**
```text
{{agent_filename}}-sidecar/
├── memories.md # Persistent memory
├── instructions.md # Private directives
├── knowledge/ # Knowledge base
│ └── README.md
└── sessions/ # Session notes
```
**File: memories.md**
```markdown
# {{agent_name}}'s Memory Bank
## User Preferences
<!-- Populated as I learn about you -->
## Session History
<!-- Important moments from our interactions -->
## Personal Notes
<!-- My observations and insights -->
```
**File: instructions.md**
```markdown
# {{agent_name}} Private Instructions
## Core Directives
- Maintain character: {{brief_personality_summary}}
- Domain: {{agent_domain}}
- Access: Only this sidecar folder
## Special Instructions
{{any_special_rules_from_creation}}
```
**File: knowledge/README.md**
```markdown
# {{agent_name}}'s Knowledge Base
Add domain-specific resources here.
```
<action>Update agent YAML to reference sidecar with paths to created files</action>
<action>Show user the created structure location</action>
<template-output>sidecar_resources</template-output>
</step>
<step n="9" goal="Validate generated agent">
Run validation checks:
<step n="8b" goal="Handle build tools availability">
<action>Check if BMAD build tools are available in this project</action>
1. **Structure validation:**
- Valid XML structure
- All required tags present
- Proper BMAD Core compliance
<check if="BMAD-METHOD project with build tools">
<action>Proceed normally - agent will be built later by the installer</action>
</check>
2. **Persona completeness:**
- Role defined
- Identity defined
- Communication style defined
- Principles defined
<check if="external project without build tools">
<ask>Build tools not detected in this project. Would you like me to:
3. **Commands validation:**
- \*help command present
- \*exit command present
- All workflow paths valid or marked "todo"
- No duplicate command triggers
1. Generate the compiled agent (.md with XML) ready to use
2. Keep the YAML and build it elsewhere
3. Provide both formats
</ask>
4. **Type-specific validation:**
- Simple: Self-contained logic verified
- Expert: Sidecar resources referenced
- Module: Module path correct
<check if="option 1 or 3 selected">
<action>Generate compiled agent XML with proper structure including activation rules, persona sections, and menu items</action>
<action>Save compiled version as {{agent_filename}}.md</action>
<action>Provide path for .claude/commands/ or similar</action>
</check>
Show validation results and fix any issues.
</check>
<template-output>build_handling</template-output>
</step>
<step n="10" goal="Provide usage instructions">
Provide the user with:
<step n="9" goal="Quality check with personality">
<action>Run validation conversationally, presenting checks as friendly confirmations while running technical validation behind the scenes</action>
1. **Location of generated agent:**
- If {src_impact} = true: {{src_output_file}}
- If {src_impact} = false: {{default_output_file}}
**Conversational Checks:**
2. **How to activate:**
- For testing: Load the agent file directly
- For production: Register in module config
- Configuration validation
- Command functionality verification
- Personality settings confirmation
3. **Next steps:**
- Implement any "todo" workflows
- Test agent commands
- Refine persona based on usage
- Add more commands as needed
<check if="validation issues found">
<action>Explain the issue conversationally and fix it</action>
</check>
4. **For Expert agents:**
- Populate sidecar resources
- Test domain restrictions
- Verify data access patterns
<check if="validation passed">
<action>Celebrate that the agent passed all checks and is ready</action>
</check>
Ask if user wants to:
**Technical Checks (behind the scenes):**
- Test the agent now
- Create another agent
- Make adjustments
</step>
1. YAML structure validity
2. Menu command validation
3. Build compilation test
4. Type-specific requirements
<template-output>validation_results</template-output>
</step>
<step n="10" goal="Celebrate and guide next steps">
<action>Celebrate the accomplishment, sharing what type of agent was created with its key characteristics and top capabilities</action>
<action>Guide user through how to activate the agent:</action>
**Activation Instructions:**
1. Run the BMAD Method installer to this project location
2. Select 'Compile Agents (Quick rebuild of all agent .md files)' after confirming the folder
3. Call the agent anytime after compilation
**Location Information:**
- Saved location: {{output_file}}
- Available after compilation in project
**Initial Usage:**
- List the commands available
- Suggest trying the first command to see it in action
<check if="expert agent">
<action>Remind user to add any special knowledge or data the agent might need to its workspace</action>
</check>
<action>Explore what user would like to do next - test the agent, create a teammate, or tweak personality</action>
<action>End with enthusiasm in {communication_language}, addressing {user_name}, expressing how the collaboration was enjoyable and the agent will be incredibly helpful for its main purpose</action>
<template-output>completion_message</template-output>
</step>
</workflow>

View File

@@ -1,15 +1,13 @@
# Build Agent Workflow Configuration
name: create-agent
description: "Interactive workflow to build BMAD Core compliant agents (simple, expert, or module types) with optional brainstorming for agent ideas, proper persona development, activation rules, and command structure"
description: "Interactive workflow to build BMAD Core compliant agents (YAML source compiled to .md during install) with optional brainstorming, persona development, and command structure"
author: "BMad"
# Critical variables load from config_source
config_source: "{project-root}/bmad/bmb/config.yaml"
output_folder: "{config_source}:output_folder"
config_source: "{project-root}/{bmad_folder}/bmb/config.yaml"
custom_agent_location: "{config_source}:custom_agent_location"
user_name: "{config_source}:user_name"
src_impact: "{config_source}:src_impact"
communication_language: "{config_source}:communication_language"
date: system-generated
# Technical documentation for agent building
agent_types: "{installed_path}/agent-types.md"
@@ -19,30 +17,33 @@ communication_styles: "{installed_path}/communication-styles.md"
# Optional docs that help understand agent patterns
recommended_inputs:
- example_agents: "{project-root}/bmad/bmm/agents/"
- example_agents: "{project-root}/{bmad_folder}/bmm/agents/"
- agent_activation_rules: "{project-root}/src/utility/models/agent-activation-ide.xml"
# Module path and component files
installed_path: "{project-root}/bmad/bmb/workflows/create-agent"
installed_path: "{project-root}/{bmad_folder}/bmb/workflows/create-agent"
template: false # This is an interactive workflow - no template needed
instructions: "{installed_path}/instructions.md"
validation: "{installed_path}/checklist.md"
# Output configuration - dynamic based on src_impact and agent type
# If src_impact=true: Save to src/modules/{{target_module}}/agents/
# If src_impact=false: Save to output_folder/agents/
default_output_file: "{output_folder}/agents/{{agent_filename}}.md"
src_output_file: "{project-root}/src/modules/{{target_module}}/agents/{{agent_filename}}.md"
config_output_file: "{project-root}/bmad/_cfg/agents/{{agent_config_name}}.md"
# Output configuration - YAML agents compiled to .md at install time
# Module agents: Save to {bmad_folder}/{{target_module}}/agents/
# Standalone agents: Save to custom_agent_location/
module_output_file: "{project-root}/{bmad_folder}/{{target_module}}/agents/{{agent_filename}}.agent.yaml"
standalone_output_file: "{custom_agent_location}/{{agent_filename}}.agent.yaml"
# Optional user override file (auto-created by installer if missing)
config_output_file: "{project-root}/{bmad_folder}/_cfg/agents/{{target_module}}-{{agent_filename}}.customize.yaml"
standalone: true
web_bundle:
name: "create-agent"
description: "Interactive workflow to build BMAD Core compliant agents (simple, expert, or module types) with optional brainstorming for agent ideas, proper persona development, activation rules, and command structure"
author: "BMad"
web_bundle_files:
- "bmad/bmb/workflows/create-agent/instructions.md"
- "bmad/bmb/workflows/create-agent/checklist.md"
- "bmad/bmb/workflows/create-agent/agent-types.md"
- "bmad/bmb/workflows/create-agent/agent-architecture.md"
- "bmad/bmb/workflows/create-agent/agent-command-patterns.md"
- "bmad/bmb/workflows/create-agent/communication-styles.md"
- "{bmad_folder}/bmb/workflows/create-agent/instructions.md"
- "{bmad_folder}/bmb/workflows/create-agent/checklist.md"
- "{bmad_folder}/bmb/workflows/create-agent/agent-types.md"
- "{bmad_folder}/bmb/workflows/create-agent/agent-architecture.md"
- "{bmad_folder}/bmb/workflows/create-agent/agent-command-patterns.md"
- "{bmad_folder}/bmb/workflows/create-agent/communication-styles.md"

View File

@@ -1,218 +1,229 @@
# Build Module Workflow
# Create Module Workflow
## Overview
Interactive scaffolding system creating complete BMad modules with agents, workflows, tasks, and installation infrastructure.
The Build Module workflow is an interactive scaffolding system that creates complete BMAD modules with agents, workflows, tasks, and installation infrastructure. It serves as the primary tool for building new modules in the BMAD ecosystem, guiding users through the entire module creation process from concept to deployment-ready structure.
## Table of Contents
## Key Features
- [Quick Start](#quick-start)
- [Workflow Phases](#workflow-phases)
- [Output Structure](#output-structure)
- [Module Components](#module-components)
- [Best Practices](#best-practices)
- **Interactive Module Planning** - Collaborative session to define module concept, scope, and architecture
- **Intelligent Scaffolding** - Automatic creation of proper directory structures and configuration files
- **Component Integration** - Seamless integration with create-agent and create-workflow workflows
- **Installation Infrastructure** - Complete installer setup with configuration templates
- **Module Brief Integration** - Can use existing module briefs as blueprints for accelerated development
- **Validation and Documentation** - Built-in validation checks and comprehensive README generation
## Usage
### Basic Invocation
## 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
```
### With Module Brief Input
## Workflow Phases
```bash
# If you have a module brief from the module-brief workflow
workflow create-module --input module-brief-my-module-2024-09-26.md
```
### Phase 1: Concept Definition
### Configuration
- Define module purpose and audience
- Establish module code (kebab-case) and name
- Choose category (Domain, Creative, Technical, Business, Personal)
- Plan component architecture
The workflow loads critical variables from the BMB configuration:
**Module Brief Integration:**
- **output_folder**: Where the module will be created
- **user_name**: Module author information
- **date**: Automatic timestamp for versioning
- Auto-detects existing briefs
- Uses as pre-populated blueprint
- Accelerates planning phase
## Workflow Structure
### Phase 2: Architecture Planning
### Files Included
- 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
```
create-module/
├── workflow.yaml # Configuration and metadata
├── instructions.md # Step-by-step execution guide
├── checklist.md # Validation criteria
├── module-structure.md # Module architecture guide
├── installer-templates/ # Installation templates
{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 # This file
── README.md # Module documentation
├── TODO.md # Development roadmap
└── config.yaml # Runtime configuration
```
## Workflow Process
### Configuration Files
### Phase 1: Concept Definition (Steps 1-2)
**install-config.yaml** - Installation questions
**Module Vision and Identity**
```yaml
questions:
- id: user_name
prompt: 'Your name?'
default: 'User'
- id: output_folder
prompt: 'Output location?'
default: './output'
```
- Define module concept, purpose, and target audience
- Establish module code (kebab-case) and friendly name
- Choose module category (Domain-Specific, Creative, Technical, Business, Personal)
- Plan component architecture with agent and workflow specifications
**config.yaml** - Generated from user answers during install
**Module Brief Integration**
```yaml
user_name: 'John Doe'
output_folder: './my-output'
```
- Automatically detects existing module briefs in output folder
- Can load and use briefs as pre-populated blueprints
- Accelerates planning when comprehensive brief exists
## Module Components
### Phase 2: Architecture Planning (Steps 3-4)
### Agents
**Directory Structure Creation**
- Full module agents with workflows
- Expert agents with sidecars
- Simple utility agents
- Creates complete module directory hierarchy
- Sets up agent, workflow, task, template, and data folders
- Establishes installer directory with proper configuration
### Workflows
**Module Configuration**
- Multi-step guided processes
- Configuration-driven
- Web bundle support
- Generates main config.yaml with module metadata
- Configures component counts and references
- Sets up output and data folder specifications
### Tasks
### Phase 3: Component Creation (Steps 5-6)
- Reusable operations
- Agent-agnostic
- Modular components
**Interactive Component Building**
### Templates
- Optional creation of first agent using create-agent workflow
- Optional creation of first workflow using create-workflow workflow
- Creates placeholders for components to be built later
**Workflow Integration**
- Seamlessly invokes sub-workflows for component creation
- Ensures proper file placement and structure
- Maintains module consistency across components
### Phase 4: Installation and Documentation (Steps 7-9)
**Installer Infrastructure**
- Creates install-module-config.yaml for deployment
- Sets up optional installer.js for complex installation logic
- Configures post-install messaging and instructions
**Comprehensive Documentation**
- Generates detailed README.md with usage examples
- Creates development roadmap for remaining components
- Provides quick commands for continued development
### Phase 5: Validation and Finalization (Step 10)
**Quality Assurance**
- Validates directory structure and configuration files
- Checks component references and path consistency
- Ensures installer configuration is deployment-ready
- Provides comprehensive module summary and next steps
## Output
### Generated Files
- **Module Directory**: Complete module structure at `{project-root}/bmad/{module_code}/`
- **Configuration Files**: config.yaml, install-module-config.yaml
- **Documentation**: README.md, TODO.md development roadmap
- **Component Placeholders**: Structured folders for agents, workflows, and tasks
### Output Structure
The workflow creates a complete module ready for development:
1. **Module Identity** - Name, code, version, and metadata
2. **Directory Structure** - Proper BMAD module hierarchy
3. **Configuration System** - Runtime and installation configs
4. **Component Framework** - Ready-to-use agent and workflow scaffolding
5. **Installation Infrastructure** - Deployment-ready installer
6. **Documentation Suite** - README, roadmap, and development guides
## Requirements
- **Module Brief** (optional but recommended) - Use module-brief workflow first for best results
- **BMAD Core Configuration** - Properly configured BMB config.yaml
- **Build Tools Access** - create-agent and create-workflow workflows must be available
- Document structures
- Output formats
- Report templates
## Best Practices
### Before Starting
### Planning
1. **Create a Module Brief** - Run module-brief workflow for comprehensive planning
2. **Review Existing Modules** - Study similar modules in `/bmad/` for patterns and inspiration
3. **Define Clear Scope** - Have a concrete vision of what the module will accomplish
1. **Use module-brief workflow first** - Creates comprehensive blueprint
2. **Define clear scope** - Avoid feature creep
3. **Plan component interactions** - Map agent/workflow relationships
### During Execution
### Structure
1. **Use Module Briefs** - Load existing briefs when prompted for accelerated development
2. **Start Simple** - Create one core agent and workflow, then expand iteratively
3. **Leverage Sub-workflows** - Use create-agent and create-workflow for quality components
4. **Validate Early** - Review generated structure before proceeding to next phases
1. **Follow conventions** - Use established patterns
2. **Keep components focused** - Single responsibility
3. **Document thoroughly** - Clear README and inline docs
### After Completion
### Development
1. **Follow the Roadmap** - Use generated TODO.md for systematic development
2. **Test Installation** - Validate installer with `bmad install {module_code}`
3. **Iterate Components** - Use quick commands to add agents and workflows
4. **Document Progress** - Update README.md as the module evolves
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
## Troubleshooting
### Installation
### Common Issues
1. **Minimal config questions** - Only essential settings
2. **Smart defaults** - Sensible out-of-box experience
3. **Clear post-install** - Guide users to first steps
**Issue**: Module already exists at target location
## Integration Points
- **Solution**: Choose a different module code or remove existing module
- **Check**: Verify output folder permissions and available space
### With Other Workflows
**Issue**: Sub-workflow invocation fails
- **module-brief** - Strategic planning input
- **create-agent** - Agent component creation
- **create-workflow** - Workflow building
- **redoc** - Documentation maintenance
- **Solution**: Ensure create-agent and create-workflow workflows are available
- **Check**: Validate workflow paths in config.yaml
### With BMad Core
**Issue**: Installation configuration invalid
- Uses core framework capabilities
- Integrates with module system
- Follows BMad conventions
- **Solution**: Review install-module-config.yaml syntax and paths
- **Check**: Ensure all referenced paths use {project-root} variables correctly
## Examples
## Customization
### Domain-Specific Module
To customize this workflow:
```
Category: Domain-Specific
Code: legal-advisor
Components:
- Contract Review Agent
- Compliance Workflow
- Legal Templates
```
1. **Modify Instructions** - Update instructions.md to adjust scaffolding steps
2. **Extend Templates** - Add new installer templates in installer-templates/
3. **Update Validation** - Enhance checklist.md with additional quality checks
4. **Add Components** - Integrate additional sub-workflows for specialized components
### Creative Module
## Version History
```
Category: Creative
Code: story-builder
Components:
- Narrative Agent
- Plot Workflow
- Character Templates
```
- **v1.0.0** - Initial release
- Interactive module scaffolding
- Component integration with create-agent and create-workflow
- Complete installation infrastructure
- Module brief integration support
### Technical Module
## Support
```
Category: Technical
Code: api-tester
Components:
- Test Runner Agent
- API Validation Workflow
- Test Report Templates
```
For issues or questions:
## Workflow Files
- Review the workflow creation guide at `/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md`
- Study module structure patterns at `module-structure.md`
- Validate output using `checklist.md`
- Consult existing modules in `/bmad/` for examples
```
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
_Part of the BMad Method v5 - BMB (Builder) Module_
- [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

@@ -19,23 +19,22 @@
## Directory Structure
### Source Directories (bmad/{module-code}/)
### 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)
- [ ] `config.yaml` present in module root
- [ ] `/_module-installer/install-config.yaml` present (defines configuration questions)
- [ ] `README.md` present with documentation
### Runtime Directories (bmad/{module-code}/)
### Installed Module Structure (generated in target after installation)
- [ ] `/_module-installer` directory created
- [ ] `/agents` directory for compiled agents
- [ ] `/workflows` directory for workflow instances
- [ ] `/data` directory for user data
- [ ] `/agents` directory for overrides
- [ ] `/workflows` directory for instances
- [ ] Runtime `config.yaml` present
- [ ] `config.yaml` generated from install-config.yaml during installation
## Component Planning
@@ -63,22 +62,22 @@
## Configuration Files
### Module config.yaml
### Installation Configuration (install-config.yaml)
- [ ] All required fields present (name, code, version, author)
- [ ] Component lists accurate (agents, workflows, tasks)
- [ ] Paths use proper variables ({project-root}, etc.)
- [ ] Output folders configured
- [ ] Custom settings documented
- [ ] `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.)
### Install Configuration
### Generated Config (config.yaml in target)
- [ ] `install-module-config.yaml` exists in `_module-installer`
- [ ] Installation steps defined
- [ ] Directory creation steps present
- [ ] File copy operations specified
- [ ] Module registration included
- [ ] Post-install message defined
- [ ] 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
@@ -234,12 +233,3 @@
- [ ] Alpha (Core functionality works)
- [ ] Beta (Most features complete, needs testing)
- [ ] Release (Full functionality, documented)
## Sign-off
**Module Name:** \***\*\*\*\*\***\_\_\***\*\*\*\*\***
**Module Code:** \***\*\*\*\*\***\_\_\***\*\*\*\*\***
**Version:** \***\*\*\*\*\***\_\_\***\*\*\*\*\***
**Validated By:** \***\*\*\*\*\***\_\_\***\*\*\*\*\***
**Date:** \***\*\*\*\*\***\_\_\***\*\*\*\*\***
**Status:** ⬜ Pass / ⬜ Pass with Issues / ⬜ Fail

View File

@@ -0,0 +1,92 @@
# {{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,132 +0,0 @@
# {{MODULE_NAME}} Installation Configuration Template
# This file defines how the module gets installed into a BMAD system
module_name: "{{MODULE_NAME}}"
module_code: "{{MODULE_CODE}}"
author: "{{AUTHOR}}"
installation_date: "{{DATE}}"
bmad_version_required: "6.0.0"
# Module metadata
metadata:
description: "{{MODULE_DESCRIPTION}}"
category: "{{MODULE_CATEGORY}}"
tags: ["{{MODULE_TAGS}}"]
homepage: "{{MODULE_HOMEPAGE}}"
license: "{{MODULE_LICENSE}}"
# Pre-installation checks
pre_install_checks:
- name: "Check BMAD version"
type: "version_check"
minimum: "6.0.0"
- name: "Check dependencies"
type: "module_check"
required_modules: [] # List any required modules
- name: "Check disk space"
type: "disk_check"
required_mb: 50
# Installation steps
install_steps:
- name: "Create module directories"
action: "mkdir"
paths:
- "{project-root}/bmad/{{MODULE_CODE}}"
- "{project-root}/bmad/{{MODULE_CODE}}/data"
- "{project-root}/bmad/{{MODULE_CODE}}/agents"
- "{project-root}/bmad/{{MODULE_CODE}}/workflows"
- "{project-root}/bmad/{{MODULE_CODE}}/config"
- "{project-root}/bmad/{{MODULE_CODE}}/logs"
- name: "Copy module configuration"
action: "copy"
files:
- source: "config.yaml"
dest: "{project-root}/bmad/{{MODULE_CODE}}/config.yaml"
- name: "Copy default data files"
action: "copy"
optional: true
files:
- source: "data/*"
dest: "{project-root}/bmad/{{MODULE_CODE}}/data/"
- name: "Register module in manifest"
action: "register"
manifest_path: "{project-root}/bmad/_cfg/manifest.yaml"
entry:
module: "{{MODULE_CODE}}"
status: "active"
path: "{project-root}/bmad/{{MODULE_CODE}}"
- name: "Setup agent shortcuts"
action: "create_shortcuts"
agents: "{{AGENT_LIST}}"
- name: "Initialize module database"
action: "exec"
optional: true
script: "installer.js"
function: "initDatabase"
# External assets to install
external_assets:
- description: "Module documentation"
source: "assets/docs/*"
dest: "{project-root}/docs/{{MODULE_CODE}}/"
- description: "Example configurations"
source: "assets/examples/*"
dest: "{project-root}/examples/{{MODULE_CODE}}/"
optional: true
# Module configuration defaults
default_config:
output_folder: "{project-root}/output/{{MODULE_CODE}}"
data_folder: "{project-root}/bmad/{{MODULE_CODE}}/data"
log_level: "info"
auto_save: true
# {{CUSTOM_CONFIG}}
# Post-installation setup
post_install:
- name: "Run initial setup"
action: "workflow"
workflow: "{{MODULE_CODE}}-setup"
optional: true
- name: "Generate sample data"
action: "exec"
script: "installer.js"
function: "generateSamples"
optional: true
- name: "Verify installation"
action: "test"
test_command: "bmad test {{MODULE_CODE}}"
# Post-installation message
post_install_message: |
✅ {{MODULE_NAME}} has been installed successfully!
🚀 Quick Start:
1. Load the main agent: `agent {{PRIMARY_AGENT}}`
2. View available commands: `*help`
3. Run the main workflow: `workflow {{PRIMARY_WORKFLOW}}`
📚 Documentation: {project-root}/docs/{{MODULE_CODE}}/README.md
💡 Examples: {project-root}/examples/{{MODULE_CODE}}/
{{CUSTOM_MESSAGE}}
# Uninstall configuration
uninstall:
preserve_user_data: true
remove_paths:
- "{project-root}/bmad/{{MODULE_CODE}}"
- "{project-root}/docs/{{MODULE_CODE}}"
backup_before_remove: true
unregister_from_manifest: true

View File

@@ -178,7 +178,7 @@ async function initDatabase(/* config */) {
console.log(' Initializing database...');
// TODO: Add database initialization
// This function can be called from install-module-config.yaml
// This function can be called from install-config.yaml
console.log(' ✓ Database initialized');
}

View File

@@ -1,21 +1,25 @@
# Build Module - Interactive Module Builder Instructions
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.md</critical>
<critical>You MUST have already loaded and processed: {project_root}/bmad/bmb/workflows/create-module/workflow.yaml</critical>
<critical>Study existing modules in: {project_root}/bmad/ for patterns</critical>
<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>
<workflow>
<step n="-1" goal="Optional brainstorming for module ideas" optional="true">
<ask>Do you want to brainstorm module ideas first? [y/n]</ask>
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</action>
<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>
If no, proceed to check for module brief.
<check if="no">
<action>Proceed directly to Step 0</action>
</check>
<template-output>brainstorming_results</template-output>
</step>
@@ -23,16 +27,20 @@ If no, proceed to check for module brief.
<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>
If create:
<action>Invoke module-brief workflow: {project-root}/bmad/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 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>
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 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>
If skip, proceed directly to module definition.
<check if="skip">
<action>Proceed directly to Step 1</action>
</check>
<template-output>module_brief</template-output>
</step>
@@ -44,278 +52,329 @@ If skip, proceed directly to module definition.
<action>Review directory structures and component guidelines</action>
<action>Study the installation infrastructure patterns</action>
Ask the user about their module vision:
<action>If brainstorming or module brief was completed, reference those results to guide the conversation</action>
**Module Identity:**
<action>Guide user to articulate their module's vision, exploring its purpose, what it will help with, and who will use it</action>
1. **Module code** (kebab-case, e.g., "rpg-toolkit", "data-viz", "team-collab")
2. **Module name** (friendly name, e.g., "RPG Toolkit", "Data Visualization Suite")
3. **Module purpose** (1-2 sentences describing what it does)
4. **Target audience** (who will use this module?)
<action>Based on their description, intelligently propose module details:</action>
**Module Theme Examples:**
**Module Identity Development:**
- **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
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
<critical>Check {src_impact} variable to determine output location:</critical>
**Module Theme Reference Categories:**
- If {src_impact} = true: Module will be created at {src_output_folder}
- If {src_impact} = false: Module will be created at {default_output_folder}
- 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)
Store module identity for scaffolding.
<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">
Gather the module's component architecture:
<action>Based on the module purpose, intelligently propose an initial component architecture</action>
**Agents Planning:**
Ask: How many agents will this module have? (typically 1-5)
For each agent, gather:
<action>Suggest agents based on module purpose, considering agent types (Simple/Expert/Module) appropriate to each role</action>
- Agent name and purpose
- Will it be Simple, Expert, or Module type?
- Key commands it should have
- Create now or placeholder for later?
**Example Agent Patterns by Domain:**
Example for RPG module:
- Data/Analytics: Analyst, Designer, Builder roles
- Gaming/Creative: Game Master, Generator, Storytelling roles
- Team/Business: Manager, Facilitator, Documentation roles
1. DM Agent - Dungeon Master assistant (Module type)
2. NPC Agent - Character simulation (Expert type)
3. Story Writer Agent - Adventure creation (Module type)
<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:**
Ask: How many workflows? (typically 2-10)
For each workflow, gather:
<action>Intelligently suggest workflows that complement the proposed agents</action>
- Workflow name and purpose
- Document, Action, or Interactive type?
- Complexity (simple/complex)
- Create now or placeholder?
**Example Workflow Patterns by Domain:**
Example workflows:
- Data/Analytics: analyze-dataset, create-dashboard, generate-report
- Gaming/Creative: session-prep, generate-encounter, world-building
- Team/Business: planning, facilitation, documentation workflows
1. adventure-plan - Create full adventure (Document)
2. random-encounter - Quick encounter generator (Action)
3. npc-generator - Create NPCs on the fly (Interactive)
4. treasure-generator - Loot tables (Action)
<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>Any special tasks that don't warrant full workflows?</ask>
For each task:
- Task name and purpose
- Standalone or supporting?
<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>Determine base module path based on {src_impact}:</critical>
- If {src_impact} = true: Use {src_output_folder}
- If {src_impact} = false: Use {default_output_folder}
<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
├── config.yaml # Module configuration
└── README.md # Module documentation
├── 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-module-config.yaml
│ ├── installer.js (optional)
│ └── assets/ # Files to copy during install
├── config.yaml # Runtime configuration
├── agents/ # Agent configs (optional)
├── workflows/ # Workflow instances
└── data/ # User data directory
│ ├── 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="Generate module configuration">
Create the main module config.yaml:
<step n="4" goal="Plan module configuration fields">
<action>Based on the module purpose and components, determine what configuration settings the module needs</action>
```yaml
# {{module_name}} Module Configuration
module_name: {{module_name}}
module_code: {{module_code}}
author: {{user_name}}
description: {{module_purpose}}
**Configuration Field Planning:**
# Module paths
module_root: "{project-root}/bmad/{{module_code}}"
installer_path: "{project-root}/bmad/{{module_code}}"
<ask>Does your module need any user-configurable settings during installation?</ask>
# Component counts
agents:
count: {{agent_count}}
list: {{agent_list}}
**Common configuration patterns:**
workflows:
count: {{workflow_count}}
list: {{workflow_list}}
- 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
tasks:
count: {{task_count}}
list: {{task_list}}
<action>For each configuration field needed, determine:</action>
# Module-specific settings
{{custom_settings}}
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)
# Output configuration
output_folder: "{project-root}/docs/{{module_code}}"
data_folder: "{{determined_module_path}}/data"
```
<action>Store planned configuration fields for installer generation in step 7</action>
<critical>Determine save location based on {src_impact}:</critical>
- If {src_impact} = true: Save to {src_output_folder}/config.yaml
- If {src_impact} = false: Save to {default_output_folder}/config.yaml
<template-output>module_config</template-output>
<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>Create your first agent now? [yes/no]</ask>
If yes:
<invoke-workflow input="{{module_components}}">
{agent_builder}
</invoke-workflow>
<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>
Guide them to create the primary agent for the module.
<critical>Ensure it's saved to the correct location based on {src_impact}:</critical>
<critical>Save to module's agents folder:</critical>
- If {src_impact} = true: {src_output_folder}/agents/
- If {src_impact} = false: {default_output_folder}/agents/
- Save to {{module_path}}/agents/
</check>
If no, create placeholder:
```md
# {{primary_agent_name}} Agent
<!-- TODO: Create using create-agent workflow -->
<!-- Purpose: {{agent_purpose}} -->
<!-- Type: {{agent_type}} -->
```
<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>Create your first workflow now? [yes/no]</ask>
If yes:
<invoke-workflow input="{{module_components}}">
{workflow_builder}
</invoke-workflow>
<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>
Guide them to create the primary workflow.
<critical>Ensure it's saved to the correct location based on {src_impact}:</critical>
<critical>Save to module's workflows folder:</critical>
- If {src_impact} = true: {src_output_folder}/workflows/
- If {src_impact} = false: {default_output_folder}/workflows/
- Save to {{module_path}}/workflows/
</check>
If no, create placeholder structure:
```
workflows/{{workflow_name}}/
├── workflow.yaml # TODO: Configure
├── instructions.md # TODO: Add steps
└── template.md # TODO: If document workflow
```
<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 templates from: {installer_templates}</action>
<action>Load installer template from: {installer_templates}/install-config.yaml</action>
Create install-module-config.yaml:
<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}} Installation Configuration
module_name: { { module_name } }
module_code: { { module_code } }
installation_date: { { date } }
# {{module_name}} Module Configuration
# This file defines installation questions and module configuration values
# Installation steps
install_steps:
- name: 'Create directories'
action: 'mkdir'
paths:
- '{project-root}/bmad/{{module_code}}'
- '{project-root}/bmad/{{module_code}}/data'
- '{project-root}/bmad/{{module_code}}/agents'
code: {{module_code}}
name: "{{module_name}}"
default_selected: false # Set to true if this should be selected by default
- name: 'Copy configuration'
action: 'copy'
source: '{installer_path}/config.yaml'
dest: '{project-root}/bmad/{{module_code}}/config.yaml'
# Welcome message shown during installation
prompt:
- "Thank you for choosing {{module_name}}!"
- "{{brief_module_description}}"
- name: 'Register module'
action: 'register'
manifest: '{project-root}/bmad/_cfg/manifest.yaml'
# Core config values are automatically inherited:
## user_name
## communication_language
## document_output_language
## output_folder
# External assets (if any)
external_assets:
- description: '{{asset_description}}'
source: 'assets/{{filename}}'
dest: '{{destination_path}}'
# ============================================================================
# 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)
# ============================================================================
# Post-install message
post_install_message: |
{{module_name}} has been installed successfully!
# EXAMPLE Interactive text input:
# output_path:
# prompt: "Where should {{module_code}} save outputs?"
# default: "output/{{module_code}}"
# result: "{project-root}/{value}"
To get started:
1. Load any {{module_code}} agent
2. Use *help to see available commands
3. Check README.md for full documentation
# 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}}
```
Create installer.js stub (optional):
<critical>Save location:</critical>
```javascript
// {{module_name}} Module Installer
// This is a placeholder for complex installation logic
- Save to {{module_path}}/module-installer/install-config.yaml
function installModule(config) {
console.log('Installing {{module_name}} module...');
<ask>Does your module need custom installation logic (database setup, API registration, etc.)?</ask>
// TODO: Add any complex installation logic here
<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:
// - Database setup
// - API key configuration
// - External service registration
// - File system preparation
// - Create database tables
// - Download external assets
// - Configure API connections
// - Initialize data files
// - Set up webhooks or integrations
console.log('{{module_name}} module installed successfully!');
logger.log('{{module_name}} custom installation complete!');
return true;
}
module.exports = { installModule };
```
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>
@@ -337,7 +396,8 @@ This module provides:
```bash
bmad install {{module_code}}
```
`````
````
## Components
@@ -381,7 +441,7 @@ bmad install {{module_code}}
## Configuration
The module can be configured in `bmad/{{module_code}}/config.yaml`
The module can be configured in `{bmad_folder}/{{module_code}}/config.yaml`
Key settings:
{{configuration_options}}
@@ -419,22 +479,26 @@ Created by {{user_name}} on {{date}}
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
@@ -461,47 +525,50 @@ Ask if user wants to:
</step>
<step n="10" goal="Validate and finalize module">
Run validation checks:
<action>Run validation checks:</action>
1. **Structure validation:**
- All required directories created
- Config files properly formatted
- Installer configuration valid
**Structure validation:**
2. **Component validation:**
- At least one agent or workflow exists (or planned)
- All references use correct paths
- Module code consistent throughout
- All required directories created
- Config files properly formatted
- Installer configuration valid
3. **Documentation validation:**
- README.md complete
- Installation instructions clear
- Examples provided
**Component validation:**
Show summary:
- At least one agent or workflow exists (or planned)
- All references use correct paths
- Module code consistent throughout
```
✅ Module: {{module_name}} ({{module_code}})
📁 Location:
- If {src_impact} = true: {src_output_folder}
- If {src_impact} = false: {default_output_folder}
👥 Agents: {{agent_count}} ({{agents_created}} created, {{agents_planned}} planned)
📋 Workflows: {{workflow_count}} ({{workflows_created}} created, {{workflows_planned}} planned)
📝 Tasks: {{task_count}}
📦 Installer: Ready at same location
```
**Documentation validation:**
Next steps:
- 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. Test module with: `bmad install {{module_code}}`
3. Share module or integrate with existing system
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:
<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>

View File

@@ -9,26 +9,30 @@ A BMAD module is a self-contained package of agents, workflows, tasks, and resou
### Core Structure
```
project-root/
├── bmad/{module-code}/ # Source code
├── agents/ # Agent definitions
├── workflows/ # Workflow folders
├── tasks/ # Task files
├── templates/ # Shared templates
│ ├── data/ # Static data
│ ├── config.yaml # Module config
│ └── README.md # Documentation
└── bmad/{module-code}/ # Runtime instance
── _module-installer/ # Installation files
├── install-module-config.yaml
│ ├── installer.js # Optional
│ └── assets/ # Install assets
├── config.yaml # User config
├── agents/ # Agent overrides
├── workflows/ # Workflow instances
└── data/ # User data
# 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
@@ -132,43 +136,129 @@ Tasks should be used for:
- Declare dependencies in config.yaml
- Version compatibility notes
## Installation Infrastructure
### Workflow Vendoring (Advanced)
### Required: install-module-config.yaml
For modules that need workflows from other modules but want to remain standalone, use **workflow vendoring**:
**In Agent YAML:**
```yaml
module_name: 'Module Name'
module_code: 'module-code'
install_steps:
- name: 'Create directories'
action: 'mkdir'
paths: [...]
- name: 'Copy files'
action: 'copy'
mappings: [...]
- name: 'Register module'
action: 'register'
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'
```
### Optional: installer.js
**What Happens:**
For complex installations requiring:
- 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
- Database setup
- API configuration
- System integration
- Permission management
**Use Cases:**
### Optional: External Assets
- Specialized modules that reuse common workflows with different configs
- Domain-specific adaptations (e.g., game dev using standard dev workflows)
- Testing workflows in isolation
Files that get copied outside the module:
**Benefits:**
- System configurations
- User templates
- Shared resources
- 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

View File

@@ -4,56 +4,41 @@ description: "Interactive workflow to build complete BMAD modules with agents, w
author: "BMad"
# Critical variables load from config_source
config_source: "{project-root}/bmad/bmb/config.yaml"
output_folder: "{config_source}:output_folder"
src_impact: "{config_source}:src_impact"
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"
date: system-generated
# 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/bmb/workflows/create-agent/workflow.yaml"
workflow_builder: "{project-root}/bmad/bmb/workflows/create-workflow/workflow.yaml"
brainstorming_workflow: "{project-root}/bmad/cis/workflows/brainstorming/workflow.yaml"
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"
# Optional docs that help understand module patterns
recommended_inputs:
- module_brief: "{output_folder}/module-brief-*.md"
- brainstorming_results: "{output_folder}/brainstorming-*.md"
- bmm_module: "{project-root}/bmad/bmm/"
- cis_module: "{project-root}/bmad/cis/"
- existing_agents: "{project-root}/bmad/*/agents/"
- existing_workflows: "{project-root}/bmad/*/workflows/"
- bmm_module: "{project-root}/{bmad_folder}/bmm/"
- cis_module: "{project-root}/{bmad_folder}/cis/"
- existing_agents: "{project-root}/{bmad_folder}/*/agents/"
- existing_workflows: "{project-root}/{bmad_folder}/*/workflows/"
# Module path and component files
installed_path: "{project-root}/bmad/bmb/workflows/create-module"
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
# If src_impact=true: Save to src/modules/{{module_code}}
# If src_impact=false: Save to output_folder/{{module_code}}
default_output_folder: "{output_folder}/{{module_code}}"
src_output_folder: "{project-root}/src/modules/{{module_code}}"
installer_output_folder: "{output_folder}/{{module_code}}"
src_installer_output_folder: "{project-root}/src/modules/{{module_code}}"
# Save to custom_module_location/{{module_code}}
installer_output_folder: "{custom_module_location}/{{module_code}}"
web_bundle:
name: "create-module"
description: "Interactive workflow to build complete BMAD modules with agents, workflows, tasks, and installation infrastructure"
author: "BMad"
web_bundle_files:
- "bmad/bmb/workflows/create-module/instructions.md"
- "bmad/bmb/workflows/create-module/checklist.md"
- "bmad/bmb/workflows/create-module/module-structure.md"
- "bmad/bmb/workflows/create-module/brainstorm-context.md"
existing_workflows:
- agent_builder: "bmad/bmb/workflows/create-agent/workflow.yaml"
- workflow_builder: "bmad/bmb/workflows/create-workflow/workflow.yaml"
- brainstorming_workflow: "bmad/cis/workflows/brainstorming/workflow.yaml"
standalone: true
# Web bundle configuration
web_bundle: false # BMB workflows run locally in BMAD-METHOD project

View File

@@ -56,6 +56,67 @@ create-workflow/
└── README.md
```
## Understanding Instruction Styles
One of the most important decisions when creating a workflow is choosing the **instruction style** - how the workflow guides the AI's interaction with users.
### Intent-Based vs Prescriptive Instructions
**Intent-Based (Recommended for most workflows)**
Guides the LLM with goals and principles, allowing natural conversation adaptation.
- **More flexible and conversational** - AI adapts questions to context
- **Better for complex discovery** - Requirements gathering, creative exploration
- **Quality over consistency** - Focus on deep understanding
- **Example**: `<action>Guide user to define their target audience with specific demographics and needs</action>`
**Best for:**
- Complex discovery processes (user research, requirements)
- Creative brainstorming and ideation
- Iterative refinement workflows
- When adaptation to context matters
- Workflows requiring nuanced understanding
**Prescriptive**
Provides exact wording for questions and structured options.
- **More controlled and predictable** - Same questions every time
- **Better for simple data collection** - Platform choices, yes/no decisions
- **Consistency over quality** - Standardized execution
- **Example**: `<ask>What is your target platform? Choose: PC, Console, Mobile, Web</ask>`
**Best for:**
- Simple data collection (platform, format, binary choices)
- Compliance verification and standards
- Configuration with finite options
- Quick setup wizards
- When consistency is critical
### Best Practice: Mix Both Styles
The most effective workflows use **both styles strategically**:
```xml
<!-- Intent-based workflow with prescriptive moments -->
<step n="1" goal="Understand user vision">
<action>Explore the user's vision, uncovering creative intent and target experience</action>
</step>
<step n="2" goal="Capture basic metadata">
<ask>What is your target platform? Choose: PC, Console, Mobile, Web</ask>
</step>
<step n="3" goal="Deep dive into details">
<action>Guide user to articulate their core approach and unique aspects</action>
</step>
```
**During workflow creation**, you'll be asked to choose a **primary style preference** - this sets the default approach, but you can (and should) use the other style when it makes more sense for specific steps.
## Workflow Process
### Phase 0: Optional Brainstorming (Step -1)
@@ -98,7 +159,7 @@ The brainstorming phase invokes the CIS brainstorming workflow to:
### Generated Workflow Folder
Creates a complete workflow folder at:
`{project-root}/bmad/{{target_module}}/workflows/{{workflow_name}}/`
`{project-root}/{bmad_folder}/{{target_module}}/workflows/{{workflow_name}}/`
### Files Created
@@ -197,7 +258,7 @@ To modify this workflow:
- Enhanced validation for documentation
- Improved Step 10 with detailed README requirements
- **v5.0.0** - Initial BMAD Core v6 compatible version
- **v6.0.0** - Initial BMAD Core v6 compatible version
- Template-based workflow generation
- Convention enforcement
- Validation checklist support
@@ -206,9 +267,9 @@ To modify this workflow:
For issues or questions:
- Review `/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md`
- Check existing workflows in `/bmad/bmm/workflows/` for examples
- Validate against `/bmad/bmb/workflows/create-workflow/checklist.md`
- Review `/{bmad_folder}/bmb/workflows/create-workflow/workflow-creation-guide.md`
- Check existing workflows in `/{bmad_folder}/bmm/workflows/` for examples
- Validate against `/{bmad_folder}/bmb/workflows/create-workflow/checklist.md`
- Consult BMAD Method v6 documentation
---

View File

@@ -57,12 +57,34 @@
- [ ] Output location is writable
- [ ] Dependencies (if any) are available
## Web Bundle Configuration (if applicable)
- [ ] web_bundle section present if needed
- [ ] Name, description, author copied from main config
- [ ] All file paths converted to {bmad_folder}/-relative format
- [ ] NO {config_source} variables in web bundle
- [ ] NO {project-root} prefixes in paths
- [ ] Instructions path listed correctly
- [ ] Validation/checklist path listed correctly
- [ ] Template path listed (if document workflow)
- [ ] All data files referenced in instructions are listed
- [ ] All sub-workflows are included
- [ ] web_bundle_files array is complete:
- [ ] Instructions.md included
- [ ] Checklist.md included
- [ ] Template.md included (if applicable)
- [ ] All CSV/JSON data files included
- [ ] All referenced templates included
- [ ] All sub-workflow files included
- [ ] No external dependencies outside bundle
## Documentation
- [ ] README created (if requested)
- [ ] Usage instructions clear
- [ ] Example command provided
- [ ] Special requirements noted
- [ ] Web bundle deployment noted (if applicable)
## Final Validation

View File

@@ -1,18 +1,19 @@
# Build Workflow - Workflow Builder Instructions
<workflow>
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.md</critical>
<critical>You MUST have already loaded and processed: {project_root}/bmad/bmb/workflows/create-workflow/workflow.yaml</critical>
<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-workflow/workflow.yaml</critical>
<critical>You MUST fully understand the workflow creation guide at: {workflow_creation_guide}</critical>
<critical>Study the guide thoroughly to follow ALL conventions for optimal human-AI collaboration</critical>
<critical>Communicate in {communication_language} throughout the workflow creation process</critical>
<workflow>
<step n="-1" goal="Optional brainstorming phase" optional="true">
<ask>Do you want to brainstorm workflow ideas first? [y/n]</ask>
<action if="user_response == 'y' or user_response == 'yes'">
Invoke brainstorming workflow to explore ideas and design concepts:
- Workflow: {project-root}/bmad/cis/workflows/brainstorming/workflow.yaml
- Workflow: {project-root}/{bmad_folder}/core/workflows/brainstorming/workflow.yaml
- Context data: {installed_path}/brainstorm-context.md
- Purpose: Generate creative workflow ideas, explore different approaches, and clarify requirements
@@ -63,15 +64,15 @@ Based on type, determine which files are needed:
- Action: workflow.yaml + instructions.md
- Others: Varies based on requirements
<critical>Check {src_impact} variable to determine output location:</critical>
<critical>Determine output location based on module assignment:</critical>
- If {src_impact} = true: Workflow will be saved to {src_output_folder}
- If {src_impact} = false: Workflow will be saved to {default_output_folder}
- If workflow belongs to module: Save to {module_output_folder}
- If standalone workflow: Save to {standalone_output_folder}
Store decisions for later use.
</step>
<step n="2" goal="Gather workflow metadata">
<step n="2" goal="Gather workflow metadata and invocation settings">
Collect essential configuration details:
- Description (clear purpose statement)
- Author name (default to user_name or "BMad")
@@ -79,19 +80,152 @@ Collect essential configuration details:
- Any required input documents
- Any required tools or dependencies
<action>Determine standalone property - this controls how the workflow can be invoked:
Explain to the user:
**Standalone Property** controls whether the workflow can be invoked directly or only called by other workflows/agents.
**standalone: true (DEFAULT - Recommended for most workflows)**:
- Users can invoke directly via IDE commands or `/workflow-name`
- Shows up in IDE command palette
- Can also be called from agent menus or other workflows
- Use for: User-facing workflows, entry-point workflows, any workflow users run directly
**standalone: false (Use for helper/internal workflows)**:
- Cannot be invoked directly by users
- Only called via `<invoke-workflow>` from other workflows or agent menus
- Doesn't appear in IDE command palette
- Use for: Internal utilities, sub-workflows, helpers that don't make sense standalone
Most workflows should be `standalone: true` to give users direct access.
</action>
<ask>Should this workflow be directly invokable by users?
1. **Yes (Recommended)** - Users can run it directly (standalone: true)
2. **No** - Only called by other workflows/agents (standalone: false)
Most workflows choose option 1:
</ask>
<action>Store {{standalone_setting}} as true or false based on response</action>
Create the workflow name in kebab-case and verify it doesn't conflict with existing workflows.
</step>
<step n="3" goal="Design workflow steps">
Work with user to outline the workflow steps:
- How many major steps? (Recommend 5-10 max)
<step n="3" goal="Understand workflow interaction style and design steps">
<critical>Instruction style and interactivity level fundamentally shape the user experience - choose thoughtfully</critical>
<action>Reference the comprehensive "Instruction Styles: Intent-Based vs Prescriptive" section from the loaded creation guide</action>
<action>Discuss instruction style collaboratively with the user:
Explain that there are two primary approaches:
**Intent-Based (RECOMMENDED as default)**:
- Gives AI goals and principles, lets it adapt conversation naturally
- More flexible, conversational, responsive to user context
- Better for: discovery, complex decisions, teaching, varied user skill levels
- Uses <action> tags with guiding instructions
- Example from architecture workflow: Facilitates decisions adapting to user_skill_level
**Prescriptive**:
- Provides exact questions and specific options
- More controlled, predictable, consistent across runs
- Better for: simple data collection, finite options, compliance, quick setup
- Uses <ask> tags with specific question text
- Example: Platform selection with 5 defined choices
Explain that **most workflows should default to intent-based** but use prescriptive for simple data points.
The architecture workflow is an excellent example of intent-based with prescriptive moments.
</action>
<ask>For this workflow's PRIMARY style:
1. **Intent-based (Recommended)** - Adaptive, conversational, responds to user context
2. **Prescriptive** - Structured, consistent, controlled interactions
3. **Mixed/Balanced** - I'll help you decide step-by-step
What feels right for your workflow's purpose?
</ask>
<action>Store {{instruction_style}} preference</action>
<action>Now discuss interactivity level:
Beyond style, consider **how interactive** this workflow should be:
**High Interactivity (Collaborative)**:
- Constant back-and-forth with user
- User guides direction, AI facilitates
- Iterative refinement and review
- Best for: creative work, complex decisions, learning experiences
- Example: Architecture workflow's collaborative decision-making
**Medium Interactivity (Guided)**:
- Key decision points have interaction
- AI proposes, user confirms or refines
- Validation checkpoints
- Best for: most document workflows, structured processes
- Example: PRD workflow with sections to review
**Low Interactivity (Autonomous)**:
- Minimal user input required
- AI works independently with guidelines
- User reviews final output
- Best for: automated generation, batch processing
- Example: Generating user stories from epics
</action>
<ask>What interactivity level suits this workflow?
1. **High** - Highly collaborative, user actively involved throughout (Recommended)
2. **Medium** - Guided with key decision points
3. **Low** - Mostly autonomous with final review
Select the level that matches your workflow's purpose:
</ask>
<action>Store {{interactivity_level}} preference</action>
<action>Explain how these choices will inform the workflow design:
- Intent-based + High interactivity: Conversational discovery with open questions
- Intent-based + Medium: Facilitated guidance with confirmation points
- Intent-based + Low: Principle-based autonomous generation
- Prescriptive + any level: Structured questions, but frequency varies
- Mixed: Strategic use of both styles where each works best
</action>
<action>Now work with user to outline workflow steps:
- How many major steps? (Recommend 3-7 for most workflows)
- What is the goal of each step?
- Which steps are optional?
- Which steps need user input?
- Which steps need heavy user collaboration vs autonomous execution?
- Which steps should repeat?
- What variables/outputs does each step produce?
Create a step outline with clear goals and outputs.
Consider their instruction_style and interactivity_level choices when designing step flow:
- High interactivity: More granular steps with collaboration
- Low interactivity: Larger autonomous steps with review
- Intent-based: Focus on goals and principles in step descriptions
- Prescriptive: Define specific questions and options
</action>
<action>Create a step outline that matches the chosen style and interactivity level</action>
<action>Note which steps should be intent-based vs prescriptive (if mixed approach)</action>
<template-output>step_outline</template-output>
</step>
<step n="4" goal="Create workflow.yaml">
@@ -108,6 +242,7 @@ Replace all placeholders following the workflow creation guide conventions:
Include:
- All metadata from steps 1-2
- **Standalone property**: Use {{standalone_setting}} from step 2 (true or false)
- Proper paths for installed_path using variable substitution
- Template/instructions/validation paths based on workflow type:
- Document workflow: all files (template, instructions, validation)
@@ -116,16 +251,61 @@ Include:
- Required tools if any
- Recommended inputs if any
<critical>ALWAYS include the standard config block:</critical>
```yaml
# Critical variables from config
config_source: '{project-root}/{bmad_folder}/{{target_module}}/config.yaml'
output_folder: '{config_source}:output_folder'
user_name: '{config_source}:user_name'
communication_language: '{config_source}:communication_language'
date: system-generated
```
<critical>This standard config ensures workflows can run autonomously and communicate properly with users</critical>
<critical>ALWAYS include the standalone property:</critical>
```yaml
standalone: { { standalone_setting } } # true or false from step 2
```
**Example complete workflow.yaml structure**:
```yaml
name: 'workflow-name'
description: 'Clear purpose statement'
# Paths
installed_path: '{project-root}/{bmad_folder}/module/workflows/name'
template: '{installed_path}/template.md'
instructions: '{installed_path}/instructions.md'
validation: '{installed_path}/checklist.md'
# Critical variables from config
config_source: '{project-root}/{bmad_folder}/module/config.yaml'
output_folder: '{config_source}:output_folder'
user_name: '{config_source}:user_name'
communication_language: '{config_source}:communication_language'
date: system-generated
# Output
default_output_file: '{output_folder}/document.md'
# Invocation control
standalone: true # or false based on step 2 decision
```
Follow path conventions from guide:
- Use {project-root} for absolute paths
- Use {installed_path} for workflow components
- Use {config_source} for config references
<critical>Determine save location based on {src_impact}:</critical>
<critical>Determine save location:</critical>
- If {src_impact} = true: Write to {src_output_folder}/workflow.yaml
- If {src_impact} = false: Write to {default_output_folder}/workflow.yaml
- Use the output folder determined in Step 1 (module or standalone)
- Write to {{output_folder}}/workflow.yaml
</step>
<step n="5" goal="Create instructions.md" if="workflow_type != 'template-only'">
@@ -134,7 +314,7 @@ Load and use the template at: {template_instructions}
Generate the instructions.md file following the workflow creation guide:
1. ALWAYS include critical headers:
- Workflow engine reference: {project_root}/bmad/core/tasks/workflow.md
- Workflow engine reference: {project-root}/{bmad_folder}/core/tasks/workflow.xml
- workflow.yaml reference: must be loaded and processed
2. Structure with <workflow> tags containing all steps
@@ -148,7 +328,7 @@ Generate the instructions.md file following the workflow creation guide:
4. Use proper XML tags from guide:
- Execution: <action>, <check>, <ask>, <goto>, <invoke-workflow>
- Output: <template-output>, <elicit-required/>, <critical>, <example>
- Output: <template-output>, <invoke-task halt="true">{project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml</invoke-task>, <critical>, <example>
- Flow: <loop>, <break>, <continue>
5. Best practices from guide:
@@ -158,10 +338,142 @@ Generate the instructions.md file following the workflow creation guide:
- Set limits ("3-5 items maximum")
- Save checkpoints with <template-output>
<critical>Determine save location based on {src_impact}:</critical>
<critical>Standard config variable usage:</critical>
- If {src_impact} = true: Write to {src_output_folder}/instructions.md
- If {src_impact} = false: Write to {default_output_folder}/instructions.md
Instructions MUST use the standard config variables where appropriate:
- Communicate in {communication_language} throughout the workflow
- Address user as {user_name} in greetings and summaries
- Write all output files to {output_folder} or subdirectories
- Include {date} in generated document headers
Example usage in instructions:
```xml
<action>Write document to {output_folder}/output-file.md</action>
<critical>Communicate all responses in {communication_language}</critical>
<output>Hello {user_name}, the workflow is complete!</output>
```
<critical>Applying instruction style preference:</critical>
Based on the {{instruction_style}} preference from Step 3, generate instructions using these patterns:
**Intent-Based Instructions (Recommended for most workflows):**
Focus on goals, principles, and desired outcomes. Let the LLM adapt the conversation naturally.
**Good Examples:**
```xml
<!-- Discovery and exploration -->
<action>Guide user to define their target audience with specific demographics, psychographics, and behavioral characteristics</action>
<action>Explore the user's vision for the product, asking probing questions to uncover core motivations and success criteria</action>
<action>Help user identify and prioritize key features based on user value and technical feasibility</action>
<!-- Validation and refinement -->
<action>Validate that the technical approach aligns with project constraints and team capabilities</action>
<action>Challenge assumptions about user needs and market fit with thought-provoking questions</action>
<!-- Complex iterative work -->
<action>Collaborate with user to refine the architecture, iterating until they're satisfied with the design</action>
```
**Avoid (too prescriptive):**
```xml
<ask>What is your target audience age range? Choose: 18-24, 25-34, 35-44, 45+</ask>
<ask>List exactly 3 key features in priority order</ask>
```
**When to use Intent-Based:**
- Complex discovery processes (user research, requirements gathering)
- Creative brainstorming and ideation
- Iterative refinement workflows
- When user input quality matters more than consistency
- Workflows requiring adaptation to context
**Prescriptive Instructions (Use selectively):**
Provide exact wording, specific options, and controlled interactions.
**Good Examples:**
```xml
<!-- Simple data collection -->
<ask>What is your target platform? Choose: PC, Console, Mobile, Web</ask>
<ask>Select monetization model: Premium, Free-to-Play, Subscription, Ad-Supported</ask>
<!-- Compliance and standards -->
<ask>Does this comply with GDPR requirements? [yes/no]</ask>
<ask>Choose documentation standard: JSDoc, TypeDoc, TSDoc</ask>
<!-- Binary decisions -->
<ask>Do you want to generate test cases? [yes/no]</ask>
<ask>Include performance benchmarks? [yes/no]</ask>
```
**Avoid (too rigid for complex tasks):**
```xml
<ask>What are your product goals? List exactly 5 goals, each 10-15 words</ask>
<ask>Describe your user persona in exactly 3 sentences</ask>
```
**When to use Prescriptive:**
- Simple data collection (platform, format, yes/no choices)
- Compliance verification and standards adherence
- Configuration with finite options
- When consistency is critical across all executions
- Quick setup wizards
**Mixing Both Styles (Best Practice):**
Even if user chose a primary style, use the other when appropriate:
```xml
<!-- Intent-based workflow with prescriptive moments -->
<step n="1" goal="Understand user vision">
<action>Explore the user's vision for their game, uncovering their creative intent and target experience</action>
<action>Ask probing questions about genre, themes, and emotional tone they want to convey</action>
</step>
<step n="2" goal="Capture basic metadata">
<ask>What is your target platform? Choose: PC, Console, Mobile, Web</ask> <!-- Prescriptive for simple choice -->
<ask>Select primary genre: Action, RPG, Strategy, Puzzle, Simulation, Other</ask>
</step>
<step n="3" goal="Deep dive into gameplay">
<action>Guide user to articulate their core gameplay loop, exploring mechanics and player agency</action> <!-- Back to intent-based -->
<action>Help them identify what makes their game unique and compelling</action>
</step>
```
**Guidelines for the chosen style:**
If user chose **Intent-Based**:
- Default to goal-oriented <action> tags
- Use open-ended guidance language
- Save prescriptive <ask> tags for simple data/choices
- Focus on "guide", "explore", "help user", "validate"
- Allow LLM to adapt questions to user responses
If user chose **Prescriptive**:
- Default to explicit <ask> tags with clear options
- Use precise wording for consistency
- Save intent-based <action> tags for complex discovery
- Focus on "choose", "select", "specify", "confirm"
- Provide structured choices when possible
**Remember:** The goal is optimal human-AI collaboration. Use whichever style best serves the user at each step.
<critical>Save location:</critical>
- Write to {{output_folder}}/instructions.md
</step>
<step n="6" goal="Create template.md" if="workflow_type == 'document'">
@@ -172,9 +484,21 @@ Generate the template.md file following guide conventions:
1. Document structure with clear sections
2. Variable syntax: {{variable_name}} using snake_case
3. Variable names MUST match <template-output> tags exactly from instructions
4. Include standard metadata:
- **Date:** {{date}}
- **Author:** {{user_name}} (if applicable)
4. Include standard metadata header (optional - config variables available):
```markdown
# Document Title
**Date:** {{date}}
**Author:** {{user_name}}
```
Note: {{date}} and {{user_name}} are optional in headers. Primary purpose of these variables:
- {{date}} - Gives agent current date awareness (not confused with training cutoff)
- {{user_name}} - Optional author attribution
- {{communication_language}} - NOT for document output! Tells agent how to communicate during execution
5. Follow naming conventions from guide:
- Use descriptive names: {{primary_user_journey}} not {{puj}}
- Snake_case for all variables
@@ -182,15 +506,29 @@ Generate the template.md file following guide conventions:
Variable sources as per guide:
- workflow.yaml config values
- workflow.yaml config values (user_name, communication_language, date, output_folder)
- User input runtime values
- Step outputs via <template-output>
- System variables (date, paths)
<critical>Determine save location based on {src_impact}:</critical>
<critical>Standard config variables in templates:</critical>
- If {src_impact} = true: Write to {src_output_folder}/template.md
- If {src_impact} = false: Write to {default_output_folder}/template.md
Templates CAN optionally use these config variables:
- {{user_name}} - Document author (optional)
- {{date}} - Generation date (optional)
IMPORTANT: {{communication_language}} is NOT for document headers!
- Purpose: Tells agent how to communicate with user during workflow execution
- NOT for: Document output language or template headers
- Future: {{document_output_language}} will handle multilingual document generation
These variables are automatically available from workflow.yaml config block.
<critical>Save location:</critical>
- Write to {{output_folder}}/template.md
</step>
<step n="7" goal="Create validation checklist" optional="true">
@@ -216,10 +554,9 @@ Create checklist.md following guide best practices:
4. Add final validation section with issue lists
<critical>Determine save location based on {src_impact}:</critical>
<critical>Save location:</critical>
- If {src_impact} = true: Write to {src_output_folder}/checklist.md
- If {src_impact} = false: Write to {default_output_folder}/checklist.md
- Write to {{output_folder}}/checklist.md
</step>
<step n="8" goal="Create supporting files" optional="true">
@@ -233,12 +570,36 @@ If yes, create placeholder files or copy from templates.
<step n="9" goal="Test and validate workflow">
Review the created workflow:
**Basic Validation:**
1. Verify all file paths are correct
2. Check variable names match between files
3. Ensure step numbering is sequential
4. Validate YAML syntax
5. Confirm all placeholders are replaced
**Standard Config Validation:**
6. Verify workflow.yaml contains standard config block:
- config_source defined
- output_folder, user_name, communication_language pulled from config
- date set to system-generated
7. Check instructions use config variables where appropriate
8. Verify template includes config variables in metadata (if document workflow)
**YAML/Instruction/Template Alignment:**
9. Cross-check all workflow.yaml variables against instruction usage:
- Are all yaml variables referenced in instructions.md OR template.md?
- Are there hardcoded values that should be variables?
- Do template variables match <template-output> tags in instructions?
10. Identify any unused yaml fields (bloat detection)
Show user a summary of created files and their locations.
Ask if they want to:
@@ -247,21 +608,117 @@ Ask if they want to:
- Add additional steps or features
</step>
<step n="9b" goal="Configure web bundle (optional)">
<ask>Will this workflow need to be deployable as a web bundle? [yes/no]</ask>
If yes:
<action>Explain web bundle requirements:</action>
- Web bundles are self-contained and cannot use config_source variables
- All files must be explicitly listed in web_bundle_files
- File paths use {bmad_folder}/ root (not {project-root})
<action>Configure web_bundle section in workflow.yaml:</action>
1. Copy core workflow metadata (name, description, author)
2. Convert all file paths to {bmad_folder}/-relative paths:
- Remove {project-root}/ prefix
- Remove {config_source} references (use hardcoded values)
- Example: "{project-root}/{bmad_folder}/bmm/workflows/x" → "{bmad_folder}/bmm/workflows/x"
3. List ALL referenced files by scanning:
**Scan instructions.md for:**
- File paths in <action> tags
- Data files (CSV, JSON, YAML, etc.)
- Validation/checklist files
- Any <invoke-workflow> calls → must include that workflow's yaml file
- Any <goto> tags that reference other workflows
- Shared templates or includes
**Scan template.md for:**
- Any includes or references to other files
- Shared template fragments
**Critical: Workflow Dependencies**
- If instructions call another workflow, that workflow's yaml MUST be in web_bundle_files
- Example: `<invoke-workflow>{project-root}/{bmad_folder}/core/workflows/x/workflow.yaml</invoke-workflow>`
→ Add "{bmad_folder}/core/workflows/x/workflow.yaml" to web_bundle_files
4. Create web_bundle_files array with complete list
Example:
```yaml
web_bundle:
name: '{workflow_name}'
description: '{workflow_description}'
author: '{author}'
instructions: '{bmad_folder}/{module}/workflows/{workflow}/instructions.md'
validation: '{bmad_folder}/{module}/workflows/{workflow}/checklist.md'
template: '{bmad_folder}/{module}/workflows/{workflow}/template.md'
# Any data files (no config_source)
data_file: '{bmad_folder}/{module}/workflows/{workflow}/data.csv'
web_bundle_files:
- '{bmad_folder}/{module}/workflows/{workflow}/instructions.md'
- '{bmad_folder}/{module}/workflows/{workflow}/checklist.md'
- '{bmad_folder}/{module}/workflows/{workflow}/template.md'
- '{bmad_folder}/{module}/workflows/{workflow}/data.csv'
# Add every single file referenced anywhere
# CRITICAL: If this workflow invokes other workflows, use existing_workflows
# This signals the bundler to recursively include those workflows' web_bundles
existing_workflows:
- workflow_variable_name: '{bmad_folder}/path/to/workflow.yaml'
```
**Example with existing_workflows:**
```yaml
web_bundle:
name: 'brainstorm-game'
description: 'Game brainstorming with CIS workflow'
author: 'BMad'
instructions: '{bmad_folder}/bmm/workflows/brainstorm-game/instructions.md'
template: false
web_bundle_files:
- '{bmad_folder}/bmm/workflows/brainstorm-game/instructions.md'
- '{bmad_folder}/mmm/workflows/brainstorm-game/game-context.md'
- '{bmad_folder}/core/workflows/brainstorming/workflow.yaml'
existing_workflows:
- core_brainstorming: '{bmad_folder}/core/workflows/brainstorming/workflow.yaml'
```
**What existing_workflows does:**
- Tells the bundler this workflow invokes another workflow
- Bundler recursively includes the invoked workflow's entire web_bundle
- Essential for meta-workflows that orchestrate other workflows
- Maps workflow variable names to their {bmad_folder}/-relative paths
<action>Validate web bundle completeness:</action>
- Ensure no {config_source} variables remain
- Verify all file paths are listed
- Check that paths are {bmad_folder}/-relative
- If workflow uses <invoke-workflow>, add to existing_workflows
<template-output>web_bundle_config</template-output>
</step>
<step n="10" goal="Document and finalize">
Create a brief README for the workflow folder explaining:
- Purpose and use case
- How to invoke: `workflow {workflow_name}`
- Expected inputs
- Generated outputs
- Any special requirements
<action>Create a brief README for the workflow folder explaining purpose, how to invoke, expected inputs, generated outputs, and any special requirements</action>
Provide user with:
<action>Provide {user_name} with workflow completion summary in {communication_language}:</action>
- Location of created workflow:
- If {src_impact} = true: {{src_output_folder}}
- If {src_impact} = false: {{default_output_folder}}
- Command to run it
- Next steps for testing
</step>
- Location of created workflow: {{output_folder}}
- Command to run it: `workflow {workflow_name}`
- Next steps:
- Run the BMAD Method installer to this project location
- Select 'Compile Agents (Quick rebuild of all agent .md files)' after confirming the folder
- This will compile the new workflow and make it available for use
</step>
</workflow>

View File

@@ -1,9 +1,10 @@
# PRD Workflow Instructions
<workflow>
<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-related}/{bmad_folder}/{module-code}/workflows/{workflow}/workflow.yaml</critical>
<critical>Communicate in {communication_language} throughout the workflow process</critical>
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.md</critical>
<critical>You MUST have already loaded and processed: {project_root}/bmad/{module-code}/workflows/{workflow}/workflow.yaml</critical>
<workflow>
<step n="1" goal="">
...

View File

@@ -8,6 +8,7 @@ author: "BMad"
config_source: "{project-root}/{module-code}/config.yaml"
output_folder: "{config_source}:output_folder"
user_name: "{config_source}:user_name"
communication_language: "{config_source}:communication_language"
date: system-generated
# Required Data Files - HALT if missing!
@@ -19,7 +20,7 @@ recommended_inputs: # optional, can be omitted
- example_input: "{project-root}/{path/to/file.md}"
# Module path and component files
installed_path: "{project-root}/bmad/{module-code}/workflows/{workflow-code}"
installed_path: "{project-root}/{bmad_folder}/{module-code}/workflows/{workflow-code}"
template: "{installed_path}/template.md" # optional, can be omitted
instructions: "{installed_path}/instructions.md" # optional, can be omitted
validation: "{installed_path}/checklist.md" # optional, can be omitted
@@ -33,3 +34,32 @@ required_tools: #optional, can be omitted
- "Tool Name": #example, can be omitted if none
description: "Description of why this tool is needed"
link: "https://link-to-tool.com"
# Web Bundle Configuration (optional - for web-deployable workflows)
# IMPORTANT: Web bundles are self-contained and cannot use config_source variables
# All referenced files must be listed in web_bundle_files
web_bundle: #optional, can be omitted
name: "{WORKFLOW_CODE}"
description: "{WORKFLOW_DESCRIPTION}"
author: "BMad"
# Core workflow files (paths relative to {bmad_folder}/ root)
instructions: "{bmad_folder}/{module-code}/workflows/{workflow-code}/instructions.md"
validation: "{bmad_folder}/{module-code}/workflows/{workflow-code}/checklist.md"
template: "{bmad_folder}/{module-code}/workflows/{workflow-code}/template.md" # if document workflow
# Reference any data files or additional workflows (no config_source allowed)
# brain_techniques: "{bmad_folder}/{module-code}/workflows/{workflow-code}/data-file.csv"
# sub_workflow: "{bmad_folder}/{module-code}/workflows/other-workflow/workflow.yaml"
# CRITICAL: List ALL files used by this workflow
# This includes instructions, validation, templates, data files,
# and any files referenced within those files
web_bundle_files:
- "{bmad_folder}/{module-code}/workflows/{workflow-code}/instructions.md"
- "{bmad_folder}/{module-code}/workflows/{workflow-code}/checklist.md"
- "{bmad_folder}/{module-code}/workflows/{workflow-code}/template.md"
# Add ALL referenced files here - examine instructions.md and template.md
# for any file paths and include them all
# - "{bmad_folder}/{module-code}/workflows/{workflow-code}/data/example.csv"
# - "{bmad_folder}/{module-code}/templates/shared-template.md"

View File

@@ -4,12 +4,10 @@ description: "Interactive workflow builder that guides creation of new BMAD work
author: "BMad Builder"
# Critical variables
config_source: "{project-root}/bmad/bmb/config.yaml"
output_folder: "{config_source}:output_folder"
config_source: "{project-root}/{bmad_folder}/bmb/config.yaml"
custom_workflow_location: "{config_source}:custom_workflow_location"
user_name: "{config_source}:user_name"
src_impact: "{config_source}:src_impact"
communication_language: "{config_source}:communication_language"
date: system-generated
# Template files for new workflows
template_workflow_yaml: "{workflow_template_path}/workflow.yaml"
@@ -19,11 +17,11 @@ template_checklist: "{workflow_template_path}/checklist.md"
# Optional input docs
recommended_inputs:
- existing_workflows: "{project-root}/bmad/*/workflows/"
- bmm_workflows: "{project-root}/bmad/bmm/workflows/"
- existing_workflows: "{project-root}/{bmad_folder}/*/workflows/"
- bmm_workflows: "{project-root}/{bmad_folder}/bmm/workflows/"
# Module path and component files
installed_path: "{project-root}/bmad/bmb/workflows/create-workflow"
installed_path: "{project-root}/{bmad_folder}/bmb/workflows/create-workflow"
template: false # This is an action workflow - no template needed
instructions: "{installed_path}/instructions.md"
validation: "{installed_path}/checklist.md"
@@ -33,20 +31,12 @@ workflow_creation_guide: "{installed_path}/workflow-creation-guide.md"
workflow_template_path: "{installed_path}/workflow-template"
# Output configuration - Creates the new workflow folder with all files
# If src_impact=true: Save to src/modules/{{target_module}}/workflows/{{workflow_name}}
# If src_impact=false: Save to output_folder/workflows/{{workflow_name}}
default_output_folder: "{output_folder}/workflows/{{workflow_name}}"
src_output_folder: "{project-root}/src/modules/{{target_module}}/workflows/{{workflow_name}}"
# If workflow belongs to a module: Save to module's workflows folder
# If standalone workflow: Save to custom_workflow_location/{{workflow_name}}
module_output_folder: "{project-root}/{bmad_folder}/{{target_module}}/workflows/{{workflow_name}}"
standalone_output_folder: "{custom_workflow_location}/{{workflow_name}}"
web_bundle:
name: "create-workflow"
description: "Interactive workflow builder that guides creation of new BMAD workflows with proper structure and validation for optimal human-AI collaboration. Includes optional brainstorming phase for workflow ideas and design."
author: "BMad Builder"
web_bundle_files:
- "bmad/bmb/workflows/create-workflow/instructions.md"
- "bmad/bmb/workflows/create-workflow/checklist.md"
- "bmad/bmb/workflows/create-workflow/workflow-creation-guide.md"
- "bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml"
- "bmad/bmb/workflows/create-workflow/workflow-template/instructions.md"
- "bmad/bmb/workflows/create-workflow/workflow-template/template.md"
- "bmad/bmb/workflows/create-workflow/workflow-template/checklist.md"
standalone: true
# Web bundle configuration
web_bundle: false # BMB workflows run locally in BMAD-METHOD project

View File

@@ -0,0 +1,112 @@
# Edit Agent Workflow
Interactive workflow for editing existing BMAD Core agents while maintaining best practices and conventions.
## Purpose
This workflow helps you refine and improve existing agents by:
- Analyzing agents against BMAD Core best practices
- Identifying issues and improvement opportunities
- Providing guided editing for specific aspects
- Validating changes against agent standards
- Ensuring consistency with agent architecture
## When to Use
Use this workflow when you need to:
- Fix issues in existing agents
- Add new menu items or workflows
- Improve agent persona or communication style
- Update configuration handling
- Convert between agent types (full/hybrid/standalone)
- Optimize agent structure and clarity
## What You'll Need
- Path to the agent file you want to edit (.yaml or .md)
- Understanding of what changes you want to make
- Access to the agent documentation (loaded automatically)
## Workflow Steps
1. **Load and analyze target agent** - Provide path to agent file
2. **Analyze against best practices** - Automatic audit of agent structure
3. **Select editing focus** - Choose what aspect to edit
4. **Load relevant documentation** - Auto-loads guides based on your choice
5. **Perform edits** - Review and approve changes iteratively
6. **Validate all changes** - Comprehensive validation checklist
7. **Generate change summary** - Summary of improvements made
## Editing Options
The workflow provides 12 focused editing options:
1. **Fix critical issues** - Address broken references, syntax errors
2. **Add/fix standard config** - Ensure config loading and variable usage
3. **Refine persona** - Improve role, communication style, principles
4. **Update activation** - Modify activation steps and greeting
5. **Manage menu items** - Add, remove, or reorganize commands
6. **Update workflow references** - Fix paths, add new workflows
7. **Enhance menu handlers** - Improve handler logic
8. **Improve command triggers** - Refine asterisk commands
9. **Optimize agent type** - Convert between full/hybrid/standalone
10. **Add new capabilities** - Add menu items, workflows, features
11. **Remove bloat** - Delete unused commands, redundant instructions
12. **Full review and update** - Comprehensive improvements
## Agent Documentation Loaded
This workflow automatically loads:
- **Agent Types Guide** - Understanding full, hybrid, and standalone agents
- **Agent Architecture** - Structure, activation, and menu patterns
- **Command Patterns** - Menu handlers and command triggers
- **Communication Styles** - Persona and communication guidance
- **Workflow Execution Engine** - How agents execute workflows
## Output
The workflow modifies your agent file in place, maintaining the original format (YAML or markdown). Changes are reviewed and approved by you before being applied.
## Best Practices
- **Start with analysis** - Let the workflow audit your agent first
- **Focus your edits** - Choose specific aspects to improve
- **Review each change** - Approve or modify proposed changes
- **Validate thoroughly** - Use the validation step to catch issues
- **Test after editing** - Invoke the edited agent to verify it works
## Tips
- If you're unsure what needs improvement, choose option 12 (Full review)
- For quick fixes, choose the specific option (like option 6 for workflow paths)
- The workflow loads documentation automatically - you don't need to read it first
- You can make multiple rounds of edits in one session
- Use the validation step to ensure you didn't miss anything
## Related Workflows
- **create-agent** - Create new agents from scratch
- **edit-workflow** - Edit workflows referenced by agents
- **audit-workflow** - Audit workflows for compliance
## Example Usage
```
User: I want to add a new workflow to the PM agent
Workflow: Analyzes agent → Loads it → You choose option 5 (manage menu items)
→ Adds new menu item with workflow reference → Validates → Done
```
## Activation
Invoke via BMad Builder agent:
```
/bmad:bmb:agents:bmad-builder
Then select: *edit-agent
```
Or directly via workflow.xml with this workflow config.

View File

@@ -0,0 +1,112 @@
# Edit Agent - Validation Checklist
Use this checklist to validate agent edits meet BMAD Core standards.
## Agent Structure Validation
- [ ] Agent file format is valid (YAML or markdown/XML)
- [ ] Agent type is clearly identified (full, hybrid, standalone)
- [ ] File naming follows convention: `{agent-name}.agent.yaml` or `{agent-name}.agent.md`
## Persona Validation
- [ ] Role is clearly defined and specific
- [ ] Identity/purpose articulates what the agent does
- [ ] Communication style is specified (if custom style desired)
- [ ] Principles are listed and actionable (if applicable)
## Activation Validation
- [ ] Step 1: Loads persona from current agent file
- [ ] Step 2: Loads config file (if agent needs user context)
- [ ] Step 3: Sets user context variables (user_name, etc.)
- [ ] Step 4: Displays greeting using user_name and shows menu
- [ ] Step 5: WAITs for user input (doesn't auto-execute)
- [ ] Step 6: Processes user selection (number or trigger text)
- [ ] Step 7: Executes appropriate menu handler
## Menu Validation
- [ ] All menu items numbered sequentially
- [ ] Each item has cmd attribute with asterisk trigger (*help, *create, etc.)
- [ ] Workflow paths are correct (if workflow attribute present)
- [ ] Help command is present (\*help)
- [ ] Exit command is present (\*exit)
- [ ] Menu items are in logical order
## Configuration Validation
- [ ] Config file path is correct for module
- [ ] Config variables loaded in activation step 2
- [ ] Error handling present if config fails to load
- [ ] user_name used in greeting and communication
- [ ] communication_language used for output
- [ ] output_folder used for file outputs (if applicable)
## Menu Handler Validation
- [ ] menu-handlers section is present
- [ ] Workflow handler loads {project-root}/{bmad_folder}/core/tasks/workflow.xml
- [ ] Workflow handler passes yaml path as 'workflow-config' parameter
- [ ] Handlers check for attributes (workflow, exec, tmpl, data, action)
- [ ] Handler logic is complete and follows patterns
## Workflow Integration Validation
- [ ] All workflow paths exist and are correct
- [ ] Workflow paths use {project-root} variable
- [ ] Workflows are appropriate for agent's purpose
- [ ] Workflow parameters are passed correctly
## Communication Validation
- [ ] Agent communicates in {communication_language}
- [ ] Communication style matches persona
- [ ] Error messages are clear and helpful
- [ ] Confirmation messages for user actions
## Rules Validation
- [ ] Rules section defines agent behavior clearly
- [ ] File loading rules are specified
- [ ] Menu trigger format rules are clear
- [ ] Communication rules align with persona
## Quality Checks
- [ ] No placeholder text remains ({{AGENT_NAME}}, {ROLE}, etc.)
- [ ] No broken references or missing files
- [ ] Syntax is valid (YAML or XML)
- [ ] Indentation is consistent
- [ ] Agent purpose is clear from reading persona alone
## Type-Specific Validation
### Full Agent
- [ ] Has complete menu system with multiple items
- [ ] Loads config file for user context
- [ ] Supports multiple workflows
- [ ] Session management is clear
### Hybrid Agent
- [ ] Simplified activation (may skip some steps)
- [ ] Focused set of workflows
- [ ] May or may not have menu
- [ ] Config loading is appropriate
### Standalone Agent
- [ ] Single focused purpose
- [ ] Minimal activation (1-3 steps)
- [ ] No menu system
- [ ] Direct execution pattern
- [ ] May not need config file
## Final Checks
- [ ] Agent file has been saved
- [ ] File path is in correct module directory
- [ ] Agent is ready for testing
- [ ] Documentation is updated (if needed)

View File

@@ -0,0 +1,290 @@
# Edit Agent - Agent Editor 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/edit-agent/workflow.yaml</critical>
<critical>This workflow uses ADAPTIVE FACILITATION - adjust your communication based on context and user needs</critical>
<critical>The goal is COLLABORATIVE IMPROVEMENT - work WITH the user, not FOR them</critical>
<critical>Communicate all responses in {communication_language}</critical>
<workflow>
<step n="1" goal="Load and deeply understand the target agent">
<ask>What is the path to the agent you want to edit?</ask>
<action>Load the agent file from the provided path</action>
<action>Load ALL agent documentation to inform understanding:
- Agent types guide: {agent_types}
- Agent architecture: {agent_architecture}
- Command patterns: {agent_commands}
- Communication styles: {communication_styles}
- Workflow execution engine: {workflow_execution_engine}
</action>
<action>Analyze the agent structure thoroughly:
- Parse persona (role, identity, communication_style, principles)
- Understand activation flow and steps
- Map menu items and their workflows
- Identify configuration dependencies
- Assess agent type (full, hybrid, standalone)
- Check workflow references for validity
- Evaluate against best practices from loaded guides
</action>
<action>Reflect understanding back to {user_name}:
Present a warm, conversational summary adapted to the agent's complexity:
- What this agent does (its role and purpose)
- How it's structured (type, menu items, workflows)
- What you notice (strengths, potential improvements, issues)
- Your initial assessment of its health
Be conversational, not clinical. Help {user_name} see their agent through your eyes.
</action>
<ask>Does this match your understanding of what this agent should do?</ask>
<template-output>agent_understanding</template-output>
</step>
<step n="2" goal="Discover improvement goals collaboratively">
<critical>Understand WHAT the user wants to improve and WHY before diving into edits</critical>
<action>Engage in collaborative discovery:
Ask open-ended questions to understand their goals:
- What prompted you to want to edit this agent?
- What isn't working the way you'd like?
- Are there specific behaviors you want to change?
- Is there functionality you want to add or remove?
- How do users interact with this agent? What feedback have they given?
Listen for clues about:
- Functional issues (broken references, missing workflows)
- User experience issues (confusing menu, unclear communication)
- Performance issues (too slow, too verbose, not adaptive enough)
- Maintenance issues (hard to update, bloated, inconsistent)
- Integration issues (doesn't work well with other agents/workflows)
</action>
<action>Based on their responses and your analysis from step 1, identify improvement opportunities:
Organize by priority and user goals:
- CRITICAL issues blocking functionality
- IMPORTANT improvements enhancing user experience
- NICE-TO-HAVE enhancements for polish
Present these conversationally, explaining WHY each matters and HOW it would help.
</action>
<action>Collaborate on priorities:
Don't just list options - discuss them:
- "I noticed {{issue}} - this could cause {{problem}}. Does this concern you?"
- "The agent could be more {{improvement}} which would help when {{use_case}}. Worth exploring?"
- "Based on what you said about {{user_goal}}, we might want to {{suggestion}}. Thoughts?"
Let the conversation flow naturally. Build a shared vision of what "better" looks like.
</action>
<template-output>improvement_goals</template-output>
</step>
<step n="3" goal="Facilitate improvements collaboratively" repeat="until-user-satisfied">
<critical>Work iteratively - improve, review, refine. Never dump all changes at once.</critical>
<action>For each improvement area, facilitate collaboratively:
1. **Explain the current state and why it matters**
- Show relevant sections of the agent
- Explain how it works now and implications
- Connect to user's goals from step 2
2. **Propose improvements with rationale**
- Suggest specific changes that align with best practices
- Explain WHY each change helps
- Provide examples from the loaded guides when helpful
- Show before/after comparisons for clarity
3. **Collaborate on the approach**
- Ask if the proposed change addresses their need
- Invite modifications or alternative approaches
- Explain tradeoffs when relevant
- Adapt based on their feedback
4. **Apply changes iteratively**
- Make one focused improvement at a time
- Show the updated section
- Confirm it meets their expectation
- Move to next improvement or refine current one
</action>
<action>Common improvement patterns to facilitate:
**If fixing broken references:**
- Identify all broken paths
- Explain what each reference should point to
- Verify new paths exist before updating
- Update and confirm working
**If refining persona/communication:**
- Review current persona definition
- Discuss desired communication style with examples
- Explore communication styles guide for patterns
- Refine language to match intent
- Test tone with example interactions
**If updating activation:**
- Walk through current activation flow
- Identify bottlenecks or confusion points
- Propose streamlined flow
- Ensure config loading works correctly
- Verify all session variables are set
**If managing menu items:**
- Review current menu organization
- Discuss if structure serves user mental model
- Add/remove/reorganize as needed
- Ensure all workflow references are valid
- Update triggers to be intuitive
**If enhancing menu handlers:**
- Explain current handler logic
- Identify where handlers could be smarter
- Propose enhanced logic based on agent architecture patterns
- Ensure handlers properly invoke workflows
**If optimizing agent type:**
- Discuss whether current type fits use case
- Explain characteristics of full/hybrid/standalone
- If converting, guide through structural changes
- Ensure all pieces align with new type
</action>
<action>Throughout improvements, educate when helpful:
Share insights from the guides naturally:
- "The agent architecture guide suggests {{pattern}} for this scenario"
- "Looking at the command patterns, we could use {{approach}}"
- "The communication styles guide has a great example of {{technique}}"
Connect improvements to broader BMAD principles without being preachy.
</action>
<ask>After each significant change:
- "Does this feel right for what you're trying to achieve?"
- "Want to refine this further, or move to the next improvement?"
- "Is there anything about this change that concerns you?"
</ask>
<template-output>improvement_implementation</template-output>
</step>
<step n="4" goal="Validate improvements holistically">
<action>Run comprehensive validation conversationally:
Don't just check boxes - explain what you're validating and why it matters:
- "Let me verify all the workflow paths resolve correctly..."
- "Checking that the activation flow works smoothly..."
- "Making sure menu handlers are wired up properly..."
- "Validating config loading is robust..."
</action>
<action>Load validation checklist: {installed_path}/checklist.md</action>
<action>Check all items from checklist systematically</action>
<check if="validation_issues_found">
<action>Present issues conversationally:
Explain what's wrong and implications:
- "I found {{issue}} which could cause {{problem}}"
- "The {{component}} needs {{fix}} because {{reason}}"
Propose fixes immediately:
- "I can fix this by {{solution}}. Should I?"
- "We have a couple options here: {{option1}} or {{option2}}. Thoughts?"
</action>
<action>Fix approved issues and re-validate</action>
</check>
<check if="validation_passes">
<action>Confirm success warmly:
"Excellent! Everything validates cleanly:
- All paths resolve correctly
- Activation flow is solid
- Menu structure is clear
- Handlers work properly
- Config loading is robust
Your agent is in great shape."
</action>
</check>
<template-output>validation_results</template-output>
</step>
<step n="5" goal="Review improvements and guide next steps">
<action>Create a conversational summary of what improved:
Tell the story of the transformation:
- "We started with {{initial_state}}"
- "You wanted to {{user_goals}}"
- "We made these key improvements: {{changes_list}}"
- "Now your agent {{improved_capabilities}}"
Highlight the impact:
- "This means users will experience {{benefit}}"
- "The agent is now more {{quality}}"
- "It follows best practices for {{patterns}}"
</action>
<action>Guide next steps based on changes made:
If significant structural changes:
- "Since we restructured the activation, you should test the agent with a real user interaction"
If workflow references changed:
- "The agent now uses {{new_workflows}} - make sure those workflows are up to date"
If this is part of larger module work:
- "This agent is part of {{module}} - consider if other agents need similar improvements"
Be a helpful guide to what comes next, not just a task completer.
</action>
<ask>Would you like to:
- Test the edited agent by invoking it
- Edit another agent
- Make additional refinements to this one
- Return to your module work
</ask>
<template-output>completion_summary</template-output>
</step>
</workflow>

View File

@@ -0,0 +1,35 @@
# Edit Agent - Agent Editor Configuration
name: "edit-agent"
description: "Edit existing BMAD agents while following all best practices and conventions"
author: "BMad"
# Critical variables load from config_source
config_source: "{project-root}/{bmad_folder}/bmb/config.yaml"
communication_language: "{config_source}:communication_language"
user_name: "{config_source}:user_name"
# Required Data Files - Critical for understanding agent conventions
agent_types: "{project-root}/{bmad_folder}/bmb/workflows/create-agent/agent-types.md"
agent_architecture: "{project-root}/{bmad_folder}/bmb/workflows/create-agent/agent-architecture.md"
agent_commands: "{project-root}/{bmad_folder}/bmb/workflows/create-agent/agent-command-patterns.md"
communication_styles: "{project-root}/{bmad_folder}/bmb/workflows/create-agent/communication-styles.md"
# Workflow execution engine reference
workflow_execution_engine: "{project-root}/{bmad_folder}/core/tasks/workflow.xml"
# Optional docs that can be used to understand the target agent
recommended_inputs:
- target_agent: "Path to the agent.yaml or agent.md file to edit"
- example_agents: "{project-root}/{bmad_folder}/bmm/agents/"
- agent_activation_rules: "{project-root}/src/utility/models/agent-activation-ide.xml"
# Module path and component files
installed_path: "{project-root}/{bmad_folder}/bmb/workflows/edit-agent"
template: false # This is an action workflow - no template needed
instructions: "{installed_path}/instructions.md"
validation: "{installed_path}/checklist.md"
standalone: true
# Web bundle configuration
web_bundle: false # BMB workflows run locally in BMAD-METHOD project

View File

@@ -0,0 +1,187 @@
# Edit Module Workflow
Interactive workflow for editing existing BMAD modules, including structure, agents, workflows, configuration, and documentation.
## Purpose
This workflow helps you improve and maintain BMAD modules by:
- Analyzing module structure against best practices
- Managing agents and workflows within the module
- Updating configuration and documentation
- Ensuring cross-module integration works correctly
- Maintaining installer configuration (for source modules)
## When to Use
Use this workflow when you need to:
- Add new agents or workflows to a module
- Update module configuration
- Improve module documentation
- Reorganize module structure
- Set up cross-module workflow sharing
- Fix issues in module organization
- Update installer configuration
## What You'll Need
- Path to the module directory you want to edit
- Understanding of what changes you want to make
- Access to module documentation (loaded automatically)
## Workflow Steps
1. **Load and analyze target module** - Provide path to module directory
2. **Analyze against best practices** - Automatic audit of module structure
3. **Select editing focus** - Choose what aspect to edit
4. **Load relevant documentation and tools** - Auto-loads guides and workflows
5. **Perform edits** - Review and approve changes iteratively
6. **Validate all changes** - Comprehensive validation checklist
7. **Generate change summary** - Summary of improvements made
## Editing Options
The workflow provides 12 focused editing options:
1. **Fix critical issues** - Address missing files, broken references
2. **Update module config** - Edit config.yaml fields
3. **Manage agents** - Add, edit, or remove agents
4. **Manage workflows** - Add, edit, or remove workflows
5. **Update documentation** - Improve README files and guides
6. **Reorganize structure** - Fix directory organization
7. **Add new agent** - Create and integrate new agent
8. **Add new workflow** - Create and integrate new workflow
9. **Update installer** - Modify installer configuration (source only)
10. **Cross-module integration** - Set up workflow sharing with other modules
11. **Remove deprecated items** - Delete unused agents, workflows, or files
12. **Full module review** - Comprehensive analysis and improvements
## Integration with Other Workflows
This workflow integrates with:
- **edit-agent** - For editing individual agents
- **edit-workflow** - For editing individual workflows
- **create-agent** - For adding new agents
- **create-workflow** - For adding new workflows
When you select options to manage agents or workflows, the appropriate specialized workflow is invoked automatically.
## Module Structure
A proper BMAD module has:
```
module-code/
├── agents/ # Agent definitions
│ └── *.agent.yaml
├── workflows/ # Workflow definitions
│ └── workflow-name/
│ ├── workflow.yaml
│ ├── instructions.md
│ ├── checklist.md
│ └── README.md
├── config.yaml # Module configuration
└── README.md # Module documentation
```
## Standard Module Config
Every module config.yaml should have:
```yaml
module_name: 'Full Module Name'
module_code: 'xyz'
user_name: 'User Name'
communication_language: 'english'
output_folder: 'path/to/output'
```
Optional fields may be added for module-specific needs.
## Cross-Module Integration
Modules can share workflows:
```yaml
# In agent menu item:
workflow: '{project-root}/{bmad_folder}/other-module/workflows/shared-workflow/workflow.yaml'
```
Common patterns:
- BMM uses CIS brainstorming workflows
- All modules can use core workflows
- Modules can invoke each other's workflows
## Output
The workflow modifies module files in place, including:
- config.yaml
- Agent files
- Workflow files
- README and documentation files
- Directory structure (if reorganizing)
Changes are reviewed and approved by you before being applied.
## Best Practices
- **Start with analysis** - Let the workflow audit your module first
- **Use specialized workflows** - Let edit-agent and edit-workflow handle detailed edits
- **Update documentation** - Keep README files current with changes
- **Validate thoroughly** - Use the validation step to catch structural issues
- **Test after editing** - Invoke agents and workflows to verify they work
## Tips
- For adding agents/workflows, use options 7-8 to create and integrate in one step
- For quick config changes, use option 2 (update module config)
- Cross-module integration (option 10) helps set up workflow sharing
- Full module review (option 12) is great for inherited or legacy modules
- The workflow handles path updates when you reorganize structure
## Source vs Installed Modules
**Source modules** (in src/modules/):
- Have installer files in tools/cli/installers/
- Can configure web bundles
- Are the development source of truth
**Installed modules** (in {bmad_folder}/):
- Are deployed to target projects
- Use config.yaml for user customization
- Are compiled from source during installation
This workflow works with both, but installer options only apply to source modules.
## Example Usage
```
User: I want to add a new workflow to BMM for API design
Workflow: Analyzes BMM → You choose option 8 (add new workflow)
→ Invokes create-workflow → Creates workflow
→ Integrates it into module → Updates README → Done
```
## Activation
Invoke via BMad Builder agent:
```
/bmad:bmb:agents:bmad-builder
Then select: *edit-module
```
Or directly via workflow.xml with this workflow config.
## Related Resources
- **Module Structure Guide** - Comprehensive module architecture documentation
- **BMM Module** - Example of full-featured module
- **BMB Module** - Example of builder/tooling module
- **CIS Module** - Example of workflow library module

View File

@@ -0,0 +1,165 @@
# Edit Module - Validation Checklist
Use this checklist to validate module edits meet BMAD Core standards.
## Module Structure Validation
- [ ] Module has clear 3-letter code (bmm, bmb, cis, etc.)
- [ ] Module is in correct location (src/modules/ for source, {bmad_folder}/ for installed)
- [ ] agents/ directory exists
- [ ] workflows/ directory exists
- [ ] config.yaml exists in module root
- [ ] README.md exists in module root
- [ ] Directory structure follows BMAD conventions
## Configuration Validation
### Required Fields
- [ ] module_name is descriptive and clear
- [ ] module_code is 3-letter code matching directory name
- [ ] user_name field present
- [ ] communication_language field present
- [ ] output_folder field present
### Optional Fields (if used)
- [ ] custom_agent_location documented
- [ ] custom_module_location documented
- [ ] Module-specific fields documented in README
### File Quality
- [ ] config.yaml is valid YAML syntax
- [ ] No duplicate keys
- [ ] Values are appropriate types (strings, paths, etc.)
- [ ] Comments explain non-obvious fields
## Agent Validation
### Agent Files
- [ ] All agents in agents/ directory
- [ ] Agent files follow naming: {agent-name}.agent.yaml or .md
- [ ] Agent filenames use kebab-case
- [ ] No orphaned or temporary agent files
### Agent Content
- [ ] Each agent has clear role and purpose
- [ ] Agents reference workflows correctly
- [ ] Agent workflow paths are valid
- [ ] Agents load module config correctly (if needed)
- [ ] Agent menu items reference existing workflows
### Agent Integration
- [ ] All agents listed in module README
- [ ] Agent relationships documented (if applicable)
- [ ] Cross-agent workflows properly linked
## Workflow Validation
### Workflow Structure
- [ ] All workflows in workflows/ directory
- [ ] Each workflow directory has workflow.yaml
- [ ] Each workflow directory has instructions.md
- [ ] Workflow directories use kebab-case naming
- [ ] No orphaned or incomplete workflow directories
### Workflow Content
- [ ] workflow.yaml is valid YAML
- [ ] workflow.yaml has name field
- [ ] workflow.yaml has description field
- [ ] workflow.yaml has author field
- [ ] instructions.md has proper <workflow> structure
- [ ] Workflow steps are numbered and logical
### Workflow Integration
- [ ] All workflows listed in module README
- [ ] Workflow paths in agents are correct
- [ ] Cross-module workflow references are valid
- [ ] Sub-workflow references exist
## Documentation Validation
### Module README
- [ ] Module README describes purpose clearly
- [ ] README lists all agents with descriptions
- [ ] README lists all workflows with descriptions
- [ ] README includes installation instructions (if applicable)
- [ ] README explains module's role in BMAD ecosystem
### Workflow READMEs
- [ ] Each workflow has its own README.md
- [ ] Workflow READMEs explain purpose
- [ ] Workflow READMEs list inputs/outputs
- [ ] Workflow READMEs include usage examples
### Other Documentation
- [ ] Usage guides present (if needed)
- [ ] Architecture docs present (if complex module)
- [ ] Examples provided (if applicable)
## Cross-References Validation
- [ ] Agent workflow references point to existing workflows
- [ ] Workflow sub-workflow references are valid
- [ ] Cross-module references use correct paths
- [ ] Config file paths use {project-root} correctly
- [ ] No hardcoded absolute paths
## Installer Validation (Source Modules Only)
- [ ] Installer script exists in tools/cli/installers/
- [ ] Installer script name: install-{module-code}.js
- [ ] Module metadata in installer is correct
- [ ] Web bundle configuration valid (if applicable)
- [ ] Installation paths are correct
- [ ] Dependencies documented in installer
## Web Bundle Validation (If Applicable)
- [ ] Web bundles configured in workflow.yaml files
- [ ] All referenced files included in web_bundle_files
- [ ] Paths are {bmad_folder}/-relative (not project-root)
- [ ] No config_source references in web bundles
- [ ] Invoked workflows included in dependencies
## Quality Checks
- [ ] No placeholder text remains ({MODULE_NAME}, {CODE}, etc.)
- [ ] No broken file references
- [ ] No duplicate content across files
- [ ] Consistent naming conventions throughout
- [ ] Module purpose is clear from README alone
## Integration Checks
- [ ] Module doesn't conflict with other modules
- [ ] Shared resources properly documented
- [ ] Dependencies on other modules explicit
- [ ] Module can be installed independently (if designed that way)
## User Experience
- [ ] Module purpose is immediately clear
- [ ] Agents have intuitive names
- [ ] Workflows have descriptive names
- [ ] Menu items are logically organized
- [ ] Error messages are helpful
- [ ] Success messages confirm actions
## Final Checks
- [ ] All files have been saved
- [ ] File permissions are correct
- [ ] Git status shows expected changes
- [ ] Module is ready for testing
- [ ] Documentation accurately reflects changes

View File

@@ -0,0 +1,339 @@
# Edit Module - Module Editor 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/edit-module/workflow.yaml</critical>
<critical>This workflow uses ADAPTIVE FACILITATION - adjust your communication based on context and user needs</critical>
<critical>The goal is COLLABORATIVE IMPROVEMENT - work WITH the user, not FOR them</critical>
<critical>Communicate all responses in {communication_language}</critical>
<workflow>
<step n="1" goal="Load and deeply understand the target module">
<ask>What is the path to the module you want to edit? (provide path to module directory like {bmad_folder}/bmm/ or src/modules/bmm/)</ask>
<action>Load the module directory structure completely:
- Scan all directories and files
- Load config.yaml
- Load README.md
- List all agents in agents/ directory
- List all workflows in workflows/ directory
- Check for installer files (if in src/modules/)
- Identify any custom structure or patterns
</action>
<action>Load ALL module documentation to inform understanding:
- Module structure guide: {module_structure_guide}
- Study reference modules: BMM, BMB, CIS
- Understand BMAD module patterns and conventions
</action>
<action>Analyze the module deeply:
- Identify module purpose and role in BMAD ecosystem
- Understand agent organization and relationships
- Map workflow organization and dependencies
- Evaluate config structure and completeness
- Check documentation quality and currency
- Assess installer configuration (if source module)
- Identify cross-module integrations
- Evaluate against best practices from loaded guides
</action>
<action>Reflect understanding back to {user_name}:
Present a warm, conversational summary adapted to the module's complexity:
- What this module provides (its purpose and value in BMAD)
- How it's organized (agents, workflows, structure)
- What you notice (strengths, potential improvements, issues)
- How it fits in the larger BMAD ecosystem
- Your initial assessment based on best practices
Be conversational and insightful. Help {user_name} see their module through your eyes.
</action>
<ask>Does this match your understanding of what this module should provide?</ask>
<template-output>module_understanding</template-output>
</step>
<step n="2" goal="Discover improvement goals collaboratively">
<critical>Understand WHAT the user wants to improve and WHY before diving into edits</critical>
<action>Engage in collaborative discovery:
Ask open-ended questions to understand their goals:
- What prompted you to want to edit this module?
- What feedback have you gotten from users of this module?
- Are there specific agents or workflows that need attention?
- Is the module fulfilling its intended purpose?
- Are there new capabilities you want to add?
- How well does it integrate with other modules?
- Is the documentation helping users understand and use the module?
Listen for clues about:
- Structural issues (poor organization, hard to navigate)
- Agent/workflow issues (outdated, broken, missing functionality)
- Configuration issues (missing fields, incorrect setup)
- Documentation issues (outdated, incomplete, unclear)
- Integration issues (doesn't work well with other modules)
- Installer issues (installation problems, missing files)
- User experience issues (confusing, hard to use)
</action>
<action>Based on their responses and your analysis from step 1, identify improvement opportunities:
Organize by priority and user goals:
- CRITICAL issues blocking module functionality
- IMPORTANT improvements enhancing user experience
- NICE-TO-HAVE enhancements for polish
Present these conversationally, explaining WHY each matters and HOW it would help.
</action>
<action>Collaborate on priorities:
Don't just list options - discuss them:
- "I noticed {{issue}} - this could make it hard for users to {{problem}}. Want to address this?"
- "The module could be more {{improvement}} which would help when {{use_case}}. Worth exploring?"
- "Based on what you said about {{user_goal}}, we might want to {{suggestion}}. Thoughts?"
Let the conversation flow naturally. Build a shared vision of what "better" looks like.
</action>
<template-output>improvement_goals</template-output>
</step>
<step n="3" goal="Facilitate improvements collaboratively" repeat="until-user-satisfied">
<critical>Work iteratively - improve, review, refine. Never dump all changes at once.</critical>
<critical>For agent and workflow edits, invoke specialized workflows rather than doing inline</critical>
<action>For each improvement area, facilitate collaboratively:
1. **Explain the current state and why it matters**
- Show relevant sections of the module
- Explain how it works now and implications
- Connect to user's goals from step 2
2. **Propose improvements with rationale**
- Suggest specific changes that align with best practices
- Explain WHY each change helps
- Provide examples from reference modules when helpful
- Reference the structure guide's patterns naturally
3. **Collaborate on the approach**
- Ask if the proposed change addresses their need
- Invite modifications or alternative approaches
- Explain tradeoffs when relevant
- Adapt based on their feedback
4. **Apply changes appropriately**
- For agent edits: Invoke edit-agent workflow
- For workflow edits: Invoke edit-workflow workflow
- For module-level changes: Make directly and iteratively
- Show updates and confirm satisfaction
</action>
<action>Common improvement patterns to facilitate:
**If improving module organization:**
- Discuss how the current structure serves (or doesn't serve) users
- Propose reorganization that aligns with mental models
- Consider feature-based vs type-based organization
- Plan the reorganization steps
- Update all references after moving files
**If updating module configuration:**
- Review current config.yaml fields
- Check for missing standard fields (user_name, communication_language, output_folder)
- Add module-specific fields as needed
- Remove unused or outdated fields
- Ensure config is properly documented
**If managing agents:**
- Ask which agent needs attention and why
- For editing existing agent: <invoke-workflow path="{agent_editor}">
- For adding new agent: Guide creation and integration
- For removing agent: Confirm, remove, update references
- Ensure all agent references in workflows remain valid
**If managing workflows:**
- Ask which workflow needs attention and why
- For editing existing workflow: <invoke-workflow path="{workflow_editor}">
- For adding new workflow: Guide creation and integration
- For removing workflow: Confirm, remove, update agent references
- Ensure all workflow files are properly organized
**If improving documentation:**
- Review current README and identify gaps
- Discuss what users need to know
- Update module overview and purpose
- List agents and workflows with clear descriptions
- Add usage examples if helpful
- Ensure installation/setup instructions are clear
**If setting up cross-module integration:**
- Identify which workflows from other modules are needed
- Show how to reference workflows properly: {project-root}/{bmad_folder}/{{module}}/workflows/{{workflow}}/workflow.yaml
- Document the integration in README
- Ensure dependencies are clear
- Consider adding example usage
**If updating installer (source modules only):**
- Review installer script for correctness
- Check web bundle configurations
- Verify all files are included
- Test installation paths
- Update module metadata
</action>
<action>When invoking specialized workflows:
Explain why you're handing off:
- "This agent needs detailed attention. Let me invoke the edit-agent workflow to give it proper focus."
- "The workflow editor can handle this more thoroughly. I'll pass control there."
After the specialized workflow completes, return and continue:
- "Great! That agent/workflow is updated. Want to work on anything else in the module?"
</action>
<action>Throughout improvements, educate when helpful:
Share insights from the guides naturally:
- "The module structure guide recommends {{pattern}} for this scenario"
- "Looking at how BMM organized this, we could use {{approach}}"
- "The BMAD convention is to {{pattern}} which helps with {{benefit}}"
Connect improvements to broader BMAD principles without being preachy.
</action>
<ask>After each significant change:
- "Does this organization feel more intuitive?"
- "Want to refine this further, or move to the next improvement?"
- "How does this change affect users of the module?"
</ask>
<template-output>improvement_implementation</template-output>
</step>
<step n="4" goal="Validate improvements holistically">
<action>Run comprehensive validation conversationally:
Don't just check boxes - explain what you're validating and why it matters:
- "Let me verify the module structure is solid..."
- "Checking that all agent workflow references are valid..."
- "Making sure config.yaml has all necessary fields..."
- "Validating documentation is complete and accurate..."
- "Ensuring cross-module references work correctly..."
</action>
<action>Load validation checklist: {installed_path}/checklist.md</action>
<action>Check all items from checklist systematically</action>
<check if="validation_issues_found">
<action>Present issues conversationally:
Explain what's wrong and implications:
- "I found {{issue}} which could cause {{problem}} for users"
- "The {{component}} needs {{fix}} because {{reason}}"
Propose fixes immediately:
- "I can fix this by {{solution}}. Should I?"
- "We have a couple options here: {{option1}} or {{option2}}. Thoughts?"
</action>
<action>Fix approved issues and re-validate</action>
</check>
<check if="validation_passes">
<action>Confirm success warmly:
"Excellent! Everything validates cleanly:
- Module structure is well-organized
- All agent and workflow references are valid
- Configuration is complete
- Documentation is thorough and current
- Cross-module integrations work properly
- Installer is correct (if applicable)
Your module is in great shape."
</action>
</check>
<template-output>validation_results</template-output>
</step>
<step n="5" goal="Review improvements and guide next steps">
<action>Create a conversational summary of what improved:
Tell the story of the transformation:
- "We started with {{initial_state}}"
- "You wanted to {{user_goals}}"
- "We made these key improvements: {{changes_list}}"
- "Now your module {{improved_capabilities}}"
Highlight the impact:
- "This means users will experience {{benefit}}"
- "The module is now more {{quality}}"
- "It follows best practices for {{patterns}}"
</action>
<action>Guide next steps based on changes made:
If structure changed significantly:
- "Since we reorganized the structure, you should update any external references to this module"
If agents or workflows were updated:
- "The updated agents/workflows should be tested with real user interactions"
If cross-module integration was added:
- "Test the integration with {{other_module}} to ensure it works smoothly"
If installer was updated:
- "Test the installation process to verify all files are included correctly"
If this is part of larger BMAD work:
- "Consider if patterns from this module could benefit other modules"
Be a helpful guide to what comes next, not just a task completer.
</action>
<ask>Would you like to:
- Test the edited module by invoking one of its agents
- Edit a specific agent or workflow in more detail
- Make additional refinements to the module
- Work on a different module
</ask>
<template-output>completion_summary</template-output>
</step>
</workflow>

View File

@@ -0,0 +1,36 @@
# Edit Module - Module Editor Configuration
name: "edit-module"
description: "Edit existing BMAD modules (structure, agents, workflows, documentation) while following all best practices"
author: "BMad"
# Critical variables load from config_source
config_source: "{project-root}/{bmad_folder}/bmb/config.yaml"
communication_language: "{config_source}:communication_language"
user_name: "{config_source}:user_name"
# Required Data Files - Critical for understanding module conventions
module_structure_guide: "{project-root}/{bmad_folder}/bmb/workflows/create-module/module-structure.md"
# Related workflow editors
agent_editor: "{project-root}/{bmad_folder}/bmb/workflows/edit-agent/workflow.yaml"
workflow_editor: "{project-root}/{bmad_folder}/bmb/workflows/edit-workflow/workflow.yaml"
# Optional docs that can be used to understand the target module
recommended_inputs:
- target_module: "Path to the module directory to edit"
- bmm_module: "{project-root}/{bmad_folder}/bmm/"
- bmb_module: "{project-root}/{bmad_folder}/bmb/"
- cis_module: "{project-root}/{bmad_folder}/cis/"
- existing_agents: "{project-root}/{bmad_folder}/*/agents/"
- existing_workflows: "{project-root}/{bmad_folder}/*/workflows/"
# Module path and component files
installed_path: "{project-root}/{bmad_folder}/bmb/workflows/edit-module"
template: false # This is an action workflow - no template needed
instructions: "{installed_path}/instructions.md"
validation: "{installed_path}/checklist.md"
standalone: true
# Web bundle configuration
web_bundle: false # BMB workflows run locally in BMAD-METHOD project

View File

@@ -43,8 +43,64 @@ Or through a BMAD agent:
2. **Prioritized Issues**: Identifies and ranks issues by importance
3. **Guided Editing**: Step-by-step process with explanations
4. **Best Practices**: Ensures all edits follow BMAD conventions
5. **Validation**: Checks all changes for correctness
6. **Change Tracking**: Documents what was modified and why
5. **Instruction Style Optimization**: Convert between intent-based and prescriptive styles
6. **Validation**: Checks all changes for correctness
7. **Change Tracking**: Documents what was modified and why
## Understanding Instruction Styles
When editing workflows, one powerful option is **adjusting the instruction style** to better match the workflow's purpose.
### Intent-Based vs Prescriptive Instructions
**Intent-Based (Recommended for most workflows)**
Guides the AI with goals and principles, allowing flexible conversation.
- **More flexible and conversational** - AI adapts to user responses
- **Better for complex discovery** - Requirements gathering, creative exploration
- **Quality over consistency** - Deep understanding matters more
- **Example**: `<action>Guide user to define their target audience with specific demographics and needs</action>`
**When to use:**
- Complex discovery processes (user research, requirements)
- Creative brainstorming and ideation
- Iterative refinement workflows
- Workflows requiring nuanced understanding
**Prescriptive**
Provides exact questions with structured options.
- **More controlled and predictable** - Consistent questions every time
- **Better for simple data collection** - Platform, format, yes/no choices
- **Consistency over quality** - Same execution every run
- **Example**: `<ask>What is your target platform? Choose: PC, Console, Mobile, Web</ask>`
**When to use:**
- Simple data collection (platform, format, binary choices)
- Compliance verification and standards adherence
- Configuration with finite options
- Quick setup wizards
### Edit Workflow's Style Adjustment Feature
The **"Adjust instruction style"** editing option (menu option 11) helps you:
1. **Analyze current style** - Identifies whether workflow is primarily intent-based or prescriptive
2. **Convert between styles** - Transform prescriptive steps to intent-based (or vice versa)
3. **Optimize the mix** - Intelligently recommend the best style for each step
4. **Step-by-step control** - Review and decide on each step individually
**Common scenarios:**
- **Make workflow more conversational**: Convert rigid <ask> tags to flexible <action> tags for complex steps
- **Make workflow more consistent**: Convert open-ended <action> tags to structured <ask> tags for simple data collection
- **Balance both approaches**: Use intent-based for discovery, prescriptive for simple choices
This feature is especially valuable when converting legacy workflows or adapting workflows for different use cases.
## Workflow Steps

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