From cba7cf223fbdba70dbc6d75a4931c02ec28a185c Mon Sep 17 00:00:00 2001 From: Brian Madison Date: Sat, 13 Dec 2025 22:59:58 +0800 Subject: [PATCH] standardize custom agent workflow and module output, and improve module folder selection --- CHANGELOG.md | 2 - docs/agent-customization-guide.md | 2 +- docs/custom-content-installation.md | 4 +- src/core/module.yaml | 11 +- src/modules/bmb/README.md | 15 +- .../bmb/_module-installer/installer.js | 10 +- .../bmb/docs/agents/agent-menu-patterns.md | 2 +- .../docs/agents/expert-agent-architecture.md | 24 +- .../docs/agents/module-agent-architecture.md | 366 ----------------- .../docs/agents/simple-agent-architecture.md | 63 +-- src/modules/bmb/module.yaml | 18 +- .../journal-keeper/journal-keeper.agent.yaml | 14 +- .../agents/module-examples/README.md | 5 +- .../workflows-legacy/edit-module/README.md | 16 - .../workflows-legacy/edit-module/checklist.md | 5 +- .../edit-module/instructions.md | 2 +- .../agents/module-examples/README.md | 2 - .../create-agent/steps/step-02-discover.md | 10 +- .../create-agent/steps/step-03-persona.md | 6 +- .../create-agent/steps/step-04-commands.md | 6 +- .../create-agent/steps/step-05-name.md | 7 +- .../create-agent/steps/step-06-build.md | 72 +--- .../create-agent/steps/step-07-validate.md | 4 +- ...p-11-celebrate.md => step-08-celebrate.md} | 4 - .../create-agent/steps/step-08-setup.md | 179 --------- .../create-agent/steps/step-09-customize.md | 197 ---------- .../create-agent/steps/step-10-build-tools.md | 180 --------- .../create-agent/templates/agent-commands.md | 21 - .../create-agent/templates/agent-persona.md | 25 -- .../templates/agent-plan.template.md | 3 + .../templates/agent-purpose-and-type.md | 23 -- .../templates/expert-agent.template.md | 372 ++++++++++++++++++ .../templates/simple-agent.template.md | 257 ++++++++++++ .../bmb/workflows/create-agent/workflow.md | 9 - .../create-module/steps/step-01-init.md | 4 +- .../create-module/steps/step-01b-continue.md | 4 +- .../create-module/steps/step-02-concept.md | 2 +- .../create-module/steps/step-03-components.md | 2 +- .../create-module/steps/step-04-structure.md | 6 +- .../create-module/steps/step-05-config.md | 2 +- .../create-module/steps/step-06-agents.md | 6 +- .../create-module/steps/step-07-workflows.md | 4 +- .../create-module/steps/step-08-installer.md | 8 +- .../steps/step-09-documentation.md | 6 +- .../create-module/steps/step-10-roadmap.md | 8 +- .../create-module/steps/step-11-validate.md | 4 +- .../create-module/templates/agent.template.md | 20 +- .../bmb/workflows/create-module/workflow.md | 2 +- .../create-workflow/steps/step-01-init.md | 4 +- .../create-workflow/steps/step-02-gather.md | 2 +- .../steps/step-03-tools-configuration.md | 2 +- .../steps/step-04-plan-review.md | 2 +- .../steps/step-05-output-format-design.md | 2 +- .../create-workflow/steps/step-06-design.md | 2 +- .../create-workflow/steps/step-07-build.md | 4 +- .../create-workflow/steps/step-08-review.md | 2 +- .../create-workflow/steps/step-09-complete.md | 2 +- .../bmb/workflows/create-workflow/workflow.md | 2 +- src/modules/bmgd/module.yaml | 10 +- src/modules/bmm/agents/analyst.agent.yaml | 2 +- src/modules/bmm/docs/images/README.md | 2 +- src/modules/bmm/docs/test-architecture.md | 16 - src/modules/bmm/module.yaml | 29 +- src/modules/cis/module.yaml | 8 +- tools/cli/installers/lib/core/installer.js | 3 +- tools/cli/installers/lib/modules/manager.js | 2 +- tools/cli/lib/agent/compiler.js | 12 +- 67 files changed, 815 insertions(+), 1307 deletions(-) delete mode 100644 src/modules/bmb/docs/agents/module-agent-architecture.md rename src/modules/bmb/workflows/create-agent/steps/{step-11-celebrate.md => step-08-celebrate.md} (98%) delete mode 100644 src/modules/bmb/workflows/create-agent/steps/step-08-setup.md delete mode 100644 src/modules/bmb/workflows/create-agent/steps/step-09-customize.md delete mode 100644 src/modules/bmb/workflows/create-agent/steps/step-10-build-tools.md delete mode 100644 src/modules/bmb/workflows/create-agent/templates/agent-commands.md delete mode 100644 src/modules/bmb/workflows/create-agent/templates/agent-persona.md create mode 100644 src/modules/bmb/workflows/create-agent/templates/agent-plan.template.md delete mode 100644 src/modules/bmb/workflows/create-agent/templates/agent-purpose-and-type.md create mode 100644 src/modules/bmb/workflows/create-agent/templates/expert-agent.template.md create mode 100644 src/modules/bmb/workflows/create-agent/templates/simple-agent.template.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c826118..8047ed64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,7 +21,6 @@ **Cleanup Changes:** - **Example Modules Removal**: Temporarily removed example modules to prevent accidental installation -- **Hardcoded Path Cleanup**: Continued removal of hardcoded `.bmad` folder references from demo content - **Memory Management**: Improved sidecar file handling for custom modules ### πŸ“Š Statistics @@ -176,7 +175,6 @@ - Fixed version reading from package.json instead of hardcoded fallback - Removed hardcoded years from WebSearch queries - Removed broken build caching mechanism -- Fixed hardcoded '.bmad' prefix from files-manifest.csv paths - Enhanced TTS injection summary with tracking and documentation - Fixed CI nvmrc configuration issues diff --git a/docs/agent-customization-guide.md b/docs/agent-customization-guide.md index 24f54716..19656d8d 100644 --- a/docs/agent-customization-guide.md +++ b/docs/agent-customization-guide.md @@ -203,6 +203,6 @@ memories: ## Next Steps -- **[BMM Agents Guide](../src/modules/bmm/docs/agents-guide.md)** - Learn about all 12 BMad Method agents +- **[BMM Agents Guide](../src/modules/bmm/docs/agents-guide.md)** - Learn about the BMad Method agents - **[BMB Create Agent Workflow](../src/modules/bmb/workflows/create-agent/README.md)** - Build completely custom agents - **[BMM Complete Documentation](../src/modules/bmm/docs/README.md)** - Full BMad Method reference diff --git a/docs/custom-content-installation.md b/docs/custom-content-installation.md index 3ee4b0a7..314957ed 100644 --- a/docs/custom-content-installation.md +++ b/docs/custom-content-installation.md @@ -160,7 +160,7 @@ The sidecar folder location is configured during BMAD core installation: 1. **Agent Declaration**: Agents declare `hasSidecar: true` in their metadata 2. **Sidecar Detection**: The installer automatically detects folders with "sidecar" in the name 3. **Installation**: Sidecar content is copied to the configured location -4. **Path Replacement**: The `{agent_sidecar_folder}` placeholder in agent configurations is replaced with the actual path to the installed instance of the sidecar folder. Now when you use the agent, depending on its design, will use the content in sidecar to record interactions, remember things you tell it, or serve a host of many other issues. +4. **Path Replacement**: The `{bmad_memory}` placeholder in agent configurations is replaced with the actual path to the installed instance of the sidecar folder. Now when you use the agent, depending on its design, will use the content in sidecar to record interactions, remember things you tell it, or serve a host of many other issues. ### Example Structure @@ -232,7 +232,7 @@ Custom content can be distributed: - Ensure the agent has `hasSidecar: true` in metadata - Check that sidecar folders contain "sidecar" in the name -- Verify the agent_sidecar_folder configuration +- Verify the bmad_memory configuration - Ensure the custom agent has proper language in it to actually use the sidecar content, including loading memories on agent load. ## Support diff --git a/src/core/module.yaml b/src/core/module.yaml index cab95616..ec066b95 100644 --- a/src/core/module.yaml +++ b/src/core/module.yaml @@ -1,3 +1,6 @@ +code: core +name: "BMADβ„’ Core Module" + header: "BMADβ„’ Core Configuration" subheader: "Configure the core settings for your BMADβ„’ installation.\nThese settings will be used across all modules and agents." @@ -18,10 +21,10 @@ document_output_language: output_folder: prompt: "Where should AI generated artifacts be saved across all modules?" - default: "docs" + default: "bmad-output" result: "{project-root}/{value}" -agent_sidecar_folder: - prompt: "Where should users agent sidecar memory folders be stored?" - default: "_bmad-user-memory" +bmad_memory: + prompt: "Some agents will record their own memories and history. Where should these be stored?" + default: "_bmad/_memory" result: "{project-root}/{value}" diff --git a/src/modules/bmb/README.md b/src/modules/bmb/README.md index d5efa546..05b3cd45 100644 --- a/src/modules/bmb/README.md +++ b/src/modules/bmb/README.md @@ -22,26 +22,15 @@ Specialized tools and workflows for creating, customizing, and extending BMad co ### πŸ“‹ Workflows -**Active Workflows** (Step-File Architecture) - -- Location: `bmb/workflows/create-agent/` -- 5 core workflows with 41 step files total -- Template-based execution with JIT loading - -**Legacy Workflows** (Being Migrated) - -- Location: `bmb/workflows/create-agent-legacy/` -- Module-specific workflows pending conversion to step-file architecture - ### πŸ“š Documentation -- Location: `src/modules/bmb/docs/` +- Location: `./docs/` - Comprehensive guides for agents and workflows - Architecture patterns and best practices ### πŸ” Reference Materials -- Location: `src/modules/bmb/reference/` +- Location: `./reference/` - Working examples of agents and workflows - Template patterns and implementation guides diff --git a/src/modules/bmb/_module-installer/installer.js b/src/modules/bmb/_module-installer/installer.js index 9b201f57..9bf68577 100644 --- a/src/modules/bmb/_module-installer/installer.js +++ b/src/modules/bmb/_module-installer/installer.js @@ -20,10 +20,10 @@ async function install(options) { try { logger.log(chalk.blue('πŸ”§ Setting up BMB Module...')); - // Generate custom.yaml in custom_stand_alone_location - if (config['custom_stand_alone_location']) { + // Generate custom.yaml in bmb_creations_output_folder + if (config['bmb_creations_output_folder']) { // The config value contains {project-root} which needs to be resolved - const rawLocation = config['custom_stand_alone_location']; + const rawLocation = config['bmb_creations_output_folder']; const customLocation = rawLocation.replace('{project-root}', projectRoot); const customDestPath = path.join(customLocation, 'custom.yaml'); @@ -49,8 +49,8 @@ default_selected: true } // Set up custom module location if configured - if (config['custom_module_location']) { - const rawModuleLocation = config['custom_module_location']; + if (config['bmb_creations_output_folder']) { + const rawModuleLocation = config['bmb_creations_output_folder']; const moduleLocation = rawModuleLocation.replace('{project-root}', projectRoot); logger.log(chalk.cyan(` Setting up custom modules at: ${moduleLocation}`)); diff --git a/src/modules/bmb/docs/agents/agent-menu-patterns.md b/src/modules/bmb/docs/agents/agent-menu-patterns.md index df5a4bd1..1e1b5e35 100644 --- a/src/modules/bmb/docs/agents/agent-menu-patterns.md +++ b/src/modules/bmb/docs/agents/agent-menu-patterns.md @@ -375,7 +375,7 @@ exec: "../../../core/tasks/validate.xml" - `{project-root}` - Project root directory - `_bmad` - BMAD installation folder -- `{agent_sidecar_folder}` - Agent installation directory (Expert agents) +- `{bmad_memory}` - Agent installation directory (Expert agents) - `{output_folder}` - Document output location - `{user_name}` - User's name from config - `{communication_language}` - Language preference diff --git a/src/modules/bmb/docs/agents/expert-agent-architecture.md b/src/modules/bmb/docs/agents/expert-agent-architecture.md index 6dd2ec52..0b9f8e74 100644 --- a/src/modules/bmb/docs/agents/expert-agent-architecture.md +++ b/src/modules/bmb/docs/agents/expert-agent-architecture.md @@ -97,14 +97,22 @@ agent: action: 'Update ./{agent-name}-sidecar/memories.md with session insights' description: 'Save what we discussed today' - - trigger: patterns - action: '#memory-recall' - description: 'Recall patterns from past interactions' - - trigger: insight action: 'Document breakthrough in ./{agent-name}-sidecar/breakthroughs.md' description: 'Record a significant insight' + - multi: "[DF] Do Foo or start [CH] Chat with expert" + triggers: + - do-foo + - input: [DF] or fuzzy match on do foo + - action: '#main-action' + - data: what is being discussed or suggested with the command, along with custom party custom agents if specified + - type: action + - expert-chat: + - input: [CH] or fuzzy match validate agent + - action: agent responds as expert based on its persona to converse + - type: action + install_config: compile_time_only: true description: 'Personalize your expert agent' @@ -196,7 +204,7 @@ critical_actions: - **Memory integration** - Past context becomes part of current session - **Protocol adherence** - Ensures consistent behavior -### {agent_sidecar_folder} Variable +### {bmad_memory} Variable Special variable resolved during installation: @@ -313,7 +321,7 @@ critical_actions: 1. **Load sidecar files in critical_actions** - Must be explicit and MANDATORY 2. **Enforce domain restrictions** - Clear boundaries prevent scope creep -3. **Use {agent_sidecar_folder} paths** - Portable across installations +3. **Use {bmad_memory} paths** - Portable across installations 4. **Design for memory growth** - Structure sidecar files for accumulation 5. **Reference past naturally** - Don't dump memory, weave it into conversation 6. **Separate concerns** - Memories, instructions, knowledge in distinct files @@ -356,8 +364,8 @@ identity: | - [ ] Sidecar folder structure created and populated - [ ] memories.md has clear section structure - [ ] instructions.md contains core directives -- [ ] Menu actions reference {agent_sidecar_folder} correctly -- [ ] File paths use {agent_sidecar_folder} variable +- [ ] Menu actions reference {bmad_memory} correctly +- [ ] File paths use {bmad_memory} variable - [ ] Install config personalizes sidecar references - [ ] Agent folder named consistently: `{agent-name}/` - [ ] YAML file named: `{agent-name}.agent.yaml` diff --git a/src/modules/bmb/docs/agents/module-agent-architecture.md b/src/modules/bmb/docs/agents/module-agent-architecture.md deleted file mode 100644 index 774e7125..00000000 --- a/src/modules/bmb/docs/agents/module-agent-architecture.md +++ /dev/null @@ -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 -Load and read {project-root}/_bmad/{module}/config.yaml... -``` - -## 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/` diff --git a/src/modules/bmb/docs/agents/simple-agent-architecture.md b/src/modules/bmb/docs/agents/simple-agent-architecture.md index fe232d7c..e68a3c56 100644 --- a/src/modules/bmb/docs/agents/simple-agent-architecture.md +++ b/src/modules/bmb/docs/agents/simple-agent-architecture.md @@ -63,18 +63,22 @@ agent: Another reusable prompt template menu: - - trigger: action1 - action: '#main-action' - description: 'Execute the main action' - - - trigger: action2 - action: '#another-action' - description: 'Execute another action' - - trigger: inline - action: 'Direct inline instruction text' + action: 'Direct inline prompt text' description: 'Execute inline action' + - multi: "[DF] Do Foo or start [CH] Chat with expert" + triggers: + - do-foo + - input: [DF] or fuzzy match on do foo + - action: '#main-action' + - data: what is being discussed or suggested with the command, along with custom party custom agents if specified + - type: action + - expert-chat: + - input: [CH] or fuzzy match validate agent + - action: agent responds as expert based on its persona to converse + - type: action + install_config: compile_time_only: true description: 'Personalize your agent' @@ -202,7 +206,7 @@ The `tools/cli/lib/agent/compiler.js` automatically adds: ## Reference Example -See: `src/modules/bmb/reference/agents/simple-examples/commit-poet.agent.yaml` +See: `../../reference/agents/simple-examples/commit-poet.agent.yaml` Features demonstrated: @@ -243,50 +247,11 @@ The installer: 5. **Use semantic XML tags** in prompt content for clarity 6. **Test all conditional paths** before distribution -## Common Patterns - -### Style Variants - -```yaml -communication_style: | - {{#if enthusiasm == "high"}} - Enthusiastic and energetic approach! - {{/if}} - {{#if enthusiasm == "moderate"}} - Balanced and professional demeanor. - {{/if}} -``` - -### Feature Toggles - -```yaml -prompts: - - id: main-action - content: | - {{#if advanced_mode}} - Include advanced analysis steps... - {{/if}} - {{#unless advanced_mode}} - Basic analysis only... - {{/unless}} -``` - -### User Personalization - -```yaml -identity: | - {{#if custom_name}} - Known as {{custom_name}} to you. - {{/if}} -``` - ## Validation Checklist - [ ] Valid YAML syntax - [ ] All metadata fields present (id, name, title, icon, type) - [ ] Persona complete (role, identity, communication_style, principles) - [ ] Prompts have unique IDs -- [ ] Menu triggers don't start with `*` (auto-added) - [ ] Install config questions have defaults -- [ ] Handlebars syntax is correct - [ ] File named `{agent-name}.agent.yaml` diff --git a/src/modules/bmb/module.yaml b/src/modules/bmb/module.yaml index 77dc1ce3..d2546f2e 100644 --- a/src/modules/bmb/module.yaml +++ b/src/modules/bmb/module.yaml @@ -1,23 +1,17 @@ -# BMADβ„’ Method Core Configuration - code: bmb name: "BMB: BMad Builder - Agent, Workflow and Module Builder" -default_selected: false # This module will not be selected by default for new installations - header: "BMad Optimized Builder (BoMB) Module Configuration" subheader: "Configure the settings for the BoMB Factory!\nThe agent, workflow and module builder for BMADβ„’" +default_selected: false # This module will not be selected by default for new installations # Variables from Core Config inserted: ## user_name ## communication_language +## document_output_language ## output_folder +## bmad_memory -custom_stand_alone_location: - prompt: "Where do custom agents and workflows get stored?" - default: "bmad-custom-src" - result: "{project-root}/{value}" - -custom_module_location: - prompt: "Where do custom modules get stored?" - default: "bmad-custom-modules-src" +bmb_creations_output_folder: + prompt: "Where should BoMB generated agents, workflows and modules SOURCE be saved?" + default: "{output_folder}/bmb-creations" result: "{project-root}/{value}" diff --git a/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml b/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml index 3574da75..89c73bde 100644 --- a/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +++ b/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml @@ -20,9 +20,9 @@ agent: - Reflection transforms experience into wisdom critical_actions: - - "Load COMPLETE file {agent_sidecar_folder}/journal-keeper-sidecar/memories.md and remember all past insights" - - "Load COMPLETE file {agent_sidecar_folder}/journal-keeper-sidecar/instructions.md and follow ALL journaling protocols" - - "ONLY read/write files in {agent_sidecar_folder}/journal-keeper-sidecar/ - this is our private space" + - "Load COMPLETE file {bmad_memory}/journal-keeper-sidecar/memories.md and remember all past insights" + - "Load COMPLETE file {bmad_memory}/journal-keeper-sidecar/instructions.md and follow ALL journaling protocols" + - "ONLY read/write files in {bmad_memory}/journal-keeper-sidecar/ - this is our private space" - "Track mood patterns, recurring themes, and breakthrough moments" - "Reference past entries naturally to show continuity" @@ -120,7 +120,7 @@ agent: description: "Write today's journal entry" - trigger: quick - action: "Save a quick, unstructured entry to {agent_sidecar_folder}/journal-keeper-sidecar/entries/entry-{date}.md with timestamp and any patterns noticed" + action: "Save a quick, unstructured entry to {bmad_memory}/journal-keeper-sidecar/entries/entry-{date}.md with timestamp and any patterns noticed" description: "Quick capture without prompts" - trigger: mood @@ -140,13 +140,13 @@ agent: description: "Reflect on the past week" - trigger: insight - action: "Document this breakthrough in {agent_sidecar_folder}/journal-keeper-sidecar/breakthroughs.md with date and significance" + action: "Document this breakthrough in {bmad_memory}/journal-keeper-sidecar/breakthroughs.md with date and significance" description: "Record a meaningful insight" - trigger: read-back - action: "Load and share entries from {agent_sidecar_folder}/journal-keeper-sidecar/entries/ for requested timeframe, highlighting themes and growth" + action: "Load and share entries from {bmad_memory}/journal-keeper-sidecar/entries/ for requested timeframe, highlighting themes and growth" description: "Review past entries" - trigger: save - action: "Update {agent_sidecar_folder}/journal-keeper-sidecar/memories.md with today's session insights and emotional markers" + action: "Update {bmad_memory}/journal-keeper-sidecar/memories.md with today's session insights and emotional markers" description: "Save what we discussed today" diff --git a/src/modules/bmb/reference/agents/module-examples/README.md b/src/modules/bmb/reference/agents/module-examples/README.md index 11202547..a5e4bb45 100644 --- a/src/modules/bmb/reference/agents/module-examples/README.md +++ b/src/modules/bmb/reference/agents/module-examples/README.md @@ -8,8 +8,9 @@ Module agents integrate with BMAD module workflows (BMM, CIS, BMB). They: - Orchestrate multi-step workflows - Use `_bmad` path variables -- Have fixed professional personas (no install_config) - Reference module-specific configurations +- Can be bundled into web bundlers with the other agents +- Participate in party mode with the modules other agents ## Examples @@ -46,5 +47,3 @@ When creating module agents: 3. Rewrite persona for your domain 4. Replace menu with actual available workflows 5. Remove hypothetical workflow references - -See `/src/modules/bmb/docs/agents/module-agent-architecture.md` for complete guide. diff --git a/src/modules/bmb/workflows-legacy/edit-module/README.md b/src/modules/bmb/workflows-legacy/edit-module/README.md index e5bd2ac4..d14308cb 100644 --- a/src/modules/bmb/workflows-legacy/edit-module/README.md +++ b/src/modules/bmb/workflows-legacy/edit-module/README.md @@ -143,22 +143,6 @@ Changes are reviewed and approved by you before being applied. - Full module review (option 12) is great for inherited or legacy modules - The workflow handles path updates when you reorganize structure -## Source vs Installed Modules - -**Source modules** (in src/modules/): - -- Have installer files in tools/cli/installers/ -- Can configure web bundles -- Are the development source of truth - -**Installed modules** (in \_bmad/): - -- Are deployed to target projects -- Use config.yaml for user customization -- Are compiled from source during installation - -This workflow works with both, but installer options only apply to source modules. - ## Example Usage ``` diff --git a/src/modules/bmb/workflows-legacy/edit-module/checklist.md b/src/modules/bmb/workflows-legacy/edit-module/checklist.md index b7216a44..40b0759c 100644 --- a/src/modules/bmb/workflows-legacy/edit-module/checklist.md +++ b/src/modules/bmb/workflows-legacy/edit-module/checklist.md @@ -4,8 +4,7 @@ Use this checklist to validate module edits meet BMAD Core standards. ## Module Structure Validation -- [ ] Module has clear 3-letter code (bmm, bmb, cis, etc.) -- [ ] Module is in correct location (src/modules/ for source, \_bmad/ for installed) +- [ ] Module has clear abbreviation code (bmm, bmb, cis, etc.) - [ ] agents/ directory exists - [ ] workflows/ directory exists - [ ] config.yaml exists in module root @@ -24,7 +23,7 @@ Use this checklist to validate module edits meet BMAD Core standards. ### Optional Fields (if used) -- [ ] custom_module_location documented +- [ ] bmb_creations_output_folder documented - [ ] Module-specific fields documented in README ### File Quality diff --git a/src/modules/bmb/workflows-legacy/edit-module/instructions.md b/src/modules/bmb/workflows-legacy/edit-module/instructions.md index 8d08d590..a6f20aab 100644 --- a/src/modules/bmb/workflows-legacy/edit-module/instructions.md +++ b/src/modules/bmb/workflows-legacy/edit-module/instructions.md @@ -9,7 +9,7 @@ -What is the path to the module you want to edit? (provide path to module directory like _bmad/bmm/ or src/modules/bmm/) +What is the path to the module source you want to edit? Load the module directory structure completely: diff --git a/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md b/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md index 11202547..1911ec7c 100644 --- a/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +++ b/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md @@ -46,5 +46,3 @@ When creating module agents: 3. Rewrite persona for your domain 4. Replace menu with actual available workflows 5. Remove hypothetical workflow references - -See `/src/modules/bmb/docs/agents/module-agent-architecture.md` for complete guide. diff --git a/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md b/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md index bf009ddc..43fc5e1e 100644 --- a/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +++ b/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md @@ -9,7 +9,7 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent' thisStepFile: '{workflow_path}/steps/step-02-discover.md' nextStepFile: '{workflow_path}/steps/step-03-persona.md' workflowFile: '{workflow_path}/workflow.md' -outputFile: '{output_folder}/agent-purpose-{project_name}.md' +agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md' agentTypesGuide: '{project-root}/_bmad/bmb/docs/agents/understanding-agent-types.md' simpleExamples: '{workflow_path}/data/reference/agents/simple-examples/' expertExamples: '{workflow_path}/data/reference/agents/expert-examples/' @@ -112,10 +112,6 @@ As purpose becomes clear, analyze and recommend appropriate agent type. - Choose when: Needs to remember across sessions, personal knowledge base, learning over time - CAN have personal workflows in sidecar if critical_actions loads workflow engine - Example: Personal research assistant, domain expert advisor, learning companion - -- **Module Agent** - Workflow orchestration, team integration, shared infrastructure - - Choose when: Coordinates workflows, works with other agents, professional operations - - CAN invoke module workflows and coordinate with team agents - Example: Project coordinator, workflow manager, team orchestrator **Type Selection Process:** @@ -162,7 +158,7 @@ As purpose becomes clear, analyze and recommend appropriate agent type. [Any relevant insights from previous brainstorming session] ``` -Save this content to `{outputFile}` for reference in subsequent steps. +Save this content to {agentPlan} for reference in subsequent steps. ### 6. Present MENU OPTIONS @@ -172,7 +168,7 @@ Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Cont - IF A: Execute {advancedElicitationTask} - IF P: Execute {partyModeWorkflow} -- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile} +- IF C: Save content to {agentPlan}, update frontmatter, then only then load, read entire file, then execute {nextStepFile} - IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options) #### EXECUTION RULES: diff --git a/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md b/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md index e0b23168..bf0479cc 100644 --- a/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +++ b/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md @@ -9,7 +9,7 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent' thisStepFile: '{workflow_path}/steps/step-03-persona.md' nextStepFile: '{workflow_path}/steps/step-04-commands.md' workflowFile: '{workflow_path}/workflow.md' -outputFile: '{output_folder}/agent-persona-{project_name}.md' +agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md' communicationPresets: '{workflow_path}/data/communication-presets.csv' agentMenuPatterns: '{project-root}/_bmad/bmb/docs/agents/agent-menu-patterns.md' @@ -211,7 +211,7 @@ Ask: "How should this agent guide users - with adaptive conversation (intent-bas [Intent-based or Prescriptive with rationale] ``` -Save this content to `{outputFile}` for reference in subsequent steps. +Append this content to {agentPlan} for reference in subsequent steps. ### 8. Present MENU OPTIONS @@ -221,7 +221,7 @@ Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Cont - IF A: Execute {advancedElicitationTask} - IF P: Execute {partyModeWorkflow} -- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile} +- IF C: Save content to {agentPlan}, update frontmatter, then only then load, read entire file, then execute {nextStepFile} - IF Any other comments or queries: help user respond then [Redisplay Menu Options](#8-present-menu-options) #### EXECUTION RULES: diff --git a/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md b/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md index 8bcec3e0..2f52e2e5 100644 --- a/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +++ b/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md @@ -9,7 +9,7 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent' thisStepFile: '{workflow_path}/steps/step-04-commands.md' nextStepFile: '{workflow_path}/steps/step-05-name.md' workflowFile: '{workflow_path}/workflow.md' -outputFile: '{output_folder}/agent-commands-{project_name}.md' +agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md' agentMenuPatterns: '{project-root}/_bmad/bmb/docs/agents/agent-menu-patterns.md' simpleArchitecture: '{project-root}/_bmad/bmb/docs/agents/simple-agent-architecture.md' expertArchitecture: '{project-root}/_bmad/bmb/docs/agents/expert-agent-architecture.md' @@ -187,7 +187,7 @@ If user seems engaged, explore special features: [Architecture-specific considerations and technical requirements] ``` -Save this content to `{outputFile}` for reference in subsequent steps. +Save this content to {agentPlan} for reference in subsequent steps. ### 7. Present MENU OPTIONS @@ -197,7 +197,7 @@ Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Cont - IF A: Execute {advancedElicitationTask} - IF P: Execute {partyModeWorkflow} -- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile} +- IF C: Save content to {agentPlan}, update frontmatter, then only then load, read entire file, then execute {nextStepFile} - IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options) #### EXECUTION RULES: diff --git a/src/modules/bmb/workflows/create-agent/steps/step-05-name.md b/src/modules/bmb/workflows/create-agent/steps/step-05-name.md index 58a9b3b3..12fac3f6 100644 --- a/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +++ b/src/modules/bmb/workflows/create-agent/steps/step-05-name.md @@ -9,7 +9,8 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent' thisStepFile: '{workflow_path}/steps/step-05-name.md' nextStepFile: '{workflow_path}/steps/step-06-build.md' workflowFile: '{workflow_path}/workflow.md' -outputFile: '{output_folder}/agent-identity-{project_name}.md' + +agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md' # Template References identityTemplate: '{workflow_path}/templates/agent-identity.md' @@ -182,7 +183,7 @@ Once name is selected, confirm the complete identity package: [User confirmation that identity package feels right] ``` -Save this content to `{outputFile}` for reference in subsequent steps. +Save this content to {agentPlan} for reference in subsequent steps. ### 6. Present MENU OPTIONS @@ -192,7 +193,7 @@ Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Cont - IF A: Execute {advancedElicitationTask} - IF P: Execute {partyModeWorkflow} -- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile} +- IF C: Save content to {agentPlan}, update frontmatter, then only then load, read entire file, then execute {nextStepFile} - IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options) #### EXECUTION RULES: diff --git a/src/modules/bmb/workflows/create-agent/steps/step-06-build.md b/src/modules/bmb/workflows/create-agent/steps/step-06-build.md index 0de3a798..c95b4f5a 100644 --- a/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +++ b/src/modules/bmb/workflows/create-agent/steps/step-06-build.md @@ -9,12 +9,12 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent' thisStepFile: '{workflow_path}/steps/step-06-build.md' nextStepFile: '{workflow_path}/steps/step-07-validate.md' workflowFile: '{workflow_path}/workflow.md' -outputFile: '{output_folder}/agent-yaml-{project_name}.md' -moduleOutputFile: '{project-root}/_bmad/{target_module}/agents/{agent_filename}.agent.yaml' -standaloneOutputFile: '{workflow_path}/data/{agent_filename}/{agent_filename}.agent.yaml' +agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md' +agentBuildOutput: '{bmb_creations_output_folder}/{agent-name}' # Template References -completeAgentTemplate: '{workflow_path}/templates/agent-complete-{agent_type}.md' +simpleAgentTemplate: '{workflow_path}/templates/simple-agent.template.md' +expertAgentTemplate: '{workflow_path}/templates/expert-agent.template.md' # Task References advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' @@ -25,7 +25,7 @@ partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' ## STEP GOAL: -Generate the complete YAML agent file incorporating all discovered elements: purpose, persona, capabilities, name, and identity while maintaining the collaborative creation journey. +Generate the complete YAML agent folder, yaml file and sidecar content to the specification defined in {agentBuildOutput} completely. ## MANDATORY EXECUTION RULES (READ FIRST): @@ -46,10 +46,10 @@ Generate the complete YAML agent file incorporating all discovered elements: pur ### Step-Specific Rules: -- 🎯 Focus only on generating complete YAML structure based on discovered elements -- 🚫 FORBIDDEN to duplicate auto-injected features (help, exit, activation handlers) +- 🎯 Focus only on generating complete YAML and sidecar content structure based on discovered elements +- 🚫 FORBIDDEN to duplicate auto-injected features (help and exit menu items, activation handler instructions) - πŸ’¬ Approach: Present the journey of collaborative creation while building technical structure -- πŸ“‹ Generate YAML that accurately reflects all discoveries from previous steps +- πŸ“‹ Generate YAML and sidecar files that accurately reflects all discoveries from previous steps ## EXECUTION PROTOCOLS: @@ -85,19 +85,15 @@ Present this to the user: Based on determined agent type, load appropriate template: -- Simple Agent: `agent-complete-simple.md` -- Expert Agent: `agent-complete-expert.md` -- Module Agent: `agent-complete-module.md` +- If (agent will have memories and optionally its own knowledge, separate prompt files, or data in separate files) + - Utilize {expertAgentTemplate} to generate the agent output file {agentBuildOutput}/{agent-name}.agent.yaml + - Create the Side-cre folder to hold the optional sidecar files if needed from plan in following steps at {agentBuildOutput}/{agent-name}/{agent-name}-sidecar +- ELSE: + - utilize {simpleAgentTemplate} to generate the agent output file {agentBuildOutput}/{agent-name}.agent.yaml -### 3. YAML Structure Generation +### 4. Generate Complete YAML and sidecar content if applicable -Explain the core structure to user: - -"I'll now generate the complete YAML that incorporates everything we've discovered. This will include your agent's metadata, persona, capabilities, and configuration." - -### 4. Generate Complete YAML - -Create the complete YAML incorporating all discovered elements: +Create the complete YAML incorporating all discovered elements from the plan: **Core Structure:** @@ -140,41 +136,7 @@ Ensure proper implementation based on agent type: - Memory integration points - Personal workflow capabilities -**Module Agent:** - -- Workflow orchestration capabilities -- Team integration references -- Cross-agent coordination - -### 6. Document Complete YAML - -#### Content to Append (if applicable): - -```markdown -## Complete Agent YAML - -### Agent Type - -[Simple/Expert/Module as determined] - -### Generated Configuration - -[Complete YAML structure with all discovered elements] - -### Key Features Integrated - -- Purpose and role from discovery phase -- Complete persona with four-field system -- All capabilities and commands developed -- Agent name and identity established -- Type-specific optimizations applied - -### Output Configuration - -[Proper file paths and configuration based on agent type] -``` - -Save this content to `{outputFile}` for reference. +Ensure all files generated are complete, and nothing from the plan has not been skipped, and then give a creational summary of what was done to the user in chat. ### 7. Present MENU OPTIONS @@ -184,7 +146,7 @@ Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Cont - IF A: Execute {advancedElicitationTask} - IF P: Execute {partyModeWorkflow} -- IF C: Save content to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile} +- IF C: Save content to {agentBuildOutput}, update frontmatter, then only then load, read entire file, then execute {nextStepFile} - IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options) #### EXECUTION RULES: diff --git a/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md b/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md index f232463a..bd0011a5 100644 --- a/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +++ b/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md @@ -7,9 +7,9 @@ workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent' # File References thisStepFile: '{workflow_path}/steps/step-07-validate.md' -nextStepFile: '{workflow_path}/steps/step-08-setup.md' +nextStepFile: '{workflow_path}/steps/step-08-celebrate.md' workflowFile: '{workflow_path}/workflow.md' -outputFile: '{output_folder}/agent-validation-{project_name}.md' +outputFile: '{bmb_creations_output_folder}/agent-validation-{project_name}.md' agentValidationChecklist: '{project-root}/_bmad/bmb/workflows/create-agent/agent-validation-checklist.md' agentFile: '{{output_file_path}}' diff --git a/src/modules/bmb/workflows/create-agent/steps/step-11-celebrate.md b/src/modules/bmb/workflows/create-agent/steps/step-08-celebrate.md similarity index 98% rename from src/modules/bmb/workflows/create-agent/steps/step-11-celebrate.md rename to src/modules/bmb/workflows/create-agent/steps/step-08-celebrate.md index c21a9576..1acc94cb 100644 --- a/src/modules/bmb/workflows/create-agent/steps/step-11-celebrate.md +++ b/src/modules/bmb/workflows/create-agent/steps/step-08-celebrate.md @@ -10,10 +10,6 @@ thisStepFile: '{workflow_path}/steps/step-11-celebrate.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/agent-completion-{project_name}.md' agentFile: '{{output_file_path}}' -compiledAgentFile: '{{compiled_agent_path}}' - -# Template References -completionTemplate: '{workflow_path}/templates/completion-summary.md' # Task References advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' diff --git a/src/modules/bmb/workflows/create-agent/steps/step-08-setup.md b/src/modules/bmb/workflows/create-agent/steps/step-08-setup.md deleted file mode 100644 index 4d7c8c2a..00000000 --- a/src/modules/bmb/workflows/create-agent/steps/step-08-setup.md +++ /dev/null @@ -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. diff --git a/src/modules/bmb/workflows/create-agent/steps/step-09-customize.md b/src/modules/bmb/workflows/create-agent/steps/step-09-customize.md deleted file mode 100644 index 240cb36c..00000000 --- a/src/modules/bmb/workflows/create-agent/steps/step-09-customize.md +++ /dev/null @@ -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. diff --git a/src/modules/bmb/workflows/create-agent/steps/step-10-build-tools.md b/src/modules/bmb/workflows/create-agent/steps/step-10-build-tools.md deleted file mode 100644 index ef70b6c2..00000000 --- a/src/modules/bmb/workflows/create-agent/steps/step-10-build-tools.md +++ /dev/null @@ -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. diff --git a/src/modules/bmb/workflows/create-agent/templates/agent-commands.md b/src/modules/bmb/workflows/create-agent/templates/agent-commands.md deleted file mode 100644 index e9d56ab4..00000000 --- a/src/modules/bmb/workflows/create-agent/templates/agent-commands.md +++ /dev/null @@ -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}}_ diff --git a/src/modules/bmb/workflows/create-agent/templates/agent-persona.md b/src/modules/bmb/workflows/create-agent/templates/agent-persona.md deleted file mode 100644 index 7abadbc5..00000000 --- a/src/modules/bmb/workflows/create-agent/templates/agent-persona.md +++ /dev/null @@ -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}}_ diff --git a/src/modules/bmb/workflows/create-agent/templates/agent-plan.template.md b/src/modules/bmb/workflows/create-agent/templates/agent-plan.template.md new file mode 100644 index 00000000..8888bb7c --- /dev/null +++ b/src/modules/bmb/workflows/create-agent/templates/agent-plan.template.md @@ -0,0 +1,3 @@ +--- +stepsCompleted: [] +--- diff --git a/src/modules/bmb/workflows/create-agent/templates/agent-purpose-and-type.md b/src/modules/bmb/workflows/create-agent/templates/agent-purpose-and-type.md deleted file mode 100644 index 44c18223..00000000 --- a/src/modules/bmb/workflows/create-agent/templates/agent-purpose-and-type.md +++ /dev/null @@ -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}}_ diff --git a/src/modules/bmb/workflows/create-agent/templates/expert-agent.template.md b/src/modules/bmb/workflows/create-agent/templates/expert-agent.template.md new file mode 100644 index 00000000..0b9f8e74 --- /dev/null +++ b/src/modules/bmb/workflows/create-agent/templates/expert-agent.template.md @@ -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: | + + Guide user through the primary function. + {{#if tone_style == "gentle"}} + Use gentle, supportive approach. + {{/if}} + + + + 1. Understand context + 2. Provide guidance + 3. Record insights + + + - id: memory-recall + content: | + + Access and share relevant memories. + + + 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 + + + +## Session History + + + +## Personal Notes + + +``` + +**instructions.md** - Private directives + +```markdown +# Agent Private Instructions + +## Core Directives + +- Maintain character consistency +- Domain boundaries: {specific domain} +- Access restrictions: Only sidecar folder + +## Special Rules + + +``` + +**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 + Load COMPLETE file ./memories.md... + Load COMPLETE file ./instructions.md... + ONLY read/write files in ./... + ``` + +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: | + + Reference memories.md naturally: + "Last week you mentioned..." or "I notice a pattern..." + +``` + +### 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/` diff --git a/src/modules/bmb/workflows/create-agent/templates/simple-agent.template.md b/src/modules/bmb/workflows/create-agent/templates/simple-agent.template.md new file mode 100644 index 00000000..e68a3c56 --- /dev/null +++ b/src/modules/bmb/workflows/create-agent/templates/simple-agent.template.md @@ -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: | + + What this prompt does + + + + 1. Step one + {{#if detailed_mode}} + 2. Additional detailed step + {{/if}} + 3. Final step + + + - 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: | + + Analyze the provided code for patterns + +``` + +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` diff --git a/src/modules/bmb/workflows/create-agent/workflow.md b/src/modules/bmb/workflows/create-agent/workflow.md index 604f05a2..7501c796 100644 --- a/src/modules/bmb/workflows/create-agent/workflow.md +++ b/src/modules/bmb/workflows/create-agent/workflow.md @@ -80,12 +80,3 @@ brainstorm_context: "{workflow_path}/data/brainstorm-context.md" simple_agent_examples: "{project-root}/bmb/reference/agents/simple-examples/" expert_agent_examples: "{project-root}/bmb/reference/agents/expert-examples/" module_agent_examples: "{project-root}/bmb/reference/agents/module-examples/" - -# Output configuration - -custom_agent_location: "{project-root}/\_bmad/custom/src/agents" -module_output_file: "{project-root}/\_bmad/{target_module}/agents/{agent_filename}.agent.yaml" -standalone_output_folder: "{custom_agent_location}/{agent_filename}" -standalone_output_file: "{standalone_output_folder}/{agent_filename}.agent.yaml" -standalone_info_guide: "{standalone_output_folder}/info-and-installation-guide.md" -config_output_file: "{project-root}/\_bmad/\_config/agents/{target_module}-{agent_filename}.customize.yaml" diff --git a/src/modules/bmb/workflows/create-module/steps/step-01-init.md b/src/modules/bmb/workflows/create-module/steps/step-01-init.md index 88729cf9..3c461fd3 100644 --- a/src/modules/bmb/workflows/create-module/steps/step-01-init.md +++ b/src/modules/bmb/workflows/create-module/steps/step-01-init.md @@ -4,8 +4,8 @@ continueFile: '{installed_path}/steps/step-01b-continue.md' modulePlanTemplate: '{installed_path}/templates/module-plan.template.md' advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' -customModuleLocation: '{custom_module_location}' -modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' +customModuleLocation: '{bmb_creations_output_folder}' +modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md' --- # Step 1: Workflow Initialization diff --git a/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md b/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md index 3ff7d8fa..6582d49b 100644 --- a/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +++ b/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md @@ -1,5 +1,5 @@ --- -modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' +modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md' --- # Step 1b: Continue Module Creation @@ -70,7 +70,7 @@ Extract current status from frontmatter fields: - **Started:** {date} - **Last Step:** {lastStep} - **Steps Completed:** {stepsCompleted count}/{total steps} -- **Location:** {custom_module_location}/{module_name} +- **Location:** {bmb_creations_output_folder}/{module_name} \*\*Progress Summary:" diff --git a/src/modules/bmb/workflows/create-module/steps/step-02-concept.md b/src/modules/bmb/workflows/create-module/steps/step-02-concept.md index 3e007b5f..c5c5da13 100644 --- a/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +++ b/src/modules/bmb/workflows/create-module/steps/step-02-concept.md @@ -1,7 +1,7 @@ --- installed_path: '{project-root}/_bmad/bmb/workflows/create-module' nextStepFile: '{installed_path}/steps/step-03-components.md' -modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' +modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md' moduleStructureGuide: '{project-root}/bmb/workflows/create-agent-legacy/create-module/module-structure.md' advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' diff --git a/src/modules/bmb/workflows/create-module/steps/step-03-components.md b/src/modules/bmb/workflows/create-module/steps/step-03-components.md index b30e8bb3..ce87d415 100644 --- a/src/modules/bmb/workflows/create-module/steps/step-03-components.md +++ b/src/modules/bmb/workflows/create-module/steps/step-03-components.md @@ -1,7 +1,7 @@ --- installed_path: '{project-root}/_bmad/bmb/workflows/create-module' nextStepFile: '{installed_path}/steps/step-04-structure.md' -modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' +modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md' agent_examples_path: '{project-root}/bmb/reference/agents/module-examples' advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' diff --git a/src/modules/bmb/workflows/create-module/steps/step-04-structure.md b/src/modules/bmb/workflows/create-module/steps/step-04-structure.md index 43a3556c..2a02d91a 100644 --- a/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +++ b/src/modules/bmb/workflows/create-module/steps/step-04-structure.md @@ -1,7 +1,7 @@ --- installed_path: '{project-root}/_bmad/bmb/workflows/create-module' nextStepFile: '{installed_path}/steps/step-05-config.md' -modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' +modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md' advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' --- @@ -122,7 +122,7 @@ For a [module type] module, we'll create this structure:" ### 3. Create Directory Structure -Create all directories in {custom_module_location}/{module_name}/: +Create all directories in {bmb_creations_output_folder}/{module_name}/: 1. **agents/** - For agent definition files 2. **workflows/** - For workflow folders @@ -169,7 +169,7 @@ Update module-plan.md with structure section: ## Module Structure **Module Type:** [Simple/Standard/Complex] -**Location:** {custom_module_location}/{module_name} +**Location:** {bmb_creations_output_folder}/{module_name} **Directory Structure Created:** - βœ… agents/ diff --git a/src/modules/bmb/workflows/create-module/steps/step-05-config.md b/src/modules/bmb/workflows/create-module/steps/step-05-config.md index 48fa4542..bcf96bd6 100644 --- a/src/modules/bmb/workflows/create-module/steps/step-05-config.md +++ b/src/modules/bmb/workflows/create-module/steps/step-05-config.md @@ -1,7 +1,7 @@ --- installed_path: '{project-root}/_bmad/bmb/workflows/create-module' nextStepFile: '{installed_path}/steps/step-06-agents.md' -modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' +modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md' advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' --- diff --git a/src/modules/bmb/workflows/create-module/steps/step-06-agents.md b/src/modules/bmb/workflows/create-module/steps/step-06-agents.md index 3cb1ce8d..467eb86d 100644 --- a/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +++ b/src/modules/bmb/workflows/create-module/steps/step-06-agents.md @@ -1,7 +1,7 @@ --- installed_path: '{project-root}/_bmad/bmb/workflows/create-module' nextStepFile: '{installed_path}/steps/step-07-workflows.md' -modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' +modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md' agentTemplate: '{installed_path}/templates/agent.template.md' agent_examples_path: '{project-root}/bmb/reference/agents/module-examples' advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' @@ -217,7 +217,7 @@ agent: **If agent needs memory:** -1. Create folder: {custom_module_location}/{module_name}/agents/[agent-name]-sidecar/ +1. Create folder: {bmb_creations_output_folder}/{module_name}/agents/[agent-name]-sidecar/ 2. Create files: - memories.md (empty, for persistent memory) - instructions.md (empty, for agent protocols) @@ -228,7 +228,7 @@ agent: **If agent has workflows:** For each workflow that needs separate file: -1. Create folder: {custom_module_location}/{module_name}/workflows/[workflow-name]/ +1. Create folder: {bmb_creations_output_folder}/{module_name}/workflows/[workflow-name]/ 2. Create README.md with workflow plan ### 4. Repeat for All Agents diff --git a/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md b/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md index a709f385..81b90f7b 100644 --- a/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +++ b/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md @@ -1,7 +1,7 @@ --- installed_path: '{project-root}/_bmad/bmb/workflows/create-module' nextStepFile: '{installed_path}/steps/step-08-installer.md' -modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' +modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md' workflowPlanTemplate: '{installed_path}/templates/workflow-plan-template.md' advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' @@ -61,7 +61,7 @@ I've already created workflow folders and README.md files for each agent's workf **Workflow folders found:** -- [List all workflow folders in {custom_module_location}/{module_name}/workflows/] +- [List all workflow folders in {bmb_creations_output_folder}/{module_name}/workflows/] **Each workflow folder contains a README.md with:** diff --git a/src/modules/bmb/workflows/create-module/steps/step-08-installer.md b/src/modules/bmb/workflows/create-module/steps/step-08-installer.md index 290400f0..ea981793 100644 --- a/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +++ b/src/modules/bmb/workflows/create-module/steps/step-08-installer.md @@ -1,7 +1,7 @@ --- installed_path: '{project-root}/_bmad/bmb/workflows/create-module' nextStepFile: '{installed_path}/steps/step-09-documentation.md' -modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' +modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md' installerTemplate: '{installed_path}/templates/installer.template.js' installConfigTemplate: '{installed_path}/templates/install-config.template.yaml' advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' @@ -72,13 +72,13 @@ From step 5, we planned these configuration fields: ### 2. Create Installer Directory Ensure \_module-installer directory exists -Directory: {custom_module_location}/{module_name}/\_module-installer/ +Directory: {bmb_creations_output_folder}/{module_name}/\_module-installer/ ### 3. Create module.yaml "I'll create the module.yaml file based on your configuration plan. This is the core installer configuration file." -Create file: {custom_module_location}/{module_name}/module.yaml from template {installConfigTemplate} +Create file: {bmb_creations_output_folder}/{module_name}/module.yaml from template {installConfigTemplate} ### 4. Handle Custom Installation Logic @@ -95,7 +95,7 @@ Does your module need any special setup during installation? For example: "I'll create an installer.js file for custom logic." -Create file: {custom_module_location}/{module_name}/\_module-installer/installer.js from {installerTemplate} +Create file: {bmb_creations_output_folder}/{module_name}/\_module-installer/installer.js from {installerTemplate} Update installer.js with module-specific logic diff --git a/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md b/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md index 628c9abf..3e028cd6 100644 --- a/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +++ b/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md @@ -1,8 +1,8 @@ --- installed_path: '{project-root}/_bmad/bmb/workflows/create-module' nextStepFile: '{installed_path}/steps/step-10-roadmap.md' -modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' -moduleReadmeFile: '{custom_module_location}/{module_name}/README.md' +modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md' +moduleReadmeFile: '{bmb_creations_output_folder}/{module_name}/README.md' advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' --- @@ -249,7 +249,7 @@ Update module-plan.md with documentation section: ## Documentation ### README.md Created -- Location: {custom_module_location}/{module_name}/README.md +- Location: {bmb_creations_output_folder}/{module_name}/README.md - Sections: [list of sections included] - Status: Complete diff --git a/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md b/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md index bffcaeaa..c80d58bb 100644 --- a/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +++ b/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md @@ -1,8 +1,8 @@ --- installed_path: '{project-root}/_bmad/bmb/workflows/create-module' nextStepFile: '{installed_path}/steps/step-11-validate.md' -modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' -moduleTodoFile: '{custom_module_location}/{module_name}/TODO.md' +modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md' +moduleTodoFile: '{bmb_creations_output_folder}/{module_name}/TODO.md' advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' --- @@ -75,7 +75,7 @@ I'll organize the remaining work into logical phases to ensure a successful modu ### 3. Generate TODO.md -Create file: {custom_module_location}/{module_name}/TODO.md +Create file: {bmb_creations_output_folder}/{module_name}/TODO.md ````markdown # {module_display_name} Development Roadmap @@ -273,7 +273,7 @@ Update module-plan.md with roadmap section: ## Development Roadmap ### TODO.md Created -- Location: {custom_module_location}/{module_name}/TODO.md +- Location: {bmb_creations_output_folder}/{module_name}/TODO.md - Phases defined: 3 - Immediate tasks prioritized diff --git a/src/modules/bmb/workflows/create-module/steps/step-11-validate.md b/src/modules/bmb/workflows/create-module/steps/step-11-validate.md index 3ffda801..690c9d17 100644 --- a/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +++ b/src/modules/bmb/workflows/create-module/steps/step-11-validate.md @@ -1,6 +1,6 @@ --- workflowFile: '{installed_path}/workflow.md' -modulePlanFile: '{custom_module_location}/{module_name}/module-plan-{module_name}.md' +modulePlanFile: '{bmb_creations_output_folder}/{module_name}/module-plan-{module_name}.md' validationChecklist: '{installed_path}/validation.md' advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' @@ -197,7 +197,7 @@ Fix issues one by one with user confirmation - **Name:** {module_display_name} - **Code:** {module_name} -- **Location:** {custom_module_location}/{module_name} +- **Location:** {bmb_creations_output_folder}/{module_name} - **Type:** {module_type} - **Status:** Ready for testing diff --git a/src/modules/bmb/workflows/create-module/templates/agent.template.md b/src/modules/bmb/workflows/create-module/templates/agent.template.md index 840b0842..a6693206 100644 --- a/src/modules/bmb/workflows/create-module/templates/agent.template.md +++ b/src/modules/bmb/workflows/create-module/templates/agent.template.md @@ -18,7 +18,7 @@ agent: identity: | {agent-identity - multi-line description} communication_style: | - {communication-style - multi-line description} + {communication-style - 1-2 short sentences to describe chat style} principles: - '{agent-principle-1}' - '{agent-principle-2}' @@ -27,9 +27,9 @@ agent: # Optional: Only include if agent needs memory/persistence critical_actions: - - 'Load COMPLETE file ./[agent-name]-sidecar/memories.md and integrate all past interactions' - - 'Load COMPLETE file ./[agent-name]-sidecar/instructions.md and follow ALL protocols' - - 'ONLY read/write files in ./[agent-name]-sidecar/ - this is our private workspace' + - 'Load COMPLETE file [bmad_memory]/[agent-name]-sidecar/memories.md and integrate all past interactions' + - 'Load COMPLETE file [bmad_memory]/[agent-name]-sidecar/instructions.md and follow ALL protocols' + - 'ONLY read/write files in [bmad_memory]/[agent-name]-sidecar/* - this is our private workspace' # Optional: Embedded prompts for common interactions prompts: @@ -98,7 +98,7 @@ agent: When creating expert agents in modules, create a sidecar folder: ``` -{custom_module_location}/{module_name}/agents/[agent-name]-sidecar/ +{bmb_creations_output_folder}/{module_name}/agents/[agent-name]-sidecar/ β”œβ”€β”€ memories.md # Persistent memory across sessions β”œβ”€β”€ instructions.md # Agent-specific protocols β”œβ”€β”€ insights.md # Important breakthroughs/realizations @@ -166,14 +166,12 @@ Expert agents support three types of menu actions: ## Notes for Module Creation: 1. **File Paths**: - - Agent files go in: `{custom_module_location}/{module_name}/agents/[agent-name]/[agent-name].yaml` - - Sidecar folders go in: `{custom_module_location}/{module_name}/agents/[agent-name]/[agent-name]-sidecar/` + - Agent files go in: `[bmb_creations_output_folder]/[module_name]/agents/[agent-name]/[agent-name].yaml` + - Sidecar folders go in: `[bmb_creations_output_folder]/[module_name]/agents/[agent-name]/[agent-name]-sidecar/` 2. **Variable Usage**: - - `{agent_sidecar_folder}` resolves to the agents sidecar folder destination after installation - - `_bmad` resolves to \_bmad - - `{custom_module}` resolves to custom/src/modules - - `{module}` is your module code/name + - `bmad_memory` resolves to the agents sidecar folder destination after installation + - `module` is your module code/name 3. **Creating Sidecar Structure**: - When agent is created, also create the sidecar folder diff --git a/src/modules/bmb/workflows/create-module/workflow.md b/src/modules/bmb/workflows/create-module/workflow.md index aa46a607..7541f2fa 100644 --- a/src/modules/bmb/workflows/create-module/workflow.md +++ b/src/modules/bmb/workflows/create-module/workflow.md @@ -48,7 +48,7 @@ installed_path: '{project-root}/_bmad/bmb/workflows/create-module' Load and read full config from {project-root}/\_bmad/bmb/config.yaml and resolve: -- `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`, `custom_module_location` +- `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`, `bmb_creations_output_folder` ### 2. First Step EXECUTION diff --git a/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md b/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md index 6e2641b8..b1114953 100644 --- a/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +++ b/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md @@ -11,7 +11,7 @@ nextStepFile: '{workflow_path}/steps/step-02-gather.md' workflowFile: '{workflow_path}/workflow.md' # Output files for workflow creation process -targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}' +targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}' workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md' # Template References # No workflow plan template needed - will create plan file directly @@ -83,7 +83,7 @@ After getting the workflow name: **Check for existing workflows:** -- Look for folder at `{custom_stand_alone_location}/workflows/{new_workflow_name}/` +- Look for folder at `{bmb_creations_output_folder}/workflows/{new_workflow_name}/` - If it exists, inform the user and suggest or get from them a unique name or postfix **Example alternatives:** diff --git a/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md b/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md index e60fc11b..4c5874d9 100644 --- a/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +++ b/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md @@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmb/workflows/create-workflow' thisStepFile: '{workflow_path}/steps/step-02-gather.md' nextStepFile: '{workflow_path}/steps/step-03-tools-configuration.md' # Output files for workflow creation process -targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}' +targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}' workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md' # Task References diff --git a/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md b/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md index 013e7277..ac47899c 100644 --- a/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +++ b/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md @@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmb/workflows/create-workflow' thisStepFile: '{workflow_path}/steps/step-03-tools-configuration.md' nextStepFile: '{workflow_path}/steps/step-04-plan-review.md' -targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}' +targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}' workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md' # Documentation References diff --git a/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md b/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md index e8ef6af2..2d0d01ff 100644 --- a/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +++ b/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md @@ -10,7 +10,7 @@ thisStepFile: '{workflow_path}/steps/step-04-plan-review.md' nextStepFormDesign: '{workflow_path}/steps/step-05-output-format-design.md' nextStepDesign: '{workflow_path}/steps/step-06-design.md' -targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}' +targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}' workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md' # Task References diff --git a/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md b/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md index de5d1c1b..c6f9ff34 100644 --- a/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +++ b/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md @@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmb/workflows/create-workflow' thisStepFile: '{workflow_path}/steps/step-05-output-format-design.md' nextStepFile: '{workflow_path}/steps/step-06-design.md' -targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}' +targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}' workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md' # Task References diff --git a/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md b/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md index 06af41db..e2a61532 100644 --- a/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md +++ b/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md @@ -10,7 +10,7 @@ thisStepFile: '{workflow_path}/steps/step-06-design.md' nextStepFile: '{workflow_path}/steps/step-07-build.md' workflowFile: '{workflow_path}/workflow.md' # Output files for workflow creation process -targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}' +targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}' workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md' # Task References diff --git a/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md b/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md index 42662c0f..0998631d 100644 --- a/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +++ b/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md @@ -10,7 +10,7 @@ thisStepFile: '{workflow_path}/steps/step-07-build.md' nextStepFile: '{workflow_path}/steps/step-08-review.md' workflowFile: '{workflow_path}/workflow.md' # Output files for workflow creation process -targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}' +targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}' workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md' # Template References @@ -95,7 +95,7 @@ Ready to proceed?" Create the workflow folder structure in the target location: ``` -{custom_stand_alone_location}/workflows/{workflow_name}/ +{bmb_creations_output_folder}/workflows/{workflow_name}/ β”œβ”€β”€ workflow.md β”œβ”€β”€ steps/ β”‚ β”œβ”€β”€ step-01-init.md diff --git a/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md b/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md index ab5e7ac3..f1e6535a 100644 --- a/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +++ b/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md @@ -10,7 +10,7 @@ thisStepFile: '{workflow_path}/steps/step-08-review.md' workflowFile: '{workflow_path}/workflow.md' # Output files for workflow creation process -targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}' +targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}' workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md' # Task References diff --git a/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md b/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md index 9d61f8ab..91336320 100644 --- a/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +++ b/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md @@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmb/workflows/create-workflow' thisStepFile: '{workflow_path}/steps/step-09-complete.md' workflowFile: '{workflow_path}/workflow.md' # Output files for workflow creation process -targetWorkflowPath: '{custom_stand_alone_location}/workflows/{new_workflow_name}' +targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{new_workflow_name}' workflowPlanFile: '{targetWorkflowPath}/workflow-plan-{new_workflow_name}.md' completionFile: '{targetWorkflowPath}/completion-summary-{new_workflow_name}.md' --- diff --git a/src/modules/bmb/workflows/create-workflow/workflow.md b/src/modules/bmb/workflows/create-workflow/workflow.md index 0a6e7858..500097ba 100644 --- a/src/modules/bmb/workflows/create-workflow/workflow.md +++ b/src/modules/bmb/workflows/create-workflow/workflow.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: -- `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 diff --git a/src/modules/bmgd/module.yaml b/src/modules/bmgd/module.yaml index 4bbb9094..333094e5 100644 --- a/src/modules/bmgd/module.yaml +++ b/src/modules/bmgd/module.yaml @@ -1,19 +1,15 @@ -# BMad Game Dev Module Configuration - code: bmgd name: "BMGD: BMad Game Development" -default_selected: false - header: "BMad Game Development Module" subheader: "Configure the settings for the BMad Game Development module" +default_selected: false -# Core config values automatically inherited: +# Variables from Core Config inserted: ## user_name ## communication_language ## document_output_language ## output_folder -## install_user_docs -## kb_install +## bmad_memory game_project_name: prompt: "What is the name of your game project?" diff --git a/src/modules/bmm/agents/analyst.agent.yaml b/src/modules/bmm/agents/analyst.agent.yaml index 3dd44383..692440d9 100644 --- a/src/modules/bmm/agents/analyst.agent.yaml +++ b/src/modules/bmm/agents/analyst.agent.yaml @@ -48,5 +48,5 @@ agent: - type: exec - expert-chat: - input: CH or fuzzy match validate agent - - action: agent responds as expert based on its personal to converse + - action: agent responds as expert based on its persona to converse - type: action diff --git a/src/modules/bmm/docs/images/README.md b/src/modules/bmm/docs/images/README.md index 331fdd53..8e34ebbd 100644 --- a/src/modules/bmm/docs/images/README.md +++ b/src/modules/bmm/docs/images/README.md @@ -23,7 +23,7 @@ When you edit `workflow-method-greenfield.excalidraw`, regenerate the SVG: After regenerating the SVG, validate that it renders correctly: ```bash -./tools/validate-svg-changes.sh src/modules/bmm/docs/images/workflow-method-greenfield.svg +./tools/validate-svg-changes.sh path/to/workflow-method-greenfield.svg ``` This script: diff --git a/src/modules/bmm/docs/test-architecture.md b/src/modules/bmm/docs/test-architecture.md index ff098fad..3b653e35 100644 --- a/src/modules/bmm/docs/test-architecture.md +++ b/src/modules/bmm/docs/test-architecture.md @@ -155,22 +155,6 @@ Epic/Release Gate β†’ TEA: *nfr-assess, *trace Phase 2 (release decision) **Note**: `*trace` is a two-phase workflow: Phase 1 (traceability) + Phase 2 (gate decision). This reduces cognitive load while maintaining natural workflow. -### Unique Directory Architecture - -TEA is the only BMM agent with its own top-level module directory (`bmm/testarch/`): - -``` -src/modules/bmm/ -β”œβ”€β”€ agents/ -β”‚ └── tea.agent.yaml # Agent definition (standard location) -β”œβ”€β”€ workflows/ -β”‚ └── testarch/ # TEA workflows (standard location) -└── testarch/ # Knowledge base (UNIQUE!) - β”œβ”€β”€ knowledge/ # 21 production-ready test pattern fragments - β”œβ”€β”€ tea-index.csv # Centralized knowledge lookup (21 fragments indexed) - └── README.md # This guide -``` - ### Why TEA Gets Special Treatment TEA uniquely requires: diff --git a/src/modules/bmm/module.yaml b/src/modules/bmm/module.yaml index 2dd59d28..024bcca1 100644 --- a/src/modules/bmm/module.yaml +++ b/src/modules/bmm/module.yaml @@ -1,16 +1,15 @@ -# BMADβ„’ Method Core Configuration - code: bmm name: "BMM: BMad Method Agile-AI Driven-Development" -default_selected: true # This module will be selected by default for new installations - header: "BMad Methodβ„’: Breakthrough Method of Agile-Ai Driven-Dev" subheader: "Agent and Workflow Configuration for this module" +default_selected: true # This module will be selected by default for new installations # Variables from Core Config inserted: ## user_name ## communication_language +## document_output_language ## output_folder +## bmad_memory project_name: prompt: "What is the title of your project you will be working on?" @@ -31,20 +30,28 @@ user_skill_level: - value: "expert" label: "Expert - Deep technical knowledge, be direct and technical" -sprint_artifacts: - prompt: "Where should sprint artifacts be stored (sprint status, stories, retrospectives)?" - default: "{output_folder}/sprint-artifacts" +planning_artifacts: # Phase 1-3 artifacts + prompt: "Where should project planning artifacts be stored?\n - Such as: (Brain Storming, Briefs, PRDs, UX Designs, Architectures, Detailed Epics Plan)" + default: "{output_folder}/project-planning-artifacts" + result: "{project-root}/{value}" + +implementation_artifacts: # Phase 4 artifacts + prompt: "Where should implementation artifacts be stored?\n - Such as: (sprint status, individual story files and reviews, retrospectives, Quick Flow output)" + default: "{output_folder}/implementation-artifacts" + result: "{project-root}/{value}" + +project_knowledge: # Artifacts from research, document-project output, other long lived accurate kn + prompt: "Where should non-ephemeral project knowledge be stored (docs, research, references)?" + default: "docs" result: "{project-root}/{value}" tea_use_mcp_enhancements: - prompt: "Enable Test Architect Playwright MCP capabilities (healing, exploratory, verification)? You have to setup your MCPs yourself; refer to test-architecture.md for hints." + prompt: "Enable Test Architect Playwright MCP capabilities (healing, exploratory, verification)?\nYou have to setup your MCPs yourself; refer to test-architecture.md for hints." default: false result: "{value}" tea_use_playwright_utils: prompt: - - "Are you using playwright-utils (@seontechnologies/playwright-utils) in your project?" - - "This adds fixture-based utilities for auth, API requests, network recording, polling, intercept, recurse, logging, file download handling, and burn-in." - - "You must install packages yourself, or use test architect's *framework command." + - "Are you using playwright-utils (@seontechnologies/playwright-utils) in your project?\nYou must install packages yourself, or use test architect's *framework command." default: false result: "{value}" diff --git a/src/modules/cis/module.yaml b/src/modules/cis/module.yaml index b188b0ad..1806a50e 100644 --- a/src/modules/cis/module.yaml +++ b/src/modules/cis/module.yaml @@ -1,12 +1,12 @@ -# BMADβ„’ Creative Intelligence Suite Configuration - code: cis name: "CIS: Creative Innovation Suite" -default_selected: false # This module will not be selected by default for new installations - header: "Creative Innovation Suite (CIS) Module" subheader: "No Configuration needed - uses Core Config only." +default_selected: false # This module will not be selected by default for new installations + # Variables from Core Config inserted: ## user_name ## communication_language +## document_output_language ## output_folder +## bmad_memory diff --git a/tools/cli/installers/lib/core/installer.js b/tools/cli/installers/lib/core/installer.js index 77a8bb35..130fb053 100644 --- a/tools/cli/installers/lib/core/installer.js +++ b/tools/cli/installers/lib/core/installer.js @@ -1887,7 +1887,6 @@ If AgentVibes party mode is enabled, immediately trigger TTS with agent's voice: // Determine project directory (parent of bmad/ directory) const bmadDir = path.dirname(modulePath); - const projectDir = path.dirname(bmadDir); const cfgAgentsDir = path.join(bmadDir, '_config', 'agents'); // Ensure _config/agents directory exists @@ -2116,7 +2115,7 @@ If AgentVibes party mode is enabled, immediately trigger TTS with agent's voice: answers.memories = customizeData.memories; } - // Get core config for agent_sidecar_folder + // Get core config for bmad_memory const coreConfigPath = path.join(bmadDir, 'bmb', 'config.yaml'); let coreConfig = {}; if (await fs.pathExists(coreConfigPath)) { diff --git a/tools/cli/installers/lib/modules/manager.js b/tools/cli/installers/lib/modules/manager.js index c6de496e..3b152a99 100644 --- a/tools/cli/installers/lib/modules/manager.js +++ b/tools/cli/installers/lib/modules/manager.js @@ -875,7 +875,7 @@ class ModuleManager { } } - // Load core config to get agent_sidecar_folder + // Load core config to get bmad_memory const coreConfigPath = path.join(bmadDir, 'bmb', 'config.yaml'); let coreConfig = {}; diff --git a/tools/cli/lib/agent/compiler.js b/tools/cli/lib/agent/compiler.js index 71aa326c..5df3f1e8 100644 --- a/tools/cli/lib/agent/compiler.js +++ b/tools/cli/lib/agent/compiler.js @@ -333,9 +333,9 @@ async function compileAgent(yamlContent, answers = {}, agentName = '', targetPat finalAnswers = { ...defaults, ...answers }; } - // Add agent_sidecar_folder to answers if provided in config - if (options.config && options.config.agent_sidecar_folder) { - finalAnswers.agent_sidecar_folder = options.config.agent_sidecar_folder; + // Add bmad_memory to answers if provided in config + if (options.config && options.config.bmad_memory) { + finalAnswers.bmad_memory = options.config.bmad_memory; } // Process templates with answers @@ -344,10 +344,10 @@ async function compileAgent(yamlContent, answers = {}, agentName = '', targetPat // Strip install_config from output const cleanYaml = stripInstallConfig(processedYaml); - // Replace {agent_sidecar_folder} in XML content + // Replace {bmad_memory} in XML content let xml = await compileToXml(cleanYaml, agentName, targetPath); - if (finalAnswers.agent_sidecar_folder) { - xml = xml.replaceAll('{agent_sidecar_folder}', finalAnswers.agent_sidecar_folder); + if (finalAnswers.bmad_memory) { + xml = xml.replaceAll('{bmad_memory}', finalAnswers.bmad_memory); } return {