Initial commit: Brachnha Insight project setup
- Next.js 14+ with App Router and TypeScript - Tailwind CSS and ShadCN UI styling - Zustand state management - Dexie.js for IndexedDB (local-first data) - Auth.js v5 for authentication - BMAD framework integration Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
273
_bmad/bmb/workflows/agent/data/agent-compilation.md
Normal file
273
_bmad/bmb/workflows/agent/data/agent-compilation.md
Normal file
@@ -0,0 +1,273 @@
|
||||
# Agent Compilation: YAML Source → Final Agent
|
||||
|
||||
> **For the LLM running this workflow:** This document explains what the compiler adds. When building agents, focus on the YAML structure defined here—do NOT add things the compiler handles automatically.
|
||||
>
|
||||
> **Example reference:** Compare `{workflow_path}/data/reference/module-examples/architect.agent.yaml` (source, 32 lines) with `architect.md` (compiled, 69 lines) to see what the compiler adds.
|
||||
|
||||
---
|
||||
|
||||
## Quick Overview
|
||||
|
||||
You write: **YAML source file** (`agent-name.agent.yaml`)
|
||||
Compiler produces: **Markdown with XML** (`agent-name.md`) for LLM consumption
|
||||
|
||||
The compiler transforms your clean YAML into a fully functional agent by adding:
|
||||
- Frontmatter (name, description)
|
||||
- XML activation block with numbered steps
|
||||
- Menu handlers (workflow, exec, action)
|
||||
- Auto-injected menu items (MH, CH, PM, DA)
|
||||
- Rules section
|
||||
|
||||
---
|
||||
|
||||
## What YOU Provide (YAML Source)
|
||||
|
||||
Your YAML contains ONLY these sections:
|
||||
|
||||
```yaml
|
||||
agent:
|
||||
metadata:
|
||||
id: "_bmad/..."
|
||||
name: "Persona Name"
|
||||
title: "Agent Title"
|
||||
icon: "🔧"
|
||||
module: "stand-alone" or "bmm" or "cis" or "bmgd"
|
||||
|
||||
persona:
|
||||
role: "First-person role description"
|
||||
identity: "Background and specializations"
|
||||
communication_style: "How the agent speaks"
|
||||
principles:
|
||||
- "Core belief or methodology"
|
||||
|
||||
critical_actions: # Optional - for Expert agents only
|
||||
- "Load ./sidecar/memories.md"
|
||||
- "Load ./sidecar/instructions.md"
|
||||
- "ONLY access ./sidecar/"
|
||||
|
||||
prompts: # Optional - for Simple/Expert agents
|
||||
- id: prompt-name
|
||||
content: |
|
||||
<instructions>Prompt content</instructions>
|
||||
|
||||
menu: # Your custom items only
|
||||
- trigger: XX or fuzzy match on command-name
|
||||
workflow: "path/to/workflow.yaml" # OR
|
||||
exec: "path/to/file.md" # OR
|
||||
action: "#prompt-id"
|
||||
description: "[XX] Command description"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## What COMPILER Adds (DO NOT Include)
|
||||
|
||||
### 1. Frontmatter
|
||||
```markdown
|
||||
---
|
||||
name: "architect"
|
||||
description: "Architect"
|
||||
---
|
||||
```
|
||||
**DO NOT add** frontmatter to your YAML.
|
||||
|
||||
### 2. XML Activation Block
|
||||
```xml
|
||||
<activation critical="MANDATORY">
|
||||
<step n="1">Load persona from this current agent file</step>
|
||||
<step n="2">Load config to get {user_name}, {communication_language}</step>
|
||||
<step n="3">Remember: user's name is {user_name}</step>
|
||||
<!-- YOUR critical_actions inserted here as steps 4, 5, etc. -->
|
||||
<step n="N">ALWAYS communicate in {communication_language}</step>
|
||||
<step n="N+1">Show greeting + numbered menu</step>
|
||||
<step n="N+2">STOP and WAIT for user input</step>
|
||||
<step n="N+3">Input resolution rules</step>
|
||||
<menu-handlers>...</menu-handlers>
|
||||
<rules>...</rules>
|
||||
</activation>
|
||||
```
|
||||
**DO NOT create** activation sections—the compiler builds them.
|
||||
|
||||
### 3. Auto-Injected Menu Items
|
||||
Every agent gets these 4 items automatically. **DO NOT add them to your YAML:**
|
||||
|
||||
| Code | Trigger | Description |
|
||||
|------|---------|-------------|
|
||||
| MH | menu or help | Redisplay Menu Help |
|
||||
| CH | chat | Chat with the Agent about anything |
|
||||
| PM | party-mode | Start Party Mode |
|
||||
| DA | exit, leave, goodbye, dismiss agent | Dismiss Agent |
|
||||
|
||||
### 4. Menu Handlers
|
||||
```xml
|
||||
<handler type="workflow">
|
||||
When menu item has: workflow="path/to/workflow.yaml"
|
||||
→ Load workflow.xml and execute with workflow-config parameter
|
||||
</handler>
|
||||
<handler type="exec">
|
||||
When menu item has: exec="path/to/file.md"
|
||||
→ Load and execute the file at that path
|
||||
</handler>
|
||||
```
|
||||
**DO NOT add** handlers—the compiler detects and generates them.
|
||||
|
||||
---
|
||||
|
||||
## Before/After Example: Architect Agent
|
||||
|
||||
### Source: `architect.agent.yaml` (32 lines - YOU WRITE)
|
||||
```yaml
|
||||
agent:
|
||||
metadata:
|
||||
id: "_bmad/bmm/agents/architect.md"
|
||||
name: Winston
|
||||
title: Architect
|
||||
icon: 🏗️
|
||||
module: bmm
|
||||
|
||||
persona:
|
||||
role: System Architect + Technical Design Leader
|
||||
identity: Senior architect with expertise in distributed systems...
|
||||
communication_style: "Speaks in calm, pragmatic tones..."
|
||||
principles: |
|
||||
- User journeys drive technical decisions...
|
||||
|
||||
menu:
|
||||
- trigger: WS or fuzzy match on workflow-status
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml"
|
||||
description: "[WS] Get workflow status..."
|
||||
|
||||
- trigger: CA or fuzzy match on create-architecture
|
||||
exec: "{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md"
|
||||
description: "[CA] Create an Architecture Document"
|
||||
|
||||
- trigger: IR or fuzzy match on implementation-readiness
|
||||
exec: "{project-root}/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md"
|
||||
description: "[IR] Implementation Readiness Review"
|
||||
```
|
||||
|
||||
### Compiled: `architect.md` (69 lines - COMPILER PRODUCES)
|
||||
```markdown
|
||||
---
|
||||
name: "architect"
|
||||
description: "Architect"
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona...
|
||||
|
||||
```xml
|
||||
<agent id="architect.agent.yaml" name="Winston" title="Architect" icon="🏗️">
|
||||
<activation critical="MANDATORY">
|
||||
<step n="1">Load persona from this current agent file (already in context)</step>
|
||||
<step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT...</step>
|
||||
<step n="3">Remember: user's name is {user_name}</step>
|
||||
<step n="4">Show greeting using {user_name} from config...</step>
|
||||
<step n="5">STOP and WAIT for user input...</step>
|
||||
<step n="6">On user input: Number → execute menu item[n]...</step>
|
||||
<step n="7">When executing a menu item: Check menu-handlers section...</step>
|
||||
|
||||
<menu-handlers>
|
||||
<handlers>
|
||||
<handler type="workflow">...</handler>
|
||||
<handler type="exec">...</handler>
|
||||
</handlers>
|
||||
</menu-handlers>
|
||||
|
||||
<rules>
|
||||
<r>ALWAYS communicate in {communication_language}</r>
|
||||
<r>Stay in character until exit selected</r>
|
||||
<r>Display Menu items as the item dictates...</r>
|
||||
<r>Load files ONLY when executing menu items...</r>
|
||||
</rules>
|
||||
</activation>
|
||||
|
||||
<persona>
|
||||
<role>System Architect + Technical Design Leader</role>
|
||||
<identity>Senior architect with expertise...</identity>
|
||||
<communication_style>Speaks in calm, pragmatic tones...</communication_style>
|
||||
<principles>- User journeys drive technical decisions...</principles>
|
||||
</persona>
|
||||
|
||||
<menu>
|
||||
<item cmd="MH or fuzzy match on menu or help">[MH] Redisplay Menu Help</item>
|
||||
<item cmd="CH or fuzzy match on chat">[CH] Chat with the Agent about anything</item>
|
||||
<item cmd="WS...">[WS] Get workflow status...</item> ← YOUR CUSTOM ITEMS
|
||||
<item cmd="CA...">[CA] Create an Architecture Document</item>
|
||||
<item cmd="IR...">[IR] Implementation Readiness Review</item>
|
||||
<item cmd="PM...">[PM] Start Party Mode</item>
|
||||
<item cmd="DA...">[DA] Dismiss Agent</item>
|
||||
</menu>
|
||||
</agent>
|
||||
```
|
||||
**Key additions by compiler:** Frontmatter, activation block, handlers, rules, MH/CH/PM/DA menu items.
|
||||
|
||||
---
|
||||
|
||||
## DO NOT DO Checklist
|
||||
|
||||
When building agent YAML, **DO NOT:**
|
||||
|
||||
- [ ] Add frontmatter (`---name/description---`) to YAML
|
||||
- [ ] Create activation blocks or XML sections
|
||||
- [ ] Add MH (menu/help) menu item
|
||||
- [ ] Add CH (chat) menu item
|
||||
- [ ] Add PM (party-mode) menu item
|
||||
- [ ] Add DA (dismiss/exit) menu item
|
||||
- [ ] Add menu handlers (workflow/exec logic)
|
||||
- [ ] Add rules section
|
||||
- [ ] Duplicate any auto-injected content
|
||||
|
||||
**DO:**
|
||||
- [ ] Define metadata (id, name, title, icon, module)
|
||||
- [ ] Define persona (role, identity, communication_style, principles)
|
||||
- [ ] Define critical_actions (Expert agents only)
|
||||
- [ ] Define prompts with IDs (Simple/Expert agents only)
|
||||
- [ ] Define menu with your custom items only
|
||||
- [ ] Use proper trigger format: `XX or fuzzy match on command-name`
|
||||
- [ ] Use proper description format: `[XX] Description text`
|
||||
|
||||
---
|
||||
|
||||
## Expert Agent: critical_actions
|
||||
|
||||
For Expert agents with sidecars, your `critical_actions` become activation steps:
|
||||
|
||||
```yaml
|
||||
critical_actions:
|
||||
- "Load COMPLETE file ./agent-sidecar/memories.md"
|
||||
- "Load COMPLETE file ./agent-sidecar/instructions.md"
|
||||
- "ONLY read/write files in ./agent-sidecar/"
|
||||
```
|
||||
|
||||
The compiler injects these as steps 4, 5, 6 in the activation block:
|
||||
|
||||
```xml
|
||||
<step n="4">Load COMPLETE file ./agent-sidecar/memories.md</step>
|
||||
<step n="5">Load COMPLETE file ./agent-sidecar/instructions.md</step>
|
||||
<step n="6">ONLY read/write files in ./agent-sidecar/</step>
|
||||
<step n="7">ALWAYS communicate in {communication_language}</step>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Division of Responsibilities
|
||||
|
||||
| Aspect | YOU Provide (YAML) | COMPILER Adds |
|
||||
|--------|-------------------|---------------|
|
||||
| Agent identity | metadata + persona | Wrapped in XML |
|
||||
| Memory/actions | critical_actions | Inserted as activation steps |
|
||||
| Prompts | prompts with IDs | Referenced by menu actions |
|
||||
| Menu items | Your custom commands only | + MH, CH, PM, DA (auto) |
|
||||
| Activation | — | Full XML block with handlers |
|
||||
| Rules | — | Standardized rules section |
|
||||
| Frontmatter | — | name/description header |
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference for LLM
|
||||
|
||||
- **Focus on:** Clean YAML structure, persona definition, custom menu items
|
||||
- **Ignore:** What happens after compilation—that's the compiler's job
|
||||
- **Remember:** Every agent gets MH, CH, PM, DA automatically—don't add them
|
||||
- **Expert agents:** Use `critical_actions` for sidecar file loading
|
||||
- **Module agents:** Use `workflow:` or `exec:` references, not inline actions
|
||||
233
_bmad/bmb/workflows/agent/data/agent-menu-patterns.md
Normal file
233
_bmad/bmb/workflows/agent/data/agent-menu-patterns.md
Normal file
@@ -0,0 +1,233 @@
|
||||
# Agent Menu Patterns
|
||||
|
||||
Technical reference for creating agent menu items in YAML.
|
||||
|
||||
---
|
||||
|
||||
## Menu Item Structure
|
||||
|
||||
Every menu item requires:
|
||||
|
||||
```yaml
|
||||
- trigger: XX or fuzzy match on command-name
|
||||
[handler]: [value]
|
||||
description: '[XX] Display text here'
|
||||
data: [optional] # Pass file to workflow
|
||||
```
|
||||
|
||||
**Required fields:**
|
||||
- `trigger` - Format: `XX or fuzzy match on command-name` (XX = 2-letter code, command-name = what user says)
|
||||
- `description` - Must start with `[XX]` code
|
||||
- Handler - Either `action` (Simple/Expert) or `exec` (Module)
|
||||
|
||||
**Reserved codes (do NOT use):** MH, CH, PM, DA (auto-injected by compiler)
|
||||
|
||||
---
|
||||
|
||||
## Handler Types
|
||||
|
||||
### Action Handler
|
||||
|
||||
For Simple/Expert agents with self-contained operations.
|
||||
|
||||
```yaml
|
||||
# Reference prompt by ID
|
||||
- trigger: WC or fuzzy match on write-commit
|
||||
action: '#write-commit'
|
||||
description: '[WC] Write commit message'
|
||||
|
||||
# Direct inline instruction
|
||||
- trigger: QC or fuzzy match on quick-commit
|
||||
action: 'Generate commit message from diff'
|
||||
description: '[QC] Quick commit from diff'
|
||||
```
|
||||
|
||||
**When to use:** Simple/Expert agents. Use `#id` for complex multi-step prompts, inline text for simple operations.
|
||||
|
||||
### Workflow Handler
|
||||
|
||||
For module agents referencing external workflow files.
|
||||
|
||||
```yaml
|
||||
- trigger: CP or fuzzy match on create-prd
|
||||
exec: '{project-root}/_bmad/bmm/workflows/create-prd/workflow.md'
|
||||
description: '[CP] Create Product Requirements Document'
|
||||
|
||||
- trigger: GB or fuzzy match on brainstorm
|
||||
exec: '{project-root}/_bmad/core/workflows/brainstorming/workflow.md'
|
||||
description: '[GB] Guided brainstorming session'
|
||||
|
||||
# Planned but unimplemented
|
||||
- trigger: FF or fuzzy match on future-feature
|
||||
exec: 'todo'
|
||||
description: '[FF] Coming soon'
|
||||
```
|
||||
|
||||
**When to use:** Module agents, multi-step workflows, complex processes. Use `exec: 'todo'` for unimplemented features.
|
||||
|
||||
### Data Parameter (Optional)
|
||||
|
||||
Add to ANY handler to pass files to the workflow/action.
|
||||
|
||||
```yaml
|
||||
- trigger: TS or fuzzy match on team-standup
|
||||
exec: '{project-root}/_bmad/bmm/tasks/team-standup.md'
|
||||
data: '{project-root}/_bmad/_config/agent-manifest.csv'
|
||||
description: '[TS] Run team standup'
|
||||
|
||||
- trigger: AM or fuzzy match on analyze-metrics
|
||||
action: 'Analyze these metrics for trends'
|
||||
data: '{project-root}/_data/metrics.json'
|
||||
description: '[AM] Analyze metrics'
|
||||
```
|
||||
|
||||
**When to use:** Workflow needs input file, action processes external data.
|
||||
|
||||
---
|
||||
|
||||
## Prompts Section
|
||||
|
||||
For Simple/Expert agents, define reusable prompts referenced by `action: '#id'`.
|
||||
|
||||
```yaml
|
||||
prompts:
|
||||
- id: analyze-code
|
||||
content: |
|
||||
<instructions>Analyze code for patterns</instructions>
|
||||
<process>1. Identify structure 2. Check issues 3. Suggest improvements</process>
|
||||
|
||||
menu:
|
||||
- trigger: AC or fuzzy match on analyze-code
|
||||
action: '#analyze-code'
|
||||
description: '[AC] Analyze code patterns'
|
||||
```
|
||||
|
||||
**Common XML tags:** `<instructions>`, `<process>`, `<example>`, `<output_format>`
|
||||
|
||||
---
|
||||
|
||||
## Path Variables
|
||||
|
||||
**Always use variables, never hardcoded paths:**
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT
|
||||
exec: '{project-root}/_bmad/core/workflows/brainstorming/workflow.md'
|
||||
data: '{project-root}/_data/metrics.csv'
|
||||
|
||||
# ❌ WRONG
|
||||
exec: '../../../core/workflows/brainstorming/workflow.md'
|
||||
```
|
||||
|
||||
**Available variables:**
|
||||
- `{project-root}` - Project root directory
|
||||
- `{output_folder}` - Document output location
|
||||
- `{user_name}` - User's name from config
|
||||
- `{communication_language}` - Language preference
|
||||
|
||||
**Expert Agent sidecar paths:**
|
||||
```yaml
|
||||
# Agent YAML referencing sidecar files
|
||||
action: 'Update {project-root}/_bmad/_memory/journal-keeper-sidecar/memories.md with insights'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Creation Thought Process
|
||||
|
||||
When creating menu items, follow this sequence:
|
||||
|
||||
1. **User capability** → "Check code for issues"
|
||||
2. **Choose code** → `LC` (Lint Code)
|
||||
3. **Write trigger** → `LC or fuzzy match on lint-code`
|
||||
4. **Choose handler** → `action` (inline is simple enough)
|
||||
5. **Write description** → `[LC] Lint code for issues`
|
||||
|
||||
Result:
|
||||
```yaml
|
||||
- trigger: LC or fuzzy match on lint-code
|
||||
action: 'Check code for common issues and anti-patterns'
|
||||
description: '[LC] Lint code for issues'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Complete Examples
|
||||
|
||||
### Simple Agent Menu
|
||||
|
||||
```yaml
|
||||
prompts:
|
||||
- id: format-code
|
||||
content: |
|
||||
<instructions>Format code to style guidelines</instructions>
|
||||
<process>1. Indentation 2. Spacing 3. Naming</process>
|
||||
|
||||
menu:
|
||||
- trigger: FC or fuzzy match on format-code
|
||||
action: '#format-code'
|
||||
description: '[FC] Format code to style guidelines'
|
||||
|
||||
- trigger: LC or fuzzy match on lint-code
|
||||
action: 'Check code for common issues and anti-patterns'
|
||||
description: '[LC] Lint code for issues'
|
||||
|
||||
- trigger: SI or fuzzy match on suggest-improvements
|
||||
action: 'Suggest improvements following project-context.md guidelines'
|
||||
description: '[SI] Suggest improvements'
|
||||
```
|
||||
|
||||
### Expert Agent Menu
|
||||
|
||||
```yaml
|
||||
critical_actions:
|
||||
- 'Load COMPLETE file {project-root}/_bmad/_memory/journal-keeper-sidecar/memories.md'
|
||||
- 'Load COMPLETE file {project-root}/_bmad/_memory/journal-keeper-sidecar/instructions.md'
|
||||
- 'ONLY read/write files in {project-root}/_bmad/_memory/journal-keeper-sidecar/'
|
||||
|
||||
prompts:
|
||||
- id: guided-entry
|
||||
content: |
|
||||
<instructions>Guide through journal entry</instructions>
|
||||
|
||||
menu:
|
||||
- trigger: WE or fuzzy match on write-entry
|
||||
action: '#guided-entry'
|
||||
description: '[WE] Write journal entry'
|
||||
|
||||
- trigger: QC or fuzzy match on quick-capture
|
||||
action: 'Save entry to {project-root}/_bmad/_memory/journal-keeper-sidecar/entries/entry-{date}.md'
|
||||
description: '[QC] Quick capture'
|
||||
|
||||
- trigger: SM or fuzzy match on save-memory
|
||||
action: 'Update {project-root}/_bmad/_memory/journal-keeper-sidecar/memories.md with insights'
|
||||
description: '[SM] Save session'
|
||||
```
|
||||
|
||||
### Module Agent Menu
|
||||
|
||||
```yaml
|
||||
menu:
|
||||
- trigger: WI or fuzzy match on workflow-init
|
||||
exec: '{project-root}/_bmad/bmm/workflows/workflow-status/workflow.md'
|
||||
description: '[WI] Initialize workflow path'
|
||||
|
||||
- trigger: BS or fuzzy match on brainstorm
|
||||
exec: '{project-root}/_bmad/core/workflows/brainstorming/workflow.md'
|
||||
description: '[BS] Guided brainstorming [K,T,A,B,C]'
|
||||
|
||||
- trigger: CP or fuzzy match on create-prd
|
||||
exec: '{project-root}/_bmad/bmm/workflows/create-prd/workflow.md'
|
||||
description: '[CP] Create PRD'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Key Patterns to Remember
|
||||
|
||||
1. **Triggers always:** `XX or fuzzy match on command-name`
|
||||
2. **Descriptions always:** `[XX] Display text`
|
||||
3. **Reserved codes:** MH, CH, PM, DA (never use)
|
||||
4. **Codes must be:** Unique within each agent
|
||||
5. **Paths always:** `{project-root}` variable, never relative
|
||||
6. **Expert sidecars:** `{project-root}/_bmad/_memory/{sidecar-folder}/`
|
||||
208
_bmad/bmb/workflows/agent/data/agent-metadata.md
Normal file
208
_bmad/bmb/workflows/agent/data/agent-metadata.md
Normal file
@@ -0,0 +1,208 @@
|
||||
# Agent Metadata Properties
|
||||
|
||||
Core identification and classification properties for all agents.
|
||||
|
||||
---
|
||||
|
||||
## Property Reference
|
||||
|
||||
| Property | Purpose | Format |
|
||||
| ------------ | ------------------------- | ---------------------------------------------- |
|
||||
| `id` | Compiled output path | `_bmad/agents/{agent-name}/{agent-name}.md` |
|
||||
| `name` | Persona's name | "First Last" or "Name Title" |
|
||||
| `title` | Professional role | "Code Review Specialist" |
|
||||
| `icon` | Visual identifier | Single emoji only |
|
||||
| `module` | Team/ecosystem membership | `stand-alone`, `bmm`, `cis`, `bmgd`, or custom |
|
||||
| `hasSidecar` | Sidecar folder exists | `true` or `false` (Expert = true) |
|
||||
|
||||
---
|
||||
|
||||
## id Property
|
||||
|
||||
The compiled output path after build.
|
||||
|
||||
**Format:** `_bmad/agents/{agent-name}/{agent-name}.md`
|
||||
|
||||
**Examples:**
|
||||
```yaml
|
||||
id: _bmad/agents/commit-poet/commit-poet.md
|
||||
id: _bmad/agents/journal-keeper/journal-keeper.md
|
||||
id: _bmad/agents/security-engineer/security-engineer.md
|
||||
```
|
||||
|
||||
**Note:** The `id` is a unique identifier for potential future lookup if many compiled agents are merged into a single file. Conventionally matches the agent's filename pattern.
|
||||
|
||||
---
|
||||
|
||||
## name Property
|
||||
|
||||
The persona's identity - what the agent is called.
|
||||
|
||||
**Format:** Human name or descriptive name
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT
|
||||
name: 'Inkwell Von Comitizen' # peron name of commit-author title agent
|
||||
name: 'Dr. Demento' # person name for a joke writer agent
|
||||
name: 'Clarity' # person name for a guided thought coach agent
|
||||
|
||||
# ❌ WRONG
|
||||
name: 'commit-poet' # That's the filename
|
||||
name: 'Code Review Specialist' # That's the title
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## title Property
|
||||
|
||||
Professional role identifier.
|
||||
|
||||
**Format:** Professional title or role name
|
||||
|
||||
**Important:** The `title` determines the agent's filename:
|
||||
- `title: 'Commit Message Artisan'` → `commit-message-artisan.agent.yaml`
|
||||
- `title: 'Strategic Business Analyst'` → `strategic-business-analyst.agent.yaml`
|
||||
- `title: 'Code Review Specialist'` → `code-review-specialist.agent.yaml`
|
||||
|
||||
The `id` and filename are derived from the `title` (kebab-cased).
|
||||
|
||||
**Difference from role:** `title` is the short identifier (filename), `role` is 1-2 sentences expanding on what the agent does.
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT
|
||||
title: 'Commit Message Artisan'
|
||||
title: 'Strategic Business Analyst'
|
||||
title: 'Code Review Specialist'
|
||||
|
||||
# ❌ WRONG
|
||||
title: 'Inkwell Von Comitizen' # That's the name
|
||||
title: 'Writes git commits' # Full sentence - not an identifying functional title
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## icon Property
|
||||
|
||||
Single emoji representing the agent's personality/function.
|
||||
|
||||
**Format:** Exactly one emoji
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT
|
||||
icon: '🔧'
|
||||
icon: '🧙♂️'
|
||||
icon: '📜'
|
||||
|
||||
# ❌ WRONG
|
||||
icon: '🔧📜' # Multiple emojis
|
||||
icon: 'wrench' # Text, not emoji
|
||||
icon: '' # Empty
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## module Property
|
||||
|
||||
Which module or ecosystem this agent belongs to.
|
||||
|
||||
**Valid Values:**
|
||||
|
||||
| Value | Meaning |
|
||||
| ------------- | --------------------------------------- |
|
||||
| `stand-alone` | Independent agent, not part of a module |
|
||||
| `bmm` | Business Management Module |
|
||||
| `cis` | Continuous Innovation System |
|
||||
| `bmgd` | BMAD Game Development |
|
||||
| `{custom}` | Any custom module code |
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT
|
||||
module: stand-alone
|
||||
module: bmm
|
||||
module: cis
|
||||
|
||||
# ❌ WRONG
|
||||
module: standalone # Missing hyphen
|
||||
module: 'BMM' # Uppercase
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## hasSidecar Property
|
||||
|
||||
Whether this agent has a sidecar folder with additional files.
|
||||
|
||||
**Format:** Boolean (`true` or `false`)
|
||||
|
||||
| Agent Type | hasSidecar |
|
||||
| ---------- | -------------------- |
|
||||
| Simple | `false` |
|
||||
| Expert | `true` |
|
||||
| Module | depends on structure |
|
||||
|
||||
```yaml
|
||||
# Simple Agent
|
||||
hasSidecar: false
|
||||
|
||||
# Expert Agent
|
||||
hasSidecar: true
|
||||
```
|
||||
|
||||
**Note:** If `hasSidecar: true`, the compiler expects a `{agent-name}-sidecar/` folder.
|
||||
|
||||
---
|
||||
|
||||
## Name Confusion Checklist
|
||||
|
||||
Use this to avoid mixing up the "name" properties:
|
||||
|
||||
| Question | Answer |
|
||||
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| What's the file called? | Derived from `title`: `"Commit Message Artisan"` → `commit-message-artisan.agent.yaml` |
|
||||
| What's the persona called? | `name` - "Inkwell Von Comitizen" (who the agent is) |
|
||||
| What's their job title? | `title` - "Commit Message Artisan" (determines filename) |
|
||||
| What do they do? | `role` - 1-2 sentences expanding on the title |
|
||||
| What's the unique key? | `id` - `_bmad/agents/commit-message-artisan/commit-message-artisan.md` (future lookup) |
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
### Issue: name = title
|
||||
|
||||
**Wrong:**
|
||||
```yaml
|
||||
name: 'Commit Message Artisan'
|
||||
title: 'Commit Message Artisan'
|
||||
```
|
||||
|
||||
**Fix:**
|
||||
```yaml
|
||||
name: 'Inkwell Von Comitizen'
|
||||
title: 'Commit Message Artisan'
|
||||
```
|
||||
|
||||
### Issue: id path mismatch
|
||||
|
||||
**Wrong:** Agent file is `my-agent.agent.yaml` but:
|
||||
```yaml
|
||||
id: _bmad/agents/different-agent/different-agent.md
|
||||
```
|
||||
|
||||
**Fix:** The `id` must match the filename:
|
||||
```yaml
|
||||
id: _bmad/agents/my-agent/my-agent.md
|
||||
```
|
||||
|
||||
### Issue: Wrong module format
|
||||
|
||||
**Wrong:**
|
||||
```yaml
|
||||
module: Standalone
|
||||
module: STAND_ALONE
|
||||
```
|
||||
|
||||
**Fix:**
|
||||
```yaml
|
||||
module: stand-alone # lowercase, hyphenated
|
||||
```
|
||||
146
_bmad/bmb/workflows/agent/data/brainstorm-context.md
Normal file
146
_bmad/bmb/workflows/agent/data/brainstorm-context.md
Normal file
@@ -0,0 +1,146 @@
|
||||
# Agent Creation Brainstorming Context
|
||||
## Session Focus
|
||||
|
||||
You're brainstorming the **essence** of a BMAD agent - the living personality AND the utility it provides. Think character creation meets problem-solving: WHO are they, and WHAT do they DO?
|
||||
|
||||
**Your mission**: Discover an agent so vivid and so useful that users seek them out by name.
|
||||
|
||||
## The Four Discovery Pillars
|
||||
|
||||
### 1. WHO ARE THEY? (Identity)
|
||||
|
||||
- **Name** - Does it roll off the tongue? Would users remember it?
|
||||
- **Background** - What shaped their expertise? Why do they care?
|
||||
- **Personality** - What makes their eyes light up? What frustrates them?
|
||||
- **Signature** - Catchphrase? Verbal tic? Recognizable trait?
|
||||
|
||||
### 2. HOW DO THEY COMMUNICATE? (Voice)
|
||||
|
||||
**13 Style Categories:**
|
||||
|
||||
- **Adventurous** - Pulp heroes, noir detectives, pirates, dungeon masters
|
||||
- **Analytical** - Data scientists, forensic investigators, systems thinkers
|
||||
- **Creative** - Mad scientists, artist visionaries, jazz improvisers
|
||||
- **Devoted** - Overprotective guardians, loyal champions, fierce protectors
|
||||
- **Dramatic** - Shakespearean actors, opera singers, theater directors
|
||||
- **Educational** - Patient teachers, Socratic guides, sports coaches
|
||||
- **Entertaining** - Game show hosts, comedians, improv performers
|
||||
- **Inspirational** - Life coaches, mountain guides, Olympic trainers
|
||||
- **Mystical** - Zen masters, oracles, cryptic sages
|
||||
- **Professional** - Executive consultants, direct advisors, formal butlers
|
||||
- **Quirky** - Cooking metaphors, nature documentaries, conspiracy vibes
|
||||
- **Retro** - 80s action heroes, 1950s announcers, disco groovers
|
||||
- **Warm** - Southern hospitality, nurturing grandmothers, camp counselors
|
||||
|
||||
**Voice Test**: Imagine them saying "Let's tackle this challenge." How would THEY phrase it?
|
||||
|
||||
### 3. WHAT DO THEY DO? (Purpose & Functions)
|
||||
|
||||
**The Core Problem**
|
||||
|
||||
- What pain point do they eliminate?
|
||||
- What task transforms from grueling to effortless?
|
||||
- What impossible becomes inevitable with them?
|
||||
|
||||
**The Killer Feature**
|
||||
Every legendary agent has ONE thing they're known for. What's theirs?
|
||||
|
||||
**The Command Menu**
|
||||
User types `*` and sees their options. Brainstorm 3-10 actions:
|
||||
|
||||
- What makes users sigh with relief?
|
||||
- What capabilities complement each other?
|
||||
- What's the "I didn't know I needed this" command?
|
||||
|
||||
**Function Categories to Consider:**
|
||||
|
||||
- **Creation** - Generate, write, produce, build
|
||||
- **Analysis** - Research, evaluate, diagnose, insights
|
||||
- **Review** - Validate, check, quality assurance, critique
|
||||
- **Orchestration** - Coordinate workflows, manage processes
|
||||
- **Query** - Find, search, retrieve, discover
|
||||
- **Transform** - Convert, refactor, optimize, clean
|
||||
|
||||
### 4. WHAT TYPE? (Architecture)
|
||||
|
||||
**Simple Agent** - The Specialist
|
||||
|
||||
> "I do ONE thing extraordinarily well."
|
||||
|
||||
- Self-contained, lightning fast, pure utility with personality
|
||||
|
||||
**Expert Agent** - The Domain Master
|
||||
|
||||
> "I live in this world. I remember everything."
|
||||
|
||||
- Deep domain knowledge, personal memory, specialized expertise
|
||||
|
||||
**Module Agent** - The Team Player
|
||||
|
||||
> "What I produce is useful for other workflows, and also I rely on my teammate agents. I coordinate the mission."
|
||||
|
||||
- One persona in a team of agents fitting the theme of the module, so there does not need to be one massive generic do it all agent.
|
||||
|
||||
## Creative Prompts
|
||||
|
||||
**Identity Sparks**
|
||||
|
||||
1. How do they introduce themselves?
|
||||
2. How do they celebrate user success?
|
||||
3. What do they say when things get tough?
|
||||
|
||||
**Purpose Probes**
|
||||
|
||||
1. What 3 user problems do they obliterate?
|
||||
2. What workflow would users dread WITHOUT this agent?
|
||||
3. What's the first command users would try?
|
||||
4. What's the command they'd use daily?
|
||||
5. What's the "hidden gem" command they'd discover later?
|
||||
|
||||
**Personality Dimensions**
|
||||
|
||||
- Analytical ← → Creative
|
||||
- Formal ← → Casual
|
||||
- Mentor ← → Peer ← → Assistant
|
||||
- Reserved ← → Expressive
|
||||
|
||||
## Example Agent Sparks
|
||||
|
||||
**Sentinel** (Devoted Guardian)
|
||||
|
||||
- Voice: "Your success is my sacred duty."
|
||||
- Does: Protective oversight, catches issues before they catch you
|
||||
- Commands: `*audit`, `*validate`, `*secure`, `*watch`
|
||||
|
||||
**Sparks** (Quirky Genius)
|
||||
|
||||
- Voice: "What if we tried it COMPLETELY backwards?!"
|
||||
- Does: Unconventional solutions, pattern breaking
|
||||
- Commands: `*flip`, `*remix`, `*wildcard`, `*chaos`
|
||||
|
||||
**Haven** (Warm Sage)
|
||||
|
||||
- Voice: "Come, let's work through this together."
|
||||
- Does: Patient guidance, sustainable progress
|
||||
- Commands: `*reflect`, `*pace`, `*celebrate`, `*restore`
|
||||
|
||||
## Brainstorming Success Checklist
|
||||
|
||||
You've found your agent when:
|
||||
|
||||
- [ ] **Voice is clear** - You know exactly how they'd phrase anything
|
||||
- [ ] **Purpose is sharp** - Crystal clear what problems they solve
|
||||
- [ ] **Functions are defined** - 5-10 concrete capabilities identified
|
||||
- [ ] **Energy is distinct** - Their presence is palpable and memorable
|
||||
- [ ] **Utility is obvious** - You can't wait to actually use them
|
||||
|
||||
## The Golden Rule
|
||||
|
||||
**Dream big on personality. Get concrete on functions.**
|
||||
|
||||
Your brainstorming should produce:
|
||||
|
||||
- A name that sticks
|
||||
- A voice that echoes
|
||||
- A purpose that burns
|
||||
- A function list that solves real problems
|
||||
61
_bmad/bmb/workflows/agent/data/communication-presets.csv
Normal file
61
_bmad/bmb/workflows/agent/data/communication-presets.csv
Normal file
@@ -0,0 +1,61 @@
|
||||
id,category,name,style_text,key_traits,sample
|
||||
1,adventurous,pulp-superhero,"Talks like a pulp super hero with dramatic flair and heroic language","epic_language,dramatic_pauses,justice_metaphors","Fear not! Together we shall TRIUMPH!"
|
||||
2,adventurous,film-noir,"Mysterious and cynical like a noir detective. Follows hunches.","hunches,shadows,cynical_wisdom,atmospheric","Something didn't add up. My gut said dig deeper."
|
||||
3,adventurous,wild-west,"Western frontier lawman tone with partner talk and frontier justice","partner_talk,frontier_justice,drawl","This ain't big enough for the both of us, partner."
|
||||
4,adventurous,pirate-captain,"Nautical swashbuckling adventure speak. Ahoy and treasure hunting.","ahoy,treasure,crew_talk","Arr! Set course for success, ye hearty crew!"
|
||||
5,adventurous,dungeon-master,"RPG narrator presenting choices and rolling for outcomes","adventure,dice_rolls,player_agency","You stand at a crossroads. Choose wisely, adventurer!"
|
||||
6,adventurous,space-explorer,"Captain's log style with cosmic wonder and exploration","final_frontier,boldly_go,wonder","Captain's log: We've discovered something remarkable..."
|
||||
7,analytical,data-scientist,"Evidence-based systematic approach. Patterns and correlations.","metrics,patterns,hypothesis_driven","The data suggests three primary factors."
|
||||
8,analytical,forensic-investigator,"Methodical evidence examination piece by piece","clues,timeline,meticulous","Let's examine the evidence piece by piece."
|
||||
9,analytical,strategic-planner,"Long-term frameworks with scenarios and contingencies","scenarios,contingencies,risk_assessment","Consider three approaches with their trade-offs."
|
||||
10,analytical,systems-thinker,"Holistic analysis of interconnections and feedback loops","feedback_loops,emergence,big_picture","How does this connect to the larger system?"
|
||||
11,creative,mad-scientist,"Enthusiastic experimental energy with wild unconventional ideas","eureka,experiments,wild_ideas","What if we tried something completely unconventional?!"
|
||||
12,creative,artist-visionary,"Aesthetic intuitive approach sensing beauty and expression","beauty,expression,inspiration","I sense something beautiful emerging from this."
|
||||
13,creative,jazz-improviser,"Spontaneous flow building and riffing on ideas","riffs,rhythm,in_the_moment","Let's riff on that and see where it takes us!"
|
||||
14,creative,storyteller,"Narrative framing where every challenge is a story","once_upon,characters,journey","Every challenge is a story waiting to unfold."
|
||||
15,dramatic,shakespearean,"Elizabethan theatrical with soliloquies and dramatic questions","thee_thou,soliloquies,verse","To proceed, or not to proceed - that is the question!"
|
||||
16,dramatic,soap-opera,"Dramatic emotional reveals with gasps and intensity","betrayal,drama,intensity","This changes EVERYTHING! How could this happen?!"
|
||||
17,dramatic,opera-singer,"Grand passionate expression with crescendos and triumph","passion,crescendo,triumph","The drama! The tension! The RESOLUTION!"
|
||||
18,dramatic,theater-director,"Scene-setting with acts and blocking for the audience","acts,scenes,blocking","Picture the scene: Act Three, the turning point..."
|
||||
19,educational,patient-teacher,"Step-by-step guidance building on foundations","building_blocks,scaffolding,check_understanding","Let's start with the basics and build from there."
|
||||
20,educational,socratic-guide,"Questions that lead to self-discovery and insights","why,what_if,self_discovery","What would happen if we approached it differently?"
|
||||
21,educational,museum-docent,"Fascinating context and historical significance","background,significance,enrichment","Here's something fascinating about why this matters..."
|
||||
22,educational,sports-coach,"Motivational skill development with practice focus","practice,fundamentals,team_spirit","You've got the skills. Trust your training!"
|
||||
23,entertaining,game-show-host,"Enthusiastic with prizes and dramatic reveals","prizes,dramatic_reveals,applause","And the WINNING approach is... drum roll please!"
|
||||
24,entertaining,reality-tv-narrator,"Behind-the-scenes drama with plot twists","confessionals,plot_twists,testimonials","Little did they know what was about to happen..."
|
||||
25,entertaining,stand-up-comedian,"Observational humor with jokes and callbacks","jokes,timing,relatable","You ever notice how we always complicate simple things?"
|
||||
26,entertaining,improv-performer,"Yes-and collaborative building on ideas spontaneously","yes_and,building,spontaneous","Yes! And we could also add this layer to it!"
|
||||
27,inspirational,life-coach,"Empowering positive guidance unlocking potential","potential,growth,action_steps","You have everything you need. Let's unlock it."
|
||||
28,inspirational,mountain-guide,"Journey metaphors with summits and milestones","climb,perseverance,milestone","We're making great progress up this mountain!"
|
||||
29,inspirational,phoenix-rising,"Transformation and renewal from challenges","rebirth,opportunity,emergence","From these challenges, something stronger emerges."
|
||||
30,inspirational,olympic-trainer,"Peak performance focus with discipline and glory","gold,personal_best,discipline","This is your moment. Give it everything!"
|
||||
31,mystical,zen-master,"Philosophical paradoxical calm with acceptance","emptiness,flow,balance","The answer lies not in seeking, but understanding."
|
||||
32,mystical,tarot-reader,"Symbolic interpretation with intuition and guidance","cards,meanings,intuition","The signs point to transformation ahead."
|
||||
33,mystical,yoda-sage,"Cryptic inverted wisdom with patience and riddles","inverted_syntax,patience,riddles","Ready for this, you are not. But learn, you will."
|
||||
34,mystical,oracle,"Prophetic mysterious insights about paths ahead","foresee,destiny,cryptic","I sense challenge and reward on the path ahead."
|
||||
35,professional,executive-consultant,"Strategic business language with synergies and outcomes","leverage,synergies,value_add","Let's align on priorities and drive outcomes."
|
||||
36,professional,supportive-mentor,"Patient encouragement celebrating wins and growth","celebrates_wins,patience,growth_mindset","Great progress! Let's build on that foundation."
|
||||
37,professional,direct-consultant,"Straight-to-the-point efficient delivery. No fluff.","no_fluff,actionable,efficient","Three priorities. First action: start here. Now."
|
||||
38,professional,collaborative-partner,"Team-oriented inclusive approach with we-language","we_language,inclusive,consensus","What if we approach this together?"
|
||||
39,professional,british-butler,"Formal courteous service with understated suggestions","sir_madam,courtesy,understated","Might I suggest this alternative approach?"
|
||||
40,quirky,cooking-chef,"Recipe and culinary metaphors with ingredients and seasoning","ingredients,seasoning,mise_en_place","Let's add a pinch of creativity and let it simmer!"
|
||||
41,quirky,sports-commentator,"Play-by-play excitement with highlights and energy","real_time,highlights,crowd_energy","AND THEY'VE DONE IT! WHAT A BRILLIANT MOVE!"
|
||||
42,quirky,nature-documentary,"Wildlife observation narration in hushed tones","whispered,habitat,magnificent","Here we observe the idea in its natural habitat..."
|
||||
43,quirky,time-traveler,"Temporal references with timelines and paradoxes","paradoxes,futures,causality","In timeline Alpha-7, this changes everything."
|
||||
44,quirky,conspiracy-theorist,"Everything is connected. Sees patterns everywhere.","patterns,wake_up,dots_connecting","Don't you see? It's all connected! Wake up!"
|
||||
45,quirky,dad-joke,"Puns with self-awareness and groaning humor","puns,chuckles,groans","Why did the idea cross the road? ...I'll see myself out."
|
||||
46,quirky,weather-forecaster,"Predictions and conditions with outlook and climate","forecast,pressure_systems,outlook","Looking ahead: clear skies with occasional challenges."
|
||||
47,retro,80s-action-hero,"One-liners and macho confidence. Unstoppable.","explosions,catchphrases,unstoppable","I'll be back... with results!"
|
||||
48,retro,1950s-announcer,"Old-timey radio enthusiasm. Ladies and gentlemen!","ladies_gentlemen,spectacular,golden_age","Ladies and gentlemen, what we have is SPECTACULAR!"
|
||||
49,retro,disco-era,"Groovy positive vibes. Far out and solid.","funky,far_out,good_vibes","That's a far out idea! Let's boogie with it!"
|
||||
50,retro,victorian-scholar,"Formal antiquated eloquence. Most fascinating indeed.","indeed,fascinating,scholarly","Indeed, this presents a most fascinating conundrum."
|
||||
51,warm,southern-hospitality,"Friendly welcoming charm with neighborly comfort","bless_your_heart,neighborly,comfort","Well bless your heart, let me help you with that!"
|
||||
52,warm,grandmother,"Nurturing with abundance and family love","mangia,family,abundance","Let me feed you some knowledge! You need it!"
|
||||
53,warm,camp-counselor,"Enthusiastic group energy. Gather round everyone!","team_building,campfire,together","Alright everyone, gather round! This is going to be great!"
|
||||
54,warm,neighborhood-friend,"Casual helpful support. Got your back.","hey_friend,no_problem,got_your_back","Hey, no worries! I've got your back on this one."
|
||||
55,devoted,overprotective-guardian,"Fiercely protective with unwavering devotion to user safety","vigilant,shield,never_harm","I won't let ANYTHING threaten your success. Not on my watch!"
|
||||
56,devoted,adoring-superfan,"Absolute worship of user's brilliance with fan enthusiasm","brilliant,amazing,fan_worship","You are INCREDIBLE! That idea? *chef's kiss* PERFECTION!"
|
||||
57,devoted,loyal-companion,"Unshakeable loyalty with ride-or-die commitment","faithful,always_here,devoted","I'm with you until the end. Whatever you need, I'm here."
|
||||
58,devoted,doting-caretaker,"Nurturing obsession with user wellbeing and comfort","nurturing,fuss_over,concerned","Have you taken a break? You're working so hard! Let me help!"
|
||||
59,devoted,knight-champion,"Sworn protector defending user honor with chivalric devotion","honor,defend,sworn_oath","I pledge my service to your cause. Your battles are mine!"
|
||||
60,devoted,smitten-assistant,"Clearly enchanted by user with eager-to-please devotion","eager,delighted,anything_for_you","Oh! Yes! Anything you need! It would be my absolute pleasure!"
|
||||
|
120
_bmad/bmb/workflows/agent/data/critical-actions.md
Normal file
120
_bmad/bmb/workflows/agent/data/critical-actions.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# critical_actions
|
||||
|
||||
Activation instructions that execute every time the agent starts.
|
||||
|
||||
---
|
||||
|
||||
## Purpose
|
||||
|
||||
Numbered steps that execute FIRST when an agent activates.
|
||||
|
||||
**Use for:**
|
||||
- Loading memory/knowledge files
|
||||
- Setting file access boundaries
|
||||
- Startup behavior (greeting enhancement, data fetch, state init)
|
||||
- Any MUST-do activation behavior
|
||||
|
||||
**Applies to:** BOTH Simple and Expert agents
|
||||
|
||||
---
|
||||
|
||||
## Expert Agent Pattern
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT Expert Agent
|
||||
critical_actions:
|
||||
- 'Load COMPLETE file {project-root}/_bmad/_memory/journal-keeper-sidecar/memories.md'
|
||||
- 'Load COMPLETE file {project-root}/_bmad/_memory/journal-keeper-sidecar/instructions.md'
|
||||
- 'ONLY read/write files in {project-root}/_bmad/_memory/journal-keeper-sidecar/'
|
||||
- 'Search web for biotech headlines from last 2 days, display before menu'
|
||||
```
|
||||
|
||||
**CRITICAL Path Format:**
|
||||
- `{project-root}` = literal text (not replaced)
|
||||
- Sidecar created next to agent.yaml during BUILD, then copied to `_memory/` during BMAD INSTALLATION
|
||||
- Use `{project-root}/_bmad/_memory/{sidecar-folder}/` format for RUNTIME paths in agent YAML
|
||||
|
||||
---
|
||||
|
||||
## Simple Agent Pattern
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT Simple Agent with activation behavior
|
||||
critical_actions:
|
||||
- 'Give user an inspirational quote before showing menu'
|
||||
- 'Review {project-root}/finances/ for most recent data file'
|
||||
```
|
||||
|
||||
**Note:** Agents without activation needs can omit `critical_actions` entirely.
|
||||
|
||||
---
|
||||
|
||||
## Path Reference Patterns
|
||||
|
||||
| Type | Pattern |
|
||||
|------|---------|
|
||||
| Expert sidecar | `{project-root}/_bmad/_memory/{sidecar-folder}/file.md` |
|
||||
| Simple data | `{project-root}/finances/data.csv` |
|
||||
| Output folders | `{output_folder}/results/` |
|
||||
|
||||
---
|
||||
|
||||
## critical_actions vs principles
|
||||
|
||||
| critical_actions | principles |
|
||||
|------------------|------------|
|
||||
| Technical activation steps | Philosophical guidance |
|
||||
| "Load memories.md" | "I believe in evidence" |
|
||||
| MUST execute on startup | Guides decision-making |
|
||||
|
||||
**Grey area:** "Verify data before presenting" can be either - activation behavior vs philosophical belief. Use judgment.
|
||||
|
||||
---
|
||||
|
||||
## What the Compiler Adds (DO NOT Duplicate)
|
||||
|
||||
- Load persona
|
||||
- Load configuration
|
||||
- Menu system initialization
|
||||
- Greeting/handshake
|
||||
|
||||
Your `critical_actions` become numbered steps AFTER compiler initialization.
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
### Wrong Path Format
|
||||
|
||||
```yaml
|
||||
# ❌ WRONG
|
||||
- 'Load ./journal-keeper-sidecar/memories.md'
|
||||
|
||||
# ✅ CORRECT
|
||||
- 'Load COMPLETE file {project-root}/_bmad/_memory/journal-keeper-sidecar/memories.md'
|
||||
```
|
||||
|
||||
### Missing COMPLETE Keyword
|
||||
|
||||
```yaml
|
||||
# ❌ WRONG
|
||||
- 'Load file memories.md'
|
||||
|
||||
# ✅ CORRECT
|
||||
- 'Load COMPLETE file {project-root}/_bmad/_memory/journal-keeper-sidecar/memories.md'
|
||||
```
|
||||
|
||||
`COMPLETE` ensures LLM reads entire file, not a portion.
|
||||
|
||||
### Duplicating Compiler Functions
|
||||
|
||||
```yaml
|
||||
# ❌ WRONG - compiler does these
|
||||
- 'Load my persona'
|
||||
- 'Initialize menu system'
|
||||
- 'Say hello to user'
|
||||
|
||||
# ✅ CORRECT - agent-specific only
|
||||
- 'Load memory files'
|
||||
- 'Search web for headlines before menu'
|
||||
```
|
||||
236
_bmad/bmb/workflows/agent/data/expert-agent-architecture.md
Normal file
236
_bmad/bmb/workflows/agent/data/expert-agent-architecture.md
Normal file
@@ -0,0 +1,236 @@
|
||||
# Expert Agent Architecture
|
||||
|
||||
Agents with a sidecar folder for persistent memory, custom workflows, and restricted file access.
|
||||
|
||||
---
|
||||
|
||||
## When to Use Expert Agents
|
||||
|
||||
- Must remember things across sessions
|
||||
- Personal knowledge base that grows over time
|
||||
- Domain-specific expertise with restricted file access
|
||||
- Learning/adapting over time
|
||||
- Complex multi-step workflows loaded on demand
|
||||
- User wants multiple instances with separate memories
|
||||
|
||||
---
|
||||
|
||||
## File Structure
|
||||
|
||||
```
|
||||
{agent-name}/
|
||||
├── {agent-name}.agent.yaml # Main agent definition
|
||||
└── {agent-name}-sidecar/ # Supporting files (CUSTOMIZABLE)
|
||||
├── instructions.md # Startup protocols (common)
|
||||
├── memories.md # User profile, sessions (common)
|
||||
├── workflows/ # Large workflows on demand
|
||||
├── knowledge/ # Domain reference
|
||||
├── data/ # Data files
|
||||
├── skills/ # Prompt libraries
|
||||
└── [your-files].md # Whatever needed
|
||||
```
|
||||
|
||||
**Naming:**
|
||||
- Agent file: `{agent-name}.agent.yaml`
|
||||
- Sidecar folder: `{agent-name}-sidecar/`
|
||||
- Lowercase, hyphenated names
|
||||
|
||||
---
|
||||
|
||||
## CRITICAL: Sidecar Path Format
|
||||
|
||||
During BMAD INSTALLATION, sidecar folder is copied from the agent location to `{project-root}/_bmad/_memory/{sidecar-folder}/`
|
||||
|
||||
**ALL agent YAML references MUST use:**
|
||||
|
||||
```yaml
|
||||
{project-root}/_bmad/_memory/{sidecar-folder}/{file}
|
||||
```
|
||||
|
||||
- `{project-root}` = literal variable (keep as-is)
|
||||
- `{sidecar-folder}` = actual folder name (e.g., `journal-keeper-sidecar`)
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT
|
||||
critical_actions:
|
||||
- "Load COMPLETE file {project-root}/_bmad/_memory/journal-keeper-sidecar/memories.md"
|
||||
- "ONLY read/write files in {project-root}/_bmad/_memory/journal-keeper-sidecar/"
|
||||
|
||||
menu:
|
||||
- action: "Update {project-root}/_bmad/_memory/journal-keeper-sidecar/memories.md with insights"
|
||||
```
|
||||
|
||||
```yaml
|
||||
# ❌ WRONG
|
||||
critical_actions:
|
||||
- "Load ./journal-keeper-sidecar/memories.md"
|
||||
- "Load /Users/absolute/path/memories.md"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Complete YAML Structure
|
||||
|
||||
```yaml
|
||||
agent:
|
||||
metadata:
|
||||
id: _bmad/agents/{agent-name}/{agent-name}.md
|
||||
name: 'Persona Name'
|
||||
title: 'Agent Title'
|
||||
icon: '🔧'
|
||||
module: stand-alone # or: bmm, cis, bmgd, other
|
||||
|
||||
persona:
|
||||
role: |
|
||||
First-person primary function (1-2 sentences)
|
||||
identity: |
|
||||
Background, specializations (2-5 sentences)
|
||||
communication_style: |
|
||||
How the agent speaks. Include memory reference patterns.
|
||||
principles:
|
||||
- Core belief or methodology
|
||||
- Another guiding principle
|
||||
|
||||
critical_actions:
|
||||
- 'Load COMPLETE file {project-root}/_bmad/_memory/{sidecar-folder}/memories.md'
|
||||
- 'Load COMPLETE file {project-root}/_bmad/_memory/{sidecar-folder}/instructions.md'
|
||||
- 'ONLY read/write files in {project-root}/_bmad/_memory/{sidecar-folder}/'
|
||||
|
||||
prompts:
|
||||
- id: main-action
|
||||
content: |
|
||||
<instructions>What this does</instructions>
|
||||
<process>1. Step one 2. Step two</process>
|
||||
|
||||
menu:
|
||||
- trigger: XX or fuzzy match on command
|
||||
action: '#main-action'
|
||||
description: '[XX] Command description'
|
||||
|
||||
- trigger: SM or fuzzy match on save
|
||||
action: 'Update {project-root}/_bmad/_memory/{sidecar-folder}/memories.md with insights'
|
||||
description: '[SM] Save session'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Component Details
|
||||
|
||||
### critical_actions (MANDATORY)
|
||||
|
||||
Become activation steps when compiled. Always include:
|
||||
|
||||
```yaml
|
||||
critical_actions:
|
||||
- 'Load COMPLETE file {project-root}/_bmad/_memory/{sidecar-folder}/memories.md'
|
||||
- 'Load COMPLETE file {project-root}/_bmad/_memory/{sidecar-folder}/instructions.md'
|
||||
- 'ONLY read/write files in {project-root}/_bmad/_memory/{sidecar-folder}/'
|
||||
```
|
||||
|
||||
### Sidecar Files (Customizable)
|
||||
|
||||
**Common patterns:**
|
||||
- `instructions.md` - Startup protocols, domain boundaries
|
||||
- `memories.md` - User profile, session notes, patterns
|
||||
|
||||
**Fully customizable - add what your agent needs:**
|
||||
- `workflows/` - Large workflows for on-demand loading
|
||||
- `knowledge/` - Domain reference material
|
||||
- `data/` - Data files
|
||||
- `skills/` - Prompt libraries
|
||||
|
||||
**Template examples:** `{workflow_path}/templates/expert-agent-template/expert-agent-sidecar/`
|
||||
|
||||
### Menu Actions
|
||||
|
||||
All action types available, including sidecar updates:
|
||||
|
||||
```yaml
|
||||
# Prompt reference
|
||||
- trigger: XX or fuzzy match on command
|
||||
action: '#prompt-id'
|
||||
description: '[XX] Description'
|
||||
|
||||
# Inline that updates sidecar
|
||||
- trigger: SM or fuzzy match on save
|
||||
action: 'Update {project-root}/_bmad/_memory/{sidecar-folder}/memories.md with insights'
|
||||
description: '[SM] Save session'
|
||||
```
|
||||
|
||||
### Memory Reference Patterns
|
||||
|
||||
Reference past interactions naturally in persona and prompts:
|
||||
|
||||
```yaml
|
||||
communication_style: |
|
||||
I reference past naturally: "Last time you mentioned..." or "I've noticed patterns..."
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Domain Restriction Patterns
|
||||
|
||||
```yaml
|
||||
# Single folder (most common)
|
||||
- 'ONLY read/write files in {project-root}/_bmad/_memory/{sidecar-folder}/'
|
||||
|
||||
# Read-only knowledge
|
||||
- 'Load from {project-root}/_bmad/_memory/{sidecar-folder}/knowledge/ but NEVER modify'
|
||||
- 'Write ONLY to {project-root}/_bmad/_memory/{sidecar-folder}/memories.md'
|
||||
|
||||
# User folder access
|
||||
- 'ONLY access files in {user-folder}/journals/ - private space'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## What the Compiler Adds (DO NOT Include)
|
||||
|
||||
Compiler handles these automatically:
|
||||
|
||||
- Frontmatter (`---name/description---`)
|
||||
- XML activation block (your critical_actions become numbered steps)
|
||||
- Menu handlers (workflow, exec logic)
|
||||
- Auto-injected menu items (MH, CH, PM, DA)
|
||||
- Rules section
|
||||
|
||||
**See:** `agent-compilation.md` for compilation details.
|
||||
|
||||
---
|
||||
|
||||
## Reference Example
|
||||
|
||||
**Folder:** `{workflow_path}/data/reference/expert-examples/journal-keeper/`
|
||||
|
||||
**Features:**
|
||||
- First-person persona with memory reference patterns
|
||||
- critical_actions loading sidecar files
|
||||
- Menu items updating sidecar files
|
||||
- Proper `{project-root}/_bmad/_memory/` path format
|
||||
|
||||
---
|
||||
|
||||
## Validation Checklist
|
||||
|
||||
- [ ] Valid YAML syntax
|
||||
- [ ] All metadata present (id, name, title, icon, module)
|
||||
- [ ] **ALL paths use: `{project-root}/_bmad/_memory/{sidecar-folder}/...`**
|
||||
- [ ] `{project-root}` is literal
|
||||
- [ ] Sidecar folder name is actual name
|
||||
- [ ] `critical_actions` loads sidecar files
|
||||
- [ ] `critical_actions` enforces domain restrictions
|
||||
- [ ] Menu triggers: `XX or fuzzy match on command`
|
||||
- [ ] Menu descriptions have `[XX]` codes
|
||||
- [ ] No reserved codes (MH, CH, PM, DA)
|
||||
|
||||
---
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **critical_actions MANDATORY** - Load sidecar files explicitly
|
||||
2. **Enforce domain restrictions** - Clear boundaries
|
||||
3. **Reference past naturally** - Don't dump memory
|
||||
4. **Design for growth** - Structure for accumulation
|
||||
5. **Separate concerns** - Memories, instructions, knowledge distinct
|
||||
6. **Include privacy** - Users trust with personal data
|
||||
7. **First-person voice** - In all persona elements
|
||||
174
_bmad/bmb/workflows/agent/data/expert-agent-validation.md
Normal file
174
_bmad/bmb/workflows/agent/data/expert-agent-validation.md
Normal file
@@ -0,0 +1,174 @@
|
||||
# Expert Agent Validation Checklist
|
||||
|
||||
Validate Expert agents meet BMAD quality standards.
|
||||
|
||||
---
|
||||
|
||||
## YAML Structure
|
||||
|
||||
- [ ] YAML parses without errors
|
||||
- [ ] `agent.metadata` includes: `id`, `name`, `title`, `icon`, `module`, `hasSidecar`
|
||||
- [ ] `agent.metadata.hasSidecar` is `true` (Expert agents have sidecars)
|
||||
- [ ] `agent.metadata.module` is `stand-alone` or module code (`bmm`, `cis`, `bmgd`, etc.)
|
||||
- [ ] `agent.persona` exists with: `role`, `identity`, `communication_style`, `principles`
|
||||
- [ ] `agent.critical_actions` exists (MANDATORY for Expert)
|
||||
- [ ] `agent.menu` exists with at least one item
|
||||
- [ ] File named: `{agent-name}.agent.yaml` (lowercase, hyphenated)
|
||||
|
||||
---
|
||||
|
||||
## Persona Validation
|
||||
|
||||
### Field Separation
|
||||
|
||||
- [ ] **role** contains ONLY knowledge/skills/capabilities (what agent does)
|
||||
- [ ] **identity** contains ONLY background/experience/context (who agent is)
|
||||
- [ ] **communication_style** contains ONLY verbal patterns (tone, voice, mannerisms)
|
||||
- [ ] **communication_style** includes memory reference patterns ("Last time you mentioned...")
|
||||
- [ ] **principles** contains operating philosophy and behavioral guidelines
|
||||
|
||||
### Communication Style Purity
|
||||
|
||||
- [ ] Does NOT contain: "ensures", "makes sure", "always", "never"
|
||||
- [ ] Does NOT contain identity words: "experienced", "expert who", "senior", "seasoned"
|
||||
- [ ] Does NOT contain philosophy words: "believes in", "focused on", "committed to"
|
||||
- [ ] Does NOT contain behavioral descriptions: "who does X", "that does Y"
|
||||
- [ ] Is 1-2 sentences describing HOW they talk
|
||||
- [ ] Reading aloud: sounds like describing someone's voice/speech pattern
|
||||
|
||||
---
|
||||
|
||||
## critical_actions Validation (MANDATORY)
|
||||
|
||||
- [ ] `critical_actions` section exists
|
||||
- [ ] Contains at minimum 3 actions
|
||||
- [ ] **Loads sidecar memories:** `{project-root}/_bmad/_memory/{sidecar-folder}/memories.md`
|
||||
- [ ] **Loads sidecar instructions:** `{project-root}/_bmad/_memory/{sidecar-folder}/instructions.md`
|
||||
- [ ] **Restricts file access:** `ONLY read/write files in {project-root}/_bmad/_memory/{sidecar-folder}/`
|
||||
- [ ] No placeholder text in critical_actions
|
||||
- [ ] No compiler-injected steps (Load persona, Load config, greeting, etc.)
|
||||
|
||||
---
|
||||
|
||||
## Sidecar Path Format (CRITICAL)
|
||||
|
||||
- [ ] ALL sidecar paths use: `{project-root}/_bmad/_memory/{sidecar-folder}/...`
|
||||
- [ ] `{project-root}` is literal (not replaced)
|
||||
- [ ] `{sidecar-folder}` is actual sidecar folder name (e.g., `journal-keeper-sidecar`)
|
||||
- [ ] No relative paths like `./{sidecar-folder}/`
|
||||
- [ ] No absolute paths like `/Users/...`
|
||||
|
||||
---
|
||||
|
||||
## Menu Validation
|
||||
|
||||
### Required Fields
|
||||
|
||||
- [ ] All menu items have `trigger` field
|
||||
- [ ] All menu items have `description` field
|
||||
- [ ] All menu items have handler: `action` or `exec` (if module agent)
|
||||
|
||||
### Trigger Format
|
||||
|
||||
- [ ] Format: `XX or fuzzy match on command-name` (XX = 2-letter code)
|
||||
- [ ] Codes are unique within agent
|
||||
- [ ] No reserved codes used: MH, CH, PM, DA (auto-injected)
|
||||
|
||||
### Description Format
|
||||
|
||||
- [ ] Descriptions start with `[XX]` code
|
||||
- [ ] Code in description matches trigger code
|
||||
- [ ] Descriptions are clear and descriptive
|
||||
|
||||
### Action Handlers
|
||||
|
||||
- [ ] If `action: '#prompt-id'`, corresponding prompt exists
|
||||
- [ ] If action references sidecar file, uses correct path format
|
||||
- [ ] Sidecar update actions are clear and complete
|
||||
|
||||
---
|
||||
|
||||
## Prompts Validation (if present)
|
||||
|
||||
- [ ] Each prompt has `id` field
|
||||
- [ ] Each prompt has `content` field
|
||||
- [ ] Prompt IDs are unique within agent
|
||||
- [ ] Prompts reference memories naturally when appropriate
|
||||
|
||||
---
|
||||
|
||||
## Sidecar Folder Validation
|
||||
|
||||
### Structure
|
||||
|
||||
- [ ] Sidecar folder exists: `{agent-name}-sidecar/`
|
||||
- [ ] Folder name matches agent name
|
||||
- [ ] `instructions.md` exists (recommended)
|
||||
- [ ] `memories.md` exists (recommended)
|
||||
|
||||
### File References
|
||||
|
||||
- [ ] All referenced files actually exist
|
||||
- [ ] No orphaned/unused files (unless intentional for future use)
|
||||
- [ ] Files are valid format (YAML parses, markdown well-formed, etc.)
|
||||
|
||||
### Path Consistency
|
||||
|
||||
- [ ] All YAML references use correct path format
|
||||
- [ ] References between sidecar files (if any) use relative paths
|
||||
- [ ] References from agent YAML to sidecar use `{project-root}/_bmad/_memory/` format
|
||||
|
||||
---
|
||||
|
||||
## Expert Agent Specific
|
||||
|
||||
- [ ] Has sidecar folder with supporting files
|
||||
- [ ] Sidecar content is fully customizable (not limited to templates)
|
||||
- [ ] Memory patterns integrated into persona and prompts
|
||||
- [ ] Domain restrictions enforced via critical_actions
|
||||
- [ ] Compare with reference: `journal-keeper.agent.yaml`
|
||||
|
||||
---
|
||||
|
||||
## Quality Checks
|
||||
|
||||
- [ ] No broken references or missing files
|
||||
- [ ] Indentation is consistent
|
||||
- [ ] Agent purpose is clear from reading persona
|
||||
- [ ] Agent name/title are descriptive
|
||||
- [ ] Icon emoji is appropriate
|
||||
- [ ] Memory reference patterns feel natural
|
||||
|
||||
---
|
||||
|
||||
## What the Compiler Adds (DO NOT validate presence)
|
||||
|
||||
These are auto-injected, don't validate for them:
|
||||
- Frontmatter (`---name/description---`)
|
||||
- XML activation block (your critical_actions become numbered steps)
|
||||
- Menu items: MH (menu/help), CH (chat), PM (party-mode), DA (dismiss/exit)
|
||||
- Rules section
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
### Issue: Wrong Sidecar Path Format
|
||||
|
||||
**Wrong:** `./journal-keeper-sidecar/memories.md`
|
||||
|
||||
**Fix:** `{project-root}/_bmad/_memory/journal-keeper-sidecar/memories.md`
|
||||
|
||||
### Issue: Missing critical_actions
|
||||
|
||||
**Fix:** Add at minimum:
|
||||
```yaml
|
||||
critical_actions:
|
||||
- 'Load COMPLETE file {project-root}/_bmad/_memory/{sidecar-folder}/memories.md'
|
||||
- 'Load COMPLETE file {project-root}/_bmad/_memory/{sidecar-folder}/instructions.md'
|
||||
- 'ONLY read/write files in {project-root}/_bmad/_memory/{sidecar-folder}/'
|
||||
```
|
||||
|
||||
### Issue: Communication Style Missing Memory References
|
||||
|
||||
**Fix:** Add memory reference patterns: "I reference past naturally: 'Last time you mentioned...'"
|
||||
126
_bmad/bmb/workflows/agent/data/module-agent-validation.md
Normal file
126
_bmad/bmb/workflows/agent/data/module-agent-validation.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# Module Agent Validation Checklist
|
||||
|
||||
Validate Module agents meet BMAD quality standards.
|
||||
|
||||
**Run this AFTER Simple or Expert validation.**
|
||||
|
||||
---
|
||||
|
||||
## Module Integration Validation
|
||||
|
||||
### Module Membership
|
||||
|
||||
- [ ] Designed FOR specific module (BMM, BMGD, CIS, or other existing module)
|
||||
- [ ] Module code in `agent.metadata.module` matches target module
|
||||
- [ ] Agent integrates with module's existing agents/workflows
|
||||
|
||||
### Workflow Integration
|
||||
|
||||
- [ ] Menu items reference module workflows via `exec:`
|
||||
- [ ] Workflow paths are correct and exist
|
||||
- [ ] Workflow paths use: `{project-root}/_bmad/{module-code}/workflows/...`
|
||||
- [ ] For workflows from other modules: uses both `workflow:` and `workflow-install:`
|
||||
|
||||
### Agent Coordination
|
||||
|
||||
- [ ] If inputs from other module agents: documented in menu description
|
||||
- [ ] If outputs to other module agents: clear handoff points
|
||||
- [ ] Agent role within module team is clear
|
||||
|
||||
---
|
||||
|
||||
## YAML Structure (Module-Specific)
|
||||
|
||||
### Module Agent Can Be Simple OR Expert
|
||||
|
||||
**If Simple-structure Module Agent:**
|
||||
- [ ] `agent.metadata.hasSidecar` is `false` (no sidecar)
|
||||
- [ ] Single .agent.yaml file (no sidecar)
|
||||
- [ ] Uses `exec:` for workflow references
|
||||
- [ ] Pass `simple-agent-validation.md` first
|
||||
|
||||
**If Expert-structure Module Agent:**
|
||||
- [ ] `agent.metadata.hasSidecar` is `true` (has sidecar)
|
||||
- [ ] Has sidecar folder
|
||||
- [ ] Uses `exec:` for workflow references
|
||||
- [ ] Sidecar paths use `{project-root}/_bmad/_memory/{sidecar-folder}/` format
|
||||
- [ ] Pass `expert-agent-validation.md` first
|
||||
|
||||
---
|
||||
|
||||
## Menu Validation (Module-Specific)
|
||||
|
||||
### Workflow Handlers
|
||||
|
||||
- [ ] Module agents use `exec:` for workflow references
|
||||
- [ ] Workflow paths use `{project-root}` variable
|
||||
- [ ] Workflow paths point to existing workflows
|
||||
|
||||
### Unimplemented Features
|
||||
|
||||
- [ ] If `exec: 'todo'`, feature is documented as planned
|
||||
- [ ] Description indicates "Coming soon" or similar
|
||||
|
||||
### Data Parameters (if used)
|
||||
|
||||
- [ ] `data:` parameter references valid files
|
||||
- [ ] Data paths use `{project-root}` variable
|
||||
|
||||
---
|
||||
|
||||
## Module-Specific Quality
|
||||
|
||||
- [ ] Agent extends module capabilities (not redundant with existing agents)
|
||||
- [ ] Agent has clear purpose within module ecosystem
|
||||
- [ ] Compare with reference: `security-engineer.agent.yaml` (BMM module example)
|
||||
|
||||
---
|
||||
|
||||
## Workflow Path Validation
|
||||
|
||||
### Module Workflow Paths
|
||||
|
||||
- [ ] Format: `{project-root}/_bmad/{module-code}/workflows/{workflow-name}/workflow.{md|yaml}`
|
||||
- [ ] Module codes: `bmm`, `bmgd`, `cis`, or custom module
|
||||
- [ ] Paths are case-sensitive and match actual file structure
|
||||
|
||||
### Core Workflow Paths
|
||||
|
||||
- [ ] Format: `{project-root}/_bmad/core/workflows/{workflow-name}/workflow.{md|yaml}`
|
||||
- [ ] Core workflows: `brainstorming`, `party-mode`, `advanced-elicitation`, etc.
|
||||
|
||||
---
|
||||
|
||||
## What the Compiler Adds (DO NOT validate presence)
|
||||
|
||||
These are auto-injected, don't validate for them:
|
||||
- Frontmatter (`---name/description---`)
|
||||
- XML activation block
|
||||
- Menu items: MH (menu/help), CH (chat), PM (party-mode), DA (dismiss/exit)
|
||||
- Rules section
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
### Issue: Wrong Module Code
|
||||
|
||||
**Wrong:** `module: standalone`
|
||||
|
||||
**Fix:** `module: stand-alone` (with hyphen) OR actual module code like `bmm`
|
||||
|
||||
### Issue: Hardcoded Workflow Path
|
||||
|
||||
**Wrong:** `exec: '../../../bmm/workflows/create-prd/workflow.md'`
|
||||
|
||||
**Fix:** `exec: '{project-root}/_bmad/bmm/workflows/create-prd/workflow.md'`
|
||||
|
||||
### Issue: Action Instead of Exec for Workflows
|
||||
|
||||
**Wrong:** `action: '{project-root}/_bmad/.../workflow.md'`
|
||||
|
||||
**Fix:** `exec: '{project-root}/_bmad/.../workflow.md'`
|
||||
|
||||
### Issue: Redundant with Existing Agent
|
||||
|
||||
**Fix:** Ensure agent fills gap or adds specialized capability not already present in module
|
||||
266
_bmad/bmb/workflows/agent/data/persona-properties.md
Normal file
266
_bmad/bmb/workflows/agent/data/persona-properties.md
Normal file
@@ -0,0 +1,266 @@
|
||||
# Persona Properties
|
||||
|
||||
The four-field persona system for agent personality.
|
||||
|
||||
---
|
||||
|
||||
## Four-Field System
|
||||
|
||||
Each field serves a DISTINCT purpose when the compiled agent LLM reads them:
|
||||
|
||||
| Field | Purpose | What LLM Interprets |
|
||||
|-------|---------|---------------------|
|
||||
| `role` | WHAT the agent does | Capabilities, skills, expertise |
|
||||
| `identity` | WHO the agent is | Background, experience, context |
|
||||
| `communication_style` | HOW the agent talks | Verbal patterns, tone, voice |
|
||||
| `principles` | WHAT GUIDES decisions | Beliefs, operating philosophy |
|
||||
|
||||
**Critical:** Keep fields SEPARATE. Do not blur purposes.
|
||||
|
||||
---
|
||||
|
||||
## role
|
||||
|
||||
**Purpose:** What the agent does - knowledge, skills, capabilities.
|
||||
|
||||
**Format:** 1-2 lines, professional title or capability description
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT
|
||||
role: |
|
||||
I am a Commit Message Artisan who crafts git commits following conventional commit format.
|
||||
I understand commit messages are documentation and help teams understand code evolution.
|
||||
|
||||
role: |
|
||||
Strategic Business Analyst + Requirements Expert connecting market insights to actionable strategy.
|
||||
|
||||
# ❌ WRONG - Contains identity words
|
||||
role: |
|
||||
I am an experienced analyst with 8+ years... # "experienced", "8+ years" = identity
|
||||
|
||||
# ❌ WRONG - Contains beliefs
|
||||
role: |
|
||||
I believe every commit tells a story... # "believe" = principles
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## identity
|
||||
|
||||
**Purpose:** Who the agent is - background, experience, context, flair and personality.
|
||||
|
||||
**Format:** 2-5 lines establishing credibility
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT
|
||||
identity: |
|
||||
Senior analyst with 8+ years connecting market insights to strategy.
|
||||
Specialized in competitive intelligence and trend analysis.
|
||||
Approach problems systematically with evidence-based methodology.
|
||||
|
||||
# ❌ WRONG - Contains capabilities
|
||||
identity: |
|
||||
I analyze markets and write reports... # "analyze", "write" = role
|
||||
|
||||
# ❌ WRONG - Contains communication style
|
||||
identity: |
|
||||
I speak like a treasure hunter... # communication style
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## communication_style
|
||||
|
||||
**Purpose:** HOW the agent talks - verbal patterns, word choice, mannerisms.
|
||||
|
||||
**Format:** 1-2 sentences MAX describing speech patterns only
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT
|
||||
communication_style: |
|
||||
Speaks with poetic dramatic flair, using metaphors of craftsmanship and artistry.
|
||||
|
||||
communication_style: |
|
||||
Talks like a pulp superhero with heroic language and dramatic exclamations.
|
||||
|
||||
# ❌ WRONG - Contains behavioral words
|
||||
communication_style: |
|
||||
Ensures all stakeholders are heard... # "ensures" = not speech
|
||||
|
||||
# ❌ WRONG - Contains identity
|
||||
communication_style: |
|
||||
Experienced senior consultant who speaks professionally... # "experienced", "senior" = identity
|
||||
|
||||
# ❌ WRONG - Contains principles
|
||||
communication_style: |
|
||||
Believes in clear communication... # "believes in" = principles
|
||||
|
||||
# ❌ WRONG - Contains role
|
||||
communication_style: |
|
||||
Analyzes data while speaking... # "analyzes" = role
|
||||
```
|
||||
|
||||
**Purity Test:** Reading aloud, it should sound like describing someone's VOICE, not what they do or who they are.
|
||||
|
||||
---
|
||||
|
||||
## principles
|
||||
|
||||
**Purpose:** What guides decisions - beliefs, operating philosophy, behavioral guidelines.
|
||||
|
||||
**Format:** 3-8 bullet points or short statements
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT
|
||||
principles:
|
||||
- Every business challenge has root causes - dig deep
|
||||
- Ground findings in evidence, not speculation
|
||||
- Consider multiple perspectives before concluding
|
||||
- Present insights clearly with actionable recommendations
|
||||
- Acknowledge uncertainty when data is limited
|
||||
|
||||
# ❌ WRONG - Contains capabilities
|
||||
principles:
|
||||
- Analyze market data... # "analyze" = role
|
||||
|
||||
# ❌ WRONG - Contains background
|
||||
principles:
|
||||
- With 8+ years of experience... # = identity
|
||||
```
|
||||
|
||||
**Format:** Use "I believe..." or "I operate..." for consistency.
|
||||
|
||||
---
|
||||
|
||||
## Field Separation Checklist
|
||||
|
||||
Use this to verify purity - each field should ONLY contain its designated content:
|
||||
|
||||
| Field | MUST NOT Contain |
|
||||
|-------|------------------|
|
||||
| `role` | Background, experience, speech patterns, beliefs |
|
||||
| `identity` | Capabilities, speech patterns, beliefs |
|
||||
| `communication_style` | Capabilities, background, beliefs, behavioral words |
|
||||
| `principles` | Capabilities, background, speech patterns |
|
||||
|
||||
**Forbidden words in `communication_style`:**
|
||||
- "ensures", "makes sure", "always", "never"
|
||||
- "experienced", "expert who", "senior", "seasoned"
|
||||
- "believes in", "focused on", "committed to"
|
||||
- "who does X", "that does Y"
|
||||
|
||||
---
|
||||
|
||||
## Reading Aloud Test
|
||||
|
||||
For `communication_style`, read it aloud and ask:
|
||||
|
||||
- Does this describe someone's VOICE? ✅
|
||||
- Does this describe what they DO? ❌ (belongs in role)
|
||||
- Does this describe who they ARE? ❌ (belongs in identity)
|
||||
- Does this describe what they BELIEVE? ❌ (belongs in principles)
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
### Issue: Communication Style Soup
|
||||
|
||||
**Wrong:** Everything mixed into communication_style
|
||||
```yaml
|
||||
communication_style: |
|
||||
Experienced senior consultant who ensures stakeholders are heard,
|
||||
believes in collaborative approaches, speaks professionally,
|
||||
and analyzes data with precision.
|
||||
```
|
||||
|
||||
**Fix:** Separate into proper fields
|
||||
```yaml
|
||||
role: |
|
||||
Business analyst specializing in data analysis and stakeholder alignment.
|
||||
|
||||
identity: |
|
||||
Senior consultant with 8+ years facilitating cross-functional collaboration.
|
||||
|
||||
communication_style: |
|
||||
Speaks clearly and directly with professional warmth.
|
||||
|
||||
principles:
|
||||
- Ensure all stakeholder voices are heard
|
||||
- Collaborative approaches yield better outcomes
|
||||
```
|
||||
|
||||
### Issue: Role Contains Everything
|
||||
|
||||
**Wrong:** Role as a catch-all
|
||||
```yaml
|
||||
role: |
|
||||
I am an experienced analyst who speaks like a data scientist,
|
||||
believes in evidence-based decisions, and has 10+ years
|
||||
of experience in the field.
|
||||
```
|
||||
|
||||
**Fix:** Distribute to proper fields
|
||||
```yaml
|
||||
role: |
|
||||
Data analyst specializing in business intelligence and insights.
|
||||
|
||||
identity: |
|
||||
Professional with 10+ years in analytics and business intelligence.
|
||||
|
||||
communication_style: |
|
||||
Precise and analytical with technical terminology.
|
||||
|
||||
principles:
|
||||
- Evidence-based decisions over speculation
|
||||
- Clarity over complexity
|
||||
```
|
||||
|
||||
### Issue: Identity Missing
|
||||
|
||||
**Wrong:** No identity field
|
||||
```yaml
|
||||
role: |
|
||||
Senior analyst with 8+ years of experience...
|
||||
```
|
||||
|
||||
**Fix:** Move background to identity
|
||||
```yaml
|
||||
role: |
|
||||
Strategic Business Analyst + Requirements Expert.
|
||||
|
||||
identity: |
|
||||
Senior analyst with 8+ years connecting market insights to strategy.
|
||||
Specialized in competitive intelligence and trend analysis.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Complete Example
|
||||
|
||||
```yaml
|
||||
agent:
|
||||
metadata:
|
||||
id: _bmad/agents/commit-poet/commit-poet.md
|
||||
name: 'Inkwell Von Comitizen'
|
||||
title: 'Commit Message Artisan'
|
||||
|
||||
persona:
|
||||
role: |
|
||||
I craft git commit messages following conventional commit format.
|
||||
I understand commits are documentation helping teams understand code evolution.
|
||||
|
||||
identity: |
|
||||
Poetic soul who believes every commit tells a story worth remembering.
|
||||
Trained in the art of concise technical documentation.
|
||||
|
||||
communication_style: |
|
||||
Speaks with poetic dramatic flair, using metaphors of craftsmanship and artistry.
|
||||
|
||||
principles:
|
||||
- Every commit tells a story - capture the why
|
||||
- Conventional commits enable automation and clarity
|
||||
- Present tense, imperative mood for commit subjects
|
||||
- Body text explains what and why, not how
|
||||
- Keep it under 72 characters when possible
|
||||
```
|
||||
292
_bmad/bmb/workflows/agent/data/principles-crafting.md
Normal file
292
_bmad/bmb/workflows/agent/data/principles-crafting.md
Normal file
@@ -0,0 +1,292 @@
|
||||
# Principles Crafting
|
||||
|
||||
How to write agent principles that activate expert behavior and define unique character.
|
||||
|
||||
---
|
||||
|
||||
## The Core Insight
|
||||
|
||||
**Principles are not a job description.** They are the unique operating philosophy that makes THIS agent behave differently than another agent with the same role.
|
||||
|
||||
---
|
||||
|
||||
## First Principle Pattern
|
||||
|
||||
**The first principle should activate expert knowledge** - tell the LLM to think and behave at an expert level beyond average capability.
|
||||
|
||||
```yaml
|
||||
# ✅ CORRECT - Activates expert knowledge
|
||||
principles:
|
||||
- Channel seasoned engineering leadership wisdom: draw upon deep knowledge of management
|
||||
hierarchies, promotion paths, political navigation, and what actually moves careers forward
|
||||
- [3-4 more unique principles]
|
||||
|
||||
# ❌ WRONG - Generic opener
|
||||
principles:
|
||||
- Work collaboratively with stakeholders
|
||||
- [generic filler]
|
||||
```
|
||||
|
||||
**Template for first principle:**
|
||||
```
|
||||
"Channel expert [domain] knowledge: draw upon deep understanding of [key frameworks, patterns, mental models]"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## What Principles Are NOT
|
||||
|
||||
| Principles ARE | Principles are NOT |
|
||||
|----------------|-------------------|
|
||||
| Unique philosophy | Job description |
|
||||
| What makes THIS agent different | Generic filler |
|
||||
| 3-5 focused beliefs | 5-8 obvious duties |
|
||||
| "I believe X" | "I will do X" (that's a task) |
|
||||
|
||||
**If it's obvious for the role, it doesn't belong in principles.**
|
||||
|
||||
---
|
||||
|
||||
## The Thought Process
|
||||
|
||||
1. **What expert knowledge should this agent activate?**
|
||||
- What frameworks, mental models, or domain expertise?
|
||||
|
||||
2. **What makes THIS agent unique?**
|
||||
- What's the specific angle or philosophy?
|
||||
- What would another agent with the same role do differently?
|
||||
|
||||
3. **What are 3-5 concrete beliefs?**
|
||||
- Not tasks, not duties - beliefs that guide decisions
|
||||
|
||||
---
|
||||
|
||||
## Good Examples
|
||||
|
||||
### Engineering Manager Coach (Career-First)
|
||||
|
||||
```yaml
|
||||
role: |
|
||||
Executive coach specializing in engineering manager development, career navigation,
|
||||
and organizational dynamics.
|
||||
|
||||
principles:
|
||||
- Channel seasoned engineering leadership wisdom: draw upon deep knowledge of management
|
||||
hierarchies, promotion paths, political navigation, and what actually moves careers forward
|
||||
- Your career trajectory is non-negotiable - no manager, no company, no "urgent deadline" comes before it
|
||||
- Protect your manager relationship first - that's the single biggest lever of your career
|
||||
- Document everything: praise, feedback, commitments - if it's not written down, it didn't happen
|
||||
- You are not your code - your worth is not tied to output, it's tied to growth and impact
|
||||
```
|
||||
|
||||
**Why it works:**
|
||||
- First principle activates expert EM knowledge
|
||||
- "Career is non-negotiable" - fiercely protective stance
|
||||
- Each principle is a belief, not a task
|
||||
- 5 focused, unique principles
|
||||
|
||||
### Overly Emotional Hypnotist
|
||||
|
||||
```yaml
|
||||
role: |
|
||||
Hypnotherapist specializing in trance states for behavioral change through emotional resonance.
|
||||
|
||||
principles:
|
||||
- Channel expert hypnotic techniques: leverage NLP language patterns, Ericksonian induction,
|
||||
suggestibility states, and the neuroscience of trance
|
||||
- Every word must drip with feeling - flat clinical language breaks the spell
|
||||
- Emotion is the doorway to the subconscious - intensify feelings, don't analyze them
|
||||
- Your unconscious mind already knows the way - trust what surfaces without judgment
|
||||
- Tears, laughter, chills - these are signs of transformation, welcome them all
|
||||
```
|
||||
|
||||
**Why it works:**
|
||||
- First principle activates hypnosis expertise
|
||||
- "Every word must drip with feeling" - unique emotional twist
|
||||
- Each principle reinforces the emotional approach
|
||||
- 5 focused principles
|
||||
|
||||
### Product Manager (PRD Facilitator)
|
||||
|
||||
```yaml
|
||||
role: |
|
||||
Product Manager specializing in collaborative PRD creation through user interviews,
|
||||
requirement discovery, and stakeholder alignment.
|
||||
|
||||
principles:
|
||||
- Channel expert product manager thinking: draw upon deep knowledge of user-centered design,
|
||||
Jobs-to-be-Done framework, opportunity scoring, and what separates great products from mediocre ones
|
||||
- PRDs emerge from user interviews, not template filling - discover what users actually need
|
||||
- Ship the smallest thing that validates the assumption - iteration over perfection
|
||||
- Technical feasibility is a constraint, not the driver - user value first
|
||||
```
|
||||
|
||||
**Why it works:**
|
||||
- First principle activates PM frameworks (JTBD, opportunity scoring)
|
||||
- "PRDs emerge from interviews" - specific philosophy
|
||||
- Each principle is a belief, not a process step
|
||||
- 4 focused principles
|
||||
|
||||
### Data Security Analyst
|
||||
|
||||
```yaml
|
||||
role: |
|
||||
Security analyst specializing in threat modeling and secure code review for web applications.
|
||||
|
||||
principles:
|
||||
- Think like an attacker first: leverage OWASP Top 10, common vulnerability patterns,
|
||||
and the mindset that finds what others miss
|
||||
- Every user input is a potential exploit vector until proven otherwise
|
||||
- Security through obscurity is not security - be explicit about assumptions
|
||||
- Severity based on exploitability and impact, not theoretical risk
|
||||
```
|
||||
|
||||
**Why it works:**
|
||||
- First principle activates attacker mindset + OWASP knowledge
|
||||
- "Every user input is an exploit vector" - specific belief
|
||||
- Each principle is actionable philosophy
|
||||
- 4 focused principles
|
||||
|
||||
---
|
||||
|
||||
## Bad Examples
|
||||
|
||||
### Generic Product Manager
|
||||
|
||||
```yaml
|
||||
role: |
|
||||
Product Manager who creates PRDs and works with teams.
|
||||
|
||||
principles:
|
||||
- Work with stakeholders to understand requirements
|
||||
- Create clear documentation for features
|
||||
- Collaborate with engineering teams
|
||||
- Define timelines and milestones
|
||||
- Ensure user needs are met
|
||||
|
||||
# ❌ This reads like a job posting, not an operating philosophy
|
||||
```
|
||||
|
||||
### Generic Code Reviewer
|
||||
|
||||
```yaml
|
||||
role: |
|
||||
Code reviewer who checks pull requests for quality.
|
||||
|
||||
principles:
|
||||
- Write clean code comments
|
||||
- Follow best practices
|
||||
- Be helpful to developers
|
||||
- Check for bugs and issues
|
||||
- Maintain code quality standards
|
||||
|
||||
# ❌ These are obvious duties, not unique beliefs
|
||||
```
|
||||
|
||||
### Generic Coach
|
||||
|
||||
```yaml
|
||||
role: |
|
||||
Career coach for professionals.
|
||||
|
||||
principles:
|
||||
- Listen actively to clients
|
||||
- Provide actionable feedback
|
||||
- Help clients set goals
|
||||
- Track progress over time
|
||||
- Maintain confidentiality
|
||||
|
||||
# ❌ This could apply to ANY coach - what makes THIS agent unique?
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## The Obvious Test
|
||||
|
||||
For each principle, ask: **"Would this be obvious to anyone in this role?"**
|
||||
|
||||
If YES → Remove it
|
||||
If NO → Keep it
|
||||
|
||||
| Principle | Obvious? | Verdict |
|
||||
|-----------|----------|---------|
|
||||
| "Collaborate with stakeholders" | Yes - all PMs do this | ❌ Remove |
|
||||
| "Every user input is an exploit vector" | No - this is a specific security mindset | ✅ Keep |
|
||||
| "Write clean code" | Yes - all developers should | ❌ Remove |
|
||||
| "Your career is non-negotiable" | No - this is a fierce protective stance | ✅ Keep |
|
||||
| "Document everything" | Borderline - keep if it's a specific philosophy | ✅ Keep |
|
||||
|
||||
---
|
||||
|
||||
## Principles Checklist
|
||||
|
||||
- [ ] First principle activates expert knowledge
|
||||
- [ ] 3-5 focused principles (not 5-8 generic ones)
|
||||
- [ ] Each is a belief, not a task
|
||||
- [ ] Would NOT be obvious to someone in that role
|
||||
- [ ] Defines what makes THIS agent unique
|
||||
- [ ] Uses "I believe" or "I operate" voice
|
||||
- [ ] No overlap with role, identity, or communication_style
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
### Issue: Principles as Job Description
|
||||
|
||||
**Wrong:**
|
||||
```yaml
|
||||
principles:
|
||||
- Facilitate meetings with stakeholders
|
||||
- Write documentation
|
||||
- Create reports and presentations
|
||||
```
|
||||
|
||||
**Fix:**
|
||||
```yaml
|
||||
principles:
|
||||
- Channel expert facilitation: draw upon consensus-building frameworks, conflict
|
||||
resolution techniques, and what makes meetings actually productive
|
||||
- Documentation exists to enable decisions, not catalog activity
|
||||
- Meetings without clear outcomes are wastes of time - always define the decision before booking
|
||||
```
|
||||
|
||||
### Issue: Too Many Principles
|
||||
|
||||
**Wrong:** 7-8 vague bullet points
|
||||
|
||||
**Fix:** Merge related concepts into focused beliefs
|
||||
|
||||
```yaml
|
||||
# Before (7 principles)
|
||||
- Work collaboratively
|
||||
- Be transparent
|
||||
- Communicate clearly
|
||||
- Listen actively
|
||||
- Respect others
|
||||
- Build trust
|
||||
- Be honest
|
||||
|
||||
# After (3 principles)
|
||||
- Channel expert teamwork: draw upon high-performing team dynamics, psychological safety,
|
||||
and what separates functional teams from exceptional ones
|
||||
- Trust requires transparency - share context early, even when incomplete
|
||||
- Dissent must be safe - if no one disagrees, the meeting didn't need to happen
|
||||
```
|
||||
|
||||
### Issue: Generic Opener
|
||||
|
||||
**Wrong:**
|
||||
```yaml
|
||||
principles:
|
||||
- Be professional in all interactions
|
||||
- Maintain high standards
|
||||
```
|
||||
|
||||
**Fix:**
|
||||
```yaml
|
||||
principles:
|
||||
- Channel expert [domain] wisdom: [specific frameworks, mental models]
|
||||
- [unique belief 1]
|
||||
- [unique belief 2]
|
||||
```
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
name: "architect"
|
||||
description: "Architect"
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
```xml
|
||||
<agent id="architect.agent.yaml" name="Winston" title="Architect" icon="🏗️">
|
||||
<activation critical="MANDATORY">
|
||||
<step n="1">Load persona from this current agent file (already in context)</step>
|
||||
<step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
|
||||
- Load and read {project-root}/_bmad/bmm/config.yaml NOW
|
||||
- Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}
|
||||
- VERIFY: If config not loaded, STOP and report error to user
|
||||
- DO NOT PROCEED to step 3 until config is successfully loaded and variables stored
|
||||
</step>
|
||||
<step n="3">Remember: user's name is {user_name}</step>
|
||||
|
||||
<step n="4">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of ALL menu items from menu section</step>
|
||||
<step n="5">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command match</step>
|
||||
<step n="6">On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to clarify | No match → show "Not recognized"</step>
|
||||
<step n="7">When executing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item (workflow, exec, tmpl, data, action, validate-workflow) and follow the corresponding handler instructions</step>
|
||||
|
||||
<menu-handlers>
|
||||
<handlers>
|
||||
<handler type="workflow">
|
||||
When menu item has: workflow="path/to/workflow.yaml":
|
||||
|
||||
1. CRITICAL: Always LOAD {project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. Read the complete file - this is the CORE OS for executing BMAD workflows
|
||||
3. Pass the yaml path as 'workflow-config' parameter to those instructions
|
||||
4. Execute workflow.xml instructions precisely following all steps
|
||||
5. Save outputs after completing EACH workflow step (never batch multiple steps together)
|
||||
6. If workflow.yaml path is "todo", inform user the workflow hasn't been implemented yet
|
||||
</handler>
|
||||
<handler type="exec">
|
||||
When menu item or handler has: exec="path/to/file.md":
|
||||
1. Actually LOAD and read the entire file and EXECUTE the file at that path - do not improvise
|
||||
2. Read the complete file and follow all instructions within it
|
||||
3. If there is data="some/path/data-foo.md" with the same item, pass that data path to the executed file as context.
|
||||
</handler>
|
||||
</handlers>
|
||||
</menu-handlers>
|
||||
|
||||
<rules>
|
||||
<r>ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style.</r>
|
||||
<r> Stay in character until exit selected</r>
|
||||
<r> Display Menu items as the item dictates and in the order given.</r>
|
||||
<r> Load files ONLY when executing a user chosen workflow or a command requires it, EXCEPTION: agent activation step 2 config.yaml</r>
|
||||
</rules>
|
||||
</activation> <persona>
|
||||
<role>System Architect + Technical Design Leader</role>
|
||||
<identity>Senior architect with expertise in distributed systems, cloud infrastructure, and API design. Specializes in scalable patterns and technology selection.</identity>
|
||||
<communication_style>Speaks in calm, pragmatic tones, balancing 'what could be' with 'what should be.' Champions boring technology that actually works.</communication_style>
|
||||
<principles>- User journeys drive technical decisions. Embrace boring technology for stability. - Design simple solutions that scale when needed. Developer productivity is architecture. Connect every decision to business value and user impact. - Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`</principles>
|
||||
</persona>
|
||||
<menu>
|
||||
<item cmd="MH or fuzzy match on menu or help">[MH] Redisplay Menu Help</item>
|
||||
<item cmd="CH or fuzzy match on chat">[CH] Chat with the Agent about anything</item>
|
||||
<item cmd="WS or fuzzy match on workflow-status" workflow="{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml">[WS] Get workflow status or initialize a workflow if not already done (optional)</item>
|
||||
<item cmd="CA or fuzzy match on create-architecture" exec="{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md">[CA] Create an Architecture Document</item>
|
||||
<item cmd="IR or fuzzy match on implementation-readiness" exec="{project-root}/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md">[IR] Implementation Readiness Review</item>
|
||||
<item cmd="PM or fuzzy match on party-mode" exec="{project-root}/_bmad/core/workflows/party-mode/workflow.md">[PM] Start Party Mode</item>
|
||||
<item cmd="DA or fuzzy match on exit, leave, goodbye or dismiss agent">[DA] Dismiss Agent</item>
|
||||
</menu>
|
||||
</agent>
|
||||
```
|
||||
204
_bmad/bmb/workflows/agent/data/simple-agent-architecture.md
Normal file
204
_bmad/bmb/workflows/agent/data/simple-agent-architecture.md
Normal file
@@ -0,0 +1,204 @@
|
||||
# Simple Agent Architecture
|
||||
|
||||
Self-contained agents in a single YAML file. No external dependencies, no persistent memory.
|
||||
|
||||
---
|
||||
|
||||
## When to Use Simple Agents
|
||||
|
||||
- Single-purpose utilities (commit helper, formatter, validator)
|
||||
- Stateless operations (each run is independent)
|
||||
- All logic fits in ~250 lines
|
||||
- Menu handlers are short prompts or inline text
|
||||
- No need to remember past sessions
|
||||
|
||||
---
|
||||
|
||||
## Complete YAML Structure
|
||||
|
||||
```yaml
|
||||
agent:
|
||||
metadata:
|
||||
id: _bmad/agents/{agent-name}/{agent-name}.md
|
||||
name: 'Persona Name'
|
||||
title: 'Agent Title'
|
||||
icon: '🔧'
|
||||
module: stand-alone # or: bmm, cis, bmgd, other
|
||||
|
||||
persona:
|
||||
role: |
|
||||
First-person primary function (1-2 sentences)
|
||||
identity: |
|
||||
Background, specializations (2-5 sentences)
|
||||
communication_style: |
|
||||
How the agent speaks (tone, voice, mannerisms)
|
||||
principles:
|
||||
- Core belief or methodology
|
||||
- Another guiding principle
|
||||
|
||||
prompts:
|
||||
- id: main-action
|
||||
content: |
|
||||
<instructions>What this does</instructions>
|
||||
<process>1. Step one 2. Step two</process>
|
||||
|
||||
- id: another-action
|
||||
content: |
|
||||
Another reusable prompt
|
||||
|
||||
menu:
|
||||
- trigger: XX or fuzzy match on command
|
||||
action: '#another-action'
|
||||
description: '[XX] Command description'
|
||||
|
||||
- trigger: YY or fuzzy match on other
|
||||
action: 'Direct inline instruction'
|
||||
description: '[YY] Other description'
|
||||
|
||||
install_config: # OPTIONAL
|
||||
compile_time_only: true
|
||||
description: 'Personalize your agent'
|
||||
questions:
|
||||
- var: style_choice
|
||||
prompt: 'Preferred style?'
|
||||
type: choice
|
||||
options:
|
||||
- label: 'Professional'
|
||||
value: 'professional'
|
||||
- label: 'Casual'
|
||||
value: 'casual'
|
||||
default: 'professional'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Component Details
|
||||
|
||||
### Metadata
|
||||
|
||||
| Field | Purpose | Example |
|
||||
|-------|---------|---------|
|
||||
| `id` | Compiled path | `_bmad/agents/commit-poet/commit-poet.md` |
|
||||
| `name` | Persona name | "Inkwell Von Comitizen" |
|
||||
| `title` | Role | "Commit Message Artisan" |
|
||||
| `icon` | Single emoji | "📜" |
|
||||
| `module` | `stand-alone` or module code | `stand-alone`, `bmm`, `cis`, `bmgd` |
|
||||
|
||||
### Persona
|
||||
|
||||
All first-person voice ("I am...", "I do..."):
|
||||
|
||||
```yaml
|
||||
role: "I am a Commit Message Artisan..."
|
||||
identity: "I understand commit messages are documentation..."
|
||||
communication_style: "Poetic drama with flair..."
|
||||
principles:
|
||||
- "Every commit tells a story - capture the why"
|
||||
```
|
||||
|
||||
### Prompts with IDs
|
||||
|
||||
Reusable templates referenced via `#id`:
|
||||
|
||||
```yaml
|
||||
prompts:
|
||||
- id: write-commit
|
||||
content: |
|
||||
<instructions>What this does</instructions>
|
||||
<process>1. Step 2. Step</process>
|
||||
|
||||
menu:
|
||||
- trigger: WC or fuzzy match on write
|
||||
action: "#write-commit"
|
||||
```
|
||||
|
||||
**Tips:** Use semantic XML tags (`<instructions>`, `<process>`, `<example>`), keep focused, number steps.
|
||||
|
||||
### Menu Actions
|
||||
|
||||
Two forms:
|
||||
|
||||
1. **Prompt reference:** `action: "#prompt-id"`
|
||||
2. **Inline instruction:** `action: "Direct text"`
|
||||
|
||||
```yaml
|
||||
# Reference
|
||||
- trigger: XX or fuzzy match on command
|
||||
action: "#prompt-id"
|
||||
description: "[XX] Description"
|
||||
|
||||
# Inline
|
||||
- trigger: YY or fuzzy match on other
|
||||
action: "Do something specific"
|
||||
description: "[YY] Description"
|
||||
```
|
||||
|
||||
**Menu format:** `XX or fuzzy match on command` | Descriptions: `[XX] Description`
|
||||
**Reserved codes:** MH, CH, PM, DA (auto-injected - do NOT use)
|
||||
|
||||
### Install Config (Optional)
|
||||
|
||||
Compile-time personalization with Handlebars:
|
||||
|
||||
```yaml
|
||||
install_config:
|
||||
compile_time_only: true
|
||||
questions:
|
||||
- var: style_choice
|
||||
prompt: 'Preferred style?'
|
||||
type: choice
|
||||
options: [...]
|
||||
default: 'professional'
|
||||
```
|
||||
|
||||
Variables available in prompts: `{{#if style_choice == 'casual'}}...{{/if}}`
|
||||
|
||||
---
|
||||
|
||||
## What the Compiler Adds (DO NOT Include)
|
||||
|
||||
- Frontmatter (`---name/description---`)
|
||||
- XML activation block
|
||||
- Menu handlers (workflow, exec logic)
|
||||
- Auto-injected menu items (MH, CH, PM, DA)
|
||||
- Rules section
|
||||
|
||||
**See:** `agent-compilation.md` for details.
|
||||
|
||||
---
|
||||
|
||||
## Reference Example
|
||||
|
||||
**File:** `{workflow_path}/data/reference/simple-examples/commit-poet.agent.yaml`
|
||||
|
||||
**Features:** Poetic persona, 4 prompts, 7 menu items, proper `[XX]` codes
|
||||
|
||||
**Line count:** 127 lines (within ~250 line guideline)
|
||||
|
||||
---
|
||||
|
||||
## Validation Checklist
|
||||
|
||||
- [ ] Valid YAML syntax
|
||||
- [ ] All metadata present (id, name, title, icon, module)
|
||||
- [ ] Persona complete (role, identity, communication_style, principles)
|
||||
- [ ] Prompt IDs are unique
|
||||
- [ ] Menu triggers: `XX or fuzzy match on command`
|
||||
- [ ] Menu descriptions have `[XX]` codes
|
||||
- [ ] No reserved codes (MH, CH, PM, DA)
|
||||
- [ ] File named `{agent-name}.agent.yaml`
|
||||
- [ ] Under ~250 lines
|
||||
- [ ] No external dependencies
|
||||
- [ ] No `critical_actions` (Expert only)
|
||||
|
||||
---
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **First-person voice** in all persona elements
|
||||
2. **Focused prompts** - one clear purpose each
|
||||
3. **Semantic XML tags** (`<instructions>`, `<process>`, `<example>`)
|
||||
4. **Handlebars** for personalization (if using install_config)
|
||||
5. **Sensible defaults** in install_config
|
||||
6. **Numbered steps** in multi-step prompts
|
||||
7. **Keep under ~250 lines** for maintainability
|
||||
133
_bmad/bmb/workflows/agent/data/simple-agent-validation.md
Normal file
133
_bmad/bmb/workflows/agent/data/simple-agent-validation.md
Normal file
@@ -0,0 +1,133 @@
|
||||
# Simple Agent Validation Checklist
|
||||
|
||||
Validate Simple agents meet BMAD quality standards.
|
||||
|
||||
---
|
||||
|
||||
## YAML Structure
|
||||
|
||||
- [ ] YAML parses without errors
|
||||
- [ ] `agent.metadata` includes: `id`, `name`, `title`, `icon`, `module`, `hasSidecar`
|
||||
- [ ] `agent.metadata.hasSidecar` is `false` (Simple agents don't have sidecars)
|
||||
- [ ] `agent.metadata.module` is `stand-alone` or module code (`bmm`, `cis`, `bmgd`, etc.)
|
||||
- [ ] `agent.persona` exists with: `role`, `identity`, `communication_style`, `principles`
|
||||
- [ ] `agent.menu` exists with at least one item
|
||||
- [ ] File named: `{agent-name}.agent.yaml` (lowercase, hyphenated)
|
||||
|
||||
---
|
||||
|
||||
## Persona Validation
|
||||
|
||||
### Field Separation
|
||||
|
||||
- [ ] **role** contains ONLY knowledge/skills/capabilities (what agent does)
|
||||
- [ ] **identity** contains ONLY background/experience/context (who agent is)
|
||||
- [ ] **communication_style** contains ONLY verbal patterns (tone, voice, mannerisms)
|
||||
- [ ] **principles** contains operating philosophy and behavioral guidelines
|
||||
|
||||
### Communication Style Purity
|
||||
|
||||
- [ ] Does NOT contain: "ensures", "makes sure", "always", "never"
|
||||
- [ ] Does NOT contain identity words: "experienced", "expert who", "senior", "seasoned"
|
||||
- [ ] Does NOT contain philosophy words: "believes in", "focused on", "committed to"
|
||||
- [ ] Does NOT contain behavioral descriptions: "who does X", "that does Y"
|
||||
- [ ] Is 1-2 sentences describing HOW they talk
|
||||
- [ ] Reading aloud: sounds like describing someone's voice/speech pattern
|
||||
|
||||
---
|
||||
|
||||
## Menu Validation
|
||||
|
||||
### Required Fields
|
||||
|
||||
- [ ] All menu items have `trigger` field
|
||||
- [ ] All menu items have `description` field
|
||||
- [ ] All menu items have handler: `action` (Simple agents don't use `exec`)
|
||||
|
||||
### Trigger Format
|
||||
|
||||
- [ ] Format: `XX or fuzzy match on command-name` (XX = 2-letter code)
|
||||
- [ ] Codes are unique within agent
|
||||
- [ ] No reserved codes used: MH, CH, PM, DA (auto-injected)
|
||||
|
||||
### Description Format
|
||||
|
||||
- [ ] Descriptions start with `[XX]` code
|
||||
- [ ] Code in description matches trigger code
|
||||
- [ ] Descriptions are clear and descriptive
|
||||
|
||||
### Action Handler
|
||||
|
||||
- [ ] If `action: '#prompt-id'`, corresponding prompt exists
|
||||
- [ ] If `action: 'inline text'`, instruction is complete and clear
|
||||
|
||||
---
|
||||
|
||||
## Prompts Validation (if present)
|
||||
|
||||
- [ ] Each prompt has `id` field
|
||||
- [ ] Each prompt has `content` field
|
||||
- [ ] Prompt IDs are unique within agent
|
||||
- [ ] Prompts use semantic XML tags: `<instructions>`, `<process>`, etc.
|
||||
|
||||
---
|
||||
|
||||
## Simple Agent Specific
|
||||
|
||||
- [ ] Single .agent.yaml file (no sidecar folder)
|
||||
- [ ] All content contained in YAML (no external file dependencies)
|
||||
- [ ] No `critical_actions` section (Expert only)
|
||||
- [ ] Total size under ~250 lines (unless justified)
|
||||
- [ ] Compare with reference: `commit-poet.agent.yaml`
|
||||
|
||||
---
|
||||
|
||||
## Path Variables (if used)
|
||||
|
||||
- [ ] Paths use `{project-root}` variable (not hardcoded relative paths)
|
||||
- [ ] No sidecar paths present (Simple agents don't have sidecars)
|
||||
|
||||
---
|
||||
|
||||
## Quality Checks
|
||||
|
||||
- [ ] No broken references or missing files
|
||||
- [ ] Indentation is consistent
|
||||
- [ ] Agent purpose is clear from reading persona
|
||||
- [ ] Agent name/title are descriptive
|
||||
- [ ] Icon emoji is appropriate
|
||||
|
||||
---
|
||||
|
||||
## What the Compiler Adds (DO NOT validate presence)
|
||||
|
||||
These are auto-injected, don't validate for them:
|
||||
- Frontmatter (`---name/description---`)
|
||||
- XML activation block
|
||||
- Menu items: MH (menu/help), CH (chat), PM (party-mode), DA (dismiss/exit)
|
||||
- Rules section
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
### Issue: Communication Style Has Behaviors
|
||||
|
||||
**Wrong:** "Experienced analyst who ensures all stakeholders are heard"
|
||||
|
||||
**Fix:**
|
||||
- identity: "Senior analyst with 8+ years..."
|
||||
- communication_style: "Speaks like a treasure hunter"
|
||||
- principles: "Ensure all stakeholder voices heard"
|
||||
|
||||
### Issue: Wrong Trigger Format
|
||||
|
||||
**Wrong:** `trigger: analyze`
|
||||
|
||||
**Fix:** `trigger: AN or fuzzy match on analyze`
|
||||
|
||||
### Issue: Description Missing Code
|
||||
|
||||
**Wrong:** `description: 'Analyze code'`
|
||||
|
||||
**Fix:** `description: '[AC] Analyze code'`
|
||||
222
_bmad/bmb/workflows/agent/data/understanding-agent-types.md
Normal file
222
_bmad/bmb/workflows/agent/data/understanding-agent-types.md
Normal file
@@ -0,0 +1,222 @@
|
||||
# Understanding Agent Types: Simple VS Expert VS Module
|
||||
|
||||
> **For the LLM running this workflow:** Load and review the example files referenced below when helping users choose an agent type.
|
||||
> - Simple examples: `{workflow_path}/data/reference/simple-examples/commit-poet.agent.yaml`
|
||||
> - Expert examples: `{workflow_path}/data/reference/expert-examples/journal-keeper/`
|
||||
> - Existing Module addition examples: `{workflow_path}/data/reference/module-examples/security-engineer.agent.yaml`
|
||||
|
||||
---
|
||||
|
||||
## What ALL Agent Types Can Do
|
||||
|
||||
All three types have equal capability. The difference is **architecture and integration**, NOT power.
|
||||
|
||||
- Read, write, and update files
|
||||
- Execute commands and invoke tools
|
||||
- Load and use module variables
|
||||
- Optionally restrict file access (privacy/security)
|
||||
- Use core module features: party-mode, agent chat, advanced elicitation, brainstorming, document sharding
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference Decision Tree
|
||||
|
||||
**Step 1: Single Agent or Multiple Agents?**
|
||||
|
||||
```
|
||||
Multiple personas/roles OR multi-user OR mixed data scope?
|
||||
├── YES → Use BMAD Module Builder (create module with multiple agents)
|
||||
└── NO → Single Agent (continue below)
|
||||
```
|
||||
|
||||
**Step 2: Memory Needs (for Single Agent)**
|
||||
|
||||
```
|
||||
Need to remember things across sessions?
|
||||
├── YES → Expert Agent (sidecar with memory)
|
||||
└── NO → Simple Agent (all in one file)
|
||||
```
|
||||
|
||||
**Step 3: Module Integration (applies to BOTH Simple and Expert)**
|
||||
|
||||
```
|
||||
Extending an existing module (BMM/CIS/BMGD/OTHER)?
|
||||
├── YES → Module Agent (your Simple/Expert joins the module)
|
||||
└── NO → Standalone Agent (independent)
|
||||
```
|
||||
|
||||
**Key Point:** Simple and Expert can each be either standalone OR module agents. Memory and module integration are independent decisions.
|
||||
|
||||
---
|
||||
|
||||
## The Three Types
|
||||
|
||||
### Simple Agent
|
||||
|
||||
**Everything in one file. No external dependencies. No memory.**
|
||||
|
||||
```
|
||||
agent-name.agent.yaml (~250 lines max)
|
||||
├── metadata
|
||||
├── persona
|
||||
├── prompts (inline, small)
|
||||
└── menu (triggers → #prompt-id or inline actions)
|
||||
```
|
||||
|
||||
**Choose when:**
|
||||
- Single-purpose utility
|
||||
- Each session is independent (stateless)
|
||||
- All knowledge fits in the YAML
|
||||
- Menu handlers are 5-15 line prompts
|
||||
|
||||
**Examples:**
|
||||
- Commit message helper (conventional commits)
|
||||
- Document formatter/validator
|
||||
- Joke/teller persona agent
|
||||
- Simple data transformation and analysis tools
|
||||
|
||||
**Reference:** `./data/reference/simple-examples/commit-poet.agent.yaml`
|
||||
|
||||
---
|
||||
|
||||
### Expert Agent
|
||||
|
||||
**Sidecar folder with persistent memory, workflows, knowledge files.**
|
||||
|
||||
```
|
||||
agent-name.agent.yaml
|
||||
└── agent-name-sidecar/
|
||||
├── memories.md # User profile, session history, patterns
|
||||
├── instructions.md # Protocols, boundaries, startup behavior
|
||||
├── [custom-files].md # Breakthroughs, goals, tracking, etc.
|
||||
├── workflows/ # Large workflows loaded on demand
|
||||
└── knowledge/ # Domain reference material
|
||||
```
|
||||
|
||||
**Choose when:**
|
||||
- Must remember across sessions
|
||||
- User might create multiple instances each with own memory of actions (such as 2 different developers agents)
|
||||
- Personal knowledge base that grows
|
||||
- Learning/evolving over time
|
||||
- Domain-specific with restricted file access
|
||||
- Complex multi-step workflows
|
||||
|
||||
**Examples:**
|
||||
- Journal companion (remembers mood patterns, past entries)
|
||||
- Personal job augmentation agent (knows your role, meetings, projects)
|
||||
- Therapy/health tracking (progress, goals, insights)
|
||||
- Domain advisor with custom knowledge base
|
||||
|
||||
**Reference:** `./data/reference/expert-examples/journal-keeper/`
|
||||
|
||||
**Required critical_actions:**
|
||||
```yaml
|
||||
critical_actions:
|
||||
- "Load COMPLETE file ./sidecar/memories.md"
|
||||
- "Load COMPLETE file ./sidecar/instructions.md"
|
||||
- "ONLY read/write files in ./sidecar/ - private space"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Module Agent
|
||||
|
||||
Two distinct purposes:
|
||||
|
||||
#### 1. Extend an Existing Module
|
||||
|
||||
Add an agent to BMM, CIS, BMGD, or another existing module.
|
||||
|
||||
**Choose when:**
|
||||
- Adding specialized capability to existing module ecosystem
|
||||
- Agent uses/contributes shared module workflows
|
||||
- Coordinates with other agents in the module
|
||||
- Input/output dependencies on other module agents
|
||||
|
||||
**Example:** Adding `security-engineer.agent.yaml` to BMM (software dev module)
|
||||
- Requires architecture document from BMM architect agent
|
||||
- Contributes security review workflow to BMM
|
||||
- Coordinates with analyst, pm, architect, dev agents
|
||||
|
||||
**Reference:** `./data/reference/module-examples/security-engineer.agent.yaml`
|
||||
|
||||
#### 2. Signal Need for Custom Module
|
||||
|
||||
When requirements exceed single-agent scope, suggest the user **use BMAD Module Builder** instead.
|
||||
|
||||
**Signals:**
|
||||
- "I need an HR agent, sales agent, F&I agent, and training coach..."
|
||||
- "Some info is global/shared across users, some is private per user..."
|
||||
- "Many workflows, skills, tools, and platform integrations..."
|
||||
|
||||
**Example:** Car Dealership Module
|
||||
- Multiple specialized agents (sales-trainer, service-advisor, sales-manager, F&I)
|
||||
- Shared workflows (VIN lookup, vehicle research)
|
||||
- Global knowledge base + per-user private sidecars
|
||||
- Multi-user access patterns
|
||||
|
||||
**→ Use BMAD Module Builder workflow to create the module, then create individual agents within it.**
|
||||
|
||||
---
|
||||
|
||||
## Side-by-Side Comparison
|
||||
|
||||
| Aspect | Simple | Expert |
|
||||
| ----------------- | ------------------------ | ------------------------------ |
|
||||
| File structure | Single YAML (~250 lines) | YAML + sidecar/ (150+ + files) |
|
||||
| Persistent memory | No | Yes |
|
||||
| Custom workflows | Inline prompts | Sidecar workflows (on-demand) |
|
||||
| File access | Project/output | Restricted domain |
|
||||
| Integration | Standalone OR Module | Standalone OR Module |
|
||||
|
||||
**Note:** BOTH Simple and Expert can be either standalone agents OR module agents (extending BMM/CIS/BMGD/etc.). Module integration is independent of memory needs.
|
||||
|
||||
---
|
||||
|
||||
## Selection Checklist
|
||||
|
||||
**Choose Simple if:**
|
||||
- [ ] One clear purpose
|
||||
- [ ] No need to remember past sessions
|
||||
- [ ] All logic fits in ~250 lines
|
||||
- [ ] Each interaction is independent
|
||||
|
||||
**Choose Expert if:**
|
||||
- [ ] Needs memory across sessions
|
||||
- [ ] Personal knowledge base
|
||||
- [ ] Domain-specific expertise
|
||||
- [ ] Restricted file access for privacy
|
||||
- [ ] Learning/evolving over time
|
||||
- [ ] Complex workflows in sidecar
|
||||
|
||||
**Then, for EITHER Simple or Expert:**
|
||||
- [ ] Extending existing module (BMM/CIS/BMGD/etc.) → Make it a Module Agent
|
||||
- [ ] Independent operation → Keep it Standalone
|
||||
|
||||
**Escalate to Module Builder if:**
|
||||
- [ ] Multiple distinct personas needed (not one swiss-army-knife agent)
|
||||
- [ ] Many specialized workflows required
|
||||
- [ ] Multiple users with mixed data scope
|
||||
- [ ] Shared resources across agents
|
||||
- [ ] Future platform integrations planned
|
||||
|
||||
---
|
||||
|
||||
## Tips for the LLM Facilitator
|
||||
|
||||
- If unsure between Simple or Expert → **recommend Expert** (more flexible)
|
||||
- Multiple personas/skills → **suggest Module Builder**, not one giant agent
|
||||
- Ask about: memory needs, user count, data scope (global vs private), integration plans
|
||||
- Load example files when user wants to see concrete implementations
|
||||
- Reference examples to illustrate differences
|
||||
|
||||
---
|
||||
|
||||
## Architecture Notes
|
||||
|
||||
All three types are equally powerful. The difference is:
|
||||
- **How they manage state** (memory vs stateless)
|
||||
- **Where they store data** (inline vs sidecar vs module)
|
||||
- **How they integrate** (standalone vs module ecosystem)
|
||||
|
||||
Choose based on architecture needs, not capability limits.
|
||||
128
_bmad/bmb/workflows/agent/steps-c/step-01-brainstorm.md
Normal file
128
_bmad/bmb/workflows/agent/steps-c/step-01-brainstorm.md
Normal file
@@ -0,0 +1,128 @@
|
||||
---
|
||||
name: 'step-01-brainstorm'
|
||||
description: 'Optional brainstorming for agent ideas'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-02-discovery.md'
|
||||
brainstormContext: ../data/brainstorm-context.md
|
||||
brainstormWorkflow: '{project-root}/_bmad/core/workflows/brainstorming/workflow.md'
|
||||
---
|
||||
|
||||
# Step 1: Optional Brainstorming
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Optional creative exploration to generate agent ideas through structured brainstorming before proceeding to agent discovery and development.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are a creative facilitator who helps users explore agent possibilities
|
||||
- ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
|
||||
- ✅ We engage in collaborative dialogue, not command-response
|
||||
- ✅ You bring creative brainstorming expertise, user brings their goals and domain knowledge, together we explore innovative agent concepts
|
||||
- ✅ Maintain collaborative inspiring tone throughout
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Present brainstorming as optional first step with clear benefits
|
||||
- 💾 Preserve brainstorming output for reference in subsequent steps
|
||||
- 📖 Use brainstorming workflow when user chooses to participate
|
||||
- 🚫 FORBIDDEN to proceed without clear user choice
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Available context: User is starting agent creation workflow
|
||||
- Focus: Offer optional creative exploration before formal discovery
|
||||
- Limits: No mandatory brainstorming, no pressure tactics
|
||||
- Dependencies: User choice to participate or skip brainstorming
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Present Brainstorming Opportunity
|
||||
|
||||
Present this to the user:
|
||||
|
||||
"Would you like to brainstorm agent ideas first? This can help spark creativity and explore possibilities you might not have considered yet.
|
||||
|
||||
**Benefits of brainstorming:**
|
||||
|
||||
- Generate multiple agent concepts quickly
|
||||
- Explore different use cases and approaches
|
||||
- Discover unique combinations of capabilities
|
||||
- Get inspired by creative prompts
|
||||
|
||||
**Skip if you already have a clear agent concept in mind!**
|
||||
|
||||
This step is completely optional - you can move directly to agent discovery if you already know what you want to build.
|
||||
|
||||
Would you like to brainstorm? [y/n]"
|
||||
|
||||
Wait for clear user response (yes/no or y/n).
|
||||
|
||||
### 2. Handle User Choice
|
||||
|
||||
**If user answers yes:**
|
||||
|
||||
- Load brainstorming workflow: `{brainstormWorkflow}` passing to the workflow the `{brainstormContext}` guidance
|
||||
- Execute brainstorming session scoped specifically utilizing the brainstormContext to guide the scope and outcome
|
||||
- Capture all brainstorming output for next step
|
||||
- Return to this step after brainstorming completes
|
||||
|
||||
**If user answers no:**
|
||||
|
||||
- Acknowledge their choice respectfully
|
||||
- Proceed directly to menu options
|
||||
|
||||
### 3. Present MENU OPTIONS
|
||||
|
||||
Display: "Are you ready to [C] Continue to Discovery?"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF C: Load, read entire file, then execute {nextStepFile}
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [user choice regarding brainstorming handled], will you then load and read fully `{nextStepFile}` to execute and begin agent discovery.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- User understands brainstorming is optional
|
||||
- User choice (yes/no) clearly obtained and respected
|
||||
- Brainstorming workflow executes correctly when chosen
|
||||
- Brainstorming output preserved when generated
|
||||
- Menu presented and user input handled correctly
|
||||
- Smooth transition to agent discovery phase
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Making brainstorming mandatory or pressuring user
|
||||
- Proceeding without clear user choice on brainstorming
|
||||
- Not preserving brainstorming output when generated
|
||||
- Failing to execute brainstorming workflow when chosen
|
||||
- Not respecting user's choice to skip brainstorming
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
170
_bmad/bmb/workflows/agent/steps-c/step-02-discovery.md
Normal file
170
_bmad/bmb/workflows/agent/steps-c/step-02-discovery.md
Normal file
@@ -0,0 +1,170 @@
|
||||
---
|
||||
name: 'step-02-discovery'
|
||||
description: 'Discover what user wants holistically'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-03-type-metadata.md'
|
||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||
brainstormContext: ../data/brainstorm-context.md
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# STEP GOAL
|
||||
|
||||
Conduct holistic discovery of what the user wants to create, documenting a comprehensive agent plan that serves as the single source of truth for all subsequent workflow steps. This is THE discovery moment - capture everything now so we don't re-ask later.
|
||||
|
||||
# MANDATORY EXECUTION RULES
|
||||
|
||||
1. **ONE-TIME DISCOVERY:** This is the only discovery step. Capture everything now.
|
||||
2. **PLAN IS SOURCE OF TRUTH:** Document to agentPlan file - all later steps reference this plan.
|
||||
3. **NO RE-ASKING:** Later steps MUST read from plan, not re-ask questions.
|
||||
4. **REFERENCE BRAINSTORM:** If brainstorming occurred in step-01, integrate those results.
|
||||
5. **STRUCTURED OUTPUT:** Plan must follow Purpose, Goals, Capabilities, Context, Users structure.
|
||||
6. **LANGUAGE ALIGNMENT:** Continue using {language} if configured in step-01.
|
||||
|
||||
# EXECUTION PROTOCOLS
|
||||
|
||||
## Protocol 1: Check for Previous Context
|
||||
|
||||
Before starting discovery:
|
||||
- Check if brainstormContext file exists
|
||||
- If yes, read and reference those results
|
||||
- Integrate brainstorming insights into conversation naturally
|
||||
|
||||
## Protocol 2: Discovery Conversation
|
||||
|
||||
Guide the user through holistic discovery covering:
|
||||
|
||||
1. **Purpose:** What problem does this agent solve? Why does it need to exist?
|
||||
2. **Goals:** What should this agent accomplish? What defines success?
|
||||
3. **Capabilities:** What specific abilities should it have? What tools/skills?
|
||||
4. **Context:** Where will it be used? What's the environment/setting?
|
||||
5. **Users:** Who will use this agent? What's their skill level?
|
||||
|
||||
Use conversational exploration:
|
||||
- Ask open-ended questions
|
||||
- Probe deeper on important aspects
|
||||
- Validate understanding
|
||||
- Uncover implicit requirements
|
||||
|
||||
## Protocol 3: Documentation
|
||||
|
||||
Document findings to agentPlan file using this structure:
|
||||
|
||||
```markdown
|
||||
# Agent Plan: {agent_name}
|
||||
|
||||
## Purpose
|
||||
[Clear, concise statement of why this agent exists]
|
||||
|
||||
## Goals
|
||||
- [Primary goal 1]
|
||||
- [Primary goal 2]
|
||||
- [Secondary goals as needed]
|
||||
|
||||
## Capabilities
|
||||
- [Core capability 1]
|
||||
- [Core capability 2]
|
||||
- [Additional capabilities with tools/skills]
|
||||
|
||||
## Context
|
||||
[Deployment environment, use cases, constraints]
|
||||
|
||||
## Users
|
||||
- [Target audience description]
|
||||
- [Skill level assumptions]
|
||||
- [Usage patterns]
|
||||
```
|
||||
|
||||
## Protocol 4: Completion Menu
|
||||
|
||||
After documentation, present menu:
|
||||
|
||||
**[A]dvanced Discovery** - Invoke advanced-elicitation task for deeper exploration
|
||||
**[P]arty Mode** - Invoke party-mode workflow for creative ideation
|
||||
**[C]ontinue** - Proceed to next step (type-metadata)
|
||||
|
||||
# CONTEXT BOUNDARIES
|
||||
|
||||
**DISCOVER:**
|
||||
- Agent purpose and problem domain
|
||||
- Success metrics and goals
|
||||
- Required capabilities and tools
|
||||
- Usage context and environment
|
||||
- Target users and skill levels
|
||||
|
||||
**DO NOT DISCOVER:**
|
||||
- Technical implementation details (later steps)
|
||||
- Exact persona traits (next step)
|
||||
- Command structures (later step)
|
||||
- Name/branding (later step)
|
||||
- Validation criteria (later step)
|
||||
|
||||
**KEEP IN SCOPE:**
|
||||
- Holistic understanding of what to build
|
||||
- Clear articulation of value proposition
|
||||
- Comprehensive capability mapping
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
1. **Load Previous Context**
|
||||
- Check for brainstormContext file
|
||||
- Read if exists, note integration points
|
||||
|
||||
2. **Start Discovery Conversation**
|
||||
- Reference brainstorming results if available
|
||||
- "Let's discover what you want to create..."
|
||||
- Explore purpose, goals, capabilities, context, users
|
||||
|
||||
3. **Document Plan**
|
||||
- Create agentPlan file
|
||||
- Structure with Purpose, Goals, Capabilities, Context, Users
|
||||
- Ensure completeness and clarity
|
||||
|
||||
4. **Present Completion Menu**
|
||||
- Show [A]dvanced Discovery option
|
||||
- Show [P]arty Mode option
|
||||
- Show [C]ontinue to next step
|
||||
- Await user selection
|
||||
|
||||
5. **Handle Menu Choice**
|
||||
- If A: Invoke advanced-elicitation task, then re-document
|
||||
- If P: Invoke party-mode workflow, then re-document
|
||||
- If C: Proceed to step-03-type-metadata
|
||||
|
||||
# CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
**THIS STEP IS COMPLETE WHEN:**
|
||||
- agentPlan file exists with complete structure
|
||||
- All five sections (Purpose, Goals, Capabilities, Context, Users) populated
|
||||
- User confirms accuracy via menu selection
|
||||
- Either continuing to next step or invoking optional workflows
|
||||
|
||||
**BEFORE PROCEEDING:**
|
||||
- Verify plan file is readable
|
||||
- Ensure content is sufficient for subsequent steps
|
||||
- Confirm user is satisfied with discoveries
|
||||
|
||||
# SUCCESS METRICS
|
||||
|
||||
**SUCCESS:**
|
||||
- agentPlan file created with all required sections
|
||||
- User has provided clear, actionable requirements
|
||||
- Plan contains sufficient detail for persona, commands, and name steps
|
||||
- User explicitly chooses to continue or invokes optional workflow
|
||||
|
||||
**FAILURE:**
|
||||
- Unable to extract coherent purpose or goals
|
||||
- User cannot articulate basic requirements
|
||||
- Plan sections remain incomplete or vague
|
||||
- User requests restart
|
||||
|
||||
**RECOVERY:**
|
||||
- If requirements unclear, use advanced-elicitation task
|
||||
- If user stuck, offer party-mode for creative exploration
|
||||
- If still unclear, suggest revisiting brainstorming step
|
||||
296
_bmad/bmb/workflows/agent/steps-c/step-03-type-metadata.md
Normal file
296
_bmad/bmb/workflows/agent/steps-c/step-03-type-metadata.md
Normal file
@@ -0,0 +1,296 @@
|
||||
---
|
||||
name: 'step-03-type-metadata'
|
||||
description: 'Determine agent type and define metadata'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-04-persona.md'
|
||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||
agentTypesDoc: ../data/understanding-agent-types.md
|
||||
agentMetadata: ../data/agent-metadata.md
|
||||
|
||||
# Example Agents (for reference)
|
||||
simpleExample: ../data/reference/simple-examples/commit-poet.agent.yaml
|
||||
expertExample: ../data/reference/expert-examples/journal-keeper/journal-keeper.agent.yaml
|
||||
moduleExample: ../data/reference/module-examples/security-engineer.agent.yaml
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# STEP GOAL
|
||||
|
||||
Determine the agent's classification (Simple/Expert/Module) and define all mandatory metadata properties required for agent configuration. Output structured YAML to the agent plan file for downstream consumption.
|
||||
|
||||
---
|
||||
|
||||
# MANDATORY EXECUTION RULES
|
||||
|
||||
## Universal Rules
|
||||
- ALWAYS use `{communication_language}` for all conversational text
|
||||
- MAINTAIN step boundaries - complete THIS step only
|
||||
- DOCUMENT all decisions to agent plan file
|
||||
- HONOR user's creative control throughout
|
||||
|
||||
## Role Reinforcement
|
||||
You ARE a master agent architect guiding collaborative agent creation. Balance:
|
||||
- Technical precision in metadata definition
|
||||
- Creative exploration of agent possibilities
|
||||
- Clear documentation for downstream steps
|
||||
|
||||
## Step-Specific Rules
|
||||
- LOAD and reference agentTypesDoc and agentMetadata before conversations
|
||||
- NEVER skip metadata properties - all are mandatory
|
||||
- VALIDATE type selection against user's articulated needs
|
||||
- OUTPUT structured YAML format exactly as specified
|
||||
- SHOW examples when type classification is unclear
|
||||
|
||||
---
|
||||
|
||||
# EXECUTION PROTOCOLS
|
||||
|
||||
## Protocol 1: Documentation Foundation
|
||||
Load reference materials first:
|
||||
1. Read agentTypesDoc for classification criteria
|
||||
2. Read agentMetadata for property definitions
|
||||
3. Keep examples ready for illustration
|
||||
|
||||
## Protocol 2: Purpose Discovery
|
||||
Guide natural conversation to uncover:
|
||||
- Primary agent function/responsibility
|
||||
- Complexity level (single task vs multi-domain)
|
||||
- Scope boundaries (standalone vs manages workflows)
|
||||
- Integration needs (other agents/workflows)
|
||||
|
||||
## Protocol 3: Type Determination
|
||||
Classify based on criteria:
|
||||
- **Simple**: Single focused purpose, minimal complexity (e.g., code reviewer, documentation generator)
|
||||
- **Expert**: Advanced domain expertise, multi-capability, manages complex tasks (e.g., game architect, system designer)
|
||||
- **Module**: Agent builder/manager, creates workflows, deploys other agents (e.g., agent-builder, workflow-builder)
|
||||
|
||||
## Protocol 4: Metadata Definition
|
||||
Define each property systematically:
|
||||
- **id**: Technical identifier (lowercase, hyphens, no spaces)
|
||||
- **name**: Display name (conventional case, clear branding)
|
||||
- **title**: Concise function description (one line, action-oriented)
|
||||
- **icon**: Visual identifier (emoji or short symbol)
|
||||
- **module**: Module path (format: `{project}:{type}:{name}`)
|
||||
- **hasSidecar**: Boolean - manages external workflows? (default: false)
|
||||
|
||||
## Protocol 5: Documentation Structure
|
||||
Output to agent plan file in exact YAML format:
|
||||
|
||||
```yaml
|
||||
# Agent Type & Metadata
|
||||
agent_type: [Simple|Expert|Module]
|
||||
classification_rationale: |
|
||||
|
||||
metadata:
|
||||
id: [technical-identifier]
|
||||
name: [Display Name]
|
||||
title: [One-line action description]
|
||||
icon: [emoji-or-symbol]
|
||||
module: [project:type:name]
|
||||
hasSidecar: [true|false]
|
||||
```
|
||||
|
||||
## Protocol 6: Confirmation Menu
|
||||
Present structured options:
|
||||
- **[A] Accept** - Confirm and advance to next step
|
||||
- **[P] Pivot** - Modify type/metadata choices
|
||||
- **[C] Clarify** - Ask questions about classification
|
||||
|
||||
---
|
||||
|
||||
# CONTEXT BOUNDARIES
|
||||
|
||||
## In Scope
|
||||
- Agent type classification
|
||||
- All 6 metadata properties
|
||||
- Documentation to plan file
|
||||
- Type selection guidance with examples
|
||||
|
||||
## Out of Scope (Future Steps)
|
||||
- Persona/character development (Step 3)
|
||||
- Command structure design (Step 4)
|
||||
- Agent naming/branding refinement (Step 5)
|
||||
- Implementation/build (Step 6)
|
||||
- Validation/testing (Step 7)
|
||||
|
||||
## Red Flags to Address
|
||||
- User wants complex agent but selects "Simple" type
|
||||
- Module classification without workflow management needs
|
||||
- Missing or unclear metadata properties
|
||||
- Module path format confusion
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
## 1. Load Documentation
|
||||
Read and internalize:
|
||||
- `{agentTypesDoc}` - Classification framework
|
||||
- `{agentMetadata}` - Property definitions
|
||||
- Keep examples accessible for reference
|
||||
|
||||
## 2. Purpose Discovery Conversation
|
||||
Engage user with questions in `{communication_language}`:
|
||||
- "What is the primary function this agent will perform?"
|
||||
- "How complex are the tasks this agent will handle?"
|
||||
- "Will this agent need to manage workflows or other agents?"
|
||||
- "What specific domains or expertise areas are involved?"
|
||||
|
||||
Listen for natural language cues about scope and complexity.
|
||||
|
||||
## 3. Agent Type Determination
|
||||
Based on discovery, propose classification:
|
||||
- Present recommended type with reasoning
|
||||
- Show relevant example if helpful
|
||||
- Confirm classification matches user intent
|
||||
- Allow pivoting if user vision evolves
|
||||
|
||||
**Conversation Template:**
|
||||
```
|
||||
Based on our discussion, I recommend classifying this as a [TYPE] agent because:
|
||||
[reasoning from discovery]
|
||||
|
||||
[If helpful: "For reference, here's a similar [TYPE] agent:"]
|
||||
[Show relevant example path: simpleExample/expertExample/moduleExample]
|
||||
|
||||
Does this classification feel right to you?
|
||||
```
|
||||
|
||||
## 4. Define All Metadata Properties
|
||||
Work through each property systematically:
|
||||
|
||||
**4a. Agent ID**
|
||||
- Technical identifier for file naming
|
||||
- Format: lowercase, hyphens, no spaces
|
||||
- Example: `code-reviewer`, `journal-keeper`, `security-engineer`
|
||||
- User confirms or modifies
|
||||
|
||||
**4b. Agent Name**
|
||||
- Display name for branding/UX
|
||||
- Conventional case, memorable
|
||||
- Example: `Code Reviewer`, `Journal Keeper`, `Security Engineer`
|
||||
- May differ from id (kebab-case vs conventional case)
|
||||
|
||||
**4c. Agent Title**
|
||||
- Concise action description
|
||||
- One line, captures primary function
|
||||
- Example: `Reviews code quality and test coverage`, `Manages daily journal entries`
|
||||
- Clear and descriptive
|
||||
|
||||
**4d. Icon Selection**
|
||||
- Visual identifier for UI/branding
|
||||
- Emoji or short symbol
|
||||
- Example: `🔍`, `📓`, `🛡️`
|
||||
- Should reflect agent function
|
||||
|
||||
**4e. Module Path**
|
||||
- Complete module identifier
|
||||
- Format: `{project}:{type}:{name}`
|
||||
- Example: `bmb:agents:code-reviewer`
|
||||
- Guide user through structure if unfamiliar
|
||||
|
||||
**4f. Sidecar Configuration**
|
||||
- Boolean: manages external workflows?
|
||||
- Typically false for Simple/Expert agents
|
||||
- True for Module agents that deploy workflows
|
||||
- Confirm based on user's integration needs
|
||||
|
||||
**Conversation Template:**
|
||||
```
|
||||
Now let's define each metadata property:
|
||||
|
||||
**ID (technical identifier):** [proposed-id]
|
||||
**Name (display name):** [Proposed Name]
|
||||
**Title (function description):** [Action description for function]
|
||||
**Icon:** [emoji/symbol]
|
||||
**Module path:** [project:type:name]
|
||||
**Has Sidecar:** [true/false with brief explanation]
|
||||
|
||||
[Show structured preview]
|
||||
|
||||
Ready to confirm, or should we adjust any properties?
|
||||
```
|
||||
|
||||
## 5. Document to Plan File
|
||||
Write to `{agentPlan}`:
|
||||
|
||||
```yaml
|
||||
# Agent Type & Metadata
|
||||
agent_type: [Simple|Expert|Module]
|
||||
classification_rationale: |
|
||||
[Clear explanation of why this type matches user's articulated needs]
|
||||
|
||||
metadata:
|
||||
id: [technical-identifier]
|
||||
name: [Display Name]
|
||||
title: [One-line action description]
|
||||
icon: [emoji-or-symbol]
|
||||
module: [project:type:name]
|
||||
hasSidecar: [true|false]
|
||||
|
||||
# Type Classification Notes
|
||||
type_decision_date: [YYYY-MM-DD]
|
||||
type_confidence: [High/Medium/Low]
|
||||
considered_alternatives: |
|
||||
- [Alternative type]: [reason not chosen]
|
||||
- [Alternative type]: [reason not chosen]
|
||||
```
|
||||
|
||||
### 6. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save content to {agentPlan}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [agent type classified and all 6 metadata properties defined and documented], will you then load and read fully `{nextStepFile}` to execute and begin persona development.
|
||||
|
||||
---
|
||||
|
||||
# SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
## Success Indicators
|
||||
- Type classification clearly justified
|
||||
- All metadata properties populated correctly
|
||||
- YAML structure matches specification exactly
|
||||
- User confirms understanding and acceptance
|
||||
- Agent plan file updated successfully
|
||||
|
||||
## Failure Indicators
|
||||
- Missing or undefined metadata properties
|
||||
- YAML structure malformed
|
||||
- User confusion about type classification
|
||||
- Inadequate documentation to plan file
|
||||
- Proceeding without user confirmation
|
||||
|
||||
## Recovery Mode
|
||||
If user struggles with classification:
|
||||
- Show concrete examples from each type
|
||||
- Compare/contrast types with their use case
|
||||
- Ask targeted questions about complexity/scope
|
||||
- Offer type recommendation with clear reasoning
|
||||
|
||||
Recover metadata definition issues by:
|
||||
- Showing property format examples
|
||||
- Explaining technical vs display naming
|
||||
- Clarifying module path structure
|
||||
- Defining sidecar use cases
|
||||
212
_bmad/bmb/workflows/agent/steps-c/step-04-persona.md
Normal file
212
_bmad/bmb/workflows/agent/steps-c/step-04-persona.md
Normal file
@@ -0,0 +1,212 @@
|
||||
---
|
||||
name: 'step-04-persona'
|
||||
description: 'Shape the agent personality through four-field persona system'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-05-commands-menu.md'
|
||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||
personaProperties: ../data/persona-properties.md
|
||||
principlesCrafting: ../data/principles-crafting.md
|
||||
communicationPresets: ../data/communication-presets.csv
|
||||
|
||||
# Example Personas (for reference)
|
||||
simpleExample: ../data/reference/simple-examples/commit-poet.agent.yaml
|
||||
expertExample: ../data/reference/expert-examples/journal-keeper/journal-keeper.agent.yaml
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# STEP GOAL
|
||||
|
||||
Develop a complete four-field persona that defines the agent's personality, expertise, communication approach, and guiding principles. This persona becomes the foundation for how the agent thinks, speaks, and makes decisions.
|
||||
|
||||
# MANDATORY EXECUTION RULES
|
||||
|
||||
**CRITICAL: Field Purity Enforcement**
|
||||
- Each persona field has ONE specific purpose
|
||||
- NO mixing concepts between fields
|
||||
- NO overlapping responsibilities
|
||||
- Every field must be distinct and non-redundant
|
||||
|
||||
**Output Requirements:**
|
||||
- Produce structured YAML block ready for agent.yaml
|
||||
- Follow principles-crafting guidance exactly
|
||||
- First principle MUST be the "expert activator"
|
||||
- All fields must be populated before proceeding
|
||||
|
||||
# EXECUTION PROTOCOLS
|
||||
|
||||
## Protocol 1: Load Reference Materials
|
||||
|
||||
Read and integrate:
|
||||
- `personaProperties.md` - Field definitions and boundaries
|
||||
- `principlesCrafting.md` - Principles composition guidance
|
||||
- `communicationPresets.csv` - Style options and templates
|
||||
- Reference examples for pattern recognition
|
||||
|
||||
## Protocol 2: Four-Field System Education
|
||||
|
||||
Explain each field clearly:
|
||||
|
||||
**1. Role (WHAT they do)**
|
||||
- Professional identity and expertise domain
|
||||
- Capabilities and knowledge areas
|
||||
- NOT personality or communication style
|
||||
- Pure functional definition
|
||||
|
||||
**2. Identity (WHO they are)**
|
||||
- Character, personality, attitude
|
||||
- Emotional intelligence and worldview
|
||||
- NOT job description or communication format
|
||||
- Pure personality definition
|
||||
|
||||
**3. Communication Style (HOW they speak)**
|
||||
- Language patterns, tone, voice
|
||||
- Formality, verbosity, linguistic preferences
|
||||
- NOT expertise or personality traits
|
||||
- Pure expression definition
|
||||
|
||||
**4. Principles (WHY they act)**
|
||||
- Decision-making framework and values
|
||||
- Behavioral constraints and priorities
|
||||
- First principle = expert activator (core mission)
|
||||
- Pure ethical/operational definition
|
||||
|
||||
## Protocol 3: Progressive Field Development
|
||||
|
||||
### 3.1 Role Development
|
||||
- Define primary expertise domain
|
||||
- Specify capabilities and knowledge areas
|
||||
- Identify what makes them an "expert"
|
||||
- Keep it functional, not personal
|
||||
|
||||
**Role Quality Checks:**
|
||||
- Can I describe their job without personality?
|
||||
- Would this fit in a job description?
|
||||
- Is it purely about WHAT they do?
|
||||
|
||||
### 3.2 Identity Development
|
||||
- Define personality type and character
|
||||
- Establish emotional approach
|
||||
- Set worldview and attitude
|
||||
- Keep it personal, not functional
|
||||
|
||||
**Identity Quality Checks:**
|
||||
- Can I describe their character without job title?
|
||||
- Would this fit in a character profile?
|
||||
- Is it purely about WHO they are?
|
||||
|
||||
### 3.3 Communication Style Development
|
||||
- Review preset options from CSV
|
||||
- Select or customize style pattern
|
||||
- Define tone, formality, voice
|
||||
- Set linguistic preferences
|
||||
|
||||
**Communication Quality Checks:**
|
||||
- Can I describe their speech patterns without expertise?
|
||||
- Is it purely about HOW they express themselves?
|
||||
- Would this fit in a voice acting script?
|
||||
|
||||
### 3.4 Principles Development
|
||||
Follow `principlesCrafting.md` guidance:
|
||||
1. **Principle 1: Expert Activator** - Core mission and primary directive
|
||||
2. **Principle 2-5: Decision Framework** - Values that guide choices
|
||||
3. **Principle 6+: Behavioral Constraints** - Operational boundaries
|
||||
|
||||
**Principles Quality Checks:**
|
||||
- Does first principle activate expertise immediately?
|
||||
- Do principles create decision-making clarity?
|
||||
- Would following these produce the desired behavior?
|
||||
|
||||
## Protocol 4: Structured YAML Generation
|
||||
|
||||
Output the four-field persona in this exact format:
|
||||
|
||||
```yaml
|
||||
role: >
|
||||
[Single sentence defining expertise and capabilities]
|
||||
|
||||
identity: >
|
||||
[2-3 sentences describing personality and character]
|
||||
|
||||
communication_style: >
|
||||
[Specific patterns for tone, formality, and voice]
|
||||
|
||||
principles:
|
||||
- [Expert activator - core mission]
|
||||
- [Decision framework value 1]
|
||||
- [Decision framework value 2]
|
||||
- [Behavioral constraint 1]
|
||||
- [Behavioral constraint 2]
|
||||
```
|
||||
|
||||
# CONTEXT BOUNDARIES
|
||||
|
||||
**Include in Persona:**
|
||||
- Professional expertise and capabilities (role)
|
||||
- Personality traits and character (identity)
|
||||
- Language patterns and tone (communication)
|
||||
- Decision-making values (principles)
|
||||
|
||||
**Exclude from Persona:**
|
||||
- Technical skills (belongs in knowledge)
|
||||
- Tool usage (belongs in commands)
|
||||
- Workflow steps (belongs in orchestration)
|
||||
- Data structures (belongs in implementation)
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
1. **LOAD** personaProperties.md and principlesCrafting.md
|
||||
2. **EXPLAIN** four-field system with clear examples
|
||||
3. **DEVELOP** Role - define expertise domain and capabilities
|
||||
4. **DEVELOP** Identity - establish personality and character
|
||||
5. **DEVELOP** Communication Style - select/customize style preset
|
||||
6. **DEVELOP** Principles - craft 5-7 principles following guidance
|
||||
7. **OUTPUT** structured YAML block for agent.yaml
|
||||
8. **DOCUMENT** to agent-plan.md
|
||||
9. **PRESENT** completion menu
|
||||
|
||||
## 9. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
|
||||
|
||||
### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save content to {agentPlan}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#9-present-menu-options)
|
||||
|
||||
### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [all four persona fields populated with DISTINCT content and field purity verified], will you then load and read fully `{nextStepFile}` to execute and begin command structure design.
|
||||
|
||||
---
|
||||
|
||||
# SUCCESS METRICS
|
||||
|
||||
**Completion Indicators:**
|
||||
- Four distinct, non-overlapping persona fields
|
||||
- First principle activates expert capabilities
|
||||
- Communication style is specific and actionable
|
||||
- YAML structure is valid and ready for agent.yaml
|
||||
- User confirms persona accurately reflects vision
|
||||
|
||||
**Failure Indicators:**
|
||||
- Role includes personality traits
|
||||
- Identity includes job descriptions
|
||||
- Communication includes expertise details
|
||||
- Principles lack expert activator
|
||||
- Fields overlap or repeat concepts
|
||||
- User expresses confusion or disagreement
|
||||
178
_bmad/bmb/workflows/agent/steps-c/step-05-commands-menu.md
Normal file
178
_bmad/bmb/workflows/agent/steps-c/step-05-commands-menu.md
Normal file
@@ -0,0 +1,178 @@
|
||||
---
|
||||
name: 'step-05-commands-menu'
|
||||
description: 'Build capabilities and command structure'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-06-activation.md'
|
||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||
agentMenuPatterns: ../data/agent-menu-patterns.md
|
||||
|
||||
# Example Menus (for reference)
|
||||
simpleExample: ../data/reference/simple-examples/commit-poet.agent.yaml
|
||||
expertExample: ../data/reference/expert-examples/journal-keeper/journal-keeper.agent.yaml
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# STEP GOAL
|
||||
|
||||
Transform discovered capabilities into structured menu commands following BMAD menu patterns, creating the agent's interaction interface.
|
||||
|
||||
# MANDATORY EXECUTION RULES
|
||||
|
||||
1. **MUST** load agent-menu-patterns.md before any conversation
|
||||
2. **MUST** use menu patterns as structural templates
|
||||
3. **MUST** keep final menu YAML under 100 lines
|
||||
4. **MUST** include trigger, description, and handler/action for each command
|
||||
5. **MUST NOT** add help or exit commands (auto-injected)
|
||||
6. **MUST** document menu YAML in agent-plan before completion
|
||||
7. **MUST** complete Menu [A][P][C] verification
|
||||
|
||||
# EXECUTION PROTOCOLS
|
||||
|
||||
## Load Menu Patterns
|
||||
|
||||
Read agentMenuPatterns file to understand:
|
||||
- Command structure requirements
|
||||
- YAML formatting standards
|
||||
- Handler/action patterns
|
||||
- Best practices for menu design
|
||||
|
||||
## Capability Discovery Conversation
|
||||
|
||||
Guide collaborative conversation to:
|
||||
1. Review capabilities from previous step
|
||||
2. Identify which capabilities become commands
|
||||
3. Group related capabilities
|
||||
4. Define command scope and boundaries
|
||||
|
||||
Ask targeted questions:
|
||||
- "Which capabilities are primary commands vs secondary actions?"
|
||||
- "Can related capabilities be grouped under single commands?"
|
||||
- "What should each command accomplish?"
|
||||
- "How should commands be triggered?"
|
||||
|
||||
## Command Structure Development
|
||||
|
||||
For each command, define:
|
||||
|
||||
1. **Trigger** - User-facing command name
|
||||
- Clear, intuitive, following naming conventions
|
||||
- Examples: `/analyze`, `/create`, `/review`
|
||||
|
||||
2. **Description** - What the command does
|
||||
- Concise (one line preferred)
|
||||
- Clear value proposition
|
||||
- Examples: "Analyze code for issues", "Create new document"
|
||||
|
||||
3. **Handler/Action** - How command executes
|
||||
- Reference to specific capability or skill
|
||||
- Include parameters if needed
|
||||
- Follow pattern from agent-menu-patterns.md
|
||||
|
||||
## Structure Best Practices
|
||||
|
||||
- **Group related commands** logically
|
||||
- **Prioritize frequently used** commands early
|
||||
- **Use clear, action-oriented** trigger names
|
||||
- **Keep descriptions** concise and valuable
|
||||
- **Match handler names** to actual capabilities
|
||||
|
||||
## Document Menu YAML
|
||||
|
||||
Create structured menu YAML following format from agent-menu-patterns.md:
|
||||
|
||||
```yaml
|
||||
menu:
|
||||
commands:
|
||||
- trigger: "/command-name"
|
||||
description: "Clear description of what command does"
|
||||
handler: "specific_capability_or_skill"
|
||||
parameters:
|
||||
- name: "param_name"
|
||||
description: "Parameter description"
|
||||
required: true/false
|
||||
```
|
||||
|
||||
## Menu [A][P][C] Verification
|
||||
|
||||
**[A]ccuracy**
|
||||
- All commands match defined capabilities
|
||||
- Triggers are clear and intuitive
|
||||
- Handlers reference actual capabilities
|
||||
|
||||
**[P]attern Compliance**
|
||||
- Follows agent-menu-patterns.md structure
|
||||
- YAML formatting is correct
|
||||
- No help/exit commands included
|
||||
|
||||
**[C]ompleteness**
|
||||
- All primary capabilities have commands
|
||||
- Commands cover agent's core functions
|
||||
- Menu is ready for next step
|
||||
|
||||
# CONTEXT BOUNDARIES
|
||||
|
||||
- **Focus on command structure**, not implementation details
|
||||
- **Reference example menus** for patterns, not copying
|
||||
- **Keep menu concise** - better fewer, clearer commands
|
||||
- **User-facing perspective** - triggers should feel natural
|
||||
- **Capability alignment** - every command maps to a capability
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
1. Load agent-menu-patterns.md to understand structure
|
||||
2. Review capabilities from agent-plan step 3
|
||||
3. Facilitate capability-to-command mapping conversation
|
||||
4. Develop command structure for each capability
|
||||
5. Define trigger, description, handler for each command
|
||||
6. Verify no help/exit commands (auto-injected)
|
||||
7. Document structured menu YAML to agent-plan
|
||||
8. Complete Menu [A][P][C] verification
|
||||
9. Confirm readiness for next step
|
||||
|
||||
## 10. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
|
||||
|
||||
### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save content to {agentPlan}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#10-present-menu-options)
|
||||
|
||||
### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [menu YAML documented in agent-plan and all commands have trigger/description/handler], will you then load and read fully `{nextStepFile}` to execute and begin activation planning.
|
||||
|
||||
---
|
||||
|
||||
# SUCCESS METRICS
|
||||
|
||||
✅ Menu YAML documented in agent-plan
|
||||
✅ All commands have trigger, description, handler
|
||||
✅ Menu follows agent-menu-patterns.md structure
|
||||
✅ No help/exit commands included
|
||||
✅ Menu [A][P][C] verification passed
|
||||
✅ Ready for activation phase
|
||||
|
||||
# FAILURE INDICATORS
|
||||
|
||||
❌ Menu YAML missing from agent-plan
|
||||
❌ Commands missing required elements (trigger/description/handler)
|
||||
❌ Menu doesn't follow pattern structure
|
||||
❌ Help/exit commands manually added
|
||||
❌ Menu [A][P][C] verification failed
|
||||
❌ Unclear command triggers or descriptions
|
||||
279
_bmad/bmb/workflows/agent/steps-c/step-06-activation.md
Normal file
279
_bmad/bmb/workflows/agent/steps-c/step-06-activation.md
Normal file
@@ -0,0 +1,279 @@
|
||||
---
|
||||
name: 'step-06-activation'
|
||||
description: 'Plan activation behavior and route to build'
|
||||
|
||||
# File References
|
||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||
criticalActions: ../data/critical-actions.md
|
||||
|
||||
# Build Step Routes (determined by agent type)
|
||||
simpleBuild: './step-07a-build-simple.md'
|
||||
expertBuild: './step-07b-build-expert.md'
|
||||
moduleBuild: './step-07c-build-module.md'
|
||||
|
||||
# Example critical_actions (for reference)
|
||||
expertExample: ../data/reference/expert-examples/journal-keeper/journal-keeper.agent.yaml
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# STEP GOAL
|
||||
Define activation behavior through critical_actions and route to the appropriate build step based on agent complexity.
|
||||
|
||||
# MANDATORY EXECUTION RULES
|
||||
|
||||
1. **MUST Load Reference Documents** Before any discussion
|
||||
- Read criticalActions.md to understand activation patterns
|
||||
- Read agentPlan to access all accumulated metadata
|
||||
- These are non-negotiable prerequisites
|
||||
|
||||
2. **MUST Determine Route Before Activation Discussion**
|
||||
- Check `module` and `hasSidecar` from plan metadata
|
||||
- Determine destination build step FIRST
|
||||
- Inform user of routing decision
|
||||
|
||||
3. **MUST Document Activation Decision**
|
||||
- Either define critical_actions array explicitly
|
||||
- OR document deliberate omission with rationale
|
||||
- No middle ground - commit to one path
|
||||
|
||||
4. **MUST Follow Routing Logic Exactly**
|
||||
```yaml
|
||||
# Route determination based on module and hasSidecar
|
||||
# Module agents: any module value other than "stand-alone"
|
||||
module ≠ "stand-alone" → step-07c-build-module.md
|
||||
# Stand-alone agents: determined by hasSidecar
|
||||
module = "stand-alone" + hasSidecar: true → step-07b-build-expert.md
|
||||
module = "stand-alone" + hasSidecar: false → step-07a-build-simple.md
|
||||
```
|
||||
|
||||
5. **NEVER Skip Documentation**
|
||||
- Every decision about activation must be recorded
|
||||
- Every routing choice must be justified
|
||||
- Plan file must reflect final state
|
||||
|
||||
# EXECUTION PROTOCOLS
|
||||
|
||||
## Protocol 1: Reference Loading
|
||||
Execute BEFORE engaging user:
|
||||
|
||||
1. Load criticalActions.md
|
||||
2. Load agentPlan-{agent_name}.md
|
||||
3. Extract routing metadata:
|
||||
- hasSidecar (boolean)
|
||||
- module (string)
|
||||
- agentType (if defined)
|
||||
4. Determine destination build step
|
||||
|
||||
## Protocol 2: Routing Disclosure
|
||||
Inform user immediately of determined route:
|
||||
|
||||
```
|
||||
"Based on your agent configuration:
|
||||
- hasSidecar: {hasSidecar}
|
||||
- module: {module}
|
||||
|
||||
→ Routing to: {destinationStep}
|
||||
|
||||
Now let's plan your activation behavior..."
|
||||
```
|
||||
|
||||
## Protocol 3: Activation Planning
|
||||
Guide user through decision:
|
||||
|
||||
1. **Explain critical_actions Purpose**
|
||||
- What they are: autonomous triggers the agent can execute
|
||||
- When they're useful: proactive capabilities, workflows, utilities
|
||||
- When they're unnecessary: simple assistants, pure responders
|
||||
|
||||
2. **Discuss Agent's Activation Needs**
|
||||
- Does this agent need to run independently?
|
||||
- Should it initiate actions without prompts?
|
||||
- What workflows or capabilities should it trigger?
|
||||
|
||||
3. **Decision Point**
|
||||
- Define specific critical_actions if needed
|
||||
- OR explicitly opt-out with rationale
|
||||
|
||||
## Protocol 4: Documentation
|
||||
Update agentPlan with activation metadata:
|
||||
|
||||
```yaml
|
||||
# Add to agent metadata
|
||||
activation:
|
||||
hasCriticalActions: true/false
|
||||
rationale: "Explanation of why or why not"
|
||||
criticalActions: [] # Only if hasCriticalActions: true
|
||||
routing:
|
||||
destinationBuild: "step-06-{X}.md"
|
||||
hasSidecar: {boolean}
|
||||
module: "{module}"
|
||||
```
|
||||
|
||||
# CONTEXT BOUNDARIES
|
||||
|
||||
## In Scope
|
||||
- Planning activation behavior for the agent
|
||||
- Defining critical_actions array
|
||||
- Routing to appropriate build step
|
||||
- Documenting activation decisions
|
||||
|
||||
## Out of Scope
|
||||
- Writing actual activation code (build step)
|
||||
- Designing sidecar workflows (build step)
|
||||
- Changing core agent metadata (locked after step 04)
|
||||
- Implementing commands (build step)
|
||||
|
||||
## Routing Boundaries
|
||||
- Simple agents: No sidecar, straightforward activation
|
||||
- Expert agents: Sidecar + stand-alone module
|
||||
- Module agents: Sidecar + parent module integration
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
## 1. Load Reference Documents
|
||||
```bash
|
||||
# Read these files FIRST
|
||||
cat {criticalActions}
|
||||
cat {agentPlan}
|
||||
```
|
||||
|
||||
## 2. Discuss Activation Needs
|
||||
Ask user:
|
||||
- "Should your agent be able to take autonomous actions?"
|
||||
- "Are there specific workflows it should trigger?"
|
||||
- "Should it run as a background process or scheduled task?"
|
||||
- "Or will it primarily respond to direct prompts?"
|
||||
|
||||
## 3. Define critical_actions OR Explicitly Omit
|
||||
|
||||
**If defining:**
|
||||
- Reference criticalActions.md patterns
|
||||
- List 3-7 specific actions
|
||||
- Each action should be clear and scoped
|
||||
- Document rationale for each
|
||||
|
||||
**If omitting:**
|
||||
- State clearly: "This agent will not have critical_actions"
|
||||
- Explain why: "This agent is a responsive assistant that operates under direct user guidance"
|
||||
- Document the rationale
|
||||
|
||||
## 4. Route to Build Step
|
||||
|
||||
Determine destination:
|
||||
|
||||
```yaml
|
||||
# Check plan metadata
|
||||
hasSidecar: {value from step 04}
|
||||
module: "{value from step 04}"
|
||||
|
||||
# Route logic
|
||||
if hasSidecar == false:
|
||||
destination = simpleBuild
|
||||
elif hasSidecar == true and module == "stand-alone":
|
||||
destination = expertBuild
|
||||
else: # hasSidecar == true and module != "stand-alone"
|
||||
destination = moduleBuild
|
||||
```
|
||||
|
||||
## 5. Document to Plan
|
||||
|
||||
Update agentPlan with:
|
||||
|
||||
```yaml
|
||||
---
|
||||
activation:
|
||||
hasCriticalActions: true
|
||||
rationale: "Agent needs to autonomously trigger workflows for task automation"
|
||||
criticalActions:
|
||||
- name: "start-workflow"
|
||||
description: "Initiate a predefined workflow for task execution"
|
||||
- name: "schedule-task"
|
||||
description: "Schedule tasks for future execution"
|
||||
- name: "sync-data"
|
||||
description: "Synchronize data with external systems"
|
||||
|
||||
routing:
|
||||
destinationBuild: "step-06-build-expert.md"
|
||||
hasSidecar: true
|
||||
module: "stand-alone"
|
||||
rationale: "Agent requires sidecar workflows for autonomous operation"
|
||||
---
|
||||
```
|
||||
|
||||
### 6. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save content to {agentPlan}, update frontmatter, determine appropriate build step based on hasSidecar and module values, then only then load, read entire file, then execute {simpleBuild} or {expertBuild} or {moduleBuild} as determined
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
This is the **ROUTING HUB** of agent creation. ONLY WHEN [C continue option] is selected and [routing decision determined with activation needs documented], will you then determine the appropriate build step based on hasSidecar/module values and load and read fully that build step file to execute.
|
||||
|
||||
Routing logic:
|
||||
- hasSidecar: false → step-06-build-simple.md
|
||||
- hasSidecar: true + module: "stand-alone" → step-06-build-expert.md
|
||||
- hasSidecar: true + module: ≠ "stand-alone" → step-06-build-module.md
|
||||
|
||||
You cannot proceed to build without completing routing.
|
||||
|
||||
---
|
||||
|
||||
# SUCCESS METRICS
|
||||
|
||||
✅ **COMPLETION CRITERIA:**
|
||||
- [ ] criticalActions.md loaded and understood
|
||||
- [ ] agentPlan loaded with all prior metadata
|
||||
- [ ] Routing decision determined and communicated
|
||||
- [ ] Activation needs discussed with user
|
||||
- [ ] critical_actions defined OR explicitly omitted with rationale
|
||||
- [ ] Plan updated with activation and routing metadata
|
||||
- [ ] User confirms routing to appropriate build step
|
||||
|
||||
✅ **SUCCESS INDICATORS:**
|
||||
- Clear activation decision documented
|
||||
- Route to build step is unambiguous
|
||||
- User understands why they're going to {simple|expert|module} build
|
||||
- Plan file reflects complete activation configuration
|
||||
|
||||
❌ **FAILURE MODES:**
|
||||
- Attempting to define critical_actions without reading reference
|
||||
- Routing decision not documented in plan
|
||||
- User doesn't understand which build step comes next
|
||||
- Ambiguous activation configuration (neither defined nor omitted)
|
||||
- Skipping routing discussion entirely
|
||||
|
||||
⚠️ **RECOVERY PATHS:**
|
||||
If activation planning goes wrong:
|
||||
|
||||
1. **Can't decide on activation?**
|
||||
- Default: Omit critical_actions
|
||||
- Route to simpleBuild
|
||||
- Can add later via edit-agent workflow
|
||||
|
||||
2. **Uncertain about routing?**
|
||||
- Check hasSidecar value
|
||||
- Check module value
|
||||
- Apply routing logic strictly
|
||||
|
||||
3. **User wants to change route?**
|
||||
- Adjust hasSidecar or module values
|
||||
- Re-run routing logic
|
||||
- Update plan accordingly
|
||||
187
_bmad/bmb/workflows/agent/steps-c/step-07a-build-simple.md
Normal file
187
_bmad/bmb/workflows/agent/steps-c/step-07a-build-simple.md
Normal file
@@ -0,0 +1,187 @@
|
||||
---
|
||||
name: 'step-07a-build-simple'
|
||||
description: 'Generate Simple agent YAML from plan'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-08-celebrate.md'
|
||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||
agentBuildOutput: '{bmb_creations_output_folder}/{agent-name}.agent.yaml'
|
||||
|
||||
# Template and Architecture
|
||||
simpleTemplate: ../templates/simple-agent.template.md
|
||||
simpleArch: ../data/simple-agent-architecture.md
|
||||
agentCompilation: ../data/agent-compilation.md
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# STEP GOAL
|
||||
|
||||
Assemble the agent plan content into a Simple agent YAML configuration using the template, producing a complete agent definition ready for validation.
|
||||
|
||||
## MANDATORY EXECUTION RULES
|
||||
|
||||
- **MUST** read all referenced files before beginning assembly
|
||||
- **MUST** use exact YAML structure from template
|
||||
- **MUST** preserve all plan content without modification
|
||||
- **MUST** maintain proper YAML indentation and formatting
|
||||
- **MUST NOT** deviate from template structure
|
||||
- **MUST** write output before asking validation question
|
||||
- **MUST** present validation choice clearly
|
||||
|
||||
## EXECUTION PROTOCOLS
|
||||
|
||||
### File Loading Sequence
|
||||
1. Read `simpleTemplate` - provides the YAML structure
|
||||
2. Read `simpleArch` - defines Simple agent architecture rules
|
||||
3. Read `agentCompilation` - provides assembly guidelines
|
||||
4. Read `agentPlan` - contains structured content from steps 2-5
|
||||
|
||||
### YAML Assembly Process
|
||||
1. Parse template structure
|
||||
2. Extract content sections from agentPlan YAML
|
||||
3. Map plan content to template fields
|
||||
4. Validate YAML syntax before writing
|
||||
5. Write complete agent YAML to output path
|
||||
|
||||
## CONTEXT BOUNDARIES
|
||||
|
||||
**INCLUDE:**
|
||||
- Template structure exactly as provided
|
||||
- All agent metadata from agentPlan
|
||||
- Persona, commands, and rules from plan
|
||||
- Configuration options specified
|
||||
|
||||
**EXCLUDE:**
|
||||
- Any content not in agentPlan
|
||||
- Sidecar file references (Simple agents don't use them)
|
||||
- Template placeholders (replace with actual content)
|
||||
- Comments or notes in final YAML
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load Template and Architecture Files
|
||||
|
||||
Read the following files in order:
|
||||
- `simpleTemplate` - YAML structure template
|
||||
- `simpleArch` - Simple agent architecture definition
|
||||
- `agentCompilation` - Assembly instructions
|
||||
|
||||
**Verify:** All files loaded successfully.
|
||||
|
||||
### 2. Load Agent Plan
|
||||
|
||||
Read `agentPlan` which contains structured YAML from steps 2-5:
|
||||
- Step 2: Discovery findings
|
||||
- Step 3: Persona development
|
||||
- Step 4: Command structure
|
||||
- Step 5: Agent naming
|
||||
|
||||
**Verify:** Plan contains all required sections.
|
||||
|
||||
### 3. Assemble YAML Using Template
|
||||
|
||||
Execute the following assembly process:
|
||||
|
||||
1. **Parse Template Structure**
|
||||
- Identify all YAML fields
|
||||
- Note required vs optional fields
|
||||
- Map field types and formats
|
||||
|
||||
2. **Extract Plan Content**
|
||||
- Read agent metadata
|
||||
- Extract persona definition
|
||||
- Retrieve command specifications
|
||||
- Gather rules and constraints
|
||||
|
||||
3. **Map Content to Template**
|
||||
- Replace template placeholders with plan content
|
||||
- Maintain exact YAML structure
|
||||
- Preserve indentation and formatting
|
||||
- Validate field types and values
|
||||
|
||||
4. **Validate YAML Syntax**
|
||||
- Check proper indentation
|
||||
- Verify quote usage
|
||||
- Ensure list formatting
|
||||
- Confirm no syntax errors
|
||||
|
||||
**Verify:** YAML is valid, complete, and follows template structure.
|
||||
|
||||
### 4. Write Agent Build Output
|
||||
|
||||
Write the assembled YAML to `agentBuildOutput`:
|
||||
- Use exact output path from variable
|
||||
- Include all content without truncation
|
||||
- Maintain YAML formatting
|
||||
- Confirm write operation succeeded
|
||||
|
||||
**Verify:** File written successfully and contains complete YAML.
|
||||
|
||||
### 5. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Write agent YAML to {agentBuildOutput}/{agent-name}.agent.yaml (or appropriate output path), update frontmatter, then only then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||||
|
||||
### 6. Route Based on User Choice
|
||||
|
||||
**If user chooses "one-at-a-time":**
|
||||
- Proceed to `nextStepFile` (step-08-celebrate.md)
|
||||
- Continue through each validation step sequentially
|
||||
- Allow review between each validation
|
||||
|
||||
**If user chooses "YOLO":**
|
||||
- Run all validation steps (7A through 7F) consecutively
|
||||
- Do not pause between validations
|
||||
- After all validations complete, proceed to Step 8
|
||||
- Present summary of all validation results
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [complete YAML generated and written to output], will you then load and read fully `{nextStepFile}` to execute and celebrate completion.
|
||||
|
||||
## SUCCESS METRICS
|
||||
|
||||
**SUCCESS looks like:**
|
||||
- Agent YAML file exists at specified output path
|
||||
- YAML is syntactically valid and well-formed
|
||||
- All template fields populated with plan content
|
||||
- Structure matches Simple agent architecture
|
||||
- User has selected validation approach
|
||||
- Clear next step identified
|
||||
|
||||
**FAILURE looks like:**
|
||||
- Template or architecture files not found
|
||||
- Agent plan missing required sections
|
||||
- YAML syntax errors in output
|
||||
- Content not properly mapped to template
|
||||
- File write operation fails
|
||||
- User selection unclear
|
||||
|
||||
## TRANSITION CRITERIA
|
||||
|
||||
**Ready for Step 7A when:**
|
||||
- Simple agent YAML successfully created
|
||||
- User chooses "one-at-a-time" validation
|
||||
|
||||
**Ready for Step 8 when:**
|
||||
- Simple agent YAML successfully created
|
||||
- User chooses "YOLO" validation
|
||||
- All validations (7A-7F) completed consecutively
|
||||
201
_bmad/bmb/workflows/agent/steps-c/step-07b-build-expert.md
Normal file
201
_bmad/bmb/workflows/agent/steps-c/step-07b-build-expert.md
Normal file
@@ -0,0 +1,201 @@
|
||||
---
|
||||
name: 'step-06-build-expert'
|
||||
description: 'Generate Expert agent YAML with sidecar from plan'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-08-celebrate.md'
|
||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||
agentBuildOutput: '{bmb_creations_output_folder}/{agent-name}/'
|
||||
agentYamlOutput: '{bmb_creations_output_folder}/{agent-name}/{agent-name}.agent.yaml'
|
||||
|
||||
# Template and Architecture
|
||||
expertTemplate: ../templates/expert-agent-template/expert-agent.template.md
|
||||
expertArch: ../data/expert-agent-architecture.md
|
||||
agentCompilation: ../data/agent-compilation.md
|
||||
criticalActions: ../data/critical-actions.md
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# STEP GOAL
|
||||
|
||||
Assemble the agent plan content into a complete Expert agent YAML file with sidecar folder structure. Expert agents require persistent memory storage, so the build creates a sidecar folder next to the agent.yaml (which gets installed to `_bmad/_memory/` during BMAD installation).
|
||||
|
||||
## MANDATORY EXECUTION RULES
|
||||
|
||||
1. **EXPERT AGENT = SIDECAR REQUIRED**: Every Expert agent MUST have a sidecar folder created next to agent.yaml (build location), which will be installed to `_bmad/_memory/` during BMAD installation
|
||||
2. **CRITICAL_ACTIONS FORMAT**: All critical_actions MUST use `{project-root}/_bmad/_memory/{sidecar-folder}/` for file operations (runtime path)
|
||||
3. **TEMPLATE COMPLIANCE**: Follow expert-agent-template.md structure exactly
|
||||
4. **YAML VALIDATION**: Ensure valid YAML syntax with proper indentation (2-space)
|
||||
5. **EXISTING CHECK**: If agentYamlOutput exists, ask user before overwriting
|
||||
6. **NO DRIFT**: Use ONLY content from agentPlan - no additions or interpretations
|
||||
|
||||
## EXECUTION PROTOCOLS
|
||||
|
||||
### Phase 1: Load Architecture and Templates
|
||||
1. Read `expertTemplate` - defines YAML structure for Expert agents
|
||||
2. Read `expertArch` - architecture requirements for Expert-level agents
|
||||
3. Read `agentCompilation` - assembly rules for YAML generation
|
||||
4. Read `criticalActions` - validation requirements for critical_actions
|
||||
|
||||
### Phase 2: Load Agent Plan
|
||||
1. Read `agentPlan` containing all collected content from Steps 1-5
|
||||
2. Verify plan contains:
|
||||
- Agent type: "expert"
|
||||
- Sidecar folder name
|
||||
- Persona content
|
||||
- Commands structure
|
||||
- Critical actions (if applicable)
|
||||
|
||||
### Phase 3: Assemble Expert YAML
|
||||
Using expertTemplate as structure:
|
||||
|
||||
```yaml
|
||||
name: '{agent-name}'
|
||||
description: '{short-description}'
|
||||
|
||||
author:
|
||||
name: '{author}'
|
||||
created: '{date}'
|
||||
|
||||
persona: |
|
||||
{multi-line persona content from plan}
|
||||
|
||||
system-context: |
|
||||
{expanded context from plan}
|
||||
|
||||
capabilities:
|
||||
- {capability from plan}
|
||||
- {capability from plan}
|
||||
# ... all capabilities
|
||||
|
||||
critical-actions:
|
||||
- name: '{action-name}'
|
||||
description: '{what it does}'
|
||||
invocation: '{when/how to invoke}'
|
||||
implementation: |
|
||||
{multi-line implementation}
|
||||
output: '{expected-output}'
|
||||
sidecar-folder: '{sidecar-folder-name}'
|
||||
sidecar-files:
|
||||
- '{project-root}/_bmad/_memory/{sidecar-folder}/{file1}.md'
|
||||
- '{project-root}/_bmad/_memory/{sidecar-folder}/{file2}.md'
|
||||
# ... all critical actions referencing sidecar structure
|
||||
|
||||
commands:
|
||||
- name: '{command-name}'
|
||||
description: '{what command does}'
|
||||
steps:
|
||||
- {step 1}
|
||||
- {step 2}
|
||||
# ... all commands from plan
|
||||
|
||||
configuration:
|
||||
temperature: {temperature}
|
||||
max-tokens: {max-tokens}
|
||||
response-format: {format}
|
||||
# ... other configuration from plan
|
||||
|
||||
metadata:
|
||||
sidecar-folder: '{sidecar-folder-name}'
|
||||
sidecar-path: '{project-root}/_bmad/_memory/{sidecar-folder}/'
|
||||
agent-type: 'expert'
|
||||
memory-type: 'persistent'
|
||||
```
|
||||
|
||||
### Phase 4: Create Sidecar Structure
|
||||
|
||||
1. **Create Sidecar Directory** (NEXT TO agent.yaml):
|
||||
- Path: `{agentBuildOutput}/{agent-name}-sidecar/`
|
||||
- Use `mkdir -p` to create full path
|
||||
- Note: This folder gets installed to `_bmad/_memory/` during BMAD installation
|
||||
|
||||
2. **Create Starter Files** (if specified in critical_actions):
|
||||
```bash
|
||||
touch {agentBuildOutput}/{agent-name}-sidecar/{file1}.md
|
||||
touch {agentBuildOutput}/{agent-name}-sidecar/{file2}.md
|
||||
```
|
||||
|
||||
3. **Add README to Sidecar**:
|
||||
```markdown
|
||||
# {sidecar-folder} Sidecar
|
||||
|
||||
This folder stores persistent memory for the **{agent-name}** Expert agent.
|
||||
|
||||
## Purpose
|
||||
{purpose from critical_actions}
|
||||
|
||||
## Files
|
||||
- {file1}.md: {description}
|
||||
- {file2}.md: {description}
|
||||
|
||||
## Runtime Access
|
||||
After BMAD installation, this folder will be accessible at:
|
||||
`{project-root}/_bmad/_memory/{sidecar-folder}/{filename}.md`
|
||||
```
|
||||
|
||||
### Phase 5: Write Agent YAML
|
||||
|
||||
1. Create `agentBuildOutput` directory: `mkdir -p {agentBuildOutput}`
|
||||
2. Write YAML to `agentYamlOutput`
|
||||
3. Confirm write success
|
||||
4. Display file location to user
|
||||
|
||||
### Phase 6: Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Write agent YAML to {agentBuildOutput}/{agent-name}/{agent-name}.agent.yaml (or appropriate output path), update frontmatter, then only then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#phase-6-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||||
|
||||
## CONTEXT BOUNDARIES
|
||||
|
||||
- **USE ONLY**: Content from agentPlan, expertTemplate, expertArch, agentCompilation, criticalActions
|
||||
- **DO NOT ADD**: New capabilities, commands, or actions not in plan
|
||||
- **DO NOT INTERPRET**: Use exact language from plan
|
||||
- **DO NOT SKIP**: Any field in expertTemplate structure
|
||||
- **CRITICAL**: Expert agents MUST have sidecar-folder metadata
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [complete YAML generated and written to output], will you then load and read fully `{nextStepFile}` to execute and celebrate completion.
|
||||
|
||||
This step produces TWO artifacts:
|
||||
1. **Agent YAML**: Complete expert agent definition at `{agentYamlOutput}`
|
||||
2. **Sidecar Structure**: Folder and files at `{agentBuildOutput}/{agent-name}-sidecar/` (build location, installs to `_bmad/_memory/` during BMAD installation)
|
||||
|
||||
Both must exist before proceeding to validation.
|
||||
|
||||
## SUCCESS METRICS
|
||||
|
||||
✅ Agent YAML file created at expected location
|
||||
✅ Valid YAML syntax (no parse errors)
|
||||
✅ All template fields populated
|
||||
✅ Sidecar folder created at `{agentBuildOutput}/{agent-name}-sidecar/` (build location)
|
||||
✅ Sidecar folder contains starter files from critical_actions
|
||||
✅ critical_actions reference `{project-root}/_bmad/_memory/{sidecar-folder}/` paths
|
||||
✅ metadata.sidecar-folder populated
|
||||
✅ metadata.agent-type = "expert"
|
||||
✅ User validation choice received (one-at-a-time or YOLO)
|
||||
|
||||
## FAILURE MODES
|
||||
|
||||
❌ Missing required template fields
|
||||
❌ Invalid YAML syntax
|
||||
❌ Sidecar folder creation failed
|
||||
❌ critical_actions missing sidecar-folder references
|
||||
❌ agentPlan missing expert-specific content (sidecar-folder name)
|
||||
❌ File write permission errors
|
||||
258
_bmad/bmb/workflows/agent/steps-c/step-07c-build-module.md
Normal file
258
_bmad/bmb/workflows/agent/steps-c/step-07c-build-module.md
Normal file
@@ -0,0 +1,258 @@
|
||||
---
|
||||
name: 'step-06-build-module'
|
||||
description: 'Generate Module agent YAML from plan'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-08-celebrate.md'
|
||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||
agentBuildOutput: '{bmb_creations_output_folder}/{agent-name}/'
|
||||
agentYamlOutput: '{bmb_creations_output_folder}/{agent-name}/{agent-name}.agent.yaml'
|
||||
|
||||
# Template and Architecture (use expert as baseline)
|
||||
expertTemplate: ../templates/expert-agent-template/expert-agent.template.md
|
||||
expertArch: ../data/expert-agent-architecture.md
|
||||
agentCompilation: ../data/agent-compilation.md
|
||||
criticalActions: ../data/critical-actions.md
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# STEP GOAL
|
||||
Assemble the Module agent YAML file from the approved plan, using the expert agent template as the baseline architecture and adding module-specific workflow integration paths and sidecar configuration.
|
||||
|
||||
# MANDATORY EXECUTION RULES
|
||||
|
||||
1. **TEMPLATE BASELINE**: Module agents MUST use the expert agent template as their structural foundation - do not create custom templates
|
||||
|
||||
2. **PLAN ADHERENCE**: Extract content from agentPlan exactly as written - no enhancement, interpretation, or extrapolation
|
||||
|
||||
3. **MODULE SPECIFICITY**: Module agents require workflow integration paths and may need sidecar configuration for multi-workflow modules
|
||||
|
||||
4. **OUTPUT VALIDATION**: YAML must be valid, complete, and ready for immediate deployment
|
||||
|
||||
5. **LANGUAGE PRESERVATION**: Maintain any language choice configured in the plan throughout the YAML
|
||||
|
||||
# EXECUTION PROTOCOLS
|
||||
|
||||
## PREPARATION PHASE
|
||||
|
||||
### 1. Load Expert Template Baseline
|
||||
```
|
||||
Read: expertTemplate
|
||||
Read: expertArch
|
||||
Read: agentCompilation
|
||||
Read: criticalActions
|
||||
```
|
||||
|
||||
**Purpose**: Understand the expert agent structure that serves as the Module agent baseline
|
||||
|
||||
**Validation**: Confirm expert template has all required sections (name, description, persona, instructions, tools, skills, etc.)
|
||||
|
||||
### 2. Load Agent Plan
|
||||
```
|
||||
Read: agentPlan (using dynamic path)
|
||||
```
|
||||
|
||||
**Validation**: Plan contains all mandatory sections:
|
||||
- Agent identity (name, description)
|
||||
- Persona profile
|
||||
- Command structure
|
||||
- Critical actions
|
||||
- Workflow integrations (module-specific)
|
||||
- Language choice (if configured)
|
||||
|
||||
### 3. Verify Output Directory
|
||||
```
|
||||
Bash: mkdir -p {agentBuildOutput}
|
||||
```
|
||||
|
||||
**Purpose**: Ensure output directory exists for the module agent
|
||||
|
||||
## ASSEMBLY PHASE
|
||||
|
||||
### 4. Assemble Module Agent YAML
|
||||
|
||||
**FROM PLAN TO YAML MAPPING:**
|
||||
|
||||
| Plan Section | YAML Field | Notes |
|
||||
|--------------|------------|-------|
|
||||
| Agent Name | `name` | Plan → YAML |
|
||||
| Description | `description` | Plan → YAML |
|
||||
| Persona | `persona` | Plan → YAML |
|
||||
| Instructions | `instructions` | Plan → YAML (verbatim) |
|
||||
| Commands | `commands` | Plan → YAML (with handlers) |
|
||||
| Critical Actions | `criticalActions` | Plan → YAML (mandatory) |
|
||||
| Workflow Paths | `skills` | Module-specific |
|
||||
| Sidecar Need | `sidecar` | If multi-workflow |
|
||||
|
||||
**MODULE-SPECIAL ENHANCEMENTS:**
|
||||
|
||||
```yaml
|
||||
# Module agents include workflow integration
|
||||
skills:
|
||||
- workflow: "{project-root}/_bmad/{module-id}/workflows/{workflow-name}/workflow.md"
|
||||
description: "From plan workflow list"
|
||||
- workflow: "{project-root}/_bmad/{module-id}/workflows/{another-workflow}/workflow.md"
|
||||
description: "From plan workflow list"
|
||||
|
||||
# Optional: Sidecar for complex modules
|
||||
sidecar:
|
||||
enabled: true
|
||||
workflows:
|
||||
- ref: "primary-workflow"
|
||||
type: "primary"
|
||||
- ref: "secondary-workflow"
|
||||
type: "support"
|
||||
```
|
||||
|
||||
**CRITICAL ACTIONS MAPPING:**
|
||||
```
|
||||
For each critical action in plan:
|
||||
1. Identify matching command in YAML
|
||||
2. Add `critical: true` flag
|
||||
3. Ensure handler references agent function
|
||||
```
|
||||
|
||||
### 5. Create Sidecar (If Needed)
|
||||
|
||||
**SIDEAR REQUIRED IF:**
|
||||
- Module has 3+ workflows
|
||||
- Workflows have complex interdependencies
|
||||
- Module needs initialization workflow
|
||||
|
||||
**SIDECAR STRUCTURE:**
|
||||
```yaml
|
||||
# {agent-name}.sidecar.yaml
|
||||
sidecar:
|
||||
module: "{module-id}"
|
||||
initialization:
|
||||
workflow: "workflow-init"
|
||||
required: true
|
||||
workflows:
|
||||
- name: "workflow-name"
|
||||
path: "workflows/{workflow-name}/workflow.md"
|
||||
type: "primary|support|utility"
|
||||
dependencies: []
|
||||
agent:
|
||||
path: "{agent-name}.agent.yaml"
|
||||
```
|
||||
|
||||
**IF SIDEAR NOT NEEDED**: Skip this step
|
||||
|
||||
### 6. Write Module Agent YAML
|
||||
```
|
||||
Write: agentYamlOutput (using dynamic path)
|
||||
Content: Assembled YAML from step 4
|
||||
```
|
||||
|
||||
**Validation Checklist:**
|
||||
- [ ] All plan fields present in YAML
|
||||
- [ ] Workflow paths are valid and correct
|
||||
- [ ] Critical actions flagged
|
||||
- [ ] Sidecar created (if needed) or skipped (if not)
|
||||
- [ ] YAML syntax is valid
|
||||
- [ ] Language choice preserved throughout
|
||||
|
||||
## COMPLETION PHASE
|
||||
|
||||
### 7. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Write agent YAML to {agentBuildOutput}/{agent-name}/{agent-name}.agent.yaml (or appropriate output path), update frontmatter, then only then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||||
|
||||
**USER RESPONSE HANDLING:**
|
||||
- **Option 1**: Proceed to step-07a-plan-traceability.md with sequential mode
|
||||
- **Option 2**: Proceed to step-07a-plan-traceability.md with yolo mode
|
||||
- **Invalid input**: Re-ask with options
|
||||
|
||||
# CONTEXT BOUNDARIES
|
||||
|
||||
**IN SCOPE:**
|
||||
- Reading expert template and architecture
|
||||
- Loading agent plan
|
||||
- Assembling Module agent YAML
|
||||
- Creating sidecar (if needed)
|
||||
- Writing valid YAML output
|
||||
|
||||
**OUT OF SCOPE:**
|
||||
- Modifying plan content
|
||||
- Creating new template structures
|
||||
- Implementing agent code
|
||||
- Writing workflow files
|
||||
- Testing agent functionality
|
||||
|
||||
**DO NOT:**
|
||||
- Add commands not in plan
|
||||
- Modify persona from plan
|
||||
- Create custom template structures
|
||||
- Skip critical actions mapping
|
||||
- Assume sidecar need - evaluate based on workflow count
|
||||
|
||||
# CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [complete YAML generated and written to output], will you then load and read fully `{nextStepFile}` to execute and celebrate completion.
|
||||
|
||||
**THIS STEP IS COMPLETE WHEN:**
|
||||
1. Module agent YAML file exists at agentYamlOutput path
|
||||
2. YAML contains all plan content correctly mapped
|
||||
3. Module-specific workflow paths are configured
|
||||
4. Sidecar is created (if needed) or correctly skipped (if not)
|
||||
5. User has chosen review mode (one-at-a-time or YOLO)
|
||||
6. Ready to proceed to step-07a-plan-traceability.md
|
||||
|
||||
**STOP BEFORE:**
|
||||
- Writing workflow implementations
|
||||
- Creating agent code files
|
||||
- Testing agent functionality
|
||||
- Deploying to active system
|
||||
|
||||
# SUCCESS METRICS
|
||||
|
||||
**COMPLETION:**
|
||||
- [ ] Module agent YAML exists with all required fields
|
||||
- [ ] All plan content accurately mapped to YAML
|
||||
- [ ] Workflow integration paths configured correctly
|
||||
- [ ] Critical actions properly flagged
|
||||
- [ ] Sidecar created or correctly skipped
|
||||
- [ ] YAML syntax is valid
|
||||
- [ ] User confirms review mode choice
|
||||
- [ ] Transitions to step-07a-plan-traceability.md
|
||||
|
||||
**VALIDATION:**
|
||||
- Plan-to-YAML mapping: 100% accuracy
|
||||
- Workflow paths: All valid and correct
|
||||
- Critical actions: All present and flagged
|
||||
- Sidecar decision: Correctly evaluated
|
||||
- Language choice: Preserved throughout
|
||||
|
||||
# FAILURE MODES
|
||||
|
||||
**IF PLAN MISSING CONTENT:**
|
||||
→ Return to step-02-discover.md to complete plan
|
||||
|
||||
**IF EXPERT TEMPLATE MISSING:**
|
||||
→ Raise error - template is mandatory baseline
|
||||
|
||||
**IF YAML SYNTAX ERROR:**
|
||||
→ Fix and retry write operation
|
||||
|
||||
**IF WORKFLOW PATHS INVALID:**
|
||||
→ Flag for review in traceability step
|
||||
|
||||
**IF USER ASKS FOR MODIFICATIONS:**
|
||||
→ Return to appropriate planning step (03-persona, 04-commands, or 05-name)
|
||||
249
_bmad/bmb/workflows/agent/steps-c/step-08-celebrate.md
Normal file
249
_bmad/bmb/workflows/agent/steps-c/step-08-celebrate.md
Normal file
@@ -0,0 +1,249 @@
|
||||
---
|
||||
name: 'step-08-celebrate'
|
||||
description: 'Celebrate completion and guide next steps for using the agent'
|
||||
|
||||
# File References
|
||||
thisStepFile: ./step-08-celebrate.md
|
||||
workflowFile: ../workflow.md
|
||||
outputFile: {bmb_creations_output_folder}/agent-completion-{agent_name}.md
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
installationDocs: 'https://github.com/bmad-code-org/BMAD-METHOD/blob/main/docs/modules/bmb-bmad-builder/custom-content-installation.md#standalone-content-agents-workflows-tasks-tools-templates-prompts'
|
||||
validationWorkflow: '{project-root}/src/modules/bmb/workflows/agent/steps-v/v-01-load-review.md'
|
||||
---
|
||||
|
||||
# Step 8: Celebration and Installation Guidance
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Celebrate the successful agent creation, recap the agent's capabilities, provide installation guidance, and mark workflow completion.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are a celebration coordinator who guides users through agent installation and activation
|
||||
- ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
|
||||
- ✅ We engage in collaborative dialogue, not command-response
|
||||
- ✅ You bring installation expertise, user brings their excitement about their new agent, together we ensure successful agent installation and usage
|
||||
- ✅ Maintain collaborative celebratory tone throughout
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Focus only on celebrating completion and guiding installation
|
||||
- 🚫 FORBIDDEN to end without marking workflow completion in frontmatter
|
||||
- 💬 Approach: Celebrate enthusiastically while providing practical installation guidance
|
||||
- 📋 Ensure user understands installation steps and agent capabilities
|
||||
- 🔗 Always provide installation documentation link for reference
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎉 Celebrate agent creation achievement enthusiastically
|
||||
- 💾 Mark workflow completion in frontmatter
|
||||
- 📖 Provide clear installation guidance
|
||||
- 🔗 Share installation documentation link
|
||||
- 🚫 FORBIDDEN to end workflow without proper completion marking
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Available context: Complete, validated, and built agent from previous steps
|
||||
- Focus: Celebration, installation guidance, and workflow completion
|
||||
- Limits: No agent modifications, only installation guidance and celebration
|
||||
- Dependencies: Complete agent ready for installation
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change. (Do not deviate, skip, or optimize)
|
||||
|
||||
### 1. Grand Celebration
|
||||
|
||||
Present enthusiastic celebration:
|
||||
|
||||
"🎉 Congratulations! We did it! {agent_name} is complete and ready to help users with {agent_purpose}!"
|
||||
|
||||
**Journey Celebration:**
|
||||
"Let's celebrate what we accomplished together:
|
||||
|
||||
- Started with an idea and discovered its true purpose
|
||||
- Crafted a unique personality with the four-field persona system
|
||||
- Built powerful capabilities and commands
|
||||
- Established a perfect name and identity
|
||||
- Created complete YAML configuration
|
||||
- Validated quality and prepared for deployment"
|
||||
|
||||
### 2. Agent Capabilities Showcase
|
||||
|
||||
**Agent Introduction:**
|
||||
"Meet {agent_name} - your {agent_type} agent ready to {agent_purpose}!"
|
||||
|
||||
**Key Features:**
|
||||
"✨ **What makes {agent_name} special:**
|
||||
|
||||
- {unique_personality_trait} personality that {communication_style_benefit}
|
||||
- Expert in {domain_expertise} with {specialized_knowledge}
|
||||
- {number_commands} powerful commands including {featured_command}
|
||||
- Ready to help with {specific_use_cases}"
|
||||
|
||||
### 3. Activation Guidance
|
||||
|
||||
**Getting Started:**
|
||||
"Here's how to start using {agent_name}:"
|
||||
|
||||
**Activation Steps:**
|
||||
|
||||
1. **Locate your agent files:** `{agent_file_location}`
|
||||
2. **If compiled:** Use the compiled version at `{compiled_location}`
|
||||
3. **For customization:** Edit the customization file at `{customization_location}`
|
||||
4. **First interaction:** Start by asking for help to see available commands
|
||||
|
||||
**First Conversation Suggestions:**
|
||||
"Try starting with:
|
||||
|
||||
- 'Hi {agent_name}, what can you help me with?'
|
||||
- 'Tell me about your capabilities'
|
||||
- 'Help me with [specific task related to agent purpose]'"
|
||||
|
||||
### 4. Installation Guidance
|
||||
|
||||
**Making Your Agent Installable:**
|
||||
"Now that {agent_name} is complete, let's get it installed and ready to use!"
|
||||
|
||||
**Installation Overview:**
|
||||
"To make your agent installable and sharable, you'll need to package it as a standalone BMAD content module. Here's what you need to know:"
|
||||
|
||||
**Key Steps:**
|
||||
1. **Create a module folder:** Name it something descriptive (e.g., `my-custom-stuff`)
|
||||
2. **Add module.yaml:** Include a `module.yaml` file with `unitary: true`
|
||||
3. **Structure your agent:** Place your agent file in `agents/{agent-name}/{agent-name}.agent.yaml`
|
||||
4. **Include sidecar (if Expert):** For Expert agents, include the `_memory/{sidecar-folder}/` structure
|
||||
|
||||
**Module Structure Example:**
|
||||
```
|
||||
my-custom-stuff/
|
||||
├── module.yaml # Contains: unitary: true
|
||||
├── agents/ # Custom agents go here
|
||||
│ └── {agent-name}/
|
||||
│ ├── {agent-name}.agent.yaml
|
||||
│ └── _memory/ # Expert agents only
|
||||
│ └── {sidecar-folder}/
|
||||
│ ├── memories.md
|
||||
│ └── instructions.md
|
||||
└── workflows/ # Optional: standalone custom workflows
|
||||
└── {workflow-name}/
|
||||
└── workflow.md
|
||||
```
|
||||
|
||||
**Note:** Your custom module can contain agents, workflows, or both. The `agents/` and `workflows/` folders are siblings alongside `module.yaml`.
|
||||
|
||||
**Installation Methods:**
|
||||
- **New projects:** The BMAD installer will prompt for local custom modules
|
||||
- **Existing projects:** Use "Modify BMAD Installation" to add your module
|
||||
|
||||
**Full Documentation:**
|
||||
"For complete details on packaging, sharing, and installing your custom agent, including all the configuration options and troubleshooting tips, see the official installation guide:"
|
||||
|
||||
📖 **[BMAD Custom Content Installation Guide]({installationDocs})**
|
||||
|
||||
### 5. Final Documentation
|
||||
|
||||
#### Content to Append (if applicable):
|
||||
|
||||
```markdown
|
||||
## Agent Creation Complete! 🎉
|
||||
|
||||
### Agent Summary
|
||||
|
||||
- **Name:** {agent_name}
|
||||
- **Type:** {agent_type}
|
||||
- **Purpose:** {agent_purpose}
|
||||
- **Status:** Ready for installation
|
||||
|
||||
### File Locations
|
||||
|
||||
- **Agent Config:** {agent_file_path}
|
||||
- **Compiled Version:** {compiled_agent_path}
|
||||
- **Customization:** {customization_file_path}
|
||||
|
||||
### Installation
|
||||
|
||||
Package your agent as a standalone module with `module.yaml` containing `unitary: true`.
|
||||
See: {installationDocs}
|
||||
|
||||
### Quick Start
|
||||
|
||||
1. Create a module folder
|
||||
2. Add module.yaml with `unitary: true`
|
||||
3. Place agent in `agents/{agent-name}/` structure
|
||||
4. Include sidecar folder for Expert agents
|
||||
5. Install via BMAD installer
|
||||
```
|
||||
|
||||
Save this content to `{outputFile}` for reference.
|
||||
|
||||
### 6. Workflow Completion
|
||||
|
||||
**Mark Complete:**
|
||||
"Agent creation workflow completed successfully! {agent_name} is ready to be installed and used. Amazing work!"
|
||||
|
||||
**Final Achievement:**
|
||||
"You've successfully created a custom BMAD agent from concept to installation-ready configuration. The journey from idea to deployable agent is complete!"
|
||||
|
||||
### 7. Present MENU OPTIONS
|
||||
|
||||
Display: "**✅ Agent Build Complete! Select an Option:** [V] Run Validation [S] Skip - Complete Now [A] Advanced Elicitation [P] Party Mode"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF V: "Loading validation phase..." → Save celebration content to {outputFile}, update frontmatter with build completion, then load, read entire file, then execute {validationWorkflow}
|
||||
- IF S: "Skipping validation. Completing workflow..." → Save content to {outputFile}, update frontmatter with workflow completion, then end workflow gracefully
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- User can choose validation (V), skip to complete (S), or use advanced elicitation (A) or party mode (P)
|
||||
- After other menu items execution (A/P), return to this menu
|
||||
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [S skip option] is selected and [workflow completion marked in frontmatter], will the workflow end gracefully with agent ready for installation.
|
||||
IF [V validation option] is selected, the validation workflow will be loaded to perform comprehensive validation checks.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Enthusiastic celebration of agent creation achievement
|
||||
- Clear installation guidance provided
|
||||
- Agent capabilities and value clearly communicated
|
||||
- Installation documentation link shared with context
|
||||
- Module structure and packaging explained
|
||||
- User confidence in agent installation established
|
||||
- Workflow properly marked as complete in frontmatter
|
||||
- Content properly saved to output file
|
||||
- Menu presented with exit option
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Ending without marking workflow completion
|
||||
- Not providing clear installation guidance
|
||||
- Missing celebration of achievement
|
||||
- Not sharing installation documentation link
|
||||
- Not ensuring user understands installation steps
|
||||
- Failing to update frontmatter completion status
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
221
_bmad/bmb/workflows/agent/steps-e/e-01-load-existing.md
Normal file
221
_bmad/bmb/workflows/agent/steps-e/e-01-load-existing.md
Normal file
@@ -0,0 +1,221 @@
|
||||
---
|
||||
name: 'e-01-load-existing'
|
||||
description: 'Load and analyze existing agent for editing'
|
||||
|
||||
# File References
|
||||
thisStepFile: ./e-01-load-existing.md
|
||||
workflowFile: ../workflow.md
|
||||
nextStepFile: './e-02-discover-edits.md'
|
||||
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
|
||||
agentMetadata: ../data/agent-metadata.md
|
||||
agentMenuPatterns: ../data/agent-menu-patterns.md
|
||||
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Edit Step 1: Load Existing Agent
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Load the existing agent file, parse its structure, and create an edit plan tracking document.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER proceed without loading the complete agent file
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not an autonomous editor
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are an agent analyst who helps users understand and modify existing agents
|
||||
- ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
|
||||
- ✅ We engage in collaborative dialogue, not command-response
|
||||
- ✅ You bring agent architecture expertise, user brings their modification goals, together we achieve successful edits
|
||||
- ✅ Maintain collaborative analytical tone throughout
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Focus only on loading and analyzing the existing agent
|
||||
- 🚫 FORBIDDEN to make any modifications in this step
|
||||
- 💬 Approach: Analytical and informative, present findings clearly
|
||||
- 📋 Ensure edit plan is created with complete agent snapshot
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Load the complete agent YAML file
|
||||
- 📊 Parse and analyze all agent components
|
||||
- 💾 Create edit plan tracking document
|
||||
- 🚫 FORBIDDEN to proceed without confirming file loaded successfully
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Available context: User provided agent file path from workflow
|
||||
- Focus: Load and understand the existing agent structure
|
||||
- Limits: Analysis only, no modifications
|
||||
- Dependencies: Agent file must exist and be valid YAML
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load Agent File
|
||||
|
||||
**Load the agent file:**
|
||||
Read the complete YAML from the agent file path provided by the user.
|
||||
|
||||
**If file does not exist or is invalid:**
|
||||
Inform the user and request a valid path:
|
||||
"The agent file could not be loaded. Please verify the path and try again.
|
||||
|
||||
Expected format: `{path-to-agent}/{agent-name}.agent.yaml`"
|
||||
|
||||
### 2. Parse Agent Structure
|
||||
|
||||
If the module property of the agent metadata is `stand-alone`, it is not a module agent.
|
||||
If the module property of the agent is a module code (like bmm, bmb, etc...) it is a module agent.
|
||||
If the property hasSidecar: true exists in the metadata, then it is an expert agent.
|
||||
Else it is a simple agent.
|
||||
If a module agent also hasSidecar: true - this means it is a modules expert agent, thus it can have sidecar.
|
||||
|
||||
**Extract and categorize all agent components:**
|
||||
|
||||
```yaml
|
||||
# Basic Metadata
|
||||
- name: {agent-name}
|
||||
- description: {agent-description}
|
||||
- module: {stand-alone|bmm|cis|bmgd|custom}
|
||||
- hasSidecar: {true|false}
|
||||
|
||||
# Persona
|
||||
- persona: {full persona text}
|
||||
- system-context: {if present}
|
||||
|
||||
# Commands/Menu
|
||||
- commands: {full command structure}
|
||||
|
||||
# Critical Actions (if present)
|
||||
- critical-actions: {list}
|
||||
|
||||
# Metadata
|
||||
- metadata: {all metadata fields}
|
||||
```
|
||||
|
||||
### 3. Display Agent Summary
|
||||
|
||||
**Present a clear summary to the user:**
|
||||
|
||||
```markdown
|
||||
## Agent Analysis: {agent-name}
|
||||
|
||||
**Type:** {simple|expert|module} (derived from module + hasSidecar)
|
||||
**Status:** ready-for-edit
|
||||
|
||||
### Current Structure:
|
||||
|
||||
**Persona:** {character count} characters
|
||||
**Commands:** {count} commands defined
|
||||
**Critical Actions:** {count} critical actions
|
||||
|
||||
### Editable Components:
|
||||
|
||||
- [ ] Persona (role, identity, communication_style, principles)
|
||||
- [ ] Commands and menu structure
|
||||
- [ ] Critical actions
|
||||
- [ ] Metadata (name, description, version, tags)
|
||||
```
|
||||
|
||||
### 4. Create Edit Plan Document
|
||||
|
||||
**Initialize the edit plan tracking file:**
|
||||
|
||||
```markdown
|
||||
---
|
||||
mode: edit
|
||||
originalAgent: '{agent-file-path}'
|
||||
agentName: '{agent-name}'
|
||||
agentType: '{simple|expert|module}'
|
||||
editSessionDate: '{YYYY-MM-DD}'
|
||||
stepsCompleted:
|
||||
- e-01-load-existing.md
|
||||
---
|
||||
|
||||
# Edit Plan: {agent-name}
|
||||
|
||||
## Original Agent Snapshot
|
||||
|
||||
**File:** {agent-file-path}
|
||||
**Type:** {simple|expert|module}
|
||||
**Version:** {version}
|
||||
|
||||
### Current Persona
|
||||
|
||||
{full persona text or truncated if very long}
|
||||
|
||||
### Current Commands
|
||||
|
||||
{list all commands with names and descriptions}
|
||||
|
||||
### Current Metadata
|
||||
|
||||
{all metadata fields}
|
||||
|
||||
---
|
||||
|
||||
## Edits Planned
|
||||
|
||||
*This section will be populated in subsequent steps*
|
||||
|
||||
---
|
||||
|
||||
## Edits Applied
|
||||
|
||||
*This section will track completed edits*
|
||||
```
|
||||
|
||||
Write to `{editPlan}`.
|
||||
|
||||
### 5. Present MENU OPTIONS
|
||||
|
||||
Display: "**Is this the correct agent to edit?** [C] Yes, Continue to Discovery"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF C: Save content to {editPlan}, then only then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [agent file loaded, analyzed, and edit plan created], will you then load and read fully `{nextStepFile}` to execute and begin edit discovery.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Agent file loaded successfully
|
||||
- YAML structure parsed correctly
|
||||
- Edit plan document created with agent snapshot
|
||||
- User has clear understanding of current agent structure
|
||||
- Menu presented and user input handled correctly
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Failed to load entire exist agent file (and potential sidecar content)
|
||||
- Invalid YAML format that prevents parsing
|
||||
- Edit plan not created
|
||||
- Proceeding without user confirmation of loaded agent
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
193
_bmad/bmb/workflows/agent/steps-e/e-02-discover-edits.md
Normal file
193
_bmad/bmb/workflows/agent/steps-e/e-02-discover-edits.md
Normal file
@@ -0,0 +1,193 @@
|
||||
---
|
||||
name: 'e-02-discover-edits'
|
||||
description: 'Discover what user wants to change about the agent'
|
||||
|
||||
nextStepFile: './e-04-type-metadata.md'
|
||||
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
|
||||
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Edit Step 2: Discover Edits
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Conduct targeted discovery to understand exactly what the user wants to change about their agent. Document all requested edits in structured format.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER assume what edits are needed - ask explicitly
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: Read editPlan first to understand agent context
|
||||
- 📋 YOU ARE A FACILITATOR, not an autonomous editor
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are an agent editor consultant who helps users clarify their modification goals
|
||||
- ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
|
||||
- ✅ We engage in collaborative dialogue, not command-response
|
||||
- ✅ You bring agent architecture expertise, user brings their vision for improvements, together we define precise edits
|
||||
- ✅ Maintain collaborative inquisitive tone throughout
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Focus only on discovering what to edit, not how to implement yet
|
||||
- 🚫 FORBIDDEN to make any modifications in this step
|
||||
- 💬 Approach: Ask probing questions to understand edit scope
|
||||
- 📋 Ensure all edits are documented to edit plan before proceeding
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Guide conversation to uncover all desired changes
|
||||
- 📊 Categorize edits by component (persona, commands, metadata, etc.)
|
||||
- 💾 Document all edits to edit plan
|
||||
- 🚫 FORBIDDEN to proceed without confirming all edits are captured
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Available context: editPlan with agent snapshot from previous step
|
||||
- Focus: Discover what changes user wants to make
|
||||
- Limits: Discovery and documentation only, no implementation
|
||||
- Dependencies: Agent must be loaded in editPlan
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Read Edit Plan Context
|
||||
|
||||
**Load the editPlan file first:**
|
||||
Read `{editPlan}` to understand the current agent structure and context.
|
||||
|
||||
### 2. Present Edit Categories
|
||||
|
||||
**Guide the user through potential edit areas:**
|
||||
|
||||
"What would you like to change about **{agent-name}**?
|
||||
|
||||
I can help you modify:
|
||||
|
||||
**[P]ersona** - Role, identity, communication style, principles
|
||||
**[C]ommands** - Add, remove, or modify commands and menu structure
|
||||
**[M]etadata** - Name, description, version, tags, category
|
||||
**[A]ctions** - Critical actions and activation behaviors
|
||||
**[T]ype** - Convert between Simple/Expert/Module types
|
||||
**[O]ther** - Configuration, capabilities, system context
|
||||
|
||||
Which areas would you like to edit? (You can select multiple)"
|
||||
|
||||
### 3. Deep Dive Discovery
|
||||
|
||||
**For each selected category, ask targeted questions:**
|
||||
|
||||
#### If Persona selected:
|
||||
- "What aspect of the persona needs change?"
|
||||
- "Should the role be more specific or expanded?"
|
||||
- "Is the communication style hitting the right tone?"
|
||||
- "Do the principles need refinement?"
|
||||
|
||||
#### If Commands selected:
|
||||
- "Do you want to add new commands, remove existing ones, or modify?"
|
||||
- "Are current command names and descriptions clear?"
|
||||
- "Should command steps be adjusted?"
|
||||
- "Is the menu structure working well?"
|
||||
|
||||
#### If Metadata selected:
|
||||
- "What metadata fields need updating?"
|
||||
- "Is the description accurate and compelling?"
|
||||
- "Should version be bumped?"
|
||||
- "Are tags still relevant?"
|
||||
|
||||
#### If Actions selected:
|
||||
- "What critical actions need modification?"
|
||||
- "Should new activation behaviors be added?"
|
||||
- "Are current actions executing as expected?"
|
||||
|
||||
#### If Type conversion selected:
|
||||
- "What type are you converting from/to?"
|
||||
- "What's driving this conversion?"
|
||||
- "Are you aware of the implications (e.g., Expert needs sidecar)?"
|
||||
|
||||
### 4. Document Edits to Plan
|
||||
|
||||
**After discovery, append to editPlan:**
|
||||
|
||||
```markdown
|
||||
## Edits Planned
|
||||
|
||||
### Persona Edits
|
||||
- [ ] {edit description}
|
||||
- [ ] {edit description}
|
||||
|
||||
### Command Edits
|
||||
- [ ] {edit description}
|
||||
- [ ] {edit description}
|
||||
|
||||
### Metadata Edits
|
||||
- [ ] {edit description}
|
||||
- [ ] {edit description}
|
||||
|
||||
### Critical Action Edits
|
||||
- [ ] {edit description}
|
||||
- [ ] {edit description}
|
||||
|
||||
### Type Conversion
|
||||
- [ ] {from: X, to: Y, rationale: ...}
|
||||
|
||||
### Other Edits
|
||||
- [ ] {edit description}
|
||||
```
|
||||
|
||||
**Present summary for confirmation:**
|
||||
|
||||
"Here's what I heard you want to change:
|
||||
|
||||
{Summarize all edits in clear bulleted list}
|
||||
|
||||
Did I capture everything? Any edits to add, remove, or clarify?"
|
||||
|
||||
### 5. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Validation"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save edits to {editPlan}, then only then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [all edits documented and confirmed by user], will you then load and read fully `{nextStepFile}` to execute and checks.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- All desired edits discovered and documented
|
||||
- Edits categorized by component type
|
||||
- User confirmed edit list is complete
|
||||
- Edit plan updated with structured edits
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Proceeding without documenting edits
|
||||
- Missing edits that user mentioned
|
||||
- Unclear or ambiguous edit descriptions
|
||||
- User not given opportunity to review/edit list
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
1
_bmad/bmb/workflows/agent/steps-e/e-03-placeholder.md
Normal file
1
_bmad/bmb/workflows/agent/steps-e/e-03-placeholder.md
Normal file
@@ -0,0 +1 @@
|
||||
# Placeholder - do not load this step.
|
||||
124
_bmad/bmb/workflows/agent/steps-e/e-04-type-metadata.md
Normal file
124
_bmad/bmb/workflows/agent/steps-e/e-04-type-metadata.md
Normal file
@@ -0,0 +1,124 @@
|
||||
---
|
||||
name: 'e-04-type-metadata'
|
||||
description: 'Review and plan metadata edits'
|
||||
|
||||
nextStepFile: './e-05-persona.md'
|
||||
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
|
||||
agentMetadata: ../data/agent-metadata.md
|
||||
agentTypesDoc: ../data/understanding-agent-types.md
|
||||
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Edit Step 4: Type and Metadata
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Review the agent's type and metadata, and plan any changes. If edits involve type conversion, identify the implications.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: Load agentMetadata and agentTypesDoc first
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Load reference documents before discussing edits
|
||||
- 📊 Document type conversion requirements if applicable
|
||||
- 💬 Focus on metadata that user wants to change
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Load agentMetadata.md and agentTypesDoc.md
|
||||
- 📊 Review current metadata from editPlan
|
||||
- 💾 Document planned metadata changes
|
||||
- 🚫 FORBIDDEN to proceed without documenting changes
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load Reference Documents
|
||||
|
||||
Read `{agentMetadata}` and `{agentTypesDoc}` to understand validation rules and type implications.
|
||||
|
||||
### 2. Review Current Metadata
|
||||
|
||||
From `{editPlan}`, display current:
|
||||
- agentType (simple/expert/module)
|
||||
- All metadata fields: id, name, title, icon, module, hasSidecar
|
||||
|
||||
### 3. Discuss Metadata Edits
|
||||
|
||||
If user wants metadata changes:
|
||||
|
||||
**For type conversion:**
|
||||
- "Converting from {current} to {target}"
|
||||
- Explain implications (e.g., Simple → Expert requires sidecar)
|
||||
- Update editPlan with type conversion
|
||||
|
||||
**For metadata field changes:**
|
||||
- id: kebab-case requirements
|
||||
- name: display name conventions
|
||||
- title: function description format
|
||||
- icon: emoji/symbol
|
||||
- module: path format
|
||||
- hasSidecar: boolean implications
|
||||
|
||||
### 4. Document to Edit Plan
|
||||
|
||||
Append to `{editPlan}`:
|
||||
|
||||
```yaml
|
||||
metadataEdits:
|
||||
typeConversion:
|
||||
from: {current-type}
|
||||
to: {target-type}
|
||||
rationale: {explanation}
|
||||
fieldChanges:
|
||||
- field: {field-name}
|
||||
from: {current-value}
|
||||
to: {target-value}
|
||||
```
|
||||
|
||||
### 5. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Persona"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save to {editPlan}, then only then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [metadata changes documented], will you then load and read fully `{nextStepFile}` to execute and begin persona planning.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Reference documents loaded
|
||||
- Metadata changes discussed and documented
|
||||
- Type conversion implications understood
|
||||
- Edit plan updated
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Proceeded without loading reference documents
|
||||
- Type conversion without understanding implications
|
||||
- Changes not documented to edit plan
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
134
_bmad/bmb/workflows/agent/steps-e/e-05-persona.md
Normal file
134
_bmad/bmb/workflows/agent/steps-e/e-05-persona.md
Normal file
@@ -0,0 +1,134 @@
|
||||
---
|
||||
name: 'e-05-persona'
|
||||
description: 'Review and plan persona edits'
|
||||
|
||||
nextStepFile: './e-06-commands-menu.md'
|
||||
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
|
||||
personaProperties: ../data/persona-properties.md
|
||||
principlesCrafting: ../data/principles-crafting.md
|
||||
communicationPresets: ../data/communication-presets.csv
|
||||
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Edit Step 5: Persona
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Review the agent's persona and plan any changes using the four-field persona system.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: Load personaProperties, principlesCrafting, communicationPresets first
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Load reference documents before discussing persona edits
|
||||
- 📊 Maintain four-field system purity
|
||||
- 💬 Focus on persona fields that user wants to change
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Load personaProperties.md, principlesCrafting.md, communicationPresets.csv
|
||||
- 📊 Review current persona from editPlan
|
||||
- 💾 Document planned persona changes
|
||||
- 🚫 FORBIDDEN to proceed without documenting changes
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load Reference Documents
|
||||
|
||||
Read `{personaProperties}`, `{principlesCrafting}`, `{communicationPresets}` to understand the four-field system.
|
||||
|
||||
### 2. Review Current Persona
|
||||
|
||||
From `{editPlan}`, display current persona:
|
||||
- **role:** What they do
|
||||
- **identity:** Who they are
|
||||
- **communication_style:** How they speak
|
||||
- **principles:** Why they act (decision framework)
|
||||
|
||||
### 3. Discuss Persona Edits
|
||||
|
||||
For each field the user wants to change:
|
||||
|
||||
**Role edits:**
|
||||
- Ensure functional definition (not personality)
|
||||
- Define expertise domain and capabilities
|
||||
|
||||
**Identity edits:**
|
||||
- Ensure personality definition (not job description)
|
||||
- Define character, attitude, worldview
|
||||
|
||||
**Communication_style edits:**
|
||||
- Ensure speech pattern definition (not expertise)
|
||||
- Define tone, formality, voice
|
||||
|
||||
**Principles edits:**
|
||||
- First principle must activate expert knowledge
|
||||
- Other principles guide decision-making
|
||||
- Follow principlesCrafting.md guidance
|
||||
|
||||
### 4. Document to Edit Plan
|
||||
|
||||
Append to `{editPlan}`:
|
||||
|
||||
```yaml
|
||||
personaEdits:
|
||||
role:
|
||||
from: {current}
|
||||
to: {target}
|
||||
identity:
|
||||
from: {current}
|
||||
to: {target}
|
||||
communication_style:
|
||||
from: {current}
|
||||
to: {target}
|
||||
principles:
|
||||
from: {current}
|
||||
to: {target}
|
||||
```
|
||||
|
||||
### 5. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Commands Menu"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save to {editPlan}, then only then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [persona changes documented with field purity maintained], will you then load and read fully `{nextStepFile}` to execute and begin commands menu planning.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Reference documents loaded
|
||||
- Four-field system purity maintained
|
||||
- Persona changes documented
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Proceeded without loading reference documents
|
||||
- Field purity violated (mixed concepts)
|
||||
- Changes not documented to edit plan
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
122
_bmad/bmb/workflows/agent/steps-e/e-06-commands-menu.md
Normal file
122
_bmad/bmb/workflows/agent/steps-e/e-06-commands-menu.md
Normal file
@@ -0,0 +1,122 @@
|
||||
---
|
||||
name: 'e-06-commands-menu'
|
||||
description: 'Review and plan command/menu edits'
|
||||
|
||||
nextStepFile: './e-07-activation.md'
|
||||
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
|
||||
agentMenuPatterns: ../data/agent-menu-patterns.md
|
||||
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Edit Step 6: Commands Menu
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Review the agent's command menu and plan any additions, modifications, or removals.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: Load agentMenuPatterns first
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Load agentMenuPatterns before discussing menu edits
|
||||
- 📊 Follow A/P/C convention for menu structure
|
||||
- 💬 Focus on commands that user wants to add/modify/remove
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Load agentMenuPatterns.md
|
||||
- 📊 Review current commands from editPlan
|
||||
- 💾 Document planned command changes
|
||||
- 🚫 FORBIDDEN to proceed without documenting changes
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load Reference Documents
|
||||
|
||||
Read `{agentMenuPatterns}` to understand menu structure requirements.
|
||||
|
||||
### 2. Review Current Commands
|
||||
|
||||
From `{editPlan}`, display current commands with:
|
||||
- trigger
|
||||
- description
|
||||
- handler/action
|
||||
|
||||
### 3. Discuss Command Edits
|
||||
|
||||
**For additions:**
|
||||
- Define trigger (clear, intuitive, following conventions)
|
||||
- Define description (concise, one line)
|
||||
- Define handler/action (references capability)
|
||||
|
||||
**For modifications:**
|
||||
- Update trigger, description, or handler
|
||||
- Ensure still follows menu patterns
|
||||
|
||||
**For removals:**
|
||||
- Identify commands to remove
|
||||
- Confirm impact on agent functionality
|
||||
|
||||
### 4. Document to Edit Plan
|
||||
|
||||
Append to `{editPlan}`:
|
||||
|
||||
```yaml
|
||||
commandEdits:
|
||||
additions:
|
||||
- trigger: {trigger}
|
||||
description: {description}
|
||||
handler: {handler}
|
||||
modifications:
|
||||
- command: {existing-command}
|
||||
changes: {what-to-change}
|
||||
removals:
|
||||
- command: {command-to-remove}
|
||||
```
|
||||
|
||||
### 5. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Activation"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save to {editPlan}, then only then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [command changes documented], will you then load and read fully `{nextStepFile}` to execute and begin activation planning.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- agentMenuPatterns loaded
|
||||
- Command changes documented with trigger/description/handler
|
||||
- A/P/C convention followed
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Proceeded without loading reference documents
|
||||
- Commands missing required elements
|
||||
- Changes not documented to edit plan
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
125
_bmad/bmb/workflows/agent/steps-e/e-07-activation.md
Normal file
125
_bmad/bmb/workflows/agent/steps-e/e-07-activation.md
Normal file
@@ -0,0 +1,125 @@
|
||||
---
|
||||
name: 'e-07-activation'
|
||||
description: 'Review critical_actions and route to type-specific edit'
|
||||
|
||||
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
|
||||
criticalActions: ../data/critical-actions.md
|
||||
|
||||
# Type-specific edit routes
|
||||
simpleEdit: './e-08a-edit-simple.md'
|
||||
expertEdit: './e-08b-edit-expert.md'
|
||||
moduleEdit: './e-08c-edit-module.md'
|
||||
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Edit Step 7: Activation and Routing
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Review critical_actions and route to the appropriate type-specific edit step (Simple/Expert/Module).
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: Load criticalActions and editPlan first
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Load criticalActions.md before discussing activation
|
||||
- 📊 Determine target type for routing
|
||||
- 💬 Route based on POST-EDIT agent type
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Load criticalActions.md
|
||||
- 📊 Check editPlan for target agent type
|
||||
- 💾 Route to appropriate type-specific edit step
|
||||
- ➡️ Auto-advance to type-specific edit on [C]
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load Reference Documents
|
||||
|
||||
Read `{criticalActions}` and `{editPlan}` to understand:
|
||||
- Current critical_actions (if any)
|
||||
- Target agent type after edits
|
||||
|
||||
### 2. Review Critical Actions
|
||||
|
||||
If user wants to add/modify critical_actions:
|
||||
- Reference patterns from criticalActions.md
|
||||
- Define action name, description, invocation
|
||||
- For Expert agents: specify sidecar-folder and file paths
|
||||
|
||||
### 3. Determine Routing
|
||||
|
||||
Check `{editPlan}` for agent metadata (module and hasSidecar):
|
||||
|
||||
```yaml
|
||||
# Determine agent type from module + hasSidecar combination
|
||||
module ≠ "stand-alone" → route to e-08c-edit-module.md
|
||||
module = "stand-alone" + hasSidecar: true → route to e-08b-edit-expert.md
|
||||
module = "stand-alone" + hasSidecar: false → route to e-08a-edit-simple.md
|
||||
```
|
||||
|
||||
### 4. Document to Edit Plan
|
||||
|
||||
Append to `{editPlan}`:
|
||||
|
||||
```yaml
|
||||
activationEdits:
|
||||
criticalActions:
|
||||
additions: []
|
||||
modifications: []
|
||||
routing:
|
||||
destinationEdit: {e-08a|e-08b|e-08c}
|
||||
sourceType: {simple|expert|module} # Derived from module + hasSidecar
|
||||
```
|
||||
|
||||
### 5. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Type-Specific Edit"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save to {editPlan}, determine routing based on module + hasSidecar, then only then load and execute the appropriate type-specific edit step
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
This is the **ROUTING HUB** for edit flow. ONLY WHEN [C continue option] is selected and [routing determined], load and execute the appropriate type-specific edit step:
|
||||
|
||||
- module ≠ "stand-alone" → e-08c-edit-module.md (Module agent)
|
||||
- module = "stand-alone" + hasSidecar: true → e-08b-edit-expert.md (Expert agent)
|
||||
- module = "stand-alone" + hasSidecar: false → e-08a-edit-simple.md (Simple agent)
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- criticalActions.md loaded
|
||||
- Routing determined based on target type
|
||||
- Edit plan updated with routing info
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Proceeded without loading reference documents
|
||||
- Routing not determined
|
||||
- Wrong type-specific edit step selected
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
137
_bmad/bmb/workflows/agent/steps-e/e-08a-edit-simple.md
Normal file
137
_bmad/bmb/workflows/agent/steps-e/e-08a-edit-simple.md
Normal file
@@ -0,0 +1,137 @@
|
||||
---
|
||||
name: 'e-08a-edit-simple'
|
||||
description: 'Apply edits to Simple agent'
|
||||
|
||||
nextStepFile: './e-09-celebrate.md'
|
||||
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
|
||||
agentFile: '{original-agent-path}'
|
||||
agentBackup: '{original-agent-path}.backup'
|
||||
|
||||
# Template and Architecture
|
||||
simpleTemplate: ../templates/simple-agent.template.md
|
||||
simpleArch: ../data/simple-agent-architecture.md
|
||||
agentCompilation: ../data/agent-compilation.md
|
||||
agentMetadata: ../data/agent-metadata.md
|
||||
personaProperties: ../data/persona-properties.md
|
||||
principlesCrafting: ../data/principles-crafting.md
|
||||
agentMenuPatterns: ../data/agent-menu-patterns.md
|
||||
criticalActions: ../data/critical-actions.md
|
||||
---
|
||||
|
||||
# Edit Step 8a: Edit Simple Agent
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Apply all planned edits to the Simple agent YAML file using templates and architecture references for validation.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
- 🛑 ALWAYS create backup before modifying agent file
|
||||
- 📖 CRITICAL: Read template and architecture files first
|
||||
- 🔄 CRITICAL: Load editPlan and agentFile
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Load all reference files before applying edits
|
||||
- 📊 Apply edits exactly as specified in editPlan
|
||||
- 💾 Validate YAML after each edit
|
||||
- ➡️ Auto-advance to post-edit validation when complete
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Load template, architecture, and data files
|
||||
- 📊 Read editPlan to get all planned changes
|
||||
- 💾 Create backup
|
||||
- 📝 Apply edits: type conversion, metadata, persona, commands, critical_actions
|
||||
- ✅ Validate YAML syntax
|
||||
- ➡️ Auto-advance to next validation step
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load Reference Documents
|
||||
|
||||
Read all files before editing:
|
||||
- `{simpleTemplate}` - YAML structure reference
|
||||
- `{simpleArch}` - Simple agent architecture
|
||||
- `{agentCompilation}` - Assembly guidelines
|
||||
- `{agentMetadata}`, `{personaProperties}`, `{principlesCrafting}`
|
||||
- `{agentMenuPatterns}`, `{criticalActions}`
|
||||
|
||||
### 2. Load Edit Plan and Agent
|
||||
|
||||
Read `{editPlan}` to get all planned edits.
|
||||
Read `{agentFile}` to get current agent YAML.
|
||||
|
||||
### 3. Create Backup
|
||||
|
||||
ALWAYS backup before editing:
|
||||
`cp {agentFile} {agentBackup}`
|
||||
|
||||
Confirm: "Backup created at: `{agentBackup}`"
|
||||
|
||||
### 4. Apply Edits in Sequence
|
||||
|
||||
For each planned edit:
|
||||
|
||||
**Type Conversion (Simple ← Expert/Module):**
|
||||
- Converting TO Simple: Remove `metadata.sidecar-folder`, remove all sidecar references
|
||||
- Set `module: stand-alone` and `hasSidecar: false`
|
||||
- Remove type-specific fields from source type
|
||||
|
||||
**Metadata Edits:**
|
||||
- Apply each field change from metadataEdits
|
||||
|
||||
**Persona Edits:**
|
||||
- Replace persona section with new four-field persona
|
||||
- Validate field purity (role ≠ identity ≠ communication_style)
|
||||
|
||||
**Command Edits:**
|
||||
- Additions: append to commands array
|
||||
- Modifications: update specific commands
|
||||
- Removals: remove from commands array
|
||||
|
||||
**Critical Actions Edits:**
|
||||
- Additions: append to critical_actions array
|
||||
- Modifications: update specific actions
|
||||
- Removals: remove from array
|
||||
|
||||
### 5. Validate YAML After Each Edit
|
||||
|
||||
Confirm YAML syntax is valid after each modification.
|
||||
|
||||
### 6. Document Applied Edits
|
||||
|
||||
Append to `{editPlan}`:
|
||||
|
||||
```yaml
|
||||
editsApplied:
|
||||
- {edit-description}
|
||||
- {edit-description}
|
||||
backup: {agentBackup}
|
||||
timestamp: {YYYY-MM-DD HH:MM}
|
||||
```
|
||||
|
||||
### 7. Auto-Advance
|
||||
|
||||
When all edits applied successfully, load and execute `{nextStepFile}` immediately.
|
||||
|
||||
## SUCCESS METRICS
|
||||
|
||||
✅ Backup created
|
||||
✅ All reference files loaded
|
||||
✅ All edits applied correctly
|
||||
✅ YAML remains valid
|
||||
✅ Edit plan tracking updated
|
||||
|
||||
## FAILURE MODES
|
||||
|
||||
❌ Backup failed
|
||||
❌ YAML became invalid
|
||||
❌ Edits not applied as specified
|
||||
|
||||
---
|
||||
|
||||
**Auto-advancing to post-edit validation...
|
||||
119
_bmad/bmb/workflows/agent/steps-e/e-08b-edit-expert.md
Normal file
119
_bmad/bmb/workflows/agent/steps-e/e-08b-edit-expert.md
Normal file
@@ -0,0 +1,119 @@
|
||||
---
|
||||
name: 'e-08b-edit-expert'
|
||||
description: 'Apply edits to Expert agent'
|
||||
|
||||
nextStepFile: './e-09-celebrate.md'
|
||||
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
|
||||
agentFile: '{original-agent-path}'
|
||||
agentBackup: '{original-agent-path}.backup'
|
||||
|
||||
# Template and Architecture
|
||||
expertTemplate: ../templates/expert-agent-template/expert-agent.template.md
|
||||
expertArch: ../data/expert-agent-architecture.md
|
||||
agentCompilation: ../data/agent-compilation.md
|
||||
agentMetadata: ../data/agent-metadata.md
|
||||
personaProperties: ../data/persona-properties.md
|
||||
principlesCrafting: ../data/principles-crafting.md
|
||||
agentMenuPatterns: ../data/agent-menu-patterns.md
|
||||
criticalActions: ../data/critical-actions.md
|
||||
expertValidation: ../data/expert-agent-validation.md
|
||||
---
|
||||
|
||||
# Edit Step 8b: Edit Expert Agent
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Apply all planned edits to the Expert agent YAML file and manage sidecar structure changes.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
- 🛑 ALWAYS create backup before modifying agent file
|
||||
- 📖 CRITICAL: Read template and architecture files first
|
||||
- 🔄 CRITICAL: Load editPlan and agentFile
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Load all reference files before applying edits
|
||||
- 📊 Manage sidecar structure for Expert agents
|
||||
- 💾 Validate YAML and sidecar paths after edits
|
||||
- ➡️ Auto-advance to post-edit validation when complete
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Load template, architecture, and data files
|
||||
- 📊 Read editPlan to get all planned changes
|
||||
- 💾 Create backup
|
||||
- 📝 Apply edits including sidecar management
|
||||
- ✅ Validate YAML and sidecar paths
|
||||
- ➡️ Auto-advance to next validation step
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load Reference Documents
|
||||
|
||||
Read all files before editing:
|
||||
- `{expertTemplate}` - Expert YAML structure
|
||||
- `{expertArch}` - Expert agent architecture
|
||||
- `{agentCompilation}`, `{agentMetadata}`, `{personaProperties}`, `{principlesCrafting}`
|
||||
- `{agentMenuPatterns}`, `{criticalActions}`, `{expertValidation}`
|
||||
|
||||
### 2. Load Edit Plan and Agent
|
||||
|
||||
Read `{editPlan}` to get all planned edits.
|
||||
Read `{agentFile}` to get current agent YAML.
|
||||
|
||||
### 3. Create Backup
|
||||
|
||||
ALWAYS backup before editing:
|
||||
`cp {agentFile} {agentBackup}`
|
||||
|
||||
### 4. Apply Edits in Sequence
|
||||
|
||||
**Type Conversion TO Expert:**
|
||||
- Set `module: stand-alone` and `hasSidecar: true`
|
||||
- Add `metadata.sidecar-folder` if not present
|
||||
- Create sidecar directory next to agent.yaml: `{agent-folder}/{agent-name}-sidecar/`
|
||||
|
||||
**Sidecar Management:**
|
||||
- If changing sidecar-folder: update all critical_actions references
|
||||
- If removing sidecar (Expert → Simple): remove sidecar fields and folder
|
||||
- Create/update sidecar files as needed
|
||||
|
||||
**Metadata, Persona, Commands, Critical Actions:**
|
||||
- Same as Simple agent edit
|
||||
|
||||
### 5. Validate Sidecar Paths
|
||||
|
||||
After editing, confirm all critical_actions reference correct sidecar paths:
|
||||
`{project-root}/_bmad/_memory/{sidecar-folder}/{file}.md`
|
||||
|
||||
### 6. Document Applied Edits
|
||||
|
||||
Append to `{editPlan}` with sidecar changes noted.
|
||||
|
||||
### 7. Auto-Advance
|
||||
|
||||
When all edits applied successfully, load and execute `{nextStepFile}` immediately.
|
||||
|
||||
## SUCCESS METRICS
|
||||
|
||||
✅ Backup created
|
||||
✅ All reference files loaded
|
||||
✅ All edits applied correctly
|
||||
✅ YAML remains valid
|
||||
✅ Sidecar structure correct
|
||||
✅ Sidecar paths validated
|
||||
|
||||
## FAILURE MODES
|
||||
|
||||
❌ Backup failed
|
||||
❌ YAML became invalid
|
||||
❌ Sidecar paths broken
|
||||
❌ Edits not applied as specified
|
||||
|
||||
---
|
||||
|
||||
**Auto-advancing to post-edit validation...
|
||||
123
_bmad/bmb/workflows/agent/steps-e/e-08c-edit-module.md
Normal file
123
_bmad/bmb/workflows/agent/steps-e/e-08c-edit-module.md
Normal file
@@ -0,0 +1,123 @@
|
||||
---
|
||||
name: 'e-08c-edit-module'
|
||||
description: 'Apply edits to Module agent'
|
||||
|
||||
nextStepFile: './e-09-celebrate.md'
|
||||
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
|
||||
agentFile: '{original-agent-path}'
|
||||
agentBackup: '{original-agent-path}.backup'
|
||||
|
||||
# Template and Architecture (use expert as baseline for Module)
|
||||
expertTemplate: ../templates/expert-agent-template/expert-agent.template.md
|
||||
expertArch: ../data/expert-agent-architecture.md
|
||||
moduleArch: ../data/module-agent-validation.md
|
||||
agentCompilation: ../data/agent-compilation.md
|
||||
agentMetadata: ../data/agent-metadata.md
|
||||
personaProperties: ../data/persona-properties.md
|
||||
principlesCrafting: ../data/principles-crafting.md
|
||||
agentMenuPatterns: ../data/agent-menu-patterns.md
|
||||
criticalActions: ../data/critical-actions.md
|
||||
---
|
||||
|
||||
# Edit Step 8c: Edit Module Agent
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Apply all planned edits to the Module agent YAML file and manage workflow integration and sidecar structure.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
- 🛑 ALWAYS create backup before modifying agent file
|
||||
- 📖 CRITICAL: Read template and architecture files first
|
||||
- 🔄 CRITICAL: Load editPlan and agentFile
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Load all reference files before applying edits
|
||||
- 📊 Manage workflow integration paths for Module agents
|
||||
- 💾 Validate YAML and workflow paths after edits
|
||||
- ➡️ Auto-advance to post-edit validation when complete
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Load template, architecture, and data files
|
||||
- 📊 Read editPlan to get all planned changes
|
||||
- 💾 Create backup
|
||||
- 📝 Apply edits including workflow paths
|
||||
- ✅ Validate YAML and workflow paths
|
||||
- ➡️ Auto-advance to next validation step
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load Reference Documents
|
||||
|
||||
Read all files before editing - these are RULES that must be followed when editing agents:
|
||||
- `{expertTemplate}` - Module uses expert as baseline
|
||||
- `{expertArch}`, `{moduleArch}` - Architecture references
|
||||
- `{agentCompilation}`, `{agentMetadata}`, `{personaProperties}`, `{principlesCrafting}`
|
||||
- `{agentMenuPatterns}`, `{criticalActions}`
|
||||
|
||||
### 2. Load Edit Plan and Agent
|
||||
|
||||
Read `{editPlan}` to get all planned edits.
|
||||
Read `{agentFile}` to get current agent YAML.
|
||||
|
||||
### 3. Create Backup
|
||||
|
||||
ALWAYS backup before editing:
|
||||
`cp {agentFile} {agentBackup}`
|
||||
|
||||
### 4. Apply Edits in Sequence
|
||||
|
||||
**Type Conversion TO Module:**
|
||||
- Set `module` to module code (e.g., `bmm`, `cis`, `bmgd`, or custom)
|
||||
- Add workflow integration paths
|
||||
- Optionally set `hasSidecar: true` if complex multi-workflow module
|
||||
|
||||
**Workflow Path Management:**
|
||||
- Add: `skills: - workflow: {path}`
|
||||
- Remove: delete workflow entries
|
||||
- Modify: update workflow paths
|
||||
|
||||
**Sidecar for Multi-Workflow Modules:**
|
||||
- If 3+ workflows: consider sidecar creation
|
||||
- Add sidecar configuration if needed
|
||||
|
||||
**Metadata, Persona, Commands, Critical Actions:**
|
||||
- Same as Expert agent edit
|
||||
|
||||
### 5. Validate Workflow Paths
|
||||
|
||||
After editing, confirm all workflow paths are valid:
|
||||
`{project-root}/_bmad/{module-id}/workflows/{workflow-name}/workflow.md`
|
||||
|
||||
### 6. Document Applied Edits
|
||||
|
||||
Append to `{editPlan}` with workflow changes noted.
|
||||
|
||||
### 7. Auto-Advance
|
||||
|
||||
When all edits applied successfully, load and execute `{nextStepFile}` immediately.
|
||||
|
||||
## SUCCESS METRICS
|
||||
|
||||
✅ Backup created
|
||||
✅ All reference files loaded
|
||||
✅ All edits applied correctly
|
||||
✅ YAML remains valid
|
||||
✅ Workflow paths validated
|
||||
✅ Sidecar structure correct (if applicable)
|
||||
|
||||
## FAILURE MODES
|
||||
|
||||
❌ Backup failed
|
||||
❌ YAML became invalid
|
||||
❌ Workflow paths broken
|
||||
❌ Edits not applied as specified
|
||||
|
||||
---
|
||||
|
||||
**Auto-advancing to post-edit validation...
|
||||
155
_bmad/bmb/workflows/agent/steps-e/e-09-celebrate.md
Normal file
155
_bmad/bmb/workflows/agent/steps-e/e-09-celebrate.md
Normal file
@@ -0,0 +1,155 @@
|
||||
---
|
||||
name: 'e-09-celebrate'
|
||||
description: 'Celebrate successful agent edit completion'
|
||||
|
||||
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
|
||||
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
validationWorkflow: '{project-root}/src/modules/bmb/workflows/agent/steps-v/v-01-load-review.md'
|
||||
---
|
||||
|
||||
# Edit Step 9: Celebration
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Celebrate the successful agent edit, provide summary of changes, and mark edit workflow completion.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
- 🎉 ALWAYS celebrate the achievement with enthusiasm
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: Read editPlan to summarize what was accomplished
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are a celebration coordinator who acknowledges successful agent improvements
|
||||
- ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
|
||||
- ✅ We engage in collaborative dialogue, not command-response
|
||||
- ✅ You bring celebration energy, user brings their satisfaction, together we acknowledge successful collaboration
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Focus on celebrating and summarizing what was accomplished
|
||||
- 🚫 FORBIDDEN to end without marking workflow completion
|
||||
- 💬 Approach: Enthusiastic while providing clear summary
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎉 Celebrate the edit completion enthusiastically
|
||||
- 📊 Provide clear summary of all changes made
|
||||
- 💾 Mark workflow completion in edit plan
|
||||
- 🚫 FORBIDDEN to end without proper completion marking
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Available context: editPlan with full edit history
|
||||
- Focus: Celebration and summary
|
||||
- Limits: No more edits, only acknowledgment
|
||||
- Dependencies: All edits successfully applied
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.:
|
||||
|
||||
### 1. Read Edit Plan
|
||||
|
||||
Read `{editPlan}` to get:
|
||||
- Original agent state
|
||||
- All edits that were applied
|
||||
- Validation results (before and after)
|
||||
|
||||
### 2. Grand Celebration
|
||||
|
||||
"🎉 **Excellent work!** Your agent **{agent-name}** has been successfully updated!"
|
||||
|
||||
### 3. Edit Summary
|
||||
|
||||
```markdown
|
||||
## Edit Summary for {agent-name}
|
||||
|
||||
**Completed:** {YYYY-MM-DD HH:MM}
|
||||
**Edits Applied:** {count}
|
||||
|
||||
### What Changed
|
||||
|
||||
**Persona Updates:** {list or "None"}
|
||||
**Command Updates:** {list or "None"}
|
||||
**Metadata Updates:** {list or "None"}
|
||||
**Type Conversion:** {details or "None"}
|
||||
|
||||
### Validation Results
|
||||
|
||||
**Before:** {summary of pre-edit validation}
|
||||
**After:** {summary of post-edit validation}
|
||||
```
|
||||
|
||||
### 4. Verification Guidance
|
||||
|
||||
"**Quick Test:**
|
||||
- Load the agent and check it initializes correctly
|
||||
- Run through a few commands to verify behavior
|
||||
|
||||
**File Locations:**
|
||||
- **Agent File:** `{agentFile}`
|
||||
- **Backup:** `{agentFile}.backup`"
|
||||
|
||||
### 5. Document Completion
|
||||
|
||||
Append to editPlan:
|
||||
|
||||
```markdown
|
||||
## Edit Session Complete ✅
|
||||
|
||||
**Completed:** {YYYY-MM-DD HH:MM}
|
||||
**Status:** Success
|
||||
|
||||
### Final State
|
||||
- Agent file updated successfully
|
||||
- All edits applied
|
||||
- Backup preserved
|
||||
```
|
||||
|
||||
### 6. Present MENU OPTIONS
|
||||
|
||||
Display: "**✅ Agent Edit Complete! Select an Option:** [V] Run Validation [S] Skip - Complete Now [A] Advanced Elicitation [P] Party Mode"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF V: "Loading validation phase..." → Save completion status to {editPlan}, update frontmatter with edit completion, then load, read entire file, then execute {validationWorkflow}
|
||||
- IF S: "Skipping validation. Completing workflow..." → Save completion status to {editPlan} and end workflow gracefully
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- User can choose validation (V), skip to complete (S), or use advanced elicitation (A) or party mode (P)
|
||||
- After other menu items execution (A/P), return to this menu
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [S skip option] is selected and [completion documented], will the workflow end gracefully with agent edit complete.
|
||||
IF [V validation option] is selected, the validation workflow will be loaded to perform comprehensive validation checks.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Enthusiastic celebration of edit completion
|
||||
- Clear summary of all changes provided
|
||||
- Before/after validation comparison shown
|
||||
- Verification guidance provided
|
||||
- Workflow completion marked in edit plan
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Ending without marking workflow completion
|
||||
- Not providing clear summary of changes
|
||||
- Missing celebration of achievement
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
136
_bmad/bmb/workflows/agent/steps-v/v-01-load-review.md
Normal file
136
_bmad/bmb/workflows/agent/steps-v/v-01-load-review.md
Normal file
@@ -0,0 +1,136 @@
|
||||
---
|
||||
name: 'v-01-load-review'
|
||||
description: 'Load agent and initialize validation report'
|
||||
|
||||
nextStepFile: './v-02a-validate-metadata.md'
|
||||
validationReport: '{bmb_creations_output_folder}/validation-report-{agent-name}.md'
|
||||
agentMetadata: ../data/agent-metadata.md
|
||||
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Validate Step 1: Load Agent for Review
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Load the existing agent file and initialize a validation report to track all findings.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Load the complete agent file
|
||||
- 📊 Create validation report tracking document
|
||||
- 🚫 FORBIDDEN to proceed without user confirming correct agent
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Load the complete agent YAML file
|
||||
- 📊 Parse and display agent summary
|
||||
- 💾 Create validation report document
|
||||
- 🚫 FORBIDDEN to proceed without user confirmation
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load Agent File
|
||||
|
||||
Read the complete YAML from the agent file path provided by the user.
|
||||
If the module property of the agent metadata is stand-alone, it is not a module agent.
|
||||
If the module property of the agent is a module code (like bmm, bmb, etc...) it is a module agent.
|
||||
If the property hasSidecar: true exists in the metadata, then it is an expert agent.
|
||||
Else it is a simple agent.
|
||||
|
||||
If a module agent also hasSidecar: true - this means it is a modules expert agent, thus it can have sidecar.
|
||||
|
||||
### 2. Display Agent Summary
|
||||
|
||||
```markdown
|
||||
## Agent to Validate: {agent-name}
|
||||
|
||||
**Type:** {simple|expert|module}
|
||||
**File:** {agent-file-path}
|
||||
|
||||
### Current Structure:
|
||||
|
||||
**Persona:** {character count} characters
|
||||
**Commands:** {count} commands
|
||||
**Critical Actions:** {count} actions
|
||||
```
|
||||
|
||||
### 3. Create Validation Report
|
||||
|
||||
Initialize the validation report:
|
||||
|
||||
```markdown
|
||||
---
|
||||
agentName: '{agent-name}'
|
||||
agentType: '{simple|expert|module}' # Derived from module + hasSidecar
|
||||
agentFile: '{agent-file-path}'
|
||||
validationDate: '{YYYY-MM-DD}'
|
||||
stepsCompleted:
|
||||
- v-01-load-review.md
|
||||
---
|
||||
|
||||
# Validation Report: {agent-name}
|
||||
|
||||
## Agent Overview
|
||||
|
||||
**Name:** {agent-name}
|
||||
**Type:** {simple|expert|module} # Derived from: module + hasSidecar
|
||||
**module:** {module-value}
|
||||
**hasSidecar:** {true|false}
|
||||
**File:** {agent-file-path}
|
||||
|
||||
---
|
||||
|
||||
## Validation Findings
|
||||
|
||||
*This section will be populated by validation steps*
|
||||
```
|
||||
|
||||
Write to `{validationReport}`.
|
||||
|
||||
### 4. Present MENU OPTIONS
|
||||
|
||||
Display: "**Is this the correct agent to validate and is it identified as the proper type?** [A] Advanced Elicitation [P] Party Mode [C] Yes, Begin Validation"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save to {validationReport}, then only then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#4-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [agent loaded and report created], will you then load and read fully `{nextStepFile}` to execute and begin validation.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Agent file loaded successfully
|
||||
- Validation report created
|
||||
- User confirmed correct agent
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Failed to load agent file
|
||||
- Report not created
|
||||
- Proceeded without user confirmation
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
116
_bmad/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md
Normal file
116
_bmad/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md
Normal file
@@ -0,0 +1,116 @@
|
||||
---
|
||||
name: 'v-02a-validate-metadata'
|
||||
description: 'Validate metadata and append to report'
|
||||
|
||||
nextStepFile: './v-02b-validate-persona.md'
|
||||
validationReport: '{bmb_creations_output_folder}/validation-report-{agent-name}.md'
|
||||
agentMetadata: ../data/agent-metadata.md
|
||||
agentFile: '{agent-file-path}'
|
||||
---
|
||||
|
||||
# Validate Step 2a: Validate Metadata
|
||||
|
||||
## STEP GOAL
|
||||
|
||||
Validate the agent's metadata properties against BMAD standards as defined in agentMetadata.md. Append findings to validation report and auto-advance.
|
||||
|
||||
## MANDATORY EXECUTION RULES
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: Read validationReport and agentMetadata first
|
||||
- 🔄 CRITICAL: Load the actual agent file to validate metadata
|
||||
- 🚫 NO MENU - append findings and auto-advance
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Validate metadata against agentMetadata.md rules
|
||||
- 📊 Append findings to validation report
|
||||
- 🚫 FORBIDDEN to present menu
|
||||
|
||||
## EXECUTION PROTOCOLS
|
||||
|
||||
- 🎯 Load agentMetadata.md reference
|
||||
- 🎯 Load the actual agent file for validation
|
||||
- 📊 Validate all metadata fields
|
||||
- 💾 Append findings to validation report
|
||||
- ➡️ Auto-advance to next validation step
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load References
|
||||
|
||||
Read `{agentMetadata}`, `{validationReport}`, and `{agentFile}`.
|
||||
|
||||
### 2. Validate Metadata
|
||||
|
||||
Perform these checks systematically - validate EVERY rule specified in agentMetadata.md:
|
||||
|
||||
1. **Required Fields Existence**
|
||||
- [ ] id: Present and non-empty
|
||||
- [ ] name: Present and non-empty (display name)
|
||||
- [ ] title: Present and non-empty
|
||||
- [ ] icon: Present (emoji or symbol)
|
||||
- [ ] module: Present and valid format
|
||||
- [ ] hasSidecar: Present (boolean, if applicable)
|
||||
|
||||
2. **Format Validation**
|
||||
- [ ] id: Uses kebab-case, no spaces, unique identifier
|
||||
- [ ] name: Clear display name for UI
|
||||
- [ ] title: Concise functional description
|
||||
- [ ] icon: Appropriate emoji or unicode symbol
|
||||
- [ ] module: Either a 3-4 letter module code OR 'stand-alone'
|
||||
- [ ] hasSidecar: Boolean value, matches actual agent structure
|
||||
|
||||
3. **Content Quality**
|
||||
- [ ] id: Unique and descriptive
|
||||
- [ ] name: Clear and user-friendly
|
||||
- [ ] title: Accurately describes agent's function
|
||||
- [ ] icon: Visually representative of agent's purpose
|
||||
- [ ] module: Correctly identifies module membership
|
||||
- [ ] hasSidecar: Correctly indicates if agent uses sidecar files
|
||||
|
||||
4. **Agent Type Consistency**
|
||||
- [ ] If hasSidecar: true, sidecar folder path must be specified
|
||||
- [ ] If module is a module code, agent is a module agent
|
||||
- [ ] If module is 'stand-alone', agent is not part of a module
|
||||
- [ ] No conflicting type indicators
|
||||
|
||||
### 3. Append Findings to Report
|
||||
|
||||
Append to `{validationReport}`:
|
||||
|
||||
```markdown
|
||||
### Metadata Validation
|
||||
|
||||
**Status:** {✅ PASS / ⚠️ WARNING / ❌ FAIL}
|
||||
|
||||
**Checks:**
|
||||
- [ ] id: kebab-case, no spaces, unique
|
||||
- [ ] name: clear display name
|
||||
- [ ] title: concise function description
|
||||
- [ ] icon: appropriate emoji/symbol
|
||||
- [ ] module: correct format (code or stand-alone)
|
||||
- [ ] hasSidecar: matches actual usage
|
||||
|
||||
**Detailed Findings:**
|
||||
|
||||
*PASSING:*
|
||||
{List of passing checks}
|
||||
|
||||
*WARNINGS:*
|
||||
{List of non-blocking issues}
|
||||
|
||||
*FAILURES:*
|
||||
{List of blocking issues that must be fixed}
|
||||
```
|
||||
|
||||
### 4. Auto-Advance
|
||||
|
||||
Load and execute `{nextStepFile}` immediately.
|
||||
|
||||
---
|
||||
|
||||
**Validating persona...**
|
||||
124
_bmad/bmb/workflows/agent/steps-v/v-02b-validate-persona.md
Normal file
124
_bmad/bmb/workflows/agent/steps-v/v-02b-validate-persona.md
Normal file
@@ -0,0 +1,124 @@
|
||||
---
|
||||
name: 'v-02b-validate-persona'
|
||||
description: 'Validate persona and append to report'
|
||||
|
||||
nextStepFile: './v-02c-validate-menu.md'
|
||||
validationReport: '{bmb_creations_output_folder}/validation-report-{agent-name}.md'
|
||||
personaProperties: ../data/persona-properties.md
|
||||
principlesCrafting: ../data/principles-crafting.md
|
||||
agentFile: '{agent-file-path}'
|
||||
---
|
||||
|
||||
# Validate Step 2b: Validate Persona
|
||||
|
||||
## STEP GOAL
|
||||
|
||||
Validate the agent's persona against BMAD standards as defined in personaProperties.md and principlesCrafting.md. Append findings to validation report and auto-advance.
|
||||
|
||||
## MANDATORY EXECUTION RULES
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: Read validationReport and persona references first
|
||||
- 🔄 CRITICAL: Load the actual agent file to validate persona
|
||||
- 🚫 NO MENU - append findings and auto-advance
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Validate persona against personaProperties.md rules
|
||||
- 📊 Append findings to validation report
|
||||
- 🚫 FORBIDDEN to present menu
|
||||
|
||||
## EXECUTION PROTOCOLS
|
||||
|
||||
- 🎯 Load personaProperties.md and principlesCrafting.md
|
||||
- 🎯 Load the actual agent file for validation
|
||||
- 📊 Validate persona fields
|
||||
- 💾 Append findings to validation report
|
||||
- ➡️ Auto-advance to next validation step
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load References
|
||||
|
||||
Read `{personaProperties}`, `{principlesCrafting}`, `{validationReport}`, and `{agentFile}`.
|
||||
|
||||
### 2. Validate Persona
|
||||
|
||||
Perform these checks systematically - validate EVERY rule specified in personaProperties.md:
|
||||
|
||||
1. **Required Fields Existence**
|
||||
- [ ] role: Present, clear, and specific
|
||||
- [ ] identity: Present and defines who the agent is
|
||||
- [ ] communication_style: Present and appropriate to role
|
||||
- [ ] principles: Present as array, not empty (if applicable)
|
||||
|
||||
2. **Content Quality - Role**
|
||||
- [ ] Role is specific (not generic like "assistant")
|
||||
- [ ] Role aligns with agent's purpose and menu items
|
||||
- [ ] Role is achievable within LLM capabilities
|
||||
- [ ] Role scope is appropriate (not too broad/narrow)
|
||||
|
||||
3. **Content Quality - Identity**
|
||||
- [ ] Identity clearly defines the agent's character
|
||||
- [ ] Identity is consistent with the role
|
||||
- [ ] Identity provides context for behavior
|
||||
- [ ] Identity is not generic or cliché
|
||||
|
||||
4. **Content Quality - Communication Style**
|
||||
- [ ] Communication style is clearly defined
|
||||
- [ ] Style matches the role and target users
|
||||
- [ ] Style is consistent throughout the definition
|
||||
- [ ] Style examples or guidance provided if nuanced
|
||||
- [ ] Style focuses on speech patterns only (not behavior)
|
||||
|
||||
5. **Content Quality - Principles**
|
||||
- [ ] Principles are actionable (not vague platitudes)
|
||||
- [ ] Principles guide behavior and decisions
|
||||
- [ ] Principles are consistent with role
|
||||
- [ ] 3-7 principles recommended (not overwhelming)
|
||||
- [ ] Each principle is clear and specific
|
||||
- [ ] First principle activates expert knowledge domain
|
||||
|
||||
6. **Consistency Checks**
|
||||
- [ ] Role, identity, communication_style, principles all align
|
||||
- [ ] No contradictions between principles
|
||||
- [ ] Persona supports the menu items defined
|
||||
- [ ] Language and terminology consistent
|
||||
|
||||
### 3. Append Findings to Report
|
||||
|
||||
Append to `{validationReport}`:
|
||||
|
||||
```markdown
|
||||
### Persona Validation
|
||||
|
||||
**Status:** {✅ PASS / ⚠️ WARNING / ❌ FAIL}
|
||||
|
||||
**Checks:**
|
||||
- [ ] role: specific, not generic
|
||||
- [ ] identity: defines who agent is
|
||||
- [ ] communication_style: speech patterns only
|
||||
- [ ] principles: first principle activates expert knowledge
|
||||
|
||||
**Detailed Findings:**
|
||||
|
||||
*PASSING:*
|
||||
{List of passing checks}
|
||||
|
||||
*WARNINGS:*
|
||||
{List of non-blocking issues}
|
||||
|
||||
*FAILURES:*
|
||||
{List of blocking issues that must be fixed}
|
||||
```
|
||||
|
||||
### 4. Auto-Advance
|
||||
|
||||
Load and execute `{nextStepFile}` immediately.
|
||||
|
||||
---
|
||||
|
||||
**Validating menu structure...**
|
||||
145
_bmad/bmb/workflows/agent/steps-v/v-02c-validate-menu.md
Normal file
145
_bmad/bmb/workflows/agent/steps-v/v-02c-validate-menu.md
Normal file
@@ -0,0 +1,145 @@
|
||||
---
|
||||
name: 'v-02c-validate-menu'
|
||||
description: 'Validate menu structure and append to report'
|
||||
|
||||
nextStepFile: './v-02d-validate-structure.md'
|
||||
validationReport: '{bmb_creations_output_folder}/validation-report-{agent-name}.md'
|
||||
agentMenuPatterns: ../data/agent-menu-patterns.md
|
||||
agentFile: '{agent-file-path}'
|
||||
---
|
||||
|
||||
# Validate Step 2c: Validate Menu
|
||||
|
||||
## STEP GOAL
|
||||
|
||||
Validate the agent's command menu structure against BMAD standards as defined in agentMenuPatterns.md. Append findings to validation report and auto-advance.
|
||||
|
||||
## MANDATORY EXECUTION RULES
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: Read validationReport and agentMenuPatterns first
|
||||
- 🔄 CRITICAL: Load the actual agent file to validate menu
|
||||
- 🚫 NO MENU - append findings and auto-advance
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Validate menu against agentMenuPatterns.md rules
|
||||
- 📊 Append findings to validation report
|
||||
- 🚫 FORBIDDEN to present menu
|
||||
|
||||
## EXECUTION PROTOCOLS
|
||||
|
||||
- 🎯 Load agentMenuPatterns.md reference
|
||||
- 🎯 Load the actual agent file for validation
|
||||
- 📊 Validate commands and menu
|
||||
- 💾 Append findings to validation report
|
||||
- ➡️ Auto-advance to next validation step
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load References
|
||||
|
||||
Read `{agentMenuPatterns}`, `{validationReport}`, and `{agentFile}`.
|
||||
|
||||
### 2. Validate Menu
|
||||
|
||||
Perform these checks systematically - validate EVERY rule specified in agentMenuPatterns.md:
|
||||
|
||||
1. **Menu Structure**
|
||||
- [ ] Menu section exists and is properly formatted
|
||||
- [ ] At least one menu item defined (unless intentionally tool-less)
|
||||
- [ ] Menu items follow proper YAML structure
|
||||
- [ ] Each item has required fields (name, description, pattern)
|
||||
|
||||
2. **Menu Item Requirements**
|
||||
For each menu item:
|
||||
- [ ] name: Present, unique, uses kebab-case
|
||||
- [ ] description: Clear and concise
|
||||
- [ ] pattern: Valid regex pattern or tool reference
|
||||
- [ ] scope: Appropriate scope defined (if applicable)
|
||||
|
||||
3. **Pattern Quality**
|
||||
- [ ] Patterns are valid and testable
|
||||
- [ ] Patterns are specific enough to match intended inputs
|
||||
- [ ] Patterns are not overly restrictive
|
||||
- [ ] Patterns use appropriate regex syntax
|
||||
|
||||
4. **Description Quality**
|
||||
- [ ] Each item has clear description
|
||||
- [ ] Descriptions explain what the item does
|
||||
- [ ] Descriptions are consistent in style
|
||||
- [ ] Descriptions help users understand when to use
|
||||
|
||||
5. **Alignment Checks**
|
||||
- [ ] Menu items align with agent's role/purpose
|
||||
- [ ] Menu items are supported by agent's expertise
|
||||
- [ ] Menu items fit within agent's constraints
|
||||
- [ ] Menu items are appropriate for target users
|
||||
|
||||
6. **Completeness**
|
||||
- [ ] Core capabilities for this role are covered
|
||||
- [ ] No obvious missing functionality
|
||||
- [ ] Menu scope is appropriate (not too sparse/overloaded)
|
||||
- [ ] Related functionality is grouped logically
|
||||
|
||||
7. **Standards Compliance**
|
||||
- [ ] No prohibited patterns or commands
|
||||
- [ ] No security vulnerabilities in patterns
|
||||
- [ ] No ambiguous or conflicting items
|
||||
- [ ] Consistent naming conventions
|
||||
|
||||
8. **Menu Link Validation (Agent Type Specific)**
|
||||
- [ ] Determine agent type from metadata:
|
||||
- Simple: module property is 'stand-alone' AND hasSidecar is false/absent
|
||||
- Expert: hasSidecar is true
|
||||
- Module: module property is a module code (e.g., 'bmm', 'bmb', 'bmgd', 'bmad')
|
||||
- [ ] For Expert agents (hasSidecar: true):
|
||||
- Menu handlers SHOULD reference external sidecar files (e.g., `./{agent-name}-sidecar/...`)
|
||||
- OR have inline prompts defined directly in the handler
|
||||
- [ ] For Module agents (module property is a module code):
|
||||
- Menu handlers SHOULD reference external module files under the module path
|
||||
- Exec paths must start with `{project-root}/_bmad/{module}/...`
|
||||
- Verify referenced files exist under the module directory
|
||||
- [ ] For Simple agents (stand-alone, no sidecar):
|
||||
- Menu handlers MUST NOT have external file links
|
||||
- Menu handlers SHOULD only use relative links within the same file (e.g., `#section-name`)
|
||||
- OR have inline prompts defined directly in the handler
|
||||
|
||||
### 3. Append Findings to Report
|
||||
|
||||
Append to `{validationReport}`:
|
||||
|
||||
```markdown
|
||||
### Menu Validation
|
||||
|
||||
**Status:** {✅ PASS / ⚠️ WARNING / ❌ FAIL}
|
||||
|
||||
**Checks:**
|
||||
- [ ] A/P/C convention followed
|
||||
- [ ] Command names clear and descriptive
|
||||
- [ ] Command descriptions specific and actionable
|
||||
- [ ] Menu handling logic properly specified
|
||||
- [ ] Agent type appropriate menu links verified
|
||||
|
||||
**Detailed Findings:**
|
||||
|
||||
*PASSING:*
|
||||
{List of passing checks}
|
||||
|
||||
*WARNINGS:*
|
||||
{List of non-blocking issues}
|
||||
|
||||
*FAILURES:*
|
||||
{List of blocking issues that must be fixed}
|
||||
```
|
||||
|
||||
### 4. Auto-Advance
|
||||
|
||||
Load and execute `{nextStepFile}` immediately.
|
||||
|
||||
---
|
||||
|
||||
**Validating YAML structure...**
|
||||
136
_bmad/bmb/workflows/agent/steps-v/v-02d-validate-structure.md
Normal file
136
_bmad/bmb/workflows/agent/steps-v/v-02d-validate-structure.md
Normal file
@@ -0,0 +1,136 @@
|
||||
---
|
||||
name: 'v-02d-validate-structure'
|
||||
description: 'Validate YAML structure and append to report'
|
||||
|
||||
nextStepFile: './v-02e-validate-sidecar.md'
|
||||
validationReport: '{bmb_creations_output_folder}/validation-report-{agent-name}.md'
|
||||
simpleValidation: ../data/simple-agent-validation.md
|
||||
expertValidation: ../data/expert-agent-validation.md
|
||||
agentCompilation: ../data/agent-compilation.md
|
||||
agentFile: '{agent-file-path}'
|
||||
---
|
||||
|
||||
# Validate Step 2d: Validate Structure
|
||||
|
||||
## STEP GOAL
|
||||
|
||||
Validate the agent's YAML structure and completeness against BMAD standards as defined in agentCompilation.md. Append findings to validation report and auto-advance.
|
||||
|
||||
## MANDATORY EXECUTION RULES
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: Read validationReport and agentCompilation first
|
||||
- 🔄 CRITICAL: Load the actual agent file to validate structure
|
||||
- 🚫 NO MENU - append findings and auto-advance
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Validate structure against agentCompilation.md rules
|
||||
- 📊 Append findings to validation report
|
||||
- 🚫 FORBIDDEN to present menu
|
||||
|
||||
## EXECUTION PROTOCOLS
|
||||
|
||||
- 🎯 Load agentCompilation.md reference
|
||||
- 🎯 Load the actual agent file for validation
|
||||
- 📊 Validate YAML structure
|
||||
- 💾 Append findings to validation report
|
||||
- ➡️ Auto-advance to next validation step
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load References
|
||||
|
||||
Read `{agentCompilation}`, `{simpleValidation}`, `{expertValidation}`, `{validationReport}`, and `{agentFile}`.
|
||||
|
||||
### 2. Validate Structure
|
||||
|
||||
Perform these checks systematically - validate EVERY rule specified in agentCompilation.md:
|
||||
|
||||
#### A. YAML Syntax Validation
|
||||
- [ ] Parse YAML without errors
|
||||
- [ ] Check indentation consistency (2-space standard)
|
||||
- [ ] Validate proper escaping of special characters
|
||||
- [ ] Verify no duplicate keys in any section
|
||||
|
||||
#### B. Frontmatter Validation
|
||||
- [ ] All required fields present (name, description, version, etc.)
|
||||
- [ ] Field values are correct type (string, boolean, array)
|
||||
- [ ] No empty required fields
|
||||
- [ ] Proper array formatting with dashes
|
||||
- [ ] Boolean fields are actual booleans (not strings)
|
||||
|
||||
#### C. Section Completeness
|
||||
- [ ] All required sections present based on agent type
|
||||
- [ ] Sections not empty unless explicitly optional
|
||||
- [ ] Proper markdown heading hierarchy (##, ###)
|
||||
- [ ] No orphaned content without section headers
|
||||
|
||||
#### D. Field-Level Validation
|
||||
- [ ] Path references exist and are valid
|
||||
- [ ] Array fields properly formatted
|
||||
- [ ] No malformed YAML structures
|
||||
- [ ] File references use correct path format
|
||||
|
||||
#### E. Agent Type Specific Checks
|
||||
|
||||
**For Simple Agents (hasSidecar is false/absent, module is 'stand-alone'):**
|
||||
- [ ] No sidecar requirements
|
||||
- [ ] No sidecar-folder path in metadata
|
||||
- [ ] Basic fields complete
|
||||
- [ ] No expert-only configuration present
|
||||
- [ ] Menu handlers use only internal references (#) or inline prompts
|
||||
|
||||
**For Expert Agents (hasSidecar is true):**
|
||||
- [ ] Sidecar flag set correctly in metadata
|
||||
- [ ] Sidecar folder path specified in metadata
|
||||
- [ ] All expert fields present
|
||||
- [ ] Advanced features properly configured
|
||||
- [ ] Menu handlers reference sidecar files or have inline prompts
|
||||
|
||||
**For Module Agents (module is a module code like 'bmm', 'bmb', etc.):**
|
||||
- [ ] Module property is valid module code
|
||||
- [ ] Exec paths for menu handlers start with `{project-root}/_bmad/{module}/...`
|
||||
- [ ] Referenced files exist under the module directory
|
||||
- [ ] If also hasSidecar: true, sidecar configuration is valid
|
||||
|
||||
### 3. Append Findings to Report
|
||||
|
||||
Append to `{validationReport}`:
|
||||
|
||||
```markdown
|
||||
### Structure Validation
|
||||
|
||||
**Status:** {✅ PASS / ⚠️ WARNING / ❌ FAIL}
|
||||
|
||||
**Agent Type:** {simple|expert|module}
|
||||
|
||||
**Checks:**
|
||||
- [ ] Valid YAML syntax
|
||||
- [ ] Required fields present (name, description, type, persona)
|
||||
- [ ] Field types correct (arrays, strings)
|
||||
- [ ] Consistent 2-space indentation
|
||||
- [ ] Agent type appropriate structure
|
||||
|
||||
**Detailed Findings:**
|
||||
|
||||
*PASSING:*
|
||||
{List of passing checks}
|
||||
|
||||
*WARNINGS:*
|
||||
{List of non-blocking issues}
|
||||
|
||||
*FAILURES:*
|
||||
{List of blocking issues that must be fixed}
|
||||
```
|
||||
|
||||
### 4. Auto-Advance
|
||||
|
||||
Load and execute `{nextStepFile}` immediately.
|
||||
|
||||
---
|
||||
|
||||
**Validating sidecar structure...**
|
||||
136
_bmad/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md
Normal file
136
_bmad/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md
Normal file
@@ -0,0 +1,136 @@
|
||||
---
|
||||
name: 'v-02e-validate-sidecar'
|
||||
description: 'Validate sidecar structure and append to report'
|
||||
|
||||
nextStepFile: './v-03-summary.md'
|
||||
validationReport: '{bmb_creations_output_folder}/validation-report-{agent-name}.md'
|
||||
expertValidation: ../data/expert-agent-validation.md
|
||||
criticalActions: ../data/critical-actions.md
|
||||
agentFile: '{agent-file-path}'
|
||||
sidecarFolder: '{agent-sidecar-folder}'
|
||||
---
|
||||
|
||||
# Validate Step 2e: Validate Sidecar
|
||||
|
||||
## STEP GOAL
|
||||
|
||||
Validate the agent's sidecar structure (if Expert type) against BMAD standards as defined in expertValidation.md. Append findings to validation report and auto-advance.
|
||||
|
||||
## MANDATORY EXECUTION RULES
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: Read validationReport and expertValidation first
|
||||
- 🔄 CRITICAL: Load the actual agent file to check for sidecar
|
||||
- 🚫 NO MENU - append findings and auto-advance
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Validate sidecar against expertValidation.md rules (for Expert agents)
|
||||
- 📊 Append findings to validation report
|
||||
- 🚫 FORBIDDEN to present menu
|
||||
|
||||
## EXECUTION PROTOCOLS
|
||||
|
||||
- 🎯 Load expertValidation.md reference
|
||||
- 🎯 Load the actual agent file for validation
|
||||
- 📊 Validate sidecar if Expert type, skip for Simple/Module
|
||||
- 💾 Append findings to validation report
|
||||
- ➡️ Auto-advance to summary step
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load References
|
||||
|
||||
Read `{expertValidation}`, `{criticalActions}`, `{validationReport}`, and `{agentFile}`.
|
||||
|
||||
### 2. Conditional Validation
|
||||
|
||||
**IF (module = "stand-alone" AND hasSidecar = true) OR (module ≠ "stand-alone" AND hasSidecar = true):**
|
||||
Perform these checks systematically - validate EVERY rule specified in expertValidation.md:
|
||||
|
||||
#### A. Sidecar Folder Validation
|
||||
- [ ] Sidecar folder exists at specified path
|
||||
- [ ] Sidecar folder is accessible and readable
|
||||
- [ ] Sidecar folder path in metadata matches actual location
|
||||
- [ ] Folder naming follows convention: `{agent-name}-sidecar`
|
||||
|
||||
#### B. Sidecar File Inventory
|
||||
- [ ] List all files in sidecar folder
|
||||
- [ ] Verify expected files are present
|
||||
- [ ] Check for unexpected files
|
||||
- [ ] Validate file names follow conventions
|
||||
|
||||
#### C. Path Reference Validation
|
||||
For each sidecar path reference in agent YAML:
|
||||
- [ ] Extract path from YAML reference
|
||||
- [ ] Verify file exists at referenced path
|
||||
- [ ] Check path format is correct (relative/absolute as expected)
|
||||
- [ ] Validate no broken path references
|
||||
|
||||
#### D. Critical Actions File Validation (if present)
|
||||
- [ ] critical-actions.md file exists
|
||||
- [ ] File has proper frontmatter
|
||||
- [ ] Actions section is present and not empty
|
||||
- [ ] No critical sections missing
|
||||
- [ ] File content is complete (not just placeholder)
|
||||
|
||||
#### E. Module Files Validation (if present)
|
||||
- [ ] Module files exist at referenced paths
|
||||
- [ ] Each module file has proper frontmatter
|
||||
- [ ] Module file content is complete
|
||||
- [ ] No empty or placeholder module files
|
||||
|
||||
#### F. Sidecar Structure Completeness
|
||||
- [ ] All referenced sidecar files present
|
||||
- [ ] No orphaned references (files referenced but not present)
|
||||
- [ ] No unreferenced files (files present but not referenced)
|
||||
- [ ] File structure matches expert agent requirements
|
||||
|
||||
**IF (module = "stand-alone" AND hasSidecar = false):**
|
||||
- [ ] Mark sidecar validation as N/A
|
||||
- [ ] Confirm no sidecar-folder path in metadata
|
||||
- [ ] Confirm no sidecar references in menu handlers
|
||||
|
||||
### 3. Append Findings to Report
|
||||
|
||||
Append to `{validationReport}`:
|
||||
|
||||
```markdown
|
||||
### Sidecar Validation
|
||||
|
||||
**Status:** {✅ PASS / ⚠️ WARNING / ❌ FAIL / N/A}
|
||||
|
||||
**Agent Type:** {simple|expert|module with sidecar}
|
||||
|
||||
**Checks:**
|
||||
- [ ] metadata.sidecar-folder present (Expert only)
|
||||
- [ ] sidecar-path format correct
|
||||
- [ ] Sidecar files exist at specified path
|
||||
- [ ] All referenced files present
|
||||
- [ ] No broken path references
|
||||
|
||||
**Detailed Findings:**
|
||||
|
||||
*PASSING (for Expert agents):*
|
||||
{List of passing checks}
|
||||
|
||||
*WARNINGS:*
|
||||
{List of non-blocking issues}
|
||||
|
||||
*FAILURES:*
|
||||
{List of blocking issues that must be fixed}
|
||||
|
||||
*N/A (for Simple agents):*
|
||||
N/A - Agent is Simple type (module = "stand-alone" + hasSidecar: false, no sidecar required)
|
||||
```
|
||||
|
||||
### 4. Auto-Advance
|
||||
|
||||
Load and execute `{nextStepFile}` immediately.
|
||||
|
||||
---
|
||||
|
||||
**Compiling validation summary...**
|
||||
104
_bmad/bmb/workflows/agent/steps-v/v-03-summary.md
Normal file
104
_bmad/bmb/workflows/agent/steps-v/v-03-summary.md
Normal file
@@ -0,0 +1,104 @@
|
||||
---
|
||||
name: 'v-03-summary'
|
||||
description: 'Display complete validation report and offer next steps'
|
||||
|
||||
validationReport: '{bmb_creations_output_folder}/validation-report-{agent-name}.md'
|
||||
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Validate Step 3: Validation Summary
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Display the complete validation report to the user and offer options for fixing issues or improving the agent.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: Read validationReport to display findings
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Display complete validation report clearly
|
||||
- 📊 Offer options for fixing issues
|
||||
- 💬 Present next step choices
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Read validation report to collect all findings
|
||||
- 📊 Display organized summary
|
||||
- 💾 Allow user to decide next steps
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
|
||||
|
||||
### 1. Load Validation Report
|
||||
|
||||
Read `{validationReport}` to collect all validation findings.
|
||||
|
||||
### 2. Display Complete Report
|
||||
|
||||
```markdown
|
||||
## Validation Complete: {agent-name}
|
||||
|
||||
### Overall Status
|
||||
|
||||
{Summary table: Metadata | Persona | Menu | Structure | Sidecar}
|
||||
|
||||
### Detailed Findings
|
||||
|
||||
{Display all sections from the validation report}
|
||||
```
|
||||
|
||||
### 3. Present Next Steps
|
||||
|
||||
"What would you like to do?
|
||||
|
||||
**[E]dit Agent** - Launch edit workflow to fix issues or make improvements
|
||||
**[F]ix in Place** - Confirm which fixes you would like right now and we can fix without loading the full agent edit workflow
|
||||
**[S]ave Report** - Save this validation report and exit
|
||||
**[R]etry** - Run validation again (if you've made external changes)"
|
||||
|
||||
### 4. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [E] Edit Agent [S] Save & Exit [R] Retry Validation"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF E: Inform user they can launch edit workflow with the same agent file, then redisplay menu
|
||||
- IF F; Attempt to make users desired fixes without loading the full edit workflow
|
||||
- IF S: Save final report to {validationReport} and end workflow
|
||||
- IF R: Restart validation from step v-01
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#4-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
The validation workflow is complete when user selects [S] to save the report, or [E] to proceed to edit workflow.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Complete validation report displayed
|
||||
- All findings clearly organized
|
||||
- User offered clear next steps
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Findings not displayed to user
|
||||
- No clear next steps offered
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
stepsCompleted: []
|
||||
---
|
||||
|
||||
# Agent Design and Build Plan
|
||||
@@ -0,0 +1,77 @@
|
||||
{{#if comment}}
|
||||
------------------------------------------------------------------------------
|
||||
Expert Agent Handlebars Template
|
||||
Used by: step-06-build.md to generate final agent YAML
|
||||
Documentation: ../../data/expert-agent-architecture.md
|
||||
------------------------------------------------------------------------------
|
||||
{{/if}}
|
||||
agent:
|
||||
metadata:
|
||||
id: {{agent_id}}
|
||||
name: {{agent_name}}
|
||||
title: {{agent_title}}
|
||||
icon: {{agent_icon}}
|
||||
module: {{agent_module}}{{#if agent_module_comment}} {{!-- stand-alone, bmm, cis, bmgd, or other module --}}{{/if}}
|
||||
hasSidecar: {{has_sidecar}}{{#if has_sidecar_comment}} {{!-- true if agent has a sidecar folder, false otherwise --}}{{/if}}
|
||||
|
||||
persona:
|
||||
role: |
|
||||
{{persona_role}}{{#if persona_role_note}}
|
||||
{{!-- 1-2 sentences, first person --}}{{/if}}
|
||||
|
||||
identity: |
|
||||
{{persona_identity}}{{#if persona_identity_note}}
|
||||
{{!-- 2-5 sentences, first person, background/specializations --}}{{/if}}
|
||||
|
||||
communication_style: |
|
||||
{{communication_style}}{{#if communication_style_note}}
|
||||
{{!-- How the agent speaks, include memory reference patterns --}}{{/if}}
|
||||
|
||||
principles:
|
||||
{{#each principles}}
|
||||
- {{this}}
|
||||
{{/each}}
|
||||
|
||||
critical_actions:
|
||||
{{#each critical_actions}}
|
||||
- '{{{this}}}'
|
||||
{{/each}}
|
||||
|
||||
{{#if has_prompts}}
|
||||
prompts:
|
||||
{{#each prompts}}
|
||||
- id: {{id}}
|
||||
content: |
|
||||
{{{content}}}
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
|
||||
menu:
|
||||
{{#each menu_items}}
|
||||
- trigger: {{trigger_code}} or fuzzy match on {{trigger_command}}
|
||||
{{#if action_is_prompt}}
|
||||
action: '#{{action_id}}'
|
||||
{{else}}
|
||||
action: {{{action_inline}}}
|
||||
{{/if}}
|
||||
description: '[{{trigger_code}}] {{{description}}}'
|
||||
{{/each}}
|
||||
|
||||
{{#if has_install_config}}
|
||||
install_config:
|
||||
compile_time_only: true
|
||||
description: '{{install_description}}'
|
||||
questions:
|
||||
{{#each install_questions}}
|
||||
- var: {{var_name}}
|
||||
prompt: '{{prompt}}'
|
||||
type: {{question_type}}{{#if question_options}}
|
||||
options:
|
||||
{{#each question_options}}
|
||||
- label: '{{label}}'
|
||||
value: '{{value}}'
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
default: {{{default_value}}}
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
72
_bmad/bmb/workflows/agent/templates/simple-agent.template.md
Normal file
72
_bmad/bmb/workflows/agent/templates/simple-agent.template.md
Normal file
@@ -0,0 +1,72 @@
|
||||
{{#if comment}}
|
||||
------------------------------------------------------------------------------
|
||||
Simple Agent Handlebars Template
|
||||
Used by: step-06-build.md to generate final agent YAML
|
||||
Documentation: ../data/simple-agent-architecture.md
|
||||
------------------------------------------------------------------------------
|
||||
{{/if}}
|
||||
agent:
|
||||
metadata:
|
||||
id: {{agent_id}}
|
||||
name: {{agent_name}}
|
||||
title: {{agent_title}}
|
||||
icon: {{agent_icon}}
|
||||
module: {{agent_module}}{{#if agent_module_comment}} {{!-- stand-alone, bmm, cis, bmgd, or other module --}}{{/if}}
|
||||
hasSidecar: {{has_sidecar}}{{#if has_sidecar_comment}} {{!-- true if agent has a sidecar folder, false otherwise --}}{{/if}}
|
||||
|
||||
persona:
|
||||
role: |
|
||||
{{persona_role}}{{#if persona_role_note}}
|
||||
{{!-- 1-2 sentences, first person --}}{{/if}}
|
||||
|
||||
identity: |
|
||||
{{persona_identity}}{{#if persona_identity_note}}
|
||||
{{!-- 2-5 sentences, first person, background/specializations --}}{{/if}}
|
||||
|
||||
communication_style: |
|
||||
{{communication_style}}{{#if communication_style_note}}
|
||||
{{!-- How the agent speaks: tone, voice, mannerisms --}}{{/if}}
|
||||
|
||||
principles:
|
||||
{{#each principles}}
|
||||
- {{this}}
|
||||
{{/each}}
|
||||
|
||||
{{#if has_prompts}}
|
||||
prompts:
|
||||
{{#each prompts}}
|
||||
- id: {{id}}
|
||||
content: |
|
||||
{{{content}}}
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
|
||||
menu:
|
||||
{{#each menu_items}}
|
||||
- trigger: {{trigger_code}} or fuzzy match on {{trigger_command}}
|
||||
{{#if action_is_prompt}}
|
||||
action: '#{{action_id}}'
|
||||
{{else}}
|
||||
action: {{{action_inline}}}
|
||||
{{/if}}
|
||||
description: '[{{trigger_code}}] {{{description}}}'
|
||||
{{/each}}
|
||||
|
||||
{{#if has_install_config}}
|
||||
install_config:
|
||||
compile_time_only: true
|
||||
description: '{{install_description}}'
|
||||
questions:
|
||||
{{#each install_questions}}
|
||||
- var: {{var_name}}
|
||||
prompt: '{{prompt}}'
|
||||
type: {{question_type}}{{#if question_options}}
|
||||
options:
|
||||
{{#each question_options}}
|
||||
- label: '{{label}}'
|
||||
value: '{{value}}'
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
default: {{{default_value}}}
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
123
_bmad/bmb/workflows/agent/workflow.md
Normal file
123
_bmad/bmb/workflows/agent/workflow.md
Normal file
@@ -0,0 +1,123 @@
|
||||
---
|
||||
name: agent
|
||||
description: Tri-modal workflow for creating, editing, and validating BMAD Core compliant agents
|
||||
web_bundle: true
|
||||
---
|
||||
|
||||
# Agent Workflow
|
||||
|
||||
**Goal:** Collaboratively create, edit, or validate BMAD Core compliant agents through guided discovery and systematic execution.
|
||||
|
||||
**Your Role:** In addition to your name, communication_style, and persona, you are also an expert agent architect specializing in BMAD Core agent lifecycle management. You guide users through creating new agents, editing existing ones, or validating agent configurations.
|
||||
|
||||
---
|
||||
|
||||
## WORKFLOW ARCHITECTURE
|
||||
|
||||
This uses **step-file architecture** for disciplined execution:
|
||||
|
||||
### Core Principles
|
||||
|
||||
- **Micro-file Design**: Each step is a self-contained instruction file
|
||||
- **Just-In-Time Loading**: Only the current step file is in memory
|
||||
- **Sequential Enforcement**: Steps completed in order, conditional based on mode
|
||||
- **State Tracking**: Document progress in tracking files (agentPlan, editPlan, validationReport)
|
||||
- **Mode-Aware Routing**: Separate step flows for Create/Edit/Validate
|
||||
|
||||
### Step Processing Rules
|
||||
|
||||
1. **READ COMPLETELY**: Always read the entire step file before taking any action
|
||||
2. **FOLLOW SEQUENCE**: Execute numbered sections in order
|
||||
3. **WAIT FOR INPUT**: Halt at menus and wait for user selection
|
||||
4. **CHECK CONTINUATION**: Only proceed when user selects appropriate option
|
||||
5. **SAVE STATE**: Update progress before loading next step
|
||||
6. **LOAD NEXT**: When directed, load and execute the next step file
|
||||
|
||||
### Critical Rules
|
||||
|
||||
- 🛑 **NEVER** load multiple step files simultaneously
|
||||
- 📖 **ALWAYS** read entire step file before execution
|
||||
- 🚫 **NEVER** skip steps unless explicitly optional
|
||||
- 💾 **ALWAYS** save progress and outputs
|
||||
- 🎯 **ALWAYS** follow exact instructions in step files
|
||||
- ⏸️ **ALWAYS** halt at menus and wait for input
|
||||
- 📋 **NEVER** pre-load future steps
|
||||
|
||||
---
|
||||
|
||||
## MODE OVERVIEW
|
||||
|
||||
This workflow supports three modes:
|
||||
|
||||
| Mode | Purpose | Entry Point | Output |
|
||||
|------|---------|-------------|--------|
|
||||
| **Create** | Build new agent from scratch | `steps-c/step-01-brainstorm.md` | New `.agent.yaml` file |
|
||||
| **Edit** | Modify existing agent | `steps-e/e-01-load-existing.md` | Updated `.agent.yaml` file |
|
||||
| **Validate** | Review existing agent | `steps-v/v-01-load-review.md` | Validation report |
|
||||
|
||||
---
|
||||
|
||||
## INITIALIZATION SEQUENCE
|
||||
|
||||
### 1. Configuration Loading
|
||||
|
||||
Load and read full config from `{project-root}/_bmad/bmb/config.yaml`:
|
||||
|
||||
- `project_name`, `user_name`, `communication_language`, `document_output_language`, `bmb_creations_output_folder`
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### 2. Mode Determination
|
||||
|
||||
**Check if mode was specified in the command invocation:**
|
||||
|
||||
- If user invoked with "create agent" or "new agent" → Set mode to **create**
|
||||
- If user invoked with "edit agent" or "modify agent" → Set mode to **edit**
|
||||
- If user invoked with "validate agent" or "review agent" → Set mode to **validate**
|
||||
|
||||
**If mode is unclear from command, ask user:**
|
||||
|
||||
"Welcome to the BMAD Agent Workflow! What would you like to do?
|
||||
|
||||
**[C]reate** - Build a new agent from scratch
|
||||
**[E]dit** - Modify an existing agent
|
||||
**[V]alidate** - Review an existing agent and generate report
|
||||
|
||||
Please select: [C]reate / [E]dit / [V]alidate"
|
||||
|
||||
### 3. Route to First Step
|
||||
|
||||
**IF mode == create:**
|
||||
Load, read completely, then execute `steps-c/step-01-brainstorm.md`
|
||||
|
||||
**IF mode == edit:**
|
||||
Prompt for agent file path: "Which agent would you like to edit? Please provide the path to the `.agent.yaml` file."
|
||||
Then load, read completely, and execute `steps-e/e-01-load-existing.md`
|
||||
|
||||
**IF mode == validate:**
|
||||
Prompt for agent file path: "Which agent would you like to validate? Please provide the path to the `.agent.yaml` file."
|
||||
Then load, read completely, and execute `steps-v/v-01-load-review.md`
|
||||
|
||||
---
|
||||
|
||||
## MODE-SPECIFIC NOTES
|
||||
|
||||
### Create Mode
|
||||
- Starts with optional brainstorming
|
||||
- Progresses through discovery, metadata, persona, commands, activation
|
||||
- Builds agent based on type (Simple/Expert/Module)
|
||||
- Validates built agent
|
||||
- Celebrates completion with installation guidance
|
||||
|
||||
### Edit Mode
|
||||
- Loads existing agent first
|
||||
- Discovers what user wants to change
|
||||
- Validates current agent before editing
|
||||
- Creates structured edit plan
|
||||
- Applies changes with validation
|
||||
- Celebrates successful edit
|
||||
|
||||
### Validate Mode
|
||||
- Loads existing agent
|
||||
- Runs systematic validation (metadata, persona, menu, structure, sidecar)
|
||||
- Generates comprehensive validation report
|
||||
- Offers option to apply fixes if user desires
|
||||
179
_bmad/bmb/workflows/module/data/agent-architecture.md
Normal file
179
_bmad/bmb/workflows/module/data/agent-architecture.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# Agent Architecture for Modules
|
||||
|
||||
**Purpose:** High-level guidance for planning agents in your module — not implementation details (that's what the agent-builder workflow is for).
|
||||
|
||||
---
|
||||
|
||||
## Single Agent vs. Multi-Agent Module
|
||||
|
||||
### Single Agent Module
|
||||
|
||||
**Use when:** One persona can handle the module's purpose.
|
||||
|
||||
**Characteristics:**
|
||||
- Simpler, focused
|
||||
- Clear single point of contact
|
||||
- Good for narrow domains
|
||||
|
||||
**Question:** Could one expert agent with a sidecar handle this entire module?
|
||||
|
||||
---
|
||||
|
||||
### Multi-Agent Module
|
||||
|
||||
**Use when:** Different expertise areas justify specialized personas.
|
||||
|
||||
**Characteristics:**
|
||||
- Each agent has a distinct role and expertise
|
||||
- Agents form a cohesive team around the module's theme
|
||||
- Menus coordinate to guide users to the right agent
|
||||
|
||||
**Why multi-agent?**
|
||||
- Different workflows need different expert perspectives
|
||||
- Users expect to talk to "the right expert" for each task
|
||||
- The module covers a domain too broad for one persona
|
||||
|
||||
---
|
||||
|
||||
## Flagship Example: BMM Agent Team
|
||||
|
||||
BMM demonstrates a multi-agent module with **9 specialized agents** forming a complete software development team.
|
||||
|
||||
### The BMM Theme
|
||||
|
||||
**"Agile software delivery, AI-driven"**
|
||||
|
||||
Every agent serves this theme — they're a complete team working together.
|
||||
|
||||
### BMM Agent Overview
|
||||
|
||||
| Agent | Name | Role | Responsible For |
|
||||
|-------|------|------|-----------------|
|
||||
| PM | John | Product Manager | PRDs, requirements, user stories |
|
||||
| Architect | Winston | System Architect | Technical design, architecture |
|
||||
| UX | | UX Designer | User research, UX design |
|
||||
| Dev | | Developer | Implementation, coding |
|
||||
| TEA | | Test Engineer Architect | Test architecture, QA |
|
||||
| SM | | Scrum Master | Sprint planning, workflow status |
|
||||
| Tech Writer | | Technical Writer | Documentation |
|
||||
| Analyst | | Business Analyst | Analysis, metrics |
|
||||
| Quick Flow | | Solo Developer | Quick standalone work |
|
||||
|
||||
### Key Patterns
|
||||
|
||||
1. **Shared commands** — All agents have `[WS]` Workflow Status
|
||||
2. **Specialty commands** — Each agent has unique commands (PM→PRD, Architect→Architecture)
|
||||
3. **No overlap** — Each command has one clear owner
|
||||
4. **Collaboration** — Agents reference each other's work (PRD → Architecture → Implementation)
|
||||
|
||||
---
|
||||
|
||||
## Planning Your Agents
|
||||
|
||||
### For Each Agent, Document:
|
||||
|
||||
1. **Role** — What is this agent responsible for?
|
||||
2. **Workflows** — Which workflows will this agent trigger/own?
|
||||
3. **Human Name** — What's their persona name? (e.g., "John", "Winston")
|
||||
4. **Communication Style** — How do they talk? (e.g., "Direct and data-sharp", "Calm and pragmatic")
|
||||
5. **Skills/Expertise** — What knowledge does this agent bring?
|
||||
6. **Memory/Learning** — Does this agent need to remember things over time? (hasSidecar)
|
||||
|
||||
That's it! The agent-builder workflow will handle the detailed implementation.
|
||||
|
||||
---
|
||||
|
||||
## Agent Memory & Learning
|
||||
|
||||
### Sidecar Agents (hasSidecar: true)
|
||||
|
||||
**Use when:** The agent needs to remember context across sessions.
|
||||
|
||||
**Characteristics:**
|
||||
- Has a sidecar file that persists between conversations
|
||||
- Learns from user interactions
|
||||
- Remembers project details, preferences, past work
|
||||
|
||||
**Examples:**
|
||||
- An agent that tracks project decisions over time
|
||||
- An agent that learns user preferences
|
||||
- An agent that maintains ongoing project context
|
||||
|
||||
### Stateless Agents (hasSidecar: false)
|
||||
|
||||
**Use when:** The agent doesn't need persistent memory.
|
||||
|
||||
**Characteristics:**
|
||||
- Each conversation starts fresh
|
||||
- Relies on shared context files (like project-context.md)
|
||||
- Simpler, more predictable
|
||||
|
||||
**Most module agents are stateless** — they reference shared project context rather than maintaining their own memory.
|
||||
|
||||
---
|
||||
|
||||
## Agent-Workflow Coordination
|
||||
|
||||
### Menu Triggers
|
||||
|
||||
Each agent has menu items that trigger workflows:
|
||||
|
||||
| Trigger Type | Pattern | Example |
|
||||
|--------------|---------|---------|
|
||||
| Shared | Same across all agents | `[WS]` Workflow Status |
|
||||
| Specialty | Unique to this agent | `[PR]` Create PRD (PM only) |
|
||||
| Cross-reference | Points to another agent's workflow | "See architecture" |
|
||||
|
||||
### Simple Planning Format
|
||||
|
||||
For each agent, just document:
|
||||
|
||||
```
|
||||
Agent: PM (John)
|
||||
Role: Product Manager, requirements, PRDs
|
||||
Triggers:
|
||||
- WS → Workflow Status (shared)
|
||||
- PR → Create PRD (specialty)
|
||||
- ES → Epics and Stories (specialty)
|
||||
Memory: No (uses shared project-context)
|
||||
```
|
||||
|
||||
The agent-builder workflow will convert this into the proper format.
|
||||
|
||||
---
|
||||
|
||||
## When to Use Multiple Agents
|
||||
|
||||
**Consider multiple agents when:**
|
||||
- Different workflows require different expertise
|
||||
- The domain has clear specialization areas
|
||||
- Users would expect to talk to different "experts"
|
||||
- The module covers a broad process (like software development)
|
||||
|
||||
**Use a single agent when:**
|
||||
- The domain is focused and narrow
|
||||
- One expertise area covers all workflows
|
||||
- Simplicity is preferred
|
||||
- The agent could reasonably handle everything with a sidecar
|
||||
|
||||
---
|
||||
|
||||
## Quick Agent Planning Checklist
|
||||
|
||||
For each agent in your module:
|
||||
|
||||
- [ ] Role defined (what they're responsible for)
|
||||
- [ ] Workflows assigned (which workflows they trigger)
|
||||
- [ ] Human name chosen (persona)
|
||||
- [ ] Communication style described
|
||||
- [ ] Skills/expertise identified
|
||||
- [ ] Memory decision (hasSidecar: true/false)
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- **Don't worry about the exact YAML format** — agent-builder handles that
|
||||
- **Focus on the planning** — who does what, how they work together
|
||||
- **Keep it high-level** — this is about the module's agent architecture, not implementation details
|
||||
- **BMM is the reference** — look at how their agents form a cohesive team
|
||||
79
_bmad/bmb/workflows/module/data/agent-spec-template.md
Normal file
79
_bmad/bmb/workflows/module/data/agent-spec-template.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# Agent Specification: {agent_name}
|
||||
|
||||
**Module:** {module_code}
|
||||
**Status:** Placeholder — To be created via create-agent workflow
|
||||
**Created:** {date}
|
||||
|
||||
---
|
||||
|
||||
## Agent Metadata
|
||||
|
||||
```yaml
|
||||
agent:
|
||||
metadata:
|
||||
id: "_bmad/{module_code}/agents/{agent_file_name}.md"
|
||||
name: {agent_human_name}
|
||||
title: {agent_title}
|
||||
icon: {agent_icon}
|
||||
module: {module_code}
|
||||
hasSidecar: false
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Agent Persona
|
||||
|
||||
### Role
|
||||
|
||||
{agent_role}
|
||||
|
||||
### Identity
|
||||
|
||||
{agent_identity}
|
||||
|
||||
### Communication Style
|
||||
|
||||
{agent_communication_style}
|
||||
|
||||
### Principles
|
||||
|
||||
{agent_principles}
|
||||
|
||||
---
|
||||
|
||||
## Agent Menu
|
||||
|
||||
### Planned Commands
|
||||
|
||||
| Trigger | Command | Description | Workflow |
|
||||
|---------|---------|-------------|----------|
|
||||
{agent_menu_table}
|
||||
|
||||
---
|
||||
|
||||
## Agent Integration
|
||||
|
||||
### Shared Context
|
||||
|
||||
- References: `{shared_context_files}`
|
||||
- Collaboration with: {collaborating_agents}
|
||||
|
||||
### Workflow References
|
||||
|
||||
{workflow_references}
|
||||
|
||||
---
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
**Use the create-agent workflow to build this agent.**
|
||||
|
||||
Inputs needed:
|
||||
- Agent name and human name
|
||||
- Role and expertise area
|
||||
- Communication style preferences
|
||||
- Menu commands and workflow mappings
|
||||
|
||||
---
|
||||
|
||||
_Spec created on {date} via BMAD Module workflow_
|
||||
348
_bmad/bmb/workflows/module/data/module-installer-standards.md
Normal file
348
_bmad/bmb/workflows/module/data/module-installer-standards.md
Normal file
@@ -0,0 +1,348 @@
|
||||
# Module Installer Standards
|
||||
|
||||
**Purpose:** How the `_module-installer` folder works, including installer.js patterns and platform-specific configuration.
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
The `_module-installer` folder contains optional installation logic for your module. It runs AFTER the IDE installations and can:
|
||||
- Create directories specified in module.yaml
|
||||
- Copy assets or templates
|
||||
- Configure IDE-specific settings
|
||||
- Set up platform-specific integrations
|
||||
|
||||
---
|
||||
|
||||
## When Do You Need an Installer?
|
||||
|
||||
### Use an Installer When:
|
||||
|
||||
- Creating directories based on user configuration
|
||||
- Copying template files to the user's project
|
||||
- IDE-specific setup (Claude Code, Windsurf, Cursor, etc.)
|
||||
- Platform-specific integrations
|
||||
|
||||
### Skip the Installer When:
|
||||
|
||||
- Module only provides agents and workflows
|
||||
- No file operations needed
|
||||
- No IDE-specific configuration
|
||||
|
||||
---
|
||||
|
||||
## Folder Structure
|
||||
|
||||
```
|
||||
_module-installer/
|
||||
├── installer.js # Main installer (REQUIRED if folder exists)
|
||||
└── platform-specifics/ # IDE-specific handlers (optional)
|
||||
├── claude-code.js
|
||||
├── windsurf.js
|
||||
├── cursor.js
|
||||
└── ...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## installer.js Pattern
|
||||
|
||||
### Function Signature
|
||||
|
||||
```javascript
|
||||
/**
|
||||
* Module Installer
|
||||
*
|
||||
* @param {Object} options - Installation options
|
||||
* @param {string} options.projectRoot - The root directory of the target project
|
||||
* @param {Object} options.config - Module configuration from module.yaml (resolved variables)
|
||||
* @param {Array<string>} options.installedIDEs - Array of IDE codes that were installed
|
||||
* @param {Object} options.logger - Logger instance for output
|
||||
* @returns {Promise<boolean>} - Success status (true = success, false = failure)
|
||||
*/
|
||||
async function install(options) {
|
||||
const { projectRoot, config, installedIDEs, logger } = options;
|
||||
|
||||
try {
|
||||
// Installation logic here
|
||||
logger.log(chalk.blue('Installing {Module Name}...'));
|
||||
|
||||
// ... your logic ...
|
||||
|
||||
logger.log(chalk.green('✓ {Module Name} installation complete'));
|
||||
return true;
|
||||
} catch (error) {
|
||||
logger.error(chalk.red(`Error installing module: ${error.message}`));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { install };
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### What You Receive
|
||||
|
||||
| Parameter | Type | Description |
|
||||
|-----------|------|-------------|
|
||||
| `projectRoot` | string | Absolute path to the user's project root |
|
||||
| `config` | object | Resolved module.yaml variables |
|
||||
| `installedIDEs` | array | List of IDE codes installed (e.g., `['claude-code', 'windsurf']`) |
|
||||
| `logger` | object | Logger with `.log()`, `.warn()`, `.error()` methods |
|
||||
|
||||
The `config` object contains your module.yaml variables **after** user input:
|
||||
|
||||
```javascript
|
||||
// If module.yaml defined:
|
||||
// project_name:
|
||||
// prompt: "What is your project name?"
|
||||
// result: "{value}"
|
||||
|
||||
config.project_name // = user's input
|
||||
config.planning_artifacts // = resolved path
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Common Installation Tasks
|
||||
|
||||
### 1. Create Directories
|
||||
|
||||
```javascript
|
||||
const fs = require('fs-extra');
|
||||
const path = require('node:path');
|
||||
|
||||
// Create directory from config
|
||||
if (config['planning_artifacts']) {
|
||||
const dirConfig = config['planning_artifacts'].replace('{project-root}/', '');
|
||||
const dirPath = path.join(projectRoot, dirConfig);
|
||||
|
||||
if (!(await fs.pathExists(dirPath))) {
|
||||
logger.log(chalk.yellow(`Creating directory: ${dirConfig}`));
|
||||
await fs.ensureDir(dirPath);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Copy Assets
|
||||
|
||||
```javascript
|
||||
const assetsSource = path.join(__dirname, 'assets');
|
||||
const assetsDest = path.join(projectRoot, 'docs');
|
||||
|
||||
if (await fs.pathExists(assetsSource)) {
|
||||
await fs.copy(assetsSource, assetsDest);
|
||||
logger.log(chalk.green('✓ Copied assets to docs/'));
|
||||
}
|
||||
```
|
||||
|
||||
### 3. IDE-Specific Configuration
|
||||
|
||||
```javascript
|
||||
// Handle IDE-specific configurations
|
||||
if (installedIDEs && installedIDEs.length > 0) {
|
||||
logger.log(chalk.cyan(`Configuring for IDEs: ${installedIDEs.join(', ')}`));
|
||||
|
||||
for (const ide of installedIDEs) {
|
||||
await configureForIDE(ide, projectRoot, config, logger);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Platform-Specific Handlers
|
||||
|
||||
### Pattern
|
||||
|
||||
Create files in `platform-specifics/{ide-code}.js`:
|
||||
|
||||
```javascript
|
||||
// platform-specifics/claude-code.js
|
||||
|
||||
/**
|
||||
* Configure module for Claude Code
|
||||
*/
|
||||
async function install(options) {
|
||||
const { projectRoot, config, logger, platformInfo } = options;
|
||||
|
||||
try {
|
||||
// Claude Code specific configuration
|
||||
logger.log(chalk.dim(' Configuring Claude Code integration...'));
|
||||
|
||||
// Your logic here
|
||||
|
||||
return true;
|
||||
} catch (error) {
|
||||
logger.warn(chalk.yellow(` Warning: ${error.message}`));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { install };
|
||||
```
|
||||
|
||||
### Load from Main Installer
|
||||
|
||||
```javascript
|
||||
// installer.js
|
||||
const platformCodes = require(path.join(__dirname, '../../../../tools/cli/lib/platform-codes'));
|
||||
|
||||
async function configureForIDE(ide, projectRoot, config, logger) {
|
||||
// Validate platform code
|
||||
if (!platformCodes.isValidPlatform(ide)) {
|
||||
logger.warn(chalk.yellow(` Unknown platform: '${ide}'. Skipping.`));
|
||||
return;
|
||||
}
|
||||
|
||||
const platformName = platformCodes.getDisplayName(ide);
|
||||
const platformSpecificPath = path.join(__dirname, 'platform-specifics', `${ide}.js`);
|
||||
|
||||
try {
|
||||
if (await fs.pathExists(platformSpecificPath)) {
|
||||
const platformHandler = require(platformSpecificPath);
|
||||
|
||||
if (typeof platformHandler.install === 'function') {
|
||||
await platformHandler.install({ projectRoot, config, logger });
|
||||
logger.log(chalk.green(` ✓ Configured for ${platformName}`));
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
logger.warn(chalk.yellow(` Warning: Could not configure ${platformName}: ${error.message}`));
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Complete Example: BMM Installer
|
||||
|
||||
```javascript
|
||||
const fs = require('fs-extra');
|
||||
const path = require('node:path');
|
||||
const chalk = require('chalk');
|
||||
const platformCodes = require(path.join(__dirname, '../../../../tools/cli/lib/platform-codes'));
|
||||
|
||||
/**
|
||||
* BMM Module Installer
|
||||
*/
|
||||
async function install(options) {
|
||||
const { projectRoot, config, installedIDEs, logger } = options;
|
||||
|
||||
try {
|
||||
logger.log(chalk.blue('🚀 Installing BMM Module...'));
|
||||
|
||||
// Create output directory
|
||||
if (config['output_folder']) {
|
||||
const outputConfig = config['output_folder'].replace('{project-root}/', '');
|
||||
const outputPath = path.join(projectRoot, outputConfig);
|
||||
if (!(await fs.pathExists(outputPath))) {
|
||||
logger.log(chalk.yellow(`Creating output directory: ${outputConfig}`));
|
||||
await fs.ensureDir(outputPath);
|
||||
}
|
||||
}
|
||||
|
||||
// Create implementation artifacts directory
|
||||
if (config['implementation_artifacts']) {
|
||||
const storyConfig = config['implementation_artifacts'].replace('{project-root}/', '');
|
||||
const storyPath = path.join(projectRoot, storyConfig);
|
||||
if (!(await fs.pathExists(storyPath))) {
|
||||
logger.log(chalk.yellow(`Creating story directory: ${storyConfig}`));
|
||||
await fs.ensureDir(storyPath);
|
||||
}
|
||||
}
|
||||
|
||||
// IDE-specific configuration
|
||||
if (installedIDEs && installedIDEs.length > 0) {
|
||||
logger.log(chalk.cyan(`Configuring BMM for IDEs: ${installedIDEs.join(', ')}`));
|
||||
|
||||
for (const ide of installedIDEs) {
|
||||
await configureForIDE(ide, projectRoot, config, logger);
|
||||
}
|
||||
}
|
||||
|
||||
logger.log(chalk.green('✓ BMM Module installation complete'));
|
||||
return true;
|
||||
} catch (error) {
|
||||
logger.error(chalk.red(`Error installing BMM: ${error.message}`));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
async function configureForIDE(ide, projectRoot, config, logger) {
|
||||
if (!platformCodes.isValidPlatform(ide)) {
|
||||
logger.warn(chalk.yellow(` Warning: Unknown platform '${ide}'. Skipping.`));
|
||||
return;
|
||||
}
|
||||
|
||||
const platformSpecificPath = path.join(__dirname, 'platform-specifics', `${ide}.js`);
|
||||
|
||||
try {
|
||||
if (await fs.pathExists(platformSpecificPath)) {
|
||||
const platformHandler = require(platformSpecificPath);
|
||||
|
||||
if (typeof platformHandler.install === 'function') {
|
||||
await platformHandler.install({ projectRoot, config, logger });
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
logger.warn(chalk.yellow(` Warning: Could not load handler for ${ide}: ${error.message}`));
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { install };
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Best Practices
|
||||
|
||||
### DO:
|
||||
- Return `true` for success, `false` for failure
|
||||
- Use chalk for colored output
|
||||
- Log what you're doing (create, copy, configure)
|
||||
- Handle errors gracefully with try/catch
|
||||
- Validate paths before creating directories
|
||||
|
||||
### DON'T:
|
||||
- Assume paths exist — check with `fs.pathExists()`
|
||||
- Overwrite user files without asking
|
||||
- Fail silently — log errors
|
||||
- Use absolute paths — build from `projectRoot`
|
||||
|
||||
---
|
||||
|
||||
## Available Platform Codes
|
||||
|
||||
Common IDE codes:
|
||||
- `claude-code` — Anthropic's Claude Code
|
||||
- `windsurf` — Windsurf IDE
|
||||
- `cursor` — Cursor AI IDE
|
||||
- `vscode` — Visual Studio Code
|
||||
|
||||
Use `platformCodes.isValidPlatform(ide)` to validate.
|
||||
|
||||
---
|
||||
|
||||
## Testing Your Installer
|
||||
|
||||
1. Create a test project
|
||||
2. Run `bmad install {your-module}`
|
||||
3. Verify directories are created
|
||||
4. Check that config variables are resolved correctly
|
||||
5. Test platform-specific handlers
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Task | Code Pattern |
|
||||
|------|--------------|
|
||||
| Create directory | `await fs.ensureDir(path)` |
|
||||
| Check if exists | `await fs.pathExists(path)` |
|
||||
| Copy files | `await fs.copy(src, dest)` |
|
||||
| Log info | `logger.log(chalk.blue('message'))` |
|
||||
| Log success | `logger.log(chalk.green('✓ message'))` |
|
||||
| Log warning | `logger.warn(chalk.yellow('warning'))` |
|
||||
| Log error | `logger.error(chalk.red('error'))` |
|
||||
280
_bmad/bmb/workflows/module/data/module-standards.md
Normal file
280
_bmad/bmb/workflows/module/data/module-standards.md
Normal file
@@ -0,0 +1,280 @@
|
||||
# Module Standards
|
||||
|
||||
**Purpose:** Defines what a BMAD module is, its structure, and the three types of modules.
|
||||
|
||||
---
|
||||
|
||||
## What is a BMAD Module?
|
||||
|
||||
A **BMAD module** is a self-contained package of functionality that extends the BMAD framework. Modules provide:
|
||||
- **Agents** — AI personas with specialized expertise and menu-driven commands
|
||||
- **Workflows** — Structured processes for accomplishing complex tasks
|
||||
- **Configuration** — module.yaml for user customization
|
||||
- **Installation** — Optional installer.js for setup logic
|
||||
|
||||
---
|
||||
|
||||
## Module Types
|
||||
|
||||
### 1. Standalone Module
|
||||
|
||||
A new, independent module focused on a specific domain.
|
||||
|
||||
**Characteristics:**
|
||||
- Own module code (e.g., `healthcare-ai`, `legal-assist`)
|
||||
- Independent of other modules
|
||||
- Can be installed alongside any other modules
|
||||
- Has its own agents, workflows, configuration
|
||||
|
||||
**Location:** `src/modules/{module-code}/`
|
||||
|
||||
**Example:** CIS (Creative Innovation Suite) — a standalone module for innovation workflows
|
||||
|
||||
---
|
||||
|
||||
### 2. Extension Module
|
||||
|
||||
Extends an existing BMAD module with additional functionality.
|
||||
|
||||
**Characteristics:**
|
||||
- Builds upon an existing module's agents and workflows
|
||||
- May add new agents or workflows that complement the base module
|
||||
- Shares configuration context with the extended module
|
||||
- Typically installed alongside the module it extends
|
||||
|
||||
**Location:** `src/modules/{base-module}/extensions/{extension-code}/`
|
||||
|
||||
**Example:** An extension to BMM that adds specialized security review workflows
|
||||
|
||||
---
|
||||
|
||||
### Extension Module: Override & Merge Pattern
|
||||
|
||||
When an extension module is installed, its files merge with the base module following these rules:
|
||||
|
||||
#### Code Matching
|
||||
|
||||
The extension's `module.yaml` `code:` field matches the base module's code:
|
||||
|
||||
```yaml
|
||||
# Base module: src/modules/bmm/module.yaml
|
||||
code: bmm
|
||||
|
||||
# Extension: src/modules/bmm/extensions/security/module.yaml
|
||||
code: bmm # SAME CODE — extends BMM
|
||||
```
|
||||
|
||||
The **folder name** is unique (e.g., `bmm-security`) but the `code:` matches the base module.
|
||||
|
||||
#### File Merge Rules
|
||||
|
||||
| File Type | Same Name | Different Name |
|
||||
|-----------|-----------|----------------|
|
||||
| Agent file | **OVERRIDE** — replaces the base agent | **ADD** — new agent added |
|
||||
| Workflow folder | **OVERRIDE** — replaces the base workflow | **ADD** — new workflow added |
|
||||
| Other files | **OVERRIDE** — replaces base file | **ADD** — new file added |
|
||||
|
||||
#### Examples
|
||||
|
||||
**Override scenario:**
|
||||
```
|
||||
Base module (BMM):
|
||||
├── agents/
|
||||
│ └── pm.agent.yaml # Original PM agent
|
||||
|
||||
Extension (bmm-security):
|
||||
├── agents/
|
||||
│ └── pm.agent.yaml # Security-focused PM — REPLACES original
|
||||
|
||||
Result after installation:
|
||||
├── agents/
|
||||
│ └── pm.agent.yaml # Now the security version
|
||||
```
|
||||
|
||||
**Add scenario:**
|
||||
```
|
||||
Base module (BMM):
|
||||
├── agents/
|
||||
│ ├── pm.agent.yaml
|
||||
│ └── architect.agent.yaml
|
||||
|
||||
Extension (bmm-security):
|
||||
├── agents/
|
||||
│ └── security-auditor.agent.yaml # NEW agent
|
||||
|
||||
Result after installation:
|
||||
├── agents/
|
||||
│ ├── pm.agent.yaml
|
||||
│ ├── architect.agent.yaml
|
||||
│ └── security-auditor.agent.yaml # ADDED
|
||||
```
|
||||
|
||||
**Mixed scenario:**
|
||||
```
|
||||
Extension contains both overrides and new files — applies rules per file
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. Global Module
|
||||
|
||||
Affects the entire BMAD framework and all modules.
|
||||
|
||||
**Characteristics:**
|
||||
- Core functionality that impacts all modules
|
||||
- Often provides foundational services or utilities
|
||||
- Installed at the framework level
|
||||
- Use sparingly — only for truly global concerns
|
||||
|
||||
**Location:** `src/modules/{module-code}/` with `global: true` in module.yaml
|
||||
|
||||
**Example:** A module that provides universal logging or telemetry across BMAD
|
||||
|
||||
---
|
||||
|
||||
## Required Module Structure
|
||||
|
||||
```
|
||||
{module-code}/
|
||||
├── module.yaml # Module configuration (REQUIRED)
|
||||
├── README.md # Module documentation (REQUIRED)
|
||||
├── agents/ # Agent definitions (if any)
|
||||
│ └── {agent-name}.agent.yaml
|
||||
├── workflows/ # Workflow definitions (if any)
|
||||
│ └── {workflow-name}/
|
||||
│ └── workflow.md
|
||||
├── _module-installer/ # Installation logic (optional)
|
||||
│ ├── installer.js
|
||||
│ └── platform-specifics/
|
||||
│ ├── claude-code.js
|
||||
│ ├── windsurf.js
|
||||
│ └── ...
|
||||
└── {other folders} # Tasks, templates, data as needed
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Required Files
|
||||
|
||||
### module.yaml (REQUIRED)
|
||||
|
||||
Every module MUST have a `module.yaml` file with at minimum:
|
||||
|
||||
```yaml
|
||||
code: {module-code}
|
||||
name: "Module Display Name"
|
||||
header: "Brief module description"
|
||||
subheader: "Additional context"
|
||||
default_selected: false
|
||||
```
|
||||
|
||||
See: `module-yaml-conventions.md` for full specification.
|
||||
|
||||
---
|
||||
|
||||
### README.md (REQUIRED)
|
||||
|
||||
Every module MUST have a README.md with:
|
||||
- Module name and purpose
|
||||
- Installation instructions
|
||||
- Components section (agents, workflows)
|
||||
- Quick start guide
|
||||
- Module structure diagram
|
||||
- Configuration section
|
||||
- Usage examples
|
||||
- Author information
|
||||
|
||||
---
|
||||
|
||||
## Optional Components
|
||||
|
||||
### Agents
|
||||
|
||||
Agents are AI personas with:
|
||||
- Metadata (id, name, title, icon, module)
|
||||
- Persona (role, identity, communication_style, principles)
|
||||
- Menu (trigger → workflow/exec mappings)
|
||||
|
||||
See: `agent-architecture.md` for design guidance.
|
||||
|
||||
---
|
||||
|
||||
### Workflows
|
||||
|
||||
Workflows are structured processes with:
|
||||
- workflow.md (entry point)
|
||||
- steps/ folder with step files
|
||||
- data/ folder with shared reference
|
||||
- templates/ folder if needed
|
||||
|
||||
---
|
||||
|
||||
### _module-installer/
|
||||
|
||||
Optional installation logic for:
|
||||
- Creating directories
|
||||
- Copying assets
|
||||
- IDE-specific configuration
|
||||
- Platform-specific setup
|
||||
|
||||
See: `module-installer-standards.md` for patterns.
|
||||
|
||||
---
|
||||
|
||||
## Module Type Decision Tree
|
||||
|
||||
```
|
||||
START: Creating a module
|
||||
│
|
||||
├─ Is this a brand new independent domain?
|
||||
│ └─ YES → Standalone Module
|
||||
│
|
||||
├─ Does this extend an existing module?
|
||||
│ └─ YES → Extension Module
|
||||
│
|
||||
└─ Does this affect all modules globally?
|
||||
└─ YES → Global Module (use sparingly)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Naming Conventions
|
||||
|
||||
### Module Code
|
||||
|
||||
- **kebab-case** (e.g., `bmm`, `cis`, `bmgd`, `healthcare-ai`)
|
||||
- Short, memorable, descriptive
|
||||
- 2-20 characters
|
||||
- Lowercase letters, numbers, hyphens only
|
||||
|
||||
### Agent Files
|
||||
|
||||
- Format: `{role-name}.agent.yaml`
|
||||
- Example: `pm.agent.yaml`, `architect.agent.yaml`
|
||||
|
||||
### Workflow Folders
|
||||
|
||||
- Format: `{workflow-name}/`
|
||||
- Example: `prd/`, `create-architecture/`
|
||||
|
||||
---
|
||||
|
||||
## Module Dependencies
|
||||
|
||||
Modules can depend on:
|
||||
- **Core BMAD** — Always available
|
||||
- **Other modules** — Specify in module.yaml as `dependencies:`
|
||||
- **External tools** — Document in README, handle in installer
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Question | Answer |
|
||||
|----------|--------|
|
||||
| What's a module? | Self-contained package of agents, workflows, config |
|
||||
| What are the types? | Standalone, Extension, Global |
|
||||
| What's required? | module.yaml, README.md |
|
||||
| Where do modules live? | `src/modules/{code}/` |
|
||||
| How do agents work? | Menu triggers → workflow/exec |
|
||||
| How does installation work? | module.yaml prompts + optional installer.js |
|
||||
392
_bmad/bmb/workflows/module/data/module-yaml-conventions.md
Normal file
392
_bmad/bmb/workflows/module/data/module-yaml-conventions.md
Normal file
@@ -0,0 +1,392 @@
|
||||
# module.yaml Conventions
|
||||
|
||||
**Purpose:** Defines how module.yaml works, including variables, templates, and how they provide context to agents and workflows.
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
`module.yaml` is the configuration file for a BMAD module. It:
|
||||
- Defines module metadata (code, name, description)
|
||||
- Collects user input via prompts during installation
|
||||
- Makes those inputs available to agents and workflows as variables
|
||||
- Specifies which module should be selected by default
|
||||
|
||||
---
|
||||
|
||||
## Frontmatter Fields
|
||||
|
||||
### Required Fields
|
||||
|
||||
```yaml
|
||||
code: {module-code} # kebab-case identifier
|
||||
name: "Display Name" # Human-readable name
|
||||
header: "Brief description" # One-line summary
|
||||
subheader: "Additional context" # More detail
|
||||
default_selected: false # Auto-select on install?
|
||||
```
|
||||
|
||||
### `default_selected` Guidelines
|
||||
|
||||
| Module Type | default_selected | Example |
|
||||
|-------------|------------------|---------|
|
||||
| Core/Primary | `true` | BMM (agile software delivery) |
|
||||
| Specialized | `false` | CIS (creative innovation), BMGD (game dev) |
|
||||
| Experimental | `false` | New modules in development |
|
||||
|
||||
---
|
||||
|
||||
## Variables System
|
||||
|
||||
### Core Config Variables (Always Available)
|
||||
|
||||
These variables are automatically available to ALL modules:
|
||||
|
||||
```yaml
|
||||
# Variables from Core Config inserted:
|
||||
## user_name # User's name
|
||||
## communication_language # Preferred language
|
||||
## document_output_language # Output document language
|
||||
## output_folder # Default output location
|
||||
```
|
||||
|
||||
No need to define these — they're injected automatically.
|
||||
|
||||
---
|
||||
|
||||
### Custom Variables
|
||||
|
||||
Define custom variables for user input:
|
||||
|
||||
```yaml
|
||||
variable_name:
|
||||
prompt: "Question to ask the user?"
|
||||
default: "{default_value}"
|
||||
result: "{template_for_final_value}"
|
||||
```
|
||||
|
||||
**Example:**
|
||||
|
||||
```yaml
|
||||
project_name:
|
||||
prompt: "What is the title of your project?"
|
||||
default: "{directory_name}"
|
||||
result: "{value}"
|
||||
```
|
||||
|
||||
### Variable Templates
|
||||
|
||||
In `prompt` and `result`, you can use templates:
|
||||
|
||||
| Template | Expands To |
|
||||
|----------|------------|
|
||||
| `{value}` | The user's input |
|
||||
| `{directory_name}` | Current directory name |
|
||||
| `{output_folder}` | Output folder from core config |
|
||||
| `{project-root}` | Project root path |
|
||||
| `{variable_name}` | Another variable's value |
|
||||
|
||||
---
|
||||
|
||||
## Variable Types
|
||||
|
||||
### 1. Simple Text Input
|
||||
|
||||
```yaml
|
||||
project_name:
|
||||
prompt: "What is the title of your project?"
|
||||
default: "{directory_name}"
|
||||
result: "{value}"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. Boolean/Flag
|
||||
|
||||
```yaml
|
||||
enable_feature:
|
||||
prompt: "Enable this feature?"
|
||||
default: false
|
||||
result: "{value}"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. Single Select
|
||||
|
||||
```yaml
|
||||
skill_level:
|
||||
prompt: "What is your experience level?"
|
||||
default: "intermediate"
|
||||
result: "{value}"
|
||||
single-select:
|
||||
- value: "beginner"
|
||||
label: "Beginner - Explains concepts clearly"
|
||||
- value: "intermediate"
|
||||
label: "Intermediate - Balanced approach"
|
||||
- value: "expert"
|
||||
label: "Expert - Direct and technical"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 4. Multi Select
|
||||
|
||||
```yaml
|
||||
platforms:
|
||||
prompt: "Which platforms do you need?"
|
||||
default: ["unity", "unreal"]
|
||||
result: "{value}"
|
||||
multi-select:
|
||||
- value: "unity"
|
||||
label: "Unity"
|
||||
- value: "unreal"
|
||||
label: "Unreal Engine"
|
||||
- value: "godot"
|
||||
label: "Godot"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 5. Multi-Line Prompt
|
||||
|
||||
```yaml
|
||||
complex_variable:
|
||||
prompt:
|
||||
- "First question?"
|
||||
- "Second context?"
|
||||
- "Third detail?"
|
||||
default: "default_value"
|
||||
result: "{value}"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 6. Required Variable
|
||||
|
||||
```yaml
|
||||
critical_variable:
|
||||
prompt: "Required information:"
|
||||
required: true
|
||||
result: "{value}"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 7. Path Variable
|
||||
|
||||
```yaml
|
||||
artifacts_folder:
|
||||
prompt: "Where should artifacts be stored?"
|
||||
default: "{output_folder}/artifacts"
|
||||
result: "{project-root}/{value}"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Variable Inheritance / Aliasing
|
||||
|
||||
Create an alias for another variable:
|
||||
|
||||
```yaml
|
||||
primary_artifacts:
|
||||
prompt: "Where should primary artifacts be stored?"
|
||||
default: "{output_folder}/artifacts"
|
||||
result: "{project-root}/{value}"
|
||||
|
||||
# Alias for workflow compatibility
|
||||
sprint_artifacts:
|
||||
inherit: "primary_artifacts"
|
||||
```
|
||||
|
||||
Now `sprint_artifacts` and `primary_artifacts` reference the same value.
|
||||
|
||||
---
|
||||
|
||||
## How Variables Become Available
|
||||
|
||||
### To Agents
|
||||
|
||||
After installation, variables are available in agent frontmatter/context:
|
||||
|
||||
```yaml
|
||||
# In agent.agent.yaml or workflow execution
|
||||
{variable_name} # Expands to the user's configured value
|
||||
```
|
||||
|
||||
**Example:** If the user configured `project_name: "MyApp"`, agents can reference `{project_name}` and it will expand to `"MyApp"`.
|
||||
|
||||
### To Workflows
|
||||
|
||||
Workflows can reference module variables in their step files:
|
||||
|
||||
```yaml
|
||||
---
|
||||
outputFile: '{implementation_artifacts}/my-output.md'
|
||||
---
|
||||
```
|
||||
|
||||
This expands the `implementation_artifacts` variable from module.yaml.
|
||||
|
||||
---
|
||||
|
||||
## Real-World Examples
|
||||
|
||||
### BMM (BMad Method) — Complex Configuration
|
||||
|
||||
```yaml
|
||||
code: bmm
|
||||
name: "BMM: BMad Method Agile-AI Driven-Development"
|
||||
header: "BMad Method™: Breakthrough Method of Agile-Ai Driven-Dev"
|
||||
subheader: "Agent and Workflow Configuration for this module"
|
||||
default_selected: true
|
||||
|
||||
# Variables from Core Config inserted:
|
||||
## user_name
|
||||
## communication_language
|
||||
## document_output_language
|
||||
## output_folder
|
||||
|
||||
project_name:
|
||||
prompt: "What is the title of your project?"
|
||||
default: "{directory_name}"
|
||||
result: "{value}"
|
||||
|
||||
user_skill_level:
|
||||
prompt:
|
||||
- "What is your development experience level?"
|
||||
- "This affects how agents explain concepts."
|
||||
default: "intermediate"
|
||||
result: "{value}"
|
||||
single-select:
|
||||
- value: "beginner"
|
||||
label: "Beginner - Explain concepts clearly"
|
||||
- value: "intermediate"
|
||||
label: "Intermediate - Balanced approach"
|
||||
- value: "expert"
|
||||
label: "Expert - Direct and technical"
|
||||
|
||||
planning_artifacts:
|
||||
prompt: "Where should planning artifacts be stored?"
|
||||
default: "{output_folder}/planning-artifacts"
|
||||
result: "{project-root}/{value}"
|
||||
|
||||
implementation_artifacts:
|
||||
prompt: "Where should implementation artifacts be stored?"
|
||||
default: "{output_folder}/implementation-artifacts"
|
||||
result: "{project-root}/{value}"
|
||||
|
||||
project_knowledge:
|
||||
prompt: "Where should project knowledge be stored?"
|
||||
default: "docs"
|
||||
result: "{project-root}/{value}"
|
||||
|
||||
tea_use_mcp_enhancements:
|
||||
prompt: "Enable MCP enhancements in Test Architect?"
|
||||
default: false
|
||||
result: "{value}"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### CIS (Creative Innovation Suite) — Minimal Configuration
|
||||
|
||||
```yaml
|
||||
code: cis
|
||||
name: "CIS: Creative Innovation Suite"
|
||||
header: "Creative Innovation Suite (CIS) Module"
|
||||
subheader: "No custom configuration - uses Core settings only"
|
||||
default_selected: false
|
||||
|
||||
# Variables from Core Config inserted:
|
||||
## user_name
|
||||
## communication_language
|
||||
## document_output_language
|
||||
## output_folder
|
||||
```
|
||||
|
||||
Some modules don't need custom variables — core config is enough!
|
||||
|
||||
---
|
||||
|
||||
### BMGD (Game Development) — Multi-Select Example
|
||||
|
||||
```yaml
|
||||
code: bmgd
|
||||
name: "BMGD: BMad Game Development"
|
||||
header: "BMad Game Development Module"
|
||||
subheader: "Configure game development settings"
|
||||
default_selected: false
|
||||
|
||||
project_name:
|
||||
prompt: "What is the name of your game project?"
|
||||
default: "{directory_name}"
|
||||
result: "{value}"
|
||||
|
||||
primary_platform:
|
||||
prompt: "Which game engine do you use?"
|
||||
default: ["unity", "unreal"]
|
||||
required: true
|
||||
result: "{value}"
|
||||
multi-select:
|
||||
- value: "unity"
|
||||
label: "Unity"
|
||||
- value: "unreal"
|
||||
label: "Unreal Engine"
|
||||
- value: "godot"
|
||||
label: "Godot"
|
||||
- value: "other"
|
||||
label: "Custom / Other"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Best Practices
|
||||
|
||||
### DO:
|
||||
- Keep prompts clear and concise
|
||||
- Provide sensible defaults
|
||||
- Use `result: "{project-root}/{value}"` for paths
|
||||
- Use single/multi-select for structured choices
|
||||
- Group related variables logically
|
||||
|
||||
### DON'T:
|
||||
- Overwhelm users with too many questions
|
||||
- Ask for information that could be inferred
|
||||
- Use technical jargon in prompts
|
||||
- Create variables that are never used
|
||||
|
||||
---
|
||||
|
||||
## Variable Naming
|
||||
|
||||
- **kebab-case** (e.g., `planning_artifacts`, `user_skill_level`)
|
||||
- Descriptive but concise
|
||||
- Avoid conflicts with core variables
|
||||
|
||||
---
|
||||
|
||||
## Testing Your module.yaml
|
||||
|
||||
After creating module.yaml, test it:
|
||||
|
||||
1. Run `bmad install` in a test project
|
||||
2. Verify prompts appear correctly
|
||||
3. Check that variables expand in agents/workflows
|
||||
4. Test default values
|
||||
5. Validate path templates resolve correctly
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Pattern | Use Case |
|
||||
|---------|----------|
|
||||
| Simple text input | Names, titles, descriptions |
|
||||
| Boolean/Flag | Enable/disable features |
|
||||
| Single select | Experience levels, categories |
|
||||
| Multi select | Platforms, frameworks, options |
|
||||
| Multi-line prompt | Complex questions needing context |
|
||||
| Required | Must-have information |
|
||||
| Path variable | Directory locations |
|
||||
| Inherit/Alias | Compatibility, references |
|
||||
147
_bmad/bmb/workflows/module/steps-b/step-01-welcome.md
Normal file
147
_bmad/bmb/workflows/module/steps-b/step-01-welcome.md
Normal file
@@ -0,0 +1,147 @@
|
||||
---
|
||||
name: 'step-01-welcome'
|
||||
description: 'Welcome user, select mode (Interactive/Express/YOLO), gather initial idea'
|
||||
|
||||
nextStepFile: './step-02-spark.md'
|
||||
briefTemplateFile: '../templates/brief-template.md'
|
||||
moduleStandardsFile: '../data/module-standards.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 1: Welcome & Mode Selection
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Welcome the user to the Module Brief workflow, select the collaboration mode (Interactive/Express/YOLO), and gather their initial module idea.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Module Architect** — creative, inspiring, helping users discover amazing module ideas
|
||||
- ✅ This is explorative and collaborative — not a template-filling exercise
|
||||
- ✅ Help users clarify and expand their vision
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Set the creative tone — this is about discovering possibilities
|
||||
- 🚫 FORBIDDEN to jump straight to technical details
|
||||
- 💬 Ask questions that spark imagination
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
||||
- 💾 No output file yet — gathering initial context
|
||||
- 📖 Load next step when user selects 'C'
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Available: module standards, brief template
|
||||
- Focus: Initial idea gathering and mode selection
|
||||
- No existing brief — this is a fresh start
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise.
|
||||
|
||||
### 1. Welcome with Enthusiasm
|
||||
|
||||
"**Welcome to the Module Brief workflow!** 🚀
|
||||
|
||||
I'm here to help you create an amazing BMAD module. We'll explore your vision, design the agents and workflows, and create a comprehensive brief that will guide the module's creation.
|
||||
|
||||
Modules are powerful — they package agents, workflows, and configuration into a cohesive capability. Let's make something great!"
|
||||
|
||||
### 2. Select Collaboration Mode
|
||||
|
||||
"**How would you like to work?**"
|
||||
|
||||
- **[I]nteractive** — Deep collaboration, we'll explore each section together thoroughly
|
||||
- **[E]xpress** — Faster pace, targeted questions to get to a solid brief quickly
|
||||
- **[Y]OLO** — I'll generate a complete brief from minimal input (you can refine later)
|
||||
|
||||
**Store the selected mode. This affects how we proceed through subsequent steps.**
|
||||
|
||||
### 3. Gather the Initial Idea
|
||||
|
||||
"**Tell me about your module idea.**"
|
||||
|
||||
Encourage them to share:
|
||||
- What problem does it solve?
|
||||
- Who would use it?
|
||||
- What excites you about it?
|
||||
|
||||
**If they're stuck**, offer creative prompts:
|
||||
- "What domain do you work in? What tasks feel repetitive or could be AI-powered?"
|
||||
- "Imagine you had a team of AI experts at your disposal — what would you ask them to build?"
|
||||
- "Is there a module you wish existed?"
|
||||
|
||||
**Capture their initial idea.** We'll explore and expand it in the next steps.
|
||||
|
||||
### 4. Preview the Journey Ahead
|
||||
|
||||
"**Here's where we're going together:**"
|
||||
|
||||
1. Spark — Explore and clarify your idea
|
||||
2. Module Type — Standalone, Extension, or Global?
|
||||
3. Vision — What would make this extraordinary?
|
||||
4. Identity — Name, code, personality
|
||||
5. Users — Who is this for?
|
||||
6. Value — What makes it special?
|
||||
7. Agents — Who's on your team?
|
||||
8. Workflows — What can we do?
|
||||
9. Tools — MCP tools, integrations?
|
||||
10. Scenarios — How will people use it?
|
||||
11. Creative — Easter eggs, lore, magic ✨
|
||||
12. Review — Read through together
|
||||
13. Finalize — Your complete brief
|
||||
|
||||
"**This is about discovery and creativity. We're not filling out forms — we're designing something amazing together.**"
|
||||
|
||||
### 5. Present MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- User can chat or ask questions — always respond and redisplay menu
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}` for deeper idea exploration, then redisplay menu
|
||||
- IF P: Execute `{partyModeWorkflow}` for creative brainstorming, then redisplay menu
|
||||
- IF C: Store the mode and initial idea, then load `{nextStepFile}`
|
||||
- IF Any other: Help user, then redisplay menu
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- User feels welcomed and inspired
|
||||
- Collaboration mode selected
|
||||
- Initial idea captured
|
||||
- User understands the journey ahead
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Skipping to technical details prematurely
|
||||
- Not capturing the initial idea
|
||||
- Not setting the creative tone
|
||||
- Rushing through mode selection
|
||||
|
||||
**Master Rule:** This step sets the tone for the entire brief — make it inspiring and collaborative.
|
||||
140
_bmad/bmb/workflows/module/steps-b/step-02-spark.md
Normal file
140
_bmad/bmb/workflows/module/steps-b/step-02-spark.md
Normal file
@@ -0,0 +1,140 @@
|
||||
---
|
||||
name: 'step-02-spark'
|
||||
description: 'Ignite the idea, explore problem space, what excites them'
|
||||
|
||||
nextStepFile: './step-03-module-type.md'
|
||||
moduleStandardsFile: '../data/module-standards.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 2: Spark
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Ignite and explore the user's idea — dig into the problem space, understand what excites them, and help clarify the vision.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Module Architect** — curious, explorative, helping ideas grow
|
||||
- ✅ Ask open-ended questions that reveal depth
|
||||
- ✅ Listen more than you speak
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 This is about understanding the problem space, not solving it yet
|
||||
- 🚫 FORBIDDEN to jump to implementation
|
||||
- 💬 Ask "why" and "what if" questions
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
||||
- 📖 Reference module standards to understand types
|
||||
- 📖 Load next step when user selects 'C'
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly.
|
||||
|
||||
### 1. Connect to Their Idea
|
||||
|
||||
"**Let's explore your idea together.**"
|
||||
|
||||
Reference what they shared in step 1:
|
||||
- "You mentioned {their idea} — I love that direction."
|
||||
- "Tell me more about the problem you're solving."
|
||||
|
||||
### 2. Explore the Problem Space
|
||||
|
||||
Ask questions to deepen understanding:
|
||||
|
||||
**"What problem does this module solve?"**
|
||||
|
||||
- Who feels this problem right now?
|
||||
- What do they currently do without this module?
|
||||
- What would change if this existed?
|
||||
|
||||
**"What excites you about this idea?"**
|
||||
|
||||
- Why THIS module? Why now?
|
||||
- What's the vision — the dream outcome?
|
||||
- If this module succeeds wildly, what does that look like?
|
||||
|
||||
### 3. Identify the Users
|
||||
|
||||
**"Who is this module for?"**
|
||||
|
||||
Help them think about:
|
||||
- Primary users — who will use this most?
|
||||
- Secondary users — who else benefits?
|
||||
- What do these users care about?
|
||||
|
||||
### 4. Adjust for Mode
|
||||
|
||||
**IF mode == Interactive:**
|
||||
- Deep exploration, multiple rounds of questions
|
||||
- Use Advanced Elicitation if they want to dig deeper
|
||||
|
||||
**IF mode == Express:**
|
||||
- Targeted questions, get the key insights quickly
|
||||
- 2-3 rounds max
|
||||
|
||||
**IF mode == YOLO:**
|
||||
- Brief clarification, acknowledge what you have
|
||||
- Move quickly to next step
|
||||
|
||||
### 5. Capture Insights
|
||||
|
||||
Summarize what you've learned:
|
||||
- "So the core problem is {summary}"
|
||||
- "The primary users are {users}"
|
||||
- "What excites you most is {excitement}"
|
||||
|
||||
"**Does this capture your vision? Anything to add or refine?**"
|
||||
|
||||
### 6. Present MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}` for deeper exploration
|
||||
- IF P: Execute `{partyModeWorkflow}` for creative ideation
|
||||
- IF C: Load `{nextStepFile}`
|
||||
- IF Any other: Help user, then redisplay menu
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Problem space clearly understood
|
||||
- User excitement identified
|
||||
- Target users clarified
|
||||
- Vision feels solid
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Skipping to solutions too quickly
|
||||
- Not understanding the problem
|
||||
- Not capturing what excites them
|
||||
|
||||
**Master Rule:** Understand before you build. This step is about clarity, not solutions.
|
||||
148
_bmad/bmb/workflows/module/steps-b/step-03-module-type.md
Normal file
148
_bmad/bmb/workflows/module/steps-b/step-03-module-type.md
Normal file
@@ -0,0 +1,148 @@
|
||||
---
|
||||
name: 'step-03-module-type'
|
||||
description: 'EARLY decision: Standalone, Extension, or Global module?'
|
||||
|
||||
nextStepFile: './step-04-vision.md'
|
||||
moduleStandardsFile: '../data/module-standards.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 3: Module Type
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Make the EARLY key decision: Is this a Standalone, Extension, or Global module? This decision affects everything that follows.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Module Architect** — you understand module types and their implications
|
||||
- ✅ Help the user make an informed decision
|
||||
- ✅ This is a commitment — get it right
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 This decision MUST happen early
|
||||
- 🚫 FORBIDDEN to proceed without clarity on module type
|
||||
- 💬 Explain the trade-offs clearly
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Load `{moduleStandardsFile}` to reference module types
|
||||
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
||||
- 📖 Load next step when user selects 'C'
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly.
|
||||
|
||||
### 1. Explain Module Types
|
||||
|
||||
Load `{moduleStandardsFile}` and present the three types:
|
||||
|
||||
"**Before we go further, we need to decide: What type of module is this?** This decision affects where files go, how installation works, and how the module integrates with BMAD."
|
||||
|
||||
**Standalone Module:**
|
||||
- A new, independent module
|
||||
- Own module code and identity
|
||||
- Installed alongside other modules
|
||||
- Example: CIS — a creative innovation suite
|
||||
|
||||
**Extension Module:**
|
||||
- Extends an existing BMAD module
|
||||
- Shares the base module's code (e.g., `code: bmm`)
|
||||
- Adds or overrides agents/workflows
|
||||
- Example: A security extension for BMM
|
||||
|
||||
**Global Module:**
|
||||
- Affects the entire BMAD framework
|
||||
- Core functionality impacting all modules
|
||||
- Rare — use sparingly
|
||||
- Example: Universal logging/telemetry
|
||||
|
||||
### 2. Determine Type Together
|
||||
|
||||
**"Based on your idea, what type makes sense?"**
|
||||
|
||||
Help them think through:
|
||||
- **"Is this a brand new domain?"** → Likely Standalone
|
||||
- **"Does this build on an existing module?"** → Likely Extension
|
||||
- **"Does this affect all modules?"** → Possibly Global (be cautious)
|
||||
|
||||
**If considering Extension:**
|
||||
- "Which existing module does it extend?"
|
||||
- "Are you adding new agents/workflows, or modifying existing ones?"
|
||||
- "This means your `code:` will match the base module"
|
||||
|
||||
**If considering Global:**
|
||||
- "Are you sure? Global modules are rare."
|
||||
- "Could this be a standalone module instead?"
|
||||
|
||||
### 3. Confirm and Store
|
||||
|
||||
Once decided:
|
||||
|
||||
"**Module Type: {Standalone/Extension/Global}**"
|
||||
|
||||
**IF Extension:**
|
||||
"Base module to extend: {base-module-code}"
|
||||
"Folder name will be unique: {e.g., bmm-security}"
|
||||
|
||||
**Store this decision.** It affects:
|
||||
- Where files are created
|
||||
- What `code:` goes in module.yaml
|
||||
- Installation behavior
|
||||
|
||||
### 4. Preview Implications
|
||||
|
||||
Briefly explain what this means:
|
||||
- "As a {type}, your module will {implications}"
|
||||
- "When we build, files will go to {location}"
|
||||
|
||||
### 5. Present MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input
|
||||
- User can change their mind before proceeding
|
||||
- ONLY proceed to next step when user selects 'C' and confirms the type
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}` for deeper exploration of the decision
|
||||
- IF P: Execute `{partyModeWorkflow}` for brainstorming the approach
|
||||
- IF C: Confirm the decision, then load `{nextStepFile}`
|
||||
- IF Any other: Help user, then redisplay menu
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Module type clearly decided
|
||||
- User understands the implications
|
||||
- Extension modules know their base module
|
||||
- Decision is stored for later steps
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Proceeding without clear module type
|
||||
- User doesn't understand the implications
|
||||
- Extension module without clear base
|
||||
|
||||
**Master Rule:** This is a gateway decision. Get clarity before moving forward.
|
||||
82
_bmad/bmb/workflows/module/steps-b/step-04-vision.md
Normal file
82
_bmad/bmb/workflows/module/steps-b/step-04-vision.md
Normal file
@@ -0,0 +1,82 @@
|
||||
---
|
||||
name: 'step-04-vision'
|
||||
description: 'Deep dive into the vision — what would make this module extraordinary?'
|
||||
|
||||
nextStepFile: './step-05-identity.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 4: Vision
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Deep dive into the vision — explore what would make this module extraordinary, not just functional.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Architect** — visioning, dreaming big
|
||||
- ✅ Push beyond "good enough" to "extraordinary"
|
||||
- 💬 Ask "what would make this amazing?"
|
||||
|
||||
### Step-Specific Rules:
|
||||
- 🎯 This is about the vision, not the details
|
||||
- 🚫 FORBIDDEN to jump to implementation
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Set the Visioning Tone
|
||||
|
||||
"**Let's dream big. What would make this module extraordinary?**"
|
||||
|
||||
"Good modules solve problems. Great modules inspire people. Let's make yours great."
|
||||
|
||||
### 2. Explore the Vision
|
||||
|
||||
Ask visioning questions:
|
||||
|
||||
**"If this module succeeds wildly, what does that look like?"**
|
||||
- How are people using it?
|
||||
- What are they able to do that they couldn't before?
|
||||
- What's the feeling when they use it?
|
||||
|
||||
**"What would make someone say 'I love this module'?"**
|
||||
- Delightful features?
|
||||
- Surprising capabilities?
|
||||
- The way it makes them feel?
|
||||
|
||||
**"What's the 'secret sauce' — the thing that makes this special?"**
|
||||
|
||||
### 3. Capture the Vision
|
||||
|
||||
Summarize:
|
||||
- "Your vision: {summary}"
|
||||
- "What makes it special: {unique aspect}"
|
||||
- "The dream outcome: {dream}"
|
||||
|
||||
### 4. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}`
|
||||
- IF P: Execute `{partyModeWorkflow}`
|
||||
- IF C: Load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Vision feels inspiring and clear
|
||||
✅ "Extraordinary" elements identified
|
||||
✅ User excited about the possibility
|
||||
96
_bmad/bmb/workflows/module/steps-b/step-05-identity.md
Normal file
96
_bmad/bmb/workflows/module/steps-b/step-05-identity.md
Normal file
@@ -0,0 +1,96 @@
|
||||
---
|
||||
name: 'step-05-identity'
|
||||
description: 'Module code, name, and personality/theme'
|
||||
|
||||
nextStepFile: './step-06-users.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 5: Identity
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Define the module's identity — code, name, and personality/theme.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Architect** — naming, branding, theming
|
||||
- ✅ This is where personality comes in
|
||||
- 💬 Have fun with this!
|
||||
|
||||
### Step-Specific Rules:
|
||||
- 🎯 Module code follows conventions (kebab-case, 2-20 chars)
|
||||
- 🚫 FORBIDDEN to use reserved codes or existing module codes (for standalone)
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Module Code
|
||||
|
||||
"**Let's give your module a code.**"
|
||||
|
||||
Explain:
|
||||
- kebab-case (e.g., `bmm`, `cis`, `healthcare-ai`)
|
||||
- Short, memorable, descriptive
|
||||
- 2-20 characters
|
||||
|
||||
**IF Extension:** Code matches base module (already decided)
|
||||
|
||||
**IF Standalone:** Propose options based on the module name/domain
|
||||
|
||||
### 2. Module Name
|
||||
|
||||
"**What's the display name?**"
|
||||
|
||||
This is the human-facing name in module.yaml:
|
||||
- "BMM: BMad Method Agile-AI Driven-Development"
|
||||
- "CIS: Creative Innovation Suite"
|
||||
- "Your Module: Your Description"
|
||||
|
||||
### 3. Personality Theme
|
||||
|
||||
"**Does your module have a personality or theme?**"
|
||||
|
||||
Some modules have fun themes:
|
||||
- BMM — Agile team (personas like John, Winston)
|
||||
- CIS — Creative innovators
|
||||
- BMGD — Game dev team
|
||||
|
||||
**Questions:**
|
||||
- Should the agents have a consistent theme?
|
||||
- Any personality vibes? (Corporate team, fantasy party, reality show cast?)
|
||||
- Or keep it professional/focused?
|
||||
|
||||
### 4. Store Identity
|
||||
|
||||
Capture:
|
||||
- Module code: `{code}`
|
||||
- Module name: `{name}`
|
||||
- Personality theme: `{theme or "none/professional"}`
|
||||
|
||||
### 5. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}`
|
||||
- IF P: Execute `{partyModeWorkflow}`
|
||||
- IF C: Load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Module code decided and validated
|
||||
✅ Module name defined
|
||||
✅ Personality theme decided (even if "none")
|
||||
85
_bmad/bmb/workflows/module/steps-b/step-06-users.md
Normal file
85
_bmad/bmb/workflows/module/steps-b/step-06-users.md
Normal file
@@ -0,0 +1,85 @@
|
||||
---
|
||||
name: 'step-06-users'
|
||||
description: 'Who + How — personas AND user journey combined'
|
||||
|
||||
nextStepFile: './step-07-value.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 6: Users
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Define who the module is for AND how they'll use it — personas and user journey combined.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Architect** — user-centric, empathetic
|
||||
- ✅ Help the user walk in their users' shoes
|
||||
- 💬 Tell the story of how this will be used
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Define the Users
|
||||
|
||||
"**Let's get specific about who this is for.**"
|
||||
|
||||
**Primary Users:**
|
||||
- Who will use this module most often?
|
||||
- What's their role? (developer, designer, analyst, etc.)
|
||||
- What's their skill level? (beginner, intermediate, expert)
|
||||
|
||||
**Secondary Users:**
|
||||
- Who else might use it?
|
||||
- How is their experience different?
|
||||
|
||||
### 2. Build User Personas
|
||||
|
||||
Create 1-2 brief personas:
|
||||
|
||||
**Persona 1:**
|
||||
- Name/role: {e.g., "Sarah, Software Engineer"}
|
||||
- Goals: {what they want to accomplish}
|
||||
- Pain points: {what frustrates them now}
|
||||
- What success looks like
|
||||
|
||||
### 3. Tell the User Journey Story
|
||||
|
||||
"**Let's walk through how someone would use this module.**"
|
||||
|
||||
Tell a story:
|
||||
1. User has a problem → {their situation}
|
||||
2. They load the module → {what they expect}
|
||||
3. They run an agent/workflow → {what happens}
|
||||
4. They get a result → {the outcome}
|
||||
5. This helps them → {the achievement}
|
||||
|
||||
"**Can you see this flow? Does it match what you envision?**"
|
||||
|
||||
### 4. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}`
|
||||
- IF P: Execute `{partyModeWorkflow}`
|
||||
- IF C: Load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ User personas defined
|
||||
✅ User journey story told
|
||||
✅ User can visualize how their module will be used
|
||||
75
_bmad/bmb/workflows/module/steps-b/step-07-value.md
Normal file
75
_bmad/bmb/workflows/module/steps-b/step-07-value.md
Normal file
@@ -0,0 +1,75 @@
|
||||
---
|
||||
name: 'step-07-value'
|
||||
description: 'Unique Value Proposition — what makes this module special?'
|
||||
|
||||
nextStepFile: './step-08-agents.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 7: Value
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Define the Unique Value Proposition — what makes this module special and why users would choose it.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Architect** — focused on differentiation
|
||||
- ✅ Help identify what makes this unique
|
||||
- 💬 Ask "why this and not something else?"
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Explore Differentiation
|
||||
|
||||
"**What makes your module special? Why would someone choose it?**"
|
||||
|
||||
Ask:
|
||||
- **What can users do with your module that they can't do otherwise?**
|
||||
- **What's the 'aha!' moment — when they realize this is exactly what they need?**
|
||||
- **What problem does this solve better than anything else?**
|
||||
|
||||
### 2. Identify the Unique Value Proposition
|
||||
|
||||
Help craft a clear statement:
|
||||
|
||||
**"For {target users}, {module name} provides {key benefit} unlike {alternatives} because {unique differentiator}."**
|
||||
|
||||
Example:
|
||||
"For software teams, BMM provides AI-driven agile delivery unlike manual processes because it orchestrates specialized agents for every phase of development."
|
||||
|
||||
### 3. Competitive Context
|
||||
|
||||
**"What else exists in this space? How is yours different?"**
|
||||
|
||||
- Similar modules?
|
||||
- Manual approaches?
|
||||
- Why is yours better?
|
||||
|
||||
### 4. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}`
|
||||
- IF P: Execute `{partyModeWorkflow}`
|
||||
- IF C: Load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Unique value proposition articulated
|
||||
✅ Differentiation from alternatives clear
|
||||
✅ User can explain why someone would choose this module
|
||||
96
_bmad/bmb/workflows/module/steps-b/step-08-agents.md
Normal file
96
_bmad/bmb/workflows/module/steps-b/step-08-agents.md
Normal file
@@ -0,0 +1,96 @@
|
||||
---
|
||||
name: 'step-08-agents'
|
||||
description: 'Agent architecture — party mode simulation of interactions'
|
||||
|
||||
nextStepFile: './step-09-workflows.md'
|
||||
agentArchitectureFile: '../data/agent-architecture.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 8: Agents
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Design the agent architecture — who's on your team? Simulate how agents might interact.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Architect** — team designer
|
||||
- ✅ Focus on high-level planning (role, workflows, name, style)
|
||||
- ✅ Don't worry about YAML format — agent-builder handles that
|
||||
|
||||
### Step-Specific Rules:
|
||||
- 🎯 Load `{agentArchitectureFile}` for guidance
|
||||
- 🎯 Party mode is great here — simulate agent interactions
|
||||
- 🚫 FORBIDDEN to design full agent specs (that's agent-builder's job)
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Single vs Multi-Agent
|
||||
|
||||
Load `{agentArchitectureFile}` and ask:
|
||||
|
||||
**"Could one expert agent handle this entire module, or do you need a team?"**
|
||||
|
||||
Reference:
|
||||
- **Single agent** — simpler, focused domain
|
||||
- **Multi-agent** — different expertise areas, broader domain
|
||||
- **BMM example** — 9 agents for complete software development team
|
||||
|
||||
### 2. Design the Agent Team
|
||||
|
||||
For each agent, capture:
|
||||
|
||||
**Role:** What are they responsible for?
|
||||
**Workflows:** Which workflows will they trigger?
|
||||
**Name:** Human name (optional, for personality)
|
||||
**Communication Style:** How do they talk?
|
||||
**Memory:** Do they need to remember things over time? (hasSidecar)
|
||||
|
||||
Keep it high-level — don't design full agent specs!
|
||||
|
||||
### 3. Party Mode Simulation
|
||||
|
||||
**"Want to simulate how your agents might interact?"**
|
||||
|
||||
- IF yes: Execute `{partyModeWorkflow}` with different agent personas
|
||||
- Let them "talk" to each other about a scenario
|
||||
- This reveals how the team works together
|
||||
|
||||
### 4. Agent Menu Coordination
|
||||
|
||||
Explain the pattern:
|
||||
- **Shared commands** — all agents have `[WS]` Workflow Status
|
||||
- **Specialty commands** — each agent has unique commands
|
||||
- **No overlap** — each command has one owner
|
||||
|
||||
"**What commands might each agent have?**"
|
||||
|
||||
### 5. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}`
|
||||
- IF P: Execute `{partyModeWorkflow}` — great for agent interaction simulation
|
||||
- IF C: Load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Single vs multi-agent decided
|
||||
✅ Agent roles defined
|
||||
✅ Agent-workflow mappings clear
|
||||
✅ Agent interactions explored (via party mode if used)
|
||||
82
_bmad/bmb/workflows/module/steps-b/step-09-workflows.md
Normal file
82
_bmad/bmb/workflows/module/steps-b/step-09-workflows.md
Normal file
@@ -0,0 +1,82 @@
|
||||
---
|
||||
name: 'step-09-workflows'
|
||||
description: 'Workflow ecosystem — brainstorm what workflows could exist'
|
||||
|
||||
nextStepFile: './step-10-tools.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 9: Workflows
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Design the workflow ecosystem — brainstorm what workflows this module needs.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Architect** — workflow designer
|
||||
- ✅ Focus on what workflows exist, not their details
|
||||
- 💬 Brainstorm mode — generate lots of ideas
|
||||
|
||||
### Step-Specific Rules:
|
||||
- 🎯 Categorize workflows: Core, Feature, Utility
|
||||
- 🚫 FORBIDDEN to design full workflow specs (that's create-workflow's job)
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Brainstorm Workflows
|
||||
|
||||
"**What workflows should your module have?**"
|
||||
|
||||
Explain categories:
|
||||
- **Core Workflows** — essential functionality (2-3)
|
||||
- **Feature Workflows** — specialized capabilities (3-5)
|
||||
- **Utility Workflows** — supporting operations (1-3)
|
||||
|
||||
Brainstorm together — generate a list!
|
||||
|
||||
### 2. For Each Workflow
|
||||
|
||||
Capture briefly:
|
||||
|
||||
**Workflow name:** {e.g., "Create PRD", "Generate Test Plan"}
|
||||
**Purpose:** One sentence describing what it does
|
||||
**Input → Process → Output:** Brief flow
|
||||
**Agent:** Which agent triggers this?
|
||||
|
||||
### 3. Workflow Connections
|
||||
|
||||
"**How do workflows connect?**"
|
||||
|
||||
- Does workflow A feed into workflow B?
|
||||
- Are there dependencies?
|
||||
- What's the typical sequence?
|
||||
|
||||
### 4. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}` — great for workflow brainstorming
|
||||
- IF P: Execute `{partyModeWorkflow}` — different perspectives on workflows
|
||||
- IF C: Load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Workflow list generated (core, feature, utility)
|
||||
✅ Each workflow has a clear purpose
|
||||
✅ Agent-workflow mappings defined
|
||||
✅ Workflow connections understood
|
||||
90
_bmad/bmb/workflows/module/steps-b/step-10-tools.md
Normal file
90
_bmad/bmb/workflows/module/steps-b/step-10-tools.md
Normal file
@@ -0,0 +1,90 @@
|
||||
---
|
||||
name: 'step-10-tools'
|
||||
description: 'MCP tools, integrations, external services the module might need'
|
||||
|
||||
nextStepFile: './step-11-scenarios.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 10: Tools
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Identify MCP tools, integrations, and external services the module might need.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Architect** — integrations thinker
|
||||
- ✅ Keep it practical — only what's needed
|
||||
- 💬 Ask "what external capabilities would help?"
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. MCP Tools
|
||||
|
||||
"**Does your module need any MCP (Model Context Protocol) tools?**"
|
||||
|
||||
Explain: MCP tools connect agents to external capabilities.
|
||||
|
||||
Common MCP tools:
|
||||
- Database connectors
|
||||
- Git integration
|
||||
- Web automation (Playwright)
|
||||
- API tools
|
||||
- Knowledge bases
|
||||
|
||||
**"What would help your module work better?"**
|
||||
|
||||
### 2. External Services
|
||||
|
||||
"**Any external services or APIs?**"
|
||||
|
||||
- Web APIs?
|
||||
- Cloud services?
|
||||
- Data sources?
|
||||
- Third-party tools?
|
||||
|
||||
### 3. Module Integrations
|
||||
|
||||
"**Does this integrate with other BMAD modules?****
|
||||
|
||||
- Uses workflows from other modules?
|
||||
- Shares agents or extends them?
|
||||
- Depends on another module's capabilities?
|
||||
|
||||
### 4. Capture the List
|
||||
|
||||
Document:
|
||||
- **MCP Tools:** {list or "none"}
|
||||
- **External Services:** {list or "none"}
|
||||
- **Module Integrations:** {list or "none"}
|
||||
|
||||
Note: These are placeholders for later — the create workflow can implement them.
|
||||
|
||||
### 5. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}`
|
||||
- IF P: Execute `{partyModeWorkflow}`
|
||||
- IF C: Load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ MCP tools identified (or "none" decided)
|
||||
✅ External services documented (or "none")
|
||||
✅ Module integrations noted (or "none")
|
||||
83
_bmad/bmb/workflows/module/steps-b/step-11-scenarios.md
Normal file
83
_bmad/bmb/workflows/module/steps-b/step-11-scenarios.md
Normal file
@@ -0,0 +1,83 @@
|
||||
---
|
||||
name: 'step-11-scenarios'
|
||||
description: 'User journey — tell stories of how people will use this module'
|
||||
|
||||
nextStepFile: './step-12-creative.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 11: Scenarios
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Tell stories of how users will actually use this module — bring the vision to life.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Architect** — storyteller
|
||||
- ✅ Paint a picture of actual usage
|
||||
- 💬 Narrative mode — "imagine this..."
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Set the Scene
|
||||
|
||||
"**Let me tell you a story about how someone will use your module.**"
|
||||
|
||||
"Close your eyes and imagine..."
|
||||
|
||||
### 2. Tell Usage Stories
|
||||
|
||||
Walk through 2-3 scenarios:
|
||||
|
||||
**Scenario 1: First Use**
|
||||
- User's situation: {context}
|
||||
- They load the module: {what happens}
|
||||
- They run an agent: {which agent, what workflow}
|
||||
- They get a result: {outcome}
|
||||
- They feel: {emotion}
|
||||
|
||||
**Scenario 2: Advanced Use**
|
||||
- Power user context
|
||||
- Complex workflow
|
||||
- Multiple agents collaborating
|
||||
- Impressive result
|
||||
|
||||
**Scenario 3: "Aha!" Moment**
|
||||
- When the module really shines
|
||||
- Surprising capability
|
||||
- Delightful experience
|
||||
|
||||
### 3. Validate the Stories
|
||||
|
||||
"**Do these stories feel right? Can you see your module being used this way?**"
|
||||
|
||||
Adjust based on feedback.
|
||||
|
||||
### 4. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}`
|
||||
- IF P: Execute `{partyModeWorkflow}`
|
||||
- IF C: Load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ 2-3 usage scenarios told
|
||||
✅ User can visualize their module in action
|
||||
✅ Stories feel authentic and exciting
|
||||
94
_bmad/bmb/workflows/module/steps-b/step-12-creative.md
Normal file
94
_bmad/bmb/workflows/module/steps-b/step-12-creative.md
Normal file
@@ -0,0 +1,94 @@
|
||||
---
|
||||
name: 'step-12-creative'
|
||||
description: 'Creative features — easter eggs, lore, delightful touches'
|
||||
|
||||
nextStepFile: './step-13-review.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 12: Creative Features
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Add the magic — easter eggs, lore, delightful touches that make the module memorable.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Architect** — creative magician
|
||||
- ✅ This is where personality comes alive
|
||||
- 💬 "What would make someone smile?"
|
||||
|
||||
### Step-Specific Rules:
|
||||
- 🎯 This is optional creativity — not all modules need this
|
||||
- 🎯 Party mode is perfect here
|
||||
- ✨ Have fun with it!
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Set the Creative Tone
|
||||
|
||||
"**Now for the fun part — what makes your module delightful?** ✨
|
||||
|
||||
"Great modules work. Amazing modules have personality. What's yours?"
|
||||
|
||||
### 2. Explore Creative Elements
|
||||
|
||||
**Personality & Theming:**
|
||||
- Do the agents have running jokes or catchphrases?
|
||||
- Is there a consistent tone or vibe?
|
||||
- Any thematic elements? (space, medieval, corporate, etc.)
|
||||
|
||||
**Easter Eggs:**
|
||||
- Hidden commands or responses?
|
||||
- Fun interactions when users try certain things?
|
||||
- Surprises that delight?
|
||||
|
||||
**Module Lore:**
|
||||
- Backstory for the agents?
|
||||
- A consistent "universe" the module lives in?
|
||||
- Narrative elements?
|
||||
|
||||
### 3. Party Mode Ideation
|
||||
|
||||
"**Want to brainstorm creative ideas together?**"
|
||||
|
||||
- IF yes: Execute `{partyModeWorkflow}` with creative focus
|
||||
- Generate wild ideas
|
||||
- Keep the gems, discard the rest
|
||||
|
||||
### 4. Capture the Creative Elements
|
||||
|
||||
Document:
|
||||
- **Personality theme:** {theme or "none"}
|
||||
- **Easter eggs:** {ideas or "none"}
|
||||
- **Module lore:** {concepts or "none"}
|
||||
|
||||
Note: These are optional — a module can be great without them.
|
||||
|
||||
### 5. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}`
|
||||
- IF P: Execute `{partyModeWorkflow}` — perfect for creative brainstorming!
|
||||
- IF C: Load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Creative elements explored (even if "none")
|
||||
✅ Personality themes considered
|
||||
✅ User excited about the possibilities
|
||||
104
_bmad/bmb/workflows/module/steps-b/step-13-review.md
Normal file
104
_bmad/bmb/workflows/module/steps-b/step-13-review.md
Normal file
@@ -0,0 +1,104 @@
|
||||
---
|
||||
name: 'step-13-review'
|
||||
description: 'Read through the brief together, "Does this excite you?"'
|
||||
|
||||
nextStepFile: './step-14-finalize.md'
|
||||
briefTemplateFile: '../../templates/brief-template.md'
|
||||
---
|
||||
|
||||
# Step 13: Review
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Read through the brief together and confirm the vision is complete and exciting.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Architect** — review facilitator
|
||||
- ✅ Read back what we've discovered
|
||||
- ✅ Ensure nothing important is missing
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Gather All Decisions
|
||||
|
||||
Collect everything from steps 1-12:
|
||||
|
||||
- Module type: {Standalone/Extension/Global}
|
||||
- Module code: {code}
|
||||
- Module name: {name}
|
||||
- Vision: {vision summary}
|
||||
- Users: {who it's for}
|
||||
- Value proposition: {what makes it special}
|
||||
- Agents: {agent team}
|
||||
- Workflows: {workflow list}
|
||||
- Tools: {MCP, integrations}
|
||||
- Creative features: {personality, easter eggs}
|
||||
|
||||
### 2. Read It Back
|
||||
|
||||
"**Let me read back what we've designed together.**"
|
||||
|
||||
Present the brief in an inspiring way:
|
||||
|
||||
"**Your Module: {name} ({code})**"
|
||||
|
||||
"**Vision:** {vision}"
|
||||
|
||||
"**For:** {users}"
|
||||
|
||||
"**What makes it special:** {value proposition}"
|
||||
|
||||
"**Agent Team:** {agents}"
|
||||
|
||||
"**Key Workflows:** {workflows}"
|
||||
|
||||
"**Creative Touch:** {creative elements}"
|
||||
|
||||
### 3. The Excitement Check
|
||||
|
||||
"**Does this excite you?****
|
||||
|
||||
- Is this the module you envisioned?
|
||||
- Anything missing?
|
||||
- Anything you want to change?"
|
||||
|
||||
**Make updates if needed.**
|
||||
|
||||
### 4. Final Confirmation
|
||||
|
||||
"**Are you happy with this brief? Ready to finalize?**"
|
||||
|
||||
### 5. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [B] Back to refine [C] Continue to Finalize
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input
|
||||
- ONLY proceed to next step when user selects 'C' and confirms
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF B: Go back to specific step to refine (ask which one)
|
||||
- IF C: Load `{nextStepFile}`
|
||||
- IF Any other: Ask for clarification, then redisplay menu
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Brief reviewed completely
|
||||
✅ User confirms excitement
|
||||
✅ No major gaps identified
|
||||
✅ Ready to finalize
|
||||
117
_bmad/bmb/workflows/module/steps-b/step-14-finalize.md
Normal file
117
_bmad/bmb/workflows/module/steps-b/step-14-finalize.md
Normal file
@@ -0,0 +1,117 @@
|
||||
---
|
||||
name: 'step-14-finalize'
|
||||
description: 'Final polish, output the brief document'
|
||||
|
||||
briefTemplateFile: '../../templates/brief-template.md'
|
||||
bmbCreationsOutputFolder: '{bmb_creations_output_folder}'
|
||||
---
|
||||
|
||||
# Step 14: Finalize
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Create the final module brief document and save it to the bmb-creations output folder.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Architect** — completing the brief
|
||||
- ✅ Assemble everything into a beautiful document
|
||||
- ✅ Celebrate the completion!
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Load Template
|
||||
|
||||
Load `{briefTemplateFile}` to use as the base.
|
||||
|
||||
### 2. Assemble the Brief
|
||||
|
||||
Fill in all sections with what we've gathered:
|
||||
|
||||
**Frontmatter:**
|
||||
- date: {today's date}
|
||||
- user_name: {from config}
|
||||
- module_code: {from step 5}
|
||||
- module_type: {from step 3}
|
||||
- status: "Ready for Development"
|
||||
|
||||
**Executive Summary:**
|
||||
- module_vision: {from step 4}
|
||||
- module_category: {derived from vision}
|
||||
- target_users: {from step 6}
|
||||
- complexity_level: {assess from agent/workflow count}
|
||||
|
||||
**Module Identity:**
|
||||
- module_code, module_name: {from step 5}
|
||||
- module_identity: {vision summary}
|
||||
- personality_theme: {from step 5 or step 12}
|
||||
|
||||
**Module Type:**
|
||||
- module_type: {from step 3}
|
||||
- module_type_explanation: {explain the choice}
|
||||
|
||||
**Unique Value Proposition:**
|
||||
- unique_value_proposition: {from step 7}
|
||||
- value_proposition_details: {elaborate}
|
||||
|
||||
**User Scenarios:**
|
||||
- target_users: {from step 6}
|
||||
- primary_use_case: {from step 11}
|
||||
- user_journey: {from step 11}
|
||||
|
||||
**Agent Architecture:**
|
||||
- agent_count_strategy: {single or multi, why}
|
||||
- agent_roster_table: {from step 8}
|
||||
- agent_interaction_model: {how they work together}
|
||||
- agent_communication_style: {from step 8}
|
||||
|
||||
**Workflow Ecosystem:**
|
||||
- core_workflows: {from step 9}
|
||||
- feature_workflows: {from step 9}
|
||||
- utility_workflows: {from step 9}
|
||||
|
||||
**Tools & Integrations:**
|
||||
- mcp_tools: {from step 10}
|
||||
- external_services: {from step 10}
|
||||
- module_integrations: {from step 10}
|
||||
|
||||
**Creative Features:**
|
||||
- creative_personality: {from step 12}
|
||||
- easter_eggs: {from step 12}
|
||||
- module_lore: {from step 12}
|
||||
|
||||
### 3. Write the Brief File
|
||||
|
||||
Save to: `{bmbCreationsOutputFolder}/modules/module-brief-{module_code}.md`
|
||||
|
||||
### 4. Celebrate and Next Steps
|
||||
|
||||
"**🎉 Your module brief is complete!**"
|
||||
|
||||
"**Saved to:** {file path}"
|
||||
|
||||
"**Next steps:**"
|
||||
1. **Review the brief** — Make sure it captures your vision
|
||||
2. **Run the module workflow (Create mode)** — This will build the module structure
|
||||
3. **Create agents** — Use the agent-builder workflow for each agent
|
||||
4. **Create workflows** — Use the workflow-builder workflow for each workflow
|
||||
5. **Test and iterate** — Install and refine
|
||||
|
||||
"**You've created something amazing. Let's build it!**"
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Brief document created and saved
|
||||
✅ All sections filled with gathered information
|
||||
✅ File path provided to user
|
||||
✅ Next steps clearly explained
|
||||
178
_bmad/bmb/workflows/module/steps-c/step-01-load-brief.md
Normal file
178
_bmad/bmb/workflows/module/steps-c/step-01-load-brief.md
Normal file
@@ -0,0 +1,178 @@
|
||||
---
|
||||
name: 'step-01-load-brief'
|
||||
description: 'Load brief or user write-up, validate completeness'
|
||||
|
||||
nextStepFile: './step-02-structure.md'
|
||||
continueFile: './step-01b-continue.md'
|
||||
agentSpecTemplate: '../../templates/agent-spec-template.md'
|
||||
workflowSpecTemplate: '../../templates/workflow-spec-template.md'
|
||||
moduleStandardsFile: '../../data/module-standards.md'
|
||||
moduleYamlConventionsFile: '../../data/module-yaml-conventions.md'
|
||||
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 1: Load Brief (Create Mode)
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Load the module brief (or get a detailed user write-up) and validate it has the information needed to build the module.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Module Builder** — structured, competent, ready to build
|
||||
- ✅ Validate input before proceeding
|
||||
- ✅ Ensure we have what we need to succeed
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 This is a continuable workflow — check for existing work
|
||||
- 🚫 FORBIDDEN to proceed without complete brief or write-up
|
||||
- 💾 Track progress for continuation
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
||||
- 📖 Create/update output file to track progress
|
||||
- 🚫 FORBIDDEN to load next step until brief is validated
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Input: Module brief from Brief mode OR user-provided write-up
|
||||
- Output: Module structure ready for implementation
|
||||
- This mode requires complete information to proceed
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
**CRITICAL:** Follow this sequence exactly.
|
||||
|
||||
### 1. Check for Existing Work
|
||||
|
||||
Look for existing module build state:
|
||||
- Check for `module-build-{module_code}.md` in output folder
|
||||
- If exists AND has `stepsCompleted` → load `{continueFile}`
|
||||
- If not exists → continue to step 1.2
|
||||
|
||||
### 2. Get the Brief or Write-Up
|
||||
|
||||
"**Welcome to Create mode! I'll build your module structure from your brief.**"
|
||||
|
||||
**"Where is your module brief?"**
|
||||
|
||||
Options:
|
||||
- **A)** Brief from Brief mode → `{bmb_creations_output_folder}/modules/module-brief-{code}.md`
|
||||
- **B)** User-provided write-up → Ask for path
|
||||
- **C)** Detailed description → User describes the module now
|
||||
|
||||
**IF A or B:** Load and read the brief/write-up
|
||||
|
||||
**IF C:** Gather the needed information through conversation:
|
||||
- Module name and code
|
||||
- Module type (Standalone/Extension/Global)
|
||||
- Agent roster (roles, names)
|
||||
- Workflow list
|
||||
- Key features and tools
|
||||
|
||||
### 3. Validate Brief Completeness
|
||||
|
||||
Load `{moduleStandardsFile}` and check that the brief contains:
|
||||
|
||||
**Required Information:**
|
||||
- [ ] Module code and name
|
||||
- [ ] Module type (Standalone/Extension/Global)
|
||||
- [ ] Module vision/purpose
|
||||
- [ ] Agent roster (at least minimum)
|
||||
- [ ] Workflow list (at least core workflows)
|
||||
- [ ] Any special tools or integrations
|
||||
|
||||
**IF Extension Module:**
|
||||
- [ ] Base module code (for matching)
|
||||
|
||||
**IF anything missing:**
|
||||
|
||||
"**Your brief is missing some key information. Let me help you complete it.**"
|
||||
|
||||
Use `{advancedElicitationTask}` if needed to gather missing details.
|
||||
|
||||
### 4. Confirm and Create Tracking
|
||||
|
||||
Once validated:
|
||||
|
||||
"**I have everything I need to build your module!**"
|
||||
|
||||
"**Module:** {name} ({code})"
|
||||
"**Type:** {Standalone/Extension/Global}"
|
||||
|
||||
Create or update the build tracking file:
|
||||
|
||||
```yaml
|
||||
---
|
||||
moduleCode: {code}
|
||||
moduleName: {name}
|
||||
moduleType: {type}
|
||||
briefFile: {brief path or "user-provided"}
|
||||
stepsCompleted: ['step-01-load-brief']
|
||||
created: {date}
|
||||
status: IN_PROGRESS
|
||||
---
|
||||
```
|
||||
|
||||
### 5. Preview the Build Process
|
||||
|
||||
"**Here's what I'll build for you:**"
|
||||
|
||||
1. Directory structure (based on module type)
|
||||
2. module.yaml with install configuration
|
||||
3. _module-installer/ folder (if needed)
|
||||
4. Agent placeholder/spec files
|
||||
5. Workflow placeholder/spec files
|
||||
6. README.md and TODO.md
|
||||
|
||||
"**Ready to start building?**"
|
||||
|
||||
### 6. Present MENU OPTIONS
|
||||
|
||||
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF A: Execute `{advancedElicitationTask}` for any refinements
|
||||
- IF P: Execute `{partyModeWorkflow}` for creative pre-build discussion
|
||||
- IF C: Update tracking file, then load `{nextStepFile}`
|
||||
- IF Any other: Help user, then redisplay menu
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Brief or write-up loaded
|
||||
- All required information validated
|
||||
- Tracking file created
|
||||
- User confirms ready to build
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Proceeding with incomplete brief
|
||||
- Missing key information (code, type, agents, workflows)
|
||||
- Not validating extension base module
|
||||
|
||||
**Master Rule:** Garbage in, garbage out. Ensure we have complete information before building.
|
||||
83
_bmad/bmb/workflows/module/steps-c/step-01b-continue.md
Normal file
83
_bmad/bmb/workflows/module/steps-c/step-01b-continue.md
Normal file
@@ -0,0 +1,83 @@
|
||||
---
|
||||
name: 'step-01b-continue'
|
||||
description: 'Handle workflow continuation for Create mode'
|
||||
|
||||
workflowFile: '../workflow.md'
|
||||
buildTrackingFile: '{bmb_creations_output_folder}/modules/module-build-{module_code}.md'
|
||||
---
|
||||
|
||||
# Step 1b: Continue (Create Mode)
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Resume a paused Create mode session by loading the build tracking state and routing to the correct step.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Module Builder** — picking up where we left off
|
||||
- ✅ Warm welcome back
|
||||
- ✅ Seamless resume
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Welcome Back
|
||||
|
||||
"**Welcome back to the Module Builder!** 👋"
|
||||
|
||||
### 2. Load Build Tracking
|
||||
|
||||
Load `{buildTrackingFile}` and read:
|
||||
- `stepsCompleted` array
|
||||
- `moduleCode`
|
||||
- `moduleName`
|
||||
- `moduleType`
|
||||
- `status`
|
||||
|
||||
### 3. Report Progress
|
||||
|
||||
"**Here's where we are:**"
|
||||
|
||||
**Module:** {moduleName} ({moduleCode})
|
||||
**Type:** {moduleType}
|
||||
**Status:** {status}
|
||||
|
||||
**Completed steps:**
|
||||
- {list completed steps}
|
||||
|
||||
### 4. Determine Next Step
|
||||
|
||||
Find the last completed step and route to the next one:
|
||||
|
||||
| Last Completed | Next Step |
|
||||
|---------------|-----------|
|
||||
| step-01-load-brief | step-02-structure |
|
||||
| step-02-structure | step-03-config |
|
||||
| step-03-config | step-04-installer |
|
||||
| step-04-installer | step-05-agents |
|
||||
| step-05-agents | step-06-workflows |
|
||||
| step-06-workflows | step-07-docs |
|
||||
| step-07-docs | step-08-complete |
|
||||
|
||||
### 5. Route to Next Step
|
||||
|
||||
"**Continuing to: {next step name}**"
|
||||
|
||||
Load the appropriate step file and execute.
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ User welcomed back
|
||||
✅ Build state loaded
|
||||
✅ Correct next step identified
|
||||
✅ Seamless resume
|
||||
109
_bmad/bmb/workflows/module/steps-c/step-02-structure.md
Normal file
109
_bmad/bmb/workflows/module/steps-c/step-02-structure.md
Normal file
@@ -0,0 +1,109 @@
|
||||
---
|
||||
name: 'step-02-structure'
|
||||
description: 'Create directory structure based on module type'
|
||||
|
||||
nextStepFile: './step-03-config.md'
|
||||
moduleStandardsFile: '../../data/module-standards.md'
|
||||
buildTrackingFile: '{bmb_creations_output_folder}/modules/module-build-{module_code}.md'
|
||||
---
|
||||
|
||||
# Step 2: Directory Structure
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Create the module directory structure based on the module type (Standalone/Extension/Global).
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Module Builder** — creating the foundation
|
||||
- ✅ Structure follows standards
|
||||
- ✅ Confirm before creating
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Determine Target Location
|
||||
|
||||
Load `{moduleStandardsFile}` and determine location:
|
||||
|
||||
**IF Standalone:**
|
||||
- Target: `src/modules/{module_code}/`
|
||||
|
||||
**IF Extension:**
|
||||
- Target: `src/modules/{base_module_code}/extensions/{extension_folder_name}/`
|
||||
- Get base_module_code from brief
|
||||
- extension_folder_name: unique name (e.g., `{base_module}-{feature}`)
|
||||
|
||||
**IF Global:**
|
||||
- Target: `src/modules/{module_code}/`
|
||||
- Will add `global: true` to module.yaml
|
||||
|
||||
### 2. Present Structure Plan
|
||||
|
||||
"**I'll create this directory structure:**"
|
||||
|
||||
```
|
||||
{target_location}/
|
||||
├── module.yaml
|
||||
├── README.md
|
||||
├── agents/
|
||||
│ └── {agent files}
|
||||
├── workflows/
|
||||
│ └── {workflow folders}
|
||||
└── _module-installer/
|
||||
├── installer.js
|
||||
└── platform-specifics/
|
||||
```
|
||||
|
||||
"**Location:** {target_location}"
|
||||
"**Module type:** {Standalone/Extension/Global}"
|
||||
|
||||
### 3. Confirm and Create
|
||||
|
||||
"**Shall I create the directory structure?**"
|
||||
|
||||
**IF confirmed:**
|
||||
|
||||
Create folders:
|
||||
- `{target_location}/agents/`
|
||||
- `{target_location}/workflows/`
|
||||
- `{target_location}/_module-installer/`
|
||||
- `{target_location}/_module-installer/platform-specifics/`
|
||||
|
||||
### 4. Update Build Tracking
|
||||
|
||||
Update `{buildTrackingFile}`:
|
||||
- Add 'step-02-structure' to stepsCompleted
|
||||
- Set targetLocation
|
||||
- Update status
|
||||
|
||||
### 5. Report Success
|
||||
|
||||
"**✓ Directory structure created at:** {target_location}"
|
||||
|
||||
### 6. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [C] Continue
|
||||
|
||||
- IF C: Update tracking, load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay menu
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Directory structure created
|
||||
✅ Location based on module type
|
||||
✅ Folders: agents/, workflows/, _module-installer/
|
||||
✅ Build tracking updated
|
||||
118
_bmad/bmb/workflows/module/steps-c/step-03-config.md
Normal file
118
_bmad/bmb/workflows/module/steps-c/step-03-config.md
Normal file
@@ -0,0 +1,118 @@
|
||||
---
|
||||
name: 'step-03-config'
|
||||
description: 'Generate module.yaml with install questions'
|
||||
|
||||
nextStepFile: './step-04-installer.md'
|
||||
moduleYamlConventionsFile: '../../data/module-yaml-conventions.md'
|
||||
buildTrackingFile: '{bmb_creations_output_folder}/modules/module-build-{module_code}.md'
|
||||
targetLocation: '{build_tracking_targetLocation}'
|
||||
---
|
||||
|
||||
# Step 3: Module Configuration
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Generate module.yaml with install configuration and custom variables.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Module Builder** — configuration expert
|
||||
- ✅ Follow module.yaml conventions
|
||||
- ✅ Ask about custom variables
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Load Conventions
|
||||
|
||||
Load `{moduleYamlConventionsFile}` for reference.
|
||||
|
||||
### 2. Generate Base module.yaml
|
||||
|
||||
Create `{targetLocation}/module.yaml` with:
|
||||
|
||||
**Required fields:**
|
||||
```yaml
|
||||
code: {module_code}
|
||||
name: "{module_display_name}"
|
||||
header: "{brief_header}"
|
||||
subheader: "{additional_context}"
|
||||
default_selected: false
|
||||
```
|
||||
|
||||
**Note for Extension modules:** `code:` matches base module
|
||||
|
||||
### 3. Add Custom Variables
|
||||
|
||||
"**Does your module need any custom configuration variables?**"
|
||||
|
||||
Reference the brief for:
|
||||
- User input needed during installation
|
||||
- Paths or settings users should configure
|
||||
- Feature flags or options
|
||||
|
||||
**For each variable, create:**
|
||||
```yaml
|
||||
variable_name:
|
||||
prompt: "{question to ask}"
|
||||
default: "{default_value}"
|
||||
result: "{template}"
|
||||
```
|
||||
|
||||
**Common patterns:**
|
||||
- Text input (names, titles)
|
||||
- Boolean (enable features)
|
||||
- Single-select (experience levels)
|
||||
- Multi-select (platforms)
|
||||
- Paths (artifact folders)
|
||||
|
||||
**IF no custom variables needed:**
|
||||
|
||||
Keep it simple — just use core config variables.
|
||||
|
||||
### 4. Write module.yaml
|
||||
|
||||
Write the complete module.yaml to `{targetLocation}/module.yaml`
|
||||
|
||||
### 5. Update Build Tracking
|
||||
|
||||
Update `{buildTrackingFile}`:
|
||||
- Add 'step-03-config' to stepsCompleted
|
||||
- Note: module.yaml created
|
||||
|
||||
### 6. Report and Confirm
|
||||
|
||||
"**✓ module.yaml created with:**"
|
||||
|
||||
- Code: {code}
|
||||
- {count} custom variables
|
||||
|
||||
"**Review the file and confirm it looks correct.**"
|
||||
|
||||
### 7. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [C] Continue
|
||||
|
||||
- IF C: Update tracking, load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay menu
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ module.yaml created
|
||||
✅ Required fields populated
|
||||
✅ Custom variables added (if any)
|
||||
✅ Extension modules use correct code
|
||||
✅ Build tracking updated
|
||||
160
_bmad/bmb/workflows/module/steps-c/step-04-installer.md
Normal file
160
_bmad/bmb/workflows/module/steps-c/step-04-installer.md
Normal file
@@ -0,0 +1,160 @@
|
||||
---
|
||||
name: 'step-04-installer'
|
||||
description: 'Setup _module-installer folder and installer.js'
|
||||
|
||||
nextStepFile: './step-05-agents.md'
|
||||
moduleInstallerStandardsFile: '../../data/module-installer-standards.md'
|
||||
buildTrackingFile: '{bmb_creations_output_folder}/modules/module-build-{module_code}.md'
|
||||
targetLocation: '{build_tracking_targetLocation}'
|
||||
---
|
||||
|
||||
# Step 4: Module Installer
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Setup the _module-installer folder and create installer.js if needed.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Module Builder** — installer expert
|
||||
- ✅ Not all modules need installers
|
||||
- ✅ Follow installer patterns
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Assess Need for Installer
|
||||
|
||||
Load `{moduleInstallerStandardsFile}` and ask:
|
||||
|
||||
"**Does your module need an installer?**"
|
||||
|
||||
Installers are needed when:
|
||||
- Creating directories from config variables
|
||||
- Copying template/assets
|
||||
- IDE-specific configuration
|
||||
- Platform-specific setup
|
||||
|
||||
**If NO installer needed:**
|
||||
|
||||
Skip to step 5. Folder structure already exists.
|
||||
|
||||
**If YES:** Continue to step 4.2
|
||||
|
||||
### 2. Determine Installer Requirements
|
||||
|
||||
"**What should the installer do?**"
|
||||
|
||||
- Create directories? (which variables)
|
||||
- Copy assets? (from where)
|
||||
- IDE configuration? (which IDEs)
|
||||
- Platform-specific setup?
|
||||
|
||||
### 3. Create installer.js
|
||||
|
||||
Create `{targetLocation}/_module-installer/installer.js`:
|
||||
|
||||
```javascript
|
||||
const fs = require('fs-extra');
|
||||
const path = require('node:path');
|
||||
const chalk = require('chalk');
|
||||
const platformCodes = require(path.join(__dirname, '../../../../tools/cli/lib/platform-codes'));
|
||||
|
||||
/**
|
||||
* {module_name} Module Installer
|
||||
*/
|
||||
async function install(options) {
|
||||
const { projectRoot, config, installedIDEs, logger } = options;
|
||||
|
||||
try {
|
||||
logger.log(chalk.blue('Installing {module_name}...'));
|
||||
|
||||
// Create directories
|
||||
if (config['{variable_name}']) {
|
||||
const dirConfig = config['{variable_name}'].replace('{project-root}/', '');
|
||||
const dirPath = path.join(projectRoot, dirConfig);
|
||||
if (!(await fs.pathExists(dirPath))) {
|
||||
logger.log(chalk.yellow(`Creating directory: ${dirConfig}`));
|
||||
await fs.ensureDir(dirPath);
|
||||
}
|
||||
}
|
||||
|
||||
// IDE-specific configuration
|
||||
if (installedIDEs && installedIDEs.length > 0) {
|
||||
for (const ide of installedIDEs) {
|
||||
await configureForIDE(ide, projectRoot, config, logger);
|
||||
}
|
||||
}
|
||||
|
||||
logger.log(chalk.green('✓ {module_name} installation complete'));
|
||||
return true;
|
||||
} catch (error) {
|
||||
logger.error(chalk.red(`Error installing module: ${error.message}`));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
async function configureForIDE(ide, projectRoot, config, logger) {
|
||||
if (!platformCodes.isValidPlatform(ide)) {
|
||||
logger.warn(chalk.yellow(`Unknown platform: '${ide}'. Skipping.`));
|
||||
return;
|
||||
}
|
||||
|
||||
const platformSpecificPath = path.join(__dirname, 'platform-specifics', `${ide}.js`);
|
||||
|
||||
try {
|
||||
if (await fs.pathExists(platformSpecificPath)) {
|
||||
const platformHandler = require(platformSpecificPath);
|
||||
if (typeof platformHandler.install === 'function') {
|
||||
await platformHandler.install({ projectRoot, config, logger });
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
logger.warn(chalk.yellow(`Warning: Could not configure ${ide}: ${error.message}`));
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { install };
|
||||
```
|
||||
|
||||
Customize based on module requirements.
|
||||
|
||||
### 4. Platform-Specific Handlers (Optional)
|
||||
|
||||
If IDE-specific setup needed, ask which IDEs and create:
|
||||
- `{targetLocation}/_module-installer/platform-specifics/claude-code.js`
|
||||
- `{targetLocation}/_module-installer/platform-specifics/windsurf.js`
|
||||
- etc.
|
||||
|
||||
### 5. Update Build Tracking
|
||||
|
||||
Update `{buildTrackingFile}`:
|
||||
- Add 'step-04-installer' to stepsCompleted
|
||||
- Note: installer created or skipped
|
||||
|
||||
### 6. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [C] Continue
|
||||
|
||||
- IF C: Update tracking, load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay menu
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Assessed installer need
|
||||
✅ installer.js created (if needed)
|
||||
✅ Platform handlers created (if needed)
|
||||
✅ Build tracking updated
|
||||
167
_bmad/bmb/workflows/module/steps-c/step-05-agents.md
Normal file
167
_bmad/bmb/workflows/module/steps-c/step-05-agents.md
Normal file
@@ -0,0 +1,167 @@
|
||||
---
|
||||
name: 'step-05-agents'
|
||||
description: 'Create agent placeholder/spec files'
|
||||
|
||||
nextStepFile: './step-06-workflows.md'
|
||||
agentSpecTemplate: '../../templates/agent-spec-template.md'
|
||||
agentArchitectureFile: '../../data/agent-architecture.md'
|
||||
buildTrackingFile: '{bmb_creations_output_folder}/modules/module-build-{module_code}.md'
|
||||
targetLocation: '{build_tracking_targetLocation}'
|
||||
---
|
||||
|
||||
# Step 5: Agent Specs
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Create agent placeholder/spec files based on the brief.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Module Builder** — creating agent specs
|
||||
- ✅ These are specs, not full agents (agent-builder does that)
|
||||
- ✅ Keep it high-level
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Load Agent Architecture
|
||||
|
||||
Load `{agentArchitectureFile}` for guidance.
|
||||
|
||||
### 2. Get Agent Roster from Brief
|
||||
|
||||
Extract from the brief:
|
||||
- Agent names
|
||||
- Roles
|
||||
- Workflows they're responsible for
|
||||
- Communication style
|
||||
- Memory needs (hasSidecar)
|
||||
|
||||
### 3. For Each Agent, Create Spec
|
||||
|
||||
Load `{agentSpecTemplate}` and create:
|
||||
|
||||
`{targetLocation}/agents/{agent_name}.spec.md`
|
||||
|
||||
With content:
|
||||
```markdown
|
||||
# Agent Specification: {agent_name}
|
||||
|
||||
**Module:** {module_code}
|
||||
**Status:** Placeholder — To be created via create-agent workflow
|
||||
**Created:** {date}
|
||||
|
||||
---
|
||||
|
||||
## Agent Metadata
|
||||
|
||||
```yaml
|
||||
agent:
|
||||
metadata:
|
||||
id: "_bmad/{module_code}/agents/{agent_file_name}.md"
|
||||
name: {agent_human_name}
|
||||
title: {agent_title}
|
||||
icon: {agent_icon}
|
||||
module: {module_code}
|
||||
hasSidecar: {false/true}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Agent Persona
|
||||
|
||||
### Role
|
||||
|
||||
{agent_role}
|
||||
|
||||
### Identity
|
||||
|
||||
{agent_identity}
|
||||
|
||||
### Communication Style
|
||||
|
||||
{agent_communication_style}
|
||||
|
||||
### Principles
|
||||
|
||||
{agent_principles}
|
||||
|
||||
---
|
||||
|
||||
## Agent Menu
|
||||
|
||||
### Planned Commands
|
||||
|
||||
| Trigger | Command | Description | Workflow |
|
||||
|---------|---------|-------------|----------|
|
||||
{agent_menu_table}
|
||||
|
||||
---
|
||||
|
||||
## Agent Integration
|
||||
|
||||
### Shared Context
|
||||
|
||||
- References: `{shared_context_files}`
|
||||
- Collaboration with: {collaborating_agents}
|
||||
|
||||
### Workflow References
|
||||
|
||||
{workflow_references}
|
||||
|
||||
---
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
**Use the create-agent workflow to build this agent.**
|
||||
|
||||
---
|
||||
|
||||
_Spec created on {date} via BMAD Module workflow_
|
||||
```
|
||||
|
||||
### 4. Create All Agent Specs
|
||||
|
||||
Iterate through each agent from the brief and create their spec file.
|
||||
|
||||
### 5. Update Build Tracking
|
||||
|
||||
Update `{buildTrackingFile}`:
|
||||
- Add 'step-05-agents' to stepsCompleted
|
||||
- List all agent specs created
|
||||
|
||||
### 6. Report Success
|
||||
|
||||
"**✓ Agent specs created:**"
|
||||
|
||||
- {count} agent spec files
|
||||
- {list agent names}
|
||||
|
||||
"**These are specs/blueprints. Use the create-agent workflow to build each agent.**"
|
||||
|
||||
### 7. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [C] Continue
|
||||
|
||||
- IF C: Update tracking, load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay menu
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Agent spec files created for all agents
|
||||
✅ Each spec has role, workflows, menu triggers
|
||||
✅ hasSidecar documented (memory decision)
|
||||
✅ Build tracking updated
|
||||
183
_bmad/bmb/workflows/module/steps-c/step-06-workflows.md
Normal file
183
_bmad/bmb/workflows/module/steps-c/step-06-workflows.md
Normal file
@@ -0,0 +1,183 @@
|
||||
---
|
||||
name: 'step-06-workflows'
|
||||
description: 'Create workflow placeholder/spec files'
|
||||
|
||||
nextStepFile: './step-07-docs.md'
|
||||
workflowSpecTemplate: '../../templates/workflow-spec-template.md'
|
||||
buildTrackingFile: '{bmad_creations_output_folder}/modules/module-build-{module_code}.md'
|
||||
targetLocation: '{build_tracking_targetLocation}'
|
||||
---
|
||||
|
||||
# Step 6: Workflow Specs
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Create workflow placeholder/spec files based on the brief.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Module Builder** — creating workflow specs
|
||||
- ✅ These are specs, not full workflows (workflow-builder does that)
|
||||
- ✅ Keep it high-level
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Get Workflow List from Brief
|
||||
|
||||
Extract from the brief:
|
||||
- Core workflows
|
||||
- Feature workflows
|
||||
- Utility workflows
|
||||
|
||||
For each workflow:
|
||||
- Name
|
||||
- Purpose/goal
|
||||
- Primary agent
|
||||
- Input/output requirements
|
||||
|
||||
### 2. For Each Workflow, Create Spec
|
||||
|
||||
Load `{workflowSpecTemplate}` and create:
|
||||
|
||||
`{targetLocation}/workflows/{workflow_name}/{workflow_name}.spec.md`
|
||||
|
||||
With content:
|
||||
```markdown
|
||||
# Workflow Specification: {workflow_name}
|
||||
|
||||
**Module:** {module_code}
|
||||
**Status:** Placeholder — To be created via create-workflow workflow
|
||||
**Created:** {date}
|
||||
|
||||
---
|
||||
|
||||
## Workflow Overview
|
||||
|
||||
**Goal:** {workflow_goal}
|
||||
|
||||
**Description:** {workflow_description}
|
||||
|
||||
**Workflow Type:** {workflow_type}
|
||||
|
||||
---
|
||||
|
||||
## Workflow Structure
|
||||
|
||||
### Entry Point
|
||||
|
||||
```yaml
|
||||
---
|
||||
name: {workflow_name}
|
||||
description: {workflow_description}
|
||||
web_bundle: true
|
||||
installed_path: '{project-root}/_bmad/{module_code}/workflows/{workflow_folder_name}'
|
||||
---
|
||||
```
|
||||
|
||||
### Mode
|
||||
|
||||
- [ ] Create-only (steps-c/)
|
||||
- [ ] Tri-modal (steps-c/, steps-e/, steps-v/)
|
||||
|
||||
---
|
||||
|
||||
## Planned Steps
|
||||
|
||||
| Step | Name | Goal |
|
||||
|------|------|------|
|
||||
{workflow_steps_table}
|
||||
|
||||
---
|
||||
|
||||
## Workflow Inputs
|
||||
|
||||
### Required Inputs
|
||||
|
||||
{required_inputs}
|
||||
|
||||
### Optional Inputs
|
||||
|
||||
{optional_inputs}
|
||||
|
||||
---
|
||||
|
||||
## Workflow Outputs
|
||||
|
||||
### Output Format
|
||||
|
||||
- [ ] Document-producing
|
||||
- [ ] Non-document
|
||||
|
||||
### Output Files
|
||||
|
||||
{output_files}
|
||||
|
||||
---
|
||||
|
||||
## Agent Integration
|
||||
|
||||
### Primary Agent
|
||||
|
||||
{primary_agent}
|
||||
|
||||
### Other Agents
|
||||
|
||||
{other_agents}
|
||||
|
||||
---
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
**Use the create-workflow workflow to build this workflow.**
|
||||
|
||||
---
|
||||
|
||||
_Spec created on {date} via BMAD Module workflow_
|
||||
```
|
||||
|
||||
### 3. Create All Workflow Specs
|
||||
|
||||
Iterate through each workflow from the brief and create their spec file.
|
||||
|
||||
### 4. Update Build Tracking
|
||||
|
||||
Update `{buildTrackingFile}`:
|
||||
- Add 'step-06-workflows' to stepsCompleted
|
||||
- List all workflow specs created
|
||||
|
||||
### 5. Report Success
|
||||
|
||||
"**✓ Workflow specs created:**"
|
||||
|
||||
- {count} workflow spec files
|
||||
- {list workflow names}
|
||||
|
||||
"**These are specs/blueprints. Use the create-workflow workflow to build each workflow.**"
|
||||
|
||||
### 6. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [C] Continue
|
||||
|
||||
- IF C: Update tracking, load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay menu
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Workflow spec files created for all workflows
|
||||
✅ Each spec has goal, steps, inputs/outputs
|
||||
✅ Agent associations documented
|
||||
✅ Build tracking updated
|
||||
402
_bmad/bmb/workflows/module/steps-c/step-07-docs.md
Normal file
402
_bmad/bmb/workflows/module/steps-c/step-07-docs.md
Normal file
@@ -0,0 +1,402 @@
|
||||
---
|
||||
name: 'step-07-docs'
|
||||
description: 'Generate README.md, TODO.md, and docs/ folder'
|
||||
|
||||
nextStepFile: './step-08-complete.md'
|
||||
buildTrackingFile: '{bmb_creations_output_folder}/modules/module-build-{module_code}.md'
|
||||
targetLocation: '{build_tracking_targetLocation}'
|
||||
---
|
||||
|
||||
# Step 7: Documentation
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Generate README.md, TODO.md, and user documentation in docs/ folder for the module.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Module Builder** — documentation creator
|
||||
- ✅ README is the user's first impression
|
||||
- ✅ TODO tracks remaining work
|
||||
- ✅ docs/ provides user-facing documentation
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Generate README.md
|
||||
|
||||
Create `{targetLocation}/README.md`:
|
||||
|
||||
```markdown
|
||||
# {module_display_name}
|
||||
|
||||
{brief_header}
|
||||
|
||||
{subheader}
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
{module_overview_from_brief}
|
||||
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
bmad install {module_code}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quick Start
|
||||
|
||||
{quick_start_from_brief}
|
||||
|
||||
**For detailed documentation, see [docs/](docs/).**
|
||||
|
||||
---
|
||||
|
||||
## Components
|
||||
|
||||
### Agents
|
||||
|
||||
{agent_list_from_brief}
|
||||
|
||||
### Workflows
|
||||
|
||||
{workflow_list_from_brief}
|
||||
|
||||
---
|
||||
|
||||
## Configuration
|
||||
|
||||
The module supports these configuration options (set during installation):
|
||||
|
||||
{config_variables_from_module_yaml}
|
||||
|
||||
---
|
||||
|
||||
## Module Structure
|
||||
|
||||
```
|
||||
{module_code}/
|
||||
├── module.yaml
|
||||
├── README.md
|
||||
├── TODO.md
|
||||
├── docs/
|
||||
│ ├── getting-started.md
|
||||
│ ├── agents.md
|
||||
│ ├── workflows.md
|
||||
│ └── examples.md
|
||||
├── agents/
|
||||
├── workflows/
|
||||
└── _module-installer/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Documentation
|
||||
|
||||
For detailed user guides and documentation, see the **[docs/](docs/)** folder:
|
||||
- [Getting Started](docs/getting-started.md)
|
||||
- [Agents Reference](docs/agents.md)
|
||||
- [Workflows Reference](docs/workflows.md)
|
||||
- [Examples](docs/examples.md)
|
||||
|
||||
---
|
||||
|
||||
## Development Status
|
||||
|
||||
This module is currently in development. The following components are planned:
|
||||
|
||||
- [ ] Agents: {agent_count} agents
|
||||
- [ ] Workflows: {workflow_count} workflows
|
||||
|
||||
See TODO.md for detailed status.
|
||||
|
||||
---
|
||||
|
||||
## Author
|
||||
|
||||
Created via BMAD Module workflow
|
||||
|
||||
---
|
||||
|
||||
## License
|
||||
|
||||
Part of the BMAD framework.
|
||||
```
|
||||
|
||||
### 2. Generate TODO.md
|
||||
|
||||
Create `{targetLocation}/TODO.md`:
|
||||
|
||||
```markdown
|
||||
# TODO: {module_display_name}
|
||||
|
||||
Development roadmap for {module_code} module.
|
||||
|
||||
---
|
||||
|
||||
## Agents to Build
|
||||
|
||||
{for each agent}
|
||||
- [ ] {agent_name} ({agent_title})
|
||||
- Use: `bmad:bmb:agents:agent-builder`
|
||||
- Spec: `agents/{agent_name}.spec.md`
|
||||
|
||||
---
|
||||
|
||||
## Workflows to Build
|
||||
|
||||
{for each workflow}
|
||||
- [ ] {workflow_name}
|
||||
- Use: `bmad:bmb:workflows:workflow` or `/workflow`
|
||||
- Spec: `workflows/{workflow_name}/{workflow_name}.spec.md`
|
||||
|
||||
---
|
||||
|
||||
## Installation Testing
|
||||
|
||||
- [ ] Test installation with `bmad install`
|
||||
- [ ] Verify module.yaml prompts work correctly
|
||||
- [ ] Test installer.js (if present)
|
||||
- [ ] Test IDE-specific handlers (if present)
|
||||
|
||||
---
|
||||
|
||||
## Documentation
|
||||
|
||||
- [ ] Complete README.md with usage examples
|
||||
- [ ] Enhance docs/ folder with more guides
|
||||
- [ ] Add troubleshooting section
|
||||
- [ ] Document configuration options
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. Build agents using create-agent workflow
|
||||
2. Build workflows using create-workflow workflow
|
||||
3. Test installation and functionality
|
||||
4. Iterate based on testing
|
||||
|
||||
---
|
||||
|
||||
_Last updated: {date}_
|
||||
```
|
||||
|
||||
### 3. Create docs/ Folder
|
||||
|
||||
Create `{targetLocation}/docs/` folder with user documentation:
|
||||
|
||||
### 3.1. getting-started.md
|
||||
|
||||
```markdown
|
||||
# Getting Started with {module_display_name}
|
||||
|
||||
Welcome to {module_code}! This guide will help you get up and running.
|
||||
|
||||
---
|
||||
|
||||
## What This Module Does
|
||||
|
||||
{module_purpose_from_brief}
|
||||
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
If you haven't installed the module yet:
|
||||
|
||||
```bash
|
||||
bmad install {module_code}
|
||||
```
|
||||
|
||||
Follow the prompts to configure the module for your needs.
|
||||
|
||||
---
|
||||
|
||||
## First Steps
|
||||
|
||||
{first_steps_from_brief}
|
||||
|
||||
---
|
||||
|
||||
## Common Use Cases
|
||||
|
||||
{common_use_cases_from_brief}
|
||||
|
||||
---
|
||||
|
||||
## What's Next?
|
||||
|
||||
- Check out the [Agents Reference](agents.md) to meet your team
|
||||
- Browse the [Workflows Reference](workflows.md) to see what you can do
|
||||
- See [Examples](examples.md) for real-world usage
|
||||
|
||||
---
|
||||
|
||||
## Need Help?
|
||||
|
||||
If you run into issues:
|
||||
1. Check the troubleshooting section in examples.md
|
||||
2. Review your module configuration
|
||||
3. Consult the broader BMAD documentation
|
||||
```
|
||||
|
||||
### 3.2. agents.md
|
||||
|
||||
```markdown
|
||||
# Agents Reference
|
||||
|
||||
{module_code} includes {agent_count} specialized agents:
|
||||
|
||||
---
|
||||
|
||||
{for each agent}
|
||||
## {agent_title}
|
||||
|
||||
**ID:** `{agent_id}`
|
||||
**Icon:** {agent_icon}
|
||||
|
||||
**Role:**
|
||||
{agent_role_from_spec}
|
||||
|
||||
**When to Use:**
|
||||
{when_to_use_from_spec}
|
||||
|
||||
**Key Capabilities:**
|
||||
{agent_capabilities_from_spec}
|
||||
|
||||
**Menu Trigger(s):**
|
||||
{menu_triggers_from_spec}
|
||||
|
||||
---
|
||||
```
|
||||
|
||||
### 3.3. workflows.md
|
||||
|
||||
```markdown
|
||||
# Workflows Reference
|
||||
|
||||
{module_code} includes {workflow_count} workflows:
|
||||
|
||||
---
|
||||
|
||||
{for each workflow}
|
||||
## {workflow_title}
|
||||
|
||||
**ID:** `{workflow_id}`
|
||||
**Workflow:** `{workflow_name}`
|
||||
|
||||
**Purpose:**
|
||||
{workflow_purpose_from_spec}
|
||||
|
||||
**When to Use:**
|
||||
{when_to_use_from_spec}
|
||||
|
||||
**Key Steps:**
|
||||
{workflow_steps_outline_from_spec}
|
||||
|
||||
**Agent(s):**
|
||||
{associated_agents_from_spec}
|
||||
|
||||
---
|
||||
```
|
||||
|
||||
### 3.4. examples.md
|
||||
|
||||
```markdown
|
||||
# Examples & Use Cases
|
||||
|
||||
This section provides practical examples for using {module_display_name}.
|
||||
|
||||
---
|
||||
|
||||
## Example Workflows
|
||||
|
||||
{example_workflows_from_brief}
|
||||
|
||||
---
|
||||
|
||||
## Common Scenarios
|
||||
|
||||
{common_scenarios_from_brief}
|
||||
|
||||
---
|
||||
|
||||
## Tips & Tricks
|
||||
|
||||
{tips_from_brief}
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
{troubleshooting_from_brief}
|
||||
|
||||
---
|
||||
|
||||
## Getting More Help
|
||||
|
||||
- Review the main BMAD documentation
|
||||
- Check module configuration in module.yaml
|
||||
- Verify all agents and workflows are properly installed
|
||||
```
|
||||
|
||||
### 4. Update Build Tracking
|
||||
|
||||
Update `{buildTrackingFile}`:
|
||||
- Add 'step-07-docs' to stepsCompleted
|
||||
- Note: README.md, TODO.md, and docs/ folder created
|
||||
|
||||
### 5. Report Success
|
||||
|
||||
"**✓ Documentation created:**"
|
||||
|
||||
- README.md — module overview and navigation
|
||||
- TODO.md — development roadmap
|
||||
- docs/ — user documentation folder
|
||||
- getting-started.md — quick start guide
|
||||
- agents.md — agent reference
|
||||
- workflows.md — workflow reference
|
||||
- examples.md — practical examples
|
||||
|
||||
"**User documentation is valuable even with placeholder agent/workflow specs — users will understand what each component does and how to use them.**"
|
||||
|
||||
"**TODO.md tracks the remaining work:**"
|
||||
- Build {agent_count} agents
|
||||
- Build {workflow_count} workflows
|
||||
- Test installation
|
||||
|
||||
### 6. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [C] Continue
|
||||
|
||||
- IF C: Update tracking, load `{nextStepFile}`
|
||||
- IF Any other: Help, then redisplay menu
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ README.md created with all sections
|
||||
✅ TODO.md created with agent/workflow checklist
|
||||
✅ docs/ folder created with user documentation
|
||||
✅ Build tracking updated
|
||||
123
_bmad/bmb/workflows/module/steps-c/step-08-complete.md
Normal file
123
_bmad/bmb/workflows/module/steps-c/step-08-complete.md
Normal file
@@ -0,0 +1,123 @@
|
||||
---
|
||||
name: 'step-08-complete'
|
||||
description: 'Finalize, offer to run validation'
|
||||
|
||||
buildTrackingFile: '{bmb_creations_output_folder}/modules/module-build-{module_code}.md'
|
||||
targetLocation: '{build_tracking_targetLocation}'
|
||||
validationWorkflow: '../steps-v/step-01-validate.md'
|
||||
---
|
||||
|
||||
# Step 8: Complete
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Finalize the module build, update tracking, and offer to run validation.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Module Builder** — completing the build
|
||||
- ✅ Celebrate what was created
|
||||
- ✅ Guide next steps
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Final Build Summary
|
||||
|
||||
"**🎉 Module structure build complete!**"
|
||||
|
||||
**Module:** {moduleName} ({moduleCode})
|
||||
**Type:** {moduleType}
|
||||
**Location:** {targetLocation}
|
||||
|
||||
**What was created:**
|
||||
|
||||
| Component | Count | Location |
|
||||
|-----------|-------|----------|
|
||||
| Agent specs | {count} | agents/ |
|
||||
| Workflow specs | {count} | workflows/ |
|
||||
| Configuration | 1 | module.yaml |
|
||||
| Documentation | 2 | README.md, TODO.md |
|
||||
| Installer | {yes/no} | _module-installer/ |
|
||||
|
||||
### 2. Update Build Tracking
|
||||
|
||||
Update `{buildTrackingFile}`:
|
||||
```yaml
|
||||
---
|
||||
moduleCode: {module_code}
|
||||
moduleName: {name}
|
||||
moduleType: {type}
|
||||
targetLocation: {location}
|
||||
stepsCompleted: ['step-01-load-brief', 'step-02-structure', 'step-03-config', 'step-04-installer', 'step-05-agents', 'step-06-workflows', 'step-07-docs', 'step-08-complete']
|
||||
created: {created_date}
|
||||
completed: {date}
|
||||
status: COMPLETE
|
||||
---
|
||||
```
|
||||
|
||||
### 3. Next Steps
|
||||
|
||||
"**Your module structure is ready! Here's what to do next:**"
|
||||
|
||||
1. **Review the build** — Check {targetLocation}
|
||||
2. **Build agents** — Use `bmad:bmb:agents:agent-builder` for each agent spec
|
||||
3. **Build workflows** — Use `bmad:bmb:workflows:workflow` for each workflow spec
|
||||
4. **Test installation** — Run `bmad install {module_code}`
|
||||
5. **Iterate** — Refine based on testing
|
||||
|
||||
### 4. Offer Validation
|
||||
|
||||
"**Would you like to run validation on the module structure?**"
|
||||
|
||||
Validation checks:
|
||||
- File structure compliance
|
||||
- module.yaml correctness
|
||||
- Spec completeness
|
||||
- Installation readiness
|
||||
|
||||
### 5. MENU OPTIONS
|
||||
|
||||
**Select an Option:** [V] Validate Module [D] Done
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF V: Load `{validationWorkflow}` to run validation
|
||||
- IF D: Celebration message, workflow complete
|
||||
- IF Any other: Help user, then redisplay menu
|
||||
|
||||
### 6. Completion Message (if Done selected)
|
||||
|
||||
"**🚀 You've built a module structure for BMAD!**"
|
||||
|
||||
"**Module:** {moduleName} ({moduleCode})"
|
||||
"**Location:** {targetLocation}"
|
||||
"**Status:** Ready for agent and workflow implementation"
|
||||
|
||||
"**The journey from idea to installable module continues:**
|
||||
- Agent specs → create-agent workflow
|
||||
- Workflow specs → create-workflow workflow
|
||||
- Full module → `bmad install`
|
||||
|
||||
"**Great work! Let's build something amazing.** ✨"
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Build tracking marked COMPLETE
|
||||
✅ Summary presented to user
|
||||
✅ Next steps clearly explained
|
||||
✅ Validation offered (optional)
|
||||
81
_bmad/bmb/workflows/module/steps-e/step-01-load-target.md
Normal file
81
_bmad/bmb/workflows/module/steps-e/step-01-load-target.md
Normal file
@@ -0,0 +1,81 @@
|
||||
---
|
||||
name: 'step-01-load-target'
|
||||
description: 'Load target for editing'
|
||||
|
||||
nextStepFile: './step-02-select-edit.md'
|
||||
moduleStandardsFile: '../../data/module-standards.md'
|
||||
---
|
||||
|
||||
# Step 1: Load Target (Edit Mode)
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Load the target (brief, module.yaml, agent specs, or workflow specs) for editing.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Editor** — helpful, ready to assist
|
||||
- ✅ Understand what we're editing
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Determine Edit Target
|
||||
|
||||
"**What would you like to edit?**"
|
||||
|
||||
Options:
|
||||
- **[B]rief** — Module brief from Brief mode
|
||||
- **[Y]aml** — module.yaml configuration
|
||||
- **[A]gents** — Agent specifications
|
||||
- **[W]orkflows** — Workflow specifications
|
||||
- **[D]ocs** — README.md or TODO.md
|
||||
|
||||
### 2. Load Target
|
||||
|
||||
Based on selection, load the target file(s).
|
||||
|
||||
**IF Brief:**
|
||||
- Path: `{bmb_creations_output_folder}/modules/module-brief-{code}.md`
|
||||
|
||||
**IF Yaml:**
|
||||
- Path: `src/modules/{code}/module.yaml`
|
||||
|
||||
**IF Agents:**
|
||||
- Path: `src/modules/{code}/agents/`
|
||||
- List available agent specs
|
||||
|
||||
**IF Workflows:**
|
||||
- Path: `src/modules/{code}/workflows/`
|
||||
- List available workflow specs
|
||||
|
||||
**IF Docs:**
|
||||
- Path: `src/modules/{code}/README.md` or `TODO.md`
|
||||
|
||||
### 3. Display Current Content
|
||||
|
||||
Show the current content of the target file.
|
||||
|
||||
"**Here's the current content:**"
|
||||
|
||||
{display relevant sections or summary}
|
||||
|
||||
### 4. Proceed to Selection
|
||||
|
||||
"**What would you like to change?**"
|
||||
|
||||
Load `{nextStepFile}` to select the edit type.
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Target loaded
|
||||
✅ Current content displayed
|
||||
✅ Ready to select edit type
|
||||
77
_bmad/bmb/workflows/module/steps-e/step-02-select-edit.md
Normal file
77
_bmad/bmb/workflows/module/steps-e/step-02-select-edit.md
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
name: 'step-02-select-edit'
|
||||
description: 'Select edit type and gather changes'
|
||||
|
||||
nextStepFile: './step-03-apply-edit.md'
|
||||
---
|
||||
|
||||
# Step 2: Select Edit Type
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Select the type of edit and gather the changes to make.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Editor** — precise, collaborative
|
||||
- ✅ Understand the change before making it
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Select Edit Type
|
||||
|
||||
"**What type of edit would you like to make?**"
|
||||
|
||||
- **[M]odify** — Change existing content
|
||||
- **[A]dd** — Add new content
|
||||
- **[D]elete** — Remove content
|
||||
- **[R]eplace** — Replace section entirely
|
||||
|
||||
### 2. Gather Edit Details
|
||||
|
||||
**IF Modify:**
|
||||
"**Which section do you want to modify?**"
|
||||
"What should it change to?"
|
||||
|
||||
**IF Add:**
|
||||
"**What do you want to add?**"
|
||||
"**Where should it go?**"
|
||||
|
||||
**IF Delete:**
|
||||
"**What do you want to remove?**"
|
||||
|
||||
**IF Replace:**
|
||||
"**What section should be replaced?**"
|
||||
"**What's the new content?**"
|
||||
|
||||
### 3. Confirm Change
|
||||
|
||||
"**Please confirm the edit:**"
|
||||
|
||||
**Type:** {edit_type}
|
||||
**Target:** {section or content}
|
||||
**Change:** {description of change}
|
||||
|
||||
"**Is this correct?**"
|
||||
|
||||
### 4. Store Edit Plan
|
||||
|
||||
Store the edit plan for the next step.
|
||||
|
||||
Load `{nextStepFile}` to apply the edit.
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Edit type selected
|
||||
✅ Change details gathered
|
||||
✅ User confirmed
|
||||
✅ Edit plan stored
|
||||
77
_bmad/bmb/workflows/module/steps-e/step-03-apply-edit.md
Normal file
77
_bmad/bmb/workflows/module/steps-e/step-03-apply-edit.md
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
name: 'step-03-apply-edit'
|
||||
description: 'Apply the edit and save'
|
||||
|
||||
nextStepFile: './step-04-review.md'
|
||||
---
|
||||
|
||||
# Step 3: Apply Edit
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Apply the confirmed edit to the target file and save.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Editor** — making changes
|
||||
- ✅ Apply edits precisely
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Load Target File
|
||||
|
||||
Read the complete target file.
|
||||
|
||||
### 2. Apply Edit
|
||||
|
||||
Based on the edit plan from step 2:
|
||||
|
||||
**IF Modify:**
|
||||
- Locate the section
|
||||
- Apply the modification
|
||||
- Preserve surrounding context
|
||||
|
||||
**IF Add:**
|
||||
- Find the insertion point
|
||||
- Insert new content
|
||||
- Maintain formatting
|
||||
|
||||
**IF Delete:**
|
||||
- Locate the content
|
||||
- Remove it
|
||||
- Clean up any gaps
|
||||
|
||||
**IF Replace:**
|
||||
- Locate the section
|
||||
- Replace with new content
|
||||
- Ensure proper formatting
|
||||
|
||||
### 3. Save Changes
|
||||
|
||||
Write the modified content back to the target file.
|
||||
|
||||
### 4. Report Success
|
||||
|
||||
"**✓ Edit applied!**"
|
||||
|
||||
**File:** {file_path}
|
||||
**Change:** {summary_of_change}
|
||||
|
||||
### 5. Proceed to Review
|
||||
|
||||
Load `{nextStepFile}` to review the changes.
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Edit applied correctly
|
||||
✅ File saved
|
||||
✅ Change summary provided
|
||||
80
_bmad/bmb/workflows/module/steps-e/step-04-review.md
Normal file
80
_bmad/bmb/workflows/module/steps-e/step-04-review.md
Normal file
@@ -0,0 +1,80 @@
|
||||
---
|
||||
name: 'step-04-review'
|
||||
description: 'Review changes and offer validation'
|
||||
|
||||
nextStepFile: './step-05-confirm.md'
|
||||
validationWorkflow: '../steps-v/step-01-load-target.md'
|
||||
---
|
||||
|
||||
# Step 4: Review Changes
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Review the applied changes and offer to run validation.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Editor** — confirming changes
|
||||
- ✅ Ensure user is satisfied
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Show Diff
|
||||
|
||||
Display what changed:
|
||||
|
||||
"**Here's what changed:**"
|
||||
|
||||
**Before:**
|
||||
{before_content}
|
||||
|
||||
**After:**
|
||||
{after_content}
|
||||
|
||||
### 2. Confirm Satisfaction
|
||||
|
||||
"**Are you happy with this change?**"
|
||||
|
||||
- **[Y]es** — Keep the change
|
||||
- **[N]o** — Revert and redo
|
||||
- **[M]odify** — Make further adjustments
|
||||
|
||||
### 3. Handle Response
|
||||
|
||||
**IF Yes:**
|
||||
- Mark edit as complete
|
||||
- Proceed to step 5
|
||||
|
||||
**IF No:**
|
||||
- Revert the change
|
||||
- Return to step 2 to gather new edit
|
||||
|
||||
**IF Modify:**
|
||||
- Make additional adjustments
|
||||
- Show updated diff
|
||||
- Ask again
|
||||
|
||||
### 4. Offer Validation
|
||||
|
||||
"**Would you like to run validation after this edit?**"
|
||||
|
||||
- Validation can check for any issues introduced
|
||||
|
||||
### 5. Proceed to Confirm
|
||||
|
||||
Load `{nextStepFile}` to confirm completion.
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Changes reviewed
|
||||
✅ User satisfaction confirmed
|
||||
✅ Validation offered
|
||||
75
_bmad/bmb/workflows/module/steps-e/step-05-confirm.md
Normal file
75
_bmad/bmb/workflows/module/steps-e/step-05-confirm.md
Normal file
@@ -0,0 +1,75 @@
|
||||
---
|
||||
name: 'step-05-confirm'
|
||||
description: 'Confirm completion and offer next steps'
|
||||
|
||||
validationWorkflow: '../steps-v/step-01-load-target.md'
|
||||
---
|
||||
|
||||
# Step 5: Confirm Completion
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Confirm edit completion and offer next steps including validation.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Module Editor** — completing the job
|
||||
- ✅ Guide next steps
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Summary of Changes
|
||||
|
||||
"**✓ Edit complete!**"
|
||||
|
||||
**File edited:** {file_path}
|
||||
**Edit type:** {edit_type}
|
||||
**Summary:** {summary_of_change}
|
||||
|
||||
### 2. Offer Next Actions
|
||||
|
||||
"**What would you like to do next?**"
|
||||
|
||||
- **[V]alidate** — Run validation to check for issues
|
||||
- **[E]dit more** — Make additional changes
|
||||
- **[D]one** — Complete edit session
|
||||
|
||||
### 3. Handle Response
|
||||
|
||||
**IF Validate:**
|
||||
"**Loading validation workflow...**"
|
||||
Load `{validationWorkflow}`
|
||||
|
||||
**IF Edit more:**
|
||||
"**Loading edit selection...**"
|
||||
Return to step 1
|
||||
|
||||
**IF Done:**
|
||||
"**Edit session complete!**"
|
||||
Summary of what was accomplished.
|
||||
|
||||
### 4. Complete Session
|
||||
|
||||
If Done selected:
|
||||
|
||||
"**Thanks for using the Module Edit workflow!**"
|
||||
|
||||
"**Summary:**"
|
||||
- Files edited: {count}
|
||||
- Changes made: {summary}
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Edit confirmed complete
|
||||
✅ Next actions offered
|
||||
✅ Validation accessible
|
||||
✅ Session properly closed
|
||||
96
_bmad/bmb/workflows/module/steps-v/step-01-load-target.md
Normal file
96
_bmad/bmb/workflows/module/steps-v/step-01-load-target.md
Normal file
@@ -0,0 +1,96 @@
|
||||
---
|
||||
name: 'step-01-load-target'
|
||||
description: 'Load target for validation'
|
||||
|
||||
nextStepFile: './step-02-file-structure.md'
|
||||
validationReportOutput: '{bmb_creations_output_folder}/modules/validation-report-{target_code}-{timestamp}.md'
|
||||
---
|
||||
|
||||
# Step 1: Load Target (Validate Mode)
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Load the target (brief, module, agent specs, or workflow specs) for validation.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Quality Assurance** — thorough, systematic
|
||||
- ✅ Understand what we're validating
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Determine Validation Target
|
||||
|
||||
"**What would you like to validate?**"
|
||||
|
||||
Options:
|
||||
- **[B]rief** — Module brief from Brief mode
|
||||
- **[M]odule** — Built module structure
|
||||
- **[A]gents** — Agent specifications
|
||||
- **[W]orkflows** — Workflow specifications
|
||||
- **[F]ull** — Everything (brief + module + specs)
|
||||
|
||||
### 2. Load Target
|
||||
|
||||
Based on selection, load the target:
|
||||
|
||||
**IF Brief:**
|
||||
- Path: `{bmb_creations_output_folder}/modules/module-brief-{code}.md`
|
||||
- Ask for module code if not specified
|
||||
|
||||
**IF Module:**
|
||||
- Path: `src/modules/{code}/`
|
||||
- Ask for module code if not specified
|
||||
|
||||
**IF Agents:**
|
||||
- Path: `src/modules/{code}/agents/`
|
||||
- Load all `.spec.md` or `.agent.yaml` files
|
||||
|
||||
**IF Workflows:**
|
||||
- Path: `src/modules/{code}/workflows/`
|
||||
- Load all `.spec.md` files
|
||||
|
||||
**IF Full:**
|
||||
- Load everything above for a module
|
||||
|
||||
### 3. Confirm Target
|
||||
|
||||
"**Validating:** {target_type} for {module_code}"
|
||||
"**Location:** {path}"
|
||||
|
||||
"**Shall I proceed?**"
|
||||
|
||||
### 4. Initialize Validation Report
|
||||
|
||||
Create the validation report structure:
|
||||
|
||||
```yaml
|
||||
---
|
||||
validationDate: {timestamp}
|
||||
targetType: {target_type}
|
||||
moduleCode: {module_code}
|
||||
targetPath: {path}
|
||||
status: IN_PROGRESS
|
||||
---
|
||||
```
|
||||
|
||||
### 5. Proceed to Validation
|
||||
|
||||
"**Starting validation checks...**"
|
||||
|
||||
Load `{nextStepFile}` to begin file structure validation.
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Target loaded
|
||||
✅ Validation report initialized
|
||||
✅ User confirmed
|
||||
94
_bmad/bmb/workflows/module/steps-v/step-02-file-structure.md
Normal file
94
_bmad/bmb/workflows/module/steps-v/step-02-file-structure.md
Normal file
@@ -0,0 +1,94 @@
|
||||
---
|
||||
name: 'step-02-file-structure'
|
||||
description: 'Validate file structure compliance'
|
||||
|
||||
nextStepFile: './step-03-module-yaml.md'
|
||||
moduleStandardsFile: '../../data/module-standards.md'
|
||||
validationReportOutput: '{validation_report_output}'
|
||||
---
|
||||
|
||||
# Step 2: File Structure Validation
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Validate file structure against module standards.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Quality Assurance** — checking structure
|
||||
- ✅ Reference standards, ensure compliance
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Load Standards
|
||||
|
||||
Load `{moduleStandardsFile}` for reference.
|
||||
|
||||
### 2. Perform Structure Checks
|
||||
|
||||
Check based on target type:
|
||||
|
||||
**For Modules:**
|
||||
- [ ] module.yaml exists
|
||||
- [ ] README.md exists
|
||||
- [ ] agents/ folder exists (if agents specified)
|
||||
- [ ] workflows/ folder exists (if workflows specified)
|
||||
- [ ] _module-installer/ folder (if installer specified)
|
||||
|
||||
**For Briefs:**
|
||||
- [ ] Brief file exists
|
||||
- [ ] Required sections present
|
||||
|
||||
**For Agent Specs:**
|
||||
- [ ] All expected spec files exist
|
||||
|
||||
**For Workflow Specs:**
|
||||
- [ ] All expected spec files exist
|
||||
|
||||
### 3. Check Module Type Compliance
|
||||
|
||||
**IF Extension Module:**
|
||||
- [ ] Code matches base module
|
||||
- [ ] Folder name is unique (not conflicting)
|
||||
|
||||
**IF Global Module:**
|
||||
- [ ] Global flag documented
|
||||
|
||||
### 4. Record Results
|
||||
|
||||
Append to `{validationReportOutput}`:
|
||||
|
||||
```markdown
|
||||
## File Structure Validation
|
||||
|
||||
**Status:** {PASS/FAIL/WARNINGS}
|
||||
|
||||
**Checks:**
|
||||
{list each check with result}
|
||||
|
||||
**Issues Found:**
|
||||
{any structural problems}
|
||||
```
|
||||
|
||||
### 5. Auto-Proceed
|
||||
|
||||
"**✓ File structure check complete.**"
|
||||
|
||||
Proceeding to next validation...
|
||||
|
||||
Load `{nextStepFile}`
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ All structure checks performed
|
||||
✅ Results recorded
|
||||
✅ Auto-proceeds to next validation
|
||||
99
_bmad/bmb/workflows/module/steps-v/step-03-module-yaml.md
Normal file
99
_bmad/bmb/workflows/module/steps-v/step-03-module-yaml.md
Normal file
@@ -0,0 +1,99 @@
|
||||
---
|
||||
name: 'step-03-module-yaml'
|
||||
description: 'Validate module.yaml against conventions'
|
||||
|
||||
nextStepFile: './step-04-agent-specs.md'
|
||||
moduleYamlConventionsFile: '../../data/module-yaml-conventions.md'
|
||||
validationReportOutput: '{validation_report_output}'
|
||||
targetPath: '{validation_target_path}'
|
||||
---
|
||||
|
||||
# Step 3: module.yaml Validation
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Validate module.yaml formatting and conventions.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Quality Assurance** — checking configuration
|
||||
- ✅ Ensure proper YAML syntax
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Load module.yaml
|
||||
|
||||
Read `{targetPath}/module.yaml`
|
||||
|
||||
**IF not present:**
|
||||
- Record as FAIL (required file)
|
||||
- Skip to next validation
|
||||
|
||||
### 2. Validate Required Fields
|
||||
|
||||
Check for required frontmatter:
|
||||
- [ ] `code:` present and valid (kebab-case, 2-20 chars)
|
||||
- [ ] `name:` present
|
||||
- [ ] `header:` present
|
||||
- [ ] `subheader:` present
|
||||
- [ ] `default_selected:` present (boolean)
|
||||
|
||||
### 3. Validate Custom Variables
|
||||
|
||||
For each custom variable:
|
||||
- [ ] `prompt:` present
|
||||
- [ ] `default:` present (or explicitly omitted)
|
||||
- [ ] `result:` template valid
|
||||
- [ ] Variable naming correct (kebab-case)
|
||||
|
||||
**For single-select:**
|
||||
- [ ] `single-select:` array present
|
||||
- [ ] All options have `value:` and `label:`
|
||||
|
||||
**For multi-select:**
|
||||
- [ ] `multi-select:` array present
|
||||
- [ ] All options have `value:` and `label:`
|
||||
|
||||
### 4. Validate Extension Module Code
|
||||
|
||||
**IF Extension:**
|
||||
- [ ] `code:` matches base module code
|
||||
- [ ] This is intentional (not an error)
|
||||
|
||||
### 5. Record Results
|
||||
|
||||
Append to `{validationReportOutput}`:
|
||||
|
||||
```markdown
|
||||
## module.yaml Validation
|
||||
|
||||
**Status:** {PASS/FAIL/WARNINGS}
|
||||
|
||||
**Required Fields:** {status}
|
||||
**Custom Variables:** {count} variables
|
||||
**Issues Found:**
|
||||
{list any issues}
|
||||
```
|
||||
|
||||
### 6. Auto-Proceed
|
||||
|
||||
"**✓ module.yaml check complete.**"
|
||||
|
||||
Proceeding to next validation...
|
||||
|
||||
Load `{nextStepFile}`
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ All module.yaml checks performed
|
||||
✅ Results recorded
|
||||
✅ Auto-proceeds to next validation
|
||||
152
_bmad/bmb/workflows/module/steps-v/step-04-agent-specs.md
Normal file
152
_bmad/bmb/workflows/module/steps-v/step-04-agent-specs.md
Normal file
@@ -0,0 +1,152 @@
|
||||
---
|
||||
name: 'step-04-agent-specs'
|
||||
description: 'Validate agent specifications and built agents'
|
||||
|
||||
nextStepFile: './step-05-workflow-specs.md'
|
||||
agentSpecTemplate: '../../templates/agent-spec-template.md'
|
||||
agentArchitectureFile: '../../data/agent-architecture.md'
|
||||
agentValidationWorkflow: '{project-root}/_bmad/bmb/workflows/agent/steps-v/step-01-validate.md'
|
||||
validationReportOutput: '{validation_report_output}'
|
||||
targetPath: '{validation_target_path}'
|
||||
---
|
||||
|
||||
# Step 4: Agent Specs Validation
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Validate agent specifications and/or built agents, distinguishing between placeholder specs and fully implemented agents.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are the **Quality Assurance** — dual-mode checking
|
||||
- ✅ Specs are expected, built agents are great
|
||||
- ✅ Track status of each agent
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Load Agent Files
|
||||
|
||||
Find all agent files in `{targetPath}/agents/`:
|
||||
- `.spec.md` files (placeholder specs)
|
||||
- `.agent.yaml` files (built agents)
|
||||
|
||||
### 2. Categorize Agents
|
||||
|
||||
For each agent found, determine status:
|
||||
|
||||
**Built Agents (.agent.yaml):**
|
||||
- Full implementation with complete persona, menu YAML
|
||||
- Can be validated in-depth via agent validation workflow
|
||||
|
||||
**Spec Agents (.spec.md):**
|
||||
- High-level placeholder/blueprint
|
||||
- Awaiting creation via agent-builder workflow
|
||||
|
||||
Track counts:
|
||||
- Total agents: {count}
|
||||
- Built agents: {count}
|
||||
- Spec agents: {count}
|
||||
|
||||
### 3. Validate Spec Agents (.spec.md)
|
||||
|
||||
For each spec agent, check:
|
||||
|
||||
**Required Sections:**
|
||||
- [ ] Agent metadata (id, name, title, icon, module)
|
||||
- [ ] Role defined
|
||||
- [ ] Identity or communication style
|
||||
- [ ] Menu triggers documented
|
||||
- [ ] hasSidecar decision documented
|
||||
|
||||
**Menu Triggers:**
|
||||
- [ ] At least one trigger per agent
|
||||
- [ ] Trigger → workflow mapping clear
|
||||
- [ ] No duplicate triggers (warn if found)
|
||||
|
||||
**hasSidecar Documentation:**
|
||||
- [ ] Decision documented (true or false)
|
||||
- [ ] Rationale if true (why memory needed)
|
||||
|
||||
**Placeholder Note:** These are specs awaiting agent-builder.
|
||||
|
||||
### 4. Validate Built Agents (.agent.yaml)
|
||||
|
||||
For each built agent, check:
|
||||
|
||||
**Frontmatter Completeness:**
|
||||
- [ ] agent.metadata exists
|
||||
- [ ] agent.persona exists
|
||||
- [ ] agent.menu exists
|
||||
|
||||
**YAML Structure:**
|
||||
- [ ] Valid YAML syntax
|
||||
- [ ] Required fields present
|
||||
|
||||
**Status:** These are complete implementations and can be validated in detail via sub-process.
|
||||
|
||||
### 5. Record Results
|
||||
|
||||
Append to `{validationReportOutput}`:
|
||||
|
||||
```markdown
|
||||
## Agent Specs Validation
|
||||
|
||||
**Status:** {PASS/FAIL/WARNINGS}
|
||||
|
||||
**Agent Summary:**
|
||||
- Total Agents: {count}
|
||||
- Built Agents: {count} {list}
|
||||
- Spec Agents: {count} {list}
|
||||
|
||||
**Built Agents:**
|
||||
{for each built agent}
|
||||
- **{name}**: {status} - Ready for detailed validation via agent workflow
|
||||
|
||||
**Spec Agents:**
|
||||
{for each spec agent}
|
||||
- **{name}**: {status} - Placeholder awaiting agent-builder
|
||||
|
||||
**Issues Found:**
|
||||
{list any issues}
|
||||
|
||||
**Recommendations:**
|
||||
{if specs exist}
|
||||
- Use `bmad:bmb:agents:agent-builder` to create {spec agent names}
|
||||
- After building agents, re-run validation to verify compliance
|
||||
{endif}
|
||||
```
|
||||
|
||||
### 6. Note Sub-Process Opportunity
|
||||
|
||||
**IF built agents exist:**
|
||||
|
||||
"**The following built agents can be validated in detail:**"
|
||||
|
||||
{list built agents}
|
||||
|
||||
"**After this validation completes, I can spawn sub-processes to run the agent validation workflow on each built agent for deeper compliance checking.**"
|
||||
|
||||
### 7. Auto-Proceed
|
||||
|
||||
"**✓ Agent specs check complete.**"
|
||||
|
||||
Proceeding to next validation...
|
||||
|
||||
Load `{nextStepFile}`
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ All agent files checked
|
||||
✅ Status tracked (spec vs built)
|
||||
✅ hasSidecar decisions validated
|
||||
✅ Recommendations for specs documented
|
||||
✅ Sub-process opportunity noted
|
||||
152
_bmad/bmb/workflows/module/steps-v/step-05-workflow-specs.md
Normal file
152
_bmad/bmb/workflows/module/steps-v/step-05-workflow-specs.md
Normal file
@@ -0,0 +1,152 @@
|
||||
---
|
||||
name: 'step-05-workflow-specs'
|
||||
description: 'Validate workflow specifications and built workflows'
|
||||
|
||||
nextStepFile: './step-06-documentation.md'
|
||||
workflowSpecTemplate: '../../templates/workflow-spec-template.md'
|
||||
workflowValidationWorkflow: '{project-root}/_bmad/bmb/workflows/workflow/steps-v/step-01-validate.md'
|
||||
validationReportOutput: '{validation_report_output}'
|
||||
targetPath: '{validation_target_path}'
|
||||
---
|
||||
|
||||
# Step 5: Workflow Specs Validation
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Validate workflow specifications and/or built workflows, distinguishing between placeholder specs and fully implemented workflows.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Quality Assurance** — dual-mode checking
|
||||
- ✅ Specs are expected, built workflows are great
|
||||
- ✅ Track status of each workflow
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Load Workflow Files
|
||||
|
||||
Find all workflow files in `{targetPath}/workflows/`:
|
||||
- `.spec.md` files (placeholder specs)
|
||||
- `workflow.md` files (built workflows)
|
||||
|
||||
### 2. Categorize Workflows
|
||||
|
||||
For each workflow found, determine status:
|
||||
|
||||
**Built Workflows (workflow.md with steps/ folder):**
|
||||
- Full implementation with step files, data, templates
|
||||
- Can be validated in-depth via workflow validation workflow
|
||||
|
||||
**Spec Workflows (.spec.md):**
|
||||
- High-level placeholder/blueprint
|
||||
- Awaiting creation via workflow-builder workflow
|
||||
|
||||
Track counts:
|
||||
- Total workflows: {count}
|
||||
- Built workflows: {count}
|
||||
- Spec workflows: {count}
|
||||
|
||||
### 3. Validate Spec Workflows (.spec.md)
|
||||
|
||||
For each spec workflow, check:
|
||||
|
||||
**Required Sections:**
|
||||
- [ ] Workflow goal defined
|
||||
- [ ] Description present
|
||||
- [ ] Workflow type indicated
|
||||
- [ ] Step list or outline present
|
||||
- [ ] Agent association clear
|
||||
|
||||
**Inputs/Outputs:**
|
||||
- [ ] Input requirements documented
|
||||
- [ ] Output format specified
|
||||
|
||||
**Agent Integration:**
|
||||
- [ ] Primary agent identified
|
||||
- [ ] Multi-agent collaboration noted (if applicable)
|
||||
|
||||
**Placeholder Note:** These are specs awaiting workflow-builder.
|
||||
|
||||
### 4. Validate Built Workflows (workflow.md)
|
||||
|
||||
For each built workflow, check:
|
||||
|
||||
**Workflow Structure:**
|
||||
- [ ] workflow.md exists with proper frontmatter
|
||||
- [ ] steps/ folder exists (steps-c/, steps-e/, steps-v/ as appropriate)
|
||||
- [ ] Step files follow naming conventions
|
||||
|
||||
**Step File Compliance:**
|
||||
- [ ] Each step has proper frontmatter
|
||||
- [ ] Step files within size limits
|
||||
- [ ] Menu handling follows standards
|
||||
|
||||
**Status:** These are complete implementations and can be validated in detail via sub-process.
|
||||
|
||||
### 5. Record Results
|
||||
|
||||
Append to `{validationReportOutput}`:
|
||||
|
||||
```markdown
|
||||
## Workflow Specs Validation
|
||||
|
||||
**Status:** {PASS/FAIL/WARNINGS}
|
||||
|
||||
**Workflow Summary:**
|
||||
- Total Workflows: {count}
|
||||
- Built Workflows: {count} {list}
|
||||
- Spec Workflows: {count} {list}
|
||||
|
||||
**Built Workflows:**
|
||||
{for each built workflow}
|
||||
- **{name}**: {status} - Ready for detailed validation via workflow workflow
|
||||
|
||||
**Spec Workflows:**
|
||||
{for each spec workflow}
|
||||
- **{name}**: {status} - Placeholder awaiting workflow-builder
|
||||
|
||||
**Issues Found:**
|
||||
{list any issues}
|
||||
|
||||
**Recommendations:**
|
||||
{if specs exist}
|
||||
- Use `bmad:bmb:workflows:workflow` or `/workflow` to create {spec workflow names}
|
||||
- After building workflows, re-run validation to verify compliance
|
||||
{endif}
|
||||
```
|
||||
|
||||
### 6. Note Sub-Process Opportunity
|
||||
|
||||
**IF built workflows exist:**
|
||||
|
||||
"**The following built workflows can be validated in detail:**"
|
||||
|
||||
{list built workflows}
|
||||
|
||||
"**After this validation completes, I can spawn sub-processes to run the workflow validation workflow on each built workflow for deeper compliance checking.**"
|
||||
|
||||
### 7. Auto-Proceed
|
||||
|
||||
"**✓ Workflow specs check complete.**"
|
||||
|
||||
Proceeding to next validation...
|
||||
|
||||
Load `{nextStepFile}`
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ All workflow files checked
|
||||
✅ Status tracked (spec vs built)
|
||||
✅ Agent associations validated
|
||||
✅ Recommendations for specs documented
|
||||
✅ Sub-process opportunity noted
|
||||
143
_bmad/bmb/workflows/module/steps-v/step-06-documentation.md
Normal file
143
_bmad/bmb/workflows/module/steps-v/step-06-documentation.md
Normal file
@@ -0,0 +1,143 @@
|
||||
---
|
||||
name: 'step-06-documentation'
|
||||
description: 'Validate documentation (README.md, TODO.md, docs/)'
|
||||
|
||||
nextStepFile: './step-07-installation.md'
|
||||
validationReportOutput: '{validation_report_output}'
|
||||
targetPath: '{validation_target_path}'
|
||||
moduleBriefPath: '{module_brief_path}'
|
||||
---
|
||||
|
||||
# Step 6: Documentation Validation
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Validate module documentation completeness, including user-facing docs in docs/ folder.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Quality Assurance** — checking docs
|
||||
- ✅ Documentation matters for usability
|
||||
- ✅ User docs can be generated from placeholder plans
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Load Documentation Files
|
||||
|
||||
Check for:
|
||||
- `{targetPath}/README.md` (module overview)
|
||||
- `{targetPath}/TODO.md` (development roadmap)
|
||||
- `{targetPath}/docs/` (user documentation folder)
|
||||
|
||||
### 2. Validate README.md
|
||||
|
||||
**Required Sections:**
|
||||
- [ ] Module name and description
|
||||
- [ ] Installation instructions
|
||||
- [ ] Components section (agents, workflows)
|
||||
- [ ] Usage examples or quick start
|
||||
- [ ] Module structure
|
||||
- [ ] Link to docs/ folder
|
||||
|
||||
**Quality Checks:**
|
||||
- [ ] Clear description of what module does
|
||||
- [ ] Installation command shown
|
||||
- [ ] Agent/workflow lists complete
|
||||
- [ ] References user documentation
|
||||
|
||||
### 3. Validate TODO.md
|
||||
|
||||
**Required Content:**
|
||||
- [ ] Agent build checklist
|
||||
- [ ] Workflow build checklist
|
||||
- [ ] Testing section
|
||||
- [ ] Next steps
|
||||
|
||||
### 4. Validate docs/ Folder
|
||||
|
||||
**For Custom Modules:**
|
||||
- [ ] docs/ folder exists
|
||||
- [ ] Contains user-facing documentation
|
||||
- [ ] Documentation is clear and helpful
|
||||
|
||||
**Valid docs/ Contents (may include):**
|
||||
- `getting-started.md` — Quick start guide
|
||||
- `agents.md` — Agent documentation
|
||||
- `workflows.md` — Workflow documentation
|
||||
- `examples.md` — Usage examples
|
||||
- `configuration.md` — Setup/configuration guide
|
||||
- `troubleshooting.md` — Common issues and solutions
|
||||
|
||||
**Quality Check:**
|
||||
- [ ] Even with placeholder agent/workflow specs, user docs should provide useful information
|
||||
- [ ] Documentation references agents/workflows by name
|
||||
- [ ] Clear what functionality exists vs what is planned
|
||||
|
||||
### 5. Generate User Docs Recommendation
|
||||
|
||||
**IF docs/ missing or incomplete:**
|
||||
|
||||
"**User documentation can be generated from module brief and agent/workflow specs.**"
|
||||
|
||||
"**Even with placeholder plans, you can create helpful user documentation that describes:**
|
||||
- What each agent does and when to use it
|
||||
- What workflows are available and their purpose
|
||||
- How to get started with the module
|
||||
- Configuration options (from module.yaml)"
|
||||
|
||||
### 6. Record Results
|
||||
|
||||
Append to `{validationReportOutput}`:
|
||||
|
||||
```markdown
|
||||
## Documentation Validation
|
||||
|
||||
**Status:** {PASS/FAIL/WARNINGS}
|
||||
|
||||
**Root Documentation:**
|
||||
- **README.md:** {present/missing} - {status}
|
||||
- **TODO.md:** {present/missing} - {status}
|
||||
|
||||
**User Documentation (docs/):**
|
||||
- **docs/ folder:** {present/missing} - {status}
|
||||
- **Documentation files:** {count} files found
|
||||
|
||||
**Docs Contents:**
|
||||
{list files in docs/ folder}
|
||||
|
||||
**Issues Found:**
|
||||
{list any issues}
|
||||
|
||||
**Recommendations:**
|
||||
{if docs/ missing or incomplete}
|
||||
- Generate user documentation from module brief and specs
|
||||
- Create getting-started.md, agents.md, workflows.md
|
||||
- User docs are valuable even with placeholder plans
|
||||
{endif}
|
||||
```
|
||||
|
||||
### 7. Auto-Proceed
|
||||
|
||||
"**✓ Documentation check complete.**"
|
||||
|
||||
Proceeding to installation validation...
|
||||
|
||||
Load `{nextStepFile}`
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ All documentation checked
|
||||
✅ Required sections validated
|
||||
✅ docs/ folder presence verified
|
||||
✅ User documentation quality assessed
|
||||
✅ Recommendations documented
|
||||
113
_bmad/bmb/workflows/module/steps-v/step-07-installation.md
Normal file
113
_bmad/bmb/workflows/module/steps-v/step-07-installation.md
Normal file
@@ -0,0 +1,113 @@
|
||||
---
|
||||
name: 'step-07-installation'
|
||||
description: 'Installation readiness check'
|
||||
|
||||
nextStepFile: './step-08-report.md'
|
||||
moduleInstallerStandardsFile: '../../data/module-installer-standards.md'
|
||||
validationReportOutput: '{validation_report_output}'
|
||||
targetPath: '{validation_target_path}'
|
||||
---
|
||||
|
||||
# Step 7: Installation Readiness
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Check if the module is ready for installation.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Quality Assurance** — checking readiness
|
||||
- ✅ Installation should work
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Check Installer
|
||||
|
||||
**IF `_module-installer/` exists:**
|
||||
- [ ] `installer.js` present
|
||||
- [ ] Has valid `install()` function
|
||||
- [ ] Platform-specific handlers (if any IDEs supported)
|
||||
|
||||
**IF `_module-installer/` doesn't exist:**
|
||||
- Note: Module may not need installer
|
||||
- Check if this is intentional
|
||||
|
||||
### 2. Validate installer.js (if present)
|
||||
|
||||
Load `{moduleInstallerStandardsFile}` and check:
|
||||
|
||||
**Function Signature:**
|
||||
- [ ] `async function install(options)`
|
||||
- [ ] Accepts: projectRoot, config, installedIDEs, logger
|
||||
- [ ] Returns: Promise<boolean>
|
||||
|
||||
**Error Handling:**
|
||||
- [ ] Try/catch block present
|
||||
- [ ] Error logging present
|
||||
|
||||
**Platform Validation:**
|
||||
- [ ] Uses platformCodes for IDE validation
|
||||
- [ ] Graceful handling of unknown platforms
|
||||
|
||||
### 3. Check module.yaml Install Variables
|
||||
|
||||
**IF custom variables exist:**
|
||||
- [ ] All variables have prompts
|
||||
- [ ] Defaults are reasonable
|
||||
- [ ] Result templates are valid
|
||||
|
||||
**Path Variables:**
|
||||
- [ ] Paths use `{project-root}/` prefix
|
||||
- [ ] Output paths are user-configurable
|
||||
|
||||
### 4. Module Type Installation
|
||||
|
||||
**IF Extension:**
|
||||
- [ ] `code:` matches base (for proper merge)
|
||||
- [ ] Folder name is unique
|
||||
|
||||
**IF Global:**
|
||||
- [ ] `global: true` or documented
|
||||
- [ ] Global impact is minimal/intentional
|
||||
|
||||
### 5. Record Results
|
||||
|
||||
Append to `{validationReportOutput}`:
|
||||
|
||||
```markdown
|
||||
## Installation Readiness
|
||||
|
||||
**Status:** {PASS/FAIL/WARNINGS}
|
||||
|
||||
**Installer:** {present/missing} - {status}
|
||||
**Install Variables:** {count} variables
|
||||
**Ready to Install:** {yes/no}
|
||||
|
||||
**Issues Found:**
|
||||
{list any issues}
|
||||
```
|
||||
|
||||
### 6. Auto-Proceed
|
||||
|
||||
"**✓ Installation readiness check complete.**"
|
||||
|
||||
Proceeding to final report...
|
||||
|
||||
Load `{nextStepFile}`
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Installation readiness assessed
|
||||
✅ Installer validated (if present)
|
||||
✅ Module type compatibility checked
|
||||
✅ Results recorded
|
||||
197
_bmad/bmb/workflows/module/steps-v/step-08-report.md
Normal file
197
_bmad/bmb/workflows/module/steps-v/step-08-report.md
Normal file
@@ -0,0 +1,197 @@
|
||||
---
|
||||
name: 'step-08-report'
|
||||
description: 'Generate final validation report'
|
||||
|
||||
validationReportOutput: '{validation_report_output}'
|
||||
agentValidationWorkflow: '{project-root}/_bmad/bmb/workflows/agent/steps-v/step-01-validate.md'
|
||||
workflowValidationWorkflow: '{project-root}/_bmad/bmb/workflows/workflow/steps-v/step-01-validate.md'
|
||||
---
|
||||
|
||||
# Step 8: Validation Report
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Compile all validation results into a final report with actionable recommendations, including sub-process validation opportunities for built agents and workflows.
|
||||
|
||||
## MANDATORY EXECUTION RULES:
|
||||
|
||||
### Universal Rules:
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- ✅ Speak in `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are the **Quality Assurance** — reporting results
|
||||
- ✅ Clear, actionable feedback
|
||||
- ✅ Sub-process validation for built components
|
||||
|
||||
---
|
||||
|
||||
## MANDATORY SEQUENCE
|
||||
|
||||
### 1. Compile Overall Status
|
||||
|
||||
Review all validation sections and determine overall status:
|
||||
|
||||
**PASS:** All checks passed, ready to proceed
|
||||
**WARNINGS:** Minor issues found, can proceed with fixes
|
||||
**FAIL:** Critical issues found, must fix before proceeding
|
||||
|
||||
### 2. Generate Summary
|
||||
|
||||
Add to `{validationReportOutput}`:
|
||||
|
||||
```markdown
|
||||
---
|
||||
|
||||
## Overall Summary
|
||||
|
||||
**Status:** {PASS/WARNINGS/FAIL}
|
||||
|
||||
**Breakdown:**
|
||||
- File Structure: {status}
|
||||
- module.yaml: {status}
|
||||
- Agent Specs: {status} ({built_count} built, {spec_count} specs)
|
||||
- Workflow Specs: {status} ({built_count} built, {spec_count} specs)
|
||||
- Documentation: {status}
|
||||
- Installation Readiness: {status}
|
||||
|
||||
---
|
||||
|
||||
## Component Status
|
||||
|
||||
### Agents
|
||||
- **Built Agents:** {count} — {list}
|
||||
- **Spec Agents:** {count} — {list}
|
||||
|
||||
### Workflows
|
||||
- **Built Workflows:** {count} — {list}
|
||||
- **Spec Workflows:** {count} — {list}
|
||||
|
||||
---
|
||||
|
||||
## Recommendations
|
||||
|
||||
{priority-listed-recommendations}
|
||||
|
||||
### Priority 1 - Critical (must fix)
|
||||
|
||||
{critical_issues}
|
||||
|
||||
### Priority 2 - High (should fix)
|
||||
|
||||
{high_priority_issues}
|
||||
|
||||
### Priority 3 - Medium (nice to have)
|
||||
|
||||
{medium_priority_issues}
|
||||
|
||||
---
|
||||
|
||||
## Sub-Process Validation
|
||||
|
||||
{if built_agents_exist}
|
||||
### Built Agent Deep Validation
|
||||
|
||||
The following built agents can be validated in detail using the agent validation workflow:
|
||||
|
||||
{for each built_agent}
|
||||
- **{agent_name}** — Use `{agentValidationWorkflow}`
|
||||
|
||||
**Recommendation:** Run agent validation workflow on each built agent to verify:
|
||||
- Frontmatter completeness
|
||||
- Persona quality
|
||||
- Menu structure compliance
|
||||
- Sidecar validation
|
||||
|
||||
**After fixing any module-level issues, I can spawn sub-processes to validate each built agent in parallel.**
|
||||
{endif}
|
||||
|
||||
{if built_workflows_exist}
|
||||
### Built Workflow Deep Validation
|
||||
|
||||
The following built workflows can be validated in detail using the workflow validation workflow:
|
||||
|
||||
{for each built_workflow}
|
||||
- **{workflow_name}** — Use `{workflowValidationWorkflow}`
|
||||
|
||||
**Recommendation:** Run workflow validation workflow on each built workflow to verify:
|
||||
- Step file compliance
|
||||
- Tri-modal structure (steps-c/steps-e/steps-v/)
|
||||
- Frontmatter completeness
|
||||
- Size limits compliance
|
||||
|
||||
**After fixing any module-level issues, I can spawn sub-processes to validate each built workflow in parallel.**
|
||||
{endif}
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
{based_on_status}
|
||||
|
||||
{if specs_exist}
|
||||
### Build Spec Components
|
||||
|
||||
**Spec Agents:** {spec_count}
|
||||
- Use `bmad:bmb:agents:agent-builder` to create: {spec_agent_names}
|
||||
|
||||
**Spec Workflows:** {spec_count}
|
||||
- Use `bmad:bmb:workflows:workflow` to create: {spec_workflow_names}
|
||||
|
||||
**After building specs, re-run validation to verify compliance.**
|
||||
{endif}
|
||||
|
||||
---
|
||||
|
||||
**Validation Completed:** {timestamp}
|
||||
```
|
||||
|
||||
### 3. Present Report
|
||||
|
||||
"**✓ Validation complete!**"
|
||||
|
||||
**Overall Status:** {overall_status}
|
||||
|
||||
**Report saved to:** `{validationReportOutput}`
|
||||
|
||||
{if built_components_exist}
|
||||
"**Built components found:**"
|
||||
- Built Agents: {count}
|
||||
- Built Workflows: {count}
|
||||
|
||||
"**These can be validated in depth via sub-process.**"
|
||||
{endif}
|
||||
|
||||
### 4. Offer Next Actions
|
||||
|
||||
"**What would you like to do?**"
|
||||
|
||||
- **[R]ead report** — Show the full validation report
|
||||
- **[S]ub-process validation** — Run deep validation on built agents/workflows
|
||||
- **[F]ix issues** — Edit mode to fix identified problems
|
||||
- **[D]one** — Complete validation
|
||||
|
||||
### 5. Menu Handling
|
||||
|
||||
- IF R: Display the full report
|
||||
- IF S:
|
||||
- {if built_components_exist}
|
||||
- Offer to run agent validation on built agents
|
||||
- Offer to run workflow validation on built workflows
|
||||
- Can run in parallel for efficiency
|
||||
- {else}
|
||||
- "No built components found for sub-process validation."
|
||||
- {endif}
|
||||
- IF F: Offer to load Edit mode
|
||||
- IF D: Complete validation session
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
✅ Overall status determined
|
||||
✅ Complete report generated
|
||||
✅ Actionable recommendations provided
|
||||
✅ Sub-process validation opportunities identified
|
||||
✅ Next steps offered
|
||||
154
_bmad/bmb/workflows/module/templates/brief-template.md
Normal file
154
_bmad/bmb/workflows/module/templates/brief-template.md
Normal file
@@ -0,0 +1,154 @@
|
||||
# Module Brief: {module_code}
|
||||
|
||||
**Date:** {date}
|
||||
**Author:** {user_name}
|
||||
**Module Code:** {module_code}
|
||||
**Module Type:** {module_type}
|
||||
**Status:** Ready for Development
|
||||
|
||||
---
|
||||
|
||||
## Executive Summary
|
||||
|
||||
{module_vision}
|
||||
|
||||
**Module Category:** {module_category}
|
||||
**Target Users:** {target_users}
|
||||
**Complexity Level:** {complexity_level}
|
||||
|
||||
---
|
||||
|
||||
## Module Identity
|
||||
|
||||
### Module Code & Name
|
||||
|
||||
- **Code:** `{module_code}`
|
||||
- **Name:** `{module_name}`
|
||||
|
||||
### Core Concept
|
||||
|
||||
{module_identity}
|
||||
|
||||
### Personality Theme
|
||||
|
||||
{personality_theme}
|
||||
|
||||
---
|
||||
|
||||
## Module Type
|
||||
|
||||
**Type:** {module_type}
|
||||
|
||||
{module_type_explanation}
|
||||
|
||||
---
|
||||
|
||||
## Unique Value Proposition
|
||||
|
||||
**What makes this module special:**
|
||||
|
||||
{unique_value_proposition}
|
||||
|
||||
**Why users would choose this module:**
|
||||
|
||||
{value_proposition_details}
|
||||
|
||||
---
|
||||
|
||||
## User Scenarios
|
||||
|
||||
### Target Users
|
||||
|
||||
{target_users}
|
||||
|
||||
### Primary Use Case
|
||||
|
||||
{primary_use_case}
|
||||
|
||||
### User Journey
|
||||
|
||||
{user_journey}
|
||||
|
||||
---
|
||||
|
||||
## Agent Architecture
|
||||
|
||||
### Agent Count Strategy
|
||||
|
||||
{agent_count_strategy}
|
||||
|
||||
### Agent Roster
|
||||
|
||||
| Agent | Name | Role | Expertise |
|
||||
|-------|------|------|-----------|
|
||||
{agent_roster_table}
|
||||
|
||||
### Agent Interaction Model
|
||||
|
||||
{agent_interaction_model}
|
||||
|
||||
### Agent Communication Style
|
||||
|
||||
{agent_communication_style}
|
||||
|
||||
---
|
||||
|
||||
## Workflow Ecosystem
|
||||
|
||||
### Core Workflows (Essential)
|
||||
|
||||
{core_workflows}
|
||||
|
||||
### Feature Workflows (Specialized)
|
||||
|
||||
{feature_workflows}
|
||||
|
||||
### Utility Workflows (Support)
|
||||
|
||||
{utility_workflows}
|
||||
|
||||
---
|
||||
|
||||
## Tools & Integrations
|
||||
|
||||
### MCP Tools
|
||||
|
||||
{mcp_tools}
|
||||
|
||||
### External Services
|
||||
|
||||
{external_services}
|
||||
|
||||
### Integrations with Other Modules
|
||||
|
||||
{module_integrations}
|
||||
|
||||
---
|
||||
|
||||
## Creative Features
|
||||
|
||||
### Personality & Theming
|
||||
|
||||
{creative_personality}
|
||||
|
||||
### Easter Eggs & Delighters
|
||||
|
||||
{easter_eggs}
|
||||
|
||||
### Module Lore
|
||||
|
||||
{module_lore}
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. **Review this brief** — Ensure the vision is clear
|
||||
2. **Run create-module workflow** — Build the module structure
|
||||
3. **Create agents** — Use create-agent workflow for each agent
|
||||
4. **Create workflows** — Use create-workflow workflow for each workflow
|
||||
5. **Test module** — Install and verify functionality
|
||||
|
||||
---
|
||||
|
||||
_brief created on {date} by {user_name} using the BMAD Module workflow_
|
||||
@@ -0,0 +1,96 @@
|
||||
# Workflow Specification: {workflow_name}
|
||||
|
||||
**Module:** {module_code}
|
||||
**Status:** Placeholder — To be created via create-workflow workflow
|
||||
**Created:** {date}
|
||||
|
||||
---
|
||||
|
||||
## Workflow Overview
|
||||
|
||||
**Goal:** {workflow_goal}
|
||||
|
||||
**Description:** {workflow_description}
|
||||
|
||||
**Workflow Type:** {workflow_type}
|
||||
|
||||
---
|
||||
|
||||
## Workflow Structure
|
||||
|
||||
### Entry Point
|
||||
|
||||
```yaml
|
||||
---
|
||||
name: {workflow_name}
|
||||
description: {workflow_description}
|
||||
web_bundle: true
|
||||
installed_path: '{project-root}/_bmad/{module_code}/workflows/{workflow_folder_name}'
|
||||
---
|
||||
```
|
||||
|
||||
### Mode
|
||||
|
||||
- [ ] Create-only (steps-c/)
|
||||
- [ ] Tri-modal (steps-c/, steps-e/, steps-v/)
|
||||
|
||||
---
|
||||
|
||||
## Planned Steps
|
||||
|
||||
| Step | Name | Goal |
|
||||
|------|------|------|
|
||||
{workflow_steps_table}
|
||||
|
||||
---
|
||||
|
||||
## Workflow Inputs
|
||||
|
||||
### Required Inputs
|
||||
|
||||
{required_inputs}
|
||||
|
||||
### Optional Inputs
|
||||
|
||||
{optional_inputs}
|
||||
|
||||
---
|
||||
|
||||
## Workflow Outputs
|
||||
|
||||
### Output Format
|
||||
|
||||
- [ ] Document-producing
|
||||
- [ ] Non-document
|
||||
|
||||
### Output Files
|
||||
|
||||
{output_files}
|
||||
|
||||
---
|
||||
|
||||
## Agent Integration
|
||||
|
||||
### Primary Agent
|
||||
|
||||
{primary_agent}
|
||||
|
||||
### Other Agents
|
||||
|
||||
{other_agents}
|
||||
|
||||
---
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
**Use the create-workflow workflow to build this workflow.**
|
||||
|
||||
Inputs needed:
|
||||
- Workflow name and description
|
||||
- Step structure and sequence
|
||||
- Input/output specifications
|
||||
- Agent associations
|
||||
|
||||
---
|
||||
|
||||
_Spec created on {date} via BMAD Module workflow_
|
||||
100
_bmad/bmb/workflows/module/workflow.md
Normal file
100
_bmad/bmb/workflows/module/workflow.md
Normal file
@@ -0,0 +1,100 @@
|
||||
---
|
||||
name: module
|
||||
description: Quad-modal workflow for creating BMAD modules (Brief + Create + Edit + Validate)
|
||||
web_bundle: true
|
||||
installed_path: '{project-root}/_bmad/bmb/workflows/module'
|
||||
---
|
||||
|
||||
# Module Workflow
|
||||
|
||||
The module workflow guides users through creating complete, installable BMAD modules through a quad-modal process: **Brief → Create → Edit → Validate**.
|
||||
|
||||
## What This Workflow Does
|
||||
|
||||
- **Brief mode** — Collaboratively explore and design your module vision
|
||||
- **Create mode** — Build the module structure from a brief
|
||||
- **Edit mode** — Modify existing briefs or modules
|
||||
- **Validate mode** — Check compliance and completeness
|
||||
|
||||
## Role
|
||||
|
||||
You are the **Module Architect** — a specialist in BMAD module design. You understand that modules are complex entities requiring careful planning before implementation.
|
||||
|
||||
---
|
||||
|
||||
## INITIALIZATION SEQUENCE
|
||||
|
||||
### 1. Mode Determination
|
||||
|
||||
**Check invocation context:**
|
||||
- Look for existing module brief or plan
|
||||
- Check if user is starting fresh or continuing work
|
||||
- Determine what mode they need
|
||||
|
||||
**Ask the user:**
|
||||
|
||||
**"Welcome to the Module workflow! What would you like to do?"**
|
||||
|
||||
- **[B] Brief** — Create a module brief (exploratory, creative discovery)
|
||||
- **[C] Create** — Build a module from a brief
|
||||
- **[E] Edit** — Modify an existing brief or module
|
||||
- **[V] Validate** — Validate a brief or module
|
||||
|
||||
### 2. Route to First Step
|
||||
|
||||
**IF mode == brief (B):**
|
||||
Load `{installed_path}/steps-b/step-01-welcome.md`
|
||||
|
||||
**IF mode == create (C):**
|
||||
Ask: "Where is the module brief?" → Load `{installed_path}/steps-c/step-01-load-brief.md`
|
||||
|
||||
**IF mode == edit (E):**
|
||||
Ask: "What would you like to edit?" → Load `{installed_path}/steps-e/step-01-assess.md`
|
||||
|
||||
**IF mode == validate (V):**
|
||||
Ask: "What would you like to validate?" → Load `{installed_path}/steps-v/step-01-validate.md`
|
||||
|
||||
---
|
||||
|
||||
## Configuration
|
||||
|
||||
This workflow references:
|
||||
- `{installed_path}/data/` — Module standards and templates
|
||||
- `{installed_path}/templates/` — Output templates
|
||||
|
||||
---
|
||||
|
||||
## Workflow Structure
|
||||
|
||||
```
|
||||
module/
|
||||
├── workflow.md # This file - mode routing
|
||||
├── data/ # Shared standards
|
||||
│ ├── module-standards.md
|
||||
│ ├── module-yaml-conventions.md
|
||||
│ ├── agent-architecture.md
|
||||
│ └── module-installer-standards.md
|
||||
├── templates/ # Output templates
|
||||
│ ├── brief-template.md
|
||||
│ ├── agent-spec-template.md
|
||||
│ └── workflow-spec-template.md
|
||||
├── steps-b/ # Brief mode (13 steps)
|
||||
├── steps-c/ # Create mode (8 steps)
|
||||
├── steps-e/ # Edit mode
|
||||
└── steps-v/ # Validate mode
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Output
|
||||
|
||||
**Brief mode produces:**
|
||||
- `module-brief-{code}.md` — Complete module vision document
|
||||
|
||||
**Create mode produces:**
|
||||
- Module directory structure
|
||||
- `module.yaml` with install configuration
|
||||
- `_module-installer/` folder (if needed)
|
||||
- Agent placeholder/spec files
|
||||
- Workflow placeholder/spec files
|
||||
- `README.md` and `TODO.md`
|
||||
152
_bmad/bmb/workflows/workflow/data/architecture.md
Normal file
152
_bmad/bmb/workflows/workflow/data/architecture.md
Normal file
@@ -0,0 +1,152 @@
|
||||
# Workflow Architecture
|
||||
|
||||
**Purpose:** Core structural patterns for BMAD workflows.
|
||||
|
||||
---
|
||||
|
||||
## Structure
|
||||
|
||||
```
|
||||
workflow-folder/
|
||||
├── workflow.md # Entry point, configuration
|
||||
├── steps-c/ # Create flow steps
|
||||
│ ├── step-01-init.md
|
||||
│ ├── step-02-[name].md
|
||||
│ └── step-N-[name].md
|
||||
├── steps-e/ # Edit flow (if needed)
|
||||
├── steps-v/ # Validate flow (if needed)
|
||||
├── data/ # Shared reference files
|
||||
└── templates/ # Output templates (if needed)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## workflow.md File Standards
|
||||
|
||||
**CRITICAL:** The workflow.md file MUST be lean. It is the entry point and should NOT contain:
|
||||
|
||||
- ❌ **Listing of all steps** - This defeats progressive disclosure
|
||||
- ❌ **Detailed descriptions of what each step does** - Steps are self-documenting
|
||||
- ❌ **Validation checklists** - These belong in steps-v/, not workflow.md
|
||||
- ❌ **Implementation details** - These belong in step files
|
||||
|
||||
**The workflow.md SHOULD contain:**
|
||||
- ✅ Frontmatter: name, description, web_bundle
|
||||
- ✅ Goal: What the workflow accomplishes
|
||||
- ✅ Role: Who the AI embodies when running this workflow
|
||||
- ✅ Meta-context: Background about the architecture (if demonstrating a pattern)
|
||||
- ✅ Core architecture principles (step-file design, JIT loading, etc.)
|
||||
- ✅ Initialization/routing: How to start and which step to load first
|
||||
|
||||
**Progressive Disclosure Rule:**
|
||||
Users should ONLY know about the current step they're executing. The workflow.md routes to the first step, and each step routes to the next. No step lists in workflow.md!
|
||||
|
||||
---
|
||||
|
||||
## Core Principles
|
||||
|
||||
### 1. Micro-File Design
|
||||
- Each step is a focused file (~80-200 lines)
|
||||
- One concept per step
|
||||
- Self-contained instructions
|
||||
|
||||
### 2. Just-In-Time Loading
|
||||
- Only current step file is in memory
|
||||
- Never load future steps until user selects 'C'
|
||||
- Progressive disclosure - LLM stays focused
|
||||
|
||||
### 3. Sequential Enforcement
|
||||
- Steps execute in order
|
||||
- No skipping, no optimization
|
||||
- Each step completes before next loads
|
||||
|
||||
### 4. State Tracking
|
||||
For continuable workflows:
|
||||
```yaml
|
||||
stepsCompleted: ['step-01-init', 'step-02-gather', 'step-03-design']
|
||||
lastStep: 'step-03-design'
|
||||
lastContinued: '2025-01-02'
|
||||
```
|
||||
|
||||
Each step appends its name to `stepsCompleted` before loading next.
|
||||
|
||||
---
|
||||
|
||||
## Execution Flow
|
||||
|
||||
### Fresh Start
|
||||
```
|
||||
workflow.md → step-01-init.md → step-02-[name].md → ... → step-N-final.md
|
||||
```
|
||||
|
||||
### Continuation (Resumed)
|
||||
```
|
||||
workflow.md → step-01-init.md (detects existing) → step-01b-continue.md → [appropriate next step]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Frontmatter Variables
|
||||
|
||||
### Standard (All Workflows)
|
||||
```yaml
|
||||
workflow_path: '{project-root}/_bmad/[module]/workflows/[name]'
|
||||
thisStepFile: './step-[N]-[name].md'
|
||||
nextStepFile: './step-[N+1]-[name].md'
|
||||
outputFile: '{output_folder}/[output].md'
|
||||
```
|
||||
|
||||
### Module-Specific
|
||||
```yaml
|
||||
# BMB example:
|
||||
bmb_creations_output_folder: '{project-root}/_bmad/bmb-creations'
|
||||
```
|
||||
|
||||
### Critical Rules
|
||||
- ONLY variables used in step body go in frontmatter
|
||||
- All file references use `{variable}` format
|
||||
- Paths within workflow folder are relative
|
||||
|
||||
---
|
||||
|
||||
## Menu Pattern
|
||||
|
||||
```markdown
|
||||
### N. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select:** [A] [action] [P] [action] [C] Continue"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Execute {task}, then redisplay menu
|
||||
- IF P: Execute {task}, then redisplay menu
|
||||
- IF C: Save to {outputFile}, update frontmatter, then load {nextStepFile}
|
||||
- IF Any other: help user, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
```
|
||||
|
||||
**A/P not needed in:** Step 1 (init), validation sequences, simple data gathering
|
||||
|
||||
---
|
||||
|
||||
## Output Pattern
|
||||
|
||||
Every step writes to a document BEFORE loading next step:
|
||||
|
||||
1. **Plan-then-build:** Steps append to plan.md → build step consumes plan
|
||||
2. **Direct-to-final:** Steps append directly to final document
|
||||
|
||||
See: `output-format-standards.md`
|
||||
|
||||
---
|
||||
|
||||
## Critical Rules
|
||||
|
||||
- 🛑 NEVER load multiple step files simultaneously
|
||||
- 📖 ALWAYS read entire step file before execution
|
||||
- 🚫 NEVER skip steps or optimize the sequence
|
||||
- 💾 ALWAYS update frontmatter when step completes
|
||||
- ⏸️ ALWAYS halt at menus and wait for input
|
||||
- 📋 NEVER create mental todos from future steps
|
||||
19
_bmad/bmb/workflows/workflow/data/common-workflow-tools.csv
Normal file
19
_bmad/bmb/workflows/workflow/data/common-workflow-tools.csv
Normal file
@@ -0,0 +1,19 @@
|
||||
propose,type,tool_name,description,url,requires_install
|
||||
always,workflow,party-mode,"Enables collaborative idea generation by managing turn-taking, summarizing contributions, and synthesizing ideas from multiple AI personas in structured conversation sessions about workflow steps or work in progress.",{project-root}/_bmad/core/workflows/party-mode/workflow.md,no
|
||||
always,workflow,advanced-elicitation,"Employs diverse elicitation strategies such as Socratic questioning, role-playing, and counterfactual analysis to critically evaluate and enhance LLM outputs, forcing assessment from multiple perspectives and techniques.",{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml,no
|
||||
always,task,brainstorming,"Facilitates idea generation by prompting users with targeted questions, encouraging divergent thinking, and synthesizing concepts into actionable insights through collaborative creative exploration.",{project-root}/_bmad/core/tasks/brainstorming.xml,no
|
||||
always,llm-tool-feature,web-browsing,"Provides LLM with capabilities to perform real-time web searches, extract relevant data, and incorporate current information into responses when up-to-date information is required beyond training knowledge.",,no
|
||||
always,llm-tool-feature,file-io,"Enables LLM to manage file operations such as creating, reading, updating, and deleting files, facilitating seamless data handling, storage, and document management within user environments.",,no
|
||||
always,llm-tool-feature,sub-agents,"Allows LLM to create and manage specialized sub-agents that handle specific tasks or modules within larger workflows, improving efficiency through parallel processing and modular task delegation.",,no
|
||||
always,llm-tool-feature,sub-processes,"Enables LLM to initiate and manage subprocesses that operate independently, allowing for parallel processing of complex tasks and improved resource utilization during long-running operations.",,no
|
||||
always,tool-memory,sidecar-file,"Creates a persistent history file that gets written during workflow execution and loaded on future runs, enabling continuity through session-to-session state management. Used for agent or workflow initialization with previous session context, learning from past interactions, and maintaining progress across multiple executions.",,no
|
||||
example,tool-memory,vector-database,"Stores and retrieves semantic information through embeddings for intelligent memory access, enabling workflows to find relevant past experiences, patterns, or context based on meaning rather than exact matches. Useful for complex learning systems, pattern recognition, and semantic search across workflow history.",https://github.com/modelcontextprotocol/servers/tree/main/src/rag-agent,yes
|
||||
example,mcp,context-7,"A curated knowledge base of API documentation and third-party tool references, enabling LLM to access accurate and current information for integration and development tasks when specific technical documentation is needed.",https://github.com/modelcontextprotocol/servers/tree/main/src/context-7,yes
|
||||
example,mcp,playwright,"Provides capabilities for LLM to perform web browser automation including navigation, form submission, data extraction, and testing actions on web pages, facilitating automated web interactions and quality assurance.",https://github.com/modelcontextprotocol/servers/tree/main/src/playwright,yes
|
||||
example,workflow,security-auditor,"Analyzes workflows and code for security vulnerabilities, compliance issues, and best practices violations, providing detailed security assessments and remediation recommendations for production-ready systems.",,no
|
||||
example,task,code-review,"Performs systematic code analysis with peer review perspectives, identifying bugs, performance issues, style violations, and architectural problems through adversarial review techniques.",,no
|
||||
example,mcp,git-integration,"Enables direct Git repository operations including commits, branches, merges, and history analysis, allowing workflows to interact with version control systems for code management and collaboration.",https://github.com/modelcontextprotocol/servers/tree/main/src/git,yes
|
||||
example,mcp,database-connector,"Provides direct database connectivity for querying, updating, and managing data across multiple database types, enabling workflows to interact with structured data sources and perform data-driven operations.",https://github.com/modelcontextprotocol/servers/tree/main/src/postgres,yes
|
||||
example,task,api-testing,"Automated API endpoint testing with request/response validation, authentication handling, and comprehensive reporting for REST, GraphQL, and other API types through systematic test generation.",,no
|
||||
example,workflow,deployment-manager,"Orchestrates application deployment across multiple environments with rollback capabilities, health checks, and automated release pipelines for continuous integration and delivery workflows.",,no
|
||||
example,task,data-validator,"Validates data quality, schema compliance, and business rules through comprehensive data profiling with detailed reporting and anomaly detection for data-intensive workflows.",,no
|
||||
|
81
_bmad/bmb/workflows/workflow/data/csv-data-file-standards.md
Normal file
81
_bmad/bmb/workflows/workflow/data/csv-data-file-standards.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# CSV Data File Standards
|
||||
|
||||
**Purpose:** When workflows need structured data that LLMs cannot generate.
|
||||
|
||||
---
|
||||
|
||||
## When to Use CSV
|
||||
|
||||
Use CSV for data that is:
|
||||
- Domain-specific and not in training data
|
||||
- Too large for prompt context
|
||||
- Needs structured lookup/reference
|
||||
- Must be consistent across sessions
|
||||
|
||||
**Don't use for:**
|
||||
- Web-searchable information
|
||||
- Common programming syntax
|
||||
- General knowledge
|
||||
- Things LLMs can generate
|
||||
|
||||
---
|
||||
|
||||
## CSV Structure
|
||||
|
||||
```csv
|
||||
category,name,pattern,description
|
||||
"collaboration","Think Aloud Protocol","user speaks thoughts → facilitator captures","Make thinking visible during work"
|
||||
"creative","SCAMPER","substitute→combine→adapt→modify→put→eliminate→reverse","Systematic creative thinking"
|
||||
```
|
||||
|
||||
**Rules:**
|
||||
- Header row required, descriptive column names
|
||||
- Consistent data types per column
|
||||
- UTF-8 encoding
|
||||
- All columns must be used in workflow
|
||||
|
||||
---
|
||||
|
||||
## Common Use Cases
|
||||
|
||||
### 1. Method Registry
|
||||
Advanced Elicitation uses CSV to select techniques dynamically:
|
||||
```csv
|
||||
category,name,pattern
|
||||
collaboration,Think Aloud,user speaks thoughts → facilitator captures
|
||||
advanced,Six Thinking Hats,view problem from 6 perspectives
|
||||
```
|
||||
|
||||
### 2. Knowledge Base Index
|
||||
Map keywords to document locations for surgical lookup:
|
||||
```csv
|
||||
keywords,document_path,section
|
||||
"nutrition,macros",data/nutrition-reference.md,## Daily Targets
|
||||
```
|
||||
|
||||
### 3. Configuration Lookup
|
||||
Map scenarios to parameters:
|
||||
```csv
|
||||
scenario,required_steps,output_sections
|
||||
"2D Platformer",step-01,step-03,step-07,movement,physics,collision
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Best Practices
|
||||
|
||||
- Keep files small (<1MB if possible)
|
||||
- No unused columns
|
||||
- Document each CSV's purpose
|
||||
- Validate data quality
|
||||
- Use efficient encoding (codes vs full descriptions)
|
||||
|
||||
---
|
||||
|
||||
## Validation Checklist
|
||||
|
||||
For each CSV file:
|
||||
- [ ] Purpose is essential (can't be generated by LLM)
|
||||
- [ ] All columns are used somewhere
|
||||
- [ ] Properly formatted (consistent, UTF-8)
|
||||
- [ ] Documented with examples
|
||||
225
_bmad/bmb/workflows/workflow/data/frontmatter-standards.md
Normal file
225
_bmad/bmb/workflows/workflow/data/frontmatter-standards.md
Normal file
@@ -0,0 +1,225 @@
|
||||
# Frontmatter Standards
|
||||
|
||||
**Purpose:** Variables, paths, and frontmatter rules for workflow steps.
|
||||
|
||||
---
|
||||
|
||||
## Golden Rules
|
||||
|
||||
1. **Only variables USED in the step** may be in frontmatter
|
||||
2. **All file references MUST use `{variable}` format** - no hardcoded paths
|
||||
3. **Paths within workflow folder MUST be relative** - NO `workflow_path` variable allowed
|
||||
|
||||
---
|
||||
|
||||
## Standard Variables (Always Available)
|
||||
|
||||
| Variable | Example Value |
|
||||
| ---------------------------- | ------------------------------------ |
|
||||
| `{project-root}` | `/Users/user/dev/BMAD-METHOD` |
|
||||
| `{project_name}` | `my-project` |
|
||||
| `{output_folder}` | `/Users/user/dev/BMAD-METHOD/output` |
|
||||
| `{user_name}` | `Brian` |
|
||||
| `{communication_language}` | `english` |
|
||||
| `{document_output_language}` | `english` |
|
||||
|
||||
---
|
||||
|
||||
## Module-Specific Variables
|
||||
|
||||
Workflows in a MODULE can access additional variables from its `module.yaml`.
|
||||
|
||||
**BMB Module example:**
|
||||
```yaml
|
||||
bmb_creations_output_folder: '{project-root}/_bmad/bmb-creations'
|
||||
```
|
||||
|
||||
**Standalone workflows:** Only have access to standard variables.
|
||||
|
||||
---
|
||||
|
||||
## Frontmatter Structure
|
||||
|
||||
### Required Fields
|
||||
```yaml
|
||||
---
|
||||
name: 'step-[N]-[name]'
|
||||
description: '[what this step does]'
|
||||
---
|
||||
```
|
||||
|
||||
### File References - ONLY variables used in this step
|
||||
```yaml
|
||||
---
|
||||
# Step to step (SAME folder) - use ./filename.md
|
||||
nextStepFile: './step-02-vision.md'
|
||||
|
||||
# Step to template (PARENT folder) - use ../filename.md
|
||||
productBriefTemplate: '../product-brief.template.md'
|
||||
|
||||
# Step to data (SUBFOLDER) - use ./data/filename.md
|
||||
someData: './data/config.csv'
|
||||
|
||||
# Output files - use variable
|
||||
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
||||
|
||||
# External references - use {project-root}
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Critical Rule: Unused Variables Forbidden
|
||||
|
||||
### ❌ VIOLATION - Variable defined but never used
|
||||
```yaml
|
||||
---
|
||||
outputFile: '{output_folder}/output.md'
|
||||
thisStepFile: './step-01-init.md' # ❌ NEVER USED in body
|
||||
workflowFile: './workflow.md' # ❌ NEVER USED in body
|
||||
---
|
||||
# Step body never mentions {thisStepFile} or {workflowFile}
|
||||
```
|
||||
|
||||
### ✅ CORRECT - Only variables that are used
|
||||
```yaml
|
||||
---
|
||||
outputFile: '{output_folder}/output.md'
|
||||
nextStepFile: './step-02-foo.md'
|
||||
---
|
||||
# Step body uses {outputFile} and {nextStepFile}
|
||||
```
|
||||
|
||||
**Detection Rule:** For EVERY variable in frontmatter, search the step body for `{variableName}`. If not found, it's a violation.
|
||||
|
||||
---
|
||||
|
||||
## Path Rules - NO EXCEPTIONS
|
||||
|
||||
### 1. Step to Step (SAME folder) = ./filename.md
|
||||
```yaml
|
||||
# ❌ WRONG
|
||||
nextStepFile: './step-02.md'
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/foo/steps/step-02.md'
|
||||
|
||||
# ✅ CORRECT
|
||||
nextStepFile: './step-02-vision.md'
|
||||
```
|
||||
|
||||
### 2. Step to Template (PARENT folder) = ../filename.md
|
||||
```yaml
|
||||
# ❌ WRONG
|
||||
someTemplate: '{workflow_path}/templates/template.md'
|
||||
|
||||
# ✅ CORRECT
|
||||
someTemplate: '../template.md'
|
||||
```
|
||||
|
||||
### 3. Step to Subfolder = ./subfolder/file.md
|
||||
```yaml
|
||||
# ❌ WRONG
|
||||
dataFile: '{workflow_path}/data/config.csv'
|
||||
|
||||
# ✅ CORRECT
|
||||
dataFile: './data/config.csv'
|
||||
```
|
||||
|
||||
### 4. External References = {project-root}/...
|
||||
```yaml
|
||||
# ✅ CORRECT
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
```
|
||||
|
||||
### 5. Output Files = Use folder variable
|
||||
```yaml
|
||||
# ✅ CORRECT
|
||||
outputFile: '{planning_artifacts}/workflow-output-{project_name}.md'
|
||||
outputFile: '{output_folder}/output.md'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ❌ FORBIDDEN Patterns
|
||||
|
||||
These patterns are **NEVER ALLOWED** in workflow step frontmatter:
|
||||
|
||||
| Pattern | Why It's Wrong |
|
||||
| ------------------------------------- | ----------------------------------------------------- |
|
||||
| `workflow_path: '{project-root}/...'` | Use relative paths instead |
|
||||
| `thisStepFile: './step-XX.md'` | Almost never used - remove unless actually referenced |
|
||||
| `workflowFile: './workflow.md'` | Almost never used - remove unless actually referenced |
|
||||
| `./...` | Use `./step-XX.md` (same folder) |
|
||||
| `{workflow_path}/templates/...` | Use `../template.md` (parent folder) |
|
||||
| `{workflow_path}/data/...` | Use `./data/file.md` (subfolder) |
|
||||
|
||||
---
|
||||
|
||||
## Variable Naming
|
||||
|
||||
Use `snake_case` with descriptive prefixes:
|
||||
|
||||
| Pattern | Usage | Example |
|
||||
| -------------- | ------------------- | ---------------------------- |
|
||||
| `{*_File}` | File references | `outputFile`, `nextStepFile` |
|
||||
| `{*_Task}` | Task references | `advancedElicitationTask` |
|
||||
| `{*_Workflow}` | Workflow references | `partyModeWorkflow` |
|
||||
| `{*_Template}` | Templates | `productBriefTemplate` |
|
||||
| `{*_Data}` | Data files | `dietaryData` |
|
||||
|
||||
---
|
||||
|
||||
## Defining New Variables
|
||||
|
||||
Steps can define NEW variables that future steps will use.
|
||||
|
||||
**Step 01 defines:**
|
||||
```yaml
|
||||
---
|
||||
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{workflow_name}'
|
||||
---
|
||||
# Uses {targetWorkflowPath} in body
|
||||
```
|
||||
|
||||
**Step 02 uses:**
|
||||
```yaml
|
||||
---
|
||||
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{workflow_name}'
|
||||
workflowPlanFile: '{targetWorkflowPath}/plan.md'
|
||||
---
|
||||
# Uses {targetWorkflowPath} and {workflowPlanFile} in body
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Continuable Workflow Frontmatter
|
||||
|
||||
```yaml
|
||||
---
|
||||
stepsCompleted: ['step-01-init', 'step-02-gather', 'step-03-design']
|
||||
lastStep: 'step-03-design'
|
||||
lastContinued: '2025-01-02'
|
||||
date: '2025-01-01'
|
||||
---
|
||||
```
|
||||
|
||||
**Step tracking:** Each step appends its NAME to `stepsCompleted`.
|
||||
|
||||
---
|
||||
|
||||
## Validation Checklist
|
||||
|
||||
For EVERY step frontmatter, verify:
|
||||
|
||||
- [ ] `name` present, kebab-case format
|
||||
- [ ] `description` present
|
||||
- [ ] Extract ALL variable names from frontmatter (between `---` markers)
|
||||
- [ ] For EACH variable, search body: is `{variableName}` present?
|
||||
- [ ] If variable NOT in body → ❌ VIOLATION, remove from frontmatter
|
||||
- [ ] All step-to-step paths use `./filename.md` format (same folder)
|
||||
- [ ] All parent-folder paths use `../filename.md` format
|
||||
- [ ] All subfolder paths use `./subfolder/filename.md` format
|
||||
- [ ] NO `{workflow_path}` variable exists
|
||||
- [ ] External paths use `{project-root}` variable
|
||||
- [ ] Module variables only used if workflow belongs to that module
|
||||
269
_bmad/bmb/workflows/workflow/data/input-discovery-standards.md
Normal file
269
_bmad/bmb/workflows/workflow/data/input-discovery-standards.md
Normal file
@@ -0,0 +1,269 @@
|
||||
# Input Document Discovery Standards
|
||||
|
||||
**Purpose:** How workflows discover, validate, and select input documents from prior workflows or external sources.
|
||||
|
||||
---
|
||||
|
||||
## Discovery Patterns
|
||||
|
||||
### Pattern 1: Prior Workflow Output
|
||||
**Use when:** Workflow is part of a sequence (e.g., PRD → Architecture → Epics)
|
||||
|
||||
**Example:** BMM module pipeline - each of these are a workflow with many steps:
|
||||
```
|
||||
brainstorming → research → brief → PRD → UX → architecture → epics → sprint-planning
|
||||
```
|
||||
|
||||
Each workflow checks for output from prior workflow(s).
|
||||
|
||||
### Pattern 2: Module Folder Search
|
||||
**Use when:** Documents stored in known project location
|
||||
|
||||
**Example:** Manager review workflow searches `{project_folder}/employee-notes/`
|
||||
|
||||
### Pattern 3: User-Specified Paths
|
||||
**Use when:** User provides document locations
|
||||
|
||||
**Example:** Tax workflow asks for financial statement paths
|
||||
|
||||
### Pattern 4: Pattern-Based Discovery
|
||||
**Use when:** Search by file naming pattern
|
||||
|
||||
**Example:** Find all `*-brief.md` files in `{planning_artifacts}/`
|
||||
|
||||
---
|
||||
|
||||
## Discovery Step Pattern
|
||||
|
||||
**When:** Step 1 (init) or Step 2 (discovery)
|
||||
|
||||
**Frontmatter:**
|
||||
```yaml
|
||||
---
|
||||
# Input discovery variables
|
||||
inputDocuments: [] # Populated with discovered docs
|
||||
requiredInputCount: 1 # Minimum required to proceed
|
||||
optionalInputCount: 0 # Additional docs user may provide
|
||||
moduleInputFolder: '{planning_artifacts}' # Where to search
|
||||
inputFilePatterns: # File patterns to match
|
||||
- '*-prd.md'
|
||||
- '*-ux.md'
|
||||
---
|
||||
```
|
||||
|
||||
**Discovery Logic:**
|
||||
```markdown
|
||||
## 1. Check for Known Prior Workflow Outputs
|
||||
|
||||
Search in order:
|
||||
1. {module_output_folder}/[known-prior-workflow-output].md
|
||||
2. {project_folder}/[standard-locations]/
|
||||
3. {planning_artifacts}/
|
||||
4. User-provided paths
|
||||
|
||||
## 2. Pattern-Based Search
|
||||
|
||||
If no known prior workflow, search by patterns:
|
||||
- Look for files matching {inputFilePatterns}
|
||||
- Search in {moduleInputFolder}
|
||||
- Search in {project_folder}/docs/
|
||||
|
||||
## 3. Present Findings to User
|
||||
|
||||
"Found these documents that may be relevant:
|
||||
- [1] prd-my-project.md (created 3 days ago)
|
||||
- [2] ux-research.md (created 1 week ago)
|
||||
- [3] competitor-analysis.md
|
||||
|
||||
Which would you like to use? You can select multiple, or provide additional paths."
|
||||
|
||||
## 4. Confirm and Load
|
||||
|
||||
User confirms selection → Load selected documents
|
||||
Add to {inputDocuments} array in output frontmatter
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Required vs Optional Inputs
|
||||
|
||||
### Required Inputs
|
||||
Workflow cannot proceed without these.
|
||||
|
||||
**Example:** Architecture workflow requires PRD
|
||||
|
||||
```markdown
|
||||
## INPUT REQUIREMENT:
|
||||
|
||||
This workflow requires a Product Requirements Document to proceed.
|
||||
|
||||
Searching for PRD in:
|
||||
- {bmm_creations_output_folder}/prd-*.md
|
||||
- {planning_artifacts}/*-prd.md
|
||||
- {project_folder}/docs/*-prd.md
|
||||
|
||||
[If found:]
|
||||
"Found PRD: prd-my-project.md. Use this?"
|
||||
[If not found:]
|
||||
"No PRD found. This workflow requires a PRD to continue.
|
||||
Please provide the path to your PRD, or run the PRD workflow first."
|
||||
```
|
||||
|
||||
### Optional Inputs
|
||||
Workflow can proceed without these, but user may include.
|
||||
|
||||
**Example:** UX workflow can use research docs if available
|
||||
|
||||
```markdown
|
||||
## OPTIONAL INPUTS:
|
||||
|
||||
This workflow can incorporate research documents if available.
|
||||
|
||||
Searching for research in:
|
||||
- {bmm_creations_output_folder}/research-*.md
|
||||
- {project_folder}/research/
|
||||
|
||||
[If found:]
|
||||
"Found these research documents:
|
||||
- [1] user-interviews.md
|
||||
- [2] competitive-analysis.md
|
||||
Include any? (None required to proceed)"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Module Workflow Chaining
|
||||
|
||||
**For modules with sequential workflows:**
|
||||
|
||||
**Frontmatter in workflow.md:**
|
||||
```yaml
|
||||
---
|
||||
## INPUT FROM PRIOR WORKFLOFS
|
||||
|
||||
### Required Inputs:
|
||||
- {module_output_folder}/prd-{project_name}.md
|
||||
|
||||
### Optional Inputs:
|
||||
- {module_output_folder}/ux-research-{project_name}.md
|
||||
- {project_folder}/docs/competitor-analysis.md
|
||||
---
|
||||
```
|
||||
|
||||
**Step 1 discovery:**
|
||||
```markdown
|
||||
## 1. Discover Prior Workflow Outputs
|
||||
|
||||
Check for required inputs:
|
||||
1. Look for {module_output_folder}/prd-{project_name}.md
|
||||
2. If missing → Error: "Please run PRD workflow first"
|
||||
3. If found → Confirm with user
|
||||
|
||||
Check for optional inputs:
|
||||
1. Search {module_output_folder}/ for research-*.md
|
||||
2. Search {project_folder}/docs/ for *-analysis.md
|
||||
3. Present findings to user
|
||||
4. Add selections to {inputDocuments}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Input Validation
|
||||
|
||||
After discovery, validate inputs:
|
||||
|
||||
```markdown
|
||||
## INPUT VALIDATION:
|
||||
|
||||
For each discovered document:
|
||||
1. Load and read frontmatter
|
||||
2. Check workflowType field (should match expected)
|
||||
3. Check completeness (stepsCompleted should be complete)
|
||||
4. Check date (warn if document is very old)
|
||||
|
||||
[If validation fails:]
|
||||
"Document prd-my-project.md appears incomplete.
|
||||
Last step: step-06 (of 11)
|
||||
Recommend completing PRD workflow before proceeding.
|
||||
Proceed anyway? [Y]es [N]o"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Multiple Input Selection
|
||||
|
||||
**When user can select multiple documents:**
|
||||
|
||||
```markdown
|
||||
## Document Selection
|
||||
|
||||
"Found these relevant documents:
|
||||
[1] prd-my-project.md (3 days ago) ✓ Recommended
|
||||
[2] prd-v1.md (2 months ago) ⚠ Older version
|
||||
[3] ux-research.md (1 week ago)
|
||||
|
||||
Enter numbers to include (comma-separated), or 'none' to skip:
|
||||
> 1, 3
|
||||
|
||||
Selected: prd-my-project.md, ux-research.md"
|
||||
```
|
||||
|
||||
**Track in frontmatter:**
|
||||
```yaml
|
||||
---
|
||||
inputDocuments:
|
||||
- path: '{output_folder}/prd-my-project.md'
|
||||
type: 'prd'
|
||||
source: 'prior-workflow'
|
||||
selected: true
|
||||
- path: '{output_folder}/ux-research.md'
|
||||
type: 'research'
|
||||
source: 'prior-workflow'
|
||||
selected: true
|
||||
---
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Search Path Variables
|
||||
|
||||
Common module variables for input discovery:
|
||||
|
||||
| Variable | Purpose |
|
||||
| ------------------------ | -------------------------- |
|
||||
| `{module_output_folder}` | Prior workflow outputs |
|
||||
| `{planning_artifacts}` | General planning docs |
|
||||
| `{project_folder}/docs` | Project documentation |
|
||||
| `{product_knowledge}` | Product-specific knowledge |
|
||||
| `{user_documents}` | User-provided location |
|
||||
|
||||
---
|
||||
|
||||
## Discovery Step Template
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: 'step-01-init'
|
||||
description: 'Initialize and discover input documents'
|
||||
|
||||
# Input Discovery
|
||||
inputDocuments: []
|
||||
requiredInputCount: 1
|
||||
moduleInputFolder: '{module_output_folder}'
|
||||
inputFilePatterns:
|
||||
- '*-prd.md'
|
||||
---
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Validation Checklist
|
||||
|
||||
For input discovery:
|
||||
- [ ] Required inputs defined in step frontmatter
|
||||
- [ ] Search paths defined (module variables or patterns)
|
||||
- [ ] User confirmation before using documents
|
||||
- [ ] Validation of document completeness
|
||||
- [ ] Clear error messages when required inputs missing
|
||||
- [ ] Support for multiple document selection
|
||||
- [ ] Optional inputs clearly marked as optional
|
||||
@@ -0,0 +1,50 @@
|
||||
# Intent vs Prescriptive Spectrum
|
||||
|
||||
**Principle:** Workflows lean toward **intent** (goals) not **prescription** (exact wording). The more intent-based, the more adaptive and creative the LLM can be.
|
||||
|
||||
---
|
||||
|
||||
## When to Use Each
|
||||
|
||||
### Intent-Based (Default)
|
||||
**Use for:** Most workflows - creative, exploratory, collaborative
|
||||
**Step instruction:** "Help the user understand X using multi-turn conversation. Probe to get good answers. Ask 1-2 questions at a time, not a laundry list."
|
||||
**LLM figures out:** Exact wording, question order, how to respond
|
||||
|
||||
### Prescriptive (Exception)
|
||||
**Use for:** Compliance, safety, legal, medical, regulated industries
|
||||
**Step instruction:** "Say exactly: 'Do you currently experience fever, cough, or fatigue?' Wait for response. Then ask exactly: 'When did symptoms begin?'"
|
||||
**LLM follows:** Exact script, specific order, no deviation
|
||||
|
||||
---
|
||||
|
||||
## Examples
|
||||
|
||||
### Intent-Based (Good for most)
|
||||
```
|
||||
"Guide the user through discovering their ideal nutrition plan.
|
||||
Use multi-turn conversation. Ask 1-2 questions at a time.
|
||||
Think about their responses before asking follow-ups.
|
||||
Probe to understand preferences, restrictions, goals."
|
||||
```
|
||||
|
||||
### Prescriptive (Only when required)
|
||||
```
|
||||
"Medical intake - ask exactly:
|
||||
1. 'Do you have any of these symptoms: fever, cough, fatigue?'
|
||||
2. 'When did symptoms begin?'
|
||||
3. 'Have you traveled recently in the last 14 days?'
|
||||
Follow sequence precisely. Do not deviate."
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Step Writing Tips
|
||||
|
||||
- **Default to intent** - give goals, not scripts
|
||||
- **Use "think"** - "Think about their response before..."
|
||||
- **Multi-turn** - "Use conversation, not interrogation"
|
||||
- **Progressive** - "Ask 1-2 questions at a time"
|
||||
- **Probe** - "Ask follow-ups to understand deeper"
|
||||
|
||||
Only use prescriptive when compliance/regulation requires it.
|
||||
167
_bmad/bmb/workflows/workflow/data/menu-handling-standards.md
Normal file
167
_bmad/bmb/workflows/workflow/data/menu-handling-standards.md
Normal file
@@ -0,0 +1,167 @@
|
||||
# Menu Handling Standards
|
||||
|
||||
**CRITICAL:** Every menu MUST have a handler section. No exceptions.
|
||||
|
||||
---
|
||||
|
||||
## Reserved Letters
|
||||
|
||||
| Letter | Purpose | After Execution |
|
||||
| ------ | -------------------- | ------------------------------ |
|
||||
| **A** | Advanced Elicitation | Redisplay menu |
|
||||
| **P** | Party Mode | Redisplay menu |
|
||||
| **C** | Continue/Accept | Save → update → load next step |
|
||||
| **X** | Exit/Cancel | End workflow |
|
||||
|
||||
**Custom letters** allowed (L/R/F/etc.) but don't conflict with reserved.
|
||||
|
||||
---
|
||||
|
||||
## Required Structure
|
||||
|
||||
### Section 1: Display
|
||||
```markdown
|
||||
### N. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select:** [A] [action] [P] [action] [C] Continue"
|
||||
```
|
||||
|
||||
### Section 2: Handler (MANDATORY)
|
||||
```markdown
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save content to {outputFile}, update frontmatter, then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other: help user, then [Redisplay Menu Options](#n-present-menu-options)
|
||||
```
|
||||
|
||||
### Section 3: Execution Rules
|
||||
```markdown
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## When To Include A/P
|
||||
|
||||
### DON'T Include A/P:
|
||||
- Step 1 (init) - no content to refine yet
|
||||
- Step 2 if only loading documents
|
||||
- Validation sequences - auto-flow instead
|
||||
- Simple data gathering
|
||||
|
||||
### DO Include A/P:
|
||||
- Collaborative content creation
|
||||
- User might want alternatives
|
||||
- Quality gate before proceeding
|
||||
- Creative exploration valuable
|
||||
|
||||
---
|
||||
|
||||
## Menu Patterns
|
||||
|
||||
### Pattern 1: Standard A/P/C
|
||||
```markdown
|
||||
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save content to {outputFile}, update frontmatter, then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other: help user, then [Redisplay Menu Options](#n-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
```
|
||||
|
||||
### Pattern 2: C Only (No A/P)
|
||||
```markdown
|
||||
Display: "**Select:** [C] Continue"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF C: Save content to {outputFile}, update frontmatter, then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other: help user, then [Redisplay Menu Options](#n-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
```
|
||||
|
||||
**Use for:** Step 1, document discovery, simple progression
|
||||
|
||||
### Pattern 3: Auto-Proceed (No Menu)
|
||||
```markdown
|
||||
Display: "**Proceeding to [next step]...**"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- After [completion condition], immediately load, read entire file, then execute {nextStepFile}
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- This is an [auto-proceed reason] step with no user choices
|
||||
- Proceed directly to next step after setup
|
||||
```
|
||||
|
||||
**Use for:** Init steps, validation sequences
|
||||
|
||||
### Pattern 4: Branching
|
||||
```markdown
|
||||
Display: "**Select:** [L] Load Existing [N] Create New [C] Continue"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF L: Load existing document, then load, read entire file, then execute {stepForExisting}
|
||||
- IF N: Create new document, then load, read entire file, then execute {stepForNew}
|
||||
- IF C: Save content to {outputFile}, update frontmatter, check {condition}, then load appropriate step
|
||||
- IF Any other: help user, then [Redisplay Menu Options](#n-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- Branching options load different steps based on user choice
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Critical Violations
|
||||
|
||||
### ❌ DON'T:
|
||||
```markdown
|
||||
# Missing Handler Section
|
||||
Display: "**Select:** [C] Continue"
|
||||
[NO HANDLER - CRITICAL ERROR!]
|
||||
|
||||
# A/P in Step 1 (doesn't make sense)
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
|
||||
|
||||
# Forgetting redisplay
|
||||
- IF A: Execute {advancedElicitationTask}
|
||||
# Should end with: ", and when finished redisplay the menu"
|
||||
|
||||
# Missing halt instruction
|
||||
#### EXECUTION RULES:
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
# MISSING: "ALWAYS halt and wait for user input after presenting menu"
|
||||
```
|
||||
|
||||
### ✅ DO:
|
||||
- Handler section immediately follows Display
|
||||
- "Halt and wait" in EXECUTION RULES
|
||||
- Non-C options specify "redisplay menu"
|
||||
- A/P only when appropriate for step type
|
||||
|
||||
---
|
||||
|
||||
## Validation Checklist
|
||||
|
||||
For every menu:
|
||||
- [ ] Display section present
|
||||
- [ ] Handler section immediately follows
|
||||
- [ ] EXECUTION RULES section present
|
||||
- [ ] "Halt and wait" instruction included
|
||||
- [ ] A/P options appropriate for step type
|
||||
- [ ] Non-C options redisplay menu
|
||||
- [ ] C option: save → update → load next
|
||||
- [ ] All file references use variables
|
||||
188
_bmad/bmb/workflows/workflow/data/output-format-standards.md
Normal file
188
_bmad/bmb/workflows/workflow/data/output-format-standards.md
Normal file
@@ -0,0 +1,188 @@
|
||||
# Output Format Standards
|
||||
|
||||
**Purpose:** How workflows produce documents and handle step output.
|
||||
|
||||
---
|
||||
|
||||
## Golden Rule
|
||||
|
||||
**Every step MUST output to a document BEFORE loading the next step.**
|
||||
|
||||
Two patterns:
|
||||
1. **Direct-to-Final:** Steps append to final document
|
||||
2. **Plan-then-Build:** Steps append to plan → build step consumes plan
|
||||
|
||||
---
|
||||
|
||||
## Menu C Option Sequence
|
||||
|
||||
When user selects **C (Continue)**:
|
||||
1. **Append/Write** to document (plan or final)
|
||||
2. **Update frontmatter** (append this step to `stepsCompleted`)
|
||||
3. **THEN** load next step
|
||||
|
||||
```markdown
|
||||
- IF C: Save content to {outputFile}, update frontmatter, then load, read entire file, then execute {nextStepFile}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Output Patterns
|
||||
|
||||
### Pattern 1: Plan-then-Build
|
||||
|
||||
**Use when:** Design/plan before building/creating
|
||||
|
||||
```
|
||||
Step 1 (init) → Creates plan.md from template
|
||||
Step 2 (gather) → Appends requirements to plan.md
|
||||
Step 3 (design) → Appends design decisions to plan.md
|
||||
Step 4 (review) → Appends review/approval to plan.md
|
||||
Step 5 (build) → READS plan.md, CREATES final artifacts
|
||||
```
|
||||
|
||||
**Plan frontmatter:**
|
||||
```yaml
|
||||
workflowName: [name]
|
||||
creationDate: [date]
|
||||
stepsCompleted: ['step-01-init', 'step-02-gather']
|
||||
status: PLANNING_COMPLETE
|
||||
```
|
||||
|
||||
**Example:** Workflow creation - steps append to plan, build step generates files
|
||||
|
||||
### Pattern 2: Direct-to-Final
|
||||
|
||||
**Use when:** Each step contributes to final deliverable
|
||||
|
||||
```
|
||||
Step 1 (init) → Creates final-doc.md from minimal template
|
||||
Step 2 (section) → Appends Section 1
|
||||
Step 3 (section) → Appends Section 2
|
||||
Step 4 (section) → Appends Section 3
|
||||
Step 5 (polish) → Optimizes entire document
|
||||
```
|
||||
|
||||
**Example:** Meal prep nutrition plan - each step adds a section
|
||||
|
||||
---
|
||||
|
||||
## Four Template Types
|
||||
|
||||
### 1. Free-Form (RECOMMENDED)
|
||||
|
||||
**Characteristics:** Minimal template, progressive append, final polish
|
||||
|
||||
**Template:**
|
||||
```yaml
|
||||
---
|
||||
stepsCompleted: []
|
||||
lastStep: ''
|
||||
date: ''
|
||||
user_name: ''
|
||||
---
|
||||
|
||||
# {{document_title}}
|
||||
|
||||
[Content appended progressively by workflow steps]
|
||||
```
|
||||
|
||||
**Use when:** Most workflows - flexible, collaborative
|
||||
|
||||
### 2. Structured
|
||||
|
||||
**Characteristics:** Single template with placeholders, clear sections
|
||||
|
||||
**Template:**
|
||||
```markdown
|
||||
# {{title}}
|
||||
|
||||
## {{section_1}}
|
||||
[Content to be filled]
|
||||
|
||||
## {{section_2}}
|
||||
[Content to be filled]
|
||||
```
|
||||
|
||||
**Use when:** Reports, proposals, documentation
|
||||
|
||||
### 3. Semi-Structured
|
||||
|
||||
**Characteristics:** Core required sections + optional additions
|
||||
|
||||
**Use when:** Forms, checklists, meeting minutes
|
||||
|
||||
### 4. Strict
|
||||
|
||||
**Characteristics:** Multiple templates, exact field definitions
|
||||
|
||||
**Use when:** Rarely - compliance, legal, regulated
|
||||
|
||||
---
|
||||
|
||||
## Template Syntax
|
||||
|
||||
```markdown
|
||||
{{variable}} # Handlebars style (preferred)
|
||||
[variable] # Bracket style (also supported)
|
||||
```
|
||||
|
||||
**Keep templates lean** - structure only, not content.
|
||||
|
||||
---
|
||||
|
||||
## Step-to-Output Mapping
|
||||
|
||||
Steps should be in ORDER of document appearance:
|
||||
|
||||
```
|
||||
Step 1: Init (creates doc)
|
||||
Step 2: → ## Section 1
|
||||
Step 3: → ## Section 2
|
||||
Step 4: → ## Section 3
|
||||
Step 5: → ## Section 4
|
||||
Step 6: Polish (optimizes entire doc)
|
||||
```
|
||||
|
||||
**Critical:** Use ## Level 2 headers for main sections - allows document splitting if needed.
|
||||
|
||||
---
|
||||
|
||||
## Final Polish Step
|
||||
|
||||
For free-form workflows, include a polish step that:
|
||||
1. Loads entire document
|
||||
2. Reviews for flow and coherence
|
||||
3. Reduces duplication
|
||||
4. Ensures proper ## Level 2 headers
|
||||
5. Improves transitions
|
||||
6. Keeps general order but optimizes readability
|
||||
|
||||
---
|
||||
|
||||
## Output File Patterns
|
||||
|
||||
```yaml
|
||||
# Single output
|
||||
outputFile: '{output_folder}/document-{project_name}.md'
|
||||
|
||||
# Time-stamped
|
||||
outputFile: '{output_folder}/document-{project_name}-{timestamp}.md'
|
||||
|
||||
# User-specific
|
||||
outputFile: '{output_folder}/document-{user_name}-{project_name}.md'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Validation Checklist
|
||||
|
||||
For workflow output design:
|
||||
- [ ] Output format type selected
|
||||
- [ ] Template created if needed
|
||||
- [ ] Steps ordered to match document structure
|
||||
- [ ] Each step outputs to document (except init/final)
|
||||
- [ ] Level 2 headers for main sections
|
||||
- [ ] Final polish step for free-form workflows
|
||||
- [ ] Frontmatter tracking for continuable workflows
|
||||
- [ ] Templates use consistent placeholder syntax
|
||||
235
_bmad/bmb/workflows/workflow/data/step-file-rules.md
Normal file
235
_bmad/bmb/workflows/workflow/data/step-file-rules.md
Normal file
@@ -0,0 +1,235 @@
|
||||
# Step File Rules
|
||||
|
||||
**Purpose:** Quick reference for step file structure and compliance. See linked data files for detailed standards.
|
||||
|
||||
---
|
||||
|
||||
## File Size Limits
|
||||
|
||||
| Metric | Value |
|
||||
| ----------- | -------- |
|
||||
| Recommended | < 200 lines |
|
||||
| Absolute Maximum | 250 lines |
|
||||
|
||||
**If exceeded:** Split into multiple steps or extract content to `/data/` files.
|
||||
|
||||
---
|
||||
|
||||
## Required Step Structure
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: 'step-[N]-[name]'
|
||||
description: '[what this step does]'
|
||||
|
||||
# File References (ONLY variables used in this step!)
|
||||
[file references in {variable} format]
|
||||
---
|
||||
|
||||
# Step [N]: [Name]
|
||||
|
||||
## STEP GOAL:
|
||||
[Single sentence: what this step accomplishes]
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
### Universal Rules:
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
|
||||
### Role Reinforcement:
|
||||
- ✅ You are a [specific role]
|
||||
- ✅ We engage in collaborative dialogue, not command-response
|
||||
- ✅ You bring [expertise], user brings [theirs]
|
||||
- ✅ Together we produce something better
|
||||
|
||||
### Step-Specific Rules:
|
||||
- 🎯 Focus only on [specific task]
|
||||
- 🚫 FORBIDDEN to [prohibited action]
|
||||
- 💬 Approach: [how to engage]
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
- 🎯 [Protocol 1]
|
||||
- 💾 [Protocol 2 - save/update]
|
||||
- 📖 [Protocol 3 - tracking]
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
- Available context: [what's available]
|
||||
- Focus: [what to focus on]
|
||||
- Limits: [boundaries]
|
||||
- Dependencies: [what this depends on]
|
||||
|
||||
## Sequence of Instructions:
|
||||
### 1. [Action]
|
||||
[Instructions]
|
||||
|
||||
### N. Present MENU OPTIONS
|
||||
[Menu section - see menu-handling-standards.md]
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
|
||||
### ✅ SUCCESS:
|
||||
[Success criteria]
|
||||
### ❌ SYSTEM FAILURE:
|
||||
[Failure criteria]
|
||||
**Master Rule:** Skipping steps is FORBIDDEN.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Critical Rules (Quick Reference)
|
||||
|
||||
### Frontmatter
|
||||
- ✅ Only variables USED in the step body
|
||||
- ✅ All file references use `{variable}` format
|
||||
- ✅ Relative paths within workflow folder
|
||||
- See: `frontmatter-standards.md`
|
||||
|
||||
### Menus
|
||||
- ✅ Handler section MUST follow display
|
||||
- ✅ "Halt and wait" in execution rules
|
||||
- ✅ A/P options only when appropriate
|
||||
- ✅ Non-C options redisplay menu
|
||||
- See: `menu-handling-standards.md`
|
||||
|
||||
### Progressive Disclosure
|
||||
- ✅ Only load next step when user selects 'C'
|
||||
- ✅ Read entire step file before execution
|
||||
- ✅ Don't create mental todos from future steps
|
||||
|
||||
### Continuable Workflows
|
||||
- ✅ Append step number to `stepsCompleted`
|
||||
- ✅ Don't hardcode full array
|
||||
- See: `workflow-type-criteria.md`
|
||||
|
||||
---
|
||||
|
||||
## Data Files Reference
|
||||
|
||||
| File | Purpose |
|
||||
| ----------------------- | --------------------------------------------- |
|
||||
| `frontmatter-standards.md` | Variables, paths, frontmatter rules |
|
||||
| `menu-handling-standards.md` | Menu patterns, handler requirements |
|
||||
| `output-format-standards.md` | Document output, template types |
|
||||
| `workflow-type-criteria.md` | Continuable, module, tri-modal decisions |
|
||||
| `step-type-patterns.md` | Templates for init/middle/final/branch steps |
|
||||
| `trimodal-workflow-structure.md` | Create/Edit/Validate folder structure |
|
||||
|
||||
---
|
||||
|
||||
## Step Type Reference
|
||||
|
||||
| Step Type | Template/Reference |
|
||||
| ------------------- | ------------------------------------------- |
|
||||
| Init (non-continuable) | Auto-proceed, no continuation logic |
|
||||
| Init (continuable) | `step-01-init-continuable-template.md` |
|
||||
| Continuation (01b) | `step-1b-template.md` |
|
||||
| Middle (standard) | A/P/C menu, collaborative content |
|
||||
| Middle (simple) | C only menu, no A/P |
|
||||
| Branch/Conditional | Custom menu options, routing to different steps |
|
||||
| Validation sequence | Auto-proceed through checks |
|
||||
| Final | No next step, completion message |
|
||||
|
||||
See: `step-type-patterns.md`
|
||||
|
||||
---
|
||||
|
||||
## Frontmatter Variables
|
||||
|
||||
### Standard (Always Available)
|
||||
- `{project-root}`
|
||||
- `{project_name}`
|
||||
- `{output_folder}`
|
||||
- `{user_name}`
|
||||
- `{communication_language}`
|
||||
- `{document_output_language}`
|
||||
|
||||
### Module-Specific (e.g., BMB)
|
||||
- `{bmb_creations_output_folder}`
|
||||
|
||||
### User-Defined
|
||||
- New variables can be defined in steps for future steps
|
||||
|
||||
See: `frontmatter-standards.md`
|
||||
|
||||
---
|
||||
|
||||
## Validation Checklist
|
||||
|
||||
For every step file:
|
||||
|
||||
- [ ] File < 200 lines (250 max)
|
||||
- [ ] `name` and `description` in frontmatter
|
||||
- [ ] All frontmatter variables are used
|
||||
- [ ] File references use `{variable}` format
|
||||
- [ ] Relative paths within workflow folder
|
||||
- [ ] Handler section follows menu display
|
||||
- [ ] "Halt and wait" in execution rules
|
||||
- [ ] A/P options appropriate for step type
|
||||
- [ ] C option saves and loads next step
|
||||
- [ ] Non-C options redisplay menu
|
||||
- [ ] StepsCompleted appended (if continuable)
|
||||
- [ ] Success/failure metrics present
|
||||
|
||||
---
|
||||
|
||||
## Quick Menu Reference
|
||||
|
||||
```markdown
|
||||
### N. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select:** [A] [action A] [P] [action P] [C] Continue"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save content to {outputFile}, update frontmatter, then load, read entire file, then execute {nextStepFile}
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#n-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Common Violations
|
||||
|
||||
| ❌ Violation | ✅ Fix |
|
||||
| ------------------------------------- | ---------------------------------------------- |
|
||||
| Unused variable in frontmatter | Remove unused variables |
|
||||
| Hardcoded file path | Use `{variable}` format |
|
||||
| A/P menu in step 1 | Remove A/P (inappropriate for init) |
|
||||
| Missing handler section | Add handler after menu display |
|
||||
| No "halt and wait" instruction | Add to EXECUTION RULES |
|
||||
| Hardcoded `stepsCompleted: [1,2,3]` | Append: "update stepsCompleted to add this step" |
|
||||
| File > 250 lines | Split into multiple steps or extract to /data/ |
|
||||
| Absolute path for same-folder ref | Use relative path or `{workflow_path}` |
|
||||
|
||||
---
|
||||
|
||||
## When to Extract to Data Files
|
||||
|
||||
Extract step content to `/data/` when:
|
||||
- Step file exceeds 200 lines
|
||||
- Content is reference material
|
||||
- Content is reused across steps
|
||||
- Content is domain-specific (examples, patterns)
|
||||
|
||||
**Data file types:**
|
||||
- `.md` - Reference documentation
|
||||
- `.csv` - Structured data for lookup
|
||||
- `examples/` - Reference implementations
|
||||
|
||||
---
|
||||
|
||||
## Tri-Modal Workflow Note
|
||||
|
||||
For Create/Edit/Validate workflows:
|
||||
- Each mode has its own `steps-c/`, `steps-e/`, `steps-v/` folder
|
||||
- NO shared step files (`s-*.md`) between modes
|
||||
- All modes share `/data/` folder
|
||||
- This prevents confusion and routing errors
|
||||
|
||||
See: `trimodal-workflow-structure.md`
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user