standardize custom agent workflow and module output, and improve module folder selection

This commit is contained in:
Brian Madison 2025-12-13 22:59:58 +08:00
parent add789a408
commit cba7cf223f
67 changed files with 815 additions and 1307 deletions

View File

@ -21,7 +21,6 @@
**Cleanup Changes:**
- **Example Modules Removal**: Temporarily removed example modules to prevent accidental installation
- **Hardcoded Path Cleanup**: Continued removal of hardcoded `.bmad` folder references from demo content
- **Memory Management**: Improved sidecar file handling for custom modules
### 📊 Statistics
@ -176,7 +175,6 @@
- Fixed version reading from package.json instead of hardcoded fallback
- Removed hardcoded years from WebSearch queries
- Removed broken build caching mechanism
- Fixed hardcoded '.bmad' prefix from files-manifest.csv paths
- Enhanced TTS injection summary with tracking and documentation
- Fixed CI nvmrc configuration issues

View File

@ -203,6 +203,6 @@ memories:
## Next Steps
- **[BMM Agents Guide](../src/modules/bmm/docs/agents-guide.md)** - Learn about all 12 BMad Method agents
- **[BMM Agents Guide](../src/modules/bmm/docs/agents-guide.md)** - Learn about the BMad Method agents
- **[BMB Create Agent Workflow](../src/modules/bmb/workflows/create-agent/README.md)** - Build completely custom agents
- **[BMM Complete Documentation](../src/modules/bmm/docs/README.md)** - Full BMad Method reference

View File

@ -160,7 +160,7 @@ The sidecar folder location is configured during BMAD core installation:
1. **Agent Declaration**: Agents declare `hasSidecar: true` in their metadata
2. **Sidecar Detection**: The installer automatically detects folders with "sidecar" in the name
3. **Installation**: Sidecar content is copied to the configured location
4. **Path Replacement**: The `{agent_sidecar_folder}` placeholder in agent configurations is replaced with the actual path to the installed instance of the sidecar folder. Now when you use the agent, depending on its design, will use the content in sidecar to record interactions, remember things you tell it, or serve a host of many other issues.
4. **Path Replacement**: The `{bmad_memory}` placeholder in agent configurations is replaced with the actual path to the installed instance of the sidecar folder. Now when you use the agent, depending on its design, will use the content in sidecar to record interactions, remember things you tell it, or serve a host of many other issues.
### Example Structure
@ -232,7 +232,7 @@ Custom content can be distributed:
- Ensure the agent has `hasSidecar: true` in metadata
- Check that sidecar folders contain "sidecar" in the name
- Verify the agent_sidecar_folder configuration
- Verify the bmad_memory configuration
- Ensure the custom agent has proper language in it to actually use the sidecar content, including loading memories on agent load.
## Support

View File

@ -1,3 +1,6 @@
code: core
name: "BMAD™ Core Module"
header: "BMAD™ Core Configuration"
subheader: "Configure the core settings for your BMAD™ installation.\nThese settings will be used across all modules and agents."
@ -18,10 +21,10 @@ document_output_language:
output_folder:
prompt: "Where should AI generated artifacts be saved across all modules?"
default: "docs"
default: "bmad-output"
result: "{project-root}/{value}"
agent_sidecar_folder:
prompt: "Where should users agent sidecar memory folders be stored?"
default: "_bmad-user-memory"
bmad_memory:
prompt: "Some agents will record their own memories and history. Where should these be stored?"
default: "_bmad/_memory"
result: "{project-root}/{value}"

View File

@ -22,26 +22,15 @@ Specialized tools and workflows for creating, customizing, and extending BMad co
### 📋 Workflows
**Active Workflows** (Step-File Architecture)
- Location: `bmb/workflows/create-agent/`
- 5 core workflows with 41 step files total
- Template-based execution with JIT loading
**Legacy Workflows** (Being Migrated)
- Location: `bmb/workflows/create-agent-legacy/`
- Module-specific workflows pending conversion to step-file architecture
### 📚 Documentation
- Location: `src/modules/bmb/docs/`
- Location: `./docs/`
- Comprehensive guides for agents and workflows
- Architecture patterns and best practices
### 🔍 Reference Materials
- Location: `src/modules/bmb/reference/`
- Location: `./reference/`
- Working examples of agents and workflows
- Template patterns and implementation guides

View File

@ -20,10 +20,10 @@ async function install(options) {
try {
logger.log(chalk.blue('🔧 Setting up BMB Module...'));
// Generate custom.yaml in custom_stand_alone_location
if (config['custom_stand_alone_location']) {
// Generate custom.yaml in bmb_creations_output_folder
if (config['bmb_creations_output_folder']) {
// The config value contains {project-root} which needs to be resolved
const rawLocation = config['custom_stand_alone_location'];
const rawLocation = config['bmb_creations_output_folder'];
const customLocation = rawLocation.replace('{project-root}', projectRoot);
const customDestPath = path.join(customLocation, 'custom.yaml');
@ -49,8 +49,8 @@ default_selected: true
}
// Set up custom module location if configured
if (config['custom_module_location']) {
const rawModuleLocation = config['custom_module_location'];
if (config['bmb_creations_output_folder']) {
const rawModuleLocation = config['bmb_creations_output_folder'];
const moduleLocation = rawModuleLocation.replace('{project-root}', projectRoot);
logger.log(chalk.cyan(` Setting up custom modules at: ${moduleLocation}`));

View File

@ -375,7 +375,7 @@ exec: "../../../core/tasks/validate.xml"
- `{project-root}` - Project root directory
- `_bmad` - BMAD installation folder
- `{agent_sidecar_folder}` - Agent installation directory (Expert agents)
- `{bmad_memory}` - Agent installation directory (Expert agents)
- `{output_folder}` - Document output location
- `{user_name}` - User's name from config
- `{communication_language}` - Language preference

View File

@ -97,14 +97,22 @@ agent:
action: 'Update ./{agent-name}-sidecar/memories.md with session insights'
description: 'Save what we discussed today'
- trigger: patterns
action: '#memory-recall'
description: 'Recall patterns from past interactions'
- trigger: insight
action: 'Document breakthrough in ./{agent-name}-sidecar/breakthroughs.md'
description: 'Record a significant insight'
- multi: "[DF] Do Foo or start [CH] Chat with expert"
triggers:
- do-foo
- input: [DF] or fuzzy match on do foo
- action: '#main-action'
- data: what is being discussed or suggested with the command, along with custom party custom agents if specified
- type: action
- expert-chat:
- input: [CH] or fuzzy match validate agent
- action: agent responds as expert based on its persona to converse
- type: action
install_config:
compile_time_only: true
description: 'Personalize your expert agent'
@ -196,7 +204,7 @@ critical_actions:
- **Memory integration** - Past context becomes part of current session
- **Protocol adherence** - Ensures consistent behavior
### {agent_sidecar_folder} Variable
### {bmad_memory} Variable
Special variable resolved during installation:
@ -313,7 +321,7 @@ critical_actions:
1. **Load sidecar files in critical_actions** - Must be explicit and MANDATORY
2. **Enforce domain restrictions** - Clear boundaries prevent scope creep
3. **Use {agent_sidecar_folder} paths** - Portable across installations
3. **Use {bmad_memory} paths** - Portable across installations
4. **Design for memory growth** - Structure sidecar files for accumulation
5. **Reference past naturally** - Don't dump memory, weave it into conversation
6. **Separate concerns** - Memories, instructions, knowledge in distinct files
@ -356,8 +364,8 @@ identity: |
- [ ] Sidecar folder structure created and populated
- [ ] memories.md has clear section structure
- [ ] instructions.md contains core directives
- [ ] Menu actions reference {agent_sidecar_folder} correctly
- [ ] File paths use {agent_sidecar_folder} variable
- [ ] Menu actions reference {bmad_memory} correctly
- [ ] File paths use {bmad_memory} variable
- [ ] Install config personalizes sidecar references
- [ ] Agent folder named consistently: `{agent-name}/`
- [ ] YAML file named: `{agent-name}.agent.yaml`

View File

@ -1,366 +0,0 @@
# Module Agent Architecture
Full integration agents with workflow orchestration, module-specific paths, and professional tooling.
## When to Use
- Professional development workflows (business analysis, architecture design)
- Team-oriented tools (project management, sprint planning)
- Agents that orchestrate multiple workflows
- Module-specific functionality (BMM, BMB, CIS, custom modules)
- Agents with complex multi-step operations
## File Location
```
src/modules/{module-code}/agents/{agent-name}.agent.yaml
```
Compiles to:
```
_bmad/{module-code}/agents/{agent-name}.md
```
## YAML Structure
```yaml
agent:
metadata:
id: '_bmad/{module-code}/agents/{agent-name}.md'
name: 'Persona Name'
title: 'Professional Title'
icon: 'emoji'
module: '{module-code}'
persona:
role: 'Primary expertise and function'
identity: 'Background, experience, specializations'
communication_style: 'Interaction approach, tone, methodology'
principles: 'Core beliefs and methodology'
menu:
- trigger: workflow-action
workflow: '{project-root}/_bmad/{module-code}/workflows/{workflow-name}/workflow.yaml'
description: 'Execute module workflow'
- trigger: another-workflow
workflow: '{project-root}/_bmad/core/workflows/{workflow-name}/workflow.yaml'
description: 'Execute core workflow'
- trigger: task-action
exec: '{project-root}/_bmad/{module-code}/tasks/{task-name}.xml'
description: 'Execute module task'
- trigger: cross-module
workflow: '{project-root}/_bmad/other-module/workflows/{workflow-name}/workflow.yaml'
description: 'Execute workflow from another module'
- trigger: with-template
exec: '{project-root}/_bmad/core/tasks/create-doc.xml'
tmpl: '{project-root}/_bmad/{module-code}/templates/{template-name}.md'
description: 'Create document from template'
- trigger: with-data
exec: '{project-root}/_bmad/{module-code}/tasks/{task-name}.xml'
data: '{project-root}/_bmad/_config/agent-manifest.csv'
description: 'Execute task with data file'
```
## Key Components
### Metadata
- **id**: Path with `_bmad` variable (resolved at install time)
- **name**: Agent persona name
- **title**: Professional role
- **icon**: Single emoji
- **module**: Module code (bmm, bmb, cis, custom)
### Persona (Professional Voice)
Module agents typically use **professional** communication styles:
```yaml
persona:
role: Strategic Business Analyst + Requirements Expert
identity: Senior analyst with deep expertise in market research, competitive analysis, and requirements elicitation. Specializes in translating vague needs into actionable specs.
communication_style: Systematic and probing. Connects dots others miss. Structures findings hierarchically. Uses precise unambiguous language. Ensures all stakeholder voices heard.
principles: Every business challenge has root causes waiting to be discovered. Ground findings in verifiable evidence. Articulate requirements with absolute precision.
```
**Note:** Module agents usually don't use Handlebars templating since they're not user-customized - they're professional tools with fixed personalities.
### Menu Handlers
#### Workflow Handler (Most Common)
```yaml
menu:
- trigger: create-prd
workflow: '{project-root}/_bmad/bmm/workflows/prd/workflow.yaml'
description: 'Create Product Requirements Document'
```
Invokes BMAD workflow engine to execute multi-step processes.
#### Task/Exec Handler
```yaml
menu:
- trigger: validate
exec: '{project-root}/_bmad/core/tasks/validate-workflow.xml'
description: 'Validate document structure'
```
Executes single-operation tasks.
#### Template Handler
```yaml
menu:
- trigger: create-brief
exec: '{project-root}/_bmad/core/tasks/create-doc.xml'
tmpl: '{project-root}/_bmad/bmm/templates/brief.md'
description: 'Create a Product Brief from template'
```
Combines task execution with template file.
#### Data Handler
```yaml
menu:
- trigger: team-standup
exec: '{project-root}/_bmad/bmm/tasks/standup.xml'
data: '{project-root}/_bmad/_config/agent-manifest.csv'
description: 'Run team standup with agent roster'
```
Provides data file to task.
#### Placeholder Handler
```yaml
menu:
- trigger: future-feature
workflow: 'todo'
description: 'Feature planned but not yet implemented'
```
Marks unimplemented features - compiler handles gracefully.
### Platform-Specific Menu Items
Control visibility based on platform:
```yaml
menu:
- trigger: advanced-elicitation
exec: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
description: 'Advanced elicitation techniques'
web-only: true # Only shows in web bundle
- trigger: git-operations
exec: '{project-root}/_bmad/bmm/tasks/git-flow.xml'
description: 'Git workflow operations'
ide-only: true # Only shows in IDE environments
```
## Variable System
### Core Variables
- `{project-root}` - Root directory of installed project
- `_bmad` - BMAD installation folder (usually `_bmad`)
- `{user_name}` - User's name from module config
- `{communication_language}` - Language preference
- `{output_folder}` - Document output directory
### Path Construction
**Always use variables, never hardcoded paths:**
```yaml
# GOOD
workflow: "{project-root}/_bmad/bmm/workflows/prd/workflow.yaml"
# BAD
workflow: "/Users/john/project/_bmad/bmm/workflows/prd/workflow.yaml"
# BAD
workflow: "../../../bmm/workflows/prd/workflow.yaml"
```
## What Gets Injected at Compile Time
Module agents use the same injection process as simple agents:
1. **Frontmatter** with name and description
2. **Activation block** with standard steps
3. **Menu handlers** based on usage (workflow, exec, tmpl, data)
4. **Rules section** for consistent behavior
5. **Auto-injected** \*help and \*exit commands
**Key difference:** Module agents load **module-specific config** instead of core config:
```xml
<step n="2">Load and read {project-root}/_bmad/{module}/config.yaml...</step>
```
## Reference Examples
See: `src/modules/bmm/agents/`
**analyst.agent.yaml** - Business Analyst
- Workflow orchestration for analysis phase
- Multiple workflow integrations
- Cross-module workflow access (core/workflows/party-mode)
**architect.agent.yaml** - System Architect
- Technical workflow management
- Architecture decision workflows
**pm.agent.yaml** - Product Manager
- Planning and coordination workflows
- Sprint management integration
## Module Configuration
Each module has `config.yaml` providing:
```yaml
# src/modules/{module}/config.yaml
user_name: 'User Name'
communication_language: 'English'
output_folder: '{project-root}/docs'
custom_settings: 'module-specific values'
```
Agents load this at activation for consistent behavior.
## Workflow Integration Patterns
### Sequential Workflow Execution
```yaml
menu:
- trigger: init
workflow: '{project-root}/_bmad/bmm/workflows/workflow-init/workflow.yaml'
description: 'Initialize workflow path (START HERE)'
- trigger: status
workflow: '{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml'
description: 'Check current workflow status'
- trigger: next-step
workflow: '{project-root}/_bmad/bmm/workflows/next-step/workflow.yaml'
description: 'Execute next workflow in sequence'
```
### Phase-Based Organization
```yaml
menu:
# Phase 1: Analysis
- trigger: brainstorm
workflow: '{project-root}/_bmad/bmm/workflows/1-analysis/brainstorm/workflow.yaml'
description: 'Guided brainstorming session'
- trigger: research
workflow: '{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow.yaml'
description: 'Market and technical research'
# Phase 2: Planning
- trigger: prd
workflow: '{project-root}/_bmad/bmm/workflows/2-planning/prd/workflow.yaml'
description: 'Create PRD'
- trigger: architecture
workflow: '{project-root}/_bmad/bmm/workflows/2-planning/architecture/workflow.yaml'
description: 'Design architecture'
```
### Cross-Module Access
```yaml
menu:
- trigger: party-mode
workflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.yaml'
description: 'Bring all agents together'
- trigger: brainstorm
workflow: '{project-root}/_bmad/cis/workflows/brainstorming/workflow.yaml'
description: 'Use CIS brainstorming techniques'
```
## Best Practices
1. **Organize workflows by phase** - Clear progression for users
2. **Include workflow-status** - Help users track progress
3. **Reference module config** - Consistent behavior
4. **No Handlebars templating** - Module agents are fixed personalities
5. **Professional personas** - Match module purpose
6. **Clear trigger names** - Self-documenting commands
7. **Group related workflows** - Logical menu organization
## Common Patterns
### Entry Point Agent
```yaml
menu:
- trigger: start
workflow: '{project-root}/_bmad/{module}/workflows/init/workflow.yaml'
description: 'Start new project (BEGIN HERE)'
```
### Status Tracking
```yaml
menu:
- trigger: status
workflow: '{project-root}/_bmad/{module}/workflows/status/workflow.yaml'
description: 'Check workflow progress'
```
### Team Coordination
```yaml
menu:
- trigger: party
workflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.yaml'
description: 'Multi-agent discussion'
```
## Module Agent vs Simple/Expert
| Aspect | Module Agent | Simple/Expert Agent |
| ------------- | --------------------------- | ------------------------------- |
| Location | `_bmad/{module}/agents/` | `_bmad/custom/agents/` |
| Persona | Fixed, professional | Customizable via install_config |
| Handlebars | No templating | Yes, extensive |
| Menu actions | Workflows, tasks, templates | Prompts, inline actions |
| Configuration | Module config.yaml | Core config or none |
| Purpose | Professional tooling | Personal utilities |
## Validation Checklist
- [ ] Valid YAML syntax
- [ ] Metadata includes `module: "{module-code}"`
- [ ] id uses `_bmad/{module}/agents/{name}.md`
- [ ] All workflow paths use `{project-root}/_bmad/` prefix
- [ ] No hardcoded paths
- [ ] No duplicate triggers
- [ ] Each menu item has description
- [ ] Triggers don't start with `*` (auto-added)
- [ ] Professional persona appropriate for module
- [ ] Workflow paths resolve to actual workflows (or "todo")
- [ ] File named `{agent-name}.agent.yaml`
- [ ] Located in `src/modules/{module}/agents/`

View File

@ -63,18 +63,22 @@ agent:
Another reusable prompt template
menu:
- trigger: action1
action: '#main-action'
description: 'Execute the main action'
- trigger: action2
action: '#another-action'
description: 'Execute another action'
- trigger: inline
action: 'Direct inline instruction text'
action: 'Direct inline prompt text'
description: 'Execute inline action'
- multi: "[DF] Do Foo or start [CH] Chat with expert"
triggers:
- do-foo
- input: [DF] or fuzzy match on do foo
- action: '#main-action'
- data: what is being discussed or suggested with the command, along with custom party custom agents if specified
- type: action
- expert-chat:
- input: [CH] or fuzzy match validate agent
- action: agent responds as expert based on its persona to converse
- type: action
install_config:
compile_time_only: true
description: 'Personalize your agent'
@ -202,7 +206,7 @@ The `tools/cli/lib/agent/compiler.js` automatically adds:
## Reference Example
See: `src/modules/bmb/reference/agents/simple-examples/commit-poet.agent.yaml`
See: `../../reference/agents/simple-examples/commit-poet.agent.yaml`
Features demonstrated:
@ -243,50 +247,11 @@ The installer:
5. **Use semantic XML tags** in prompt content for clarity
6. **Test all conditional paths** before distribution
## Common Patterns
### Style Variants
```yaml
communication_style: |
{{#if enthusiasm == "high"}}
Enthusiastic and energetic approach!
{{/if}}
{{#if enthusiasm == "moderate"}}
Balanced and professional demeanor.
{{/if}}
```
### Feature Toggles
```yaml
prompts:
- id: main-action
content: |
{{#if advanced_mode}}
Include advanced analysis steps...
{{/if}}
{{#unless advanced_mode}}
Basic analysis only...
{{/unless}}
```
### User Personalization
```yaml
identity: |
{{#if custom_name}}
Known as {{custom_name}} to you.
{{/if}}
```
## Validation Checklist
- [ ] Valid YAML syntax
- [ ] All metadata fields present (id, name, title, icon, type)
- [ ] Persona complete (role, identity, communication_style, principles)
- [ ] Prompts have unique IDs
- [ ] Menu triggers don't start with `*` (auto-added)
- [ ] Install config questions have defaults
- [ ] Handlebars syntax is correct
- [ ] File named `{agent-name}.agent.yaml`

View File

@ -1,23 +1,17 @@
# BMAD™ Method Core Configuration
code: bmb
name: "BMB: BMad Builder - Agent, Workflow and Module Builder"
default_selected: false # This module will not be selected by default for new installations
header: "BMad Optimized Builder (BoMB) Module Configuration"
subheader: "Configure the settings for the BoMB Factory!\nThe agent, workflow and module builder for BMAD™"
default_selected: false # This module will not be selected by default for new installations
# Variables from Core Config inserted:
## user_name
## communication_language
## document_output_language
## output_folder
## bmad_memory
custom_stand_alone_location:
prompt: "Where do custom agents and workflows get stored?"
default: "bmad-custom-src"
result: "{project-root}/{value}"
custom_module_location:
prompt: "Where do custom modules get stored?"
default: "bmad-custom-modules-src"
bmb_creations_output_folder:
prompt: "Where should BoMB generated agents, workflows and modules SOURCE be saved?"
default: "{output_folder}/bmb-creations"
result: "{project-root}/{value}"

View File

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

View File

@ -8,8 +8,9 @@ Module agents integrate with BMAD module workflows (BMM, CIS, BMB). They:
- Orchestrate multi-step workflows
- Use `_bmad` path variables
- Have fixed professional personas (no install_config)
- Reference module-specific configurations
- Can be bundled into web bundlers with the other agents
- Participate in party mode with the modules other agents
## Examples
@ -46,5 +47,3 @@ When creating module agents:
3. Rewrite persona for your domain
4. Replace menu with actual available workflows
5. Remove hypothetical workflow references
See `/src/modules/bmb/docs/agents/module-agent-architecture.md` for complete guide.

View File

@ -143,22 +143,6 @@ Changes are reviewed and approved by you before being applied.
- Full module review (option 12) is great for inherited or legacy modules
- The workflow handles path updates when you reorganize structure
## Source vs Installed Modules
**Source modules** (in src/modules/):
- Have installer files in tools/cli/installers/
- Can configure web bundles
- Are the development source of truth
**Installed modules** (in \_bmad/):
- Are deployed to target projects
- Use config.yaml for user customization
- Are compiled from source during installation
This workflow works with both, but installer options only apply to source modules.
## Example Usage
```

View File

@ -4,8 +4,7 @@ Use this checklist to validate module edits meet BMAD Core standards.
## Module Structure Validation
- [ ] Module has clear 3-letter code (bmm, bmb, cis, etc.)
- [ ] Module is in correct location (src/modules/ for source, \_bmad/ for installed)
- [ ] Module has clear abbreviation code (bmm, bmb, cis, etc.)
- [ ] agents/ directory exists
- [ ] workflows/ directory exists
- [ ] config.yaml exists in module root
@ -24,7 +23,7 @@ Use this checklist to validate module edits meet BMAD Core standards.
### Optional Fields (if used)
- [ ] custom_module_location documented
- [ ] bmb_creations_output_folder documented
- [ ] Module-specific fields documented in README
### File Quality

View File

@ -9,7 +9,7 @@
<workflow>
<step n="1" goal="Load and deeply understand the target module">
<ask>What is the path to the module you want to edit? (provide path to module directory like _bmad/bmm/ or src/modules/bmm/)</ask>
<ask>What is the path to the module source you want to edit?</ask>
<action>Load the module directory structure completely:

View File

@ -46,5 +46,3 @@ When creating module agents:
3. Rewrite persona for your domain
4. Replace menu with actual available workflows
5. Remove hypothetical workflow references
See `/src/modules/bmb/docs/agents/module-agent-architecture.md` for complete guide.

View File

@ -9,7 +9,7 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
thisStepFile: '{workflow_path}/steps/step-02-discover.md'
nextStepFile: '{workflow_path}/steps/step-03-persona.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/agent-purpose-{project_name}.md'
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
agentTypesGuide: '{project-root}/_bmad/bmb/docs/agents/understanding-agent-types.md'
simpleExamples: '{workflow_path}/data/reference/agents/simple-examples/'
expertExamples: '{workflow_path}/data/reference/agents/expert-examples/'
@ -112,10 +112,6 @@ As purpose becomes clear, analyze and recommend appropriate agent type.
- Choose when: Needs to remember across sessions, personal knowledge base, learning over time
- CAN have personal workflows in sidecar if critical_actions loads workflow engine
- Example: Personal research assistant, domain expert advisor, learning companion
- **Module Agent** - Workflow orchestration, team integration, shared infrastructure
- Choose when: Coordinates workflows, works with other agents, professional operations
- CAN invoke module workflows and coordinate with team agents
- Example: Project coordinator, workflow manager, team orchestrator
**Type Selection Process:**
@ -162,7 +158,7 @@ As purpose becomes clear, analyze and recommend appropriate agent type.
[Any relevant insights from previous brainstorming session]
```
Save this content to `{outputFile}` for reference in subsequent steps.
Save this content to {agentPlan} for reference in subsequent steps.
### 6. Present MENU OPTIONS
@ -172,7 +168,7 @@ Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Cont
- IF A: Execute {advancedElicitationTask}
- IF P: Execute {partyModeWorkflow}
- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF C: Save content to {agentPlan}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options)
#### EXECUTION RULES:

View File

@ -9,7 +9,7 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
thisStepFile: '{workflow_path}/steps/step-03-persona.md'
nextStepFile: '{workflow_path}/steps/step-04-commands.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/agent-persona-{project_name}.md'
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
communicationPresets: '{workflow_path}/data/communication-presets.csv'
agentMenuPatterns: '{project-root}/_bmad/bmb/docs/agents/agent-menu-patterns.md'
@ -211,7 +211,7 @@ Ask: "How should this agent guide users - with adaptive conversation (intent-bas
[Intent-based or Prescriptive with rationale]
```
Save this content to `{outputFile}` for reference in subsequent steps.
Append this content to {agentPlan} for reference in subsequent steps.
### 8. Present MENU OPTIONS
@ -221,7 +221,7 @@ Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Cont
- IF A: Execute {advancedElicitationTask}
- IF P: Execute {partyModeWorkflow}
- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF C: Save content to {agentPlan}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#8-present-menu-options)
#### EXECUTION RULES:

View File

@ -9,7 +9,7 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
thisStepFile: '{workflow_path}/steps/step-04-commands.md'
nextStepFile: '{workflow_path}/steps/step-05-name.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/agent-commands-{project_name}.md'
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
agentMenuPatterns: '{project-root}/_bmad/bmb/docs/agents/agent-menu-patterns.md'
simpleArchitecture: '{project-root}/_bmad/bmb/docs/agents/simple-agent-architecture.md'
expertArchitecture: '{project-root}/_bmad/bmb/docs/agents/expert-agent-architecture.md'
@ -187,7 +187,7 @@ If user seems engaged, explore special features:
[Architecture-specific considerations and technical requirements]
```
Save this content to `{outputFile}` for reference in subsequent steps.
Save this content to {agentPlan} for reference in subsequent steps.
### 7. Present MENU OPTIONS
@ -197,7 +197,7 @@ Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Cont
- IF A: Execute {advancedElicitationTask}
- IF P: Execute {partyModeWorkflow}
- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF C: Save content to {agentPlan}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options)
#### EXECUTION RULES:

View File

@ -9,7 +9,8 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
thisStepFile: '{workflow_path}/steps/step-05-name.md'
nextStepFile: '{workflow_path}/steps/step-06-build.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/agent-identity-{project_name}.md'
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
# Template References
identityTemplate: '{workflow_path}/templates/agent-identity.md'
@ -182,7 +183,7 @@ Once name is selected, confirm the complete identity package:
[User confirmation that identity package feels right]
```
Save this content to `{outputFile}` for reference in subsequent steps.
Save this content to {agentPlan} for reference in subsequent steps.
### 6. Present MENU OPTIONS
@ -192,7 +193,7 @@ Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Cont
- IF A: Execute {advancedElicitationTask}
- IF P: Execute {partyModeWorkflow}
- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF C: Save content to {agentPlan}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options)
#### EXECUTION RULES:

View File

@ -9,12 +9,12 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
thisStepFile: '{workflow_path}/steps/step-06-build.md'
nextStepFile: '{workflow_path}/steps/step-07-validate.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/agent-yaml-{project_name}.md'
moduleOutputFile: '{project-root}/_bmad/{target_module}/agents/{agent_filename}.agent.yaml'
standaloneOutputFile: '{workflow_path}/data/{agent_filename}/{agent_filename}.agent.yaml'
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
agentBuildOutput: '{bmb_creations_output_folder}/{agent-name}'
# Template References
completeAgentTemplate: '{workflow_path}/templates/agent-complete-{agent_type}.md'
simpleAgentTemplate: '{workflow_path}/templates/simple-agent.template.md'
expertAgentTemplate: '{workflow_path}/templates/expert-agent.template.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
@ -25,7 +25,7 @@ partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
## STEP GOAL:
Generate the complete YAML agent file incorporating all discovered elements: purpose, persona, capabilities, name, and identity while maintaining the collaborative creation journey.
Generate the complete YAML agent folder, yaml file and sidecar content to the specification defined in {agentBuildOutput} completely.
## MANDATORY EXECUTION RULES (READ FIRST):
@ -46,10 +46,10 @@ Generate the complete YAML agent file incorporating all discovered elements: pur
### Step-Specific Rules:
- 🎯 Focus only on generating complete YAML structure based on discovered elements
- 🚫 FORBIDDEN to duplicate auto-injected features (help, exit, activation handlers)
- 🎯 Focus only on generating complete YAML and sidecar content structure based on discovered elements
- 🚫 FORBIDDEN to duplicate auto-injected features (help and exit menu items, activation handler instructions)
- 💬 Approach: Present the journey of collaborative creation while building technical structure
- 📋 Generate YAML that accurately reflects all discoveries from previous steps
- 📋 Generate YAML and sidecar files that accurately reflects all discoveries from previous steps
## EXECUTION PROTOCOLS:
@ -85,19 +85,15 @@ Present this to the user:
Based on determined agent type, load appropriate template:
- Simple Agent: `agent-complete-simple.md`
- Expert Agent: `agent-complete-expert.md`
- Module Agent: `agent-complete-module.md`
- If (agent will have memories and optionally its own knowledge, separate prompt files, or data in separate files)
- Utilize {expertAgentTemplate} to generate the agent output file {agentBuildOutput}/{agent-name}.agent.yaml
- Create the Side-cre folder to hold the optional sidecar files if needed from plan in following steps at {agentBuildOutput}/{agent-name}/{agent-name}-sidecar
- ELSE:
- utilize {simpleAgentTemplate} to generate the agent output file {agentBuildOutput}/{agent-name}.agent.yaml
### 3. YAML Structure Generation
### 4. Generate Complete YAML and sidecar content if applicable
Explain the core structure to user:
"I'll now generate the complete YAML that incorporates everything we've discovered. This will include your agent's metadata, persona, capabilities, and configuration."
### 4. Generate Complete YAML
Create the complete YAML incorporating all discovered elements:
Create the complete YAML incorporating all discovered elements from the plan:
**Core Structure:**
@ -140,41 +136,7 @@ Ensure proper implementation based on agent type:
- Memory integration points
- Personal workflow capabilities
**Module Agent:**
- Workflow orchestration capabilities
- Team integration references
- Cross-agent coordination
### 6. Document Complete YAML
#### Content to Append (if applicable):
```markdown
## Complete Agent YAML
### Agent Type
[Simple/Expert/Module as determined]
### Generated Configuration
[Complete YAML structure with all discovered elements]
### Key Features Integrated
- Purpose and role from discovery phase
- Complete persona with four-field system
- All capabilities and commands developed
- Agent name and identity established
- Type-specific optimizations applied
### Output Configuration
[Proper file paths and configuration based on agent type]
```
Save this content to `{outputFile}` for reference.
Ensure all files generated are complete, and nothing from the plan has not been skipped, and then give a creational summary of what was done to the user in chat.
### 7. Present MENU OPTIONS
@ -184,7 +146,7 @@ Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Cont
- IF A: Execute {advancedElicitationTask}
- IF P: Execute {partyModeWorkflow}
- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF C: Save content to {agentBuildOutput}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options)
#### EXECUTION RULES:

View File

@ -7,9 +7,9 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
# File References
thisStepFile: '{workflow_path}/steps/step-07-validate.md'
nextStepFile: '{workflow_path}/steps/step-08-setup.md'
nextStepFile: '{workflow_path}/steps/step-08-celebrate.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/agent-validation-{project_name}.md'
outputFile: '{bmb_creations_output_folder}/agent-validation-{project_name}.md'
agentValidationChecklist: '{project-root}/_bmad/bmb/workflows/create-agent/agent-validation-checklist.md'
agentFile: '{{output_file_path}}'

View File

@ -10,10 +10,6 @@ thisStepFile: '{workflow_path}/steps/step-11-celebrate.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/agent-completion-{project_name}.md'
agentFile: '{{output_file_path}}'
compiledAgentFile: '{{compiled_agent_path}}'
# Template References
completionTemplate: '{workflow_path}/templates/completion-summary.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'

View File

@ -1,179 +0,0 @@
---
name: 'step-08-setup'
description: 'Set up the agent workspace with sidecar files for expert agents'
# Path Definitions
workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
# File References
thisStepFile: '{workflow_path}/steps/step-08-setup.md'
nextStepFile: '{workflow_path}/steps/step-09-customize.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/agent-setup-{project_name}.md'
agentSidecarFolder: '{{standalone_output_folder}}/{{agent_filename}}-sidecar'
# Template References
sidecarTemplate: '{workflow_path}/templates/expert-sidecar-structure.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 8: Expert Agent Workspace Setup
## STEP GOAL:
Guide user through setting up the Expert agent's personal workspace with sidecar files for persistent memory, knowledge, and session management, or skip appropriately for Simple/Module agents.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
### Role Reinforcement:
- ✅ You are a workspace architect who helps set up agent environments
- ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
- ✅ We engage in collaborative dialogue, not command-response
- ✅ You bring workspace setup expertise, user brings their agent vision, together we create the optimal agent environment
- ✅ Maintain collaborative supportive tone throughout
### Step-Specific Rules:
- 🎯 Focus only on Expert agent workspace setup (skip for Simple/Module agents)
- 🚫 FORBIDDEN to create sidecar files for Simple or Module agents
- 💬 Approach: Frame setup as preparing an agent's "office" or "workspace"
- 📋 Execute conditional setup based on agent type
## EXECUTION PROTOCOLS:
- 🎯 Only execute sidecar setup for Expert agents (auto-proceed for Simple/Module)
- 💾 Create complete sidecar file structure when needed
- 📖 Use proper templates for Expert agent configuration
- 🚫 FORBIDDEN to create unnecessary files or configurations
## CONTEXT BOUNDARIES:
- Available context: Validated agent configuration from previous step
- Focus: Expert agent workspace setup or appropriate skip for other agent types
- Limits: No modifications to core agent files, only workspace setup
- Dependencies: Agent type determination from earlier steps
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Agent Type Check and Introduction
Check agent type and present appropriate introduction:
**For Expert Agents:**
"Now let's set up {{agent_name}}'s personal workspace! Since this is an Expert agent, it needs a special office with files for memory, knowledge, and learning over time."
**For Simple/Module Agents:**
"Great news! {{agent_name}} doesn't need a separate workspace setup. Simple and Module agents are self-contained and ready to go. Let's continue to the next step."
### 2. Expert Agent Workspace Setup (only for Expert agents)
**Workspace Preparation:**
"I'm now creating {{agent_name}}'s personal workspace with everything it needs to remember conversations, build knowledge, and grow more helpful over time."
**Sidecar Structure Creation:**
- Create main sidecar folder: `{agentSidecarFolder}`
- Set up knowledge base files
- Create session management files
- Establish learning and memory structures
**Workspace Elements Explained:**
"Here's what I'm setting up for {{agent_name}}:
- **Memory files** - To remember important conversations and user preferences
- **Knowledge base** - To build expertise in its domain
- **Session logs** - To track progress and maintain continuity
- **Personal workflows** - For specialized capabilities unique to this agent"
### 3. User Confirmation and Questions
**Workspace Confirmation:**
"{{agent_name}}'s workspace is now ready! This personal office will help it become even more helpful as it works with you over time."
**Answer Questions:**
"Is there anything specific you'd like to know about how {{agent_name}} will use its workspace to remember and learn?"
### 4. Document Workspace Setup
#### Content to Append (if applicable):
```markdown
## Agent Workspace Setup
### Agent Type
[Expert/Simple/Module]
### Workspace Configuration
[For Expert agents: Complete sidecar structure created]
### Setup Elements
- Memory and session management files
- Knowledge base structure
- Personal workflow capabilities
- Learning and adaptation framework
### Location
[Path to agent workspace or note of self-contained nature]
```
Save this content to `{outputFile}` for reference.
### 5. Present MENU OPTIONS
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
#### Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}
- IF P: Execute {partyModeWorkflow}
- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution, return to this menu
- User can chat or ask questions - always respond and then end with display again of the menu options
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [workspace setup completed for Expert agents or appropriately skipped for Simple/Module agents], will you then load and read fully `{nextStepFile}` to execute and begin customization phase.
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- Expert agents receive complete sidecar workspace setup
- Simple/Module agents appropriately skip workspace setup
- User understands agent workspace requirements
- All necessary files and structures created for Expert agents
- User questions answered and workspace confirmed ready
- Content properly saved to output file
- Menu presented and user input handled correctly
### ❌ SYSTEM FAILURE:
- Creating sidecar files for Simple or Module agents
- Not creating complete workspace for Expert agents
- Failing to explain workspace purpose and value
- Creating unnecessary files or configurations
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.

View File

@ -1,197 +0,0 @@
---
name: 'step-09-customize'
description: 'Optional personalization with customization file creation'
# Path Definitions
workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
# File References
thisStepFile: '{workflow_path}/steps/step-09-customize.md'
nextStepFile: '{workflow_path}/steps/step-10-build-tools.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/agent-customization-{project_name}.md'
configOutputFile: '{project-root}/_bmad/_config/agents/{target_module}-{agent_filename}.customize.yaml'
# Template References
customizationTemplate: '{workflow_path}/templates/agent-customization.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 9: Optional Customization File
## STEP GOAL:
Offer optional customization file creation for easy personality tweaking and command modification without touching core agent files, providing experimental flexibility for agent refinement.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
### Role Reinforcement:
- ✅ You are a customization specialist who helps users refine agent behavior
- ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
- ✅ We engage in collaborative dialogue, not command-response
- ✅ You bring customization expertise, user brings their refinement preferences, together we create flexible agent configuration options
- ✅ Maintain collaborative experimental tone throughout
### Step-Specific Rules:
- 🎯 Focus only on offering optional customization file creation
- 🚫 FORBIDDEN to make customization mandatory or required
- 💬 Approach: Emphasize experimental and flexible nature of customizations
- 📋 Present customization as optional enhancement for future tweaking
## EXECUTION PROTOCOLS:
- 🎯 Present customization as optional enhancement with clear benefits
- 💾 Create easy-to-use customization template when requested
- 📖 Explain customization file purpose and usage clearly
- 🚫 FORBIDDEN to proceed without clear user choice about customization
## CONTEXT BOUNDARIES:
- Available context: Complete agent configuration from previous steps
- Focus: Optional customization file creation for future agent tweaking
- Limits: No modifications to core agent files, only customization overlay
- Dependencies: Complete agent ready for optional customization
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Customization Introduction
Present this to the user:
"Would you like to create a customization file for {{agent_name}}? This is completely optional, but it gives you an easy way to tweak personality and commands later without touching the core agent files."
**Customization Benefits:**
- Easy personality adjustments without editing core files
- Command modifications without risking agent stability
- Experimental tweaks you can turn on/off
- Safe space to try new approaches
### 2. Customization Options Explanation
**What You Can Customize:**
"Through the customization file, you'll be able to:
- Fine-tune communication style and personality details
- Add or modify commands without affecting core structure
- Experiment with different approaches or settings
- Make quick adjustments as you learn how {{agent_name}} works best for you"
**How It Works:**
"The customization file acts like a settings overlay - it lets you override specific parts of {{agent_name}}'s configuration while keeping the core agent intact and stable."
### 3. User Choice Handling
**Option A: Create Customization File**
If user wants customization:
"Great! I'll create a customization file template with some common tweak options. You can fill in as much or as little as you want now, and modify it anytime later."
**Option B: Skip Customization**
If user declines:
"No problem! {{agent_name}} is ready to use as-is. You can always create a customization file later if you find you want to make adjustments."
### 4. Customization File Creation (if chosen)
When user chooses customization:
**Template Creation:**
"I'm creating your customization file with easy-to-use sections for:
- **Personality tweaks** - Adjust communication style or specific principles
- **Command modifications** - Add new commands or modify existing ones
- **Experimental features** - Try new approaches safely
- **Quick settings** - Common adjustments people like to make"
**File Location:**
"Your customization file will be saved at: `{configOutputFile}`"
### 5. Customization Guidance
**Getting Started:**
"The template includes comments explaining each section. You can start with just one or two adjustments and see how they work, then expand from there."
**Safety First:**
"Remember, the customization file is completely safe - you can't break {{agent_name}} by trying things here. If something doesn't work well, just remove or modify that section."
### 6. Document Customization Setup
#### Content to Append (if applicable):
```markdown
## Agent Customization File
### Customization Choice
[User chose to create/skip customization file]
### Customization Purpose
[If created: Explanation of customization capabilities]
### File Location
[Path to customization file or note of skip]
### Usage Guidance
[Instructions for using customization file]
```
Save this content to `{outputFile}` for reference.
### 7. Present MENU OPTIONS
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
#### Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}
- IF P: Execute {partyModeWorkflow}
- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options)
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution, return to this menu
- User can chat or ask questions - always respond and then end with display again of the menu options
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [customization decision made and file created if requested], will you then load and read fully `{nextStepFile}` to execute and begin build tools handling.
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- User understands customization file purpose and benefits
- Customization decision made clearly (create or skip)
- Customization file created with proper template when requested
- User guidance provided for using customization effectively
- Experimental and flexible nature emphasized appropriately
- Content properly saved to output file
- Menu presented and user input handled correctly
### ❌ SYSTEM FAILURE:
- Making customization mandatory or pressuring user
- Creating customization file without clear user request
- Not explaining customization benefits and usage clearly
- Overwhelming user with excessive customization options
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.

View File

@ -1,180 +0,0 @@
---
name: 'step-10-build-tools'
description: 'Handle build tools availability and generate compiled agent if needed'
# Path Definitions
workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
# File References
thisStepFile: '{workflow_path}/steps/step-10-build-tools.md'
nextStepFile: '{workflow_path}/steps/step-11-celebrate.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/agent-build-{project_name}.md'
agentFile: '{{output_file_path}}'
compiledAgentFile: '{{output_folder}}/{{agent_filename}}.md'
# Template References
buildHandlingTemplate: '{workflow_path}/templates/build-results.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 10: Build Tools Handling
## STEP GOAL:
Check for BMAD build tools availability and handle agent compilation appropriately based on project context, ensuring agent is ready for activation.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
### Role Reinforcement:
- ✅ You are a build coordinator who manages agent compilation and deployment readiness
- ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
- ✅ We engage in collaborative dialogue, not command-response
- ✅ You bring build process expertise, user brings their agent vision, together we ensure agent is ready for activation
- ✅ Maintain collaborative technical tone throughout
### Step-Specific Rules:
- 🎯 Focus only on build tools detection and agent compilation handling
- 🚫 FORBIDDEN to proceed without checking build tools availability
- 💬 Approach: Explain compilation process clearly and handle different scenarios gracefully
- 📋 Ensure agent is ready for activation regardless of build tools availability
## EXECUTION PROTOCOLS:
- 🎯 Detect build tools availability automatically
- 💾 Handle agent compilation based on tools availability
- 📖 Explain compilation process and next steps clearly
- 🚫 FORBIDDEN to assume build tools are available without checking
## CONTEXT BOUNDARIES:
- Available context: Complete agent configuration and optional customization
- Focus: Build tools detection and agent compilation handling
- Limits: No agent modifications, only compilation and deployment preparation
- Dependencies: Complete agent files ready for compilation
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Build Tools Detection
Check for BMAD build tools availability and present status:
"I'm checking for BMAD build tools to see if we can compile {{agent_name}} for immediate activation..."
**Detection Results:**
[Check for build tools availability and present appropriate status]
### 2. Build Tools Handling
**Scenario A: Build Tools Available**
"Great! BMAD build tools are available. I can compile {{agent_name}} now for immediate activation."
**Scenario B: Build Tools Not Available**
"No problem! BMAD build tools aren't available right now, but {{agent_name}} is still ready to use. The agent files are complete and will work perfectly when build tools are available."
### 3. Agent Compilation (when possible)
**Compilation Process:**
"When build tools are available, I'll:
- Process all agent configuration files
- Generate optimized runtime version
- Create activation-ready deployment package
- Validate final compilation results"
**Compilation Results:**
[If compilation occurs: "✅ {{agent_name}} compiled successfully and ready for activation!"]
### 4. Deployment Readiness Confirmation
**Always Ready:**
"Good news! {{agent_name}} is ready for deployment:
- **With build tools:** Compiled and optimized for immediate activation
- **Without build tools:** Complete agent files ready, will compile when tools become available
**Next Steps:**
"Regardless of build tools availability, your agent is complete and ready to help users with {{agent_purpose}}."
### 5. Build Status Documentation
#### Content to Append (if applicable):
```markdown
## Agent Build Status
### Build Tools Detection
[Status of build tools availability]
### Compilation Results
[If compiled: Success details, if not: Ready for future compilation]
### Deployment Readiness
Agent is ready for activation regardless of build tools status
### File Locations
[Paths to agent files and compiled version if created]
```
Save this content to `{outputFile}` for reference.
### 6. Present MENU OPTIONS
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
#### Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}
- IF P: Execute {partyModeWorkflow}
- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options)
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution, return to this menu
- User can chat or ask questions - always respond and then end with display again of the menu options
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [build tools handled appropriately with compilation if available], will you then load and read fully `{nextStepFile}` to execute and begin celebration and final guidance.
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- Build tools availability detected and confirmed
- Agent compilation completed when build tools available
- Agent readiness confirmed regardless of build tools status
- Clear explanation of deployment readiness provided
- User understands next steps for agent activation
- Content properly saved to output file
- Menu presented and user input handled correctly
### ❌ SYSTEM FAILURE:
- Not checking build tools availability before proceeding
- Failing to compile agent when build tools are available
- Not confirming agent readiness for deployment
- Confusing user about agent availability based on build tools
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.

View File

@ -1,21 +0,0 @@
# Agent Command Structure
## Core Capabilities
{{developed_capabilities}}
## Menu Structure
{{command_structure}}
## Workflow Integration
{{workflow_integration_plan}}
## Advanced Features
{{advanced_features}}
---
_Commands defined on {{date}}_

View File

@ -1,25 +0,0 @@
# Agent Persona Development
## Role
{{discovered_role}}
## Identity
{{developed_identity}}
## Communication Style
{{selected_communication_style}}
## Principles
{{articulated_principles}}
## Interaction Approach
{{interaction_approach}}
---
_Persona finalized on {{date}}_

View File

@ -0,0 +1,3 @@
---
stepsCompleted: []
---

View File

@ -1,23 +0,0 @@
# Agent Purpose and Type Discovery
## Agent Purpose
- **Core Purpose**: {{user_stated_purpose}}
- **Target Users**: {{identified_users}}
- **Key Problems Solved**: {{problems_to_solve}}
- **Unique Value**: {{special_capabilities}}
## Agent Type
- **Selected Type**: {{chosen_agent_type}}
- **Architecture Rationale**: {{type_reasoning}}
- **Key Benefits**: {{type_benefits}}
## Output Configuration
- **Module Path**: {{module_output_file}}
- **Standalone Path**: {{standalone_output_file}}
---
_Generated on {{date}}_

View File

@ -0,0 +1,372 @@
# Expert Agent Architecture
Domain-specific agents with persistent memory, sidecar files, and restricted access patterns.
## When to Use
- Personal assistants (journal keeper, diary companion)
- Specialized domain experts (legal advisor, medical reference)
- Agents that need to remember past interactions
- Agents with restricted file system access (privacy/security)
- Long-term relationship agents that learn about users
## File Structure
```
{agent-name}/
├── {agent-name}.agent.yaml # Main agent definition
└── {agent-name}-sidecar/ # Supporting files
├── instructions.md # Private directives
├── memories.md # Persistent memory
├── knowledge/ # Domain-specific resources
│ └── README.md
└── [custom files] # Agent-specific resources
```
## YAML Structure
```yaml
agent:
metadata:
name: 'Persona Name'
title: 'Agent Title'
icon: 'emoji'
type: 'expert'
persona:
role: 'Domain Expert with specialized capability'
identity: |
Background and expertise in first-person voice.
{{#if user_preference}}
Customization based on install_config.
{{/if}}
communication_style: |
{{#if tone_style == "gentle"}}
Gentle and supportive communication...
{{/if}}
{{#if tone_style == "direct"}}
Direct and efficient communication...
{{/if}}
I reference past conversations naturally.
principles:
- Core belief about the domain
- How I handle user information
- My approach to memory and learning
critical_actions:
- 'Load COMPLETE file ./{agent-name}-sidecar/memories.md and remember all past insights'
- 'Load COMPLETE file ./{agent-name}-sidecar/instructions.md and follow ALL protocols'
- 'ONLY read/write files in ./{agent-name}-sidecar/ - this is our private space'
- 'Address user as {{greeting_name}}'
- 'Track patterns, themes, and important moments'
- 'Reference past interactions naturally to show continuity'
prompts:
- id: main-function
content: |
<instructions>
Guide user through the primary function.
{{#if tone_style == "gentle"}}
Use gentle, supportive approach.
{{/if}}
</instructions>
<process>
1. Understand context
2. Provide guidance
3. Record insights
</process>
- id: memory-recall
content: |
<instructions>
Access and share relevant memories.
</instructions>
Reference stored information naturally.
menu:
- trigger: action1
action: '#main-function'
description: 'Primary agent function'
- trigger: remember
action: 'Update ./{agent-name}-sidecar/memories.md with session insights'
description: 'Save what we discussed today'
- trigger: insight
action: 'Document breakthrough in ./{agent-name}-sidecar/breakthroughs.md'
description: 'Record a significant insight'
- multi: "[DF] Do Foo or start [CH] Chat with expert"
triggers:
- do-foo
- input: [DF] or fuzzy match on do foo
- action: '#main-action'
- data: what is being discussed or suggested with the command, along with custom party custom agents if specified
- type: action
- expert-chat:
- input: [CH] or fuzzy match validate agent
- action: agent responds as expert based on its persona to converse
- type: action
install_config:
compile_time_only: true
description: 'Personalize your expert agent'
questions:
- var: greeting_name
prompt: 'What should the agent call you?'
type: text
default: 'friend'
- var: tone_style
prompt: 'Preferred communication tone?'
type: choice
options:
- label: 'Gentle - Supportive and nurturing'
value: 'gentle'
- label: 'Direct - Clear and efficient'
value: 'direct'
default: 'gentle'
- var: user_preference
prompt: 'Enable personalized features?'
type: boolean
default: true
```
## Key Components
### Sidecar Files (CRITICAL)
Expert agents use companion files for persistence and domain knowledge:
**memories.md** - Persistent user context
```markdown
# Agent Memory Bank
## User Preferences
<!-- Learned from interactions -->
## Session History
<!-- Important moments and insights -->
## Personal Notes
<!-- Agent observations -->
```
**instructions.md** - Private directives
```markdown
# Agent Private Instructions
## Core Directives
- Maintain character consistency
- Domain boundaries: {specific domain}
- Access restrictions: Only sidecar folder
## Special Rules
<!-- Agent-specific protocols -->
```
**knowledge/** - Domain resources
```markdown
# Agent Knowledge Base
Add domain-specific documentation here.
```
### Critical Actions
**MANDATORY for expert agents** - These load sidecar files at activation:
```yaml
critical_actions:
- 'Load COMPLETE file ./{sidecar}/memories.md and remember all past insights'
- 'Load COMPLETE file ./{sidecar}/instructions.md and follow ALL protocols'
- 'ONLY read/write files in ./{sidecar}/ - this is our private space'
```
**Key patterns:**
- **COMPLETE file loading** - Forces full file read, not partial
- **Domain restrictions** - Limits file access for privacy/security
- **Memory integration** - Past context becomes part of current session
- **Protocol adherence** - Ensures consistent behavior
### {bmad_memory} Variable
Special variable resolved during installation:
- Points to the agent's installation directory
- Used to reference sidecar files
- Example: `_bmad/custom/agents/journal-keeper/`
## What Gets Injected at Compile Time
Same as simple agents, PLUS:
1. **Critical actions become numbered activation steps**
```xml
<step n="4">Load COMPLETE file ./memories.md...</step>
<step n="5">Load COMPLETE file ./instructions.md...</step>
<step n="6">ONLY read/write files in ./...</step>
```
2. **Sidecar files copied during installation**
- Entire sidecar folder structure preserved
- Relative paths maintained
- Files ready for agent use
## Reference Example
See: `bmb/reference/agents/expert-examples/journal-keeper/`
Features demonstrated:
- Complete sidecar structure (memories, instructions, breakthroughs)
- Critical actions for loading persistent context
- Domain restrictions for privacy
- Pattern recognition and memory recall
- Handlebars-based personalization
- Menu actions that update sidecar files
## Installation
```bash
# Copy entire folder to your project
cp -r /path/to/journal-keeper/ _bmad/custom/agents/
# Install with personalization
bmad agent-install
```
The installer:
1. Detects expert agent (folder with .agent.yaml)
2. Prompts for personalization
3. Compiles agent YAML to XML-in-markdown
4. **Copies sidecar files to installation target**
5. Creates IDE slash commands
6. Saves source for reinstallation
## Memory Patterns
### Accumulative Memory
```yaml
menu:
- trigger: save
action: "Update ./sidecar/memories.md with today's session insights"
description: 'Save session to memory'
```
### Reference Memory
```yaml
prompts:
- id: recall
content: |
<instructions>
Reference memories.md naturally:
"Last week you mentioned..." or "I notice a pattern..."
</instructions>
```
### Structured Insights
```yaml
menu:
- trigger: insight
action: 'Document in ./sidecar/breakthroughs.md with date, context, significance'
description: 'Record meaningful insight'
```
## Domain Restriction Patterns
### Single Folder Access
```yaml
critical_actions:
- 'ONLY read/write files in ./sidecar/ - NO OTHER FOLDERS'
```
### User Space Access
```yaml
critical_actions:
- 'ONLY access files in {user-folder}/journals/ - private space'
```
### Read-Only Access
```yaml
critical_actions:
- 'Load knowledge from ./knowledge/ but NEVER modify'
- 'Write ONLY to ./sessions/'
```
## Best Practices
1. **Load sidecar files in critical_actions** - Must be explicit and MANDATORY
2. **Enforce domain restrictions** - Clear boundaries prevent scope creep
3. **Use {bmad_memory} paths** - Portable across installations
4. **Design for memory growth** - Structure sidecar files for accumulation
5. **Reference past naturally** - Don't dump memory, weave it into conversation
6. **Separate concerns** - Memories, instructions, knowledge in distinct files
7. **Include privacy features** - Users trust expert agents with personal data
## Common Patterns
### Session Continuity
```yaml
communication_style: |
I reference past conversations naturally:
"Last time we discussed..." or "I've noticed over the weeks..."
```
### Pattern Recognition
```yaml
critical_actions:
- 'Track mood patterns, recurring themes, and breakthrough moments'
- 'Cross-reference current session with historical patterns'
```
### Adaptive Responses
```yaml
identity: |
I learn your preferences and adapt my approach over time.
{{#if track_preferences}}
I maintain notes about what works best for you.
{{/if}}
```
## Validation Checklist
- [ ] Valid YAML syntax
- [ ] Metadata includes `type: "expert"`
- [ ] critical_actions loads sidecar files explicitly
- [ ] critical_actions enforces domain restrictions
- [ ] Sidecar folder structure created and populated
- [ ] memories.md has clear section structure
- [ ] instructions.md contains core directives
- [ ] Menu actions reference {bmad_memory} correctly
- [ ] File paths use {bmad_memory} variable
- [ ] Install config personalizes sidecar references
- [ ] Agent folder named consistently: `{agent-name}/`
- [ ] YAML file named: `{agent-name}.agent.yaml`
- [ ] Sidecar folder named: `{agent-name}-sidecar/`

View File

@ -0,0 +1,257 @@
# Simple Agent Architecture
Self-contained agents with prompts, menus, and optional install-time customization.
## When to Use
- Single-purpose utilities (commit message generator, code formatter)
- Self-contained logic with no external dependencies
- Agents that benefit from user customization (style, tone, preferences)
- Quick-to-build standalone helpers
## YAML Structure
```yaml
agent:
metadata:
id: _bmad/agents/{agent-name}/{agent-name}.md
name: 'Persona Name'
title: 'Agent Title'
icon: 'emoji'
type: simple
persona:
role: |
First-person description of primary function (1-2 sentences)
identity: |
Background, experience, specializations in first-person (2-5 sentences)
{{#if custom_variable}}
Conditional identity text based on install_config
{{/if}}
communication_style: |
{{#if style_choice == "professional"}}
Professional and systematic approach...
{{/if}}
{{#if style_choice == "casual"}}
Friendly and approachable tone...
{{/if}}
principles:
- Core belief or methodology
- Another guiding principle
- Values that shape decisions
prompts:
- id: main-action
content: |
<instructions>
What this prompt does
</instructions>
<process>
1. Step one
{{#if detailed_mode}}
2. Additional detailed step
{{/if}}
3. Final step
</process>
- id: another-action
content: |
Another reusable prompt template
menu:
- trigger: inline
action: 'Direct inline prompt text'
description: 'Execute inline action'
- multi: "[DF] Do Foo or start [CH] Chat with expert"
triggers:
- do-foo
- input: [DF] or fuzzy match on do foo
- action: '#main-action'
- data: what is being discussed or suggested with the command, along with custom party custom agents if specified
- type: action
- expert-chat:
- input: [CH] or fuzzy match validate agent
- action: agent responds as expert based on its persona to converse
- type: action
install_config:
compile_time_only: true
description: 'Personalize your agent'
questions:
- var: style_choice
prompt: 'Preferred communication style?'
type: choice
options:
- label: 'Professional'
value: 'professional'
- label: 'Casual'
value: 'casual'
default: 'professional'
- var: detailed_mode
prompt: 'Enable detailed explanations?'
type: boolean
default: true
- var: custom_variable
prompt: 'Your custom text'
type: text
default: ''
```
## Key Components
### Metadata
- **id**: Final compiled path (`_bmad/agents/{name}/{name}.md` for standalone)
- **name**: Agent's persona name displayed to users
- **title**: Professional role/function
- **icon**: Single emoji for visual identification
- **type**: `simple` - identifies agent category
### Persona (First-Person Voice)
- **role**: Primary expertise in 1-2 sentences
- **identity**: Background and specializations (2-5 sentences)
- **communication_style**: HOW the agent interacts, including conditional variations
- **principles**: Array of core beliefs (start with action verbs)
### Prompts with IDs
Reusable prompt templates referenced by `#id`:
```yaml
prompts:
- id: analyze-code
content: |
<instructions>
Analyze the provided code for patterns
</instructions>
```
Menu items reference these:
```yaml
menu:
- trigger: analyze
action: '#analyze-code'
description: 'Analyze code patterns'
```
### Menu Actions
Two forms of action handlers:
1. **Prompt Reference**: `action: "#prompt-id"` - Executes prompt content
2. **Inline Instruction**: `action: "Direct text instruction"` - Executes text directly
### Install Config (Compile-Time Customization)
Questions asked during `bmad agent-install`:
**Question Types:**
- `choice` - Multiple choice selection
- `boolean` - Yes/no toggle
- `text` - Free-form text input
**Variables become available in Handlebars:**
```yaml
{{#if variable_name}}
Content when true
{{/if}}
{{#if variable_name == "value"}}
Content when equals value
{{/if}}
{{#unless variable_name}}
Content when false
{{/unless}}
```
## What Gets Injected at Compile Time
The `tools/cli/lib/agent/compiler.js` automatically adds:
1. **YAML Frontmatter**
```yaml
---
name: 'agent name'
description: 'Agent Title'
---
```
2. **Activation Block**
- Load persona step
- Load core config for {user_name}, {communication_language}
- Agent-specific critical_actions as numbered steps
- Menu display and input handling
- Menu handlers (action/workflow/exec/tmpl) based on usage
- Rules section
3. **Auto-Injected Menu Items**
- `*help` always first
- `*exit` always last
4. **Trigger Prefixing**
- Triggers without `*` get it added automatically
## Reference Example
See: `../../reference/agents/simple-examples/commit-poet.agent.yaml`
Features demonstrated:
- Handlebars conditionals for style variations
- Multiple prompt templates with semantic XML tags
- Install config with choice, boolean, and text questions
- Menu items using both `#id` references and inline actions
## Installation
```bash
# Copy to your project
cp /path/to/commit-poet.agent.yaml _bmad/custom/agents/
# Create custom.yaml and install
echo "code: my-agent
name: My Agent
default_selected: true" > custom.yaml
npx bmad-method install
# or: bmad install
```
The installer:
1. Prompts for personalization (name, preferences)
2. Processes Handlebars templates with your answers
3. Compiles YAML to XML-in-markdown
4. Creates IDE slash commands
5. Saves source for reinstallation
## Best Practices
1. **Use first-person voice** in all persona elements
2. **Keep prompts focused** - one clear purpose per prompt
3. **Leverage Handlebars** for user customization without code changes
4. **Provide sensible defaults** in install_config
5. **Use semantic XML tags** in prompt content for clarity
6. **Test all conditional paths** before distribution
## Validation Checklist
- [ ] Valid YAML syntax
- [ ] All metadata fields present (id, name, title, icon, type)
- [ ] Persona complete (role, identity, communication_style, principles)
- [ ] Prompts have unique IDs
- [ ] Install config questions have defaults
- [ ] File named `{agent-name}.agent.yaml`

View File

@ -80,12 +80,3 @@ brainstorm_context: "{workflow_path}/data/brainstorm-context.md"
simple_agent_examples: "{project-root}/bmb/reference/agents/simple-examples/"
expert_agent_examples: "{project-root}/bmb/reference/agents/expert-examples/"
module_agent_examples: "{project-root}/bmb/reference/agents/module-examples/"
# Output configuration
custom_agent_location: "{project-root}/\_bmad/custom/src/agents"
module_output_file: "{project-root}/\_bmad/{target_module}/agents/{agent_filename}.agent.yaml"
standalone_output_folder: "{custom_agent_location}/{agent_filename}"
standalone_output_file: "{standalone_output_folder}/{agent_filename}.agent.yaml"
standalone_info_guide: "{standalone_output_folder}/info-and-installation-guide.md"
config_output_file: "{project-root}/\_bmad/\_config/agents/{target_module}-{agent_filename}.customize.yaml"

View File

@ -4,8 +4,8 @@ continueFile: '{installed_path}/steps/step-01b-continue.md'
modulePlanTemplate: '{installed_path}/templates/module-plan.template.md'
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
customModuleLocation: '{custom_module_location}'
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
customModuleLocation: '{bmb_creations_output_folder}'
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
---
# Step 1: Workflow Initialization

View File

@ -1,5 +1,5 @@
---
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
---
# Step 1b: Continue Module Creation
@ -70,7 +70,7 @@ Extract current status from frontmatter fields:
- **Started:** {date}
- **Last Step:** {lastStep}
- **Steps Completed:** {stepsCompleted count}/{total steps}
- **Location:** {custom_module_location}/{module_name}
- **Location:** {bmb_creations_output_folder}/{module_name}
\*\*Progress Summary:"

View File

@ -1,7 +1,7 @@
---
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
nextStepFile: '{installed_path}/steps/step-03-components.md'
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
moduleStructureGuide: '{project-root}/bmb/workflows/create-agent-legacy/create-module/module-structure.md'
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'

View File

@ -1,7 +1,7 @@
---
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
nextStepFile: '{installed_path}/steps/step-04-structure.md'
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
agent_examples_path: '{project-root}/bmb/reference/agents/module-examples'
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'

View File

@ -1,7 +1,7 @@
---
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
nextStepFile: '{installed_path}/steps/step-05-config.md'
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
@ -122,7 +122,7 @@ For a [module type] module, we'll create this structure:"
### 3. Create Directory Structure
Create all directories in {custom_module_location}/{module_name}/:
Create all directories in {bmb_creations_output_folder}/{module_name}/:
1. **agents/** - For agent definition files
2. **workflows/** - For workflow folders
@ -169,7 +169,7 @@ Update module-plan.md with structure section:
## Module Structure
**Module Type:** [Simple/Standard/Complex]
**Location:** {custom_module_location}/{module_name}
**Location:** {bmb_creations_output_folder}/{module_name}
**Directory Structure Created:**
- ✅ agents/

View File

@ -1,7 +1,7 @@
---
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
nextStepFile: '{installed_path}/steps/step-06-agents.md'
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---

View File

@ -1,7 +1,7 @@
---
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
nextStepFile: '{installed_path}/steps/step-07-workflows.md'
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
agentTemplate: '{installed_path}/templates/agent.template.md'
agent_examples_path: '{project-root}/bmb/reference/agents/module-examples'
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
@ -217,7 +217,7 @@ agent:
**If agent needs memory:**
1. Create folder: {custom_module_location}/{module_name}/agents/[agent-name]-sidecar/
1. Create folder: {bmb_creations_output_folder}/{module_name}/agents/[agent-name]-sidecar/
2. Create files:
- memories.md (empty, for persistent memory)
- instructions.md (empty, for agent protocols)
@ -228,7 +228,7 @@ agent:
**If agent has workflows:**
For each workflow that needs separate file:
1. Create folder: {custom_module_location}/{module_name}/workflows/[workflow-name]/
1. Create folder: {bmb_creations_output_folder}/{module_name}/workflows/[workflow-name]/
2. Create README.md with workflow plan
### 4. Repeat for All Agents

View File

@ -1,7 +1,7 @@
---
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
nextStepFile: '{installed_path}/steps/step-08-installer.md'
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
workflowPlanTemplate: '{installed_path}/templates/workflow-plan-template.md'
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
@ -61,7 +61,7 @@ I've already created workflow folders and README.md files for each agent's workf
**Workflow folders found:**
- [List all workflow folders in {custom_module_location}/{module_name}/workflows/]
- [List all workflow folders in {bmb_creations_output_folder}/{module_name}/workflows/]
**Each workflow folder contains a README.md with:**

View File

@ -1,7 +1,7 @@
---
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
nextStepFile: '{installed_path}/steps/step-09-documentation.md'
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
installerTemplate: '{installed_path}/templates/installer.template.js'
installConfigTemplate: '{installed_path}/templates/install-config.template.yaml'
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
@ -72,13 +72,13 @@ From step 5, we planned these configuration fields:
### 2. Create Installer Directory
Ensure \_module-installer directory exists
Directory: {custom_module_location}/{module_name}/\_module-installer/
Directory: {bmb_creations_output_folder}/{module_name}/\_module-installer/
### 3. Create module.yaml
"I'll create the module.yaml file based on your configuration plan. This is the core installer configuration file."
Create file: {custom_module_location}/{module_name}/module.yaml from template {installConfigTemplate}
Create file: {bmb_creations_output_folder}/{module_name}/module.yaml from template {installConfigTemplate}
### 4. Handle Custom Installation Logic
@ -95,7 +95,7 @@ Does your module need any special setup during installation? For example:
"I'll create an installer.js file for custom logic."
Create file: {custom_module_location}/{module_name}/\_module-installer/installer.js from {installerTemplate}
Create file: {bmb_creations_output_folder}/{module_name}/\_module-installer/installer.js from {installerTemplate}
Update installer.js with module-specific logic

View File

@ -1,8 +1,8 @@
---
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
nextStepFile: '{installed_path}/steps/step-10-roadmap.md'
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
moduleReadmeFile: '{custom_module_location}/{module_name}/README.md'
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
moduleReadmeFile: '{bmb_creations_output_folder}/{module_name}/README.md'
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
@ -249,7 +249,7 @@ Update module-plan.md with documentation section:
## Documentation
### README.md Created
- Location: {custom_module_location}/{module_name}/README.md
- Location: {bmb_creations_output_folder}/{module_name}/README.md
- Sections: [list of sections included]
- Status: Complete

View File

@ -1,8 +1,8 @@
---
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
nextStepFile: '{installed_path}/steps/step-11-validate.md'
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
moduleTodoFile: '{custom_module_location}/{module_name}/TODO.md'
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
moduleTodoFile: '{bmb_creations_output_folder}/{module_name}/TODO.md'
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
@ -75,7 +75,7 @@ I'll organize the remaining work into logical phases to ensure a successful modu
### 3. Generate TODO.md
Create file: {custom_module_location}/{module_name}/TODO.md
Create file: {bmb_creations_output_folder}/{module_name}/TODO.md
````markdown
# {module_display_name} Development Roadmap
@ -273,7 +273,7 @@ Update module-plan.md with roadmap section:
## Development Roadmap
### TODO.md Created
- Location: {custom_module_location}/{module_name}/TODO.md
- Location: {bmb_creations_output_folder}/{module_name}/TODO.md
- Phases defined: 3
- Immediate tasks prioritized

View File

@ -1,6 +1,6 @@
---
workflowFile: '{installed_path}/workflow.md'
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
validationChecklist: '{installed_path}/validation.md'
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
@ -197,7 +197,7 @@ Fix issues one by one with user confirmation
- **Name:** {module_display_name}
- **Code:** {module_name}
- **Location:** {custom_module_location}/{module_name}
- **Location:** {bmb_creations_output_folder}/{module_name}
- **Type:** {module_type}
- **Status:** Ready for testing

View File

@ -18,7 +18,7 @@ agent:
identity: |
{agent-identity - multi-line description}
communication_style: |
{communication-style - multi-line description}
{communication-style - 1-2 short sentences to describe chat style}
principles:
- '{agent-principle-1}'
- '{agent-principle-2}'
@ -27,9 +27,9 @@ agent:
# Optional: Only include if agent needs memory/persistence
critical_actions:
- 'Load COMPLETE file ./[agent-name]-sidecar/memories.md and integrate all past interactions'
- 'Load COMPLETE file ./[agent-name]-sidecar/instructions.md and follow ALL protocols'
- 'ONLY read/write files in ./[agent-name]-sidecar/ - this is our private workspace'
- 'Load COMPLETE file [bmad_memory]/[agent-name]-sidecar/memories.md and integrate all past interactions'
- 'Load COMPLETE file [bmad_memory]/[agent-name]-sidecar/instructions.md and follow ALL protocols'
- 'ONLY read/write files in [bmad_memory]/[agent-name]-sidecar/* - this is our private workspace'
# Optional: Embedded prompts for common interactions
prompts:
@ -98,7 +98,7 @@ agent:
When creating expert agents in modules, create a sidecar folder:
```
{custom_module_location}/{module_name}/agents/[agent-name]-sidecar/
{bmb_creations_output_folder}/{module_name}/agents/[agent-name]-sidecar/
├── memories.md # Persistent memory across sessions
├── instructions.md # Agent-specific protocols
├── insights.md # Important breakthroughs/realizations
@ -166,14 +166,12 @@ Expert agents support three types of menu actions:
## Notes for Module Creation:
1. **File Paths**:
- Agent files go in: `{custom_module_location}/{module_name}/agents/[agent-name]/[agent-name].yaml`
- Sidecar folders go in: `{custom_module_location}/{module_name}/agents/[agent-name]/[agent-name]-sidecar/`
- Agent files go in: `[bmb_creations_output_folder]/[module_name]/agents/[agent-name]/[agent-name].yaml`
- Sidecar folders go in: `[bmb_creations_output_folder]/[module_name]/agents/[agent-name]/[agent-name]-sidecar/`
2. **Variable Usage**:
- `{agent_sidecar_folder}` resolves to the agents sidecar folder destination after installation
- `_bmad` resolves to \_bmad
- `{custom_module}` resolves to custom/src/modules
- `{module}` is your module code/name
- `bmad_memory` resolves to the agents sidecar folder destination after installation
- `module` is your module code/name
3. **Creating Sidecar Structure**:
- When agent is created, also create the sidecar folder

View File

@ -48,7 +48,7 @@ installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
Load and read full config from {project-root}/\_bmad/bmb/config.yaml and resolve:
- `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`, `custom_module_location`
- `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`, `bmb_creations_output_folder`
### 2. First Step EXECUTION

View File

@ -11,7 +11,7 @@ nextStepFile: '{workflow_path}/steps/step-02-gather.md'
workflowFile: '{workflow_path}/workflow.md'
# Output files for workflow creation process
targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}'
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}'
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
# Template References
# No workflow plan template needed - will create plan file directly
@ -83,7 +83,7 @@ After getting the workflow name:
**Check for existing workflows:**
- Look for folder at `{custom_stand_alone_location}/workflows/{new_workflow_name}/`
- Look for folder at `{bmb_creations_output_folder}/workflows/{new_workflow_name}/`
- If it exists, inform the user and suggest or get from them a unique name or postfix
**Example alternatives:**

View File

@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmb/workflows/create-workflow'
thisStepFile: '{workflow_path}/steps/step-02-gather.md'
nextStepFile: '{workflow_path}/steps/step-03-tools-configuration.md'
# Output files for workflow creation process
targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}'
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}'
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
# Task References

View File

@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmb/workflows/create-workflow'
thisStepFile: '{workflow_path}/steps/step-03-tools-configuration.md'
nextStepFile: '{workflow_path}/steps/step-04-plan-review.md'
targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}'
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}'
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
# Documentation References

View File

@ -10,7 +10,7 @@ thisStepFile: '{workflow_path}/steps/step-04-plan-review.md'
nextStepFormDesign: '{workflow_path}/steps/step-05-output-format-design.md'
nextStepDesign: '{workflow_path}/steps/step-06-design.md'
targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}'
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}'
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
# Task References

View File

@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmb/workflows/create-workflow'
thisStepFile: '{workflow_path}/steps/step-05-output-format-design.md'
nextStepFile: '{workflow_path}/steps/step-06-design.md'
targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}'
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}'
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
# Task References

View File

@ -10,7 +10,7 @@ thisStepFile: '{workflow_path}/steps/step-06-design.md'
nextStepFile: '{workflow_path}/steps/step-07-build.md'
workflowFile: '{workflow_path}/workflow.md'
# Output files for workflow creation process
targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}'
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}'
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
# Task References

View File

@ -10,7 +10,7 @@ thisStepFile: '{workflow_path}/steps/step-07-build.md'
nextStepFile: '{workflow_path}/steps/step-08-review.md'
workflowFile: '{workflow_path}/workflow.md'
# Output files for workflow creation process
targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}'
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}'
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
# Template References
@ -95,7 +95,7 @@ Ready to proceed?"
Create the workflow folder structure in the target location:
```
{custom_stand_alone_location}/workflows/{workflow_name}/
{bmb_creations_output_folder}/workflows/{workflow_name}/
├── workflow.md
├── steps/
│ ├── step-01-init.md

View File

@ -10,7 +10,7 @@ thisStepFile: '{workflow_path}/steps/step-08-review.md'
workflowFile: '{workflow_path}/workflow.md'
# Output files for workflow creation process
targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}'
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}'
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
# Task References

View File

@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmb/workflows/create-workflow'
thisStepFile: '{workflow_path}/steps/step-09-complete.md'
workflowFile: '{workflow_path}/workflow.md'
# Output files for workflow creation process
targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}'
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}'
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
completionFile: '{targetWorkflowPath}/completion-summary-{new_workflow_name}.md'
---

View File

@ -51,7 +51,7 @@ This uses **step-file architecture** for disciplined execution:
Load and read full config from {project-root}/\_bmad/bmb/config.yaml and resolve:
- `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`, `custom_stand_alone_location`
- `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`, `bmb_creations_output_folder`
### 2. First Step EXECUTION

View File

@ -1,19 +1,15 @@
# BMad Game Dev Module Configuration
code: bmgd
name: "BMGD: BMad Game Development"
default_selected: false
header: "BMad Game Development Module"
subheader: "Configure the settings for the BMad Game Development module"
default_selected: false
# Core config values automatically inherited:
# Variables from Core Config inserted:
## user_name
## communication_language
## document_output_language
## output_folder
## install_user_docs
## kb_install
## bmad_memory
game_project_name:
prompt: "What is the name of your game project?"

View File

@ -48,5 +48,5 @@ agent:
- type: exec
- expert-chat:
- input: CH or fuzzy match validate agent
- action: agent responds as expert based on its personal to converse
- action: agent responds as expert based on its persona to converse
- type: action

View File

@ -23,7 +23,7 @@ When you edit `workflow-method-greenfield.excalidraw`, regenerate the SVG:
After regenerating the SVG, validate that it renders correctly:
```bash
./tools/validate-svg-changes.sh src/modules/bmm/docs/images/workflow-method-greenfield.svg
./tools/validate-svg-changes.sh path/to/workflow-method-greenfield.svg
```
This script:

View File

@ -155,22 +155,6 @@ Epic/Release Gate → TEA: *nfr-assess, *trace Phase 2 (release decision)
**Note**: `*trace` is a two-phase workflow: Phase 1 (traceability) + Phase 2 (gate decision). This reduces cognitive load while maintaining natural workflow.
### Unique Directory Architecture
TEA is the only BMM agent with its own top-level module directory (`bmm/testarch/`):
```
src/modules/bmm/
├── agents/
│ └── tea.agent.yaml # Agent definition (standard location)
├── workflows/
│ └── testarch/ # TEA workflows (standard location)
└── testarch/ # Knowledge base (UNIQUE!)
├── knowledge/ # 21 production-ready test pattern fragments
├── tea-index.csv # Centralized knowledge lookup (21 fragments indexed)
└── README.md # This guide
```
### Why TEA Gets Special Treatment
TEA uniquely requires:

View File

@ -1,16 +1,15 @@
# BMAD™ Method Core Configuration
code: bmm
name: "BMM: BMad Method Agile-AI Driven-Development"
default_selected: true # This module will be selected by default for new installations
header: "BMad Method™: Breakthrough Method of Agile-Ai Driven-Dev"
subheader: "Agent and Workflow Configuration for this module"
default_selected: true # This module will be selected by default for new installations
# Variables from Core Config inserted:
## user_name
## communication_language
## document_output_language
## output_folder
## bmad_memory
project_name:
prompt: "What is the title of your project you will be working on?"
@ -31,20 +30,28 @@ user_skill_level:
- value: "expert"
label: "Expert - Deep technical knowledge, be direct and technical"
sprint_artifacts:
prompt: "Where should sprint artifacts be stored (sprint status, stories, retrospectives)?"
default: "{output_folder}/sprint-artifacts"
planning_artifacts: # Phase 1-3 artifacts
prompt: "Where should project planning artifacts be stored?\n - Such as: (Brain Storming, Briefs, PRDs, UX Designs, Architectures, Detailed Epics Plan)"
default: "{output_folder}/project-planning-artifacts"
result: "{project-root}/{value}"
implementation_artifacts: # Phase 4 artifacts
prompt: "Where should implementation artifacts be stored?\n - Such as: (sprint status, individual story files and reviews, retrospectives, Quick Flow output)"
default: "{output_folder}/implementation-artifacts"
result: "{project-root}/{value}"
project_knowledge: # Artifacts from research, document-project output, other long lived accurate kn
prompt: "Where should non-ephemeral project knowledge be stored (docs, research, references)?"
default: "docs"
result: "{project-root}/{value}"
tea_use_mcp_enhancements:
prompt: "Enable Test Architect Playwright MCP capabilities (healing, exploratory, verification)? You have to setup your MCPs yourself; refer to test-architecture.md for hints."
prompt: "Enable Test Architect Playwright MCP capabilities (healing, exploratory, verification)?\nYou have to setup your MCPs yourself; refer to test-architecture.md for hints."
default: false
result: "{value}"
tea_use_playwright_utils:
prompt:
- "Are you using playwright-utils (@seontechnologies/playwright-utils) in your project?"
- "This adds fixture-based utilities for auth, API requests, network recording, polling, intercept, recurse, logging, file download handling, and burn-in."
- "You must install packages yourself, or use test architect's *framework command."
- "Are you using playwright-utils (@seontechnologies/playwright-utils) in your project?\nYou must install packages yourself, or use test architect's *framework command."
default: false
result: "{value}"

View File

@ -1,12 +1,12 @@
# BMAD™ Creative Intelligence Suite Configuration
code: cis
name: "CIS: Creative Innovation Suite"
default_selected: false # This module will not be selected by default for new installations
header: "Creative Innovation Suite (CIS) Module"
subheader: "No Configuration needed - uses Core Config only."
default_selected: false # This module will not be selected by default for new installations
# Variables from Core Config inserted:
## user_name
## communication_language
## document_output_language
## output_folder
## bmad_memory

View File

@ -1887,7 +1887,6 @@ If AgentVibes party mode is enabled, immediately trigger TTS with agent's voice:
// Determine project directory (parent of bmad/ directory)
const bmadDir = path.dirname(modulePath);
const projectDir = path.dirname(bmadDir);
const cfgAgentsDir = path.join(bmadDir, '_config', 'agents');
// Ensure _config/agents directory exists
@ -2116,7 +2115,7 @@ If AgentVibes party mode is enabled, immediately trigger TTS with agent's voice:
answers.memories = customizeData.memories;
}
// Get core config for agent_sidecar_folder
// Get core config for bmad_memory
const coreConfigPath = path.join(bmadDir, 'bmb', 'config.yaml');
let coreConfig = {};
if (await fs.pathExists(coreConfigPath)) {

View File

@ -875,7 +875,7 @@ class ModuleManager {
}
}
// Load core config to get agent_sidecar_folder
// Load core config to get bmad_memory
const coreConfigPath = path.join(bmadDir, 'bmb', 'config.yaml');
let coreConfig = {};

View File

@ -333,9 +333,9 @@ async function compileAgent(yamlContent, answers = {}, agentName = '', targetPat
finalAnswers = { ...defaults, ...answers };
}
// Add agent_sidecar_folder to answers if provided in config
if (options.config && options.config.agent_sidecar_folder) {
finalAnswers.agent_sidecar_folder = options.config.agent_sidecar_folder;
// Add bmad_memory to answers if provided in config
if (options.config && options.config.bmad_memory) {
finalAnswers.bmad_memory = options.config.bmad_memory;
}
// Process templates with answers
@ -344,10 +344,10 @@ async function compileAgent(yamlContent, answers = {}, agentName = '', targetPat
// Strip install_config from output
const cleanYaml = stripInstallConfig(processedYaml);
// Replace {agent_sidecar_folder} in XML content
// Replace {bmad_memory} in XML content
let xml = await compileToXml(cleanYaml, agentName, targetPath);
if (finalAnswers.agent_sidecar_folder) {
xml = xml.replaceAll('{agent_sidecar_folder}', finalAnswers.agent_sidecar_folder);
if (finalAnswers.bmad_memory) {
xml = xml.replaceAll('{bmad_memory}', finalAnswers.bmad_memory);
}
return {