OpenCode does not have a native 'skills' concept. It uses .opencode/agents/ for agent persona definitions and .opencode/commands/ for slash commands. The installer was incorrectly placing everything into .opencode/skills/ as SKILL.md directories, which duplicated content from _bmad/ and prevented workflows from appearing as native opencode commands. Switch opencode to a multi-target layout: - .opencode/agents/ — flat agent launcher files (opencode-agent template) - .opencode/commands/ — flat workflow/task/tool command files This matches the output that older installations (e.g. v6.0.4) produced and aligns with how opencode actually discovers and surfaces agents and commands. Also update detect() and findAncestorConflict() in the config-driven handler to support multi-target platforms, so detection and ancestor conflict checks work correctly for all target directories. |
||
|---|---|---|
| .. | ||
| commands | ||
| installers | ||
| lib | ||
| README.md | ||
| bmad-cli.js | ||
| external-official-modules.yaml | ||
README.md
BMad CLI Tool
Installing external repo BMad official modules
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 Notes
Modules can display setup guidance to users after configuration is collected during npx bmad-method install. Notes are defined in the module's own module.yaml — no changes to the installer are needed.
Simple Format
Always displayed after the module is configured:
post-install-notes: |
Thank you for choosing the XYZ Cool Module
For Support about this Module call 555-1212
Conditional Format
Display different messages based on a config question's answer:
post-install-notes:
config_key_name:
value1: |
Instructions for value1...
value2: |
Instructions for value2...
Values without an entry (e.g., none) display nothing. Multiple config keys can each have their own conditional notes.
Example: TEA Module
The TEA module uses the conditional format keyed on tea_browser_automation:
post-install-notes:
tea_browser_automation:
cli: |
Playwright CLI Setup:
npm install -g @playwright/cli@latest
playwright-cli install --skills
mcp: |
Playwright MCP Setup (two servers):
1. playwright — npx @playwright/mcp@latest
2. playwright-test — npx playwright run-test-mcp-server
auto: |
Playwright CLI Setup:
...
Playwright MCP Setup (two servers):
...
When a user selects auto, they see both CLI and MCP instructions. When they select none, nothing is shown.