# 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"