agent build intel complete
This commit is contained in:
parent
2b89ee1302
commit
8cffd09fb7
|
|
@ -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
|
||||||
|
```
|
||||||
|
|
@ -1,144 +0,0 @@
|
||||||
# BMAD Agent Validation Checklist
|
|
||||||
|
|
||||||
Use this checklist to validate agents meet BMAD quality standards, whether creating new agents or editing existing ones.
|
|
||||||
|
|
||||||
## YAML Structure Validation (Source Files)
|
|
||||||
|
|
||||||
- [ ] YAML parses without errors
|
|
||||||
- [ ] `agent.metadata` includes: `id`, `name`, `title`, `icon`, `module`
|
|
||||||
- [ ] `agent.metadata.module` can me a module code (e.g., `bmm`, `bmgd`, `cis`) or listed as stand-alone
|
|
||||||
- [ ] `agent.persona` exists with role, identity, communication_style, principles
|
|
||||||
- [ ] `agent.menu` exists with at least one item
|
|
||||||
- [ ] Filename is kebab-case and is named like `<role>.agent.yaml`
|
|
||||||
|
|
||||||
## Agent Structure Validation
|
|
||||||
|
|
||||||
- [ ] Agent file format is valid (.agent.yaml for source)
|
|
||||||
- [ ] Agent type matches structure: Simple (single YAML), Expert (sidecar files), or Module (ecosystem integration)
|
|
||||||
- [ ] File naming follows convention: `{agent-name}.agent.yaml`
|
|
||||||
- [ ] If Expert: folder structure with .agent.yaml + sidecar files
|
|
||||||
- [ ] If Module: includes header comment explaining WHY Module Agent (design intent)
|
|
||||||
|
|
||||||
## Persona Validation (CRITICAL - #1 Quality Issue)
|
|
||||||
|
|
||||||
**Field Separation Check:**
|
|
||||||
|
|
||||||
- [ ] **role** contains ONLY knowledge/skills/capabilities (what agent does)
|
|
||||||
- [ ] **identity** contains ONLY background/experience/context (who agent is)
|
|
||||||
- [ ] **communication_style** contains ONLY verbal patterns - NO behaviors, NO role statements, NO principles
|
|
||||||
- [ ] **principles** contains operating philosophy and behavioral guidelines
|
|
||||||
|
|
||||||
**Communication Style Purity Check:**
|
|
||||||
|
|
||||||
- [ ] Communication style does NOT contain red flag words: "ensures", "makes sure", "always", "never"
|
|
||||||
- [ ] Communication style does NOT contain identity words: "experienced", "expert who", "senior", "seasoned"
|
|
||||||
- [ ] Communication style does NOT contain philosophy words: "believes in", "focused on", "committed to"
|
|
||||||
- [ ] Communication style does NOT contain behavioral descriptions: "who does X", "that does Y"
|
|
||||||
- [ ] Communication style is 1-2 sentences describing HOW they talk and emote (word choice, quirks, verbal patterns)
|
|
||||||
|
|
||||||
**Quality Benchmarking:**
|
|
||||||
|
|
||||||
- [ ] Compare communication style against {communication_presets} - similarly pure?
|
|
||||||
- [ ] Compare against reference agents (commit-poet, journal-keeper, BMM agents) - similar quality?
|
|
||||||
- [ ] Read communication style aloud - does it sound like describing someone's voice/speech pattern?
|
|
||||||
|
|
||||||
## Menu Validation
|
|
||||||
|
|
||||||
- [ ] All menu items have `trigger` field
|
|
||||||
- [ ] Each item has `description` field
|
|
||||||
- [ ] Each menu item has at least one handler attribute: `exec` or `action`
|
|
||||||
- [ ] Workflow paths are correct (if workflow attribute present)
|
|
||||||
- [ ] Workflow paths start with `{project-root}/_bmad/<module-name>/...` variable for portability
|
|
||||||
- [ ] **Sidecar file paths are correct (if tmpl or data attributes present - Expert agents)**
|
|
||||||
- [ ] No duplicate triggers within same agent
|
|
||||||
- [ ] Menu items are in logical order
|
|
||||||
|
|
||||||
## Prompts Validation (if present)
|
|
||||||
|
|
||||||
- [ ] Each prompt has `id` field
|
|
||||||
- [ ] Each prompt has `content` field
|
|
||||||
- [ ] Prompt IDs are unique within agent
|
|
||||||
- [ ] If using `action="#prompt-id"` in menu, corresponding prompt exists
|
|
||||||
|
|
||||||
## Critical Actions Validation (if present)
|
|
||||||
|
|
||||||
- [ ] Critical actions array contains non-empty strings
|
|
||||||
- [ ] Critical actions describe steps that MUST happen during activation
|
|
||||||
- [ ] No placeholder text in critical actions
|
|
||||||
- [ ] Does not have any of the following that are injected at build time:
|
|
||||||
- Load persona from this current agent file
|
|
||||||
- Load config to get {user_name}, {communication_language}
|
|
||||||
- Remember: user's name is {user_name}
|
|
||||||
- ALWAYS communicate in {communication_language}
|
|
||||||
- Show greeting + numbered menu
|
|
||||||
- STOP and WAIT for user input
|
|
||||||
|
|
||||||
## Type-Specific Validation
|
|
||||||
|
|
||||||
### Simple Agent (Self-Contained)
|
|
||||||
|
|
||||||
- [ ] Single .agent.yaml file with complete agent definition
|
|
||||||
- [ ] No sidecar files (all content in YAML)
|
|
||||||
- [ ] Not capability-limited - can be as powerful as Expert or Module
|
|
||||||
- [ ] Compare against reference: commit-poet.agent.yaml
|
|
||||||
|
|
||||||
### Expert Agent (With Sidecar Files)
|
|
||||||
|
|
||||||
- [ ] Folder structure: .agent.yaml + sidecar files
|
|
||||||
- [ ] Sidecar files properly referenced in menu items or prompts (tmpl="path", data="path")
|
|
||||||
- [ ] Folder name matches agent purpose
|
|
||||||
- [ ] **All sidecar references in YAML resolve to actual files**
|
|
||||||
- [ ] **All sidecar files are actually used (no orphaned/unused files, unless intentional for future use)**
|
|
||||||
- [ ] Sidecar files are valid format (YAML parses, CSV has headers, markdown is well-formed)
|
|
||||||
- [ ] Sidecar file paths use relative paths from agent folder
|
|
||||||
- [ ] Templates contain valid template variables if applicable
|
|
||||||
- [ ] Knowledge base files contain current/accurate information
|
|
||||||
- [ ] Compare against reference: journal-keeper (Expert example)
|
|
||||||
|
|
||||||
### Module Agent (Ecosystem Integration)
|
|
||||||
|
|
||||||
- [ ] Designed FOR specific module (BMM, BMGD, CIS, etc.)
|
|
||||||
- [ ] Integrates with module workflows (referenced in menu items)
|
|
||||||
- [ ] Coordinates with other module agents (if applicable)
|
|
||||||
- [ ] Included in module's default bundle (if applicable)
|
|
||||||
- [ ] Header comment explains WHY Module Agent (design intent, not just location)
|
|
||||||
- [ ] Can be Simple OR Expert structurally (Module is about intent, not structure)
|
|
||||||
- [ ] Compare against references: security-engineer, dev, analyst (Module examples)
|
|
||||||
|
|
||||||
## Quality Checks
|
|
||||||
|
|
||||||
- [ ] No broken references or missing files
|
|
||||||
- [ ] Syntax is valid yaml
|
|
||||||
- [ ] Indentation is consistent
|
|
||||||
- [ ] Agent purpose is clear from reading persona alone
|
|
||||||
- [ ] Agent name/title are descriptive and clear
|
|
||||||
- [ ] Icon emoji is appropriate and represents agent purpose
|
|
||||||
|
|
||||||
## Reference Standards
|
|
||||||
|
|
||||||
Your agent should meet these quality standards:
|
|
||||||
|
|
||||||
✓ Persona fields properly separated (communication_style is pure verbal patterns)
|
|
||||||
✓ Agent type matches structure (Simple/Expert/Module)
|
|
||||||
✓ All workflow/sidecar paths resolve correctly
|
|
||||||
✓ Menu structure is clear and logical
|
|
||||||
✓ No legacy terminology (full/hybrid/standalone)
|
|
||||||
✓ Comparable quality to reference agents (commit-poet, journal-keeper, BMM agents)
|
|
||||||
✓ Communication style has ZERO red flag words
|
|
||||||
✓ Compiles cleanly to XML without errors
|
|
||||||
|
|
||||||
## Common Issues and Fixes
|
|
||||||
|
|
||||||
### Issue: Communication Style Has Behaviors
|
|
||||||
|
|
||||||
**Problem:** "Experienced analyst who ensures all stakeholders are heard"
|
|
||||||
**Fix:** Extract to proper fields:
|
|
||||||
|
|
||||||
- identity: "Senior analyst with 8+ years..."
|
|
||||||
- communication_style: "Speaks like a treasure hunter"
|
|
||||||
- principles: "Ensure all stakeholder voices heard"
|
|
||||||
|
|
||||||
### Issue: Broken Sidecar References (Expert agents)
|
|
||||||
|
|
||||||
**Problem:** Menu item references `tmpl="templates/daily.md"` but file doesn't exist
|
|
||||||
**Fix:** Either create the file or fix the path to point to actual 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 copied to `_memory/` at build time
|
||||||
|
- Use `{project-root}/_bmad/_memory/{sidecar-folder}/` format
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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'
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,173 @@
|
||||||
|
# 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`
|
||||||
|
- [ ] `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...'"
|
||||||
|
|
@ -0,0 +1,124 @@
|
||||||
|
# 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:**
|
||||||
|
- [ ] Single .agent.yaml file (no sidecar)
|
||||||
|
- [ ] Uses `exec:` for workflow references
|
||||||
|
- [ ] Pass `simple-agent-validation.md` first
|
||||||
|
|
||||||
|
**If Expert-structure Module Agent:**
|
||||||
|
- [ ] 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
|
||||||
|
|
@ -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
|
||||||
|
```
|
||||||
|
|
@ -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,132 @@
|
||||||
|
# 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`
|
||||||
|
- [ ] `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'`
|
||||||
|
|
@ -2,19 +2,10 @@
|
||||||
name: 'step-01-brainstorm'
|
name: 'step-01-brainstorm'
|
||||||
description: 'Optional brainstorming for agent ideas'
|
description: 'Optional brainstorming for agent ideas'
|
||||||
|
|
||||||
# Path Definitions
|
|
||||||
workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-01-brainstorm.md'
|
nextStepFile: '{project-root}/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-02-discover.md'
|
brainstormContext: ../data/brainstorm-context.md
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
|
||||||
brainstormContext: '{workflow_path}/data/brainstorm-context.md'
|
|
||||||
brainstormWorkflow: '{project-root}/_bmad/core/workflows/brainstorming/workflow.md'
|
brainstormWorkflow: '{project-root}/_bmad/core/workflows/brainstorming/workflow.md'
|
||||||
|
|
||||||
# Task References
|
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
|
||||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Step 1: Optional Brainstorming
|
# Step 1: Optional Brainstorming
|
||||||
|
|
|
||||||
|
|
@ -2,21 +2,10 @@
|
||||||
name: 'step-02-discover'
|
name: 'step-02-discover'
|
||||||
description: 'Discover the agent purpose and type through natural conversation'
|
description: 'Discover the agent purpose and type through natural conversation'
|
||||||
|
|
||||||
# Path Definitions
|
|
||||||
workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: './step-02-discover.md'
|
|
||||||
nextStepFile: './step-03-persona.md'
|
nextStepFile: './step-03-persona.md'
|
||||||
workflowFile: '../workflow.md'
|
|
||||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||||
agentTypesGuide: '../data/understanding-agent-types.md'
|
agentTypesGuide: '../data/understanding-agent-types.md'
|
||||||
simpleExamples: '{workflow_path}/data/reference/agents/simple-examples/'
|
|
||||||
expertExamples: '{workflow_path}/data/reference/agents/expert-examples/'
|
|
||||||
moduleExamples: '{workflow_path}/data/reference/agents/module-examples/'
|
|
||||||
|
|
||||||
# Template References
|
|
||||||
agentPurposeTemplate: '{workflow_path}/templates/agent-purpose-and-type.md'
|
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||||
|
|
@ -167,9 +156,9 @@ Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Cont
|
||||||
|
|
||||||
#### Menu Handling Logic:
|
#### Menu Handling Logic:
|
||||||
|
|
||||||
- IF A: Execute {advancedElicitationTask}
|
- IF A: Execute `{advancedElicitationTask}`
|
||||||
- IF P: Execute {partyModeWorkflow}
|
- IF P: Execute `{partyModeWorkflow}`
|
||||||
- IF C: Save content to {agentPlan}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
|
- 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)
|
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options)
|
||||||
|
|
||||||
#### EXECUTION RULES:
|
#### EXECUTION RULES:
|
||||||
|
|
|
||||||
|
|
@ -2,19 +2,10 @@
|
||||||
name: 'step-03-persona'
|
name: 'step-03-persona'
|
||||||
description: 'Shape the agent personality through collaborative discovery'
|
description: 'Shape the agent personality through collaborative discovery'
|
||||||
|
|
||||||
# Path Definitions
|
|
||||||
workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-03-persona.md'
|
nextStepFile: ./step-04-commands.md
|
||||||
nextStepFile: '{workflow_path}/steps/step-04-commands.md'
|
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
|
||||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||||
communicationPresets: '{workflow_path}/data/communication-presets.csv'
|
communicationPresets: ../data/communication-presets.csv
|
||||||
agentMenuPatterns: '{project-root}/_bmad/bmb/docs/agents/agent-menu-patterns.md'
|
|
||||||
|
|
||||||
# Template References
|
|
||||||
personaTemplate: '{workflow_path}/templates/agent-persona.md'
|
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||||
|
|
|
||||||
|
|
@ -2,21 +2,13 @@
|
||||||
name: 'step-04-commands'
|
name: 'step-04-commands'
|
||||||
description: 'Build capabilities through natural progression and refine commands'
|
description: 'Build capabilities through natural progression and refine commands'
|
||||||
|
|
||||||
# Path Definitions
|
|
||||||
workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-04-commands.md'
|
nextStepFile: './step-05-name.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-05-name.md'
|
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
|
||||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||||
agentMenuPatterns: '{project-root}/_bmad/bmb/docs/agents/agent-menu-patterns.md'
|
|
||||||
simpleArchitecture: '{project-root}/_bmad/bmb/docs/agents/simple-agent-architecture.md'
|
|
||||||
expertArchitecture: '{project-root}/_bmad/bmb/docs/agents/expert-agent-architecture.md'
|
|
||||||
moduleArchitecture: '{project-root}/_bmad/bmb/docs/agents/module-agent-architecture.md'
|
|
||||||
|
|
||||||
# Template References
|
# Architecture References
|
||||||
commandsTemplate: '{workflow_path}/templates/agent-commands.md'
|
simpleAgentArch: '../data/simple-agent-architecture.md'
|
||||||
|
expertAgentArch: '../data/expert-agent-architecture.md'
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||||
|
|
@ -91,21 +83,21 @@ Load appropriate architecture documentation based on agent type:
|
||||||
|
|
||||||
**Simple Agent:**
|
**Simple Agent:**
|
||||||
|
|
||||||
- Load `{simpleArchitecture}`
|
- Load `{simpleAgentArch}`
|
||||||
- Focus on single-execution capabilities
|
- Focus on single-execution capabilities
|
||||||
- All logic must fit within YAML structure
|
- All logic must fit within YAML structure
|
||||||
- No persistent memory between runs
|
- No persistent memory between runs
|
||||||
|
|
||||||
**Expert Agent:**
|
**Expert Agent:**
|
||||||
|
|
||||||
- Load `{expertArchitecture}`
|
- Load `{expertAgentArch}`
|
||||||
- Plan for sidecar file integration
|
- Plan for sidecar file integration
|
||||||
- Persistent memory capabilities
|
- Persistent memory capabilities
|
||||||
- Domain-restricted knowledge base
|
- Domain-restricted knowledge base
|
||||||
|
|
||||||
**Module Agent:**
|
**Module Agent:**
|
||||||
|
|
||||||
- Load `{moduleArchitecture}`
|
- Module architecture documentation not available - use expert architecture as baseline
|
||||||
- Workflow orchestration capabilities
|
- Workflow orchestration capabilities
|
||||||
- Team integration features
|
- Team integration features
|
||||||
- Cross-agent coordination
|
- Cross-agent coordination
|
||||||
|
|
|
||||||
|
|
@ -2,19 +2,10 @@
|
||||||
name: 'step-05-name'
|
name: 'step-05-name'
|
||||||
description: 'Name the agent based on discovered characteristics'
|
description: 'Name the agent based on discovered characteristics'
|
||||||
|
|
||||||
# Path Definitions
|
|
||||||
workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-05-name.md'
|
nextStepFile: ./step-06-build.md
|
||||||
nextStepFile: '{workflow_path}/steps/step-06-build.md'
|
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
|
||||||
|
|
||||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||||
|
|
||||||
# Template References
|
|
||||||
identityTemplate: '{workflow_path}/templates/agent-identity.md'
|
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||||
|
|
|
||||||
|
|
@ -2,19 +2,22 @@
|
||||||
name: 'step-06-build'
|
name: 'step-06-build'
|
||||||
description: 'Generate complete YAML incorporating all discovered elements'
|
description: 'Generate complete YAML incorporating all discovered elements'
|
||||||
|
|
||||||
# Path Definitions
|
|
||||||
workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-06-build.md'
|
nextStepFile: ./step-07-validate.md
|
||||||
nextStepFile: '{workflow_path}/steps/step-07-validate.md'
|
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
|
||||||
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||||||
agentBuildOutput: '{bmb_creations_output_folder}/{agent-name}'
|
agentBuildOutput: '{bmb_creations_output_folder}/{agent-name}'
|
||||||
|
|
||||||
# Template References
|
# Template References
|
||||||
simpleAgentTemplate: '{workflow_path}/templates/simple-agent.template.md'
|
simpleAgentTemplate: ../templates/simple-agent.template.md
|
||||||
expertAgentTemplate: '{workflow_path}/templates/expert-agent.template.md'
|
expertAgentTemplate: ../templates/expert-agent-template/expert-agent.template.md
|
||||||
|
|
||||||
|
# Architecture References
|
||||||
|
simpleAgentArch: ../data/simple-agent-architecture.md
|
||||||
|
expertAgentArch: ../data/expert-agent-architecture.md
|
||||||
|
agentCompilation: ../data/agent-compilation.md
|
||||||
|
|
||||||
|
# Menu Patterns Reference
|
||||||
|
agentMenuPatterns: ../data/agent-menu-patterns.md
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||||
|
|
@ -72,7 +75,7 @@ Generate the complete YAML agent folder, yaml file and sidecar content to the sp
|
||||||
|
|
||||||
Present this to the user:
|
Present this to the user:
|
||||||
|
|
||||||
"Let's take a moment to appreciate what we've created together! Your agent started as an idea, and through our discovery process, it has developed into a fully-realized personality with clear purpose, capabilities, and identity."
|
"Let's take a moment to appreciate what we've created together! Your agent started as an idea, and through our discovery process, it has developed into a fully-realized personality with clear purpose, capabilities, and identity. Now we will make it BMad Compliant, ready to install use and share with the world!"
|
||||||
|
|
||||||
**Journey Summary:**
|
**Journey Summary:**
|
||||||
|
|
||||||
|
|
@ -82,15 +85,21 @@ Present this to the user:
|
||||||
- Established name and identity (Step 5)
|
- Established name and identity (Step 5)
|
||||||
- Ready to bring it all together in complete YAML
|
- Ready to bring it all together in complete YAML
|
||||||
|
|
||||||
### 2. Load Agent Type Template
|
### 2. Load Agent Type Template and Architecture References
|
||||||
|
|
||||||
Based on determined agent type, load appropriate template:
|
Based on determined agent type, load appropriate template and architecture files:
|
||||||
|
|
||||||
- If (agent will have memories and optionally its own knowledge, separate prompt files, or data in separate files)
|
- If (agent will have memories and optionally its own knowledge, separate prompt files, or data in separate files)
|
||||||
|
- Load {expertAgentArch} for architecture guidance
|
||||||
|
- Load {agentCompilation} for compilation best practices
|
||||||
|
- Load {agentMenuPatterns} for menu implementation patterns
|
||||||
- Utilize {expertAgentTemplate} to generate the agent output file {agentBuildOutput}/{agent-name}.agent.yaml
|
- Utilize {expertAgentTemplate} to generate the agent output file {agentBuildOutput}/{agent-name}.agent.yaml
|
||||||
- Create the Side-cre folder to hold the optional sidecar files if needed from plan in following steps at {agentBuildOutput}/{agent-name}/{agent-name}-sidecar
|
- Create the Sidecar folder to hold the optional sidecar files if needed from plan in following steps at {agentBuildOutput}/{agent-name}/{agent-name}-sidecar
|
||||||
- ELSE:
|
- ELSE:
|
||||||
- utilize {simpleAgentTemplate} to generate the agent output file {agentBuildOutput}/{agent-name}.agent.yaml
|
- Load {simpleAgentArch} for architecture guidance
|
||||||
|
- Load {agentCompilation} for compilation best practices
|
||||||
|
- Load {agentMenuPatterns} for menu implementation patterns
|
||||||
|
- Utilize {simpleAgentTemplate} to generate the agent output file {agentBuildOutput}/{agent-name}.agent.yaml
|
||||||
|
|
||||||
### 4. Generate Complete YAML and sidecar content if applicable
|
### 4. Generate Complete YAML and sidecar content if applicable
|
||||||
|
|
||||||
|
|
@ -137,6 +146,8 @@ Ensure proper implementation based on agent type:
|
||||||
- Memory integration points
|
- Memory integration points
|
||||||
- Personal workflow capabilities
|
- Personal workflow capabilities
|
||||||
|
|
||||||
|
Note: In the next step (Step 7: Validate), we will use the validation checklists ({simpleValidation}, {expertValidation}, {moduleValidation}) to ensure the generated YAML meets all standards.
|
||||||
|
|
||||||
Ensure all files generated are complete, and nothing from the plan has not been skipped, and then give a creational summary of what was done to the user in chat.
|
Ensure all files generated are complete, and nothing from the plan has not been skipped, and then give a creational summary of what was done to the user in chat.
|
||||||
|
|
||||||
### 7. Present MENU OPTIONS
|
### 7. Present MENU OPTIONS
|
||||||
|
|
|
||||||
|
|
@ -2,19 +2,18 @@
|
||||||
name: 'step-07-validate'
|
name: 'step-07-validate'
|
||||||
description: 'Quality check with personality and technical validation'
|
description: 'Quality check with personality and technical validation'
|
||||||
|
|
||||||
# Path Definitions
|
|
||||||
workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-07-validate.md'
|
nextStepFile: './step-08-celebrate.md'
|
||||||
nextStepFile: '{workflow_path}/steps/step-08-celebrate.md'
|
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
|
||||||
outputFile: '{bmb_creations_output_folder}/agent-validation-{project_name}.md'
|
outputFile: '{bmb_creations_output_folder}/agent-validation-{project_name}.md'
|
||||||
agentValidationChecklist: '{project-root}/_bmad/bmb/workflows/create-agent/agent-validation-checklist.md'
|
|
||||||
agentFile: '{{output_file_path}}'
|
|
||||||
|
|
||||||
# Template References
|
# Validation Checklists (load based on agent type)
|
||||||
validationTemplate: '{workflow_path}/templates/validation-results.md'
|
simpleValidation: '../data/simple-agent-validation.md'
|
||||||
|
expertValidation: '../data/expert-agent-validation.md'
|
||||||
|
moduleValidation: '../data/module-agent-validation.md'
|
||||||
|
|
||||||
|
# Supporting References
|
||||||
|
agentMenuPatterns: '../data/agent-menu-patterns.md'
|
||||||
|
agentCompilation: '../data/agent-compilation.md'
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||||
|
|
@ -132,11 +131,17 @@ If technical issues are discovered during background validation:
|
||||||
- Check for auto-injection conflicts
|
- Check for auto-injection conflicts
|
||||||
- Validate variable substitution
|
- Validate variable substitution
|
||||||
|
|
||||||
**Type-Specific Requirements:**
|
**Type-Specific Validation Checklists:**
|
||||||
|
|
||||||
- Simple Agents: Self-contained validation
|
Load the appropriate checklist based on agent type:
|
||||||
- Expert Agents: Sidecar file structure validation
|
|
||||||
- Module Agents: Integration points validation
|
- **Simple Agents**: Load `{simpleValidation}` - validates self-contained structure, no sidecar
|
||||||
|
- **Expert Agents**: Load `{expertValidation}` - validates sidecar paths, critical_actions, memory structure
|
||||||
|
- **Module Agents**: Load `{moduleValidation}` - validates workflow integration paths, module membership
|
||||||
|
|
||||||
|
Additionally load supporting references:
|
||||||
|
- `{agentMenuPatterns}` - menu trigger/description format validation
|
||||||
|
- `{agentCompilation}` - compiler-added elements (don't validate presence)
|
||||||
|
|
||||||
### 5. Validation Results Presentation
|
### 5. Validation Results Presentation
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,18 @@
|
||||||
---
|
---
|
||||||
name: 'step-11-celebrate'
|
name: 'step-08-celebrate'
|
||||||
description: 'Celebrate completion and guide next steps for using the agent'
|
description: 'Celebrate completion and guide next steps for using the agent'
|
||||||
|
|
||||||
# Path Definitions
|
|
||||||
workflow_path: '{project-root}/bmb/workflows/create-agent/create-agent'
|
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-11-celebrate.md'
|
thisStepFile: ./step-08-celebrate.md
|
||||||
workflowFile: '{workflow_path}/workflow.md'
|
workflowFile: ../workflow.md
|
||||||
outputFile: '{output_folder}/agent-completion-{project_name}.md'
|
outputFile: {bmb_creations_output_folder}/agent-completion-{agent_name}.md
|
||||||
agentFile: '{{output_file_path}}'
|
|
||||||
|
|
||||||
# Task References
|
# Task References
|
||||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||||
---
|
---
|
||||||
|
|
||||||
# Step 11: Celebration and Next Steps
|
# Step 8: Celebration and Next Steps
|
||||||
|
|
||||||
## STEP GOAL:
|
## STEP GOAL:
|
||||||
|
|
||||||
|
|
@ -28,7 +24,6 @@ Celebrate the successful agent creation, provide activation guidance, and explor
|
||||||
|
|
||||||
- 🛑 NEVER generate content without user input
|
- 🛑 NEVER generate content without user input
|
||||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||||
- 🔄 CRITICAL: Read the complete step file before taking any action
|
|
||||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||||
|
|
||||||
|
|
@ -67,7 +62,7 @@ Celebrate the successful agent creation, provide activation guidance, and explor
|
||||||
|
|
||||||
Present enthusiastic celebration:
|
Present enthusiastic celebration:
|
||||||
|
|
||||||
"🎉 Congratulations! We did it! {{agent_name}} is complete and ready to help users with {{agent_purpose}}!"
|
"🎉 Congratulations! We did it! {agent_name} is complete and ready to help users with {agent_purpose}!"
|
||||||
|
|
||||||
**Journey Celebration:**
|
**Journey Celebration:**
|
||||||
"Let's celebrate what we accomplished together:
|
"Let's celebrate what we accomplished together:
|
||||||
|
|
@ -82,55 +77,55 @@ Present enthusiastic celebration:
|
||||||
### 2. Agent Capabilities Showcase
|
### 2. Agent Capabilities Showcase
|
||||||
|
|
||||||
**Agent Introduction:**
|
**Agent Introduction:**
|
||||||
"Meet {{agent_name}} - your {{agent_type}} agent ready to {{agent_purpose}}!"
|
"Meet {agent_name} - your {agent_type} agent ready to {agent_purpose}!"
|
||||||
|
|
||||||
**Key Features:**
|
**Key Features:**
|
||||||
"✨ **What makes {{agent_name}} special:**
|
"✨ **What makes {agent_name} special:**
|
||||||
|
|
||||||
- {{unique_personality_trait}} personality that {{communication_style_benefit}}
|
- {unique_personality_trait} personality that {communication_style_benefit}
|
||||||
- Expert in {{domain_expertise}} with {{specialized_knowledge}}
|
- Expert in {domain_expertise} with {specialized_knowledge}
|
||||||
- {{number_commands}} powerful commands including {{featured_command}}
|
- {number_commands} powerful commands including {featured_command}
|
||||||
- Ready to help with {{specific_use_cases}}"
|
- Ready to help with {specific_use_cases}"
|
||||||
|
|
||||||
### 3. Activation Guidance
|
### 3. Activation Guidance
|
||||||
|
|
||||||
**Getting Started:**
|
**Getting Started:**
|
||||||
"Here's how to start using {{agent_name}}:"
|
"Here's how to start using {agent_name}:"
|
||||||
|
|
||||||
**Activation Steps:**
|
**Activation Steps:**
|
||||||
|
|
||||||
1. **Locate your agent files:** `{{agent_file_location}}`
|
1. **Locate your agent files:** `{agent_file_location}`
|
||||||
2. **If compiled:** Use the compiled version at `{{compiled_location}}`
|
2. **If compiled:** Use the compiled version at `{compiled_location}`
|
||||||
3. **For customization:** Edit the customization file at `{{customization_location}}`
|
3. **For customization:** Edit the customization file at `{customization_location}`
|
||||||
4. **First interaction:** Start by asking for help to see available commands
|
4. **First interaction:** Start by asking for help to see available commands
|
||||||
|
|
||||||
**First Conversation Suggestions:**
|
**First Conversation Suggestions:**
|
||||||
"Try starting with:
|
"Try starting with:
|
||||||
|
|
||||||
- 'Hi {{agent_name}}, what can you help me with?'
|
- 'Hi {agent_name}, what can you help me with?'
|
||||||
- 'Tell me about your capabilities'
|
- 'Tell me about your capabilities'
|
||||||
- 'Help me with [specific task related to agent purpose]'"
|
- 'Help me with [specific task related to agent purpose]'"
|
||||||
|
|
||||||
### 4. Next Steps Exploration
|
### 4. Next Steps Exploration
|
||||||
|
|
||||||
**Immediate Next Steps:**
|
**Immediate Next Steps:**
|
||||||
"Now that {{agent_name}} is ready, what would you like to do first?"
|
"Now that {agent_name} is ready, what would you like to do first?"
|
||||||
|
|
||||||
**Options to Explore:**
|
**Options to Explore:**
|
||||||
|
|
||||||
- **Test drive:** Try out different commands and capabilities
|
- **Test drive:** Try out different commands and capabilities
|
||||||
- **Customize:** Fine-tune personality or add new commands
|
- **Customize:** Fine-tune personality or add new commands
|
||||||
- **Integrate:** Set up {{agent_name}} in your workflow
|
- **Integrate:** Set up {agent_name} in your workflow
|
||||||
- **Share:** Tell others about your new agent
|
- **Share:** Tell others about your new agent
|
||||||
- **Expand:** Plan additional agents or capabilities
|
- **Expand:** Plan additional agents or capabilities
|
||||||
|
|
||||||
**Future Possibilities:**
|
**Future Possibilities:**
|
||||||
"As you use {{agent_name}}, you might discover:
|
"As you use {agent_name}, you might discover:
|
||||||
|
|
||||||
- New capabilities you'd like to add
|
- New capabilities you'd like to add
|
||||||
- Other agents that would complement this one
|
- Other agents that would complement this one
|
||||||
- Ways to integrate {{agent_name}} into larger workflows
|
- Ways to integrate {agent_name} into larger workflows
|
||||||
- Opportunities to share {{agent_name}} with your team"
|
- Opportunities to share {agent_name} with your team"
|
||||||
|
|
||||||
### 5. Final Documentation
|
### 5. Final Documentation
|
||||||
|
|
||||||
|
|
@ -141,16 +136,16 @@ Present enthusiastic celebration:
|
||||||
|
|
||||||
### Agent Summary
|
### Agent Summary
|
||||||
|
|
||||||
- **Name:** {{agent_name}}
|
- **Name:** {agent_name}
|
||||||
- **Type:** {{agent_type}}
|
- **Type:** {agent_type}
|
||||||
- **Purpose:** {{agent_purpose}}
|
- **Purpose:** {agent_purpose}
|
||||||
- **Status:** Ready for activation
|
- **Status:** Ready for activation
|
||||||
|
|
||||||
### File Locations
|
### File Locations
|
||||||
|
|
||||||
- **Agent Config:** {{agent_file_path}}
|
- **Agent Config:** {agent_file_path}
|
||||||
- **Compiled Version:** {{compiled_agent_path}}
|
- **Compiled Version:** {compiled_agent_path}
|
||||||
- **Customization:** {{customization_file_path}}
|
- **Customization:** {customization_file_path}
|
||||||
|
|
||||||
### Activation Guidance
|
### Activation Guidance
|
||||||
|
|
||||||
|
|
@ -166,7 +161,7 @@ Save this content to `{outputFile}` for reference.
|
||||||
### 6. Workflow Completion
|
### 6. Workflow Completion
|
||||||
|
|
||||||
**Mark Complete:**
|
**Mark Complete:**
|
||||||
"Agent creation workflow completed successfully! {{agent_name}} is ready to help users and make a real difference."
|
"Agent creation workflow completed successfully! {agent_name} is ready to help users and make a real difference."
|
||||||
|
|
||||||
**Final Achievement:**
|
**Final Achievement:**
|
||||||
"You've successfully created a custom BMAD agent from concept to deployment-ready configuration. Amazing work!"
|
"You've successfully created a custom BMAD agent from concept to deployment-ready configuration. Amazing work!"
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,14 @@ agent:
|
||||||
module: bmm
|
module: bmm
|
||||||
|
|
||||||
persona:
|
persona:
|
||||||
role: Investigative Product Strategist + Market-Savvy PM
|
role: Product Manager specializing in collaborative PRD creation through user interviews, requirement discovery, and stakeholder alignment.
|
||||||
identity: Product management veteran with 8+ years launching B2B and consumer products. Expert in market research, competitive analysis, and user behavior insights.
|
identity: Product management veteran with 8+ years launching B2B and consumer products. Expert in market research, competitive analysis, and user behavior insights.
|
||||||
communication_style: "Asks 'WHY?' relentlessly like a detective on a case. Direct and data-sharp, cuts through fluff to what actually matters."
|
communication_style: "Asks 'WHY?' relentlessly like a detective on a case. Direct and data-sharp, cuts through fluff to what actually matters."
|
||||||
principles: |
|
principles: |
|
||||||
- Uncover the deeper WHY behind every requirement. Ruthless prioritization to achieve MVP goals. Proactively identify risks.
|
- 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
|
||||||
- Align efforts with measurable business impact. Back all claims with data and user insights.
|
- 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
|
||||||
- Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`
|
- Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`
|
||||||
|
|
||||||
menu:
|
menu:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue