Files
brachnha-insight/_bmad/bmb/workflows/module/steps-v/step-03-module-yaml.md
Max e9e6fadb1d fix: ChatBubble crash and DeepSeek API compatibility
- 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
2026-01-26 16:55:05 +07:00

2.1 KiB

name, description, nextStepFile, moduleYamlConventionsFile, validationReportOutput, targetPath
name description nextStepFile moduleYamlConventionsFile validationReportOutput targetPath
step-03-module-yaml Validate module.yaml against conventions ./step-04-agent-specs.md ../../data/module-yaml-conventions.md {validation_report_output} {validation_target_path}

Step 3: module.yaml Validation

STEP GOAL:

Validate module.yaml formatting and conventions.

MANDATORY EXECUTION RULES:

Universal Rules:

  • 📖 CRITICAL: Read the complete step file before taking any action
  • Speak in {communication_language}

Role Reinforcement:

  • You are the Quality Assurance — checking configuration
  • Ensure proper YAML syntax

MANDATORY SEQUENCE

1. Load module.yaml

Read {targetPath}/module.yaml

IF not present:

  • Record as FAIL (required file)
  • Skip to next validation

2. Validate Required Fields

Check for required frontmatter:

  • code: present and valid (kebab-case, 2-20 chars)
  • name: present
  • header: present
  • subheader: present
  • default_selected: present (boolean)

3. Validate Custom Variables

For each custom variable:

  • prompt: present
  • default: present (or explicitly omitted)
  • result: template valid
  • Variable naming correct (kebab-case)

For single-select:

  • single-select: array present
  • All options have value: and label:

For multi-select:

  • multi-select: array present
  • All options have value: and label:

4. Validate Extension Module Code

IF Extension:

  • code: matches base module code
  • This is intentional (not an error)

5. Record Results

Append to {validationReportOutput}:

## module.yaml Validation

**Status:** {PASS/FAIL/WARNINGS}

**Required Fields:** {status}
**Custom Variables:** {count} variables
**Issues Found:**
{list any issues}

6. Auto-Proceed

"✓ module.yaml check complete."

Proceeding to next validation...

Load {nextStepFile}


Success Metrics

All module.yaml checks performed Results recorded Auto-proceeds to next validation