mirror of
https://github.com/bmadcode/BMAD-METHOD.git
synced 2025-12-29 16:14:59 +00:00
doc fixes
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# Workflow Vendoring, Customization, and Inheritance (Official Support Consing Soon)
|
||||
|
||||
Vendoring and Inheritance of workflows are 2 ways of sharing or reutilizing workflows - but with some key distinctions and use cases.
|
||||
|
||||
## Workflow Vendoring
|
||||
|
||||
Workflow Vendoring allows an agent to have access to a workflow from another module, without having to install said module. At install time, the module workflow being vendored will be cloned and installed into the module that is receiving the vendored workflow the agent needs.
|
||||
|
||||
### How to Vendor
|
||||
|
||||
Lets assume you are building a module, and you do not want to recreate a workflow from the BMad Method, such as workflows/4-implementation/dev-story/workflow.md. Instead of copying all the context to your module, and having to maintain it over time as updates are made, you can instead use the exec-vendor menu item in your agent.
|
||||
|
||||
From your modules agent definition, you would implement the menu item as follows in the agent:
|
||||
|
||||
```yaml
|
||||
- trigger: develop-story
|
||||
exec-vendor: "{project-root}/_bmad/<source-module>/workflows/4-production/dev-story/workflow.md"
|
||||
exec: "{project-root}/_bmad/<my-module>/workflows/dev-story/workflow.md"
|
||||
description: "Execute Dev Story workflow, implementing tasks and tests, or performing updates to the story"
|
||||
```
|
||||
|
||||
At install time, it will clone the workflow and all of its required assets, and the agent that gets built will have an exec to a path installed in its own module. The content gets added to the folder you specify in exec. While it does not have to exactly match the source path, you will want to ensure you are specifying the workflow.md to be in a new location (in other words in this example, dev-story would not already be the path of another custom module workflow that already exists.)
|
||||
|
||||
## Workflow Inheritance (Official Support Coming Post Beta)
|
||||
|
||||
Workflow Inheritance is a different concept, that allows you to modify or extend existing workflow.
|
||||
|
||||
Party Mode from the core is an example of a workflow that is designed with inheritance in mind - customization for specific party needs. While party mode itself is generic - there might be specific agent collaborations you want to create. Without having to reinvent the whole party mode concept, or copy and paste all of its content - you could inherit from party mode to extend it to be specific.
|
||||
|
||||
Some possible examples could be:
|
||||
|
||||
- Retrospective
|
||||
- Sprint Planning
|
||||
- Collaborative Brainstorming Sessions
|
||||
|
||||
## Workflow Customization (Official Support Coming Post Beta)
|
||||
|
||||
Similar to Workflow Inheritance, Workflow Customization will soon be allowed for certain workflows that are meant to be user customized - similar in process to how agents are customized now.
|
||||
|
||||
This will take the shape of workflows with optional hooks, configurable inputs, and the ability to replace whole at install time.
|
||||
|
||||
For example, assume you are using the Create PRD workflow, which is comprised of 11 steps, and you want to always include specifics about your companies domain, technical landscape or something else. While project-context can be helpful with that, you can also through hooks and step overrides, have full replace steps, the key requirement being to ensure your step replace file is an exact file name match of an existing step, follows all conventions, and ends in a similar fashion to either hook back in to call the next existing step, or more custom steps that eventually hook back into the flow.
|
||||
133
docs/modules/core/document-sharding-guide.md
Normal file
133
docs/modules/core/document-sharding-guide.md
Normal file
@@ -0,0 +1,133 @@
|
||||
# Document Sharding Guide
|
||||
|
||||
Comprehensive guide to BMad Method's document sharding system for managing large planning and architecture documents.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Document Sharding Guide](#document-sharding-guide)
|
||||
- [Table of Contents](#table-of-contents)
|
||||
- [What is Document Sharding?](#what-is-document-sharding)
|
||||
- [Architecture](#architecture)
|
||||
- [When to Use Sharding](#when-to-use-sharding)
|
||||
- [Ideal Candidates](#ideal-candidates)
|
||||
- [How Sharding Works](#how-sharding-works)
|
||||
- [Sharding Process](#sharding-process)
|
||||
- [Workflow Discovery](#workflow-discovery)
|
||||
- [Using the Shard-Doc Tool](#using-the-shard-doc-tool)
|
||||
- [CLI Command](#cli-command)
|
||||
- [Interactive Process](#interactive-process)
|
||||
- [What Gets Created](#what-gets-created)
|
||||
- [Workflow Support](#workflow-support)
|
||||
- [Universal Support](#universal-support)
|
||||
|
||||
## What is Document Sharding?
|
||||
|
||||
Document sharding splits large markdown files into smaller, organized files based on level 2 headings (`## Heading`). This enables:
|
||||
|
||||
- **Selective Loading** - Workflows load only the sections they need
|
||||
- **Reduced Token Usage** - Massive efficiency gains for large projects
|
||||
- **Better Organization** - Logical section-based file structure
|
||||
- **Maintained Context** - Index file preserves document structure
|
||||
|
||||
### Architecture
|
||||
|
||||
```
|
||||
Before Sharding:
|
||||
docs/
|
||||
└── PRD.md (large 50k token file)
|
||||
|
||||
After Sharding:
|
||||
docs/
|
||||
└── prd/
|
||||
├── index.md # Table of contents with descriptions
|
||||
├── overview.md # Section 1
|
||||
├── user-requirements.md # Section 2
|
||||
├── technical-requirements.md # Section 3
|
||||
└── ... # Additional sections
|
||||
```
|
||||
|
||||
## When to Use Sharding
|
||||
|
||||
### Ideal Candidates
|
||||
|
||||
**Large Multi-Epic Projects:**
|
||||
|
||||
- Very large complex PRDs
|
||||
- Architecture documents with multiple system layers
|
||||
- Epic files with 4+ epics (especially for Phase 4)
|
||||
- UX design specs covering multiple subsystems
|
||||
|
||||
## How Sharding Works
|
||||
|
||||
### Sharding Process
|
||||
|
||||
1. **Tool Execution**: Run `npx @kayvan/markdown-tree-parser source.md destination/` - this is abstracted with the core shard-doc task which is installed as a slash command or manual task rule depending on your tools.
|
||||
2. **Section Extraction**: Tool splits by level 2 headings
|
||||
3. **File Creation**: Each section becomes a separate file
|
||||
4. **Index Generation**: `index.md` created with structure and descriptions
|
||||
|
||||
### Workflow Discovery
|
||||
|
||||
BMad workflows use a **dual discovery system**:
|
||||
|
||||
1. **Try whole document first** - Look for `document-name.md`
|
||||
2. **Check for sharded version** - Look for `document-name/index.md`
|
||||
3. **Priority rule** - Whole document takes precedence if both exist - remove the whole document if you want the sharded to be used instead.
|
||||
|
||||
## Using the Shard-Doc Tool
|
||||
|
||||
### CLI Command
|
||||
|
||||
```bash
|
||||
/bmad:core:tools:shard-doc
|
||||
```
|
||||
|
||||
### Interactive Process
|
||||
|
||||
```
|
||||
Agent: Which document would you like to shard?
|
||||
User: docs/PRD.md
|
||||
|
||||
Agent: Default destination: docs/prd/
|
||||
Accept default? [y/n]
|
||||
User: y
|
||||
|
||||
Agent: Sharding PRD.md...
|
||||
✓ Created 12 section files
|
||||
✓ Generated index.md
|
||||
✓ Complete!
|
||||
```
|
||||
|
||||
### What Gets Created
|
||||
|
||||
**index.md structure:**
|
||||
|
||||
```markdown
|
||||
# PRD - Index
|
||||
|
||||
## Sections
|
||||
|
||||
1. [Overview](./overview.md) - Project vision and objectives
|
||||
2. [User Requirements](./user-requirements.md) - Feature specifications
|
||||
3. [Epic 1: Authentication](./epic-1-authentication.md) - User auth system
|
||||
4. [Epic 2: Dashboard](./epic-2-dashboard.md) - Main dashboard UI
|
||||
...
|
||||
```
|
||||
|
||||
**Individual section files:**
|
||||
|
||||
- Named from heading text (kebab-case)
|
||||
- Contains complete section content
|
||||
- Preserves all markdown formatting
|
||||
- Can be read independently
|
||||
|
||||
## Workflow Support
|
||||
|
||||
### Universal Support
|
||||
|
||||
**All BMM workflows support both formats:**
|
||||
|
||||
- ✅ Whole documents
|
||||
- ✅ Sharded documents
|
||||
- ✅ Automatic detection
|
||||
- ✅ Transparent to user
|
||||
Reference in New Issue
Block a user