Skip to content

Commit d0e0a09

Browse files
Brian MadisonBrian Madison
authored andcommitted
examples of custom modules, custom module and readme doc updates
1 parent 32615af commit d0e0a09

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+2834
-689
lines changed

README.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,33 @@
66
[![Node.js Version](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen)](https://nodejs.org)
77
[![Discord](https://img.shields.io/badge/Discord-Join%20Community-7289da?logo=discord&logoColor=white)](https://discord.gg/gk8jAdXWmj)
88

9+
---
10+
11+
<div align="center">
12+
13+
## 🎉 NEW: BMAD V6 Installer - Create & Share Custom Content!
14+
15+
The completely revamped **BMAD V6 installer** now includes built-in support for creating, installing, and sharing custom modules, agents, workflows, templates, and tools! Build your own AI solutions or share them with your team - and real soon, with the whole BMad Community througha verified community sharing portal!
16+
17+
**✨ What's New:**
18+
19+
- 📦 **Streamlined Custom Module Installation** - Package your custom content as installable modules
20+
- 🤖 **Agent & Workflow Sharing** - Distribute standalone agents and workflows
21+
- 🔄 **Unitary Module Support** - Install individual components without full modules
22+
- ⚙️ **Dependency Management** - Automatic handling of module dependencies
23+
- 🛡️ **Update-Safe Customization** - Your custom content persists through updates
24+
25+
**📚 Learn More:**
26+
27+
- [**Custom Content Overview**](./docs/custom-content.md) - Discover all supported content types
28+
- [**Installation Guide**](./docs/custom-content-installation.md) - Learn to create and install custom content
29+
- [**Detail Content Docs**](./src/modules/bmb/docs/README.md) - Reference details for agents, modules, workflows and the bmad builder
30+
- [**2 Very simple Custom Modules of questionable quality**](./docs/sample-custom-modules/README.md) - if you want to download and try to install a custom shared module, get an idea of how to bundle and share your own, or create your own personal agents, workflows and modules.
31+
32+
</div>
33+
34+
---
35+
936
## AI-Driven Agile Development That Scales From Bug Fixes to Enterprise
1037

1138
**Build More, Architect Dreams** (BMAD) with **21 specialized AI agents** across 4 official modules, and **50+ guided workflows** that adapt to your project's complexity—from quick bug fixes to enterprise platforms, and new step file workflows that allow for incredibly long workflows to stay on the rails longer than ever before!
@@ -120,7 +147,7 @@ Each agent brings deep expertise and can be customized to match your team's styl
120147
- **BMad Builder (BMB)** - Create custom agents and workflows
121148
- Build anything from simple agents to complex modules
122149
- Create domain-specific solutions (legal, medical, finance, education)
123-
- Share your creations in the upcoming community marketplace
150+
- [→ Builder Guide](src/modules/bmb/docs/README.md) marketplace
124151
- [→ Builder Guide](./src/modules/bmb/README.md)
125152

126153
- **Creative Intelligence Suite (CIS)** - Innovation & problem-solving
Lines changed: 100 additions & 195 deletions
Original file line numberDiff line numberDiff line change
@@ -1,244 +1,149 @@
11
# Custom Content Installation
22

3-
This guide explains how to create and install custom BMAD content including agents, workflows, and modules. Custom content allows you to extend BMAD's functionality with your own specialized tools and workflows that can be shared across projects or teams.
3+
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.
44

5-
## Types of Custom Content
5+
For detailed information about the different types of custom content available, see [Custom Content](./custom-content.md).
66

7-
### 1. Custom Agents and Workflows (Standalone)
7+
If you download either of the folders within the [Sample Custom Modules](./sample-custom-modules/readme.md) folder
88

9-
Custom agents and workflows are standalone content packages that can be installed without being part of a full module. These are perfect for:
9+
## Content Types Overview
1010

11-
- Sharing specialized agents across projects
12-
- Building a personal Agent powered Notebook vault
13-
- Distributing workflow templates
14-
- Creating agent libraries for specific domains
11+
BMAD Core supports several categories of custom content:
1512

16-
#### Structure
13+
- Custom Stand Alone Modules
14+
- Custom Add On Modules
15+
- Custom Global Modules
16+
- Custom Agents
17+
- Custom Workflows
1718

18-
A custom agents and workflows package follows this structure:
19+
## Making Custom Content Installable
1920

20-
```
21-
my-custom-agents/
22-
├── module.yaml # Package configuration
23-
├── agents/ # Agent definitions
24-
│ └── my-agent/
25-
│ └── agent.md
26-
└── workflows/ # Workflow definitions
27-
└── my-workflow/
28-
└── workflow.md
29-
```
21+
### Custom Modules
3022

31-
#### Configuration
23+
To create an installable custom module:
3224

33-
Create a `module.yaml` file in your package root:
25+
1. **Folder Structure**
26+
- Create a folder with a short, abbreviated name (e.g., `cis` for Creative Intelligence Suite)
27+
- The folder name serves as the module code
3428

35-
```yaml
36-
code: my-custom-agents
37-
name: 'My Custom Agents and Workflows'
38-
default_selected: true
39-
```
29+
2. **Required Files**
30+
- Include a `module.yaml` file in the root folder
31+
- This file drives the installation process when used by the BMAD installer
32+
- Reference existing modules or the BMad Builder for configuration examples
4033

41-
#### Example
34+
3. **Folder Organization**
35+
Follow these conventions for optimal compatibility:
4236

43-
See `/example-custom-content` for a working example of a folder with multiple random custom agents and workflows. Technically its also just a module, but you will be able to further pick and choose from this folders contents of what you do and do not want to include in a destination folder. This way, you can store all custom content source in one location and easily install it to different locations.
37+
```
38+
module-code/
39+
module.yaml
40+
agents/
41+
workflows/
42+
tools/
43+
templates/
44+
...
45+
```
4446

45-
### 2. Custom Modules
47+
- `agents/` - Agent definitions
48+
- `workflows/` - Workflow definitions
49+
- Additional custom folders are supported but following conventions is recommended for agent and workflow discovery
4650

47-
Custom modules are complete BMAD modules that can include their own configuration, documentation, along with agents and workflows that all compliment each other. Additionally they will have their own installation scripts, data, and potentially other tools. Modules can be used for:
51+
**Note:** Full documentation for global modules and add-on modules will be available as support is finalized.
4852

49-
- Domain-specific functionality (e.g., industry-specific workflows, entertainment, education and training, medical, etc...)
50-
- Integration with external systems
51-
- Specialized agent collections
52-
- Custom tooling and utilities
53+
### Standalone Content (Agents, Workflows, Tasks, Tools, Templates, Prompts)
5354

54-
#### Structure
55+
For standalone content that isn't part of a cohesive module collection, follow this structure:
5556

56-
A custom module follows this structure:
57+
1. **Module Configuration**
58+
- Create a folder with a `module.yaml` file (similar to custom modules)
59+
- Add the property `unitary: true` to the module.yaml
60+
- The `unitary: true` property indicates this is a collection of potentially unrelated items that don't depend on each other
5761

58-
```
59-
my-module/
60-
├── _module-installer/
61-
│ ├── installer.js # optional, when it exists it will run with module installation
62-
├── module.yaml # Module installation configuration with custom question and answer capture
63-
├── docs/ # Module documentation
64-
├── agents/ # Module-specific agents
65-
├── workflows/ # Module-specific workflows
66-
├── data/ # csv or other content to power agent intelligence or workflows
67-
├── tools/ # Custom tools, hooks, mcp
68-
└── sub-modules/ # IDE-specific customizations
69-
├── vscode/
70-
└── cursor/
71-
```
62+
2. **Folder Structure**
63+
Organize content in specific named folders:
7264

73-
#### Module Configuration
65+
```
66+
module-name/
67+
module.yaml # Contains unitary: true
68+
agents/
69+
workflows/
70+
templates/
71+
tools/
72+
tasks/
73+
prompts/
74+
```
7475

75-
The `module.yaml` file defines how your module is installed:
76+
3. **Individual Item Organization**
77+
Each item should have its own subfolder:
78+
```text
79+
my-custom-stuff/
80+
module.yaml
81+
agents/
82+
larry/larry.agent.md
83+
curly/curly.agent.md
84+
moe/moe.agent.md
85+
moe/moe-sidecar/memories.csv
86+
```
7687

77-
```yaml
78-
# Module metadata
79-
code: my-module
80-
name: 'My Custom Module'
81-
default_selected: false
88+
**Future Feature:** Unitary modules will support selective installation, allowing users to pick and choose which specific items to install.
8289

83-
header: 'My Custom Module'
84-
subheader: 'Description of what this module does'
85-
86-
# Configuration prompts
87-
my_setting:
88-
prompt: 'Configure your module setting'
89-
default: 'default-value'
90-
result: '{value}'
91-
```
92-
93-
#### Example
94-
95-
See `/example-custom-module` for a complete example:
90+
**Note:** Documentation explaining the distinctions between these content types and their specific use cases will be available soon.
9691

9792
## Installation Process
9893

99-
### Step 1: Running the Installer
100-
101-
When you run the existing normal BMAD installer - either from the cloned repo, OR via NPX, it will ask about custom content:
102-
103-
```
104-
? Do you have custom content to install?
105-
❯ No (skip custom content)
106-
Enter a directory path
107-
Enter a URL [Coming soon]
108-
```
109-
110-
### Step 2: Providing Custom Content Path
111-
112-
If you select "Enter a directory path", the installer will prompt for the location:
113-
114-
```
115-
? Enter the path to your custom content directory: /path/to/folder/containing/content/folder
116-
```
117-
118-
The installer will:
119-
120-
- Scan for `module.yaml` files (modules)
121-
- Display an indication of how many installable folders it has found. Note that a project with stand along agents and workflows all under a single folder like the example will just list the count as 1 for that directory.
122-
123-
### Step 3: Selecting Content
124-
125-
The installer presents a unified selection interface:
126-
127-
```
128-
? Select modules and custom content to install:
129-
[── Custom Content ──]
130-
◉ My Custom Agents and Workflows (/path/to/custom)
131-
[── Official Content ──]
132-
◯ BMM: Business Method & Management
133-
◯ CIS: Creativity & Innovation Suite
134-
```
135-
136-
## Agent Sidecar Support
94+
### Prerequisites
13795

138-
Agents with sidecar content can store personal data, memories, and working files outside of the `_bmad` directory. This separation keeps personal content separate from BMAD's core files.
96+
Ensure your content follows the proper conventions and includes a `module.yaml` file (only one per top-level folder).
13997

140-
### What is Sidecar Content?
98+
### New Project Installation
14199

142-
Sidecar content includes:
100+
When setting up a new BMAD project:
143101

144-
- Agent memories and learning data
145-
- Personal working files
146-
- Temporary data
147-
- User-specific configurations
102+
1. The installer will prompt: `Would you like to install a local custom module (this includes custom agents and workflows also)? (y/N)`
103+
2. Select 'y' to specify the path to your module folder containing `module.yaml`
148104

149-
### Sidecar Configuration
105+
### Existing Project Modification
150106

151-
The sidecar folder location is configured during BMAD core installation:
107+
To add custom content to an existing BMAD project:
152108

153-
```
154-
? Where should users' agent sidecar memory folders be stored?
155-
❯ _bmad-user-memory
156-
```
109+
1. Run the installer against your project location
110+
2. Select `Modify BMAD Installation`
111+
3. Choose the option to add, modify, or update custom modules
157112

158-
### How It Works
113+
### Upcoming Features
159114

160-
1. **Agent Declaration**: Agents declare `hasSidecar: true` in their metadata
161-
2. **Sidecar Detection**: The installer automatically detects folders with "sidecar" in the name
162-
3. **Installation**: Sidecar content is always copied to the destination install \_bmad/\_memory folder.
115+
- **Unitary Module Selection:** For modules with `type: unitary` (instead of `type: module`), you'll be able to select specific items to install
116+
- **Add-on Module Dependencies:** The installer will verify and install dependencies for add-on modules automatically
163117

164-
### Example Structure
118+
## Quick Updates
165119

166-
```
167-
my-agent/
168-
├── agent.md # Agent definition
169-
└── my-agent-sidecar/ # Sidecar content folder
170-
├── memories/
171-
├── working/
172-
└── config/
173-
```
120+
When updates to BMAD Core or core modules (BMM, CIS, etc.) become available, the quick update process will:
174121

175-
### Git Integration
122+
1. Apply available updates to core modules
123+
2. Recompile all agents with customizations from the `_config/agents` folder
124+
3. Retain your custom content from a cached location
125+
4. Preserve your existing configurations and customizations
176126

177-
Since sidecar content is stored outside the `_bmad` directory (and typically outside version control), users can:
127+
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.
178128

179-
- Add the sidecar folder to `.gitignore` to exclude personal data
180-
- Share agent definitions without exposing personal content
181-
- Maintain separate configurations for different projects
129+
## Important Considerations
182130

183-
Example `.gitignore` entry:
131+
### Module Naming Conflicts
184132

185-
```
186-
# Exclude agent personal data
187-
_bmad-user-memory/
188-
```
133+
When installing unofficial modules, ensure unique identification to avoid conflicts:
189134

190-
## Creating Custom Content with BMAD Builder
135+
1. **Module Codes:** Each module must have a unique code (e.g., don't use `bmm` for custom modules)
136+
2. **Module Names:** Avoid using names that conflict with existing modules
137+
3. **Multiple Custom Modules:** If creating multiple custom modules, use distinct codes for each
191138

192-
The BMAD Builder provides workflows that will guide you to produce your own custom content:
139+
**Examples of conflicts to avoid:**
193140

194-
1. **Agent Templates**: Use standardized agent templates with proper structure
195-
2. **Workflow Templates**: Create workflows using proven patterns
196-
3. **Validation Tools**: Validate your content before distribution
197-
4. **Package Generation**: Generate properly structured packages
141+
- Don't create a custom module with code `bmm` (already used by BMad Method)
142+
- Don't name multiple custom modules with the same code like `mca`
198143

199144
### Best Practices
200145

201-
1. **Use Clear Naming**: Make your content codes and names descriptive
202-
2. **Provide Documentation**: Include clear setup and usage instructions
203-
3. **Test Installation**: Test your content in a clean environment
204-
4. **Version Management**: Use semantic versioning for updates
205-
5. **Respect User Privacy**: Keep personal data in sidecar folders
206-
207-
## Distribution
208-
209-
Custom content can be distributed:
210-
211-
1. **File System**: Copy folders directly to users
212-
2. **Git Repositories**: Clone or download from version control
213-
3. **Package Managers**: [Coming soon] npm package support
214-
4. **URL Installation**: [Coming soon] Direct URL installation, including an official community vetted module forge
215-
216-
## Troubleshooting
217-
218-
### No Custom Content Found
219-
220-
- Ensure your `module.yaml` files are properly named
221-
- Check file permissions
222-
- Verify the directory path is correct
223-
224-
### Installation Errors
225-
226-
- Run the installer with verbose logging
227-
- Check for syntax errors in YAML configuration files
228-
- Verify all required files are present
229-
230-
### Sidecar Issues
231-
232-
- Ensure the agent has `hasSidecar: true` in metadata
233-
- Check that sidecar folders contain "-sidecar" in the name
234-
- Verify the folder on install got cloned to \_bmad/\_memory
235-
- Ensure the custom agent has proper language in it to actually use the sidecar content, including loading memories on agent load.
236-
237-
## Support
238-
239-
For help with custom content creation or installation:
240-
241-
1. Check the examples in `/example-custom-content` and `/example-custom-module`
242-
2. Review the BMAD documentation
243-
3. Create an issue in the BMAD repository
244-
4. Join the BMAD community discussions on discord
146+
- Use descriptive, unique codes for your modules
147+
- Document any dependencies your custom modules have
148+
- Test custom modules in isolation before sharing
149+
- Consider version numbering for your custom content to track updates

0 commit comments

Comments
 (0)