docs: added docs on how to set the post install output in the module
This commit is contained in:
parent
55f5491cff
commit
1943ca2ad1
|
|
@ -5,3 +5,62 @@
|
|||
For external official modules to be discoverable during install, ensure an entry for the external repo is added to external-official-modules.yaml.
|
||||
|
||||
For community modules - this will be handled in a different way. This file is only for registration of modules under the bmad-code-org.
|
||||
|
||||
## Post-Install Configuration Notes for Module Authors
|
||||
|
||||
The installer can display setup guidance to users after a module's configuration is collected. This is handled by the `displayModulePostConfigNotes(moduleName)` method in `installers/lib/core/config-collector.js`.
|
||||
|
||||
### When It Runs
|
||||
|
||||
The method is called in two places:
|
||||
|
||||
- After `collectModuleConfig()` completes (full interactive configuration)
|
||||
- After `collectModuleConfigQuick()` completes (quick mode with existing config)
|
||||
|
||||
This ensures users see relevant setup instructions regardless of installation path.
|
||||
|
||||
### Guards
|
||||
|
||||
Output is suppressed when:
|
||||
|
||||
- **Silent mode** (`this._silentConfig`) — non-interactive installations skip all output
|
||||
- **Feature disabled** — e.g., if the config value is `'none'`, no guidance is needed
|
||||
|
||||
### Adding Support for a New Module
|
||||
|
||||
To add post-config notes for your module, add a conditional block in `displayModulePostConfigNotes()`:
|
||||
|
||||
```javascript
|
||||
async displayModulePostConfigNotes(moduleName) {
|
||||
if (this._silentConfig) return;
|
||||
|
||||
// Existing: TEA module handler
|
||||
if (moduleName !== 'tea') return;
|
||||
// ...
|
||||
|
||||
// To add your module, replace the early return above with:
|
||||
if (moduleName === 'your-module') {
|
||||
const config = this.collectedConfig[moduleName];
|
||||
if (!config || !config.your_config_key) return;
|
||||
|
||||
const value = config.your_config_key;
|
||||
if (value === 'none') return;
|
||||
|
||||
const color = await prompts.getColor();
|
||||
await prompts.log.message('');
|
||||
await prompts.log.info(color.bold('Your Setup Instructions:'));
|
||||
await prompts.log.message(color.dim(' Instructions based on selected value...'));
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Key Details
|
||||
|
||||
- Read config values from `this.collectedConfig[moduleName]`
|
||||
- Use `prompts.log.info()` for headers and `prompts.log.message()` for details
|
||||
- Use `color.bold()` and `color.dim()` for visual hierarchy
|
||||
- The config question that drives the output is defined in the module's `module.yaml`
|
||||
|
||||
### Working Example: TEA Module
|
||||
|
||||
The TEA module defines a `tea_browser_automation` config question with options: `auto`, `cli`, `mcp`, `none`. After configuration, the handler at lines 1207-1235 displays Playwright CLI install commands and/or MCP setup links based on the user's selection.
|
||||
|
|
|
|||
Loading…
Reference in New Issue