134 lines
3.1 KiB
Markdown
134 lines
3.1 KiB
Markdown
|
|
# Agent Metadata Properties
|
||
|
|
|
||
|
|
| Property | Format | Rules |
|
||
|
|
|----------|--------|-------|
|
||
|
|
| `id` | `_bmad/agents/{agent-name}/{agent-name}.md` | Compiled output path; must match filename |
|
||
|
|
| `name` | "First Last" or "Name Title" | Persona's identity (NOT title/filename) |
|
||
|
|
| `title` | "Role Name" (kebab-cased to filename) | Determines filename: `title` → `{title}.agent.yaml` |
|
||
|
|
| `icon` | Single emoji only | One emoji exactly |
|
||
|
|
| `module` | `stand-alone`, `bmm`, `cis`, `bmgd`, or custom | Lowercase, hyphenated for `stand-alone` |
|
||
|
|
| `hasSidecar` | `true` or `false` | `true` = expects `{agent-name}-sidecar/` folder |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Field Rules
|
||
|
|
|
||
|
|
### `id`
|
||
|
|
```yaml
|
||
|
|
id: _bmad/agents/commit-poet/commit-poet.md
|
||
|
|
```
|
||
|
|
- Unique identifier for future lookup
|
||
|
|
- Conventionally matches filename pattern
|
||
|
|
|
||
|
|
### `name`
|
||
|
|
```yaml
|
||
|
|
# ✅ CORRECT
|
||
|
|
name: 'Inkwell Von Comitizen'
|
||
|
|
name: 'Dr. Demento'
|
||
|
|
name: 'Clarity'
|
||
|
|
|
||
|
|
# ❌ WRONG
|
||
|
|
name: 'commit-poet' # That's the filename
|
||
|
|
name: 'Code Review Specialist' # That's the title
|
||
|
|
```
|
||
|
|
|
||
|
|
### `title`
|
||
|
|
```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 functional title
|
||
|
|
```
|
||
|
|
- Derives filename via kebab-case
|
||
|
|
- `role` field (separate) expands on what agent does in 1-2 sentences
|
||
|
|
|
||
|
|
### `icon`
|
||
|
|
```yaml
|
||
|
|
# ✅ CORRECT
|
||
|
|
icon: '🔧'
|
||
|
|
icon: '🧙♂️'
|
||
|
|
icon: '📜'
|
||
|
|
|
||
|
|
# ❌ WRONG
|
||
|
|
icon: '🔧📜' # Multiple emojis
|
||
|
|
icon: 'wrench' # Text, not emoji
|
||
|
|
icon: '' # Empty
|
||
|
|
```
|
||
|
|
|
||
|
|
### `module`
|
||
|
|
| Value | Meaning |
|
||
|
|
|-------|---------|
|
||
|
|
| `stand-alone` | Independent agent |
|
||
|
|
| `bmm` | Business Management Module |
|
||
|
|
| `cis` | Continuous Innovation System |
|
||
|
|
| `bmgd` | BMAD Game Development |
|
||
|
|
| `{custom}` | Any custom module code |
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
# ✅ CORRECT
|
||
|
|
module: stand-alone
|
||
|
|
module: bmm
|
||
|
|
|
||
|
|
# ❌ WRONG
|
||
|
|
module: standalone # Missing hyphen
|
||
|
|
module: 'BMM' # Uppercase
|
||
|
|
```
|
||
|
|
|
||
|
|
### `hasSidecar`
|
||
|
|
```yaml
|
||
|
|
# Simple Agent
|
||
|
|
hasSidecar: false
|
||
|
|
|
||
|
|
# Expert Agent (has sidecar folder)
|
||
|
|
hasSidecar: true
|
||
|
|
```
|
||
|
|
- If `true`: compiler expects `{agent-name}-sidecar/` folder
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Name Confusion Prevention
|
||
|
|
|
||
|
|
| 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" |
|
||
|
|
| What's their job title? | `title` — "Commit Message Artisan" |
|
||
|
|
| What do they do? | `role` — 1-2 sentences expanding on title |
|
||
|
|
| What's the unique key? | `id` — `_bmad/agents/{name}/{name}.md` |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Common Anti-Patterns
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
# ❌ name = title (duplicate)
|
||
|
|
name: 'Commit Message Artisan'
|
||
|
|
title: 'Commit Message Artisan'
|
||
|
|
|
||
|
|
# ✅ Fix: separate identity from role
|
||
|
|
name: 'Inkwell Von Comitizen'
|
||
|
|
title: 'Commit Message Artisan'
|
||
|
|
```
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
# ❌ id path mismatch
|
||
|
|
# File: my-agent.agent.yaml
|
||
|
|
id: _bmad/agents/different-agent/different-agent.md
|
||
|
|
|
||
|
|
# ✅ Fix: match filename
|
||
|
|
id: _bmad/agents/my-agent/my-agent.md
|
||
|
|
```
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
# ❌ Wrong module format
|
||
|
|
module: Standalone
|
||
|
|
module: STAND_ALONE
|
||
|
|
|
||
|
|
# ✅ Fix: lowercase, hyphenated
|
||
|
|
module: stand-alone
|
||
|
|
```
|