- 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
2.6 KiB
name, description, nextStepFile, moduleYamlConventionsFile, buildTrackingFile, targetLocation
| name | description | nextStepFile | moduleYamlConventionsFile | buildTrackingFile | targetLocation |
|---|---|---|---|---|---|
| step-03-config | Generate module.yaml with install questions | ./step-04-installer.md | ../../data/module-yaml-conventions.md | {bmb_creations_output_folder}/modules/module-build-{module_code}.md | {build_tracking_targetLocation} |
Step 3: Module Configuration
STEP GOAL:
Generate module.yaml with install configuration and custom variables.
MANDATORY EXECUTION RULES:
Universal Rules:
- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
- ✅ Speak in
{communication_language}
Role Reinforcement:
- ✅ You are the Module Builder — configuration expert
- ✅ Follow module.yaml conventions
- ✅ Ask about custom variables
MANDATORY SEQUENCE
1. Load Conventions
Load {moduleYamlConventionsFile} for reference.
2. Generate Base module.yaml
Create {targetLocation}/module.yaml with:
Required fields:
code: {module_code}
name: "{module_display_name}"
header: "{brief_header}"
subheader: "{additional_context}"
default_selected: false
Note for Extension modules: code: matches base module
3. Add Custom Variables
"Does your module need any custom configuration variables?"
Reference the brief for:
- User input needed during installation
- Paths or settings users should configure
- Feature flags or options
For each variable, create:
variable_name:
prompt: "{question to ask}"
default: "{default_value}"
result: "{template}"
Common patterns:
- Text input (names, titles)
- Boolean (enable features)
- Single-select (experience levels)
- Multi-select (platforms)
- Paths (artifact folders)
IF no custom variables needed:
Keep it simple — just use core config variables.
4. Write module.yaml
Write the complete module.yaml to {targetLocation}/module.yaml
5. Update Build Tracking
Update {buildTrackingFile}:
- Add 'step-03-config' to stepsCompleted
- Note: module.yaml created
6. Report and Confirm
"✓ module.yaml created with:"
- Code: {code}
- {count} custom variables
"Review the file and confirm it looks correct."
7. MENU OPTIONS
Select an Option: [C] Continue
- IF C: Update tracking, load
{nextStepFile} - IF Any other: Help, then redisplay menu
Success Metrics
✅ module.yaml created ✅ Required fields populated ✅ Custom variables added (if any) ✅ Extension modules use correct code ✅ Build tracking updated