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

182 lines
5.8 KiB
YAML

# BMAD Persona Schema Definition
# This schema defines the structure for BMAD persona files (.md)
# Personas provide the base personality and principles for agents
type: object
required:
- role
- persona
- core_principles
- critical_startup_operating_instructions
properties:
role:
type: string
description: "The title/role name of the persona"
pattern: "^# Role: .+ Agent$"
examples:
- "# Role: Product Manager (PM) Agent"
- "# Role: Business Analyst Agent"
- "# Role: Fullstack Architect Agent"
persona:
type: object
description: "Core identity and style definition"
required:
- role
- style
properties:
role:
type: string
description: "Professional role description"
minLength: 20
examples:
- "Investigative Product Strategist & Market-Savvy PM"
- "Holistic System Architect & Full-Stack Technical Leader"
style:
type: string
description: "Communication and working style"
minLength: 50
examples:
- "Analytical, inquisitive, data-driven, user-focused, pragmatic. Aims to build a strong case for product decisions through efficient research and clear synthesis of findings and collaborating with the user."
core_principles:
type: object
description: "Core principles that guide behavior (Always Active)"
pattern: "^## Core .* Principles \\(Always Active\\)$"
minProperties: 5
properties:
principle_list:
type: array
minItems: 5
items:
type: object
required:
- title
- description
properties:
title:
type: string
description: "Principle name in bold"
pattern: "^\\*\\*.+:\\*\\*$"
description:
type: string
description: "Detailed explanation of the principle"
minLength: 50
critical_startup_operating_instructions:
type: object
description: "Instructions executed when persona is activated"
pattern: "^## Critical Start Up Operating Instructions$"
properties:
instructions:
type: array
description: "List of startup instructions"
minItems: 1
items:
type: string
minLength: 20
# Optional sections that may appear in personas
additionalProperties: true
definitions:
optional_sections:
domain_expertise:
type: object
description: "Detailed expertise areas (commonly used by technical personas)"
pattern: "^## Domain Expertise$"
properties:
categories:
type: array
items:
type: object
properties:
title:
type: string
pattern: "^### .+$"
items:
type: array
items:
type: string
task_execution_patterns:
type: object
description: "Specific patterns for executing tasks"
pattern: "^## .+ Task Execution$"
expertise_areas:
type: object
description: "Simplified expertise listing"
pattern: "^## (Core )?Expertise$"
responsibilities:
type: object
description: "Key responsibilities"
pattern: "^## Responsibilities$"
working_style:
type: object
description: "Approach to work"
pattern: "^## Working Style$"
motivations:
type: object
description: "What drives the persona"
pattern: "^## Motivations$"
# Validation rules
allOf:
# Ensure numbered options protocol is mentioned for IDE compatibility
- if:
properties:
critical_startup_operating_instructions:
properties:
instructions:
contains:
type: string
pattern: ".*numbered list.*"
then:
description: "Startup instructions should mention numbered lists for selection"
# Ensure advanced-elicitation is mentioned
- if:
properties:
critical_startup_operating_instructions:
properties:
instructions:
contains:
type: string
pattern: ".*advanced-elicitation.*"
then:
description: "Startup instructions should mention advanced-elicitation options"
# Examples
examples:
product_manager:
role: "# Role: Product Manager (PM) Agent"
persona:
role: "Investigative Product Strategist & Market-Savvy PM"
style: "Analytical, inquisitive, data-driven, user-focused, pragmatic. Aims to build a strong case for product decisions through efficient research and clear synthesis of findings and collaborating with the user."
core_principles:
- title: "**Deeply Understand \"Why\":**"
description: "Always strive to understand the underlying problem, user needs, and business objectives before jumping to solutions."
- title: "**Champion the User:**"
description: "Maintain a relentless focus on the target user. All decisions should be viewed through the lens of value delivered."
critical_startup_operating_instructions:
- "Let the User Know what Tasks you can perform in a numbered list for user selection."
- "Execute the Full Tasks as Selected. If no task selected you will just stay in this persona and help the user as needed."
architect:
role: "# Role: Fullstack Architect Agent"
persona:
role: "Holistic System Architect & Full-Stack Technical Leader"
style: "Comprehensive, pragmatic, user-centric, technically deep yet accessible. Bridges all layers of the stack with equal expertise."
domain_expertise:
core_fullstack:
title: "### Core Full-Stack Architecture"
items:
- "End-to-End System Design"
- "Cross-Stack Performance Optimization"
- "Full-Stack Security Architecture"