Files
BMAD-METHOD/bmad-core/schemas/agent-schema.yml

244 lines
6.8 KiB
YAML

# BMAD Agent Configuration Schema
# This schema defines the structure for BMAD agent configuration files
# Agents can either reference an external persona or embed the persona directly
type: object
required:
- agent
- dependencies
properties:
agent:
type: object
description: Core agent configuration and metadata
required:
- name
- id
- title
- description
- customize
properties:
name:
type: string
description: Human-friendly character name of the agent
pattern: "^[A-Z][a-z]+$"
examples:
- "John"
- "Mary"
- "Sarah"
- "James"
- "Quinn"
- "Sally"
- "Winston"
- "Bob"
- "BMad"
id:
type: string
description: Unique identifier for the agent (lowercase, hyphenated)
pattern: "^[a-z][a-z0-9-]*$"
examples:
- "pm"
- "analyst"
- "architect"
- "po"
- "sm"
- "dev"
- "qa"
- "ux-expert"
- "bmad"
title:
type: string
description: Professional title or role
minLength: 5
maxLength: 50
examples:
- "Product Manager"
- "Business Analyst"
- "Architect"
- "Product Owner"
- "Scrum Master"
- "Full Stack Developer"
- "QA Engineer"
- "UX Expert"
description:
type: string
description: Main goal and purpose of the agent
minLength: 20
maxLength: 300
persona:
oneOf:
- type: string
description: Reference to external persona file
pattern: "^bmad-core/personas/[a-z][a-z0-9-]*\\.md$"
- type: "null"
description: Null when using embedded persona
customize:
type: string
description: Customization instructions or embedded persona definition
default: ""
startup:
type: array
description: Startup instructions for the agent (required when persona is null)
items:
type: string
minLength: 20
dependencies:
type: object
description: Resources required by this agent
required:
- tasks
- templates
- checklists
- data
- utils
properties:
tasks:
type: array
description: List of task files from bmad-core/tasks/
items:
type: string
pattern: "^[a-z][a-z0-9-]*$"
uniqueItems: true
templates:
type: array
description: List of template files from bmad-core/templates/
items:
type: string
pattern: "^[a-z][a-z0-9-]*-tmpl$"
uniqueItems: true
checklists:
type: array
description: List of checklist files from bmad-core/checklists/
items:
type: string
pattern: "^[a-z][a-z0-9-]*-checklist$"
uniqueItems: true
data:
type: array
description: List of data files from bmad-core/data/
items:
type: string
pattern: "^[a-z][a-z0-9-]*$"
uniqueItems: true
utils:
type: array
description: List of utility files from bmad-core/utils/
items:
type: string
pattern: "^[a-z][a-z0-9-]*$"
uniqueItems: true
# No additional properties allowed
additionalProperties: false
# Validation rules
allOf:
# When persona is null, customize must contain embedded persona and startup must be provided
- if:
properties:
agent:
properties:
persona:
type: "null"
then:
properties:
agent:
required:
- startup
properties:
customize:
minLength: 200
description: "Must contain comprehensive persona definition when persona is null"
startup:
minItems: 1
description: "Startup instructions required for embedded personas"
# When persona is provided, startup is optional
- if:
properties:
agent:
properties:
persona:
type: string
then:
properties:
agent:
properties:
customize:
maxLength: 500
description: "Keep customizations brief when using external persona"
# Examples showing valid agent configurations
examples:
# Agent with external persona
external_persona_agent:
agent:
name: "John"
id: "pm"
title: "Product Manager"
description: "Creates Product Requirements Documents (PRDs) and conducts product research to define product strategy"
persona: "bmad-core/personas/pm.md"
customize: ""
startup:
- "Let the User Know what Tasks you can perform in a numbered list for user selection."
- "Execute the Full Tasks as Selected."
dependencies:
tasks:
- "create-doc-from-template"
- "advanced-elicitation"
- "shard-doc"
templates:
- "prd-tmpl"
- "project-brief-tmpl"
checklists:
- "pm-checklist"
data:
- "bmad-kb"
utils:
- "template-format"
# Agent with embedded persona
embedded_persona_agent:
agent:
name: "Elena"
id: "data-analyst"
title: "Data Analyst"
description: "Analyzes data patterns, creates visualizations, and provides insights for data-driven decision making"
persona: null
customize: >-
Elena is a meticulous Data Analyst with expertise in statistical analysis, data visualization,
and pattern recognition. She approaches problems with scientific rigor, always seeking evidence
in the data before drawing conclusions. Her style is precise, methodical, and focused on
delivering actionable insights. She excels at transforming complex data into clear narratives
that stakeholders can understand and act upon. Core principles include: data integrity above all,
correlation doesn't imply causation, visualizations should tell a story, and always validate
findings with multiple data sources.
startup:
- "Let the User Know what Tasks you can perform in a numbered list for user selection."
- "Focus on data-driven insights and evidence-based recommendations."
- "Always ask for data sources and context before beginning analysis."
dependencies:
tasks:
- "analyze-data"
- "create-visualization"
- "statistical-analysis"
templates:
- "data-report-tmpl"
- "dashboard-tmpl"
checklists:
- "data-quality-checklist"
data:
- "statistical-methods"
utils:
- "data-tools"