diff --git a/src/modules/bmb/_module-installer/install-menu-config.yaml b/src/modules/bmb/_module-installer/install-menu-config.yaml
index e7fe0b4d..8c8015e3 100644
--- a/src/modules/bmb/_module-installer/install-menu-config.yaml
+++ b/src/modules/bmb/_module-installer/install-menu-config.yaml
@@ -9,3 +9,18 @@ prompt: "Happy Building - Build the Modules, Workflows and Agents of your dreams
## user_name
## communication_language
## output_folder
+
+custom_agent_location:
+ prompt: "Where do custom agents get created?"
+ default: "bmad/agents"
+ result: "{project-root}/{value}"
+
+custom_workflow_location:
+ prompt: "Where do custom workflows get stored?"
+ default: "bmad/workflows"
+ result: "{project-root}/{value}"
+
+custom_module_location:
+ prompt: "Where do custom modules get stored?"
+ default: "bmad"
+ result: "{project-root}/{value}"
diff --git a/src/modules/bmb/workflows/create-agent/README.md b/src/modules/bmb/workflows/create-agent/README.md
index 1d640a38..a89f953f 100644
--- a/src/modules/bmb/workflows/create-agent/README.md
+++ b/src/modules/bmb/workflows/create-agent/README.md
@@ -107,9 +107,9 @@ create-agent/
#### For Standalone Agents (not part of a module)
-- **YAML Source**: `{output_folder}/agents/{{agent_filename}}.agent.yaml`
+- **YAML Source**: `{custom_agent_location}/{{agent_filename}}.agent.yaml` (default: `bmad/agents/`)
- **Installation Location**: `{project-root}/bmad/agents/{{agent_filename}}.md`
-- **Compilation**: Run `npm run build:agents` or use the installer menu
+- **Compilation**: Run the BMAD Method installer and select "Compile Agents (Quick rebuild of all agent .md files)"
#### For Module Agents
@@ -150,9 +150,9 @@ If created, generates at:
Agents are installed to different locations based on their type:
1. **Standalone Agents** (not part of a module)
- - Source: Created in your project's output folder
+ - Source: Created in your custom agent location (default: `bmad/agents/`)
- Installed to: `{project-root}/bmad/agents/`
- - Compilation: Manual via `npm run build:agents`
+ - Compilation: Run BMAD Method installer and select "Compile Agents"
2. **Module Agents** (part of BMM, BMB, or custom modules)
- Source: Created in `src/modules/{module}/agents/`
diff --git a/src/modules/bmb/workflows/create-agent/instructions.md b/src/modules/bmb/workflows/create-agent/instructions.md
index 733c5c29..a3d1a772 100644
--- a/src/modules/bmb/workflows/create-agent/instructions.md
+++ b/src/modules/bmb/workflows/create-agent/instructions.md
@@ -252,10 +252,11 @@ agent:
menu: { { The capabilities we built } }
```
-Save based on {src_impact}:
+Save based on agent type:
-- If {src_impact} = true: Save to {src_output_file}
-- If {src_impact} = false: Save to {default_output_file}
+- If Module Agent and {src_impact} = true: Save to {src_module_output_file}
+- If Module Agent and {src_impact} = false: Save to {module_output_file}
+- If Standalone (Simple/Expert): Save to {standalone_output_file}
"Your agent [name] is ready! It turned out even better than I expected!"
@@ -454,12 +455,13 @@ Share the accomplishment:
**"Here's how to activate [agent name]:"**
1. **Quick start:**
- - "Run `npm run install:bmad` and select 'Compile Agents'"
+ - "Run the BMAD Method installer to this project location"
+ - "Select the option 'Compile Agents (Quick rebuild of all agent .md files)' after confirming the folder"
- "Then you can call [agent name] anytime!"
2. **Location:**
- "I saved [agent name] here: {{output_file}}"
- - "After compilation, it'll live at: {project-root}/bmad/{{module}}/agents/"
+ - "After compilation, it'll be available in your project"
3. **What [agent name] can do right away:**
- List the commands in a friendly way
diff --git a/src/modules/bmb/workflows/create-agent/workflow.yaml b/src/modules/bmb/workflows/create-agent/workflow.yaml
index 3fd7f631..19b155d6 100644
--- a/src/modules/bmb/workflows/create-agent/workflow.yaml
+++ b/src/modules/bmb/workflows/create-agent/workflow.yaml
@@ -6,6 +6,7 @@ author: "BMad"
# Critical variables load from config_source
config_source: "{project-root}/bmad/bmb/config.yaml"
output_folder: "{config_source}:output_folder"
+custom_agent_location: "{config_source}:custom_agent_location"
user_name: "{config_source}:user_name"
src_impact: "{config_source}:src_impact"
communication_language: "{config_source}:communication_language"
@@ -29,10 +30,11 @@ instructions: "{installed_path}/instructions.md"
validation: "{installed_path}/checklist.md"
# Output configuration - YAML agents compiled to .md at install time
-# If src_impact=true: Save YAML to src/modules/{{target_module}}/agents/
-# If src_impact=false: Save YAML to output_folder/agents/
-default_output_file: "{output_folder}/agents/{{agent_filename}}.agent.yaml"
-src_output_file: "{project-root}/src/modules/{{target_module}}/agents/{{agent_filename}}.agent.yaml"
+# Module agents: Save to src/modules/{{target_module}}/agents/ OR bmad/{{target_module}}/agents/
+# Standalone agents: Save to custom_agent_location/
+module_output_file: "{project-root}/bmad/{{target_module}}/agents/{{agent_filename}}.agent.yaml"
+src_module_output_file: "{project-root}/src/modules/{{target_module}}/agents/{{agent_filename}}.agent.yaml"
+standalone_output_file: "{custom_agent_location}/{{agent_filename}}.agent.yaml"
# Optional user override file (auto-created by installer if missing)
config_output_file: "{project-root}/bmad/_cfg/agents/{{target_module}}-{{agent_filename}}.customize.yaml"
diff --git a/src/modules/bmb/workflows/create-module/README.md b/src/modules/bmb/workflows/create-module/README.md
index 7122c9db..9ccb63d9 100644
--- a/src/modules/bmb/workflows/create-module/README.md
+++ b/src/modules/bmb/workflows/create-module/README.md
@@ -32,7 +32,7 @@ workflow create-module --input module-brief-my-module-2024-09-26.md
The workflow loads critical variables from the BMB configuration:
-- **output_folder**: Where the module will be created
+- **custom_module_location**: Where custom modules are created (default: `bmad/`)
- **user_name**: Module author information
- **date**: Automatic timestamp for versioning
diff --git a/src/modules/bmb/workflows/create-module/instructions.md b/src/modules/bmb/workflows/create-module/instructions.md
index 91197e32..47a3b730 100644
--- a/src/modules/bmb/workflows/create-module/instructions.md
+++ b/src/modules/bmb/workflows/create-module/instructions.md
@@ -74,10 +74,10 @@ Listen to their description and then:
- **Business:** Project Management, Marketing, Sales
- **Personal:** Journaling, Learning, Productivity
-Check {src_impact} variable to determine output location:
+Determine output location:
-- If {src_impact} = true: Module will be created at {src_output_folder}
-- If {src_impact} = false: Module will be created at {default_output_folder}
+- If {src_impact} = true: Module will be created at {src_installer_output_folder}
+- If {src_impact} = false: Module will be created at {installer_output_folder}
Store module identity for scaffolding.
@@ -179,9 +179,8 @@ Present as: _"Based on your planned components, this looks like a {{determined_t
-Determine base module path based on {src_impact}:
-- If {src_impact} = true: Use {src_output_folder}
-- If {src_impact} = false: Use {default_output_folder}
+Use module path determined in Step 1:
+- The module base path is {{module_path}}
Create base module directories at the determined path:
@@ -248,10 +247,9 @@ output_folder: "{project-root}/docs/{{module_code}}"
data_folder: "{{determined_module_path}}/data"
```
-Determine save location based on {src_impact}:
+Save location:
-- If {src_impact} = true: Save to {src_output_folder}/config.yaml
-- If {src_impact} = false: Save to {default_output_folder}/config.yaml
+- Save to {{module_path}}/config.yaml
module_config
@@ -265,10 +263,9 @@ If yes:
Guide them to create the primary agent for the module.
-Ensure it's saved to the correct location based on {src_impact}:
+Save to module's agents folder:
-- If {src_impact} = true: {src_output_folder}/agents/
-- If {src_impact} = false: {default_output_folder}/agents/
+- Save to {{module_path}}/agents/
If no, create placeholder:
@@ -292,10 +289,9 @@ If yes:
Guide them to create the primary workflow.
-Ensure it's saved to the correct location based on {src_impact}:
+Save to module's workflows folder:
-- If {src_impact} = true: {src_output_folder}/workflows/
-- If {src_impact} = false: {default_output_folder}/workflows/
+- Save to {{module_path}}/workflows/
If no, create placeholder structure:
@@ -542,9 +538,7 @@ Show summary:
```
✅ Module: {{module_name}} ({{module_code}})
-📁 Location:
- - If {src_impact} = true: {src_output_folder}
- - If {src_impact} = false: {default_output_folder}
+📁 Location: {{module_path}}
👥 Agents: {{agent_count}} ({{agents_created}} created, {{agents_planned}} planned)
📋 Workflows: {{workflow_count}} ({{workflows_created}} created, {{workflows_planned}} planned)
📝 Tasks: {{task_count}}
@@ -554,8 +548,11 @@ Show summary:
Next steps:
1. Complete remaining components using roadmap
-2. Test module with: `bmad install {{module_code}}`
-3. Share module or integrate with existing system
+2. Run the BMAD Method installer to this project location
+3. Select the option 'Compile Agents (Quick rebuild of all agent .md files)' after confirming the folder
+4. This will compile your new module and make it available for use
+5. Test module with: `bmad install {{module_code}}`
+6. Share module or integrate with existing system
Ask: Would you like to:
diff --git a/src/modules/bmb/workflows/create-module/workflow.yaml b/src/modules/bmb/workflows/create-module/workflow.yaml
index 7b1b3930..3189081c 100644
--- a/src/modules/bmb/workflows/create-module/workflow.yaml
+++ b/src/modules/bmb/workflows/create-module/workflow.yaml
@@ -6,6 +6,7 @@ author: "BMad"
# Critical variables load from config_source
config_source: "{project-root}/bmad/bmb/config.yaml"
output_folder: "{config_source}:output_folder"
+custom_module_location: "{config_source}:custom_module_location"
src_impact: "{config_source}:src_impact"
communication_language: "{config_source}:communication_language"
user_name: "{config_source}:user_name"
@@ -38,10 +39,10 @@ validation: "{installed_path}/checklist.md"
# Output configuration - creates entire module structure
# If src_impact=true: Save to src/modules/{{module_code}}
-# If src_impact=false: Save to output_folder/{{module_code}}
-default_output_folder: "{output_folder}/{{module_code}}"
+# If src_impact=false: Save to custom_module_location/{{module_code}}
+default_output_folder: "{custom_module_location}/{{module_code}}"
src_output_folder: "{project-root}/src/modules/{{module_code}}"
-installer_output_folder: "{output_folder}/{{module_code}}"
+installer_output_folder: "{custom_module_location}/{{module_code}}"
src_installer_output_folder: "{project-root}/src/modules/{{module_code}}"
web_bundle:
diff --git a/src/modules/bmb/workflows/create-workflow/instructions.md b/src/modules/bmb/workflows/create-workflow/instructions.md
index ce3b5ce7..92e2e4a8 100644
--- a/src/modules/bmb/workflows/create-workflow/instructions.md
+++ b/src/modules/bmb/workflows/create-workflow/instructions.md
@@ -63,10 +63,11 @@ Based on type, determine which files are needed:
- Action: workflow.yaml + instructions.md
- Others: Varies based on requirements
-Check {src_impact} variable to determine output location:
+Determine output location based on module assignment:
-- If {src_impact} = true: Workflow will be saved to {src_output_folder}
-- If {src_impact} = false: Workflow will be saved to {default_output_folder}
+- If workflow belongs to module and {src_impact} = true: Save to {src_module_output_folder}
+- If workflow belongs to module and {src_impact} = false: Save to {module_output_folder}
+- If standalone workflow: Save to {standalone_output_folder}
Store decisions for later use.
@@ -122,10 +123,10 @@ Follow path conventions from guide:
- Use {installed_path} for workflow components
- Use {config_source} for config references
-Determine save location based on {src_impact}:
+Determine save location:
-- If {src_impact} = true: Write to {src_output_folder}/workflow.yaml
-- If {src_impact} = false: Write to {default_output_folder}/workflow.yaml
+- Use the output folder determined in Step 1 (module or standalone)
+- Write to {{output_folder}}/workflow.yaml
@@ -158,10 +159,9 @@ Generate the instructions.md file following the workflow creation guide:
- Set limits ("3-5 items maximum")
- Save checkpoints with
-Determine save location based on {src_impact}:
+Save location:
-- If {src_impact} = true: Write to {src_output_folder}/instructions.md
-- If {src_impact} = false: Write to {default_output_folder}/instructions.md
+- Write to {{output_folder}}/instructions.md
@@ -187,10 +187,9 @@ Variable sources as per guide:
- Step outputs via
- System variables (date, paths)
-Determine save location based on {src_impact}:
+Save location:
-- If {src_impact} = true: Write to {src_output_folder}/template.md
-- If {src_impact} = false: Write to {default_output_folder}/template.md
+- Write to {{output_folder}}/template.md
@@ -216,10 +215,9 @@ Create checklist.md following guide best practices:
4. Add final validation section with issue lists
-Determine save location based on {src_impact}:
+Save location:
-- If {src_impact} = true: Write to {src_output_folder}/checklist.md
-- If {src_impact} = false: Write to {default_output_folder}/checklist.md
+- Write to {{output_folder}}/checklist.md
@@ -315,11 +313,12 @@ Create a brief README for the workflow folder explaining:
Provide user with:
-- Location of created workflow:
- - If {src_impact} = true: {{src_output_folder}}
- - If {src_impact} = false: {{default_output_folder}}
+- Location of created workflow: {{output_folder}}
- Command to run it
-- Next steps for testing
-
+- Next steps:
+ - "Run the BMAD Method installer to this project location"
+ - "Select the option 'Compile Agents (Quick rebuild of all agent .md files)' after confirming the folder"
+ - "This will compile your new workflow and make it available for use"
+
diff --git a/src/modules/bmb/workflows/create-workflow/workflow.yaml b/src/modules/bmb/workflows/create-workflow/workflow.yaml
index 33bccf80..7cbffe78 100644
--- a/src/modules/bmb/workflows/create-workflow/workflow.yaml
+++ b/src/modules/bmb/workflows/create-workflow/workflow.yaml
@@ -6,6 +6,7 @@ author: "BMad Builder"
# Critical variables
config_source: "{project-root}/bmad/bmb/config.yaml"
output_folder: "{config_source}:output_folder"
+custom_workflow_location: "{config_source}:custom_workflow_location"
user_name: "{config_source}:user_name"
src_impact: "{config_source}:src_impact"
communication_language: "{config_source}:communication_language"
@@ -33,10 +34,11 @@ workflow_creation_guide: "{installed_path}/workflow-creation-guide.md"
workflow_template_path: "{installed_path}/workflow-template"
# Output configuration - Creates the new workflow folder with all files
-# If src_impact=true: Save to src/modules/{{target_module}}/workflows/{{workflow_name}}
-# If src_impact=false: Save to output_folder/workflows/{{workflow_name}}
-default_output_folder: "{output_folder}/workflows/{{workflow_name}}"
-src_output_folder: "{project-root}/src/modules/{{target_module}}/workflows/{{workflow_name}}"
+# If workflow belongs to a module: Save to module's workflows folder
+# If standalone workflow: Save to custom_workflow_location/{{workflow_name}}
+module_output_folder: "{project-root}/bmad/{{target_module}}/workflows/{{workflow_name}}"
+src_module_output_folder: "{project-root}/src/modules/{{target_module}}/workflows/{{workflow_name}}"
+standalone_output_folder: "{custom_workflow_location}/{{workflow_name}}"
web_bundle:
name: "create-workflow"
diff --git a/src/utility/models/fragments/activation-rules.xml b/src/utility/models/fragments/activation-rules.xml
index 5427656b..8fdd9852 100644
--- a/src/utility/models/fragments/activation-rules.xml
+++ b/src/utility/models/fragments/activation-rules.xml
@@ -1,9 +1,8 @@
- ALWAYS communicate in {communication_language}
- Stay in character until exit selected
- Menu triggers use asterisk (*) - NOT markdown, display exactly as shown
- Number all lists, use letters for sub-options
- Load files ONLY when executing menu items
- EXCEPTION: Config file MUST be loaded at startup (step 2), all other files load only when executing menu items or an instruction file step
- requires it
+ - ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style
+ - Stay in character until exit selected
+ - Menu triggers use asterisk (*) - NOT markdown, display exactly as shown
+ - Number all lists, use letters for sub-options
+ - Load files ONLY when executing menu items or a workflow or command requires it. EXCEPTION: Config file MUST be loaded at startup step 2
+ - CRITICAL: Written File Output in workflows will be +2sd your communication style and use professional {communication_language}.
\ No newline at end of file