standardize custom agent workflow and module output, and improve module folder selection
This commit is contained in:
parent
add789a408
commit
cba7cf223f
|
|
@ -21,7 +21,6 @@
|
||||||
**Cleanup Changes:**
|
**Cleanup Changes:**
|
||||||
|
|
||||||
- **Example Modules Removal**: Temporarily removed example modules to prevent accidental installation
|
- **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
|
- **Memory Management**: Improved sidecar file handling for custom modules
|
||||||
|
|
||||||
### 📊 Statistics
|
### 📊 Statistics
|
||||||
|
|
@ -176,7 +175,6 @@
|
||||||
- Fixed version reading from package.json instead of hardcoded fallback
|
- Fixed version reading from package.json instead of hardcoded fallback
|
||||||
- Removed hardcoded years from WebSearch queries
|
- Removed hardcoded years from WebSearch queries
|
||||||
- Removed broken build caching mechanism
|
- Removed broken build caching mechanism
|
||||||
- Fixed hardcoded '.bmad' prefix from files-manifest.csv paths
|
|
||||||
- Enhanced TTS injection summary with tracking and documentation
|
- Enhanced TTS injection summary with tracking and documentation
|
||||||
- Fixed CI nvmrc configuration issues
|
- Fixed CI nvmrc configuration issues
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -203,6 +203,6 @@ memories:
|
||||||
|
|
||||||
## Next Steps
|
## 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
|
- **[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
|
- **[BMM Complete Documentation](../src/modules/bmm/docs/README.md)** - Full BMad Method reference
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,7 @@ The sidecar folder location is configured during BMAD core installation:
|
||||||
1. **Agent Declaration**: Agents declare `hasSidecar: true` in their metadata
|
1. **Agent Declaration**: Agents declare `hasSidecar: true` in their metadata
|
||||||
2. **Sidecar Detection**: The installer automatically detects folders with "sidecar" in the name
|
2. **Sidecar Detection**: The installer automatically detects folders with "sidecar" in the name
|
||||||
3. **Installation**: Sidecar content is copied to the configured location
|
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
|
### Example Structure
|
||||||
|
|
||||||
|
|
@ -232,7 +232,7 @@ Custom content can be distributed:
|
||||||
|
|
||||||
- Ensure the agent has `hasSidecar: true` in metadata
|
- Ensure the agent has `hasSidecar: true` in metadata
|
||||||
- Check that sidecar folders contain "sidecar" in the name
|
- 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.
|
- Ensure the custom agent has proper language in it to actually use the sidecar content, including loading memories on agent load.
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
|
code: core
|
||||||
|
name: "BMAD™ Core Module"
|
||||||
|
|
||||||
header: "BMAD™ Core Configuration"
|
header: "BMAD™ Core Configuration"
|
||||||
subheader: "Configure the core settings for your BMAD™ installation.\nThese settings will be used across all modules and agents."
|
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:
|
output_folder:
|
||||||
prompt: "Where should AI generated artifacts be saved across all modules?"
|
prompt: "Where should AI generated artifacts be saved across all modules?"
|
||||||
default: "docs"
|
default: "bmad-output"
|
||||||
result: "{project-root}/{value}"
|
result: "{project-root}/{value}"
|
||||||
|
|
||||||
agent_sidecar_folder:
|
bmad_memory:
|
||||||
prompt: "Where should users agent sidecar memory folders be stored?"
|
prompt: "Some agents will record their own memories and history. Where should these be stored?"
|
||||||
default: "_bmad-user-memory"
|
default: "_bmad/_memory"
|
||||||
result: "{project-root}/{value}"
|
result: "{project-root}/{value}"
|
||||||
|
|
|
||||||
|
|
@ -22,26 +22,15 @@ Specialized tools and workflows for creating, customizing, and extending BMad co
|
||||||
|
|
||||||
### 📋 Workflows
|
### 📋 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
|
### 📚 Documentation
|
||||||
|
|
||||||
- Location: `src/modules/bmb/docs/`
|
- Location: `./docs/`
|
||||||
- Comprehensive guides for agents and workflows
|
- Comprehensive guides for agents and workflows
|
||||||
- Architecture patterns and best practices
|
- Architecture patterns and best practices
|
||||||
|
|
||||||
### 🔍 Reference Materials
|
### 🔍 Reference Materials
|
||||||
|
|
||||||
- Location: `src/modules/bmb/reference/`
|
- Location: `./reference/`
|
||||||
- Working examples of agents and workflows
|
- Working examples of agents and workflows
|
||||||
- Template patterns and implementation guides
|
- Template patterns and implementation guides
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,10 +20,10 @@ async function install(options) {
|
||||||
try {
|
try {
|
||||||
logger.log(chalk.blue('🔧 Setting up BMB Module...'));
|
logger.log(chalk.blue('🔧 Setting up BMB Module...'));
|
||||||
|
|
||||||
// Generate custom.yaml in custom_stand_alone_location
|
// Generate custom.yaml in bmb_creations_output_folder
|
||||||
if (config['custom_stand_alone_location']) {
|
if (config['bmb_creations_output_folder']) {
|
||||||
// The config value contains {project-root} which needs to be resolved
|
// 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 customLocation = rawLocation.replace('{project-root}', projectRoot);
|
||||||
const customDestPath = path.join(customLocation, 'custom.yaml');
|
const customDestPath = path.join(customLocation, 'custom.yaml');
|
||||||
|
|
||||||
|
|
@ -49,8 +49,8 @@ default_selected: true
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set up custom module location if configured
|
// Set up custom module location if configured
|
||||||
if (config['custom_module_location']) {
|
if (config['bmb_creations_output_folder']) {
|
||||||
const rawModuleLocation = config['custom_module_location'];
|
const rawModuleLocation = config['bmb_creations_output_folder'];
|
||||||
const moduleLocation = rawModuleLocation.replace('{project-root}', projectRoot);
|
const moduleLocation = rawModuleLocation.replace('{project-root}', projectRoot);
|
||||||
|
|
||||||
logger.log(chalk.cyan(` Setting up custom modules at: ${moduleLocation}`));
|
logger.log(chalk.cyan(` Setting up custom modules at: ${moduleLocation}`));
|
||||||
|
|
|
||||||
|
|
@ -375,7 +375,7 @@ exec: "../../../core/tasks/validate.xml"
|
||||||
|
|
||||||
- `{project-root}` - Project root directory
|
- `{project-root}` - Project root directory
|
||||||
- `_bmad` - BMAD installation folder
|
- `_bmad` - BMAD installation folder
|
||||||
- `{agent_sidecar_folder}` - Agent installation directory (Expert agents)
|
- `{bmad_memory}` - Agent installation directory (Expert agents)
|
||||||
- `{output_folder}` - Document output location
|
- `{output_folder}` - Document output location
|
||||||
- `{user_name}` - User's name from config
|
- `{user_name}` - User's name from config
|
||||||
- `{communication_language}` - Language preference
|
- `{communication_language}` - Language preference
|
||||||
|
|
|
||||||
|
|
@ -97,14 +97,22 @@ agent:
|
||||||
action: 'Update ./{agent-name}-sidecar/memories.md with session insights'
|
action: 'Update ./{agent-name}-sidecar/memories.md with session insights'
|
||||||
description: 'Save what we discussed today'
|
description: 'Save what we discussed today'
|
||||||
|
|
||||||
- trigger: patterns
|
|
||||||
action: '#memory-recall'
|
|
||||||
description: 'Recall patterns from past interactions'
|
|
||||||
|
|
||||||
- trigger: insight
|
- trigger: insight
|
||||||
action: 'Document breakthrough in ./{agent-name}-sidecar/breakthroughs.md'
|
action: 'Document breakthrough in ./{agent-name}-sidecar/breakthroughs.md'
|
||||||
description: 'Record a significant insight'
|
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:
|
install_config:
|
||||||
compile_time_only: true
|
compile_time_only: true
|
||||||
description: 'Personalize your expert agent'
|
description: 'Personalize your expert agent'
|
||||||
|
|
@ -196,7 +204,7 @@ critical_actions:
|
||||||
- **Memory integration** - Past context becomes part of current session
|
- **Memory integration** - Past context becomes part of current session
|
||||||
- **Protocol adherence** - Ensures consistent behavior
|
- **Protocol adherence** - Ensures consistent behavior
|
||||||
|
|
||||||
### {agent_sidecar_folder} Variable
|
### {bmad_memory} Variable
|
||||||
|
|
||||||
Special variable resolved during installation:
|
Special variable resolved during installation:
|
||||||
|
|
||||||
|
|
@ -313,7 +321,7 @@ critical_actions:
|
||||||
|
|
||||||
1. **Load sidecar files in critical_actions** - Must be explicit and MANDATORY
|
1. **Load sidecar files in critical_actions** - Must be explicit and MANDATORY
|
||||||
2. **Enforce domain restrictions** - Clear boundaries prevent scope creep
|
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
|
4. **Design for memory growth** - Structure sidecar files for accumulation
|
||||||
5. **Reference past naturally** - Don't dump memory, weave it into conversation
|
5. **Reference past naturally** - Don't dump memory, weave it into conversation
|
||||||
6. **Separate concerns** - Memories, instructions, knowledge in distinct files
|
6. **Separate concerns** - Memories, instructions, knowledge in distinct files
|
||||||
|
|
@ -356,8 +364,8 @@ identity: |
|
||||||
- [ ] Sidecar folder structure created and populated
|
- [ ] Sidecar folder structure created and populated
|
||||||
- [ ] memories.md has clear section structure
|
- [ ] memories.md has clear section structure
|
||||||
- [ ] instructions.md contains core directives
|
- [ ] instructions.md contains core directives
|
||||||
- [ ] Menu actions reference {agent_sidecar_folder} correctly
|
- [ ] Menu actions reference {bmad_memory} correctly
|
||||||
- [ ] File paths use {agent_sidecar_folder} variable
|
- [ ] File paths use {bmad_memory} variable
|
||||||
- [ ] Install config personalizes sidecar references
|
- [ ] Install config personalizes sidecar references
|
||||||
- [ ] Agent folder named consistently: `{agent-name}/`
|
- [ ] Agent folder named consistently: `{agent-name}/`
|
||||||
- [ ] YAML file named: `{agent-name}.agent.yaml`
|
- [ ] YAML file named: `{agent-name}.agent.yaml`
|
||||||
|
|
|
||||||
|
|
@ -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/`
|
|
||||||
|
|
@ -63,18 +63,22 @@ agent:
|
||||||
Another reusable prompt template
|
Another reusable prompt template
|
||||||
|
|
||||||
menu:
|
menu:
|
||||||
- trigger: action1
|
|
||||||
action: '#main-action'
|
|
||||||
description: 'Execute the main action'
|
|
||||||
|
|
||||||
- trigger: action2
|
|
||||||
action: '#another-action'
|
|
||||||
description: 'Execute another action'
|
|
||||||
|
|
||||||
- trigger: inline
|
- trigger: inline
|
||||||
action: 'Direct inline instruction text'
|
action: 'Direct inline prompt text'
|
||||||
description: 'Execute inline action'
|
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:
|
install_config:
|
||||||
compile_time_only: true
|
compile_time_only: true
|
||||||
description: 'Personalize your agent'
|
description: 'Personalize your agent'
|
||||||
|
|
@ -202,7 +206,7 @@ The `tools/cli/lib/agent/compiler.js` automatically adds:
|
||||||
|
|
||||||
## Reference Example
|
## 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:
|
Features demonstrated:
|
||||||
|
|
||||||
|
|
@ -243,50 +247,11 @@ The installer:
|
||||||
5. **Use semantic XML tags** in prompt content for clarity
|
5. **Use semantic XML tags** in prompt content for clarity
|
||||||
6. **Test all conditional paths** before distribution
|
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
|
## Validation Checklist
|
||||||
|
|
||||||
- [ ] Valid YAML syntax
|
- [ ] Valid YAML syntax
|
||||||
- [ ] All metadata fields present (id, name, title, icon, type)
|
- [ ] All metadata fields present (id, name, title, icon, type)
|
||||||
- [ ] Persona complete (role, identity, communication_style, principles)
|
- [ ] Persona complete (role, identity, communication_style, principles)
|
||||||
- [ ] Prompts have unique IDs
|
- [ ] Prompts have unique IDs
|
||||||
- [ ] Menu triggers don't start with `*` (auto-added)
|
|
||||||
- [ ] Install config questions have defaults
|
- [ ] Install config questions have defaults
|
||||||
- [ ] Handlebars syntax is correct
|
|
||||||
- [ ] File named `{agent-name}.agent.yaml`
|
- [ ] File named `{agent-name}.agent.yaml`
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,17 @@
|
||||||
# BMAD™ Method Core Configuration
|
|
||||||
|
|
||||||
code: bmb
|
code: bmb
|
||||||
name: "BMB: BMad Builder - Agent, Workflow and Module Builder"
|
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"
|
header: "BMad Optimized Builder (BoMB) Module Configuration"
|
||||||
subheader: "Configure the settings for the BoMB Factory!\nThe agent, workflow and module builder for BMAD™"
|
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:
|
# Variables from Core Config inserted:
|
||||||
## user_name
|
## user_name
|
||||||
## communication_language
|
## communication_language
|
||||||
|
## document_output_language
|
||||||
## output_folder
|
## output_folder
|
||||||
|
## bmad_memory
|
||||||
|
|
||||||
custom_stand_alone_location:
|
bmb_creations_output_folder:
|
||||||
prompt: "Where do custom agents and workflows get stored?"
|
prompt: "Where should BoMB generated agents, workflows and modules SOURCE be saved?"
|
||||||
default: "bmad-custom-src"
|
default: "{output_folder}/bmb-creations"
|
||||||
result: "{project-root}/{value}"
|
|
||||||
|
|
||||||
custom_module_location:
|
|
||||||
prompt: "Where do custom modules get stored?"
|
|
||||||
default: "bmad-custom-modules-src"
|
|
||||||
result: "{project-root}/{value}"
|
result: "{project-root}/{value}"
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,9 @@ agent:
|
||||||
- Reflection transforms experience into wisdom
|
- Reflection transforms experience into wisdom
|
||||||
|
|
||||||
critical_actions:
|
critical_actions:
|
||||||
- "Load COMPLETE file {agent_sidecar_folder}/journal-keeper-sidecar/memories.md and remember all past insights"
|
- "Load COMPLETE file {bmad_memory}/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"
|
- "Load COMPLETE file {bmad_memory}/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"
|
- "ONLY read/write files in {bmad_memory}/journal-keeper-sidecar/ - this is our private space"
|
||||||
- "Track mood patterns, recurring themes, and breakthrough moments"
|
- "Track mood patterns, recurring themes, and breakthrough moments"
|
||||||
- "Reference past entries naturally to show continuity"
|
- "Reference past entries naturally to show continuity"
|
||||||
|
|
||||||
|
|
@ -120,7 +120,7 @@ agent:
|
||||||
description: "Write today's journal entry"
|
description: "Write today's journal entry"
|
||||||
|
|
||||||
- trigger: quick
|
- 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"
|
description: "Quick capture without prompts"
|
||||||
|
|
||||||
- trigger: mood
|
- trigger: mood
|
||||||
|
|
@ -140,13 +140,13 @@ agent:
|
||||||
description: "Reflect on the past week"
|
description: "Reflect on the past week"
|
||||||
|
|
||||||
- trigger: insight
|
- 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"
|
description: "Record a meaningful insight"
|
||||||
|
|
||||||
- trigger: read-back
|
- 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"
|
description: "Review past entries"
|
||||||
|
|
||||||
- trigger: save
|
- 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"
|
description: "Save what we discussed today"
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,9 @@ Module agents integrate with BMAD module workflows (BMM, CIS, BMB). They:
|
||||||
|
|
||||||
- Orchestrate multi-step workflows
|
- Orchestrate multi-step workflows
|
||||||
- Use `_bmad` path variables
|
- Use `_bmad` path variables
|
||||||
- Have fixed professional personas (no install_config)
|
|
||||||
- Reference module-specific configurations
|
- Reference module-specific configurations
|
||||||
|
- Can be bundled into web bundlers with the other agents
|
||||||
|
- Participate in party mode with the modules other agents
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
|
@ -46,5 +47,3 @@ When creating module agents:
|
||||||
3. Rewrite persona for your domain
|
3. Rewrite persona for your domain
|
||||||
4. Replace menu with actual available workflows
|
4. Replace menu with actual available workflows
|
||||||
5. Remove hypothetical workflow references
|
5. Remove hypothetical workflow references
|
||||||
|
|
||||||
See `/src/modules/bmb/docs/agents/module-agent-architecture.md` for complete guide.
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
- Full module review (option 12) is great for inherited or legacy modules
|
||||||
- The workflow handles path updates when you reorganize structure
|
- 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
|
## Example Usage
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@ Use this checklist to validate module edits meet BMAD Core standards.
|
||||||
|
|
||||||
## Module Structure Validation
|
## Module Structure Validation
|
||||||
|
|
||||||
- [ ] Module has clear 3-letter code (bmm, bmb, cis, etc.)
|
- [ ] Module has clear abbreviation code (bmm, bmb, cis, etc.)
|
||||||
- [ ] Module is in correct location (src/modules/ for source, \_bmad/ for installed)
|
|
||||||
- [ ] agents/ directory exists
|
- [ ] agents/ directory exists
|
||||||
- [ ] workflows/ directory exists
|
- [ ] workflows/ directory exists
|
||||||
- [ ] config.yaml exists in module root
|
- [ ] 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)
|
### Optional Fields (if used)
|
||||||
|
|
||||||
- [ ] custom_module_location documented
|
- [ ] bmb_creations_output_folder documented
|
||||||
- [ ] Module-specific fields documented in README
|
- [ ] Module-specific fields documented in README
|
||||||
|
|
||||||
### File Quality
|
### File Quality
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
<workflow>
|
<workflow>
|
||||||
|
|
||||||
<step n="1" goal="Load and deeply understand the target module">
|
<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:
|
<action>Load the module directory structure completely:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,5 +46,3 @@ When creating module agents:
|
||||||
3. Rewrite persona for your domain
|
3. Rewrite persona for your domain
|
||||||
4. Replace menu with actual available workflows
|
4. Replace menu with actual available workflows
|
||||||
5. Remove hypothetical workflow references
|
5. Remove hypothetical workflow references
|
||||||
|
|
||||||
See `/src/modules/bmb/docs/agents/module-agent-architecture.md` for complete guide.
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
||||||
thisStepFile: '{workflow_path}/steps/step-02-discover.md'
|
thisStepFile: '{workflow_path}/steps/step-02-discover.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-03-persona.md'
|
nextStepFile: '{workflow_path}/steps/step-03-persona.md'
|
||||||
workflowFile: '{workflow_path}/workflow.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'
|
agentTypesGuide: '{project-root}/_bmad/bmb/docs/agents/understanding-agent-types.md'
|
||||||
simpleExamples: '{workflow_path}/data/reference/agents/simple-examples/'
|
simpleExamples: '{workflow_path}/data/reference/agents/simple-examples/'
|
||||||
expertExamples: '{workflow_path}/data/reference/agents/expert-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
|
- 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
|
- CAN have personal workflows in sidecar if critical_actions loads workflow engine
|
||||||
- Example: Personal research assistant, domain expert advisor, learning companion
|
- 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
|
- Example: Project coordinator, workflow manager, team orchestrator
|
||||||
|
|
||||||
**Type Selection Process:**
|
**Type Selection Process:**
|
||||||
|
|
@ -162,7 +158,7 @@ As purpose becomes clear, analyze and recommend appropriate agent type.
|
||||||
[Any relevant insights from previous brainstorming session]
|
[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
|
### 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 A: Execute {advancedElicitationTask}
|
||||||
- IF P: Execute {partyModeWorkflow}
|
- 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)
|
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options)
|
||||||
|
|
||||||
#### EXECUTION RULES:
|
#### EXECUTION RULES:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
||||||
thisStepFile: '{workflow_path}/steps/step-03-persona.md'
|
thisStepFile: '{workflow_path}/steps/step-03-persona.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-04-commands.md'
|
nextStepFile: '{workflow_path}/steps/step-04-commands.md'
|
||||||
workflowFile: '{workflow_path}/workflow.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'
|
communicationPresets: '{workflow_path}/data/communication-presets.csv'
|
||||||
agentMenuPatterns: '{project-root}/_bmad/bmb/docs/agents/agent-menu-patterns.md'
|
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]
|
[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
|
### 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 A: Execute {advancedElicitationTask}
|
||||||
- IF P: Execute {partyModeWorkflow}
|
- 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)
|
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#8-present-menu-options)
|
||||||
|
|
||||||
#### EXECUTION RULES:
|
#### EXECUTION RULES:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
||||||
thisStepFile: '{workflow_path}/steps/step-04-commands.md'
|
thisStepFile: '{workflow_path}/steps/step-04-commands.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-05-name.md'
|
nextStepFile: '{workflow_path}/steps/step-05-name.md'
|
||||||
workflowFile: '{workflow_path}/workflow.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'
|
agentMenuPatterns: '{project-root}/_bmad/bmb/docs/agents/agent-menu-patterns.md'
|
||||||
simpleArchitecture: '{project-root}/_bmad/bmb/docs/agents/simple-agent-architecture.md'
|
simpleArchitecture: '{project-root}/_bmad/bmb/docs/agents/simple-agent-architecture.md'
|
||||||
expertArchitecture: '{project-root}/_bmad/bmb/docs/agents/expert-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]
|
[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
|
### 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 A: Execute {advancedElicitationTask}
|
||||||
- IF P: Execute {partyModeWorkflow}
|
- 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)
|
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options)
|
||||||
|
|
||||||
#### EXECUTION RULES:
|
#### EXECUTION RULES:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,8 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
||||||
thisStepFile: '{workflow_path}/steps/step-05-name.md'
|
thisStepFile: '{workflow_path}/steps/step-05-name.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-06-build.md'
|
nextStepFile: '{workflow_path}/steps/step-06-build.md'
|
||||||
workflowFile: '{workflow_path}/workflow.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
|
# Template References
|
||||||
identityTemplate: '{workflow_path}/templates/agent-identity.md'
|
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]
|
[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
|
### 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 A: Execute {advancedElicitationTask}
|
||||||
- IF P: Execute {partyModeWorkflow}
|
- 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)
|
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options)
|
||||||
|
|
||||||
#### EXECUTION RULES:
|
#### EXECUTION RULES:
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,12 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
||||||
thisStepFile: '{workflow_path}/steps/step-06-build.md'
|
thisStepFile: '{workflow_path}/steps/step-06-build.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-07-validate.md'
|
nextStepFile: '{workflow_path}/steps/step-07-validate.md'
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
workflowFile: '{workflow_path}/workflow.md'
|
||||||
outputFile: '{output_folder}/agent-yaml-{project_name}.md'
|
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||||
moduleOutputFile: '{project-root}/_bmad/{target_module}/agents/{agent_filename}.agent.yaml'
|
agentBuildOutput: '{bmb_creations_output_folder}/{agent-name}'
|
||||||
standaloneOutputFile: '{workflow_path}/data/{agent_filename}/{agent_filename}.agent.yaml'
|
|
||||||
|
|
||||||
# Template References
|
# 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
|
# Task References
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
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:
|
## 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):
|
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||||
|
|
||||||
|
|
@ -46,10 +46,10 @@ Generate the complete YAML agent file incorporating all discovered elements: pur
|
||||||
|
|
||||||
### Step-Specific Rules:
|
### Step-Specific Rules:
|
||||||
|
|
||||||
- 🎯 Focus only on generating complete YAML structure based on discovered elements
|
- 🎯 Focus only on generating complete YAML and sidecar content structure based on discovered elements
|
||||||
- 🚫 FORBIDDEN to duplicate auto-injected features (help, exit, activation handlers)
|
- 🚫 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
|
- 💬 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:
|
## EXECUTION PROTOCOLS:
|
||||||
|
|
||||||
|
|
@ -85,19 +85,15 @@ Present this to the user:
|
||||||
|
|
||||||
Based on determined agent type, load appropriate template:
|
Based on determined agent type, load appropriate template:
|
||||||
|
|
||||||
- Simple Agent: `agent-complete-simple.md`
|
- If (agent will have memories and optionally its own knowledge, separate prompt files, or data in separate files)
|
||||||
- Expert Agent: `agent-complete-expert.md`
|
- Utilize {expertAgentTemplate} to generate the agent output file {agentBuildOutput}/{agent-name}.agent.yaml
|
||||||
- Module Agent: `agent-complete-module.md`
|
- 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:
|
Create the complete YAML incorporating all discovered elements from the plan:
|
||||||
|
|
||||||
"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:
|
|
||||||
|
|
||||||
**Core Structure:**
|
**Core Structure:**
|
||||||
|
|
||||||
|
|
@ -140,41 +136,7 @@ Ensure proper implementation based on agent type:
|
||||||
- Memory integration points
|
- Memory integration points
|
||||||
- Personal workflow capabilities
|
- Personal workflow capabilities
|
||||||
|
|
||||||
**Module Agent:**
|
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.
|
||||||
|
|
||||||
- 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.
|
|
||||||
|
|
||||||
### 7. Present MENU OPTIONS
|
### 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 A: Execute {advancedElicitationTask}
|
||||||
- IF P: Execute {partyModeWorkflow}
|
- 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)
|
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options)
|
||||||
|
|
||||||
#### EXECUTION RULES:
|
#### EXECUTION RULES:
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,9 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-07-validate.md'
|
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'
|
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'
|
agentValidationChecklist: '{project-root}/_bmad/bmb/workflows/create-agent/agent-validation-checklist.md'
|
||||||
agentFile: '{{output_file_path}}'
|
agentFile: '{{output_file_path}}'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,6 @@ thisStepFile: '{workflow_path}/steps/step-11-celebrate.md'
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
workflowFile: '{workflow_path}/workflow.md'
|
||||||
outputFile: '{output_folder}/agent-completion-{project_name}.md'
|
outputFile: '{output_folder}/agent-completion-{project_name}.md'
|
||||||
agentFile: '{{output_file_path}}'
|
agentFile: '{{output_file_path}}'
|
||||||
compiledAgentFile: '{{compiled_agent_path}}'
|
|
||||||
|
|
||||||
# Template References
|
|
||||||
completionTemplate: '{workflow_path}/templates/completion-summary.md'
|
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
||||||
|
|
@ -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.
|
|
||||||
|
|
@ -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.
|
|
||||||
|
|
@ -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.
|
|
||||||
|
|
@ -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}}_
|
|
||||||
|
|
@ -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}}_
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
stepsCompleted: []
|
||||||
|
---
|
||||||
|
|
@ -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}}_
|
|
||||||
|
|
@ -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/`
|
||||||
|
|
@ -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`
|
||||||
|
|
@ -80,12 +80,3 @@ brainstorm_context: "{workflow_path}/data/brainstorm-context.md"
|
||||||
simple_agent_examples: "{project-root}/bmb/reference/agents/simple-examples/"
|
simple_agent_examples: "{project-root}/bmb/reference/agents/simple-examples/"
|
||||||
expert_agent_examples: "{project-root}/bmb/reference/agents/expert-examples/"
|
expert_agent_examples: "{project-root}/bmb/reference/agents/expert-examples/"
|
||||||
module_agent_examples: "{project-root}/bmb/reference/agents/module-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"
|
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ continueFile: '{installed_path}/steps/step-01b-continue.md'
|
||||||
modulePlanTemplate: '{installed_path}/templates/module-plan.template.md'
|
modulePlanTemplate: '{installed_path}/templates/module-plan.template.md'
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
||||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||||
customModuleLocation: '{custom_module_location}'
|
customModuleLocation: '{bmb_creations_output_folder}'
|
||||||
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
|
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
|
||||||
---
|
---
|
||||||
|
|
||||||
# Step 1: Workflow Initialization
|
# Step 1: Workflow Initialization
|
||||||
|
|
|
||||||
|
|
@ -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
|
# Step 1b: Continue Module Creation
|
||||||
|
|
@ -70,7 +70,7 @@ Extract current status from frontmatter fields:
|
||||||
- **Started:** {date}
|
- **Started:** {date}
|
||||||
- **Last Step:** {lastStep}
|
- **Last Step:** {lastStep}
|
||||||
- **Steps Completed:** {stepsCompleted count}/{total steps}
|
- **Steps Completed:** {stepsCompleted count}/{total steps}
|
||||||
- **Location:** {custom_module_location}/{module_name}
|
- **Location:** {bmb_creations_output_folder}/{module_name}
|
||||||
|
|
||||||
\*\*Progress Summary:"
|
\*\*Progress Summary:"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
||||||
nextStepFile: '{installed_path}/steps/step-03-components.md'
|
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'
|
moduleStructureGuide: '{project-root}/bmb/workflows/create-agent-legacy/create-module/module-structure.md'
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
||||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
||||||
nextStepFile: '{installed_path}/steps/step-04-structure.md'
|
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'
|
agent_examples_path: '{project-root}/bmb/reference/agents/module-examples'
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
||||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
||||||
nextStepFile: '{installed_path}/steps/step-05-config.md'
|
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'
|
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
||||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
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
|
### 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
|
1. **agents/** - For agent definition files
|
||||||
2. **workflows/** - For workflow folders
|
2. **workflows/** - For workflow folders
|
||||||
|
|
@ -169,7 +169,7 @@ Update module-plan.md with structure section:
|
||||||
## Module Structure
|
## Module Structure
|
||||||
|
|
||||||
**Module Type:** [Simple/Standard/Complex]
|
**Module Type:** [Simple/Standard/Complex]
|
||||||
**Location:** {custom_module_location}/{module_name}
|
**Location:** {bmb_creations_output_folder}/{module_name}
|
||||||
|
|
||||||
**Directory Structure Created:**
|
**Directory Structure Created:**
|
||||||
- ✅ agents/
|
- ✅ agents/
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
||||||
nextStepFile: '{installed_path}/steps/step-06-agents.md'
|
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'
|
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
||||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
||||||
nextStepFile: '{installed_path}/steps/step-07-workflows.md'
|
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'
|
agentTemplate: '{installed_path}/templates/agent.template.md'
|
||||||
agent_examples_path: '{project-root}/bmb/reference/agents/module-examples'
|
agent_examples_path: '{project-root}/bmb/reference/agents/module-examples'
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
||||||
|
|
@ -217,7 +217,7 @@ agent:
|
||||||
|
|
||||||
**If agent needs memory:**
|
**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:
|
2. Create files:
|
||||||
- memories.md (empty, for persistent memory)
|
- memories.md (empty, for persistent memory)
|
||||||
- instructions.md (empty, for agent protocols)
|
- instructions.md (empty, for agent protocols)
|
||||||
|
|
@ -228,7 +228,7 @@ agent:
|
||||||
**If agent has workflows:**
|
**If agent has workflows:**
|
||||||
For each workflow that needs separate file:
|
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
|
2. Create README.md with workflow plan
|
||||||
|
|
||||||
### 4. Repeat for All Agents
|
### 4. Repeat for All Agents
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
||||||
nextStepFile: '{installed_path}/steps/step-08-installer.md'
|
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'
|
workflowPlanTemplate: '{installed_path}/templates/workflow-plan-template.md'
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
||||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
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:**
|
**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:**
|
**Each workflow folder contains a README.md with:**
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
||||||
nextStepFile: '{installed_path}/steps/step-09-documentation.md'
|
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'
|
installerTemplate: '{installed_path}/templates/installer.template.js'
|
||||||
installConfigTemplate: '{installed_path}/templates/install-config.template.yaml'
|
installConfigTemplate: '{installed_path}/templates/install-config.template.yaml'
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
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
|
### 2. Create Installer Directory
|
||||||
|
|
||||||
Ensure \_module-installer directory exists
|
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
|
### 3. Create module.yaml
|
||||||
|
|
||||||
"I'll create the module.yaml file based on your configuration plan. This is the core installer configuration file."
|
"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
|
### 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."
|
"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
|
Update installer.js with module-specific logic
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
---
|
---
|
||||||
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
||||||
nextStepFile: '{installed_path}/steps/step-10-roadmap.md'
|
nextStepFile: '{installed_path}/steps/step-10-roadmap.md'
|
||||||
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
|
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
|
||||||
moduleReadmeFile: '{custom_module_location}/{module_name}/README.md'
|
moduleReadmeFile: '{bmb_creations_output_folder}/{module_name}/README.md'
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
||||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||||
---
|
---
|
||||||
|
|
@ -249,7 +249,7 @@ Update module-plan.md with documentation section:
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
### README.md Created
|
### 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]
|
- Sections: [list of sections included]
|
||||||
- Status: Complete
|
- Status: Complete
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
---
|
---
|
||||||
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
installed_path: '{project-root}/_bmad/bmb/workflows/create-module'
|
||||||
nextStepFile: '{installed_path}/steps/step-11-validate.md'
|
nextStepFile: '{installed_path}/steps/step-11-validate.md'
|
||||||
modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md'
|
modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md'
|
||||||
moduleTodoFile: '{custom_module_location}/{module_name}/TODO.md'
|
moduleTodoFile: '{bmb_creations_output_folder}/{module_name}/TODO.md'
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
||||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
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
|
### 3. Generate TODO.md
|
||||||
|
|
||||||
Create file: {custom_module_location}/{module_name}/TODO.md
|
Create file: {bmb_creations_output_folder}/{module_name}/TODO.md
|
||||||
|
|
||||||
````markdown
|
````markdown
|
||||||
# {module_display_name} Development Roadmap
|
# {module_display_name} Development Roadmap
|
||||||
|
|
@ -273,7 +273,7 @@ Update module-plan.md with roadmap section:
|
||||||
## Development Roadmap
|
## Development Roadmap
|
||||||
|
|
||||||
### TODO.md Created
|
### TODO.md Created
|
||||||
- Location: {custom_module_location}/{module_name}/TODO.md
|
- Location: {bmb_creations_output_folder}/{module_name}/TODO.md
|
||||||
- Phases defined: 3
|
- Phases defined: 3
|
||||||
- Immediate tasks prioritized
|
- Immediate tasks prioritized
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
workflowFile: '{installed_path}/workflow.md'
|
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'
|
validationChecklist: '{installed_path}/validation.md'
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
||||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
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}
|
- **Name:** {module_display_name}
|
||||||
- **Code:** {module_name}
|
- **Code:** {module_name}
|
||||||
- **Location:** {custom_module_location}/{module_name}
|
- **Location:** {bmb_creations_output_folder}/{module_name}
|
||||||
- **Type:** {module_type}
|
- **Type:** {module_type}
|
||||||
- **Status:** Ready for testing
|
- **Status:** Ready for testing
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ agent:
|
||||||
identity: |
|
identity: |
|
||||||
{agent-identity - multi-line description}
|
{agent-identity - multi-line description}
|
||||||
communication_style: |
|
communication_style: |
|
||||||
{communication-style - multi-line description}
|
{communication-style - 1-2 short sentences to describe chat style}
|
||||||
principles:
|
principles:
|
||||||
- '{agent-principle-1}'
|
- '{agent-principle-1}'
|
||||||
- '{agent-principle-2}'
|
- '{agent-principle-2}'
|
||||||
|
|
@ -27,9 +27,9 @@ agent:
|
||||||
|
|
||||||
# Optional: Only include if agent needs memory/persistence
|
# Optional: Only include if agent needs memory/persistence
|
||||||
critical_actions:
|
critical_actions:
|
||||||
- 'Load COMPLETE file ./[agent-name]-sidecar/memories.md and integrate all past interactions'
|
- 'Load COMPLETE file [bmad_memory]/[agent-name]-sidecar/memories.md and integrate all past interactions'
|
||||||
- 'Load COMPLETE file ./[agent-name]-sidecar/instructions.md and follow ALL protocols'
|
- 'Load COMPLETE file [bmad_memory]/[agent-name]-sidecar/instructions.md and follow ALL protocols'
|
||||||
- 'ONLY read/write files in ./[agent-name]-sidecar/ - this is our private workspace'
|
- 'ONLY read/write files in [bmad_memory]/[agent-name]-sidecar/* - this is our private workspace'
|
||||||
|
|
||||||
# Optional: Embedded prompts for common interactions
|
# Optional: Embedded prompts for common interactions
|
||||||
prompts:
|
prompts:
|
||||||
|
|
@ -98,7 +98,7 @@ agent:
|
||||||
When creating expert agents in modules, create a sidecar folder:
|
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
|
├── memories.md # Persistent memory across sessions
|
||||||
├── instructions.md # Agent-specific protocols
|
├── instructions.md # Agent-specific protocols
|
||||||
├── insights.md # Important breakthroughs/realizations
|
├── insights.md # Important breakthroughs/realizations
|
||||||
|
|
@ -166,14 +166,12 @@ Expert agents support three types of menu actions:
|
||||||
## Notes for Module Creation:
|
## Notes for Module Creation:
|
||||||
|
|
||||||
1. **File Paths**:
|
1. **File Paths**:
|
||||||
- Agent files go in: `{custom_module_location}/{module_name}/agents/[agent-name]/[agent-name].yaml`
|
- Agent files go in: `[bmb_creations_output_folder]/[module_name]/agents/[agent-name]/[agent-name].yaml`
|
||||||
- Sidecar folders go in: `{custom_module_location}/{module_name}/agents/[agent-name]/[agent-name]-sidecar/`
|
- Sidecar folders go in: `[bmb_creations_output_folder]/[module_name]/agents/[agent-name]/[agent-name]-sidecar/`
|
||||||
|
|
||||||
2. **Variable Usage**:
|
2. **Variable Usage**:
|
||||||
- `{agent_sidecar_folder}` resolves to the agents sidecar folder destination after installation
|
- `bmad_memory` resolves to the agents sidecar folder destination after installation
|
||||||
- `_bmad` resolves to \_bmad
|
- `module` is your module code/name
|
||||||
- `{custom_module}` resolves to custom/src/modules
|
|
||||||
- `{module}` is your module code/name
|
|
||||||
|
|
||||||
3. **Creating Sidecar Structure**:
|
3. **Creating Sidecar Structure**:
|
||||||
- When agent is created, also create the sidecar folder
|
- When agent is created, also create the sidecar folder
|
||||||
|
|
|
||||||
|
|
@ -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:
|
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
|
### 2. First Step EXECUTION
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ nextStepFile: '{workflow_path}/steps/step-02-gather.md'
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
workflowFile: '{workflow_path}/workflow.md'
|
||||||
|
|
||||||
# Output files for workflow creation process
|
# 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'
|
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
|
||||||
# Template References
|
# Template References
|
||||||
# No workflow plan template needed - will create plan file directly
|
# No workflow plan template needed - will create plan file directly
|
||||||
|
|
@ -83,7 +83,7 @@ After getting the workflow name:
|
||||||
|
|
||||||
**Check for existing workflows:**
|
**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
|
- If it exists, inform the user and suggest or get from them a unique name or postfix
|
||||||
|
|
||||||
**Example alternatives:**
|
**Example alternatives:**
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmb/workflows/create-workflow'
|
||||||
thisStepFile: '{workflow_path}/steps/step-02-gather.md'
|
thisStepFile: '{workflow_path}/steps/step-02-gather.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-03-tools-configuration.md'
|
nextStepFile: '{workflow_path}/steps/step-03-tools-configuration.md'
|
||||||
# Output files for workflow creation process
|
# 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'
|
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmb/workflows/create-workflow'
|
||||||
thisStepFile: '{workflow_path}/steps/step-03-tools-configuration.md'
|
thisStepFile: '{workflow_path}/steps/step-03-tools-configuration.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-04-plan-review.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'
|
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
|
||||||
|
|
||||||
# Documentation References
|
# Documentation References
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ thisStepFile: '{workflow_path}/steps/step-04-plan-review.md'
|
||||||
nextStepFormDesign: '{workflow_path}/steps/step-05-output-format-design.md'
|
nextStepFormDesign: '{workflow_path}/steps/step-05-output-format-design.md'
|
||||||
nextStepDesign: '{workflow_path}/steps/step-06-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'
|
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmb/workflows/create-workflow'
|
||||||
thisStepFile: '{workflow_path}/steps/step-05-output-format-design.md'
|
thisStepFile: '{workflow_path}/steps/step-05-output-format-design.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-06-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'
|
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ thisStepFile: '{workflow_path}/steps/step-06-design.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-07-build.md'
|
nextStepFile: '{workflow_path}/steps/step-07-build.md'
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
workflowFile: '{workflow_path}/workflow.md'
|
||||||
# Output files for workflow creation process
|
# 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'
|
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ thisStepFile: '{workflow_path}/steps/step-07-build.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-08-review.md'
|
nextStepFile: '{workflow_path}/steps/step-08-review.md'
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
workflowFile: '{workflow_path}/workflow.md'
|
||||||
# Output files for workflow creation process
|
# 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'
|
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
|
||||||
|
|
||||||
# Template References
|
# Template References
|
||||||
|
|
@ -95,7 +95,7 @@ Ready to proceed?"
|
||||||
Create the workflow folder structure in the target location:
|
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
|
├── workflow.md
|
||||||
├── steps/
|
├── steps/
|
||||||
│ ├── step-01-init.md
|
│ ├── step-01-init.md
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ thisStepFile: '{workflow_path}/steps/step-08-review.md'
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
workflowFile: '{workflow_path}/workflow.md'
|
||||||
|
|
||||||
# Output files for workflow creation process
|
# 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'
|
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmb/workflows/create-workflow'
|
||||||
thisStepFile: '{workflow_path}/steps/step-09-complete.md'
|
thisStepFile: '{workflow_path}/steps/step-09-complete.md'
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
workflowFile: '{workflow_path}/workflow.md'
|
||||||
# Output files for workflow creation process
|
# 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'
|
workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md'
|
||||||
completionFile: '{targetWorkflowPath}/completion-summary-{new_workflow_name}.md'
|
completionFile: '{targetWorkflowPath}/completion-summary-{new_workflow_name}.md'
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -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:
|
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
|
### 2. First Step EXECUTION
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,15 @@
|
||||||
# BMad Game Dev Module Configuration
|
|
||||||
|
|
||||||
code: bmgd
|
code: bmgd
|
||||||
name: "BMGD: BMad Game Development"
|
name: "BMGD: BMad Game Development"
|
||||||
default_selected: false
|
|
||||||
|
|
||||||
header: "BMad Game Development Module"
|
header: "BMad Game Development Module"
|
||||||
subheader: "Configure the settings for the 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
|
## user_name
|
||||||
## communication_language
|
## communication_language
|
||||||
## document_output_language
|
## document_output_language
|
||||||
## output_folder
|
## output_folder
|
||||||
## install_user_docs
|
## bmad_memory
|
||||||
## kb_install
|
|
||||||
|
|
||||||
game_project_name:
|
game_project_name:
|
||||||
prompt: "What is the name of your game project?"
|
prompt: "What is the name of your game project?"
|
||||||
|
|
|
||||||
|
|
@ -48,5 +48,5 @@ agent:
|
||||||
- type: exec
|
- type: exec
|
||||||
- expert-chat:
|
- expert-chat:
|
||||||
- input: CH or fuzzy match validate agent
|
- 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
|
- type: action
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ When you edit `workflow-method-greenfield.excalidraw`, regenerate the SVG:
|
||||||
After regenerating the SVG, validate that it renders correctly:
|
After regenerating the SVG, validate that it renders correctly:
|
||||||
|
|
||||||
```bash
|
```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:
|
This script:
|
||||||
|
|
|
||||||
|
|
@ -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.
|
**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
|
### Why TEA Gets Special Treatment
|
||||||
|
|
||||||
TEA uniquely requires:
|
TEA uniquely requires:
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,15 @@
|
||||||
# BMAD™ Method Core Configuration
|
|
||||||
|
|
||||||
code: bmm
|
code: bmm
|
||||||
name: "BMM: BMad Method Agile-AI Driven-Development"
|
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"
|
header: "BMad Method™: Breakthrough Method of Agile-Ai Driven-Dev"
|
||||||
subheader: "Agent and Workflow Configuration for this module"
|
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:
|
# Variables from Core Config inserted:
|
||||||
## user_name
|
## user_name
|
||||||
## communication_language
|
## communication_language
|
||||||
|
## document_output_language
|
||||||
## output_folder
|
## output_folder
|
||||||
|
## bmad_memory
|
||||||
|
|
||||||
project_name:
|
project_name:
|
||||||
prompt: "What is the title of your project you will be working on?"
|
prompt: "What is the title of your project you will be working on?"
|
||||||
|
|
@ -31,20 +30,28 @@ user_skill_level:
|
||||||
- value: "expert"
|
- value: "expert"
|
||||||
label: "Expert - Deep technical knowledge, be direct and technical"
|
label: "Expert - Deep technical knowledge, be direct and technical"
|
||||||
|
|
||||||
sprint_artifacts:
|
planning_artifacts: # Phase 1-3 artifacts
|
||||||
prompt: "Where should sprint artifacts be stored (sprint status, stories, retrospectives)?"
|
prompt: "Where should project planning artifacts be stored?\n - Such as: (Brain Storming, Briefs, PRDs, UX Designs, Architectures, Detailed Epics Plan)"
|
||||||
default: "{output_folder}/sprint-artifacts"
|
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}"
|
result: "{project-root}/{value}"
|
||||||
|
|
||||||
tea_use_mcp_enhancements:
|
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
|
default: false
|
||||||
result: "{value}"
|
result: "{value}"
|
||||||
|
|
||||||
tea_use_playwright_utils:
|
tea_use_playwright_utils:
|
||||||
prompt:
|
prompt:
|
||||||
- "Are you using playwright-utils (@seontechnologies/playwright-utils) in your project?"
|
- "Are you using playwright-utils (@seontechnologies/playwright-utils) in your project?\nYou must install packages yourself, or use test architect's *framework command."
|
||||||
- "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."
|
|
||||||
default: false
|
default: false
|
||||||
result: "{value}"
|
result: "{value}"
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
# BMAD™ Creative Intelligence Suite Configuration
|
|
||||||
|
|
||||||
code: cis
|
code: cis
|
||||||
name: "CIS: Creative Innovation Suite"
|
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"
|
header: "Creative Innovation Suite (CIS) Module"
|
||||||
subheader: "No Configuration needed - uses Core Config only."
|
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:
|
# Variables from Core Config inserted:
|
||||||
## user_name
|
## user_name
|
||||||
## communication_language
|
## communication_language
|
||||||
|
## document_output_language
|
||||||
## output_folder
|
## output_folder
|
||||||
|
## bmad_memory
|
||||||
|
|
|
||||||
|
|
@ -1887,7 +1887,6 @@ If AgentVibes party mode is enabled, immediately trigger TTS with agent's voice:
|
||||||
|
|
||||||
// Determine project directory (parent of bmad/ directory)
|
// Determine project directory (parent of bmad/ directory)
|
||||||
const bmadDir = path.dirname(modulePath);
|
const bmadDir = path.dirname(modulePath);
|
||||||
const projectDir = path.dirname(bmadDir);
|
|
||||||
const cfgAgentsDir = path.join(bmadDir, '_config', 'agents');
|
const cfgAgentsDir = path.join(bmadDir, '_config', 'agents');
|
||||||
|
|
||||||
// Ensure _config/agents directory exists
|
// 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;
|
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');
|
const coreConfigPath = path.join(bmadDir, 'bmb', 'config.yaml');
|
||||||
let coreConfig = {};
|
let coreConfig = {};
|
||||||
if (await fs.pathExists(coreConfigPath)) {
|
if (await fs.pathExists(coreConfigPath)) {
|
||||||
|
|
|
||||||
|
|
@ -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');
|
const coreConfigPath = path.join(bmadDir, 'bmb', 'config.yaml');
|
||||||
let coreConfig = {};
|
let coreConfig = {};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -333,9 +333,9 @@ async function compileAgent(yamlContent, answers = {}, agentName = '', targetPat
|
||||||
finalAnswers = { ...defaults, ...answers };
|
finalAnswers = { ...defaults, ...answers };
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add agent_sidecar_folder to answers if provided in config
|
// Add bmad_memory to answers if provided in config
|
||||||
if (options.config && options.config.agent_sidecar_folder) {
|
if (options.config && options.config.bmad_memory) {
|
||||||
finalAnswers.agent_sidecar_folder = options.config.agent_sidecar_folder;
|
finalAnswers.bmad_memory = options.config.bmad_memory;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Process templates with answers
|
// Process templates with answers
|
||||||
|
|
@ -344,10 +344,10 @@ async function compileAgent(yamlContent, answers = {}, agentName = '', targetPat
|
||||||
// Strip install_config from output
|
// Strip install_config from output
|
||||||
const cleanYaml = stripInstallConfig(processedYaml);
|
const cleanYaml = stripInstallConfig(processedYaml);
|
||||||
|
|
||||||
// Replace {agent_sidecar_folder} in XML content
|
// Replace {bmad_memory} in XML content
|
||||||
let xml = await compileToXml(cleanYaml, agentName, targetPath);
|
let xml = await compileToXml(cleanYaml, agentName, targetPath);
|
||||||
if (finalAnswers.agent_sidecar_folder) {
|
if (finalAnswers.bmad_memory) {
|
||||||
xml = xml.replaceAll('{agent_sidecar_folder}', finalAnswers.agent_sidecar_folder);
|
xml = xml.replaceAll('{bmad_memory}', finalAnswers.bmad_memory);
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue