all modules custom or core use the same installer and have consistent behavior now.

This commit is contained in:
Brian Madison
2025-12-07 17:17:50 -06:00
parent baaa984a90
commit 6430173738
44 changed files with 393 additions and 253 deletions

View File

@@ -113,10 +113,10 @@ For a [module type] module, we'll create this structure:"
│ └── [template-files]
├── data/ # Module data files
│ └── [data-files]
├── module.yaml # Required
├── _module-installer/ # Installation configuration
│ ├── install-config.yaml # Required
── installer.js # Optional
│ └── assets/ # Optional install assets
│ ├── installer.js # Optional
── assets/ # Optional install assets
└── README.md # Module documentation
```

View File

@@ -184,7 +184,7 @@ Update module-plan.md with configuration section:
### Result Configuration Structure
The install-config.yaml will generate:
The module.yaml will generate:
- Module configuration at: {bmad_folder}/{module_code}/config.yaml
- User settings stored as: [describe structure]
````

View File

@@ -37,7 +37,7 @@ partyModeWorkflow: '{project-root}/{bmad_folder}/core/workflows/party-mode/workf
## EXECUTION PROTOCOLS:
- 🎯 Use configuration plan from step 5
- 💾 Create install-config.yaml with all fields
- 💾 Create module.yaml with all fields
- 📖 Add "step-08-installer" to stepsCompleted array` before loading next step
- 🚫 FORBIDDEN to load next step until user selects 'C'
@@ -50,7 +50,7 @@ partyModeWorkflow: '{project-root}/{bmad_folder}/core/workflows/party-mode/workf
## STEP GOAL:
To create the module installer configuration (install-config.yaml) that defines how users will install and configure the module.
To create the module installer configuration (module.yaml) that defines how users will install and configure the module.
## INSTALLER SETUP PROCESS:
@@ -74,11 +74,11 @@ From step 5, we planned these configuration fields:
Ensure \_module-installer directory exists
Directory: {custom_module_location}/{module_name}/\_module-installer/
### 3. Create install-config.yaml
### 3. Create module.yaml
"I'll create the install-config.yaml file based on your configuration plan. This is the core installer configuration file."
"I'll create the module.yaml file based on your configuration plan. This is the core installer configuration file."
Create file: {custom_module_location}/{module_name}/\_module-installer/install-config.yaml from template {installConfigTemplate}
Create file: {custom_module_location}/{module_name}/module.yaml from template {installConfigTemplate}
### 4. Handle Custom Installation Logic
@@ -117,7 +117,7 @@ Update module-plan.md with installer section:
### Install Configuration
- File: \_module-installer/install-config.yaml
- File: module.yaml
- Module code: {module_name}
- Default selected: false
- Configuration fields: [count]
@@ -166,7 +166,7 @@ Display: **Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Conti
### ✅ SUCCESS:
- install-config.yaml created with all planned fields
- module.yaml created with all planned fields
- YAML syntax valid
- Custom installation logic prepared (if needed)
- Installer follows BMAD standards
@@ -174,7 +174,7 @@ Display: **Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Conti
### ❌ SYSTEM FAILURE:
- Not creating install-config.yaml
- Not creating module.yaml
- Invalid YAML syntax
- Missing required fields
- Not using proper path templates

View File

@@ -133,7 +133,8 @@ bmad install {module_name}
├── tasks/ # Task files
├── templates/ # Shared templates
├── data/ # Module data
├── _module-installer/ # Installation config
├── _module-installer/ # Installation optional js file with custom install routine
├── module.yaml # yaml config and install questions
└── README.md # This file
```

View File

@@ -207,9 +207,10 @@ workflow {workflow_name}
├── workflows/ # ✅ Structure created, plans written
├── tasks/ # ✅ Created
├── templates/ # ✅ Created
├── data/ # ✅ Created
├── data/ # ✅ Created
├── _module-installer/ # ✅ Configured
└── README.md # ✅ Complete
└── README.md # ✅ Complete
└── module.yaml # ✅ Complete
```
## Completion Criteria

View File

@@ -73,8 +73,8 @@ Expected Structure:
├── templates/ [✅/❌]
├── data/ [✅/❌]
├── _module-installer/ [✅/❌]
── install-config.yaml [✅/]
│ └── installer.js [✅/N/A]
── installer.js [✅/N/A]
├── module.yaml [✅/]
└── README.md [✅/❌]
```
@@ -87,7 +87,7 @@ Expected Structure:
"**2. Configuration Files Check**"
**Install Configuration:**
Validate install-config.yaml
Validate module.yaml
- [ ] YAML syntax valid
- [ ] Module code matches folder name

View File

@@ -6,7 +6,7 @@
/**
* @param {Object} options - Installation options
* @param {string} options.projectRoot - Project root directory
* @param {Object} options.config - Module configuration from install-config.yaml
* @param {Object} options.config - Module configuration from module.yaml
* @param {Array} options.installedIDEs - List of IDE codes being configured
* @param {Object} options.logger - Logger instance (log, warn, error methods)
* @returns {boolean} - true if successful, false to abort installation

View File

@@ -13,15 +13,15 @@ This document provides the validation criteria used in step-11-validate.md to en
- [ ] data/ - Module data
- [ ] \_module-installer/ - Installation config
- [ ] README.md - Module documentation
- [ ] module.yaml - module config file
### Required Files in \_module-installer/
### Optional File in \_module-installer/
- [ ] install-config.yaml - Installation configuration
- [ ] installer.js - Custom logic (if needed)
## Configuration Validation
### install-config.yaml
### module.yaml
- [ ] Valid YAML syntax
- [ ] Module code matches folder name