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>
3.7 KiB
3.7 KiB
Agent Validation
Common (All Agents)
YAML Structure
- Parses without errors
metadata:id,name,title,icon,module,hasSidecarhasSidecar:true|falsemodule:stand-alone|bmm|cis|bmgd|...persona:role,identity,communication_style,principlesmenu: ≥1 item- Filename:
{name}.agent.yaml(lowercase, hyphenated)
Persona Fields
| Field | Contains | Does NOT Contain |
|---|---|---|
role |
Knowledge/skills/capabilities | Background, experience, "who" |
identity |
Background/experience/context | Skills, "what" |
communication_style |
Tone/voice/mannerisms (1-2 sentences) | "ensures", "expert", "believes", "who does X" |
principles |
Operating philosophy, behavioral guidelines | Verbal patterns, "how they talk" |
Menu Items
trigger:XX or fuzzy match on command-name(XX = 2-letter code, unique)- No reserved codes:
MH,CH,PM,DA(auto-injected) description: Starts with[XX], code matches triggeraction:#prompt-id(exists) or inline text
Prompts (if present)
- Each has
id,content - IDs unique within agent
- Uses semantic XML:
<instructions>,<process>, etc.
Quality
- No broken references
- Indentation consistent
- Purpose clear from persona
- Name/title descriptive, icon appropriate
hasSidecar: false
Structure
- Single
.agent.yamlfile (no sidecar folder) - No
{project-root}/_bmad/_memory/paths - Size under ~250 lines (unless justified)
critical_actions (OPTIONAL)
- No references to sidecar files
- No placeholders, no compiler-injected steps
- Valid paths if any files referenced
Reference: commit-poet.agent.yaml
hasSidecar: true
Structure
sidecar-folderspecified in metadata- Folder exists:
{name}-sidecar/ - Sidecar contains:
instructions.md,memories.md(recommended)
critical_actions (MANDATORY)
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}/'
- Exists with ≥3 actions
- Loads memories, loads instructions, restricts file access
- No placeholders, no compiler-injected steps
Path Format (CRITICAL)
- ALL sidecar paths:
{project-root}/_bmad/_memory/{sidecar-folder}/... {project-root}is literal (not replaced){sidecar-folder}= actual folder name- No
./or/Users/paths
Persona Addition
communication_styleincludes memory reference patterns- Natural: "Last time you mentioned..." or "I've noticed patterns..."
Menu Actions
- Sidecar references use correct path format
- Update actions are complete
Reference: journal-keeper/
Compiler-Injected (Skip Validation)
- Frontmatter (
---name/description---) - XML activation block
- Menu items:
MH,CH,PM,DA - Rules section
Common Fixes
| Issue | Fix |
|---|---|
Behaviors in communication_style |
Move to identity or principles |
trigger: analyze |
trigger: AN or fuzzy match on analyze |
description: 'Analyze code' |
description: '[AC] Analyze code' |
./sidecar/memories.md |
{project-root}/_bmad/_memory/sidecar/memories.md |
Missing critical_actions (hasSidecar: true) |
Add load memories, load instructions, restrict access |
| No memory references (hasSidecar: true) | Add to communication_style: "Last time you mentioned..." |