Files
L-Ami-Fiduciaire/_bmad/bmb/workflows/agent/data/agent-validation.md
Saad Zoubir 7a18c40361 chore: add BMAD framework modules, folder features, and tooling configs
Includes BMAD bmb/bmm/cis/tea workflow modules, folder (declaration)
feature implementation (controllers, models, enums, views, tests),
claude/cursor command configs, and email templates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 21:24:17 +01:00

3.7 KiB

Agent Validation

Common (All Agents)

YAML Structure

  • Parses without errors
  • metadata: id, name, title, icon, module, hasSidecar
  • hasSidecar: true|false
  • module: stand-alone|bmm|cis|bmgd|...
  • persona: role, identity, communication_style, principles
  • menu: ≥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 trigger
  • action: #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.yaml file (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-folder specified 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_style includes 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..."