BMAD-METHOD/docs/custom-content-installation.md

150 lines
5.2 KiB
Markdown
Raw Permalink Normal View History

2025-12-07 14:11:17 -06:00
# Custom Content Installation
This guide explains how to create and install custom BMAD content including agents, workflows, and modules. Custom content extends BMAD's functionality with specialized tools and workflows that can be shared across projects or teams.
2025-12-07 14:11:17 -06:00
For detailed information about the different types of custom content available, see [Custom Content](./custom-content.md).
2025-12-07 14:11:17 -06:00
If you download either of the folders within the [Sample Custom Modules](./sample-custom-modules/readme.md) folder
2025-12-07 14:11:17 -06:00
## Content Types Overview
2025-12-07 14:11:17 -06:00
BMAD Core supports several categories of custom content:
2025-12-07 14:11:17 -06:00
- Custom Stand Alone Modules
- Custom Add On Modules
- Custom Global Modules
- Custom Agents
- Custom Workflows
2025-12-07 14:11:17 -06:00
## Making Custom Content Installable
2025-12-07 14:11:17 -06:00
### Custom Modules
2025-12-07 14:11:17 -06:00
To create an installable custom module:
2025-12-07 14:11:17 -06:00
1. **Folder Structure**
- Create a folder with a short, abbreviated name (e.g., `cis` for Creative Intelligence Suite)
- The folder name serves as the module code
2025-12-07 14:11:17 -06:00
2. **Required Files**
- Include a `module.yaml` file in the root folder
- This file drives the installation process when used by the BMAD installer
- Reference existing modules or the BMad Builder for configuration examples
2025-12-07 14:11:17 -06:00
3. **Folder Organization**
Follow these conventions for optimal compatibility:
2025-12-07 14:11:17 -06:00
```
module-code/
module.yaml
agents/
workflows/
tools/
templates/
...
```
2025-12-07 14:11:17 -06:00
- `agents/` - Agent definitions
- `workflows/` - Workflow definitions
- Additional custom folders are supported but following conventions is recommended for agent and workflow discovery
2025-12-07 14:11:17 -06:00
**Note:** Full documentation for global modules and add-on modules will be available as support is finalized.
2025-12-07 14:11:17 -06:00
### Standalone Content (Agents, Workflows, Tasks, Tools, Templates, Prompts)
2025-12-07 14:11:17 -06:00
For standalone content that isn't part of a cohesive module collection, follow this structure:
2025-12-07 14:11:17 -06:00
1. **Module Configuration**
- Create a folder with a `module.yaml` file (similar to custom modules)
- Add the property `unitary: true` to the module.yaml
- The `unitary: true` property indicates this is a collection of potentially unrelated items that don't depend on each other
2025-12-07 14:11:17 -06:00
2. **Folder Structure**
Organize content in specific named folders:
2025-12-07 14:11:17 -06:00
```
module-name/
module.yaml # Contains unitary: true
agents/
workflows/
templates/
tools/
tasks/
prompts/
```
2025-12-07 14:11:17 -06:00
3. **Individual Item Organization**
Each item should have its own subfolder:
```text
my-custom-stuff/
module.yaml
agents/
larry/larry.agent.md
curly/curly.agent.md
moe/moe.agent.md
moe/moe-sidecar/memories.csv
```
2025-12-07 14:11:17 -06:00
**Future Feature:** Unitary modules will support selective installation, allowing users to pick and choose which specific items to install.
2025-12-07 14:11:17 -06:00
**Note:** Documentation explaining the distinctions between these content types and their specific use cases will be available soon.
2025-12-07 14:11:17 -06:00
## Installation Process
### Prerequisites
2025-12-07 14:11:17 -06:00
Ensure your content follows the proper conventions and includes a `module.yaml` file (only one per top-level folder).
2025-12-07 14:11:17 -06:00
### New Project Installation
2025-12-07 14:11:17 -06:00
When setting up a new BMAD project:
2025-12-07 14:11:17 -06:00
1. The installer will prompt: `Would you like to install a local custom module (this includes custom agents and workflows also)? (y/N)`
2. Select 'y' to specify the path to your module folder containing `module.yaml`
2025-12-07 14:11:17 -06:00
### Existing Project Modification
2025-12-07 14:11:17 -06:00
To add custom content to an existing BMAD project:
2025-12-07 14:11:17 -06:00
1. Run the installer against your project location
2. Select `Modify BMAD Installation`
3. Choose the option to add, modify, or update custom modules
2025-12-07 14:11:17 -06:00
### Upcoming Features
2025-12-07 14:11:17 -06:00
- **Unitary Module Selection:** For modules with `type: unitary` (instead of `type: module`), you'll be able to select specific items to install
- **Add-on Module Dependencies:** The installer will verify and install dependencies for add-on modules automatically
2025-12-07 14:11:17 -06:00
## Quick Updates
2025-12-07 14:11:17 -06:00
When updates to BMAD Core or core modules (BMM, CIS, etc.) become available, the quick update process will:
2025-12-07 14:11:17 -06:00
1. Apply available updates to core modules
2. Recompile all agents with customizations from the `_config/agents` folder
3. Retain your custom content from a cached location
4. Preserve your existing configurations and customizations
2025-12-07 14:11:17 -06:00
This means you don't need to keep the source module files locally. When updates are available, simply point to the updated module location during the update process.
2025-12-07 14:11:17 -06:00
## Important Considerations
2025-12-07 14:11:17 -06:00
### Module Naming Conflicts
2025-12-07 14:11:17 -06:00
When installing unofficial modules, ensure unique identification to avoid conflicts:
2025-12-07 14:11:17 -06:00
1. **Module Codes:** Each module must have a unique code (e.g., don't use `bmm` for custom modules)
2. **Module Names:** Avoid using names that conflict with existing modules
3. **Multiple Custom Modules:** If creating multiple custom modules, use distinct codes for each
2025-12-07 14:11:17 -06:00
**Examples of conflicts to avoid:**
2025-12-07 14:11:17 -06:00
- Don't create a custom module with code `bmm` (already used by BMad Method)
- Don't name multiple custom modules with the same code like `mca`
2025-12-07 14:11:17 -06:00
### Best Practices
- Use descriptive, unique codes for your modules
- Document any dependencies your custom modules have
- Test custom modules in isolation before sharing
- Consider version numbering for your custom content to track updates