182 lines
5.8 KiB
YAML
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" |