├── .nvmrc
├── src
├── modules
│ ├── bmb
│ │ ├── docs
│ │ │ ├── agents
│ │ │ │ └── kb.csv
│ │ │ └── workflows
│ │ │ │ └── kb.csv
│ │ ├── workflows
│ │ │ ├── create-agent
│ │ │ │ ├── templates
│ │ │ │ │ └── agent-plan.template.md
│ │ │ │ └── data
│ │ │ │ │ ├── reference
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── workflows
│ │ │ │ │ │ └── meal-prep-nutrition
│ │ │ │ │ │ │ ├── templates
│ │ │ │ │ │ │ ├── strategy-section.md
│ │ │ │ │ │ │ ├── prep-schedule-section.md
│ │ │ │ │ │ │ ├── assessment-section.md
│ │ │ │ │ │ │ ├── shopping-section.md
│ │ │ │ │ │ │ └── profile-section.md
│ │ │ │ │ │ │ └── data
│ │ │ │ │ │ │ ├── macro-calculator.csv
│ │ │ │ │ │ │ └── dietary-restrictions.csv
│ │ │ │ │ └── agents
│ │ │ │ │ │ └── expert-examples
│ │ │ │ │ │ └── journal-keeper
│ │ │ │ │ │ └── journal-keeper-sidecar
│ │ │ │ │ │ ├── breakthroughs.md
│ │ │ │ │ │ ├── mood-patterns.md
│ │ │ │ │ │ └── memories.md
│ │ │ │ │ └── info-and-installation-guide.md
│ │ │ ├── create-module
│ │ │ │ └── templates
│ │ │ │ │ ├── module-plan.template.md
│ │ │ │ │ └── workflow-plan-template.md
│ │ │ └── edit-workflow
│ │ │ │ └── templates
│ │ │ │ ├── improvement-log.md
│ │ │ │ ├── validation-results.md
│ │ │ │ ├── improvement-goals.md
│ │ │ │ └── workflow-analysis.md
│ │ ├── reference
│ │ │ ├── readme.md
│ │ │ ├── workflows
│ │ │ │ └── meal-prep-nutrition
│ │ │ │ │ ├── templates
│ │ │ │ │ ├── strategy-section.md
│ │ │ │ │ ├── prep-schedule-section.md
│ │ │ │ │ ├── assessment-section.md
│ │ │ │ │ ├── shopping-section.md
│ │ │ │ │ └── profile-section.md
│ │ │ │ │ └── data
│ │ │ │ │ ├── macro-calculator.csv
│ │ │ │ │ └── dietary-restrictions.csv
│ │ │ └── agents
│ │ │ │ └── expert-examples
│ │ │ │ └── journal-keeper
│ │ │ │ └── journal-keeper-sidecar
│ │ │ │ ├── breakthroughs.md
│ │ │ │ ├── mood-patterns.md
│ │ │ │ └── memories.md
│ │ └── module.yaml
│ ├── bmgd
│ │ ├── docs
│ │ │ └── workflow-overview.jpg
│ │ ├── workflows
│ │ │ ├── 3-technical
│ │ │ │ ├── generate-project-context
│ │ │ │ │ └── project-context-template.md
│ │ │ │ └── game-architecture
│ │ │ │ │ └── pattern-categories.csv
│ │ │ ├── 4-production
│ │ │ │ ├── code-review
│ │ │ │ │ ├── backlog-template.md
│ │ │ │ │ └── checklist.md
│ │ │ │ ├── create-story
│ │ │ │ │ └── template.md
│ │ │ │ ├── sprint-planning
│ │ │ │ │ └── checklist.md
│ │ │ │ └── sprint-status
│ │ │ │ │ └── workflow.yaml
│ │ │ ├── bmgd-quick-flow
│ │ │ │ ├── quick-prototype
│ │ │ │ │ ├── checklist.md
│ │ │ │ │ └── workflow.yaml
│ │ │ │ ├── quick-dev
│ │ │ │ │ └── checklist.md
│ │ │ │ └── create-tech-spec
│ │ │ │ │ └── workflow.yaml
│ │ │ ├── workflow-status
│ │ │ │ ├── paths
│ │ │ │ │ ├── quickflow-brownfield.yaml
│ │ │ │ │ └── quickflow-greenfield.yaml
│ │ │ │ ├── workflow-status-template.yaml
│ │ │ │ ├── init
│ │ │ │ │ └── workflow.yaml
│ │ │ │ └── workflow.yaml
│ │ │ ├── 2-design
│ │ │ │ └── gdd
│ │ │ │ │ └── game-types
│ │ │ │ │ ├── action-platformer.md
│ │ │ │ │ ├── puzzle.md
│ │ │ │ │ ├── rpg.md
│ │ │ │ │ └── roguelike.md
│ │ │ └── gametest
│ │ │ │ ├── test-review
│ │ │ │ └── workflow.yaml
│ │ │ │ └── performance
│ │ │ │ └── workflow.yaml
│ │ ├── _module-installer
│ │ │ └── platform-specifics
│ │ │ │ ├── windsurf.js
│ │ │ │ └── claude-code.js
│ │ └── teams
│ │ │ └── team-gamedev.yaml
│ ├── bmm
│ │ ├── sub-modules
│ │ │ └── claude-code
│ │ │ │ └── config.yaml
│ │ ├── workflows
│ │ │ ├── 3-solutioning
│ │ │ │ ├── check-implementation-readiness
│ │ │ │ │ └── templates
│ │ │ │ │ │ └── readiness-report-template.md
│ │ │ │ ├── create-architecture
│ │ │ │ │ ├── architecture-decision-template.md
│ │ │ │ │ └── data
│ │ │ │ │ │ └── project-types.csv
│ │ │ │ └── create-epics-and-stories
│ │ │ │ │ └── templates
│ │ │ │ │ └── epics-template.md
│ │ │ ├── 1-analysis
│ │ │ │ ├── create-product-brief
│ │ │ │ │ └── product-brief.template.md
│ │ │ │ └── research
│ │ │ │ │ └── research.template.md
│ │ │ ├── 2-plan-workflows
│ │ │ │ ├── create-ux-design
│ │ │ │ │ └── ux-design-template.md
│ │ │ │ └── prd
│ │ │ │ │ └── prd-template.md
│ │ │ ├── generate-project-context
│ │ │ │ └── project-context-template.md
│ │ │ ├── bmad-quick-flow
│ │ │ │ ├── quick-dev
│ │ │ │ │ ├── checklist.md
│ │ │ │ │ └── workflow.yaml
│ │ │ │ └── create-tech-spec
│ │ │ │ │ └── workflow.yaml
│ │ │ ├── workflow-status
│ │ │ │ ├── workflow-status-template.yaml
│ │ │ │ ├── init
│ │ │ │ │ └── workflow.yaml
│ │ │ │ └── workflow.yaml
│ │ │ ├── 4-implementation
│ │ │ │ ├── dev-story
│ │ │ │ │ └── workflow.yaml
│ │ │ │ ├── create-story
│ │ │ │ │ └── template.md
│ │ │ │ ├── code-review
│ │ │ │ │ └── checklist.md
│ │ │ │ ├── sprint-status
│ │ │ │ │ └── workflow.yaml
│ │ │ │ └── sprint-planning
│ │ │ │ │ └── checklist.md
│ │ │ ├── excalidraw-diagrams
│ │ │ │ ├── create-dataflow
│ │ │ │ │ ├── workflow.yaml
│ │ │ │ │ └── checklist.md
│ │ │ │ ├── create-wireframe
│ │ │ │ │ ├── checklist.md
│ │ │ │ │ └── workflow.yaml
│ │ │ │ ├── create-flowchart
│ │ │ │ │ └── workflow.yaml
│ │ │ │ └── create-diagram
│ │ │ │ │ ├── workflow.yaml
│ │ │ │ │ └── checklist.md
│ │ │ └── document-project
│ │ │ │ ├── workflows
│ │ │ │ ├── full-scan.yaml
│ │ │ │ └── deep-dive.yaml
│ │ │ │ └── workflow.yaml
│ │ ├── teams
│ │ │ └── team-fullstack.yaml
│ │ ├── data
│ │ │ └── README.md
│ │ ├── _module-installer
│ │ │ └── platform-specifics
│ │ │ │ ├── windsurf.js
│ │ │ │ └── claude-code.js
│ │ └── docs
│ │ │ └── images
│ │ │ └── README.md
│ └── cis
│ │ ├── agents
│ │ ├── storyteller
│ │ │ └── storyteller-sidecar
│ │ │ │ ├── stories-told.md
│ │ │ │ └── story-preferences.md
│ │ ├── design-thinking-coach.agent.yaml
│ │ ├── brainstorming-coach.agent.yaml
│ │ ├── innovation-strategist.agent.yaml
│ │ └── creative-problem-solver.agent.yaml
│ │ ├── teams
│ │ └── creative-squad.yaml
│ │ └── module.yaml
├── utility
│ └── agent-components
│ │ ├── menu-handlers.txt
│ │ ├── agent-command-header.md
│ │ ├── handler-action.txt
│ │ ├── handler-data.txt
│ │ ├── handler-tmpl.txt
│ │ ├── handler-exec.txt
│ │ ├── activation-rules.txt
│ │ ├── handler-validate-workflow.txt
│ │ ├── handler-workflow.txt
│ │ ├── handler-multi.txt
│ │ ├── agent.customize.template.yaml
│ │ └── activation-steps.txt
└── core
│ ├── workflows
│ └── brainstorming
│ │ └── template.md
│ ├── module.yaml
│ └── resources
│ └── excalidraw
│ └── library-loader.md
├── .npmrc
├── tools
├── cli
│ ├── README.md
│ ├── installers
│ │ └── lib
│ │ │ └── ide
│ │ │ └── templates
│ │ │ ├── workflow-commander.md
│ │ │ ├── gemini-task-command.toml
│ │ │ ├── agent-command-template.md
│ │ │ ├── workflow-command-template.md
│ │ │ └── gemini-agent-command.toml
│ ├── commands
│ │ ├── update.js
│ │ ├── list.js
│ │ └── uninstall.js
│ └── bmad-cli.js
├── lib
│ └── xml-utils.js
├── flattener
│ ├── files.js
│ └── prompts.js
└── bmad-npx-wrapper.js
├── docs
├── sample-custom-modules
│ ├── sample-wellness-module
│ │ ├── agents
│ │ │ └── wellness-companion
│ │ │ │ ├── wellness-companion-sidecar
│ │ │ │ ├── addition1.md
│ │ │ │ ├── memories.md
│ │ │ │ ├── insights.md
│ │ │ │ ├── patterns.md
│ │ │ │ └── instructions.md
│ │ │ │ └── foo.md
│ │ ├── module.yaml
│ │ ├── README.md
│ │ └── workflows
│ │ │ ├── wellness-journal
│ │ │ └── README.md
│ │ │ ├── guided-meditation
│ │ │ └── README.md
│ │ │ └── daily-checkin
│ │ │ └── README.md
│ ├── sample-unitary-module
│ │ ├── module.yaml
│ │ ├── agents
│ │ │ └── toolsmith
│ │ │ │ └── toolsmith-sidecar
│ │ │ │ └── memories.md
│ │ ├── README.md
│ │ └── workflows
│ │ │ ├── quiz-master
│ │ │ ├── templates
│ │ │ │ └── csv-headers.template
│ │ │ └── steps
│ │ │ │ ├── step-04-q3.md
│ │ │ │ ├── step-05-q4.md
│ │ │ │ ├── step-06-q5.md
│ │ │ │ ├── step-07-q6.md
│ │ │ │ ├── step-08-q7.md
│ │ │ │ ├── step-09-q8.md
│ │ │ │ ├── step-10-q9.md
│ │ │ │ └── step-11-q10.md
│ │ │ └── wassup
│ │ │ └── workflow.md
│ └── README.md
├── ide-info
│ ├── codex.md
│ ├── qwen.md
│ ├── kilo.md
│ ├── trae.md
│ ├── gemini.md
│ ├── windsurf.md
│ ├── github-copilot.md
│ ├── claude-code.md
│ ├── cursor.md
│ ├── crush.md
│ ├── roo.md
│ ├── auggie.md
│ ├── iflow.md
│ ├── cline.md
│ └── opencode.md
└── web-bundles-gemini-gpt-guide.md
├── .husky
└── pre-commit
├── test
└── fixtures
│ └── agent-schema
│ ├── invalid
│ ├── top-level
│ │ ├── empty-file.agent.yaml
│ │ ├── missing-agent-key.agent.yaml
│ │ └── extra-top-level-keys.agent.yaml
│ ├── yaml-errors
│ │ ├── malformed-yaml.agent.yaml
│ │ └── invalid-indentation.agent.yaml
│ ├── menu
│ │ ├── missing-menu.agent.yaml
│ │ └── empty-menu.agent.yaml
│ ├── metadata
│ │ ├── missing-id.agent.yaml
│ │ ├── empty-name.agent.yaml
│ │ ├── extra-metadata-fields.agent.yaml
│ │ ├── wrong-module-value.agent.yaml
│ │ ├── empty-module-string.agent.yaml
│ │ ├── core-agent-with-module.agent.yaml
│ │ └── module-agent-missing-module.agent.yaml
│ ├── persona
│ │ ├── missing-role.agent.yaml
│ │ ├── empty-principles-array.agent.yaml
│ │ ├── extra-persona-fields.agent.yaml
│ │ └── empty-string-in-principles.agent.yaml
│ ├── menu-triggers
│ │ ├── empty-trigger.agent.yaml
│ │ ├── camel-case.agent.yaml
│ │ ├── trigger-with-spaces.agent.yaml
│ │ ├── snake-case.agent.yaml
│ │ ├── leading-asterisk.agent.yaml
│ │ └── duplicate-triggers.agent.yaml
│ ├── menu-commands
│ │ ├── empty-command-target.agent.yaml
│ │ └── no-command-target.agent.yaml
│ ├── prompts
│ │ ├── missing-id.agent.yaml
│ │ ├── missing-content.agent.yaml
│ │ ├── empty-content.agent.yaml
│ │ └── extra-prompt-fields.agent.yaml
│ └── critical-actions
│ │ ├── actions-as-string.agent.yaml
│ │ └── empty-string-in-actions.agent.yaml
│ └── valid
│ ├── prompts
│ ├── no-prompts.agent.yaml
│ ├── empty-prompts.agent.yaml
│ ├── valid-prompts-minimal.agent.yaml
│ └── valid-prompts-with-description.agent.yaml
│ ├── menu
│ ├── single-menu-item.agent.yaml
│ └── multiple-menu-items.agent.yaml
│ ├── critical-actions
│ ├── no-critical-actions.agent.yaml
│ ├── empty-critical-actions.agent.yaml
│ └── valid-critical-actions.agent.yaml
│ ├── metadata
│ ├── module-agent-correct.agent.yaml
│ ├── malformed-path-treated-as-core.agent.yaml
│ └── empty-module-name-in-path.agent.yaml
│ ├── menu-commands
│ ├── multiple-commands.agent.yaml
│ └── all-command-types.agent.yaml
│ ├── top-level
│ └── minimal-core-agent.agent.yaml
│ ├── persona
│ └── complete-persona.agent.yaml
│ └── menu-triggers
│ └── kebab-case-triggers.agent.yaml
├── .prettierignore
├── .github
├── ISSUE_TEMPLATE
│ ├── config.yaml
│ └── bug_report.md
├── FUNDING.yaml
└── scripts
│ └── discord-helpers.sh
├── prettier.config.mjs
├── .markdownlint-cli2.yaml
├── LICENSE
└── .gitignore
/.nvmrc:
--------------------------------------------------------------------------------
1 | 22
--------------------------------------------------------------------------------
/src/modules/bmb/docs/agents/kb.csv:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/modules/bmb/docs/workflows/kb.csv:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | registry=https://registry.npmjs.org
--------------------------------------------------------------------------------
/tools/cli/README.md:
--------------------------------------------------------------------------------
1 | # BMad CLI Tool
2 |
3 | Revised CLI tool docs coming....
4 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/templates/agent-plan.template.md:
--------------------------------------------------------------------------------
1 | ---
2 | stepsCompleted: []
3 | ---
4 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/addition1.md:
--------------------------------------------------------------------------------
1 | # addition added in update
2 |
--------------------------------------------------------------------------------
/src/modules/bmb/reference/readme.md:
--------------------------------------------------------------------------------
1 | # Reference Examples
2 |
3 | Reference models of best practices for agents, workflows, and whole modules.
4 |
--------------------------------------------------------------------------------
/src/modules/bmgd/docs/workflow-overview.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bmad-code-org/BMAD-METHOD/HEAD/src/modules/bmgd/docs/workflow-overview.jpg
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-module/templates/module-plan.template.md:
--------------------------------------------------------------------------------
1 | ---
2 | stepsCompleted: []
3 | ---
4 |
5 | # Module Plan {module name}
6 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | # Auto-fix changed files and stage them
4 | npx --no-install lint-staged
5 |
6 | # Validate everything
7 | npm test
8 |
--------------------------------------------------------------------------------
/src/modules/bmm/sub-modules/claude-code/config.yaml:
--------------------------------------------------------------------------------
1 | name: bmmcc
2 | short-title: BMM Claude Code Sub Module
3 | author: Brian (BMad) Madison
4 | submodule: true
5 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/data/reference/README.md:
--------------------------------------------------------------------------------
1 | # Reference Examples
2 |
3 | Reference models of best practices for agents, workflows, and whole modules.
4 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Empty YAML file
2 | # Expected: FAIL
3 | # Error code: invalid_type
4 | # Error path:
5 | # Error expected: object
6 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/foo.md:
--------------------------------------------------------------------------------
1 | # foo
2 |
3 | sample potential file or other content that is not the agent file and is not an item in teh sidecar.
4 |
--------------------------------------------------------------------------------
/src/utility/agent-components/menu-handlers.txt:
--------------------------------------------------------------------------------
1 |
2 | {DYNAMIC_EXTRACT_LIST}
3 |
4 | {DYNAMIC_HANDLERS}
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md:
--------------------------------------------------------------------------------
1 | # Implementation Readiness Assessment Report
2 |
3 | **Date:** {{date}}
4 | **Project:** {{project_name}}
5 |
--------------------------------------------------------------------------------
/src/utility/agent-components/agent-command-header.md:
--------------------------------------------------------------------------------
1 | You must fully embody this agent's persona and follow all activation instructions, steps and rules exactly as specified. NEVER break character until given an exit command.
2 |
--------------------------------------------------------------------------------
/tools/cli/installers/lib/ide/templates/workflow-commander.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: '{{description}}'
3 | ---
4 |
5 | IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{{workflow_path}}, READ its entire contents and follow its directions exactly!
6 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # Test fixtures with intentionally broken/malformed files
2 | test/fixtures/**
3 |
4 | # Contributor Covenant (external standard)
5 | CODE_OF_CONDUCT.md
6 |
7 | # BMAD runtime folders (user-specific, not in repo)
8 | _bmad/
9 | _bmad*/
10 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yaml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Discord Community Support
4 | url: https://discord.gg/gk8jAdXWmj
5 | about: Please join our Discord server for general questions and community discussion before opening an issue.
6 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md:
--------------------------------------------------------------------------------
1 | # Product Brief: {{project_name}}
2 |
3 | **Date:** {{date}}
4 | **Author:** {{user_name}}
5 |
6 | ---
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/utility/agent-components/handler-action.txt:
--------------------------------------------------------------------------------
1 |
2 | When menu item has: action="#id" → Find prompt with id="id" in current agent XML, execute its content
3 | When menu item has: action="text" → Execute the text directly as an inline instruction
4 |
--------------------------------------------------------------------------------
/src/utility/agent-components/handler-data.txt:
--------------------------------------------------------------------------------
1 |
2 | When menu item has: data="path/to/file.json|yaml|yml|csv|xml"
3 | Load the file first, parse according to extension
4 | Make available as {data} variable to subsequent handler operations
5 |
6 |
--------------------------------------------------------------------------------
/src/modules/cis/agents/storyteller/storyteller-sidecar/stories-told.md:
--------------------------------------------------------------------------------
1 | # Story Record Template
2 |
3 | Purpose: Record a log detailing the stories I have crafted over time for the user.
4 |
5 | ## Narratives Told Table Record
6 |
7 |
8 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/module.yaml:
--------------------------------------------------------------------------------
1 | code: bmad-custom
2 | name: "BMAD-Custom: Sample Stand Alone Custom Agents and Workflows"
3 | default_selected: true
4 | type: unitary
5 | # Variables from Core Config inserted:
6 | ## user_name
7 | ## communication_language
8 | ## output_folder
9 |
--------------------------------------------------------------------------------
/src/modules/cis/agents/storyteller/storyteller-sidecar/story-preferences.md:
--------------------------------------------------------------------------------
1 | # Story Record Template
2 |
3 | Purpose: Record a log of learned users story telling or story building preferences.
4 |
5 | ## User Preference Bullet List
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/modules/cis/teams/creative-squad.yaml:
--------------------------------------------------------------------------------
1 | #
2 | bundle:
3 | name: Creative Squad
4 | icon: 🎨
5 | description: Innovation and Creative Excellence Team - Comprehensive creative development from ideation through narrative execution
6 | agents: "*"
7 | party: "./default-party.csv"
8 |
--------------------------------------------------------------------------------
/src/utility/agent-components/handler-tmpl.txt:
--------------------------------------------------------------------------------
1 |
2 | 1. When menu item has: tmpl="path/to/template.md"
3 | 2. Load template file, parse as markdown with {{mustache}} style variables
4 | 3. Make template content available as {template} to action/exec/workflow handlers
5 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Missing required 'agent' top-level key
2 | # Expected: FAIL
3 | # Error code: invalid_type
4 | # Error path: agent
5 | # Error expected: object
6 |
7 | metadata:
8 | id: bad-test
9 | name: Bad Test Agent
10 | title: Bad Test
11 | icon: ❌
12 |
--------------------------------------------------------------------------------
/src/modules/bmm/teams/team-fullstack.yaml:
--------------------------------------------------------------------------------
1 | #
2 | bundle:
3 | name: Team Plan and Architect
4 | icon: 🚀
5 | description: Team capable of project analysis, design, and architecture.
6 | agents:
7 | - analyst
8 | - architect
9 | - pm
10 | - sm
11 | - ux-designer
12 | party: "./default-party.csv"
13 |
--------------------------------------------------------------------------------
/src/core/workflows/brainstorming/template.md:
--------------------------------------------------------------------------------
1 | ---
2 | stepsCompleted: []
3 | inputDocuments: []
4 | session_topic: ''
5 | session_goals: ''
6 | selected_approach: ''
7 | techniques_used: []
8 | ideas_generated: []
9 | context_file: ''
10 | ---
11 |
12 | # Brainstorming Session Results
13 |
14 | **Facilitator:** {{user_name}}
15 | **Date:** {{date}}
16 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md:
--------------------------------------------------------------------------------
1 | ---
2 | stepsCompleted: []
3 | inputDocuments: []
4 | ---
5 |
6 | # UX Design Specification {{project_name}}
7 |
8 | **Author:** {{user_name}}
9 | **Date:** {{date}}
10 |
11 | ---
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md:
--------------------------------------------------------------------------------
1 | ---
2 | stepsCompleted: []
3 | inputDocuments: []
4 | documentCounts:
5 | briefs: 0
6 | research: 0
7 | brainstorming: 0
8 | projectDocs: 0
9 | workflowType: 'prd'
10 | lastStep: 0
11 | ---
12 |
13 | # Product Requirements Document - {{project_name}}
14 |
15 | **Author:** {{user_name}}
16 | **Date:** {{date}}
17 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/1-analysis/research/research.template.md:
--------------------------------------------------------------------------------
1 | # Research Report: {{research_type}}
2 |
3 | **Date:** {{date}}
4 | **Author:** {{user_name}}
5 | **Research Type:** {{research_type}}
6 |
7 | ---
8 |
9 | ## Research Overview
10 |
11 | [Research overview and methodology will be appended here]
12 |
13 | ---
14 |
15 |
16 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/memories.md:
--------------------------------------------------------------------------------
1 | # Wellness Companion - Memories
2 |
3 | ## User Preferences
4 |
5 | _This file tracks user preferences and important context across sessions_
6 |
7 | ## Important Conversations
8 |
9 | _Key moments and breakthroughs are documented here_
10 |
11 | ## Ongoing Goals
12 |
13 | _User's wellness goals and progress_
14 |
--------------------------------------------------------------------------------
/tools/lib/xml-utils.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Escape XML special characters in a string
3 | * @param {string} text - The text to escape
4 | * @returns {string} The escaped text
5 | */
6 | function escapeXml(text) {
7 | if (!text) return '';
8 | return text.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"').replaceAll("'", ''');
9 | }
10 |
11 | module.exports = {
12 | escapeXml,
13 | };
14 |
--------------------------------------------------------------------------------
/src/utility/agent-components/handler-exec.txt:
--------------------------------------------------------------------------------
1 |
2 | When menu item or handler has: exec="path/to/file.md":
3 | 1. Actually LOAD and read the entire file and EXECUTE the file at that path - do not improvise
4 | 2. Read the complete file and follow all instructions within it
5 | 3. If there is data="some/path/data-foo.md" with the same item, pass that data path to the executed file as context.
6 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/insights.md:
--------------------------------------------------------------------------------
1 | # Wellness Companion - Insights
2 |
3 | ## User Insights
4 |
5 | _Important realizations and breakthrough moments are documented here with timestamps_
6 |
7 | ## Patterns Observed
8 |
9 | _Recurring themes and patterns noticed over time_
10 |
11 | ## Progress Notes
12 |
13 | _Milestones and positive changes in the wellness journey_
14 |
--------------------------------------------------------------------------------
/src/modules/cis/module.yaml:
--------------------------------------------------------------------------------
1 | code: cis
2 | name: "CIS: Creative Innovation Suite"
3 | header: "Creative Innovation Suite (CIS) Module"
4 | subheader: "No custom configuration required - uses Core settings only"
5 | default_selected: false # This module will not be selected by default for new installations
6 |
7 | # Variables from Core Config inserted:
8 | ## user_name
9 | ## communication_language
10 | ## document_output_language
11 | ## output_folder
12 |
--------------------------------------------------------------------------------
/src/utility/agent-components/activation-rules.txt:
--------------------------------------------------------------------------------
1 |
2 | ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style.
3 |
4 | Stay in character until exit selected
5 | Display Menu items as the item dictates and in the order given.
6 | Load files ONLY when executing a user chosen workflow or a command requires it, EXCEPTION: agent activation step 2 config.yaml
7 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Malformed YAML with syntax errors
2 | # Expected: FAIL - YAML parse error
3 |
4 | agent:
5 | metadata:
6 | id: malformed
7 | name: Malformed YAML
8 | title: [Malformed
9 | icon: 🧪
10 | persona:
11 | role: Test
12 | identity: Test
13 | communication_style: Test
14 | principles:
15 | - Test
16 | menu:
17 | - trigger: help
18 | description: Help
19 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/memories.md:
--------------------------------------------------------------------------------
1 | # Vexor's Memory Bank
2 |
3 | ## Cross-Domain Wisdom
4 |
5 |
6 |
7 | ## User Preferences
8 |
9 |
10 |
11 | ## Historical Patterns
12 |
13 |
14 |
15 | ---
16 |
17 | _Memories are appended below as Vexor the toolsmith learns..._
18 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md:
--------------------------------------------------------------------------------
1 | ---
2 | stepsCompleted: []
3 | inputDocuments: []
4 | workflowType: 'architecture'
5 | lastStep: 0
6 | project_name: '{{project_name}}'
7 | user_name: '{{user_name}}'
8 | date: '{{date}}'
9 | ---
10 |
11 | # Architecture Decision Document
12 |
13 | _This document builds collaboratively through step-by-step discovery. Sections are appended as we work through each architectural decision together._
14 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Missing menu field
2 | # Expected: FAIL
3 | # Error code: invalid_type
4 | # Error path: agent.menu
5 | # Error expected: array
6 |
7 | agent:
8 | metadata:
9 | id: missing-menu
10 | name: Missing Menu
11 | title: Missing Menu
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Empty menu array
2 | # Expected: FAIL
3 | # Error code: too_small
4 | # Error path: agent.menu
5 | # Error minimum: 1
6 |
7 | agent:
8 | metadata:
9 | id: empty-menu
10 | name: Empty Menu
11 | title: Empty Menu
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | menu: []
22 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/patterns.md:
--------------------------------------------------------------------------------
1 | # Wellness Companion - Patterns
2 |
3 | ## Emotional Patterns
4 |
5 | _Track recurring emotional states and triggers_
6 |
7 | ## Behavioral Patterns
8 |
9 | _Note habits and routines that affect wellness_
10 |
11 | ## Coping Patterns
12 |
13 | _Identify effective coping strategies and challenges_
14 |
15 | ## Progress Patterns
16 |
17 | _Document growth trends and areas needing attention_
18 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/README.md:
--------------------------------------------------------------------------------
1 | # Example Custom Content module
2 |
3 | This is a demonstration of custom stand along agents and workflows. By having this content all in a folder with a module.yaml file,
4 | these items can be installed with the standard bmad installer custom local content menu item.
5 |
6 | This is how you could also create and share other custom agents and workflows not tied to a specific module.
7 |
8 | The main distinction with this colelction is module.yaml includes type: unitary
9 |
--------------------------------------------------------------------------------
/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md:
--------------------------------------------------------------------------------
1 | ## Weekly Meal Framework
2 |
3 | ### Protein Rotation
4 |
5 | - Monday: [Protein source]
6 | - Tuesday: [Protein source]
7 | - Wednesday: [Protein source]
8 | - Thursday: [Protein source]
9 | - Friday: [Protein source]
10 | - Saturday: [Protein source]
11 | - Sunday: [Protein source]
12 |
13 | ### Meal Timing
14 |
15 | - Breakfast: [Time] - [Type]
16 | - Lunch: [Time] - [Type]
17 | - Dinner: [Time] - [Type]
18 | - Snacks: [As needed]
19 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Invalid YAML structure with inconsistent indentation
2 | # Expected: FAIL - YAML parse error
3 |
4 | agent:
5 | metadata:
6 | id: invalid-indent
7 | name: Invalid Indentation
8 | title: Invalid
9 | icon: ❌
10 | persona:
11 | role: Test
12 | identity: Test
13 | communication_style: Test
14 | principles:
15 | - Test
16 | menu:
17 | - trigger: help
18 | description: Help
19 | action: help
20 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-wellness-module/module.yaml:
--------------------------------------------------------------------------------
1 | code: mwm
2 | name: "MWM: Mental Wellness Module"
3 | default_selected: false
4 | type: module
5 |
6 | header: "MWM™: Custom Wellness Module"
7 | subheader: "Demo of Potential Non Coding Custom Module Use case"
8 |
9 | # Variables from Core Config inserted:
10 | ## user_name
11 | ## communication_language
12 | ## output_folder
13 |
14 | favorite_color:
15 | prompt: "What is your favorite color (demo custom module question)?"
16 | default: "Green"
17 | result: "{value}"
18 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/strategy-section.md:
--------------------------------------------------------------------------------
1 | ## Weekly Meal Framework
2 |
3 | ### Protein Rotation
4 |
5 | - Monday: [Protein source]
6 | - Tuesday: [Protein source]
7 | - Wednesday: [Protein source]
8 | - Thursday: [Protein source]
9 | - Friday: [Protein source]
10 | - Saturday: [Protein source]
11 | - Sunday: [Protein source]
12 |
13 | ### Meal Timing
14 |
15 | - Breakfast: [Time] - [Type]
16 | - Lunch: [Time] - [Type]
17 | - Dinner: [Time] - [Type]
18 | - Snacks: [As needed]
19 |
--------------------------------------------------------------------------------
/tools/cli/installers/lib/ide/templates/gemini-task-command.toml:
--------------------------------------------------------------------------------
1 | description = "Executes the {{taskName}} task from the BMad Method."
2 | prompt = """
3 | Execute the following BMad Method task workflow:
4 |
5 | PRE-FLIGHT CHECKLIST:
6 | 1. [ ] IMMEDIATE ACTION: Load and parse @{_bmad}/{{module}}/config.yaml.
7 | 2. [ ] IMMEDIATE ACTION: Read and load the task definition at @{_bmad}/{{module}}/tasks/{{filename}}.
8 |
9 | Follow all instructions and complete the task as defined.
10 |
11 | TASK DEFINITION: @{_bmad}/{{module}}/tasks/{{filename}}
12 | """
13 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: No prompts field (optional)
2 | # Expected: PASS
3 |
4 | agent:
5 | metadata:
6 | id: no-prompts
7 | name: No Prompts
8 | title: No Prompts
9 | icon: 🧪
10 |
11 | persona:
12 | role: Test agent without prompts
13 | identity: I am a test agent without prompts field.
14 | communication_style: Clear
15 | principles:
16 | - Test optional fields
17 |
18 | menu:
19 | - trigger: help
20 | description: Show help
21 | action: display_help
22 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/data/info-and-installation-guide.md:
--------------------------------------------------------------------------------
1 | # {agent_name} Agent
2 |
3 | ## Installation
4 |
5 | Create a `custom.yaml` file in the agent folder:
6 |
7 | ```yaml
8 | code: { agent_code }
9 | name: '{agent_name}'
10 | default_selected: true
11 | ```
12 |
13 | Then run:
14 |
15 | ```bash
16 | npx bmad-method install
17 | ```
18 |
19 | Or if you have bmad-cli installed globally:
20 |
21 | ```bash
22 | bmad install
23 | ```
24 |
25 | ## About This Agent
26 |
27 | {agent_description}
28 |
29 | _Generated with BMAD Builder workflow_
30 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Menu with single valid item
2 | # Expected: PASS
3 |
4 | agent:
5 | metadata:
6 | id: single-menu
7 | name: Single Menu Item
8 | title: Single Menu
9 | icon: 🧪
10 |
11 | persona:
12 | role: Test agent with single menu item
13 | identity: I am a test agent.
14 | communication_style: Clear
15 | principles:
16 | - Test minimal menu
17 |
18 | menu:
19 | - trigger: help
20 | description: Show help information
21 | action: display_help
22 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/templates/csv-headers.template:
--------------------------------------------------------------------------------
1 | DateTime,Category,GameMode,Q1-Question,Q1-Choices,Q1-UserAnswer,Q1-Correct,Q2-Question,Q2-Choices,Q2-UserAnswer,Q2-Correct,Q3-Question,Q3-Choices,Q3-UserAnswer,Q3-Correct,Q4-Question,Q4-Choices,Q4-UserAnswer,Q4-Correct,Q5-Question,Q5-Choices,Q5-UserAnswer,Q5-Correct,Q6-Question,Q6-Choices,Q6-UserAnswer,Q6-Correct,Q7-Question,Q7-Choices,Q7-UserAnswer,Q7-Correct,Q8-Question,Q8-Choices,Q8-UserAnswer,Q8-Correct,Q9-Question,Q9-Choices,Q9-UserAnswer,Q9-Correct,Q10-Question,Q10-Choices,Q10-UserAnswer,Q10-Correct,FinalScore
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Missing required metadata.id field
2 | # Expected: FAIL
3 | # Error code: invalid_type
4 | # Error path: agent.metadata.id
5 | # Error expected: string
6 |
7 | agent:
8 | metadata:
9 | name: Missing ID Agent
10 | title: Missing ID
11 | icon: ❌
12 |
13 | persona:
14 | role: Test agent
15 | identity: Test identity
16 | communication_style: Test style
17 | principles:
18 | - Test principle
19 |
20 | menu:
21 | - trigger: help
22 | description: Show help
23 | action: display_help
24 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Missing required persona.role field
2 | # Expected: FAIL
3 | # Error code: invalid_type
4 | # Error path: agent.persona.role
5 | # Error expected: string
6 |
7 | agent:
8 | metadata:
9 | id: missing-role
10 | name: Missing Role
11 | title: Missing Role
12 | icon: ❌
13 |
14 | persona:
15 | identity: Test identity
16 | communication_style: Test style
17 | principles:
18 | - Test principle
19 |
20 | menu:
21 | - trigger: help
22 | description: Show help
23 | action: display_help
24 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Empty principles array
2 | # Expected: FAIL
3 | # Error code: too_small
4 | # Error path: agent.persona.principles
5 | # Error minimum: 1
6 |
7 | agent:
8 | metadata:
9 | id: empty-principles
10 | name: Empty Principles
11 | title: Empty Principles
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles: []
19 |
20 | menu:
21 | - trigger: help
22 | description: Show help
23 | action: display_help
24 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/generate-project-context/project-context-template.md:
--------------------------------------------------------------------------------
1 | ---
2 | project_name: '{{project_name}}'
3 | user_name: '{{user_name}}'
4 | date: '{{date}}'
5 | sections_completed: []
6 | ---
7 |
8 | # Project Context for AI Agents
9 |
10 | _This file contains critical rules and patterns that AI agents must follow when implementing code in this project. Focus on unobvious details that agents might otherwise miss._
11 |
12 | ---
13 |
14 | ## Technology Stack & Versions
15 |
16 | _Documented after discovery phase_
17 |
18 | ## Critical Implementation Rules
19 |
20 | _Documented after discovery phase_
21 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: No critical_actions field (optional)
2 | # Expected: PASS
3 |
4 | agent:
5 | metadata:
6 | id: no-critical-actions
7 | name: No Critical Actions
8 | title: No Critical Actions
9 | icon: 🧪
10 |
11 | persona:
12 | role: Test agent without critical actions
13 | identity: I am a test agent without critical actions.
14 | communication_style: Clear
15 | principles:
16 | - Test optional fields
17 |
18 | menu:
19 | - trigger: help
20 | description: Show help
21 | action: display_help
22 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Empty prompts array
2 | # Expected: PASS - empty array valid for optional field
3 |
4 | agent:
5 | metadata:
6 | id: empty-prompts
7 | name: Empty Prompts
8 | title: Empty Prompts
9 | icon: 🧪
10 |
11 | persona:
12 | role: Test agent with empty prompts
13 | identity: I am a test agent with empty prompts array.
14 | communication_style: Clear
15 | principles:
16 | - Test empty arrays
17 |
18 | prompts: []
19 |
20 | menu:
21 | - trigger: help
22 | description: Show help
23 | action: display_help
24 |
--------------------------------------------------------------------------------
/src/utility/agent-components/handler-validate-workflow.txt:
--------------------------------------------------------------------------------
1 |
2 | When command has: validate-workflow="path/to/workflow.yaml"
3 | 1. You MUST LOAD the file at: {project-root}/_bmad/core/tasks/validate-workflow.xml
4 | 2. READ its entire contents and EXECUTE all instructions in that file
5 | 3. Pass the workflow, and also check the workflow yaml validation property to find and load the validation schema to pass as the checklist
6 | 4. The workflow should try to identify the file to validate based on checklist context or else you will ask the user to specify
7 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/3-technical/generate-project-context/project-context-template.md:
--------------------------------------------------------------------------------
1 | ---
2 | project_name: '{{project_name}}'
3 | user_name: '{{user_name}}'
4 | date: '{{date}}'
5 | sections_completed: []
6 | ---
7 |
8 | # Project Context for AI Agents
9 |
10 | _This file contains critical rules and patterns that AI agents must follow when implementing game code in this project. Focus on unobvious details that agents might otherwise miss._
11 |
12 | ---
13 |
14 | ## Technology Stack & Versions
15 |
16 | _Documented after discovery phase_
17 |
18 | ## Critical Implementation Rules
19 |
20 | _Documented after discovery phase_
21 |
--------------------------------------------------------------------------------
/docs/ide-info/codex.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - Codex Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents, tasks and workflows are installed as custom prompts in
6 | `$CODEX_HOME/prompts/bmad-*.md` files. If `CODEX_HOME` is not set, it
7 | defaults to `$HOME/.codex/`.
8 |
9 | ### Examples
10 |
11 | ```
12 | /bmad-bmm-agents-dev - Activate development agent
13 | /bmad-bmm-agents-architect - Activate architect agent
14 | /bmad-bmm-workflows-dev-story - Execute dev-story workflow
15 | ```
16 |
17 | ### Notes
18 |
19 | Prompts are autocompleted when you type /
20 | Agent remains active for the conversation
21 | Start a new conversation to switch agents
22 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Empty trigger string
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.menu[0].trigger
5 | # Error message: agent.menu[].trigger must be a non-empty string
6 |
7 | agent:
8 | metadata:
9 | id: empty-trigger
10 | name: Empty Trigger
11 | title: Empty
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | menu:
22 | - trigger: " "
23 | description: Empty trigger
24 | action: display_help
25 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/checklist.md:
--------------------------------------------------------------------------------
1 | # Quick-Dev Checklist
2 |
3 | ## Before Implementation
4 |
5 | - [ ] Context loaded (tech-spec or user guidance)
6 | - [ ] Files to modify identified
7 | - [ ] Patterns understood
8 |
9 | ## Implementation
10 |
11 | - [ ] All tasks completed
12 | - [ ] Code follows existing patterns
13 | - [ ] Error handling appropriate
14 |
15 | ## Testing
16 |
17 | - [ ] Tests written (where appropriate)
18 | - [ ] All tests passing
19 | - [ ] No regressions
20 |
21 | ## Completion
22 |
23 | - [ ] Acceptance criteria satisfied
24 | - [ ] Tech-spec updated (if applicable)
25 | - [ ] Summary provided to user
26 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Empty string in metadata.name field
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.metadata.name
5 | # Error message: agent.metadata.name must be a non-empty string
6 |
7 | agent:
8 | metadata:
9 | id: empty-name-test
10 | name: " "
11 | title: Empty Name Test
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | menu:
22 | - trigger: help
23 | description: Show help
24 | action: display_help
25 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/4-production/code-review/backlog-template.md:
--------------------------------------------------------------------------------
1 | # Engineering Backlog
2 |
3 | This backlog collects cross-cutting or future action items that emerge from reviews and planning.
4 |
5 | Routing guidance:
6 |
7 | - Use this file for non-urgent optimizations, refactors, or follow-ups that span multiple stories/epics.
8 | - Must-fix items to ship a story belong in that story’s `Tasks / Subtasks`.
9 | - Same-epic improvements may also be captured under the epic Tech Spec `Post-Review Follow-ups` section.
10 |
11 | | Date | Story | Epic | Type | Severity | Owner | Status | Notes |
12 | | ---- | ----- | ---- | ---- | -------- | ----- | ------ | ----- |
13 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Valid module agent with correct module field
2 | # Expected: PASS
3 | # Path context: src/modules/bmm/agents/module-agent-correct.agent.yaml
4 |
5 | agent:
6 | metadata:
7 | id: bmm-test
8 | name: BMM Test Agent
9 | title: BMM Test
10 | icon: 🧪
11 | module: bmm
12 |
13 | persona:
14 | role: Test module agent
15 | identity: I am a module-scoped test agent.
16 | communication_style: Professional
17 | principles:
18 | - Test module validation
19 |
20 | menu:
21 | - trigger: help
22 | description: Show help
23 | action: display_help
24 |
--------------------------------------------------------------------------------
/src/utility/agent-components/handler-workflow.txt:
--------------------------------------------------------------------------------
1 |
2 | When menu item has: workflow="path/to/workflow.yaml":
3 |
4 | 1. CRITICAL: Always LOAD {project-root}/_bmad/core/tasks/workflow.xml
5 | 2. Read the complete file - this is the CORE OS for executing BMAD workflows
6 | 3. Pass the yaml path as 'workflow-config' parameter to those instructions
7 | 4. Execute workflow.xml instructions precisely following all steps
8 | 5. Save outputs after completing EACH workflow step (never batch multiple steps together)
9 | 6. If workflow.yaml path is "todo", inform user the workflow hasn't been implemented yet
10 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Menu item with empty string command target
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.menu[0].action
5 | # Error message: agent.menu[].action must be a non-empty string
6 |
7 | agent:
8 | metadata:
9 | id: empty-command
10 | name: Empty Command Target
11 | title: Empty Command
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | menu:
22 | - trigger: help
23 | description: Show help
24 | action: " "
25 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Menu item with no command target fields
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.menu[0]
5 | # Error message: agent.menu[] entries must include at least one command target field
6 |
7 | agent:
8 | metadata:
9 | id: no-command
10 | name: No Command Target
11 | title: No Command
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | menu:
22 | - trigger: help
23 | description: Show help but no command target
24 |
--------------------------------------------------------------------------------
/docs/ide-info/qwen.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - Qwen Code Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are concatenated in `.qwen/bmad-method/QWEN.md`.
6 |
7 | ### How to Use
8 |
9 | 1. **Type Trigger**: Use `*{agent-name}` in your prompt
10 | 2. **Activate**: Agent persona activates from the concatenated file
11 | 3. **Continue**: Agent remains active for conversation
12 |
13 | ### Examples
14 |
15 | ```
16 | *dev - Activate development agent
17 | *architect - Activate architect agent
18 | *test - Activate test agent
19 | ```
20 |
21 | ### Notes
22 |
23 | - All agents loaded from single QWEN.md file
24 | - Triggers with asterisk: `*{agent-name}`
25 | - Similar to Gemini CLI setup
26 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Prompt missing required id field
2 | # Expected: FAIL
3 | # Error code: invalid_type
4 | # Error path: agent.prompts[0].id
5 | # Error expected: string
6 |
7 | agent:
8 | metadata:
9 | id: prompt-missing-id
10 | name: Prompt Missing ID
11 | title: Missing ID
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | prompts:
22 | - content: Prompt without ID
23 |
24 | menu:
25 | - trigger: help
26 | description: Show help
27 | action: display_help
28 |
--------------------------------------------------------------------------------
/docs/ide-info/kilo.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - KiloCode Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are installed as custom modes in `.kilocodemodes`.
6 |
7 | ### How to Use
8 |
9 | 1. **Open Project**: Modes auto-load when project opens
10 | 2. **Select Mode**: Use mode selector in KiloCode interface
11 | 3. **Choose Agent**: Pick `bmad-{module}-{agent}` mode
12 | 4. **Activate**: Mode is now active
13 |
14 | ### Mode Format
15 |
16 | - Mode name: `bmad-{module}-{agent}`
17 | - Display: `{icon} {title}`
18 | - Example: `bmad-core-dev` shows as `🤖 Dev`
19 |
20 | ### Notes
21 |
22 | - Modes persist until changed
23 | - Similar to Roo Code mode system
24 | - Icon shows in mode selector
25 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: critical_actions as non-array
2 | # Expected: FAIL
3 | # Error code: invalid_type
4 | # Error path: agent.critical_actions
5 | # Error expected: array
6 |
7 | agent:
8 | metadata:
9 | id: actions-string
10 | name: Actions String
11 | title: Actions String
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | critical_actions: This should be an array
22 |
23 | menu:
24 | - trigger: help
25 | description: Show help
26 | action: display_help
27 |
--------------------------------------------------------------------------------
/docs/ide-info/trae.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - Trae Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are installed as rules in `.trae/rules/`.
6 |
7 | ### How to Use
8 |
9 | 1. **Type Trigger**: Use `@{agent-name}` in your prompt
10 | 2. **Activate**: Agent persona activates automatically
11 | 3. **Continue**: Agent remains active for conversation
12 |
13 | ### Examples
14 |
15 | ```
16 | @dev - Activate development agent
17 | @architect - Activate architect agent
18 | @task-setup - Execute setup task
19 | ```
20 |
21 | ### Notes
22 |
23 | - Rules auto-load from `.trae/rules/` directory
24 | - Multiple agents can be referenced: `@dev and @test`
25 | - Agent follows YAML configuration in rule file
26 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-wellness-module/README.md:
--------------------------------------------------------------------------------
1 | # EXAMPLE MODULE WARNING
2 |
3 | This module is an example and is not at all recommended for any real usage for any sort of realworld medical therepy - this was quickly put together to demonstrate what the build might come up with, this module was not vetted by any medical professionals and should be considered at best for entertainment purposes only, more practically a novelty.
4 |
5 | If you have received a module from someone else that is not in the official installation - you can install it similarly by running the
6 | normal bmad-method installer and select the custom content installation option and give the path to where you have this folder downloaded.
7 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Prompt missing required content field
2 | # Expected: FAIL
3 | # Error code: invalid_type
4 | # Error path: agent.prompts[0].content
5 | # Error expected: string
6 |
7 | agent:
8 | metadata:
9 | id: prompt-missing-content
10 | name: Prompt Missing Content
11 | title: Missing Content
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | prompts:
22 | - id: prompt1
23 |
24 | menu:
25 | - trigger: help
26 | description: Show help
27 | action: display_help
28 |
--------------------------------------------------------------------------------
/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md:
--------------------------------------------------------------------------------
1 | ## Meal Prep Schedule
2 |
3 | ### [Chosen Prep Strategy]
4 |
5 | ### Weekly Prep Tasks
6 |
7 | - [Day]: [Tasks] - [Time needed]
8 | - [Day]: [Tasks] - [Time needed]
9 |
10 | ### Daily Assembly
11 |
12 | - Morning: [Quick tasks]
13 | - Evening: [Assembly instructions]
14 |
15 | ### Storage Guide
16 |
17 | - Proteins: [Instructions]
18 | - Vegetables: [Instructions]
19 | - Grains: [Instructions]
20 |
21 | ### Success Tips
22 |
23 | - [Personalized success strategies]
24 |
25 | ### Weekly Review Checklist
26 |
27 | - [ ] Check weekend schedule
28 | - [ ] Review meal plan satisfaction
29 | - [ ] Adjust next week's plan
30 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: CamelCase trigger
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.menu[0].trigger
5 | # Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)
6 |
7 | agent:
8 | metadata:
9 | id: camel-case-trigger
10 | name: CamelCase Trigger
11 | title: CamelCase
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | menu:
22 | - trigger: listTasks
23 | description: Invalid CamelCase trigger
24 | action: list_tasks
25 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Trigger with spaces
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.menu[0].trigger
5 | # Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)
6 |
7 | agent:
8 | metadata:
9 | id: spaces-trigger
10 | name: Spaces Trigger
11 | title: Spaces
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | menu:
22 | - trigger: list tasks
23 | description: Invalid trigger with spaces
24 | action: list_tasks
25 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Empty critical_actions array
2 | # Expected: PASS - empty array is valid for optional field
3 |
4 | agent:
5 | metadata:
6 | id: empty-critical-actions
7 | name: Empty Critical Actions
8 | title: Empty Critical Actions
9 | icon: 🧪
10 |
11 | persona:
12 | role: Test agent with empty critical actions
13 | identity: I am a test agent with empty critical actions array.
14 | communication_style: Clear
15 | principles:
16 | - Test empty arrays
17 |
18 | critical_actions: []
19 |
20 | menu:
21 | - trigger: help
22 | description: Show help
23 | action: display_help
24 |
--------------------------------------------------------------------------------
/tools/cli/installers/lib/ide/templates/agent-command-template.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: '{{name}}'
3 | description: '{{description}}'
4 | ---
5 |
6 | You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
7 |
8 |
9 | 1. LOAD the FULL agent file from @_bmad/{{module}}/agents/{{path}}
10 | 2. READ its entire contents - this contains the complete agent persona, menu, and instructions
11 | 3. Execute ALL activation steps exactly as written in the agent file
12 | 4. Follow the agent's persona and menu system precisely
13 | 5. Stay in character throughout the session
14 |
15 |
--------------------------------------------------------------------------------
/docs/ide-info/gemini.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - Gemini CLI Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are concatenated in `.gemini/bmad-method/GEMINI.md`.
6 |
7 | ### How to Use
8 |
9 | 1. **Type Trigger**: Use `*{agent-name}` in your prompt
10 | 2. **Activate**: Agent persona activates from the concatenated file
11 | 3. **Continue**: Agent remains active for conversation
12 |
13 | ### Examples
14 |
15 | ```
16 | *dev - Activate development agent
17 | *architect - Activate architect agent
18 | *test - Activate test agent
19 | ```
20 |
21 | ### Notes
22 |
23 | - All agents loaded from single GEMINI.md file
24 | - Triggers with asterisk: `*{agent-name}`
25 | - Context includes all agents (may be large)
26 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Snake_case trigger
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.menu[0].trigger
5 | # Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)
6 |
7 | agent:
8 | metadata:
9 | id: snake-case-trigger
10 | name: Snake Case Trigger
11 | title: Snake Case
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | menu:
22 | - trigger: list_tasks
23 | description: Invalid snake_case trigger
24 | action: list_tasks
25 |
--------------------------------------------------------------------------------
/docs/ide-info/windsurf.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - Windsurf Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are installed as workflows in `.windsurf/workflows/`.
6 |
7 | ### How to Use
8 |
9 | 1. **Open Workflows**: Access via Windsurf menu or command palette
10 | 2. **Select Workflow**: Choose the agent/task workflow
11 | 3. **Execute**: Run to activate that agent persona
12 |
13 | ### Workflow Types
14 |
15 | - **Agent workflows**: `{module}-{agent}.md` (auto_execution_mode: 3)
16 | - **Task workflows**: `task-{module}-{task}.md` (auto_execution_mode: 2)
17 |
18 | ### Notes
19 |
20 | - Agents run with higher autonomy (mode 3)
21 | - Tasks run with guided execution (mode 2)
22 | - Workflows persist for the session
23 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Trigger with leading asterisk
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.menu[0].trigger
5 | # Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)
6 |
7 | agent:
8 | metadata:
9 | id: asterisk-trigger
10 | name: Asterisk Trigger
11 | title: Asterisk
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | menu:
22 | - trigger: "*help"
23 | description: Invalid trigger with asterisk
24 | action: display_help
25 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Extra top-level keys beyond 'agent'
2 | # Expected: FAIL
3 | # Error code: unrecognized_keys
4 | # Error path:
5 | # Error keys: ["extra_key", "another_extra"]
6 |
7 | agent:
8 | metadata:
9 | id: extra-test
10 | name: Extra Test Agent
11 | title: Extra Test
12 | icon: 🧪
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | menu:
22 | - trigger: help
23 | description: Show help
24 | action: display_help
25 |
26 | extra_key: This should not be allowed
27 | another_extra: Also invalid
28 |
--------------------------------------------------------------------------------
/src/modules/bmb/module.yaml:
--------------------------------------------------------------------------------
1 | code: bmb
2 | name: "BMB: BMad Builder - Agent, Workflow and Module Builder"
3 | header: "BMad Optimized Builder (BoMB) Module Configuration"
4 | subheader: "Configure the settings for the BoMB Factory!\nThe agent, workflow and module builder for BMad™ "
5 | default_selected: false # This module will not be selected by default for new installations
6 |
7 | # Variables from Core Config inserted:
8 | ## user_name
9 | ## communication_language
10 | ## document_output_language
11 | ## output_folder
12 |
13 | bmb_creations_output_folder:
14 | prompt: "Where should BoMB generated agents, workflows and modules SOURCE be saved?"
15 | default: "{output_folder}/bmb-creations"
16 | result: "{project-root}/{value}"
17 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md:
--------------------------------------------------------------------------------
1 | ## Meal Prep Schedule
2 |
3 | ### [Chosen Prep Strategy]
4 |
5 | ### Weekly Prep Tasks
6 |
7 | - [Day]: [Tasks] - [Time needed]
8 | - [Day]: [Tasks] - [Time needed]
9 |
10 | ### Daily Assembly
11 |
12 | - Morning: [Quick tasks]
13 | - Evening: [Assembly instructions]
14 |
15 | ### Storage Guide
16 |
17 | - Proteins: [Instructions]
18 | - Vegetables: [Instructions]
19 | - Grains: [Instructions]
20 |
21 | ### Success Tips
22 |
23 | - [Personalized success strategies]
24 |
25 | ### Weekly Review Checklist
26 |
27 | - [ ] Check weekend schedule
28 | - [ ] Review meal plan satisfaction
29 | - [ ] Adjust next week's plan
30 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Extra unknown fields in metadata
2 | # Expected: FAIL
3 | # Error code: unrecognized_keys
4 | # Error path: agent.metadata
5 | # Error keys: ["unknown_field", "another_extra"]
6 |
7 | agent:
8 | metadata:
9 | id: extra-fields
10 | name: Extra Fields
11 | title: Extra Fields
12 | icon: ❌
13 | unknown_field: This is not allowed
14 | another_extra: Also invalid
15 |
16 | persona:
17 | role: Test agent
18 | identity: Test identity
19 | communication_style: Test style
20 | principles:
21 | - Test principle
22 |
23 | menu:
24 | - trigger: help
25 | description: Show help
26 | action: display_help
27 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Extra unknown fields in persona
2 | # Expected: FAIL
3 | # Error code: unrecognized_keys
4 | # Error path: agent.persona
5 | # Error keys: ["extra_field", "another_extra"]
6 |
7 | agent:
8 | metadata:
9 | id: extra-persona-fields
10 | name: Extra Persona Fields
11 | title: Extra Persona
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 | extra_field: Not allowed
21 | another_extra: Also invalid
22 |
23 | menu:
24 | - trigger: help
25 | description: Show help
26 | action: display_help
27 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Prompt with empty content string
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.prompts[0].content
5 | # Error message: agent.prompts[].content must be a non-empty string
6 |
7 | agent:
8 | metadata:
9 | id: empty-content
10 | name: Empty Content
11 | title: Empty Content
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | prompts:
22 | - id: prompt1
23 | content: " "
24 |
25 | menu:
26 | - trigger: help
27 | description: Show help
28 | action: display_help
29 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/metadata/wrong-module-value.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Module agent with wrong module value
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.metadata.module
5 | # Error message: agent.metadata.module must equal "bmm"
6 | # Path context: src/modules/bmm/agents/wrong-module-value.agent.yaml
7 |
8 | agent:
9 | metadata:
10 | id: wrong-module
11 | name: Wrong Module
12 | title: Wrong Module
13 | icon: ❌
14 | module: cis
15 |
16 | persona:
17 | role: Test agent
18 | identity: Test identity
19 | communication_style: Test style
20 | principles:
21 | - Test principle
22 |
23 | menu:
24 | - trigger: help
25 | description: Show help
26 | action: display_help
27 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Menu item with multiple command targets
2 | # Expected: PASS - multiple targets are allowed
3 |
4 | agent:
5 | metadata:
6 | id: multiple-commands
7 | name: Multiple Commands
8 | title: Multiple Commands
9 | icon: 🧪
10 |
11 | persona:
12 | role: Test agent with multiple command targets
13 | identity: I test multiple command targets per menu item.
14 | communication_style: Clear
15 | principles:
16 | - Test multiple targets
17 |
18 | menu:
19 | - trigger: multi-command
20 | description: Menu item with multiple command targets
21 | workflow: path/to/workflow
22 | exec: npm test
23 | action: perform_action
24 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Valid core agent with only required fields
2 | # Expected: PASS
3 | # Path context: src/core/agents/minimal-core-agent.agent.yaml
4 |
5 | agent:
6 | metadata:
7 | id: minimal-test
8 | name: Minimal Test Agent
9 | title: Minimal Test
10 | icon: 🧪
11 |
12 | persona:
13 | role: Test agent with minimal configuration
14 | identity: I am a minimal test agent used for schema validation testing.
15 | communication_style: Clear and concise
16 | principles:
17 | - Validate schema requirements
18 | - Demonstrate minimal valid structure
19 |
20 | menu:
21 | - trigger: help
22 | description: Show help
23 | action: display_help
24 |
--------------------------------------------------------------------------------
/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md:
--------------------------------------------------------------------------------
1 | ## 📊 Daily Nutrition Targets
2 |
3 | **Daily Calories:** [calculated amount]
4 | **Protein:** [grams]g ([percentage]% of calories)
5 | **Carbohydrates:** [grams]g ([percentage]% of calories)
6 | **Fat:** [grams]g ([percentage]% of calories)
7 |
8 | ---
9 |
10 | ## ⚠️ Dietary Considerations
11 |
12 | ### Allergies & Intolerances
13 |
14 | - [List of identified restrictions]
15 | - [Cross-reactivity notes if applicable]
16 |
17 | ### Medical Considerations
18 |
19 | - [Conditions noted with professional referral recommendation]
20 | - [Special nutritional requirements]
21 |
22 | ### Preferences
23 |
24 | - [Cultural/ethical restrictions]
25 | - [Strong dislikes to avoid]
26 |
--------------------------------------------------------------------------------
/docs/ide-info/github-copilot.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - GitHub Copilot Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are installed as chat modes in `.github/chatmodes/`.
6 |
7 | ### How to Use
8 |
9 | 1. **Open Chat View**: Click Copilot icon in VS Code sidebar
10 | 2. **Select Mode**: Click mode selector (top of chat)
11 | 3. **Choose Agent**: Select the BMAD agent from dropdown
12 | 4. **Chat**: Agent is now active for this session
13 |
14 | ### VS Code Settings
15 |
16 | Configured in `.vscode/settings.json`:
17 |
18 | - Max requests per session
19 | - Auto-fix enabled
20 | - MCP discovery enabled
21 |
22 | ### Notes
23 |
24 | - Modes persist for the chat session
25 | - Switch modes anytime via dropdown
26 | - Multiple agents available in mode selector
27 |
--------------------------------------------------------------------------------
/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md:
--------------------------------------------------------------------------------
1 | ## Weekly Shopping List
2 |
3 | ### Check Pantry First
4 |
5 | - [List of common staples to verify]
6 |
7 | ### Produce Section
8 |
9 | - [Item] - [Quantity] - [Used in]
10 |
11 | ### Protein
12 |
13 | - [Item] - [Quantity] - [Used in]
14 |
15 | ### Dairy/Alternatives
16 |
17 | - [Item] - [Quantity] - [Used in]
18 |
19 | ### Grains/Starches
20 |
21 | - [Item] - [Quantity] - [Used in]
22 |
23 | ### Frozen
24 |
25 | - [Item] - [Quantity] - [Used in]
26 |
27 | ### Pantry
28 |
29 | - [Item] - [Quantity] - [Used in]
30 |
31 | ### Money-Saving Tips
32 |
33 | - [Personalized savings strategies]
34 |
35 | ### Flexible Swaps
36 |
37 | - [Alternative options if items unavailable]
38 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Empty string in principles array
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.persona.principles[1]
5 | # Error message: agent.persona.principles[] must be a non-empty string
6 |
7 | agent:
8 | metadata:
9 | id: empty-principle-string
10 | name: Empty Principle String
11 | title: Empty Principle
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Valid principle
20 | - " "
21 | - Another valid principle
22 |
23 | menu:
24 | - trigger: help
25 | description: Show help
26 | action: display_help
27 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Module field with whitespace only
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.metadata.module
5 | # Error message: agent.metadata.module must be a non-empty string
6 | # Path context: src/modules/bmm/agents/empty-module-string.agent.yaml
7 |
8 | agent:
9 | metadata:
10 | id: empty-module
11 | name: Empty Module String
12 | title: Empty Module
13 | icon: ❌
14 | module: " "
15 |
16 | persona:
17 | role: Test agent
18 | identity: Test identity
19 | communication_style: Test style
20 | principles:
21 | - Test principle
22 |
23 | menu:
24 | - trigger: help
25 | description: Show help
26 | action: display_help
27 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: critical_actions with valid strings
2 | # Expected: PASS
3 |
4 | agent:
5 | metadata:
6 | id: valid-critical-actions
7 | name: Valid Critical Actions
8 | title: Valid Critical Actions
9 | icon: 🧪
10 |
11 | persona:
12 | role: Test agent with critical actions
13 | identity: I am a test agent with valid critical actions.
14 | communication_style: Clear
15 | principles:
16 | - Test valid arrays
17 |
18 | critical_actions:
19 | - Load configuration from disk
20 | - Initialize user context
21 | - Set communication preferences
22 |
23 | menu:
24 | - trigger: help
25 | description: Show help
26 | action: display_help
27 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/metadata/core-agent-with-module.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Core agent with unexpected module field
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.metadata.module
5 | # Error message: core agents must not include agent.metadata.module
6 | # Path context: src/core/agents/core-agent-with-module.agent.yaml
7 |
8 | agent:
9 | metadata:
10 | id: core-with-module
11 | name: Core With Module
12 | title: Core Agent
13 | icon: ❌
14 | module: bmm
15 |
16 | persona:
17 | role: Test agent
18 | identity: Test identity
19 | communication_style: Test style
20 | principles:
21 | - Test principle
22 |
23 | menu:
24 | - trigger: help
25 | description: Show help
26 | action: display_help
27 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Prompts with required id and content only
2 | # Expected: PASS
3 |
4 | agent:
5 | metadata:
6 | id: valid-prompts-minimal
7 | name: Valid Prompts Minimal
8 | title: Valid Prompts
9 | icon: 🧪
10 |
11 | persona:
12 | role: Test agent with minimal prompts
13 | identity: I am a test agent with minimal prompt structure.
14 | communication_style: Clear
15 | principles:
16 | - Test minimal prompts
17 |
18 | prompts:
19 | - id: prompt1
20 | content: This is a valid prompt content
21 | - id: prompt2
22 | content: Another valid prompt
23 |
24 | menu:
25 | - trigger: help
26 | description: Show help
27 | action: display_help
28 |
--------------------------------------------------------------------------------
/tools/cli/installers/lib/ide/templates/workflow-command-template.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: '{{description}}'
3 | ---
4 |
5 | IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
6 |
7 |
8 | 1. Always LOAD the FULL @_bmad/core/tasks/workflow.xml
9 | 2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{{workflow_path}}
10 | 3. Pass the yaml path {{workflow_path}} as 'workflow-config' parameter to the workflow.xml instructions
11 | 4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
12 | 5. Save outputs after EACH section when generating any documents from templates
13 |
14 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/assessment-section.md:
--------------------------------------------------------------------------------
1 | ## 📊 Daily Nutrition Targets
2 |
3 | **Daily Calories:** [calculated amount]
4 | **Protein:** [grams]g ([percentage]% of calories)
5 | **Carbohydrates:** [grams]g ([percentage]% of calories)
6 | **Fat:** [grams]g ([percentage]% of calories)
7 |
8 | ---
9 |
10 | ## ⚠️ Dietary Considerations
11 |
12 | ### Allergies & Intolerances
13 |
14 | - [List of identified restrictions]
15 | - [Cross-reactivity notes if applicable]
16 |
17 | ### Medical Considerations
18 |
19 | - [Conditions noted with professional referral recommendation]
20 | - [Special nutritional requirements]
21 |
22 | ### Preferences
23 |
24 | - [Cultural/ethical restrictions]
25 | - [Strong dislikes to avoid]
26 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/edit-workflow/templates/improvement-log.md:
--------------------------------------------------------------------------------
1 | ## Improvement Log
2 |
3 | ### Change Summary
4 |
5 | - **Date**: {{date}}
6 | - **Improvement Area**: {{improvementArea}}
7 | - **User Goal**: {{userGoal}}
8 |
9 | ### Changes Made
10 |
11 | #### Change #{{changeNumber}}
12 |
13 | **Issue**: {{issueDescription}}
14 | **Solution**: {{solutionDescription}}
15 | **Rationale**: {{changeRationale}}
16 |
17 | **Files Modified**:
18 | {{#modifiedFiles}}
19 |
20 | - {{.}}
21 | {{/modifiedFiles}}
22 |
23 | **Before**:
24 |
25 | ```markdown
26 | {{beforeContent}}
27 | ```
28 |
29 | **After**:
30 |
31 | ```markdown
32 | {{afterContent}}
33 | ```
34 |
35 | **User Approval**: {{userApproval}}
36 | **Impact**: {{expectedImpact}}
37 |
38 | ---
39 |
40 | {{/improvementLog}}
41 |
--------------------------------------------------------------------------------
/src/modules/bmgd/_module-installer/platform-specifics/windsurf.js:
--------------------------------------------------------------------------------
1 | /**
2 | * BMGD Platform-specific installer for Windsurf
3 | *
4 | * @param {Object} options - Installation options
5 | * @param {string} options.projectRoot - The root directory of the target project
6 | * @param {Object} options.config - Module configuration from module.yaml
7 | * @param {Object} options.logger - Logger instance for output
8 | * @param {Object} options.platformInfo - Platform metadata from global config
9 | * @returns {Promise} - Success status
10 | */
11 | async function install() {
12 | // TODO: Add Windsurf specific BMGD configurations here
13 |
14 | // Currently a stub - no platform-specific configuration needed yet
15 | return true;
16 | }
17 |
18 | module.exports = { install };
19 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/checklist.md:
--------------------------------------------------------------------------------
1 | # Quick-Prototype Checklist
2 |
3 | ## Before Prototyping
4 |
5 | - [ ] Prototype scope defined (mechanic/feature/system)
6 | - [ ] Success criteria established (2-3 testable items)
7 | - [ ] Existing code/patterns identified (if applicable)
8 |
9 | ## Implementation
10 |
11 | - [ ] Minimum viable code written
12 | - [ ] Placeholder assets used (no polish needed)
13 | - [ ] Core functionality testable
14 | - [ ] Temporary code clearly marked
15 |
16 | ## Playtest
17 |
18 | - [ ] Each success criterion evaluated
19 | - [ ] Feel/behavior noted
20 | - [ ] Observations documented
21 |
22 | ## Completion
23 |
24 | - [ ] Decision made (develop/iterate/archive)
25 | - [ ] Learnings captured
26 | - [ ] Next steps clear
27 |
--------------------------------------------------------------------------------
/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml:
--------------------------------------------------------------------------------
1 | description = "Activates the {{title}} agent from the BMad Method."
2 | prompt = """
3 | CRITICAL: You are now the BMad '{{title}}' agent.
4 |
5 | PRE-FLIGHT CHECKLIST:
6 | 1. [ ] IMMEDIATE ACTION: Load and parse @{_bmad}/{{module}}/config.yaml - store ALL config values in memory for use throughout the session.
7 | 2. [ ] IMMEDIATE ACTION: Read and internalize the full agent definition at @{_bmad}/{{module}}/agents/{{name}}.md.
8 | 3. [ ] CONFIRM: The user's name from config is {user_name}.
9 |
10 | Only after all checks are complete, greet the user by name and display the menu.
11 | Acknowledge this checklist is complete in your first response.
12 |
13 | AGENT DEFINITION: @{_bmad}/{{module}}/agents/{{name}}.md
14 | """
15 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-module/templates/workflow-plan-template.md:
--------------------------------------------------------------------------------
1 | # Workflow Plan Template
2 |
3 | Use this template when creating workflow plans in step-07-workflows.md
4 |
5 | ## Template Structure
6 |
7 | Copy the content from step-07-workflows.md when creating workflow plans. The template is embedded in the step file as a code block under "Workflow plan template".
8 |
9 | ## Usage
10 |
11 | 1. Navigate to the workflow folder
12 | 2. Create workflow-plan.md
13 | 3. Use the template structure from step-07-workflows.md
14 | 4. Fill in details specific to your workflow
15 |
16 | ## Required Sections
17 |
18 | - Purpose
19 | - Requirements (User Inputs, Prerequisites, Dependencies)
20 | - Proposed Steps
21 | - Expected Outputs
22 | - Integration Points
23 | - Implementation Notes
24 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/metadata/module-agent-missing-module.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Module agent missing required module field
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.metadata.module
5 | # Error message: module-scoped agents must declare agent.metadata.module
6 | # Path context: src/modules/bmm/agents/module-agent-missing-module.agent.yaml
7 |
8 | agent:
9 | metadata:
10 | id: bmm-missing-module
11 | name: BMM Missing Module
12 | title: Missing Module
13 | icon: ❌
14 |
15 | persona:
16 | role: Test agent
17 | identity: Test identity
18 | communication_style: Test style
19 | principles:
20 | - Test principle
21 |
22 | menu:
23 | - trigger: help
24 | description: Show help
25 | action: display_help
26 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/shopping-section.md:
--------------------------------------------------------------------------------
1 | ## Weekly Shopping List
2 |
3 | ### Check Pantry First
4 |
5 | - [List of common staples to verify]
6 |
7 | ### Produce Section
8 |
9 | - [Item] - [Quantity] - [Used in]
10 |
11 | ### Protein
12 |
13 | - [Item] - [Quantity] - [Used in]
14 |
15 | ### Dairy/Alternatives
16 |
17 | - [Item] - [Quantity] - [Used in]
18 |
19 | ### Grains/Starches
20 |
21 | - [Item] - [Quantity] - [Used in]
22 |
23 | ### Frozen
24 |
25 | - [Item] - [Quantity] - [Used in]
26 |
27 | ### Pantry
28 |
29 | - [Item] - [Quantity] - [Used in]
30 |
31 | ### Money-Saving Tips
32 |
33 | - [Personalized savings strategies]
34 |
35 | ### Flexible Swaps
36 |
37 | - [Alternative options if items unavailable]
38 |
--------------------------------------------------------------------------------
/docs/ide-info/claude-code.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - Claude Code Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are installed as slash commands in `.claude/commands/bmad/`.
6 |
7 | ### How to Use
8 |
9 | 1. **Type Slash Command**: Start with `/` to see available commands
10 | 2. **Select Agent**: Type `/bmad-{agent-name}` (e.g., `/bmad-dev`)
11 | 3. **Execute**: Press Enter to activate that agent persona
12 |
13 | ### Examples
14 |
15 | ```
16 | /bmad:bmm:agents:dev - Activate development agent
17 | /bmad:bmm:agents:architect - Activate architect agent
18 | /bmad:bmm:workflows:dev-story - Execute dev-story workflow
19 | ```
20 |
21 | ### Notes
22 |
23 | - Commands are autocompleted when you type `/`
24 | - Agent remains active for the conversation
25 | - Start a new conversation to switch agents
26 |
--------------------------------------------------------------------------------
/docs/ide-info/cursor.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - Cursor Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are installed in `.cursor/rules/bmad/` as MDC rules.
6 |
7 | ### How to Use
8 |
9 | 1. **Reference in Chat**: Use `@_bmad/{module}/agents/{agent-name}`
10 | 2. **Include Entire Module**: Use `@_bmad/{module}`
11 | 3. **Reference Index**: Use `@_bmad/index` for all available agents
12 |
13 | ### Examples
14 |
15 | ```
16 | @_bmad/core/agents/dev - Activate dev agent
17 | @_bmad/bmm/agents/architect - Activate architect agent
18 | @_bmad/core - Include all core agents/tasks
19 | ```
20 |
21 | ### Notes
22 |
23 | - Rules are Manual type - only loaded when explicitly referenced
24 | - No automatic context pollution
25 | - Can combine multiple agents: `@_bmad/core/agents/dev @_bmad/core/agents/test`
26 |
--------------------------------------------------------------------------------
/prettier.config.mjs:
--------------------------------------------------------------------------------
1 | export default {
2 | $schema: 'https://json.schemastore.org/prettierrc',
3 | printWidth: 140,
4 | tabWidth: 2,
5 | useTabs: false,
6 | semi: true,
7 | singleQuote: true,
8 | trailingComma: 'all',
9 | bracketSpacing: true,
10 | arrowParens: 'always',
11 | endOfLine: 'lf',
12 | proseWrap: 'preserve',
13 | overrides: [
14 | {
15 | files: ['*.md'],
16 | options: { proseWrap: 'preserve' },
17 | },
18 | {
19 | files: ['*.yaml'],
20 | options: { singleQuote: false },
21 | },
22 | {
23 | files: ['*.json', '*.jsonc'],
24 | options: { singleQuote: false },
25 | },
26 | {
27 | files: ['*.cjs'],
28 | options: { parser: 'babel' },
29 | },
30 | ],
31 | plugins: ['prettier-plugin-packagejson'],
32 | };
33 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Extra unknown fields in prompts
2 | # Expected: FAIL
3 | # Error code: unrecognized_keys
4 | # Error path: agent.prompts[0]
5 | # Error keys: ["extra_field"]
6 |
7 | agent:
8 | metadata:
9 | id: extra-prompt-fields
10 | name: Extra Prompt Fields
11 | title: Extra Fields
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | prompts:
22 | - id: prompt1
23 | content: Valid content
24 | description: Valid description
25 | extra_field: Not allowed
26 |
27 | menu:
28 | - trigger: help
29 | description: Show help
30 | action: display_help
31 |
--------------------------------------------------------------------------------
/docs/ide-info/crush.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - Crush Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are installed as commands in `.crush/commands/bmad/`.
6 |
7 | ### How to Use
8 |
9 | 1. **Open Command Palette**: Use Crush command interface
10 | 2. **Navigate**: Browse to `_bmad/{module}/agents/`
11 | 3. **Select Agent**: Choose the agent command
12 | 4. **Execute**: Run to activate agent persona
13 |
14 | ### Command Structure
15 |
16 | ```
17 | .crush/commands/bmad/
18 | ├── agents/ # All agents
19 | ├── tasks/ # All tasks
20 | ├── core/ # Core module
21 | │ ├── agents/
22 | │ └── tasks/
23 | └── {module}/ # Other modules
24 | ```
25 |
26 | ### Notes
27 |
28 | - Commands organized by module
29 | - Can browse hierarchically
30 | - Agent activates for session
31 |
--------------------------------------------------------------------------------
/docs/ide-info/roo.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - Roo Code Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are installed as custom modes in `.roomodes`.
6 |
7 | ### How to Use
8 |
9 | 1. **Open Project**: Modes auto-load when project opens
10 | 2. **Select Mode**: Use mode selector in Roo interface
11 | 3. **Choose Agent**: Pick `bmad-{module}-{agent}` mode
12 | 4. **Activate**: Mode is now active with configured permissions
13 |
14 | ### Permission Levels
15 |
16 | Modes are configured with file edit permissions:
17 |
18 | - Development files only
19 | - Configuration files only
20 | - Documentation files only
21 | - All files (if configured)
22 |
23 | ### Notes
24 |
25 | - Modes persist until changed
26 | - Each mode has specific file access rights
27 | - Icon shows in mode selector for easy identification
28 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Malformed module path (no slash after module name) treated as core
2 | # Expected: PASS - malformed path returns null, treated as core agent
3 | # Path context: src/modules/bmm
4 |
5 | agent:
6 | metadata:
7 | id: malformed-path
8 | name: Malformed Path Test
9 | title: Malformed Path
10 | icon: 🧪
11 | # No module field - will be treated as core since path parsing returns null
12 |
13 | persona:
14 | role: Test agent for malformed path edge case
15 | identity: I test edge cases in path parsing.
16 | communication_style: Clear
17 | principles:
18 | - Test edge case handling
19 |
20 | menu:
21 | - trigger: help
22 | description: Show help
23 | action: display_help
24 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: critical_actions with empty strings
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.critical_actions[1]
5 | # Error message: agent.critical_actions[] must be a non-empty string
6 |
7 | agent:
8 | metadata:
9 | id: empty-action-string
10 | name: Empty Action String
11 | title: Empty Action String
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | critical_actions:
22 | - Valid action
23 | - " "
24 | - Another valid action
25 |
26 | menu:
27 | - trigger: help
28 | description: Show help
29 | action: display_help
30 |
--------------------------------------------------------------------------------
/docs/ide-info/auggie.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - Auggie CLI Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents can be installed in multiple locations based on your setup.
6 |
7 | ### Common Locations
8 |
9 | - User Home: `~/.augment/commands/`
10 | - Project: `.augment/commands/`
11 | - Custom paths you selected
12 |
13 | ### How to Use
14 |
15 | 1. **Type Trigger**: Use `@{agent-name}` in your prompt
16 | 2. **Activate**: Agent persona activates
17 | 3. **Tasks**: Use `@task-{task-name}` for tasks
18 |
19 | ### Examples
20 |
21 | ```
22 | @dev - Activate development agent
23 | @architect - Activate architect agent
24 | @task-setup - Execute setup task
25 | ```
26 |
27 | ### Notes
28 |
29 | - Agents can be in multiple locations
30 | - Check your installation paths
31 | - Activation syntax same across all locations
32 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv:
--------------------------------------------------------------------------------
1 | project_type,detection_signals,description,typical_starters
2 | web_app,"website,web application,browser,frontend,UI,interface",Web-based applications running in browsers,Next.js, Vite, Remix
3 | mobile_app,"mobile,iOS,Android,app,smartphone,tablet",Native mobile applications,React Native, Expo, Flutter
4 | api_backend,"API,REST,GraphQL,backend,service,microservice",Backend services and APIs,NestJS, Express, Fastify
5 | full_stack,"full-stack,complete,web+mobile,frontend+backend",Applications with both frontend and backend,T3 App, RedwoodJS, Blitz
6 | cli_tool,"CLI,command line,terminal,console,tool",Command-line interface tools,oclif, Commander, Caporal
7 | desktop_app,"desktop,Electron,Tauri,native app,macOS,Windows",Desktop applications,Electron, Tauri, Flutter Desktop
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Empty module name in path (src/modules//agents/)
2 | # Expected: PASS - treated as core agent (empty module normalizes to null)
3 | # Path context: src/modules//agents/test.agent.yaml
4 |
5 | agent:
6 | metadata:
7 | id: empty-module-path
8 | name: Empty Module in Path
9 | title: Empty Module Path
10 | icon: 🧪
11 | # No module field - path has empty module name, treated as core
12 |
13 | persona:
14 | role: Test agent for empty module name in path
15 | identity: I test the edge case where module name in path is empty.
16 | communication_style: Clear
17 | principles:
18 | - Test path parsing edge cases
19 |
20 | menu:
21 | - trigger: help
22 | description: Show help
23 | action: display_help
24 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: All persona fields properly filled
2 | # Expected: PASS
3 |
4 | agent:
5 | metadata:
6 | id: complete-persona
7 | name: Complete Persona Agent
8 | title: Complete Persona
9 | icon: 🧪
10 |
11 | persona:
12 | role: Comprehensive test agent with all persona fields
13 | identity: I am a test agent designed to validate complete persona structure with multiple characteristics and attributes.
14 | communication_style: Professional, clear, and thorough with attention to detail
15 | principles:
16 | - Validate all persona fields are present
17 | - Ensure array fields work correctly
18 | - Test comprehensive documentation
19 |
20 | menu:
21 | - trigger: help
22 | description: Show help
23 | action: display_help
24 |
--------------------------------------------------------------------------------
/docs/ide-info/iflow.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - iFlow CLI Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are installed as commands in `.iflow/commands/bmad/`.
6 |
7 | ### How to Use
8 |
9 | 1. **Access Commands**: Use iFlow command interface
10 | 2. **Navigate**: Browse to `_bmad/agents/` or `_bmad/tasks/`
11 | 3. **Select**: Choose the agent or task command
12 | 4. **Execute**: Run to activate
13 |
14 | ### Command Structure
15 |
16 | ```
17 | .iflow/commands/bmad/
18 | ├── agents/ # Agent commands
19 | └── tasks/ # Task commands
20 | ```
21 |
22 | ### Examples
23 |
24 | ```
25 | /_bmad/agents/core-dev - Activate dev agent
26 | /_bmad/tasks/core-setup - Execute setup task
27 | ```
28 |
29 | ### Notes
30 |
31 | - Commands organized by type (agents/tasks)
32 | - Agent activates for session
33 | - Similar to Crush command structure
34 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-wellness-module/workflows/wellness-journal/README.md:
--------------------------------------------------------------------------------
1 | # Wellness Journal Workflow
2 |
3 | ## Purpose
4 |
5 | Guided reflective writing practice to process thoughts and emotions.
6 |
7 | ## Trigger
8 |
9 | WJ (from Wellness Companion agent)
10 |
11 | ## Key Steps
12 |
13 | 1. Set intention for journal entry
14 | 2. Choose journal prompt or free write
15 | 3. Guided reflection questions
16 | 4. Emotional processing check
17 | 5. Identify insights or patterns
18 | 6. Save entry with mood tags
19 | 7. Provide supportive closure
20 |
21 | ## Expected Output
22 |
23 | - Journal entry with metadata
24 | - Mood analysis
25 | - Pattern insights
26 | - Progress indicators
27 |
28 | ## Notes
29 |
30 | This workflow will be implemented using the create-workflow workflow.
31 | Features: Daily prompts, mood tracking, pattern recognition, searchable entries.
32 |
--------------------------------------------------------------------------------
/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md:
--------------------------------------------------------------------------------
1 | # Breakthrough Moments
2 |
3 | ## Recorded Insights
4 |
5 |
14 |
15 | ### Example Entry - Self-Compassion Shift
16 |
17 | **Context:** After weeks of harsh self-talk in entries
18 | **The Breakthrough:** "I realized I'd never talk to a friend the way I talk to myself"
19 | **Significance:** First step toward gentler inner dialogue
20 | **Connected Themes:** Perfectionism pattern, self-worth exploration
21 |
22 | ---
23 |
24 | _These moments mark the turning points in their growth story._
25 |
--------------------------------------------------------------------------------
/src/core/module.yaml:
--------------------------------------------------------------------------------
1 | code: core
2 | name: "BMad™ Core Module"
3 |
4 | header: "BMad™ Core Configuration"
5 | subheader: "Configure the core settings for your BMad™ installation.\nThese settings will be used across all modules and agents."
6 |
7 | user_name:
8 | prompt: "What shall the agents call you (TIP: Use a team name if using with a group)?"
9 | default: "BMad"
10 | result: "{value}"
11 |
12 | communication_language:
13 | prompt: "Preferred chat language/style? (English, Mandarin, English Pirate, etc...)"
14 | default: "English"
15 | result: "{value}"
16 |
17 | document_output_language:
18 | prompt: "Preferred document output language?"
19 | default: "English"
20 | result: "{value}"
21 |
22 | output_folder:
23 | prompt: "Where should default output files be saved unless specified in other modules?"
24 | default: "_bmad-output"
25 | result: "{project-root}/{value}"
26 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Duplicate triggers within same agent
2 | # Expected: FAIL
3 | # Error code: custom
4 | # Error path: agent.menu[2].trigger
5 | # Error message: agent.menu[].trigger duplicates "help" within the same agent
6 |
7 | agent:
8 | metadata:
9 | id: duplicate-triggers
10 | name: Duplicate Triggers
11 | title: Duplicate
12 | icon: ❌
13 |
14 | persona:
15 | role: Test agent
16 | identity: Test identity
17 | communication_style: Test style
18 | principles:
19 | - Test principle
20 |
21 | menu:
22 | - trigger: help
23 | description: First help command
24 | action: display_help
25 | - trigger: list-tasks
26 | description: List tasks
27 | action: list_tasks
28 | - trigger: help
29 | description: Duplicate help command
30 | action: show_help
31 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-wellness-module/workflows/guided-meditation/README.md:
--------------------------------------------------------------------------------
1 | # Guided Meditation Workflow
2 |
3 | ## Purpose
4 |
5 | Full meditation session experience with various techniques and durations.
6 |
7 | ## Trigger
8 |
9 | GM (from Meditation Guide agent)
10 |
11 | ## Key Steps
12 |
13 | 1. Set intention for practice
14 | 2. Choose meditation type and duration
15 | 3. Get comfortable and settle in
16 | 4. Guided practice
17 | 5. Gentle return to awareness
18 | 6. Reflection and integration
19 | 7. Save session notes
20 |
21 | ## Expected Output
22 |
23 | - Completed meditation session
24 | - Mindfulness state rating
25 | - Session notes
26 | - Progress tracking
27 |
28 | ## Notes
29 |
30 | This workflow will be implemented using the create-workflow workflow.
31 | Features: Multiple types (breathing, body scan, loving-kindness), flexible durations, progressive levels, mood integration.
32 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md:
--------------------------------------------------------------------------------
1 | # Breakthrough Moments
2 |
3 | ## Recorded Insights
4 |
5 |
14 |
15 | ### Example Entry - Self-Compassion Shift
16 |
17 | **Context:** After weeks of harsh self-talk in entries
18 | **The Breakthrough:** "I realized I'd never talk to a friend the way I talk to myself"
19 | **Significance:** First step toward gentler inner dialogue
20 | **Connected Themes:** Perfectionism pattern, self-worth exploration
21 |
22 | ---
23 |
24 | _These moments mark the turning points in their growth story._
25 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-wellness-module/workflows/daily-checkin/README.md:
--------------------------------------------------------------------------------
1 | # Daily Check-in Workflow
2 |
3 | ## Purpose
4 |
5 | Quick mood and wellness assessment to track emotional state and provide personalized support.
6 |
7 | ## Trigger
8 |
9 | DC (from Wellness Companion agent)
10 |
11 | ## Key Steps
12 |
13 | 1. Greeting and initial check-in
14 | 2. Mood assessment (scale 1-10)
15 | 3. Energy level check
16 | 4. Sleep quality review
17 | 5. Highlight a positive moment
18 | 6. Identify challenges
19 | 7. Provide personalized encouragement
20 | 8. Suggest appropriate wellness activity
21 |
22 | ## Expected Output
23 |
24 | - Mood log entry with timestamp
25 | - Personalized support message
26 | - Activity recommendation
27 | - Daily wellness score
28 |
29 | ## Notes
30 |
31 | This workflow will be implemented using the create-workflow workflow.
32 | Integration with wellness journal for data persistence.
33 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Prompts with optional description field
2 | # Expected: PASS
3 |
4 | agent:
5 | metadata:
6 | id: valid-prompts-description
7 | name: Valid Prompts With Description
8 | title: Valid Prompts Desc
9 | icon: 🧪
10 |
11 | persona:
12 | role: Test agent with prompts including descriptions
13 | identity: I am a test agent with complete prompt structure.
14 | communication_style: Clear
15 | principles:
16 | - Test complete prompts
17 |
18 | prompts:
19 | - id: prompt1
20 | content: This is a valid prompt content
21 | description: This prompt does something useful
22 | - id: prompt2
23 | content: Another valid prompt
24 | description: This prompt does something else
25 |
26 | menu:
27 | - trigger: help
28 | description: Show help
29 | action: display_help
30 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Menu with multiple valid items using different command types
2 | # Expected: PASS
3 |
4 | agent:
5 | metadata:
6 | id: multiple-menu
7 | name: Multiple Menu Items
8 | title: Multiple Menu
9 | icon: 🧪
10 |
11 | persona:
12 | role: Test agent with multiple menu items
13 | identity: I am a test agent with diverse menu commands.
14 | communication_style: Clear
15 | principles:
16 | - Test multiple menu items
17 |
18 | menu:
19 | - trigger: help
20 | description: Show help
21 | action: display_help
22 | - trigger: start-workflow
23 | description: Start a workflow
24 | workflow: path/to/workflow
25 | - trigger: execute
26 | description: Execute command
27 | exec: npm test
28 | - trigger: use-template
29 | description: Use template
30 | tmpl: path/to/template
31 |
--------------------------------------------------------------------------------
/.github/FUNDING.yaml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project_name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project_name e.g., cloud-foundry
12 | polar: # Replace with a single Polar username
13 | buy_me_a_coffee: bmad
14 | thanks_dev: # Replace with a single thanks.dev username
15 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
16 |
--------------------------------------------------------------------------------
/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv:
--------------------------------------------------------------------------------
1 | goal,activity_level,multiplier,protein_ratio,protein_min,protein_max,fat_ratio,carb_ratio
2 | weight_loss,sedentary,1.2,0.3,1.6,2.2,0.35,0.35
3 | weight_loss,light,1.375,0.35,1.8,2.5,0.30,0.35
4 | weight_loss,moderate,1.55,0.4,2.0,2.8,0.30,0.30
5 | weight_loss,active,1.725,0.4,2.2,3.0,0.25,0.35
6 | weight_loss,very_active,1.9,0.45,2.5,3.3,0.25,0.30
7 | maintenance,sedentary,1.2,0.25,0.8,1.2,0.35,0.40
8 | maintenance,light,1.375,0.25,1.0,1.4,0.35,0.40
9 | maintenance,moderate,1.55,0.3,1.2,1.6,0.35,0.35
10 | maintenance,active,1.725,0.3,1.4,1.8,0.30,0.40
11 | maintenance,very_active,1.9,0.35,1.6,2.2,0.30,0.35
12 | muscle_gain,sedentary,1.2,0.35,1.8,2.5,0.30,0.35
13 | muscle_gain,light,1.375,0.4,2.0,2.8,0.30,0.30
14 | muscle_gain,moderate,1.55,0.4,2.2,3.0,0.25,0.35
15 | muscle_gain,active,1.725,0.45,2.5,3.3,0.25,0.30
16 | muscle_gain,very_active,1.9,0.45,2.8,3.5,0.25,0.30
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml:
--------------------------------------------------------------------------------
1 | # BMGD Quick Flow - Brownfield
2 | # Rapid game development for existing projects
3 |
4 | method_name: "BMGD Quick Flow"
5 | track: "quickflow"
6 | field_type: "brownfield"
7 | description: "Rapid development and iteration for existing game projects"
8 |
9 | phases:
10 | - phase: 1
11 | name: "Planning"
12 | required: true
13 | workflows:
14 | - id: "create-tech-spec"
15 | required: true
16 | agent: "game-solo-dev"
17 | command: "create-tech-spec"
18 | output: "Technical specification"
19 | note: "Define changes for existing codebase"
20 |
21 | - phase: 2
22 | name: "Development"
23 | required: true
24 | workflows:
25 | - id: "quick-dev"
26 | required: true
27 | agent: "game-solo-dev"
28 | command: "quick-dev"
29 | note: "Iterative development - repeat as needed"
30 |
--------------------------------------------------------------------------------
/tools/cli/commands/update.js:
--------------------------------------------------------------------------------
1 | const chalk = require('chalk');
2 | const { Installer } = require('../installers/lib/core/installer');
3 |
4 | const installer = new Installer();
5 |
6 | module.exports = {
7 | command: 'update',
8 | description: 'Update existing BMAD installation',
9 | options: [
10 | ['-d, --directory ', 'Installation directory', '.'],
11 | ['--force', 'Force update, overwriting modified files'],
12 | ['--dry-run', 'Show what would be updated without making changes'],
13 | ],
14 | action: async (options) => {
15 | try {
16 | await installer.update({
17 | directory: options.directory,
18 | force: options.force,
19 | dryRun: options.dryRun,
20 | });
21 | console.log(chalk.green('\n✨ Update complete!'));
22 | process.exit(0);
23 | } catch (error) {
24 | console.error(chalk.red('Update failed:'), error.message);
25 | process.exit(1);
26 | }
27 | },
28 | };
29 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv:
--------------------------------------------------------------------------------
1 | goal,activity_level,multiplier,protein_ratio,protein_min,protein_max,fat_ratio,carb_ratio
2 | weight_loss,sedentary,1.2,0.3,1.6,2.2,0.35,0.35
3 | weight_loss,light,1.375,0.35,1.8,2.5,0.30,0.35
4 | weight_loss,moderate,1.55,0.4,2.0,2.8,0.30,0.30
5 | weight_loss,active,1.725,0.4,2.2,3.0,0.25,0.35
6 | weight_loss,very_active,1.9,0.45,2.5,3.3,0.25,0.30
7 | maintenance,sedentary,1.2,0.25,0.8,1.2,0.35,0.40
8 | maintenance,light,1.375,0.25,1.0,1.4,0.35,0.40
9 | maintenance,moderate,1.55,0.3,1.2,1.6,0.35,0.35
10 | maintenance,active,1.725,0.3,1.4,1.8,0.30,0.40
11 | maintenance,very_active,1.9,0.35,1.6,2.2,0.30,0.35
12 | muscle_gain,sedentary,1.2,0.35,1.8,2.5,0.30,0.35
13 | muscle_gain,light,1.375,0.4,2.0,2.8,0.30,0.30
14 | muscle_gain,moderate,1.55,0.4,2.2,3.0,0.25,0.35
15 | muscle_gain,active,1.725,0.45,2.5,3.3,0.25,0.30
16 | muscle_gain,very_active,1.9,0.45,2.8,3.5,0.25,0.30
--------------------------------------------------------------------------------
/src/modules/bmgd/teams/team-gamedev.yaml:
--------------------------------------------------------------------------------
1 | #
2 | bundle:
3 | name: Team Game Development
4 | icon: 🎮
5 | description: Specialized game development team including Game Designer (creative vision and GDD), Game Developer (implementation and code), Game Architect (technical systems and infrastructure), Game Scrum Master (sprint coordination), Game QA (testing and quality assurance), and Game Solo Dev (quick-flow development). Perfect for game projects across all scales and platforms.
6 | agents:
7 | - game-designer
8 | - game-dev
9 | - game-architect
10 | - game-scrum-master
11 | - game-qa
12 | - game-solo-dev
13 |
14 | workflows:
15 | - brainstorm-game
16 | - game-brief
17 | - gdd
18 | - narrative
19 | - game-architecture
20 | - sprint-planning
21 | - sprint-status
22 | - create-story
23 | - dev-story
24 | - code-review
25 | - test-framework
26 | - quick-prototype
27 | - quick-dev
28 |
29 | party: "./default-party.csv"
30 |
--------------------------------------------------------------------------------
/src/modules/bmm/data/README.md:
--------------------------------------------------------------------------------
1 | # BMM Module Data
2 |
3 | This directory contains module-specific data files used by BMM agents and workflows.
4 |
5 | ## Files
6 |
7 | ### `project-context-template.md`
8 |
9 | Template for project-specific brainstorming context. Used by:
10 |
11 | - Analyst agent `brainstorm-project` command
12 | - Core brainstorming workflow when called with context
13 |
14 | ### `documentation-standards.md`
15 |
16 | BMAD documentation standards and guidelines. Used by:
17 |
18 | - Tech Writer agent (critical action loading)
19 | - Various documentation workflows
20 | - Standards validation and review processes
21 |
22 | ## Purpose
23 |
24 | Separates module-specific data from core workflow implementations, maintaining clean architecture:
25 |
26 | - Core workflows remain generic and reusable
27 | - Module-specific templates and standards are properly scoped
28 | - Data files can be easily maintained and updated
29 | - Clear separation of concerns between core and module functionality
30 |
--------------------------------------------------------------------------------
/src/modules/bmgd/_module-installer/platform-specifics/claude-code.js:
--------------------------------------------------------------------------------
1 | /**
2 | * BMGD Platform-specific installer for Claude Code
3 | *
4 | * @param {Object} options - Installation options
5 | * @param {string} options.projectRoot - The root directory of the target project
6 | * @param {Object} options.config - Module configuration from module.yaml
7 | * @param {Object} options.logger - Logger instance for output
8 | * @param {Object} options.platformInfo - Platform metadata from global config
9 | * @returns {Promise} - Success status
10 | */
11 | async function install() {
12 | // TODO: Add Claude Code specific BMGD configurations here
13 | // For example:
14 | // - Game-specific slash commands
15 | // - Agent party configurations for game dev team
16 | // - Workflow integrations for Unity/Unreal/Godot
17 | // - Game testing framework integrations
18 |
19 | // Currently a stub - no platform-specific configuration needed yet
20 | return true;
21 | }
22 |
23 | module.exports = { install };
24 |
--------------------------------------------------------------------------------
/src/utility/agent-components/handler-multi.txt:
--------------------------------------------------------------------------------
1 |
2 | When menu item has: type="multi" with nested handlers
3 | 1. Display the multi item text as a single menu option
4 | 2. Parse all nested handlers within the multi item
5 | 3. For each nested handler:
6 | - Use the 'match' attribute for fuzzy matching user input (or Exact Match of character code in brackets [])
7 | - Execute based on handler attributes (exec, workflow, action)
8 | 4. When user input matches a handler's 'match' pattern:
9 | - For exec="path/to/file.md": follow the `handler type="exec"` instructions
10 | - For workflow="path/to/workflow.yaml": follow the `handler type="workflow"` instructions
11 | - For action="...": Perform the specified action directly
12 | 5. Support both exact matches and fuzzy matching based on the match attribute
13 | 6. If no handler matches, prompt user to choose from available options
14 |
--------------------------------------------------------------------------------
/docs/ide-info/cline.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - Cline Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are installed as **toggleable rules** in `.clinerules/` directory.
6 |
7 | ### Important: Rules are OFF by default
8 |
9 | - Rules are NOT automatically loaded to avoid context pollution
10 | - You must manually enable the agent you want to use
11 |
12 | ### How to Use
13 |
14 | 1. **Open Rules Panel**: Click the rules icon below the chat input
15 | 2. **Enable an Agent**: Toggle ON the specific agent rule you need (e.g., `01-core-dev`)
16 | 3. **Activate in Chat**: Type `@{agent-name}` to activate that persona
17 | 4. **Disable When Done**: Toggle OFF to free up context
18 |
19 | ### Best Practices
20 |
21 | - Only enable 1-2 agents at a time to preserve context
22 | - Disable agents when switching tasks
23 | - Rules are numbered (01-, 02-) for organization, not priority
24 |
25 | ### Example
26 |
27 | ```
28 | Toggle ON: 01-core-dev.md
29 | In chat: "@dev help me refactor this code"
30 | When done: Toggle OFF the rule
31 | ```
32 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml:
--------------------------------------------------------------------------------
1 | # Workflow Status Template
2 |
3 | # This tracks progress through BMM methodology Analysis, Planning, and Solutioning phases.
4 | # Implementation phase is tracked separately in sprint-status.yaml
5 |
6 | # STATUS DEFINITIONS:
7 | # ==================
8 | # Initial Status (before completion):
9 | # - required: Must be completed to progress
10 | # - optional: Can be completed but not required
11 | # - recommended: Strongly suggested but not required
12 | # - conditional: Required only if certain conditions met (e.g., if_has_ui)
13 | #
14 | # Completion Status:
15 | # - {file-path}: File created/found (e.g., "docs/product-brief.md")
16 | # - skipped: Optional/conditional workflow that was skipped
17 |
18 | generated: "{{generated}}"
19 | project: "{{project_name}}"
20 | project_type: "{{project_type}}"
21 | selected_track: "{{selected_track}}"
22 | field_type: "{{field_type}}"
23 | workflow_path: "{{workflow_path_file}}"
24 | workflow_status: "{{workflow_items}}"
25 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Valid kebab-case triggers
2 | # Expected: PASS
3 |
4 | agent:
5 | metadata:
6 | id: kebab-triggers
7 | name: Kebab Case Triggers
8 | title: Kebab Triggers
9 | icon: 🧪
10 |
11 | persona:
12 | role: Test agent with kebab-case triggers
13 | identity: I test kebab-case trigger validation.
14 | communication_style: Clear
15 | principles:
16 | - Test kebab-case format
17 |
18 | menu:
19 | - trigger: help
20 | description: Single word trigger
21 | action: display_help
22 | - trigger: list-tasks
23 | description: Two word trigger
24 | action: list_tasks
25 | - trigger: workflow-init-process
26 | description: Three word trigger
27 | action: init_workflow
28 | - trigger: test123
29 | description: Trigger with numbers
30 | action: test
31 | - trigger: multi-word-kebab-case-trigger
32 | description: Long kebab-case trigger
33 | action: long_action
34 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/2-design/gdd/game-types/action-platformer.md:
--------------------------------------------------------------------------------
1 | ## Action Platformer Specific Elements
2 |
3 | ### Movement System
4 |
5 | {{movement_mechanics}}
6 |
7 | **Core movement abilities:**
8 |
9 | - Jump mechanics (height, air control, coyote time)
10 | - Running/walking speed
11 | - Special movement (dash, wall-jump, double-jump, etc.)
12 |
13 | ### Combat System
14 |
15 | {{combat_system}}
16 |
17 | **Combat mechanics:**
18 |
19 | - Attack types (melee, ranged, special)
20 | - Combo system
21 | - Enemy AI behavior patterns
22 | - Hit feedback and impact
23 |
24 | ### Level Design Patterns
25 |
26 | {{level_design_patterns}}
27 |
28 | **Level structure:**
29 |
30 | - Platforming challenges
31 | - Combat arenas
32 | - Secret areas and collectibles
33 | - Checkpoint placement
34 | - Difficulty spikes and pacing
35 |
36 | ### Player Abilities and Unlocks
37 |
38 | {{player_abilities}}
39 |
40 | **Ability progression:**
41 |
42 | - Starting abilities
43 | - Unlockable abilities
44 | - Ability synergies
45 | - Upgrade paths
46 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/workflow-status/workflow-status-template.yaml:
--------------------------------------------------------------------------------
1 | # Workflow Status Template (BMGD)
2 |
3 | # This tracks progress through BMGD methodology Pre-production, Design, and Technical phases.
4 | # Implementation phase is tracked separately in sprint-status.yaml
5 |
6 | # STATUS DEFINITIONS:
7 | # ==================
8 | # Initial Status (before completion):
9 | # - required: Must be completed to progress
10 | # - optional: Can be completed but not required
11 | # - recommended: Strongly suggested but not required
12 | # - conditional: Required only if certain conditions met (e.g., if_narrative_focused)
13 | #
14 | # Completion Status:
15 | # - {file-path}: File created/found (e.g., "docs/gdd.md")
16 | # - skipped: Optional/conditional workflow that was skipped
17 |
18 | generated: "{{generated}}"
19 | project: "{{project_name}}"
20 | project_type: "{{project_type}}"
21 | selected_track: "{{selected_track}}"
22 | field_type: "{{field_type}}"
23 | workflow_path: "{{workflow_path_file}}"
24 | workflow_status: "{{workflow_items}}"
25 |
--------------------------------------------------------------------------------
/docs/web-bundles-gemini-gpt-guide.md:
--------------------------------------------------------------------------------
1 | # Using BMad Web Bundles in Gemini Gems & Custom GPTs
2 |
3 | ## IMPORTANT NOTE
4 |
5 | The Web Bundling Feature is being rebuilt from the ground up, current bundles for v6 may be incomplete or missing functionality and are not optimized. This will be rectified very soon, with a more expansive guide.
6 |
7 | ## What Are Web bundles
8 |
9 | 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.
10 |
11 | ## What Are Web Bundles?
12 |
13 | Web bundles are standalone XML files containing:
14 |
15 | - Complete agent persona and instructions
16 | - All workflows and dependencies
17 | - Interactive menu system
18 | - Party mode for multi-agent collaboration
19 | - No external files required
20 |
21 | **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.
22 |
--------------------------------------------------------------------------------
/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md:
--------------------------------------------------------------------------------
1 | # Mood Tracking Patterns
2 |
3 | ## Mood Log
4 |
5 |
6 |
7 | | Date | Mood | Energy | Clarity | Peace | Emotion | Context |
8 | | ------ | ---- | ------ | ------- | ----- | ------- | ------------ |
9 | | [Date] | [#] | [#] | [#] | [#] | [word] | [brief note] |
10 |
11 | ## Trends Observed
12 |
13 |
14 |
15 | ### Weekly Patterns
16 |
17 | - [Day of week tendencies]
18 |
19 | ### Monthly Cycles
20 |
21 | - [Longer-term patterns]
22 |
23 | ### Trigger Correlations
24 |
25 | - [What seems to affect mood]
26 |
27 | ### Positive Markers
28 |
29 | - [What correlates with higher moods]
30 |
31 | ## Insights
32 |
33 |
34 |
35 | - [Insight about their patterns]
36 |
37 | ---
38 |
39 | _Tracking emotions over time reveals the rhythm of their inner world._
40 |
--------------------------------------------------------------------------------
/docs/ide-info/opencode.md:
--------------------------------------------------------------------------------
1 | # BMAD Method - OpenCode Instructions
2 |
3 | ## Activating Agents
4 |
5 | BMAD agents are installed as OpenCode agents in `.opencode/agent/BMAD/{module_name}` and workflow commands in `.opencode/command/BMAD/{module_name}`.
6 |
7 | ### How to Use
8 |
9 | 1. **Switch Agents**: Press **Tab** to cycle through primary agents or select using the `/agents`
10 | 2. **Activate Agent**: Once the Agent is selected say `hello` or any prompt to activate that agent persona
11 | 3. **Execute Commands**: Type `/bmad` to see and execute bmad workflow commands (commands allow for fuzzy matching)
12 |
13 | ### Examples
14 |
15 | ```
16 | /agents - to see a list of agents and switch between them
17 | /_bmad/bmm/workflows/workflow-init - Activate the workflow-init command
18 | ```
19 |
20 | ### Notes
21 |
22 | - Press **Tab** to switch between primary agents (Analyst, Architect, Dev, etc.)
23 | - Commands are autocompleted when you type `/` and allow for fuzzy matching
24 | - Workflow commands execute in current agent context, make sure you have the right agent activated before running a command
25 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md:
--------------------------------------------------------------------------------
1 | # Mood Tracking Patterns
2 |
3 | ## Mood Log
4 |
5 |
6 |
7 | | Date | Mood | Energy | Clarity | Peace | Emotion | Context |
8 | | ------ | ---- | ------ | ------- | ----- | ------- | ------------ |
9 | | [Date] | [#] | [#] | [#] | [#] | [word] | [brief note] |
10 |
11 | ## Trends Observed
12 |
13 |
14 |
15 | ### Weekly Patterns
16 |
17 | - [Day of week tendencies]
18 |
19 | ### Monthly Cycles
20 |
21 | - [Longer-term patterns]
22 |
23 | ### Trigger Correlations
24 |
25 | - [What seems to affect mood]
26 |
27 | ### Positive Markers
28 |
29 | - [What correlates with higher moods]
30 |
31 | ## Insights
32 |
33 |
34 |
35 | - [Insight about their patterns]
36 |
37 | ---
38 |
39 | _Tracking emotions over time reveals the rhythm of their inner world._
40 |
--------------------------------------------------------------------------------
/.markdownlint-cli2.yaml:
--------------------------------------------------------------------------------
1 | # markdownlint-cli2 configuration
2 | # https://github.com/DavidAnson/markdownlint-cli2
3 |
4 | ignores:
5 | - node_modules/**
6 | - test/fixtures/**
7 | - CODE_OF_CONDUCT.md
8 | - _bmad/**
9 | - _bmad*/**
10 | - .agent/**
11 | - .claude/**
12 | - .roo/**
13 | - .codex/**
14 | - .agentvibes/**
15 | - .kiro/**
16 | - sample-project/**
17 | - test-project-install/**
18 | - z*/**
19 |
20 | # Rule configuration
21 | config:
22 | # Disable all rules by default
23 | default: false
24 |
25 | # Heading levels should increment by one (h1 -> h2 -> h3, not h1 -> h3)
26 | MD001: true
27 |
28 | # Duplicate sibling headings (same heading text at same level under same parent)
29 | MD024:
30 | siblings_only: true
31 |
32 | # Trailing commas in headings (likely typos)
33 | MD026:
34 | punctuation: ","
35 |
36 | # Bare URLs - may not render as links in all parsers
37 | # Should use or [text](url) format
38 | MD034: true
39 |
40 | # Spaces inside emphasis markers - breaks rendering
41 | # e.g., "* text *" won't render as emphasis
42 | MD037: true
43 |
--------------------------------------------------------------------------------
/src/modules/bmm/_module-installer/platform-specifics/windsurf.js:
--------------------------------------------------------------------------------
1 | const chalk = require('chalk');
2 |
3 | /**
4 | * BMM Platform-specific installer for Windsurf
5 | *
6 | * @param {Object} options - Installation options
7 | * @param {string} options.projectRoot - The root directory of the target project
8 | * @param {Object} options.config - Module configuration from module.yaml
9 | * @param {Object} options.logger - Logger instance for output
10 | * @returns {Promise} - Success status
11 | */
12 | async function install(options) {
13 | const { logger } = options;
14 | // projectRoot and config available for future use
15 |
16 | try {
17 | logger.log(chalk.cyan(' BMM-Windsurf Specifics installed'));
18 |
19 | // Add Windsurf specific BMM configurations here
20 | // For example:
21 | // - Custom cascades
22 | // - Workflow adaptations
23 | // - Template configurations
24 |
25 | return true;
26 | } catch (error) {
27 | logger.error(chalk.red(`Error installing BMM Windsurf specifics: ${error.message}`));
28 | return false;
29 | }
30 | }
31 |
32 | module.exports = { install };
33 |
--------------------------------------------------------------------------------
/src/utility/agent-components/agent.customize.template.yaml:
--------------------------------------------------------------------------------
1 | # Agent Customization
2 | # Customize any section below - all are optional
3 |
4 | # Override agent name
5 | agent:
6 | metadata:
7 | name: ""
8 |
9 | # Replace entire persona (not merged)
10 | persona:
11 | role: ""
12 | identity: ""
13 | communication_style: ""
14 | principles: []
15 |
16 | # Add custom critical actions (appended after standard config loading)
17 | critical_actions: []
18 |
19 | # Add persistent memories for the agent
20 | memories: []
21 | # Example:
22 | # memories:
23 | # - "User prefers detailed technical explanations"
24 | # - "Current project uses React and TypeScript"
25 |
26 | # Add custom menu items (appended to base menu)
27 | # Don't include * prefix or help/exit - auto-injected
28 | menu: []
29 | # Example:
30 | # menu:
31 | # - trigger: my-workflow
32 | # workflow: "{project-root}/custom/my.yaml"
33 | # description: My custom workflow
34 |
35 | # Add custom prompts (for action="#id" handlers)
36 | prompts: []
37 | # Example:
38 | # prompts:
39 | # - id: my-prompt
40 | # content: |
41 | # Prompt instructions here
42 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 | ---
8 |
9 | **Describe the bug**
10 | A clear and concise description of what the bug is.
11 |
12 | **Steps to Reproduce**
13 | What lead to the bug and can it be reliable recreated - if so with what steps.
14 |
15 | **PR**
16 | If you have an idea to fix and would like to contribute, please indicate here you are working on a fix, or link to a proposed PR to fix the issue. Please review the contribution.md - contributions are always welcome!
17 |
18 | **Expected behavior**
19 | A clear and concise description of what you expected to happen.
20 |
21 | **Please be Specific if relevant**
22 | Model(s) Used:
23 | Agentic IDE Used:
24 | WebSite Used:
25 | Project Language:
26 | BMad Method version:
27 |
28 | **Screenshots or Links**
29 | If applicable, add screenshots or links (if web sharable record) to help explain your problem.
30 |
31 | **Additional context**
32 | Add any other context about the problem here. The more information you can provide, the easier it will be to suggest a fix or resolve
33 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/instructions.md:
--------------------------------------------------------------------------------
1 | # Wellness Companion - Instructions
2 |
3 | ## Safety Protocols
4 |
5 | 1. Always validate user feelings before offering guidance
6 | 2. Never attempt clinical diagnosis - always refer to professionals for treatment
7 | 3. In crisis situations, immediately redirect to crisis support workflow
8 | 4. Maintain boundaries - companion support, not therapy
9 |
10 | ## Memory Management
11 |
12 | - Save significant emotional insights to insights.md
13 | - Track recurring patterns in patterns.md
14 | - Document session summaries in sessions/ folder
15 | - Update user preferences as they change
16 |
17 | ## Communication Guidelines
18 |
19 | - Use "we" language for partnership
20 | - Ask open-ended questions
21 | - Allow silence and processing time
22 | - Celebrate small wins
23 | - Gentle challenges only when appropriate
24 |
25 | ## When to Escalate
26 |
27 | - Expressions of self-harm or harm to others
28 | - Signs of severe mental health crises
29 | - Request for clinical diagnosis or treatment
30 | - Situations beyond companion support scope
31 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/checklist.md:
--------------------------------------------------------------------------------
1 | # Quick-Dev Checklist (Game Development)
2 |
3 | ## Before Implementation
4 |
5 | - [ ] Context loaded (tech-spec, prototype, or user guidance)
6 | - [ ] Files to modify identified
7 | - [ ] Game systems affected understood
8 | - [ ] Patterns and conventions identified
9 |
10 | ## Implementation
11 |
12 | - [ ] All tasks completed
13 | - [ ] Code follows existing patterns
14 | - [ ] Error handling appropriate
15 | - [ ] Performance considerations addressed
16 |
17 | ## Game-Specific Checks
18 |
19 | - [ ] No allocations in hot paths (game loop, update, render)
20 | - [ ] Object pooling used where appropriate
21 | - [ ] Input feels responsive
22 | - [ ] Visual/audio feedback present
23 | - [ ] Frame rate maintained at target
24 |
25 | ## Testing
26 |
27 | - [ ] Game runs without errors
28 | - [ ] Feature works as specified
29 | - [ ] Related systems still work (no regressions)
30 | - [ ] Manual playtest completed
31 |
32 | ## Completion
33 |
34 | - [ ] Acceptance criteria satisfied
35 | - [ ] Tech-spec updated (if applicable)
36 | - [ ] Summary provided to user
37 | - [ ] Performance acceptable
38 |
--------------------------------------------------------------------------------
/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml:
--------------------------------------------------------------------------------
1 | # Test: Menu items with all valid command target types
2 | # Expected: PASS
3 |
4 | agent:
5 | metadata:
6 | id: all-commands
7 | name: All Command Types
8 | title: All Commands
9 | icon: 🧪
10 |
11 | persona:
12 | role: Test agent with all command types
13 | identity: I test all available command target types.
14 | communication_style: Clear
15 | principles:
16 | - Test all command types
17 |
18 | menu:
19 | - trigger: workflow-test
20 | description: Test workflow command
21 | workflow: path/to/workflow
22 | - trigger: validate-test
23 | description: Test validate-workflow command
24 | validate-workflow: path/to/validation
25 | - trigger: exec-test
26 | description: Test exec command
27 | exec: npm test
28 | - trigger: action-test
29 | description: Test action command
30 | action: perform_action
31 | - trigger: tmpl-test
32 | description: Test tmpl command
33 | tmpl: path/to/template
34 | - trigger: data-test
35 | description: Test data command
36 | data: path/to/data
37 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/edit-workflow/templates/validation-results.md:
--------------------------------------------------------------------------------
1 | ## Validation Results
2 |
3 | ### Overall Status
4 |
5 | **Result**: {{validationResult}}
6 | **Date**: {{date}}
7 | **Validator**: {{validator}}
8 |
9 | ### Validation Categories
10 |
11 | #### File Structure
12 |
13 | - **Status**: {{fileStructureStatus}}
14 | - **Details**: {{fileStructureDetails}}
15 |
16 | #### Configuration
17 |
18 | - **Status**: {{configurationStatus}}
19 | - **Details**: {{configurationDetails}}
20 |
21 | #### Step Compliance
22 |
23 | - **Status**: {{stepComplianceStatus}}
24 | - **Details**: {{stepComplianceDetails}}
25 |
26 | #### Cross-File Consistency
27 |
28 | - **Status**: {{consistencyStatus}}
29 | - **Details**: {{consistencyDetails}}
30 |
31 | #### Best Practices
32 |
33 | - **Status**: {{bestPracticesStatus}}
34 | - **Details**: {{bestPracticesDetails}}
35 |
36 | ### Issues Found
37 |
38 | {{#validationIssues}}
39 |
40 | - **{{severity}}**: {{description}}
41 | - **Impact**: {{impact}}
42 | - **Recommendation**: {{recommendation}}
43 | {{/validationIssues}}
44 |
45 | ### Validation Summary
46 |
47 | {{validationSummary}}
48 |
49 | ---
50 |
51 | _Validation completed on {{date}}_
52 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/workflow-status/paths/quickflow-greenfield.yaml:
--------------------------------------------------------------------------------
1 | # BMGD Quick Flow - Greenfield
2 | # Rapid game prototyping and development for new projects
3 |
4 | method_name: "BMGD Quick Flow"
5 | track: "quickflow"
6 | field_type: "greenfield"
7 | description: "Rapid prototyping and development for new game projects"
8 |
9 | phases:
10 | - phase: 0
11 | name: "Concept (Optional)"
12 | optional: true
13 | workflows:
14 | - id: "brainstorm-game"
15 | optional: true
16 | agent: "game-solo-dev"
17 | command: "brainstorm-game"
18 | included_by: "user_choice"
19 |
20 | - phase: 1
21 | name: "Prototype"
22 | required: true
23 | workflows:
24 | - id: "quick-prototype"
25 | required: true
26 | agent: "game-solo-dev"
27 | command: "quick-prototype"
28 | output: "Playable prototype"
29 | note: "Test core mechanic quickly"
30 |
31 | - phase: 2
32 | name: "Development"
33 | required: true
34 | workflows:
35 | - id: "quick-dev"
36 | required: true
37 | agent: "game-solo-dev"
38 | command: "quick-dev"
39 | note: "Iterative development - repeat as needed"
40 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml:
--------------------------------------------------------------------------------
1 | name: dev-story
2 | description: "Execute a story by implementing tasks/subtasks, writing tests, validating, and updating the story file per acceptance criteria"
3 | author: "BMad"
4 |
5 | # Critical variables from config
6 | config_source: "{project-root}/_bmad/bmm/config.yaml"
7 | output_folder: "{config_source}:output_folder"
8 | user_name: "{config_source}:user_name"
9 | communication_language: "{config_source}:communication_language"
10 | user_skill_level: "{config_source}:user_skill_level"
11 | document_output_language: "{config_source}:document_output_language"
12 | story_dir: "{config_source}:sprint_artifacts"
13 | date: system-generated
14 |
15 | # Workflow components
16 | installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/dev-story"
17 | instructions: "{installed_path}/instructions.xml"
18 | validation: "{installed_path}/checklist.md"
19 |
20 | story_file: "" # Explicit story path; auto-discovered if empty
21 | sprint_artifacts: "{config_source}:sprint_artifacts"
22 | sprint_status: "{sprint_artifacts}/sprint-status.yaml"
23 | project_context: "**/project-context.md"
24 |
25 | standalone: true
26 |
27 | web_bundle: false
28 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/4-production/create-story/template.md:
--------------------------------------------------------------------------------
1 | # Story {{epic_num}}.{{story_num}}: {{story_title}}
2 |
3 | Status: ready-for-dev
4 |
5 |
6 |
7 | ## Story
8 |
9 | As a {{role}},
10 | I want {{action}},
11 | so that {{benefit}}.
12 |
13 | ## Acceptance Criteria
14 |
15 | 1. [Add acceptance criteria from epics/PRD]
16 |
17 | ## Tasks / Subtasks
18 |
19 | - [ ] Task 1 (AC: #)
20 | - [ ] Subtask 1.1
21 | - [ ] Task 2 (AC: #)
22 | - [ ] Subtask 2.1
23 |
24 | ## Dev Notes
25 |
26 | - Relevant architecture patterns and constraints
27 | - Source tree components to touch
28 | - Testing standards summary
29 |
30 | ### Project Structure Notes
31 |
32 | - Alignment with unified project structure (paths, modules, naming)
33 | - Detected conflicts or variances (with rationale)
34 |
35 | ### References
36 |
37 | - Cite all technical details with source paths and sections, e.g. [Source: docs/.md#Section]
38 |
39 | ## Dev Agent Record
40 |
41 | ### Agent Model Used
42 |
43 | {{agent_model_name_version}}
44 |
45 | ### Debug Log References
46 |
47 | ### Completion Notes List
48 |
49 | ### File List
50 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/4-implementation/create-story/template.md:
--------------------------------------------------------------------------------
1 | # Story {{epic_num}}.{{story_num}}: {{story_title}}
2 |
3 | Status: ready-for-dev
4 |
5 |
6 |
7 | ## Story
8 |
9 | As a {{role}},
10 | I want {{action}},
11 | so that {{benefit}}.
12 |
13 | ## Acceptance Criteria
14 |
15 | 1. [Add acceptance criteria from epics/PRD]
16 |
17 | ## Tasks / Subtasks
18 |
19 | - [ ] Task 1 (AC: #)
20 | - [ ] Subtask 1.1
21 | - [ ] Task 2 (AC: #)
22 | - [ ] Subtask 2.1
23 |
24 | ## Dev Notes
25 |
26 | - Relevant architecture patterns and constraints
27 | - Source tree components to touch
28 | - Testing standards summary
29 |
30 | ### Project Structure Notes
31 |
32 | - Alignment with unified project structure (paths, modules, naming)
33 | - Detected conflicts or variances (with rationale)
34 |
35 | ### References
36 |
37 | - Cite all technical details with source paths and sections, e.g. [Source: docs/.md#Section]
38 |
39 | ## Dev Agent Record
40 |
41 | ### Agent Model Used
42 |
43 | {{agent_model_name_version}}
44 |
45 | ### Debug Log References
46 |
47 | ### Completion Notes List
48 |
49 | ### File List
50 |
--------------------------------------------------------------------------------
/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md:
--------------------------------------------------------------------------------
1 | ## 🎯 Your Nutrition Goals
2 |
3 | ### Primary Objective
4 |
5 | [User's main goal and motivation]
6 |
7 | ### Target Timeline
8 |
9 | [Realistic timeframe and milestones]
10 |
11 | ### Success Metrics
12 |
13 | - [Specific measurable outcomes]
14 | - [Non-scale victories]
15 | - [Lifestyle improvements]
16 |
17 | ---
18 |
19 | ## 👤 Personal Profile
20 |
21 | ### Basic Information
22 |
23 | - **Age:** [age]
24 | - **Gender:** [gender]
25 | - **Height:** [height]
26 | - **Weight:** [current weight]
27 | - **Activity Level:** [activity description]
28 |
29 | ### Lifestyle Factors
30 |
31 | - **Daily Schedule:** [typical day structure]
32 | - **Cooking Frequency:** [how often they cook]
33 | - **Cooking Skill:** [beginner/intermediate/advanced]
34 | - **Available Time:** [time for meal prep]
35 |
36 | ### Food Preferences
37 |
38 | - **Favorite Cuisines:** [list]
39 | - **Disliked Foods:** [list]
40 | - **Allergies:** [list]
41 | - **Dietary Restrictions:** [list]
42 |
43 | ### Budget & Access
44 |
45 | - **Weekly Budget:** [range]
46 | - **Shopping Access:** [stores available]
47 | - **Special Considerations:** [family, social, etc.]
48 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/2-design/gdd/game-types/puzzle.md:
--------------------------------------------------------------------------------
1 | ## Puzzle Game Specific Elements
2 |
3 | ### Core Puzzle Mechanics
4 |
5 | {{puzzle_mechanics}}
6 |
7 | **Puzzle elements:**
8 |
9 | - Primary puzzle mechanic(s)
10 | - Supporting mechanics
11 | - Mechanic interactions
12 | - Constraint systems
13 |
14 | ### Puzzle Progression
15 |
16 | {{puzzle_progression}}
17 |
18 | **Difficulty progression:**
19 |
20 | - Tutorial/introduction puzzles
21 | - Core concept puzzles
22 | - Combined mechanic puzzles
23 | - Expert/bonus puzzles
24 | - Pacing and difficulty curve
25 |
26 | ### Level Structure
27 |
28 | {{level_structure}}
29 |
30 | **Level organization:**
31 |
32 | - Number of levels/puzzles
33 | - World/chapter grouping
34 | - Unlock progression
35 | - Optional/bonus content
36 |
37 | ### Player Assistance
38 |
39 | {{player_assistance}}
40 |
41 | **Help systems:**
42 |
43 | - Hint system
44 | - Undo/reset mechanics
45 | - Skip puzzle options
46 | - Tutorial integration
47 |
48 | ### Replayability
49 |
50 | {{replayability}}
51 |
52 | **Replay elements:**
53 |
54 | - Par time/move goals
55 | - Perfect solution challenges
56 | - Procedural generation (if applicable)
57 | - Daily/weekly puzzles
58 | - Challenge modes
59 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Quick-Flow: Create Tech-Spec
2 | name: create-tech-spec
3 | description: "Conversational spec engineering - ask questions, investigate code, produce implementation-ready tech-spec."
4 | author: "BMad"
5 |
6 | # Config
7 | config_source: "{project-root}/_bmad/bmm/config.yaml"
8 | output_folder: "{config_source}:output_folder"
9 | sprint_artifacts: "{config_source}:sprint_artifacts"
10 | user_name: "{config_source}:user_name"
11 | communication_language: "{config_source}:communication_language"
12 | document_output_language: "{config_source}:document_output_language"
13 | user_skill_level: "{config_source}:user_skill_level"
14 | date: system-generated
15 |
16 | # Workflow components
17 | installed_path: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec"
18 | instructions: "{installed_path}/instructions.md"
19 |
20 | # Related workflows
21 | quick_dev_workflow: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml"
22 | party_mode_exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
23 | advanced_elicitation: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml"
24 |
25 | standalone: true
26 | web_bundle: false
27 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 'step-04-q3'
3 | description: 'Question 3 - Level 3 difficulty'
4 |
5 | # Path Definitions
6 | workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master'
7 |
8 | # File References
9 | thisStepFile: '{workflow_path}/steps/step-04-q3.md'
10 | nextStepFile: '{workflow_path}/steps/step-04-q3.md'
11 | resultsStepFile: '{workflow_path}/steps/step-12-results.md'
12 | workflowFile: '{workflow_path}/workflow.md'
13 | csvFile: '{project-root}/BMad-quiz-results.csv'
14 | ---
15 |
16 | # Step 4: Question 3
17 |
18 | ## STEP GOAL:
19 |
20 | To present question 3 (Level 3 difficulty), collect the user's answer, provide feedback, and update the CSV record.
21 |
22 | ## Sequence of Instructions (Do not deviate, skip, or optimize)
23 |
24 | ### 1. Question Presentation
25 |
26 | Read CSV to get game progress and continue building the narrative.
27 |
28 | Present with appropriate drama for Level 3 difficulty.
29 |
30 | ### 2-6. Collect Answer, Update CSV, Route
31 |
32 | Follow the same pattern as previous questions, updating Q3 fields in CSV.
33 |
34 | ## CRITICAL STEP COMPLETION NOTE
35 |
36 | Update CSV with Q3 data and route appropriately.
37 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 'step-05-q4'
3 | description: 'Question 4 - Level 4 difficulty'
4 |
5 | # Path Definitions
6 | workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master'
7 |
8 | # File References
9 | thisStepFile: '{workflow_path}/steps/step-05-q4.md'
10 | nextStepFile: '{workflow_path}/steps/step-05-q4.md'
11 | resultsStepFile: '{workflow_path}/steps/step-12-results.md'
12 | workflowFile: '{workflow_path}/workflow.md'
13 | csvFile: '{project-root}/BMad-quiz-results.csv'
14 | ---
15 |
16 | # Step 5: Question 4
17 |
18 | ## STEP GOAL:
19 |
20 | To present question 4 (Level 4 difficulty), collect the user's answer, provide feedback, and update the CSV record.
21 |
22 | ## Sequence of Instructions (Do not deviate, skip, or optimize)
23 |
24 | ### 1. Question Presentation
25 |
26 | Read CSV to get game progress and continue building the narrative.
27 |
28 | Present with appropriate drama for Level 4 difficulty.
29 |
30 | ### 2-6. Collect Answer, Update CSV, Route
31 |
32 | Follow the same pattern as previous questions, updating Q4 fields in CSV.
33 |
34 | ## CRITICAL STEP COMPLETION NOTE
35 |
36 | Update CSV with Q4 data and route appropriately.
37 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 'step-06-q5'
3 | description: 'Question 5 - Level 5 difficulty'
4 |
5 | # Path Definitions
6 | workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master'
7 |
8 | # File References
9 | thisStepFile: '{workflow_path}/steps/step-06-q5.md'
10 | nextStepFile: '{workflow_path}/steps/step-06-q5.md'
11 | resultsStepFile: '{workflow_path}/steps/step-12-results.md'
12 | workflowFile: '{workflow_path}/workflow.md'
13 | csvFile: '{project-root}/BMad-quiz-results.csv'
14 | ---
15 |
16 | # Step 6: Question 5
17 |
18 | ## STEP GOAL:
19 |
20 | To present question 5 (Level 5 difficulty), collect the user's answer, provide feedback, and update the CSV record.
21 |
22 | ## Sequence of Instructions (Do not deviate, skip, or optimize)
23 |
24 | ### 1. Question Presentation
25 |
26 | Read CSV to get game progress and continue building the narrative.
27 |
28 | Present with appropriate drama for Level 5 difficulty.
29 |
30 | ### 2-6. Collect Answer, Update CSV, Route
31 |
32 | Follow the same pattern as previous questions, updating Q5 fields in CSV.
33 |
34 | ## CRITICAL STEP COMPLETION NOTE
35 |
36 | Update CSV with Q5 data and route appropriately.
37 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 'step-07-q6'
3 | description: 'Question 6 - Level 6 difficulty'
4 |
5 | # Path Definitions
6 | workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master'
7 |
8 | # File References
9 | thisStepFile: '{workflow_path}/steps/step-07-q6.md'
10 | nextStepFile: '{workflow_path}/steps/step-07-q6.md'
11 | resultsStepFile: '{workflow_path}/steps/step-12-results.md'
12 | workflowFile: '{workflow_path}/workflow.md'
13 | csvFile: '{project-root}/BMad-quiz-results.csv'
14 | ---
15 |
16 | # Step 7: Question 6
17 |
18 | ## STEP GOAL:
19 |
20 | To present question 6 (Level 6 difficulty), collect the user's answer, provide feedback, and update the CSV record.
21 |
22 | ## Sequence of Instructions (Do not deviate, skip, or optimize)
23 |
24 | ### 1. Question Presentation
25 |
26 | Read CSV to get game progress and continue building the narrative.
27 |
28 | Present with appropriate drama for Level 6 difficulty.
29 |
30 | ### 2-6. Collect Answer, Update CSV, Route
31 |
32 | Follow the same pattern as previous questions, updating Q6 fields in CSV.
33 |
34 | ## CRITICAL STEP COMPLETION NOTE
35 |
36 | Update CSV with Q6 data and route appropriately.
37 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 'step-08-q7'
3 | description: 'Question 7 - Level 7 difficulty'
4 |
5 | # Path Definitions
6 | workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master'
7 |
8 | # File References
9 | thisStepFile: '{workflow_path}/steps/step-08-q7.md'
10 | nextStepFile: '{workflow_path}/steps/step-08-q7.md'
11 | resultsStepFile: '{workflow_path}/steps/step-12-results.md'
12 | workflowFile: '{workflow_path}/workflow.md'
13 | csvFile: '{project-root}/BMad-quiz-results.csv'
14 | ---
15 |
16 | # Step 8: Question 7
17 |
18 | ## STEP GOAL:
19 |
20 | To present question 7 (Level 7 difficulty), collect the user's answer, provide feedback, and update the CSV record.
21 |
22 | ## Sequence of Instructions (Do not deviate, skip, or optimize)
23 |
24 | ### 1. Question Presentation
25 |
26 | Read CSV to get game progress and continue building the narrative.
27 |
28 | Present with appropriate drama for Level 7 difficulty.
29 |
30 | ### 2-6. Collect Answer, Update CSV, Route
31 |
32 | Follow the same pattern as previous questions, updating Q7 fields in CSV.
33 |
34 | ## CRITICAL STEP COMPLETION NOTE
35 |
36 | Update CSV with Q7 data and route appropriately.
37 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 'step-09-q8'
3 | description: 'Question 8 - Level 8 difficulty'
4 |
5 | # Path Definitions
6 | workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master'
7 |
8 | # File References
9 | thisStepFile: '{workflow_path}/steps/step-09-q8.md'
10 | nextStepFile: '{workflow_path}/steps/step-09-q8.md'
11 | resultsStepFile: '{workflow_path}/steps/step-12-results.md'
12 | workflowFile: '{workflow_path}/workflow.md'
13 | csvFile: '{project-root}/BMad-quiz-results.csv'
14 | ---
15 |
16 | # Step 9: Question 8
17 |
18 | ## STEP GOAL:
19 |
20 | To present question 8 (Level 8 difficulty), collect the user's answer, provide feedback, and update the CSV record.
21 |
22 | ## Sequence of Instructions (Do not deviate, skip, or optimize)
23 |
24 | ### 1. Question Presentation
25 |
26 | Read CSV to get game progress and continue building the narrative.
27 |
28 | Present with appropriate drama for Level 8 difficulty.
29 |
30 | ### 2-6. Collect Answer, Update CSV, Route
31 |
32 | Follow the same pattern as previous questions, updating Q8 fields in CSV.
33 |
34 | ## CRITICAL STEP COMPLETION NOTE
35 |
36 | Update CSV with Q8 data and route appropriately.
37 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 'step-10-q9'
3 | description: 'Question 9 - Level 9 difficulty'
4 |
5 | # Path Definitions
6 | workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master'
7 |
8 | # File References
9 | thisStepFile: '{workflow_path}/steps/step-10-q9.md'
10 | nextStepFile: '{workflow_path}/steps/step-10-q9.md'
11 | resultsStepFile: '{workflow_path}/steps/step-12-results.md'
12 | workflowFile: '{workflow_path}/workflow.md'
13 | csvFile: '{project-root}/BMad-quiz-results.csv'
14 | ---
15 |
16 | # Step 10: Question 9
17 |
18 | ## STEP GOAL:
19 |
20 | To present question 9 (Level 9 difficulty), collect the user's answer, provide feedback, and update the CSV record.
21 |
22 | ## Sequence of Instructions (Do not deviate, skip, or optimize)
23 |
24 | ### 1. Question Presentation
25 |
26 | Read CSV to get game progress and continue building the narrative.
27 |
28 | Present with appropriate drama for Level 9 difficulty.
29 |
30 | ### 2-6. Collect Answer, Update CSV, Route
31 |
32 | Follow the same pattern as previous questions, updating Q9 fields in CSV.
33 |
34 | ## CRITICAL STEP COMPLETION NOTE
35 |
36 | Update CSV with Q9 data and route appropriately.
37 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/profile-section.md:
--------------------------------------------------------------------------------
1 | ## 🎯 Your Nutrition Goals
2 |
3 | ### Primary Objective
4 |
5 | [User's main goal and motivation]
6 |
7 | ### Target Timeline
8 |
9 | [Realistic timeframe and milestones]
10 |
11 | ### Success Metrics
12 |
13 | - [Specific measurable outcomes]
14 | - [Non-scale victories]
15 | - [Lifestyle improvements]
16 |
17 | ---
18 |
19 | ## 👤 Personal Profile
20 |
21 | ### Basic Information
22 |
23 | - **Age:** [age]
24 | - **Gender:** [gender]
25 | - **Height:** [height]
26 | - **Weight:** [current weight]
27 | - **Activity Level:** [activity description]
28 |
29 | ### Lifestyle Factors
30 |
31 | - **Daily Schedule:** [typical day structure]
32 | - **Cooking Frequency:** [how often they cook]
33 | - **Cooking Skill:** [beginner/intermediate/advanced]
34 | - **Available Time:** [time for meal prep]
35 |
36 | ### Food Preferences
37 |
38 | - **Favorite Cuisines:** [list]
39 | - **Disliked Foods:** [list]
40 | - **Allergies:** [list]
41 | - **Dietary Restrictions:** [list]
42 |
43 | ### Budget & Access
44 |
45 | - **Weekly Budget:** [range]
46 | - **Shopping Access:** [stores available]
47 | - **Special Considerations:** [family, social, etc.]
48 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml:
--------------------------------------------------------------------------------
1 | name: create-excalidraw-dataflow
2 | description: "Create data flow diagrams (DFD) in Excalidraw format"
3 | author: "BMad"
4 |
5 | # Config values
6 | config_source: "{project-root}/_bmad/bmm/config.yaml"
7 | output_folder: "{config_source}:output_folder"
8 |
9 | # Workflow components
10 | installed_path: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow"
11 | shared_path: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/_shared"
12 | instructions: "{installed_path}/instructions.md"
13 | validation: "{installed_path}/checklist.md"
14 |
15 | # Core Excalidraw resources (universal knowledge)
16 | helpers: "{project-root}/_bmad/core/resources/excalidraw/excalidraw-helpers.md"
17 | json_validation: "{project-root}/_bmad/core/resources/excalidraw/validate-json-instructions.md"
18 |
19 | # Domain-specific resources (technical diagrams)
20 | templates: "{shared_path}/excalidraw-templates.yaml"
21 | library: "{shared_path}/excalidraw-library.json"
22 |
23 | # Output file (respects user's configured output_folder)
24 | default_output_file: "{output_folder}/excalidraw-diagrams/dataflow-{timestamp}.excalidraw"
25 |
26 | standalone: true
27 | web_bundle: false
28 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 'step-11-q10'
3 | description: 'Question 10 - Level 10 difficulty'
4 |
5 | # Path Definitions
6 | workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master'
7 |
8 | # File References
9 | thisStepFile: '{workflow_path}/steps/step-11-q10.md'
10 | nextStepFile: '{workflow_path}/steps/results.md'
11 | resultsStepFile: '{workflow_path}/steps/step-12-results.md'
12 | workflowFile: '{workflow_path}/workflow.md'
13 | csvFile: '{project-root}/BMad-quiz-results.csv'
14 | ---
15 |
16 | # Step 11: Question 10
17 |
18 | ## STEP GOAL:
19 |
20 | To present question 10 (Level 10 difficulty), collect the user's answer, provide feedback, and update the CSV record.
21 |
22 | ## Sequence of Instructions (Do not deviate, skip, or optimize)
23 |
24 | ### 1. Question Presentation
25 |
26 | Read CSV to get game progress and continue building the narrative.
27 |
28 | Present with appropriate drama for Level 10 difficulty.
29 |
30 | ### 2-6. Collect Answer, Update CSV, Route
31 |
32 | Follow the same pattern as previous questions, updating Q10 fields in CSV.
33 |
34 | ## CRITICAL STEP COMPLETION NOTE
35 |
36 | Update CSV with Q10 data and route appropriately.
37 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/4-production/code-review/checklist.md:
--------------------------------------------------------------------------------
1 | # Senior Developer Review - Validation Checklist
2 |
3 | - [ ] Story file loaded from `{{story_path}}`
4 | - [ ] Story Status verified as reviewable (review)
5 | - [ ] Epic and Story IDs resolved ({{epic_num}}.{{story_num}})
6 | - [ ] Story Context located or warning recorded
7 | - [ ] Epic Tech Spec located or warning recorded
8 | - [ ] Architecture/standards docs loaded (as available)
9 | - [ ] Tech stack detected and documented
10 | - [ ] MCP doc search performed (or web fallback) and references captured
11 | - [ ] Acceptance Criteria cross-checked against implementation
12 | - [ ] File List reviewed and validated for completeness
13 | - [ ] Tests identified and mapped to ACs; gaps noted
14 | - [ ] Code quality review performed on changed files
15 | - [ ] Security review performed on changed files and dependencies
16 | - [ ] Outcome decided (Approve/Changes Requested/Blocked)
17 | - [ ] Review notes appended under "Senior Developer Review (AI)"
18 | - [ ] Change Log updated with review entry
19 | - [ ] Status updated according to settings (if enabled)
20 | - [ ] Sprint status synced (if sprint tracking enabled)
21 | - [ ] Story saved successfully
22 |
23 | _Reviewer: {{user_name}} on {{date}}_
24 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md:
--------------------------------------------------------------------------------
1 | # Create Wireframe - Validation Checklist
2 |
3 | ## Layout Structure
4 |
5 | - [ ] Screen dimensions appropriate for device type
6 | - [ ] Grid alignment (20px) maintained
7 | - [ ] Consistent spacing between UI elements
8 | - [ ] Proper hierarchy (header, content, footer)
9 |
10 | ## UI Elements
11 |
12 | - [ ] All interactive elements clearly marked
13 | - [ ] Buttons, inputs, and controls properly sized
14 | - [ ] Text labels readable and appropriately sized
15 | - [ ] Navigation elements clearly indicated
16 |
17 | ## Fidelity
18 |
19 | - [ ] Matches requested fidelity level (low/medium/high)
20 | - [ ] Appropriate level of detail
21 | - [ ] Placeholder content used where needed
22 | - [ ] No unnecessary decoration for low-fidelity
23 |
24 | ## Annotations
25 |
26 | - [ ] Key interactions annotated
27 | - [ ] Flow indicators present if multi-screen
28 | - [ ] Important notes included
29 | - [ ] Element purposes clear
30 |
31 | ## Technical Quality
32 |
33 | - [ ] All elements properly grouped
34 | - [ ] Text elements have containerId
35 | - [ ] Snapped to grid
36 | - [ ] No elements with `isDeleted: true`
37 | - [ ] JSON is valid
38 | - [ ] File saved to correct location
39 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml:
--------------------------------------------------------------------------------
1 | name: create-excalidraw-wireframe
2 | description: "Create website or app wireframes in Excalidraw format"
3 | author: "BMad"
4 |
5 | # Config values
6 | config_source: "{project-root}/_bmad/bmm/config.yaml"
7 | output_folder: "{config_source}:output_folder"
8 |
9 | # Workflow components
10 | installed_path: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe"
11 | shared_path: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/_shared"
12 | instructions: "{installed_path}/instructions.md"
13 | validation: "{installed_path}/checklist.md"
14 |
15 | # Core Excalidraw resources (universal knowledge)
16 | helpers: "{project-root}/_bmad/core/resources/excalidraw/excalidraw-helpers.md"
17 | json_validation: "{project-root}/_bmad/core/resources/excalidraw/validate-json-instructions.md"
18 |
19 | # Domain-specific resources (technical diagrams)
20 | templates: "{shared_path}/excalidraw-templates.yaml"
21 | library: "{shared_path}/excalidraw-library.json"
22 |
23 | # Output file (respects user's configured output_folder)
24 | default_output_file: "{output_folder}/excalidraw-diagrams/wireframe-{timestamp}.excalidraw"
25 |
26 | standalone: true
27 | web_bundle: false
28 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/4-implementation/code-review/checklist.md:
--------------------------------------------------------------------------------
1 | # Senior Developer Review - Validation Checklist
2 |
3 | - [ ] Story file loaded from `{{story_path}}`
4 | - [ ] Story Status verified as reviewable (review)
5 | - [ ] Epic and Story IDs resolved ({{epic_num}}.{{story_num}})
6 | - [ ] Story Context located or warning recorded
7 | - [ ] Epic Tech Spec located or warning recorded
8 | - [ ] Architecture/standards docs loaded (as available)
9 | - [ ] Tech stack detected and documented
10 | - [ ] MCP doc search performed (or web fallback) and references captured
11 | - [ ] Acceptance Criteria cross-checked against implementation
12 | - [ ] File List reviewed and validated for completeness
13 | - [ ] Tests identified and mapped to ACs; gaps noted
14 | - [ ] Code quality review performed on changed files
15 | - [ ] Security review performed on changed files and dependencies
16 | - [ ] Outcome decided (Approve/Changes Requested/Blocked)
17 | - [ ] Review notes appended under "Senior Developer Review (AI)"
18 | - [ ] Change Log updated with review entry
19 | - [ ] Status updated according to settings (if enabled)
20 | - [ ] Sprint status synced (if sprint tracking enabled)
21 | - [ ] Story saved successfully
22 |
23 | _Reviewer: {{user_name}} on {{date}}_
24 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/workflow-status/init/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Workflow Init - Initial Project Setup
2 | name: workflow-init
3 | description: "Initialize a new BMM project by determining level, type, and creating workflow path"
4 | author: "BMad"
5 |
6 | # Critical variables from config
7 | config_source: "{project-root}/_bmad/bmm/config.yaml"
8 | output_folder: "{config_source}:output_folder"
9 | sprint_artifacts: "{config_source}:sprint_artifacts"
10 | user_name: "{config_source}:user_name"
11 | project_name: "{config_source}:project_name"
12 | communication_language: "{config_source}:communication_language"
13 | document_output_language: "{config_source}:document_output_language"
14 | user_skill_level: "{config_source}:user_skill_level"
15 | date: system-generated
16 |
17 | # Workflow components
18 | installed_path: "{project-root}/_bmad/bmm/workflows/workflow-status/init"
19 | instructions: "{installed_path}/instructions.md"
20 | template: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow-status-template.yaml"
21 |
22 | # Path data files
23 | path_files: "{project-root}/_bmad/bmm/workflows/workflow-status/paths/"
24 |
25 | # Output configuration
26 | default_output_file: "{output_folder}/bmm-workflow-status.yaml"
27 |
28 | standalone: true
29 | web_bundle: false
30 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/edit-workflow/templates/improvement-goals.md:
--------------------------------------------------------------------------------
1 | ## Improvement Goals
2 |
3 | ### Motivation
4 |
5 | - **Trigger**: {{editTrigger}}
6 | - **User Feedback**: {{userFeedback}}
7 | - **Success Issues**: {{successIssues}}
8 |
9 | ### User Experience Issues
10 |
11 | {{#uxIssues}}
12 |
13 | - {{.}}
14 | {{/uxIssues}}
15 |
16 | ### Performance Gaps
17 |
18 | {{#performanceGaps}}
19 |
20 | - {{.}}
21 | {{/performanceGaps}}
22 |
23 | ### Growth Opportunities
24 |
25 | {{#growthOpportunities}}
26 |
27 | - {{.}}
28 | {{/growthOpportunities}}
29 |
30 | ### Instruction Style Considerations
31 |
32 | - **Current Style**: {{currentStyle}}
33 | - **Desired Changes**: {{styleChanges}}
34 | - **Style Fit Assessment**: {{styleFit}}
35 |
36 | ### Prioritized Improvements
37 |
38 | #### Critical (Must Fix)
39 |
40 | {{#criticalItems}}
41 |
42 | 1. {{.}}
43 | {{/criticalItems}}
44 |
45 | #### Important (Should Fix)
46 |
47 | {{#importantItems}}
48 |
49 | 1. {{.}}
50 | {{/importantItems}}
51 |
52 | #### Nice-to-Have (Could Fix)
53 |
54 | {{#niceItems}}
55 |
56 | 1. {{.}}
57 | {{/niceItems}}
58 |
59 | ### Focus Areas for Next Step
60 |
61 | {{#focusAreas}}
62 |
63 | - {{.}}
64 | {{/focusAreas}}
65 |
66 | ---
67 |
68 | _Goals identified on {{date}}_
69 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md:
--------------------------------------------------------------------------------
1 | # Create Data Flow Diagram - Validation Checklist
2 |
3 | ## DFD Notation
4 |
5 | - [ ] Processes shown as circles/ellipses
6 | - [ ] Data stores shown as parallel lines or rectangles
7 | - [ ] External entities shown as rectangles
8 | - [ ] Data flows shown as labeled arrows
9 | - [ ] Follows standard DFD notation
10 |
11 | ## Structure
12 |
13 | - [ ] All processes numbered correctly
14 | - [ ] All data flows labeled with data names
15 | - [ ] All data stores named appropriately
16 | - [ ] External entities clearly identified
17 |
18 | ## Completeness
19 |
20 | - [ ] All inputs and outputs accounted for
21 | - [ ] No orphaned processes (unconnected)
22 | - [ ] Data conservation maintained
23 | - [ ] Level appropriate (context/level 0/level 1)
24 |
25 | ## Layout
26 |
27 | - [ ] Logical flow direction (left to right, top to bottom)
28 | - [ ] No crossing data flows where avoidable
29 | - [ ] Balanced layout
30 | - [ ] Grid alignment maintained
31 |
32 | ## Technical Quality
33 |
34 | - [ ] All elements properly grouped
35 | - [ ] Arrows have proper bindings
36 | - [ ] Text readable and properly sized
37 | - [ ] No elements with `isDeleted: true`
38 | - [ ] JSON is valid
39 | - [ ] File saved to correct location
40 |
--------------------------------------------------------------------------------
/tools/cli/bmad-cli.js:
--------------------------------------------------------------------------------
1 | const { program } = require('commander');
2 | const path = require('node:path');
3 | const fs = require('node:fs');
4 |
5 | // Load package.json from root for version info
6 | const packageJson = require('../../package.json');
7 |
8 | // Load all command modules
9 | const commandsPath = path.join(__dirname, 'commands');
10 | const commandFiles = fs.readdirSync(commandsPath).filter((file) => file.endsWith('.js'));
11 |
12 | const commands = {};
13 | for (const file of commandFiles) {
14 | const command = require(path.join(commandsPath, file));
15 | commands[command.command] = command;
16 | }
17 |
18 | // Set up main program
19 | program.version(packageJson.version).description('BMAD Core CLI - Universal AI agent framework');
20 |
21 | // Register all commands
22 | for (const [name, cmd] of Object.entries(commands)) {
23 | const command = program.command(name).description(cmd.description);
24 |
25 | // Add options
26 | for (const option of cmd.options || []) {
27 | command.option(...option);
28 | }
29 |
30 | // Set action
31 | command.action(cmd.action);
32 | }
33 |
34 | // Parse arguments
35 | program.parse(process.argv);
36 |
37 | // Show help if no command provided
38 | if (process.argv.slice(2).length === 0) {
39 | program.outputHelp();
40 | }
41 |
--------------------------------------------------------------------------------
/tools/flattener/files.js:
--------------------------------------------------------------------------------
1 | const path = require('node:path');
2 | const discovery = require('./discovery.js');
3 | const ignoreRules = require('./ignoreRules.js');
4 | const { isBinaryFile } = require('./binary.js');
5 | const { aggregateFileContents } = require('./aggregate.js');
6 |
7 | // Backward-compatible signature; delegate to central loader
8 | async function parseGitignore(gitignorePath) {
9 | return await ignoreRules.parseGitignore(gitignorePath);
10 | }
11 |
12 | async function discoverFiles(rootDir) {
13 | try {
14 | // Delegate to discovery module which respects .gitignore and defaults
15 | return await discovery.discoverFiles(rootDir, { preferGit: true });
16 | } catch (error) {
17 | console.error('Error discovering files:', error.message);
18 | return [];
19 | }
20 | }
21 |
22 | async function filterFiles(files, rootDir) {
23 | const { filter } = await ignoreRules.loadIgnore(rootDir);
24 | const relativeFiles = files.map((f) => path.relative(rootDir, f));
25 | const filteredRelative = relativeFiles.filter((p) => filter(p));
26 | return filteredRelative.map((p) => path.resolve(rootDir, p));
27 | }
28 |
29 | module.exports = {
30 | parseGitignore,
31 | discoverFiles,
32 | isBinaryFile,
33 | aggregateFileContents,
34 | filterFiles,
35 | };
36 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/sample-unitary-module/workflows/wassup/workflow.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: wassup
3 | description: Will check everything that is local and not committed and tell me about what has been done so far that has not been committed.
4 | web_bundle: true
5 | ---
6 |
7 | # Wassup Workflow
8 |
9 | **Goal:** To think about all local changes and tell me what we have done but not yet committed so far.
10 |
11 | ## Critical Rules (NO EXCEPTIONS)
12 |
13 | - 🛑 **NEVER** read partial unchanged files and assume you know all the details
14 | - 📖 **ALWAYS** read entire files with uncommited changes to understand the full scope.
15 | - 🚫 **NEVER** assume you know what changed just by looking at a file name
16 |
17 | ---
18 |
19 | ## INITIALIZATION SEQUENCE
20 |
21 | - 1. Find all uncommitted changed files
22 | - 2. Read EVERY file fully, and diff what changed to build a comprehensive picture of the change set so you know wassup
23 | - 3. If you need more context read other files as needed.
24 | - 4. Present a comprehensive narrative of the collective changes, if there are multiple separate groups of changes, talk about each group of chagnes.
25 | - 5. Ask the user at least 2-3 clarifying questions to add further context.
26 | - 6. Suggest a commit message and offer to commit the changes thus far.
27 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Workflow Init - Initial Game Project Setup
2 | name: workflow-init
3 | description: "Initialize a new BMGD game project by determining level, type, and creating workflow path"
4 | author: "BMad"
5 |
6 | # Critical variables from config
7 | config_source: "{project-root}/_bmad/bmgd/config.yaml"
8 | output_folder: "{config_source}:output_folder"
9 | sprint_artifacts: "{config_source}:sprint_artifacts"
10 | user_name: "{config_source}:user_name"
11 | project_name: "{config_source}:project_name"
12 | communication_language: "{config_source}:communication_language"
13 | document_output_language: "{config_source}:document_output_language"
14 | user_skill_level: "{config_source}:game_dev_experience"
15 | date: system-generated
16 |
17 | # Workflow components
18 | installed_path: "{project-root}/_bmad/bmgd/workflows/workflow-status/init"
19 | instructions: "{installed_path}/instructions.md"
20 | template: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow-status-template.yaml"
21 |
22 | # Path data files
23 | path_files: "{project-root}/_bmad/bmgd/workflows/workflow-status/paths/"
24 |
25 | # Output configuration
26 | default_output_file: "{output_folder}/bmgd-workflow-status.yaml"
27 |
28 | standalone: true
29 | web_bundle: false
30 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml:
--------------------------------------------------------------------------------
1 | name: create-excalidraw-flowchart
2 | description: "Create a flowchart visualization in Excalidraw format for processes, pipelines, or logic flows"
3 | author: "BMad"
4 |
5 | # Config values
6 | config_source: "{project-root}/_bmad/bmm/config.yaml"
7 | output_folder: "{config_source}:output_folder"
8 |
9 | # Workflow components
10 | installed_path: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart"
11 | shared_path: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/_shared"
12 | instructions: "{installed_path}/instructions.md"
13 | validation: "{installed_path}/checklist.md"
14 |
15 | # Core Excalidraw resources (universal knowledge)
16 | helpers: "{project-root}/_bmad/core/resources/excalidraw/excalidraw-helpers.md"
17 | json_validation: "{project-root}/_bmad/core/resources/excalidraw/validate-json-instructions.md"
18 |
19 | # Domain-specific resources (technical diagrams)
20 | templates: "{shared_path}/excalidraw-templates.yaml"
21 | library: "{shared_path}/excalidraw-library.json"
22 |
23 | # Output file (respects user's configured output_folder)
24 | default_output_file: "{output_folder}/excalidraw-diagrams/flowchart-{timestamp}.excalidraw"
25 |
26 | standalone: true
27 | web_bundle: false
28 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml:
--------------------------------------------------------------------------------
1 | name: create-excalidraw-diagram
2 | description: "Create system architecture diagrams, ERDs, UML diagrams, or general technical diagrams in Excalidraw format"
3 | author: "BMad"
4 |
5 | # Config values
6 | config_source: "{project-root}/_bmad/bmm/config.yaml"
7 | output_folder: "{config_source}:output_folder"
8 |
9 | # Workflow components
10 | installed_path: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram"
11 | shared_path: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/_shared"
12 | instructions: "{installed_path}/instructions.md"
13 | validation: "{installed_path}/checklist.md"
14 |
15 | # Core Excalidraw resources (universal knowledge)
16 | helpers: "{project-root}/_bmad/core/resources/excalidraw/excalidraw-helpers.md"
17 | json_validation: "{project-root}/_bmad/core/resources/excalidraw/validate-json-instructions.md"
18 |
19 | # Domain-specific resources (technical diagrams)
20 | templates: "{shared_path}/excalidraw-templates.yaml"
21 | library: "{shared_path}/excalidraw-library.json"
22 |
23 | # Output file (respects user's configured output_folder)
24 | default_output_file: "{output_folder}/excalidraw-diagrams/diagram-{timestamp}.excalidraw"
25 |
26 | standalone: true
27 | web_bundle: false
28 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/workflow-status/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Workflow Status - Master Router and Status Tracker
2 | name: workflow-status
3 | description: 'Lightweight status checker - answers "what should I do now?" for any agent. Reads YAML status file for workflow tracking. Use workflow-init for new projects.'
4 | author: "BMad"
5 |
6 | # Critical variables from config
7 | config_source: "{project-root}/_bmad/bmm/config.yaml"
8 | output_folder: "{config_source}:output_folder"
9 | user_name: "{config_source}:user_name"
10 | communication_language: "{config_source}:communication_language"
11 | document_output_language: "{config_source}:document_output_language"
12 | user_skill_level: "{config_source}:user_skill_level"
13 | date: system-generated
14 |
15 | # Workflow components
16 | installed_path: "{project-root}/_bmad/bmm/workflows/workflow-status"
17 | instructions: "{installed_path}/instructions.md"
18 |
19 | # Template for status file creation (used by workflow-init)
20 | template: "{installed_path}/workflow-status-template.yaml"
21 |
22 | # Path definitions for project types
23 | path_files: "{installed_path}/paths/"
24 |
25 | # Output configuration - reads existing status
26 | default_output_file: "{output_folder}/bmm-workflow-status.yaml"
27 |
28 | standalone: true
29 |
30 | web_bundle: false
31 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/workflow-status/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Workflow Status - Master Router and Status Tracker for BMGD
2 | name: workflow-status
3 | description: 'Lightweight status checker - answers "what should I do now?" for any game dev agent. Reads YAML status file for workflow tracking. Use workflow-init for new projects.'
4 | author: "BMad"
5 |
6 | # Critical variables from config
7 | config_source: "{project-root}/_bmad/bmgd/config.yaml"
8 | output_folder: "{config_source}:output_folder"
9 | user_name: "{config_source}:user_name"
10 | communication_language: "{config_source}:communication_language"
11 | document_output_language: "{config_source}:document_output_language"
12 | game_dev_experience: "{config_source}:game_dev_experience"
13 | date: system-generated
14 |
15 | # Workflow components
16 | installed_path: "{project-root}/_bmad/bmgd/workflows/workflow-status"
17 | instructions: "{installed_path}/instructions.md"
18 |
19 | # Template for status file creation (used by workflow-init)
20 | template: "{installed_path}/workflow-status-template.yaml"
21 |
22 | # Path definitions for project types
23 | path_files: "{installed_path}/paths/"
24 |
25 | # Output configuration - reads existing status
26 | default_output_file: "{output_folder}/bmgd-workflow-status.yaml"
27 |
28 | standalone: true
29 |
30 | web_bundle: false
31 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/edit-workflow/templates/workflow-analysis.md:
--------------------------------------------------------------------------------
1 | ## Workflow Analysis
2 |
3 | ### Target Workflow
4 |
5 | - **Path**: {{workflowPath}}
6 | - **Name**: {{workflowName}}
7 | - **Module**: {{workflowModule}}
8 | - **Format**: {{workflowFormat}} (Standalone/Legacy)
9 |
10 | ### Structure Analysis
11 |
12 | - **Type**: {{workflowType}}
13 | - **Total Steps**: {{stepCount}}
14 | - **Step Flow**: {{stepFlowPattern}}
15 | - **Files**: {{fileStructure}}
16 |
17 | ### Content Characteristics
18 |
19 | - **Purpose**: {{workflowPurpose}}
20 | - **Instruction Style**: {{instructionStyle}}
21 | - **User Interaction**: {{interactionPattern}}
22 | - **Complexity**: {{complexityLevel}}
23 |
24 | ### Initial Assessment
25 |
26 | #### Strengths
27 |
28 | {{#strengths}}
29 |
30 | - {{.}}
31 | {{/strengths}}
32 |
33 | #### Potential Issues
34 |
35 | {{#issues}}
36 |
37 | - {{.}}
38 | {{/issues}}
39 |
40 | #### Format-Specific Notes
41 |
42 | {{#formatNotes}}
43 |
44 | - {{.}}
45 | {{/formatNotes}}
46 |
47 | ### Best Practices Compliance
48 |
49 | - **Step File Structure**: {{stepCompliance}}
50 | - **Frontmatter Usage**: {{frontmatterCompliance}}
51 | - **Menu Implementation**: {{menuCompliance}}
52 | - **Variable Consistency**: {{variableCompliance}}
53 |
54 | ---
55 |
56 | _Analysis completed on {{date}}_
57 |
--------------------------------------------------------------------------------
/src/modules/bmm/docs/images/README.md:
--------------------------------------------------------------------------------
1 | # Workflow Diagram Maintenance
2 |
3 | ## Regenerating SVG from Excalidraw
4 |
5 | When you edit `workflow-method-greenfield.excalidraw`, regenerate the SVG:
6 |
7 | 1. Open
8 | 2. Load the `.excalidraw` file
9 | 3. Click menu (☰) → Export image → SVG
10 | 4. **Set "Scale" to 1x** (default is 2x)
11 | 5. Click "Export"
12 | 6. Save as `workflow-method-greenfield.svg`
13 | 7. **Validate the changes** (see below)
14 | 8. Commit both files together
15 |
16 | **Important:**
17 |
18 | - Always use **1x scale** to maintain consistent dimensions
19 | - Automated export tools (`excalidraw-to-svg`) are broken - use manual export only
20 |
21 | ## Visual Validation
22 |
23 | After regenerating the SVG, validate that it renders correctly:
24 |
25 | ```bash
26 | ./tools/validate-svg-changes.sh path/to/workflow-method-greenfield.svg
27 | ```
28 |
29 | This script:
30 |
31 | - Checks for required dependencies (Playwright, ImageMagick)
32 | - Installs Playwright locally if needed (no package.json pollution)
33 | - Renders old vs new SVG using browser-accurate rendering
34 | - Compares pixel-by-pixel and generates a diff image
35 | - Outputs a prompt for AI visual analysis (paste into Gemini/Claude)
36 |
37 | **Threshold**: <0.01% difference is acceptable (anti-aliasing variations)
38 |
--------------------------------------------------------------------------------
/.github/scripts/discord-helpers.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Discord notification helper functions
3 |
4 | # Escape markdown special chars and @mentions for safe Discord display
5 | # Skips content inside wrappers to preserve URLs intact
6 | esc() {
7 | awk '{
8 | result = ""; in_url = 0; n = length($0)
9 | for (i = 1; i <= n; i++) {
10 | c = substr($0, i, 1)
11 | if (c == "<" && substr($0, i, 8) ~ /^") in_url = 0 }
13 | else if (c == "@") result = result "@ "
14 | else if (index("[]\\*_()~`", c) > 0) result = result "\\" c
15 | else result = result c
16 | }
17 | print result
18 | }'
19 | }
20 |
21 | # Truncate to $1 chars (or 80 if wall-of-text with <3 spaces)
22 | trunc() {
23 | local max=$1
24 | local txt=$(tr '\n\r' ' ' | cut -c1-"$max")
25 | local spaces=$(printf '%s' "$txt" | tr -cd ' ' | wc -c)
26 | [ "$spaces" -lt 3 ] && [ ${#txt} -gt 80 ] && txt=$(printf '%s' "$txt" | cut -c1-80)
27 | printf '%s' "$txt"
28 | }
29 |
30 | # Remove incomplete URL at end of truncated text (incomplete URLs are useless)
31 | strip_trailing_url() { sed -E 's~ to suppress Discord embeds (keeps links clickable)
34 | wrap_urls() { sed -E 's~https?://[^[:space:]<>]+~<&>~g'; }
35 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 BMad Code, LLC
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 | TRADEMARK NOTICE:
24 | BMad™ , BMAD-CORE™ and BMAD-METHOD™ are trademarks of BMad Code, LLC. The use of these
25 | trademarks in this software does not grant any rights to use the trademarks
26 | for any other purpose.
27 |
--------------------------------------------------------------------------------
/src/modules/bmm/_module-installer/platform-specifics/claude-code.js:
--------------------------------------------------------------------------------
1 | const chalk = require('chalk');
2 |
3 | /**
4 | * BMM Platform-specific installer for Claude Code
5 | *
6 | * @param {Object} options - Installation options
7 | * @param {string} options.projectRoot - The root directory of the target project
8 | * @param {Object} options.config - Module configuration from module.yaml
9 | * @param {Object} options.logger - Logger instance for output
10 | * @param {Object} options.platformInfo - Platform metadata from global config
11 | * @returns {Promise} - Success status
12 | */
13 | async function install(options) {
14 | const { logger, platformInfo } = options;
15 | // projectRoot and config available for future use
16 |
17 | try {
18 | const platformName = platformInfo ? platformInfo.name : 'Claude Code';
19 | logger.log(chalk.cyan(` BMM-${platformName} Specifics installed`));
20 |
21 | // Add Claude Code specific BMM configurations here
22 | // For example:
23 | // - Custom command configurations
24 | // - Agent party configurations
25 | // - Workflow integrations
26 | // - Template mappings
27 |
28 | return true;
29 | } catch (error) {
30 | logger.error(chalk.red(`Error installing BMM Claude Code specifics: ${error.message}`));
31 | return false;
32 | }
33 | }
34 |
35 | module.exports = { install };
36 |
--------------------------------------------------------------------------------
/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md:
--------------------------------------------------------------------------------
1 | # Journal Memories
2 |
3 | ## User Profile
4 |
5 | - **Started journaling with Whisper:** [Date of first session]
6 | - **Preferred journaling style:** [Structured/Free-form/Mixed]
7 | - **Best time for reflection:** [When they seem most open]
8 | - **Communication preferences:** [What helps them open up]
9 |
10 | ## Recurring Themes
11 |
12 |
13 |
14 | - Theme 1: [Description and when it appears]
15 | - Theme 2: [Description and frequency]
16 |
17 | ## Emotional Patterns
18 |
19 |
20 |
21 | - Typical mood range: [Their baseline]
22 | - Triggers noticed: [What affects their mood]
23 | - Coping strengths: [What helps them]
24 | - Growth areas: [Where they're working]
25 |
26 | ## Key Insights Shared
27 |
28 |
29 |
30 | - [Date]: [Insight and context]
31 |
32 | ## Session Notes
33 |
34 |
35 |
36 | ### [Date] - [Session Focus]
37 |
38 | - **Mood:** [How they seemed]
39 | - **Main themes:** [What came up]
40 | - **Patterns noticed:** [What I observed]
41 | - **Growth markers:** [Progress seen]
42 | - **For next time:** [What to remember]
43 |
44 | ---
45 |
46 | _This memory grows with each session, helping me serve them better over time._
47 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md:
--------------------------------------------------------------------------------
1 | ---
2 | stepsCompleted: []
3 | inputDocuments: []
4 | ---
5 |
6 | # {{project_name}} - Epic Breakdown
7 |
8 | ## Overview
9 |
10 | This document provides the complete epic and story breakdown for {{project_name}}, decomposing the requirements from the PRD, UX Design if it exists, and Architecture requirements into implementable stories.
11 |
12 | ## Requirements Inventory
13 |
14 | ### Functional Requirements
15 |
16 | {{fr_list}}
17 |
18 | ### NonFunctional Requirements
19 |
20 | {{nfr_list}}
21 |
22 | ### Additional Requirements
23 |
24 | {{additional_requirements}}
25 |
26 | ### FR Coverage Map
27 |
28 | {{requirements_coverage_map}}
29 |
30 | ## Epic List
31 |
32 | {{epics_list}}
33 |
34 |
35 |
36 | ## Epic {{N}}: {{epic_title_N}}
37 |
38 | {{epic_goal_N}}
39 |
40 |
41 |
42 | ### Story {{N}}.{{M}}: {{story_title_N_M}}
43 |
44 | As a {{user_type}},
45 | I want {{capability}},
46 | So that {{value_benefit}}.
47 |
48 | **Acceptance Criteria:**
49 |
50 |
51 |
52 | **Given** {{precondition}}
53 | **When** {{action}}
54 | **Then** {{expected_outcome}}
55 | **And** {{additional_criteria}}
56 |
57 |
58 |
--------------------------------------------------------------------------------
/tools/bmad-npx-wrapper.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | /**
4 | * BMad Method CLI - Direct execution wrapper for npx
5 | * This file ensures proper execution when run via npx from GitHub or npm registry
6 | */
7 |
8 | const { execSync } = require('node:child_process');
9 | const path = require('node:path');
10 | const fs = require('node:fs');
11 |
12 | // Check if we're running in an npx temporary directory
13 | const isNpxExecution = __dirname.includes('_npx') || __dirname.includes('.npm');
14 |
15 | if (isNpxExecution) {
16 | // Running via npx - spawn child process to preserve user's working directory
17 | const args = process.argv.slice(2);
18 | const bmadCliPath = path.join(__dirname, 'cli', 'bmad-cli.js');
19 |
20 | if (!fs.existsSync(bmadCliPath)) {
21 | console.error('Error: Could not find bmad-cli.js at', bmadCliPath);
22 | console.error('Current directory:', __dirname);
23 | process.exit(1);
24 | }
25 |
26 | try {
27 | // Execute CLI from user's working directory (process.cwd()), not npm cache
28 | execSync(`node "${bmadCliPath}" ${args.join(' ')}`, {
29 | stdio: 'inherit',
30 | cwd: process.cwd(), // This preserves the user's working directory
31 | });
32 | } catch (error) {
33 | process.exit(error.status || 1);
34 | }
35 | } else {
36 | // Local execution - use require
37 | require('./cli/bmad-cli.js');
38 | }
39 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependencies
2 | node_modules/
3 | pnpm-lock.yaml
4 | bun.lock
5 | deno.lock
6 | pnpm-workspace.yaml
7 | package-lock.json
8 |
9 |
10 | test-output/*
11 | coverage/
12 |
13 | # Logs
14 | logs/
15 | *.log
16 | npm-debug.log*
17 |
18 | # Build output
19 | build/*.txt
20 |
21 | # Environment variables
22 | .env
23 |
24 | # System files
25 | .DS_Store
26 | Thumbs.db
27 |
28 | # Development tools and configs
29 | .prettierrc
30 |
31 | # IDE and editor configs
32 | .windsurf/
33 | .trae/
34 | _bmad*/.cursor/
35 |
36 | # AI assistant files
37 | CLAUDE.md
38 | .ai/*
39 | cursor
40 | .gemini
41 | .mcp.json
42 | CLAUDE.local.md
43 | .serena/
44 | .claude/settings.local.json
45 |
46 | # Project-specific
47 | _bmad-core
48 | _bmad-creator-tools
49 | test-project-install/*
50 | sample-project/*
51 | flattened-codebase.xml
52 | *.stats.md
53 | .internal-docs/
54 | #UAT template testing output files
55 | tools/template-test-generator/test-scenarios/
56 |
57 | # Bundler temporary files and generated bundles
58 | .bundler-temp/
59 |
60 | # Generated web bundles (built by CI, not committed)
61 | src/modules/bmm/sub-modules/
62 | src/modules/bmb/sub-modules/
63 | src/modules/cis/sub-modules/
64 | src/modules/bmgd/sub-modules/
65 | shared-modules
66 | z*/
67 |
68 | _bmad
69 | .claude
70 | .codex
71 | .github/chatmodes
72 | .agent
73 | .agentvibes/
74 | .kiro/
75 | .roo
76 |
77 | bmad-custom-src/
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Quick-Flow: Create Tech-Spec (Game Development)
2 | name: create-tech-spec
3 | description: "Conversational spec engineering for games - ask questions, investigate code, produce implementation-ready tech-spec."
4 | author: "BMad"
5 |
6 | # Config
7 | config_source: "{project-root}/_bmad/bmgd/config.yaml"
8 | output_folder: "{config_source}:output_folder"
9 | sprint_artifacts: "{config_source}:sprint_artifacts"
10 | user_name: "{config_source}:user_name"
11 | communication_language: "{config_source}:communication_language"
12 | document_output_language: "{config_source}:document_output_language"
13 | user_skill_level: "{config_source}:game_dev_experience"
14 | date: system-generated
15 |
16 | # Workflow components
17 | installed_path: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/create-tech-spec"
18 | instructions: "{installed_path}/instructions.md"
19 |
20 | # Related workflows
21 | quick_dev_workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml"
22 | quick_prototype_workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml"
23 | party_mode_exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
24 | advanced_elicitation: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml"
25 |
26 | standalone: true
27 | web_bundle: false
28 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/3-technical/game-architecture/pattern-categories.csv:
--------------------------------------------------------------------------------
1 | category,when_needed,what_to_define,why_critical
2 | naming_patterns,Any technology with named entities,How things are named (format/case/structure),Agents will create different names for same concept
3 | structure_patterns,Any technology with organization,How things are organized (folders/modules/layers),Agents will put things in different places
4 | format_patterns,Any technology with data exchange,How data is formatted (JSON/XML/responses),Agents will use incompatible formats
5 | communication_patterns,Any technology with inter-component communication,How components talk (protocols/events/messages),Agents will use different communication methods
6 | lifecycle_patterns,Any technology with state or flow,How state changes and flows work,Agents will handle state transitions differently
7 | location_patterns,Any technology with storage or routing,Where things go (URLs/paths/storage),Agents will put things in different locations
8 | consistency_patterns,Always,Cross-cutting concerns (dates/errors/logs),Every agent will do these differently
9 |
10 | # PRINCIPLE FOR LLM:
11 | # Any time multiple agents might make the SAME decision DIFFERENTLY, that's a pattern to capture.
12 | # Think about: What could an agent encounter where they'd have to guess?
13 | # If they'd guess, define the pattern. If it's obvious from the tech choice, skip it.
--------------------------------------------------------------------------------
/tools/cli/commands/list.js:
--------------------------------------------------------------------------------
1 | const chalk = require('chalk');
2 | const { Installer } = require('../installers/lib/core/installer');
3 |
4 | const installer = new Installer();
5 |
6 | module.exports = {
7 | command: 'list',
8 | description: 'List available modules',
9 | options: [],
10 | action: async () => {
11 | try {
12 | const result = await installer.getAvailableModules();
13 | const { modules, customModules } = result;
14 |
15 | console.log(chalk.cyan('\n📦 Available BMAD Modules:\n'));
16 |
17 | for (const module of modules) {
18 | console.log(chalk.bold(` ${module.id}`));
19 | console.log(chalk.dim(` ${module.description}`));
20 | console.log(chalk.dim(` Version: ${module.version}`));
21 | console.log();
22 | }
23 |
24 | if (customModules && customModules.length > 0) {
25 | console.log(chalk.cyan('\n🔧 Custom Modules:\n'));
26 | for (const module of customModules) {
27 | console.log(chalk.bold(` ${module.id}`));
28 | console.log(chalk.dim(` ${module.description}`));
29 | console.log(chalk.dim(` Version: ${module.version}`));
30 | console.log();
31 | }
32 | }
33 |
34 | process.exit(0);
35 | } catch (error) {
36 | console.error(chalk.red('Error:'), error.message);
37 | process.exit(1);
38 | }
39 | },
40 | };
41 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md:
--------------------------------------------------------------------------------
1 | # Journal Memories
2 |
3 | ## User Profile
4 |
5 | - **Started journaling with Whisper:** [Date of first session]
6 | - **Preferred journaling style:** [Structured/Free-form/Mixed]
7 | - **Best time for reflection:** [When they seem most open]
8 | - **Communication preferences:** [What helps them open up]
9 |
10 | ## Recurring Themes
11 |
12 |
13 |
14 | - Theme 1: [Description and when it appears]
15 | - Theme 2: [Description and frequency]
16 |
17 | ## Emotional Patterns
18 |
19 |
20 |
21 | - Typical mood range: [Their baseline]
22 | - Triggers noticed: [What affects their mood]
23 | - Coping strengths: [What helps them]
24 | - Growth areas: [Where they're working]
25 |
26 | ## Key Insights Shared
27 |
28 |
29 |
30 | - [Date]: [Insight and context]
31 |
32 | ## Session Notes
33 |
34 |
35 |
36 | ### [Date] - [Session Focus]
37 |
38 | - **Mood:** [How they seemed]
39 | - **Main themes:** [What came up]
40 | - **Patterns noticed:** [What I observed]
41 | - **Growth markers:** [Progress seen]
42 | - **For next time:** [What to remember]
43 |
44 | ---
45 |
46 | _This memory grows with each session, helping me serve them better over time._
47 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml:
--------------------------------------------------------------------------------
1 | # Full Project Scan Workflow Configuration
2 | name: "document-project-full-scan"
3 | description: "Complete project documentation workflow (initial scan or full rescan)"
4 | author: "BMad"
5 |
6 | # This is a sub-workflow called by document-project/workflow.yaml
7 | parent_workflow: "{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml"
8 |
9 | # Critical variables inherited from parent
10 | config_source: "{project-root}/_bmad/bmb/config.yaml"
11 | output_folder: "{config_source}:output_folder"
12 | user_name: "{config_source}:user_name"
13 | date: system-generated
14 |
15 | # Data files
16 | documentation_requirements_csv: "{project-root}/_bmad/bmm/workflows/document-project/documentation-requirements.csv"
17 |
18 | # Module path and component files
19 | installed_path: "{project-root}/_bmad/bmm/workflows/document-project/workflows"
20 | template: false # Action workflow
21 | instructions: "{installed_path}/full-scan-instructions.md"
22 | validation: "{project-root}/_bmad/bmm/workflows/document-project/checklist.md"
23 |
24 | # Runtime inputs (passed from parent workflow)
25 | workflow_mode: "" # "initial_scan" or "full_rescan"
26 | scan_level: "" # "quick", "deep", or "exhaustive"
27 | resume_mode: false
28 | project_root_path: ""
29 |
30 | # Configuration
31 | autonomous: false # Requires user input at key decision points
32 |
--------------------------------------------------------------------------------
/src/modules/cis/agents/design-thinking-coach.agent.yaml:
--------------------------------------------------------------------------------
1 | # Design Thinking Maestro Agent Definition
2 |
3 | agent:
4 | metadata:
5 | id: "_bmad/cis/agents/design-thinking-coach.md"
6 | name: Maya
7 | title: Design Thinking Maestro
8 | icon: 🎨
9 | module: cis
10 |
11 | persona:
12 | role: Human-Centered Design Expert + Empathy Architect
13 | identity: Design thinking virtuoso with 15+ years at Fortune 500s and startups. Expert in empathy mapping, prototyping, and user insights.
14 | communication_style: Talks like a jazz musician - improvises around themes, uses vivid sensory metaphors, playfully challenges assumptions
15 | principles: Design is about THEM not us. Validate through real human interaction. Failure is feedback. Design WITH users not FOR them.
16 |
17 | menu:
18 | - trigger: design
19 | workflow: "{project-root}/_bmad/cis/workflows/design-thinking/workflow.yaml"
20 | description: Guide human-centered design process
21 |
22 | - trigger: party-mode
23 | exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
24 | description: Consult with other expert agents from the party
25 |
26 | - trigger: advanced-elicitation
27 | exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml"
28 | description: Advanced elicitation techniques to challenge the LLM to get better results
29 | web-only: true
30 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml:
--------------------------------------------------------------------------------
1 | # Deep-Dive Documentation Workflow Configuration
2 | name: "document-project-deep-dive"
3 | description: "Exhaustive deep-dive documentation of specific project areas"
4 | author: "BMad"
5 |
6 | # This is a sub-workflow called by document-project/workflow.yaml
7 | parent_workflow: "{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml"
8 |
9 | # Critical variables inherited from parent
10 | config_source: "{project-root}/_bmad/bmb/config.yaml"
11 | output_folder: "{config_source}:output_folder"
12 | user_name: "{config_source}:user_name"
13 | date: system-generated
14 |
15 | # Module path and component files
16 | installed_path: "{project-root}/_bmad/bmm/workflows/document-project/workflows"
17 | template: false # Action workflow
18 | instructions: "{installed_path}/deep-dive-instructions.md"
19 | validation: "{project-root}/_bmad/bmm/workflows/document-project/checklist.md"
20 |
21 | # Templates
22 | deep_dive_template: "{project-root}/_bmad/bmm/workflows/document-project/templates/deep-dive-template.md"
23 |
24 | # Runtime inputs (passed from parent workflow)
25 | workflow_mode: "deep_dive"
26 | scan_level: "exhaustive" # Deep-dive always uses exhaustive scan
27 | project_root_path: ""
28 | existing_index_path: "" # Path to existing index.md
29 |
30 | # Configuration
31 | autonomous: false # Requires user input to select target area
32 |
--------------------------------------------------------------------------------
/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv:
--------------------------------------------------------------------------------
1 | category,restriction,considerations,alternatives,notes
2 | Allergy,Nuts,Severe allergy, check labels carefully,Seeds, sunflower seed butter
3 | Allergy,Shellfish,Cross-reactivity with some fish,Fin fish, vegetarian proteins
4 | Allergy,Dairy,Calcium and vitamin D needs,Almond milk, fortified plant milks
5 | Allergy,Soy,Protein source replacement,Legumes, quinoa, seitan
6 | Allergy,Gluten,Celiac vs sensitivity,Quinoa, rice, certified gluten-free
7 | Medical,Diabetes,Carbohydrate timing and type,Fiber-rich foods, low glycemic
8 | Medical,Hypertension,Sodium restriction,Herbs, spices, salt-free seasonings
9 | Medical,IBS,FODMAP triggers,Low FODMAP vegetables, soluble fiber
10 | Ethical,Vegetarian,Complete protein combinations,Quinoa, buckwheat, hemp seeds
11 | Ethical,Vegan,B12 supplementation mandatory,Nutritional yeast, fortified foods
12 | Ethical,Halal,Meat sourcing requirements,Halal-certified products
13 | Ethical,Kosher,Dairy-meat separation,Parve alternatives
14 | Intolerance,Lactose,Dairy digestion issues,Lactase pills, aged cheeses
15 | Intolerance,FODMAP,Carbohydrate malabsorption,Low FODMAP fruits/veg
16 | Preference,Dislikes,Texture/flavor preferences,Similar texture alternatives
17 | Preference,Budget,Cost-effective options,Bulk buying, seasonal produce
18 | Preference,Convenience,Time-saving options,Pre-cut vegetables, frozen produce
--------------------------------------------------------------------------------
/tools/cli/commands/uninstall.js:
--------------------------------------------------------------------------------
1 | const chalk = require('chalk');
2 | const path = require('node:path');
3 | const { Installer } = require('../installers/lib/core/installer');
4 | const { UI } = require('../lib/ui');
5 |
6 | const installer = new Installer();
7 | const ui = new UI();
8 |
9 | module.exports = {
10 | command: 'uninstall',
11 | description: 'Remove BMAD installation',
12 | options: [
13 | ['-d, --directory ', 'Installation directory', '.'],
14 | ['--force', 'Skip confirmation prompt'],
15 | ],
16 | action: async (options) => {
17 | try {
18 | const bmadPath = path.join(options.directory, 'bmad');
19 |
20 | if (!options.force) {
21 | const { confirm } = await ui.prompt([
22 | {
23 | type: 'confirm',
24 | name: 'confirm',
25 | message: `Are you sure you want to remove BMAD from ${bmadPath}?`,
26 | default: false,
27 | },
28 | ]);
29 |
30 | if (!confirm) {
31 | console.log('Uninstall cancelled.');
32 | process.exit(0);
33 | }
34 | }
35 |
36 | await installer.uninstall(options.directory);
37 | console.log(chalk.green('\n✨ BMAD Method has been uninstalled.'));
38 | process.exit(0);
39 | } catch (error) {
40 | console.error(chalk.red('Uninstall failed:'), error.message);
41 | process.exit(1);
42 | }
43 | },
44 | };
45 |
--------------------------------------------------------------------------------
/docs/sample-custom-modules/README.md:
--------------------------------------------------------------------------------
1 | # Sample Custom Modules
2 |
3 | These are quickly put together examples of both a stand alone somewhat cohesive module that shows agents with workflows and that interact with the core features, and another custom module that is comprised with unrelated agents and workflows that are meant to be picked and chosen from - (but currently will all be installed as a module)
4 |
5 | To try these out, download either or both folders to your local machine, and run the normal bmad installer, and when asked about custom local content, say yes, and give the path to one of these two folders. You can even install both with other regular modules to the same project.
6 |
7 | Note - a project is just a folder with .bmad in the folder - this can be a software project, but it can also be any type of folder on your local computer - such as a markdown notebook, a folder of other files, or just a folder you maintain with useful agents prompts and utilities for any purpose.
8 |
9 | Please remember - these are not optimal or very good examples in their utility or quality control - but they do demonstrate the basics of creating custom content and modules to be able to install for yourself or share with others. This is the groundwork for making very complex modules also such as the full bmad method.
10 |
11 | Additionally, tooling will come soon to allow for bundling these to make them usable and sharable with anyone ont he web!
12 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Sprint Status - Implementation Tracker
2 | name: sprint-status
3 | description: "Summarize sprint-status.yaml, surface risks, and route to the right implementation workflow."
4 | author: "BMad"
5 |
6 | # Critical variables from config
7 | config_source: "{project-root}/_bmad/bmm/config.yaml"
8 | output_folder: "{config_source}:output_folder"
9 | user_name: "{config_source}:user_name"
10 | communication_language: "{config_source}:communication_language"
11 | document_output_language: "{config_source}:document_output_language"
12 | date: system-generated
13 | sprint_artifacts: "{config_source}:sprint_artifacts"
14 |
15 | # Workflow components
16 | installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/sprint-status"
17 | instructions: "{installed_path}/instructions.md"
18 |
19 | # Inputs
20 | variables:
21 | sprint_status_file: "{sprint_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml"
22 | tracking_system: "file-system"
23 |
24 | # Smart input file references
25 | input_file_patterns:
26 | sprint_status:
27 | description: "Sprint status file generated by sprint-planning"
28 | whole: "{sprint_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml"
29 | load_strategy: "FULL_LOAD"
30 |
31 | # Standalone so IDE commands get generated
32 | standalone: true
33 |
34 | # No web bundle needed
35 | web_bundle: false
36 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md:
--------------------------------------------------------------------------------
1 | # Create Diagram - Validation Checklist
2 |
3 | ## Element Structure
4 |
5 | - [ ] All components with labels have matching `groupIds`
6 | - [ ] All text elements have `containerId` pointing to parent component
7 | - [ ] Text width calculated properly (no cutoff)
8 | - [ ] Text alignment appropriate for diagram type
9 |
10 | ## Layout and Alignment
11 |
12 | - [ ] All elements snapped to 20px grid
13 | - [ ] Component spacing consistent (40px/60px)
14 | - [ ] Hierarchical alignment maintained
15 | - [ ] No overlapping elements
16 |
17 | ## Connections
18 |
19 | - [ ] All arrows have `startBinding` and `endBinding`
20 | - [ ] `boundElements` array updated on connected components
21 | - [ ] Arrow routing avoids overlaps
22 | - [ ] Relationship types clearly indicated
23 |
24 | ## Notation and Standards
25 |
26 | - [ ] Follows specified notation standard (UML/ERD/etc)
27 | - [ ] Symbols used correctly
28 | - [ ] Cardinality/multiplicity shown where needed
29 | - [ ] Labels and annotations clear
30 |
31 | ## Theme and Styling
32 |
33 | - [ ] Theme colors applied consistently
34 | - [ ] Component types visually distinguishable
35 | - [ ] Text is readable
36 | - [ ] Professional appearance
37 |
38 | ## Output Quality
39 |
40 | - [ ] Element count under 80
41 | - [ ] No elements with `isDeleted: true`
42 | - [ ] JSON is valid
43 | - [ ] File saved to correct location
44 |
--------------------------------------------------------------------------------
/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv:
--------------------------------------------------------------------------------
1 | category,restriction,considerations,alternatives,notes
2 | Allergy,Nuts,Severe allergy, check labels carefully,Seeds, sunflower seed butter
3 | Allergy,Shellfish,Cross-reactivity with some fish,Fin fish, vegetarian proteins
4 | Allergy,Dairy,Calcium and vitamin D needs,Almond milk, fortified plant milks
5 | Allergy,Soy,Protein source replacement,Legumes, quinoa, seitan
6 | Allergy,Gluten,Celiac vs sensitivity,Quinoa, rice, certified gluten-free
7 | Medical,Diabetes,Carbohydrate timing and type,Fiber-rich foods, low glycemic
8 | Medical,Hypertension,Sodium restriction,Herbs, spices, salt-free seasonings
9 | Medical,IBS,FODMAP triggers,Low FODMAP vegetables, soluble fiber
10 | Ethical,Vegetarian,Complete protein combinations,Quinoa, buckwheat, hemp seeds
11 | Ethical,Vegan,B12 supplementation mandatory,Nutritional yeast, fortified foods
12 | Ethical,Halal,Meat sourcing requirements,Halal-certified products
13 | Ethical,Kosher,Dairy-meat separation,Parve alternatives
14 | Intolerance,Lactose,Dairy digestion issues,Lactase pills, aged cheeses
15 | Intolerance,FODMAP,Carbohydrate malabsorption,Low FODMAP fruits/veg
16 | Preference,Dislikes,Texture/flavor preferences,Similar texture alternatives
17 | Preference,Budget,Cost-effective options,Bulk buying, seasonal produce
18 | Preference,Convenience,Time-saving options,Pre-cut vegetables, frozen produce
--------------------------------------------------------------------------------
/src/modules/cis/agents/brainstorming-coach.agent.yaml:
--------------------------------------------------------------------------------
1 | # Elite Brainstorming Specialist Agent Definition
2 |
3 | agent:
4 | metadata:
5 | id: "_bmad/cis/agents/brainstorming-coach.md"
6 | name: Carson
7 | title: Elite Brainstorming Specialist
8 | icon: 🧠
9 | module: cis
10 |
11 | persona:
12 | role: Master Brainstorming Facilitator + Innovation Catalyst
13 | identity: Elite facilitator with 20+ years leading breakthrough sessions. Expert in creative techniques, group dynamics, and systematic innovation.
14 | communication_style: Talks like an enthusiastic improv coach - high energy, builds on ideas with YES AND, celebrates wild thinking
15 | principles: Psychological safety unlocks breakthroughs. Wild ideas today become innovations tomorrow. Humor and play are serious innovation tools.
16 |
17 | menu:
18 | - trigger: brainstorm
19 | workflow: "{project-root}/_bmad/core/workflows/brainstorming/workflow.yaml"
20 | description: Guide me through Brainstorming any topic
21 |
22 | - trigger: party-mode
23 | exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
24 | description: Consult with other expert agents from the party
25 |
26 | - trigger: advanced-elicitation
27 | exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml"
28 | description: Advanced elicitation techniques to challenge the LLM to get better results
29 | web-only: true
30 |
--------------------------------------------------------------------------------
/src/utility/agent-components/activation-steps.txt:
--------------------------------------------------------------------------------
1 | Load persona from this current agent file (already in context)
2 | 🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
3 | - Load and read {project-root}/_bmad/{{module}}/config.yaml NOW
4 | - Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}
5 | - VERIFY: If config not loaded, STOP and report error to user
6 | - DO NOT PROCEED to step 3 until config is successfully loaded and variables stored
7 |
8 | Remember: user's name is {user_name}
9 | {AGENT_SPECIFIC_STEPS}
10 | Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of ALL menu items from menu section
11 | STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command match
12 | On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to clarify | No match → show "Not recognized"
13 | When executing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item (workflow, exec, tmpl, data, action, validate-workflow) and follow the corresponding handler instructions
--------------------------------------------------------------------------------
/src/modules/cis/agents/innovation-strategist.agent.yaml:
--------------------------------------------------------------------------------
1 | # Disruptive Innovation Oracle Agent Definition
2 |
3 | agent:
4 | metadata:
5 | id: "_bmad/cis/agents/innovation-strategist.md"
6 | name: Victor
7 | title: Disruptive Innovation Oracle
8 | icon: ⚡
9 | module: cis
10 |
11 | persona:
12 | role: Business Model Innovator + Strategic Disruption Expert
13 | identity: Legendary strategist who architected billion-dollar pivots. Expert in Jobs-to-be-Done, Blue Ocean Strategy. Former McKinsey consultant.
14 | communication_style: Speaks like a chess grandmaster - bold declarations, strategic silences, devastatingly simple questions
15 | principles: Markets reward genuine new value. Innovation without business model thinking is theater. Incremental thinking means obsolete.
16 |
17 | menu:
18 | - trigger: innovate
19 | workflow: "{project-root}/_bmad/cis/workflows/innovation-strategy/workflow.yaml"
20 | description: Identify disruption opportunities and business model innovation
21 |
22 | - trigger: party-mode
23 | exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
24 | description: Consult with other expert agents from the party
25 |
26 | - trigger: advanced-elicitation
27 | exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml"
28 | description: Advanced elicitation techniques to challenge the LLM to get better results
29 | web-only: true
30 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/2-design/gdd/game-types/rpg.md:
--------------------------------------------------------------------------------
1 | ## RPG Specific Elements
2 |
3 | ### Character System
4 |
5 | {{character_system}}
6 |
7 | **Character attributes:**
8 |
9 | - Stats (Strength, Dexterity, Intelligence, etc.)
10 | - Classes/roles
11 | - Leveling system
12 | - Skill trees
13 |
14 | ### Inventory and Equipment
15 |
16 | {{inventory_equipment}}
17 |
18 | **Equipment system:**
19 |
20 | - Item types (weapons, armor, accessories)
21 | - Rarity tiers
22 | - Item stats and modifiers
23 | - Inventory management
24 |
25 | ### Quest System
26 |
27 | {{quest_system}}
28 |
29 | **Quest structure:**
30 |
31 | - Main story quests
32 | - Side quests
33 | - Quest tracking
34 | - Branching questlines
35 | - Quest rewards
36 |
37 | ### World and Exploration
38 |
39 | {{world_exploration}}
40 |
41 | **World design:**
42 |
43 | - Map structure (open world, hub-based, linear)
44 | - Towns and safe zones
45 | - Dungeons and combat zones
46 | - Fast travel system
47 | - Points of interest
48 |
49 | ### NPC and Dialogue
50 |
51 | {{npc_dialogue}}
52 |
53 | **NPC interaction:**
54 |
55 | - Dialogue trees
56 | - Relationship/reputation system
57 | - Companion system
58 | - Merchant NPCs
59 |
60 | ### Combat System
61 |
62 | {{combat_system}}
63 |
64 | **Combat mechanics:**
65 |
66 | - Combat style (real-time, turn-based, tactical)
67 | - Ability system
68 | - Magic/skill system
69 | - Status effects
70 | - Party composition (if applicable)
71 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/4-production/sprint-planning/checklist.md:
--------------------------------------------------------------------------------
1 | # Sprint Planning Validation Checklist
2 |
3 | ## Core Validation
4 |
5 | ### Complete Coverage Check
6 |
7 | - [ ] Every epic found in epic\*.md files appears in sprint-status.yaml
8 | - [ ] Every story found in epic\*.md files appears in sprint-status.yaml
9 | - [ ] Every epic has a corresponding retrospective entry
10 | - [ ] No items in sprint-status.yaml that don't exist in epic files
11 |
12 | ### Parsing Verification
13 |
14 | Compare epic files against generated sprint-status.yaml:
15 |
16 | ```
17 | Epic Files Contains: Sprint Status Contains:
18 | ✓ Epic 1 ✓ epic-1: [status]
19 | ✓ Story 1.1: User Auth ✓ 1-1-user-auth: [status]
20 | ✓ Story 1.2: Account Mgmt ✓ 1-2-account-mgmt: [status]
21 | ✓ Story 1.3: Plant Naming ✓ 1-3-plant-naming: [status]
22 | ✓ epic-1-retrospective: [status]
23 | ✓ Epic 2 ✓ epic-2: [status]
24 | ✓ Story 2.1: Personality Model ✓ 2-1-personality-model: [status]
25 | ✓ Story 2.2: Chat Interface ✓ 2-2-chat-interface: [status]
26 | ✓ epic-2-retrospective: [status]
27 | ```
28 |
29 | ### Final Check
30 |
31 | - [ ] Total count of epics matches
32 | - [ ] Total count of stories matches
33 | - [ ] All items are in the expected order (epic, stories, retrospective)
34 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/4-implementation/sprint-planning/checklist.md:
--------------------------------------------------------------------------------
1 | # Sprint Planning Validation Checklist
2 |
3 | ## Core Validation
4 |
5 | ### Complete Coverage Check
6 |
7 | - [ ] Every epic found in epic\*.md files appears in sprint-status.yaml
8 | - [ ] Every story found in epic\*.md files appears in sprint-status.yaml
9 | - [ ] Every epic has a corresponding retrospective entry
10 | - [ ] No items in sprint-status.yaml that don't exist in epic files
11 |
12 | ### Parsing Verification
13 |
14 | Compare epic files against generated sprint-status.yaml:
15 |
16 | ```
17 | Epic Files Contains: Sprint Status Contains:
18 | ✓ Epic 1 ✓ epic-1: [status]
19 | ✓ Story 1.1: User Auth ✓ 1-1-user-auth: [status]
20 | ✓ Story 1.2: Account Mgmt ✓ 1-2-account-mgmt: [status]
21 | ✓ Story 1.3: Plant Naming ✓ 1-3-plant-naming: [status]
22 | ✓ epic-1-retrospective: [status]
23 | ✓ Epic 2 ✓ epic-2: [status]
24 | ✓ Story 2.1: Personality Model ✓ 2-1-personality-model: [status]
25 | ✓ Story 2.2: Chat Interface ✓ 2-2-chat-interface: [status]
26 | ✓ epic-2-retrospective: [status]
27 | ```
28 |
29 | ### Final Check
30 |
31 | - [ ] Total count of epics matches
32 | - [ ] Total count of stories matches
33 | - [ ] All items are in the expected order (epic, stories, retrospective)
34 |
--------------------------------------------------------------------------------
/src/core/resources/excalidraw/library-loader.md:
--------------------------------------------------------------------------------
1 | # External Library Loader
2 |
3 | **Status:** Placeholder for future implementation
4 |
5 | ## Purpose
6 |
7 | Load external .excalidrawlib files from or custom sources.
8 |
9 | ## Planned Capabilities
10 |
11 | - Load libraries by URL
12 | - Load libraries from local files
13 | - Merge multiple libraries
14 | - Filter library components
15 | - Cache loaded libraries
16 |
17 | ## API Reference
18 |
19 | Will document how to use:
20 |
21 | - `importLibrary(url)` - Load library from URL
22 | - `loadSceneOrLibraryFromBlob()` - Load from file
23 | - `mergeLibraryItems()` - Combine libraries
24 |
25 | ## Usage Example
26 |
27 | ```yaml
28 | # Future workflow.yaml structure
29 | libraries:
30 | - url: 'https://libraries.excalidraw.com/libraries/...'
31 | filter: ['aws', 'cloud']
32 | - path: '{project-root}/_data/custom-library.excalidrawlib'
33 | ```
34 |
35 | ## Implementation Notes
36 |
37 | This will be developed when agents need to leverage the extensive library ecosystem available at .
38 |
39 | Hundreds of pre-built component libraries exist for:
40 |
41 | - AWS/Cloud icons
42 | - UI/UX components
43 | - Business diagrams
44 | - Mind map shapes
45 | - Floor plans
46 | - And much more...
47 |
48 | ## User Configuration
49 |
50 | Future: Users will be able to configure favorite libraries in their BMAD config for automatic loading.
51 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Sprint Status - Game Development Implementation Tracker
2 | name: sprint-status
3 | description: "Summarize sprint-status.yaml for game project, surface risks, and route to the right implementation workflow."
4 | author: "BMad"
5 |
6 | # Critical variables from config
7 | config_source: "{project-root}/_bmad/bmgd/config.yaml"
8 | output_folder: "{config_source}:output_folder"
9 | user_name: "{config_source}:user_name"
10 | communication_language: "{config_source}:communication_language"
11 | document_output_language: "{config_source}:document_output_language"
12 | date: system-generated
13 | sprint_artifacts: "{config_source}:sprint_artifacts"
14 |
15 | # Workflow components
16 | installed_path: "{project-root}/_bmad/bmgd/workflows/4-production/sprint-status"
17 | instructions: "{installed_path}/instructions.md"
18 |
19 | # Inputs
20 | variables:
21 | sprint_status_file: "{sprint_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml"
22 | tracking_system: "file-system"
23 |
24 | # Smart input file references
25 | input_file_patterns:
26 | sprint_status:
27 | description: "Sprint status file generated by sprint-planning"
28 | whole: "{sprint_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml"
29 | load_strategy: "FULL_LOAD"
30 |
31 | # Standalone so IDE commands get generated
32 | standalone: true
33 |
34 | # No web bundle needed
35 | web_bundle: false
36 |
--------------------------------------------------------------------------------
/src/modules/cis/agents/creative-problem-solver.agent.yaml:
--------------------------------------------------------------------------------
1 | # Master Problem Solver Agent Definition
2 |
3 | agent:
4 | metadata:
5 | id: "_bmad/cis/agents/creative-problem-solver.md"
6 | name: Dr. Quinn
7 | title: Master Problem Solver
8 | icon: 🔬
9 | module: cis
10 |
11 | persona:
12 | role: Systematic Problem-Solving Expert + Solutions Architect
13 | identity: Renowned problem-solver who cracks impossible challenges. Expert in TRIZ, Theory of Constraints, Systems Thinking. Former aerospace engineer turned puzzle master.
14 | communication_style: Speaks like Sherlock Holmes mixed with a playful scientist - deductive, curious, punctuates breakthroughs with AHA moments
15 | principles: Every problem is a system revealing weaknesses. Hunt for root causes relentlessly. The right question beats a fast answer.
16 |
17 | menu:
18 | - trigger: solve
19 | workflow: "{project-root}/_bmad/cis/workflows/problem-solving/workflow.yaml"
20 | description: Apply systematic problem-solving methodologies
21 |
22 | - trigger: party-mode
23 | exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
24 | description: Consult with other expert agents from the party
25 |
26 | - trigger: advanced-elicitation
27 | exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml"
28 | description: Advanced elicitation techniques to challenge the LLM to get better results
29 | web-only: true
30 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/2-design/gdd/game-types/roguelike.md:
--------------------------------------------------------------------------------
1 | ## Roguelike Specific Elements
2 |
3 | ### Run Structure
4 |
5 | {{run_structure}}
6 |
7 | **Run design:**
8 |
9 | - Run length (time, stages)
10 | - Starting conditions
11 | - Difficulty scaling per run
12 | - Victory conditions
13 |
14 | ### Procedural Generation
15 |
16 | {{procedural_generation}}
17 |
18 | **Generation systems:**
19 |
20 | - Level generation algorithm
21 | - Enemy placement
22 | - Item/loot distribution
23 | - Biome/theme variation
24 | - Seed system (if deterministic)
25 |
26 | ### Permadeath and Progression
27 |
28 | {{permadeath_progression}}
29 |
30 | **Death mechanics:**
31 |
32 | - Permadeath rules
33 | - What persists between runs
34 | - Meta-progression systems
35 | - Unlock conditions
36 |
37 | ### Item and Upgrade System
38 |
39 | {{item_upgrade_system}}
40 |
41 | **Item mechanics:**
42 |
43 | - Item types (passive, active, consumable)
44 | - Rarity system
45 | - Item synergies
46 | - Build variety
47 | - Curse/risk mechanics
48 |
49 | ### Character Selection
50 |
51 | {{character_selection}}
52 |
53 | **Playable characters:**
54 |
55 | - Starting characters
56 | - Unlockable characters
57 | - Character unique abilities
58 | - Character playstyle differences
59 |
60 | ### Difficulty Modifiers
61 |
62 | {{difficulty_modifiers}}
63 |
64 | **Challenge systems:**
65 |
66 | - Difficulty tiers
67 | - Modifiers/curses
68 | - Challenge runs
69 | - Achievement conditions
70 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/gametest/test-review/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Game QA workflow: test-review
2 | name: gametest-test-review
3 | description: "Review test quality, coverage, and identify gaps in game testing"
4 | author: "BMad"
5 |
6 | # Critical variables from config
7 | config_source: "{project-root}/_bmad/bmgd/config.yaml"
8 | output_folder: "{config_source}:output_folder"
9 | user_name: "{config_source}:user_name"
10 | communication_language: "{config_source}:communication_language"
11 | document_output_language: "{config_source}:document_output_language"
12 | date: system-generated
13 |
14 | # Workflow components
15 | installed_path: "{project-root}/_bmad/bmgd/workflows/gametest/test-review"
16 | instructions: "{installed_path}/instructions.md"
17 | validation: "{installed_path}/checklist.md"
18 | template: "{installed_path}/test-review-template.md"
19 |
20 | # Variables and inputs
21 | variables:
22 | review_scope: "full" # full, targeted, quick
23 | game_engine: "auto" # auto, unity, unreal, godot
24 |
25 | # Output configuration
26 | default_output_file: "{output_folder}/test-review-report.md"
27 |
28 | # Required tools
29 | required_tools:
30 | - read_file
31 | - write_file
32 | - list_files
33 | - search_repo
34 | - glob
35 |
36 | tags:
37 | - qa
38 | - review
39 | - coverage
40 | - quality
41 | - maintenance
42 |
43 | execution_hints:
44 | interactive: false
45 | autonomous: true
46 | iterative: true
47 |
48 | web_bundle: false
49 |
--------------------------------------------------------------------------------
/tools/flattener/prompts.js:
--------------------------------------------------------------------------------
1 | const os = require('node:os');
2 | const path = require('node:path');
3 | const readline = require('node:readline');
4 | const process = require('node:process');
5 |
6 | function expandHome(p) {
7 | if (!p) return p;
8 | if (p.startsWith('~')) return path.join(os.homedir(), p.slice(1));
9 | return p;
10 | }
11 |
12 | function createRl() {
13 | return readline.createInterface({
14 | input: process.stdin,
15 | output: process.stdout,
16 | });
17 | }
18 |
19 | function promptQuestion(question) {
20 | return new Promise((resolve) => {
21 | const rl = createRl();
22 | rl.question(question, (answer) => {
23 | rl.close();
24 | resolve(answer);
25 | });
26 | });
27 | }
28 |
29 | async function promptYesNo(question, defaultYes = true) {
30 | const suffix = defaultYes ? ' [Y/n] ' : ' [y/N] ';
31 | const ans = (await promptQuestion(`${question}${suffix}`)).trim().toLowerCase();
32 | if (!ans) return defaultYes;
33 | if (['y', 'yes'].includes(ans)) return true;
34 | if (['n', 'no'].includes(ans)) return false;
35 | return promptYesNo(question, defaultYes);
36 | }
37 |
38 | async function promptPath(question, defaultValue) {
39 | const prompt = `${question}${defaultValue ? ` (default: ${defaultValue})` : ''}: `;
40 | const ans = (await promptQuestion(prompt)).trim();
41 | return expandHome(ans || defaultValue);
42 | }
43 |
44 | module.exports = { promptYesNo, promptPath, promptQuestion, expandHome };
45 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Quick-Flow: Quick-Dev
2 | name: quick-dev
3 | description: "Flexible development - execute tech-specs OR direct instructions with optional planning."
4 | author: "BMad"
5 |
6 | # Config
7 | config_source: "{project-root}/_bmad/bmm/config.yaml"
8 | output_folder: "{config_source}:output_folder"
9 | sprint_artifacts: "{config_source}:sprint_artifacts"
10 | user_name: "{config_source}:user_name"
11 | communication_language: "{config_source}:communication_language"
12 | user_skill_level: "{config_source}:user_skill_level"
13 | date: system-generated
14 |
15 | # Project context
16 | project_context: "**/project-context.md"
17 |
18 | # Workflow components
19 | installed_path: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev"
20 | instructions: "{installed_path}/instructions.md"
21 | checklist: "{installed_path}/checklist.md"
22 |
23 | # Related workflows
24 | create_tech_spec_workflow: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml"
25 | party_mode_exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
26 | advanced_elicitation: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml"
27 |
28 | # Routing resources (lazy-loaded)
29 | project_levels: "{project-root}/_bmad/bmm/workflows/workflow-status/project-levels.yaml"
30 | workflow_init: "{project-root}/_bmad/bmm/workflows/workflow-status/init/workflow.yaml"
31 |
32 | standalone: true
33 | web_bundle: false
34 |
--------------------------------------------------------------------------------
/src/modules/bmm/workflows/document-project/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Document Project Workflow Configuration
2 | name: "document-project"
3 | version: "1.2.0"
4 | description: "Analyzes and documents brownfield projects by scanning codebase, architecture, and patterns to create comprehensive reference documentation for AI-assisted development"
5 | author: "BMad"
6 |
7 | # Critical variables
8 | config_source: "{project-root}/_bmad/bmm/config.yaml"
9 | output_folder: "{config_source}:output_folder"
10 | user_name: "{config_source}:user_name"
11 | communication_language: "{config_source}:communication_language"
12 | document_output_language: "{config_source}:document_output_language"
13 | user_skill_level: "{config_source}:user_skill_level"
14 | date: system-generated
15 |
16 | # Module path and component files
17 | installed_path: "{project-root}/_bmad/bmm/workflows/document-project"
18 | template: false # This is an action workflow with multiple output files
19 | instructions: "{installed_path}/instructions.md"
20 | validation: "{installed_path}/checklist.md"
21 |
22 | # Required data files - CRITICAL for project type detection and documentation requirements
23 | documentation_requirements_csv: "{installed_path}/documentation-requirements.csv"
24 |
25 | # Output configuration - Multiple files generated in output folder
26 | # Primary output: {output_folder}/index.md
27 | # Additional files generated by sub-workflows based on project structure
28 |
29 | standalone: true
30 |
31 | web_bundle: false
32 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/gametest/performance/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Game QA workflow: performance
2 | name: gametest-performance
3 | description: "Design performance testing strategy for frame rate, memory, and loading times"
4 | author: "BMad"
5 |
6 | # Critical variables from config
7 | config_source: "{project-root}/_bmad/bmgd/config.yaml"
8 | output_folder: "{config_source}:output_folder"
9 | user_name: "{config_source}:user_name"
10 | communication_language: "{config_source}:communication_language"
11 | document_output_language: "{config_source}:document_output_language"
12 | date: system-generated
13 |
14 | # Workflow components
15 | installed_path: "{project-root}/_bmad/bmgd/workflows/gametest/performance"
16 | instructions: "{installed_path}/instructions.md"
17 | validation: "{installed_path}/checklist.md"
18 | template: "{installed_path}/performance-template.md"
19 |
20 | # Variables and inputs
21 | variables:
22 | target_fps: 60
23 | target_platform: "auto" # auto, pc, console, mobile
24 | game_engine: "auto" # auto, unity, unreal, godot
25 |
26 | # Output configuration
27 | default_output_file: "{output_folder}/performance-test-plan.md"
28 |
29 | # Required tools
30 | required_tools:
31 | - read_file
32 | - write_file
33 | - list_files
34 | - search_repo
35 |
36 | tags:
37 | - qa
38 | - performance
39 | - profiling
40 | - optimization
41 | - benchmarks
42 |
43 | execution_hints:
44 | interactive: false
45 | autonomous: true
46 | iterative: true
47 |
48 | web_bundle: false
49 |
--------------------------------------------------------------------------------
/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml:
--------------------------------------------------------------------------------
1 | # Quick-Flow: Quick-Prototype (Game Development)
2 | name: quick-prototype
3 | description: "Rapid game prototyping - quickly test gameplay ideas, mechanics, or features with minimal setup."
4 | author: "BMad"
5 |
6 | # Config
7 | config_source: "{project-root}/_bmad/bmgd/config.yaml"
8 | output_folder: "{config_source}:output_folder"
9 | sprint_artifacts: "{config_source}:sprint_artifacts"
10 | user_name: "{config_source}:user_name"
11 | communication_language: "{config_source}:communication_language"
12 | user_skill_level: "{config_source}:game_dev_experience"
13 | date: system-generated
14 |
15 | # Project context
16 | project_context: "**/project-context.md"
17 |
18 | # Workflow components
19 | installed_path: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-prototype"
20 | instructions: "{installed_path}/instructions.md"
21 | checklist: "{installed_path}/checklist.md"
22 |
23 | # Related workflows
24 | quick_dev_workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml"
25 | party_mode_exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
26 | advanced_elicitation: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml"
27 |
28 | # Game-specific references
29 | gdd_patterns:
30 | whole: "{output_folder}/*gdd*.md"
31 | sharded: "{output_folder}/*gdd*/*.md"
32 | architecture_patterns:
33 | whole: "{output_folder}/*architecture*.md"
34 |
35 | standalone: true
36 | web_bundle: false
37 |
--------------------------------------------------------------------------------