- Fix ChatBubble to handle non-string content with String() wrapper - Fix API route to use generateText for non-streaming requests - Add @ai-sdk/openai-compatible for non-OpenAI providers (DeepSeek, etc.) - Use Chat Completions API instead of Responses API for compatible providers - Update ChatBubble tests and fix component exports to kebab-case - Remove stale PascalCase ChatBubble.tsx file
8.0 KiB
name, description, nextStepFile, agentPlan, agentBuildOutput, agentYamlOutput, expertTemplate, expertArch, agentCompilation, criticalActions, advancedElicitationTask, partyModeWorkflow
| name | description | nextStepFile | agentPlan | agentBuildOutput | agentYamlOutput | expertTemplate | expertArch | agentCompilation | criticalActions | advancedElicitationTask | partyModeWorkflow |
|---|---|---|---|---|---|---|---|---|---|---|---|
| step-06-build-module | Generate Module agent YAML from plan | ./step-08-celebrate.md | {bmb_creations_output_folder}/agent-plan-{agent_name}.md | {bmb_creations_output_folder}/{agent-name}/ | {bmb_creations_output_folder}/{agent-name}/{agent-name}.agent.yaml | ../templates/expert-agent-template/expert-agent.template.md | ../data/expert-agent-architecture.md | ../data/agent-compilation.md | ../data/critical-actions.md | {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml | {project-root}/_bmad/core/workflows/party-mode/workflow.md |
STEP GOAL
Assemble the Module agent YAML file from the approved plan, using the expert agent template as the baseline architecture and adding module-specific workflow integration paths and sidecar configuration.
MANDATORY EXECUTION RULES
-
TEMPLATE BASELINE: Module agents MUST use the expert agent template as their structural foundation - do not create custom templates
-
PLAN ADHERENCE: Extract content from agentPlan exactly as written - no enhancement, interpretation, or extrapolation
-
MODULE SPECIFICITY: Module agents require workflow integration paths and may need sidecar configuration for multi-workflow modules
-
OUTPUT VALIDATION: YAML must be valid, complete, and ready for immediate deployment
-
LANGUAGE PRESERVATION: Maintain any language choice configured in the plan throughout the YAML
EXECUTION PROTOCOLS
PREPARATION PHASE
1. Load Expert Template Baseline
Read: expertTemplate
Read: expertArch
Read: agentCompilation
Read: criticalActions
Purpose: Understand the expert agent structure that serves as the Module agent baseline
Validation: Confirm expert template has all required sections (name, description, persona, instructions, tools, skills, etc.)
2. Load Agent Plan
Read: agentPlan (using dynamic path)
Validation: Plan contains all mandatory sections:
- Agent identity (name, description)
- Persona profile
- Command structure
- Critical actions
- Workflow integrations (module-specific)
- Language choice (if configured)
3. Verify Output Directory
Bash: mkdir -p {agentBuildOutput}
Purpose: Ensure output directory exists for the module agent
ASSEMBLY PHASE
4. Assemble Module Agent YAML
FROM PLAN TO YAML MAPPING:
| Plan Section | YAML Field | Notes |
|---|---|---|
| Agent Name | name |
Plan → YAML |
| Description | description |
Plan → YAML |
| Persona | persona |
Plan → YAML |
| Instructions | instructions |
Plan → YAML (verbatim) |
| Commands | commands |
Plan → YAML (with handlers) |
| Critical Actions | criticalActions |
Plan → YAML (mandatory) |
| Workflow Paths | skills |
Module-specific |
| Sidecar Need | sidecar |
If multi-workflow |
MODULE-SPECIAL ENHANCEMENTS:
# Module agents include workflow integration
skills:
- workflow: "{project-root}/_bmad/{module-id}/workflows/{workflow-name}/workflow.md"
description: "From plan workflow list"
- workflow: "{project-root}/_bmad/{module-id}/workflows/{another-workflow}/workflow.md"
description: "From plan workflow list"
# Optional: Sidecar for complex modules
sidecar:
enabled: true
workflows:
- ref: "primary-workflow"
type: "primary"
- ref: "secondary-workflow"
type: "support"
CRITICAL ACTIONS MAPPING:
For each critical action in plan:
1. Identify matching command in YAML
2. Add `critical: true` flag
3. Ensure handler references agent function
5. Create Sidecar (If Needed)
SIDEAR REQUIRED IF:
- Module has 3+ workflows
- Workflows have complex interdependencies
- Module needs initialization workflow
SIDECAR STRUCTURE:
# {agent-name}.sidecar.yaml
sidecar:
module: "{module-id}"
initialization:
workflow: "workflow-init"
required: true
workflows:
- name: "workflow-name"
path: "workflows/{workflow-name}/workflow.md"
type: "primary|support|utility"
dependencies: []
agent:
path: "{agent-name}.agent.yaml"
IF SIDEAR NOT NEEDED: Skip this step
6. Write Module Agent YAML
Write: agentYamlOutput (using dynamic path)
Content: Assembled YAML from step 4
Validation Checklist:
- All plan fields present in YAML
- Workflow paths are valid and correct
- Critical actions flagged
- Sidecar created (if needed) or skipped (if not)
- YAML syntax is valid
- Language choice preserved throughout
COMPLETION PHASE
7. Present MENU OPTIONS
Display: "Select an Option: [A] Advanced Elicitation [P] Party Mode [C] Continue"
Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
- IF C: Write agent YAML to {agentBuildOutput}/{agent-name}/{agent-name}.agent.yaml (or appropriate output path), 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
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
USER RESPONSE HANDLING:
- Option 1: Proceed to step-07a-plan-traceability.md with sequential mode
- Option 2: Proceed to step-07a-plan-traceability.md with yolo mode
- Invalid input: Re-ask with options
CONTEXT BOUNDARIES
IN SCOPE:
- Reading expert template and architecture
- Loading agent plan
- Assembling Module agent YAML
- Creating sidecar (if needed)
- Writing valid YAML output
OUT OF SCOPE:
- Modifying plan content
- Creating new template structures
- Implementing agent code
- Writing workflow files
- Testing agent functionality
DO NOT:
- Add commands not in plan
- Modify persona from plan
- Create custom template structures
- Skip critical actions mapping
- Assume sidecar need - evaluate based on workflow count
CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [complete YAML generated and written to output], will you then load and read fully {nextStepFile} to execute and celebrate completion.
THIS STEP IS COMPLETE WHEN:
- Module agent YAML file exists at agentYamlOutput path
- YAML contains all plan content correctly mapped
- Module-specific workflow paths are configured
- Sidecar is created (if needed) or correctly skipped (if not)
- User has chosen review mode (one-at-a-time or YOLO)
- Ready to proceed to step-07a-plan-traceability.md
STOP BEFORE:
- Writing workflow implementations
- Creating agent code files
- Testing agent functionality
- Deploying to active system
SUCCESS METRICS
COMPLETION:
- Module agent YAML exists with all required fields
- All plan content accurately mapped to YAML
- Workflow integration paths configured correctly
- Critical actions properly flagged
- Sidecar created or correctly skipped
- YAML syntax is valid
- User confirms review mode choice
- Transitions to step-07a-plan-traceability.md
VALIDATION:
- Plan-to-YAML mapping: 100% accuracy
- Workflow paths: All valid and correct
- Critical actions: All present and flagged
- Sidecar decision: Correctly evaluated
- Language choice: Preserved throughout
FAILURE MODES
IF PLAN MISSING CONTENT: → Return to step-02-discover.md to complete plan
IF EXPERT TEMPLATE MISSING: → Raise error - template is mandatory baseline
IF YAML SYNTAX ERROR: → Fix and retry write operation
IF WORKFLOW PATHS INVALID: → Flag for review in traceability step
IF USER ASKS FOR MODIFICATIONS: → Return to appropriate planning step (03-persona, 04-commands, or 05-name)