├── .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 | --------------------------------------------------------------------------------