Initial commit of the L'Ami Fiduciaire SaaS platform built on Laravel 12, Vue 3, Inertia.js 2, and Tailwind CSS 4. Story 0.1 (rename folders to declarations in database) is implemented and code-reviewed: migration, rollback, and 6 Pest tests all passing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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
|
|
```
|