a few things are broken, and big folder move incoming....
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# BMAD Agent Configuration Schema
|
||||
# This schema defines the structure for BMAD agent configuration files
|
||||
# Agents are composed of configuration + persona + dependencies
|
||||
# Agents can either reference an external persona or embed the persona directly
|
||||
|
||||
type: object
|
||||
required:
|
||||
@@ -16,7 +16,6 @@ properties:
|
||||
- id
|
||||
- title
|
||||
- description
|
||||
- persona
|
||||
- customize
|
||||
properties:
|
||||
name:
|
||||
@@ -71,14 +70,24 @@ properties:
|
||||
maxLength: 300
|
||||
|
||||
persona:
|
||||
type: string
|
||||
description: Reference to the persona file in bmad-core/personas/
|
||||
pattern: "^bmad-core/personas/[a-z][a-z0-9-]*\\.md$"
|
||||
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 empty string for no customization
|
||||
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
|
||||
@@ -135,35 +144,45 @@ additionalProperties: false
|
||||
|
||||
# Validation rules
|
||||
allOf:
|
||||
# Ensure persona file matches agent id
|
||||
# When persona is null, customize must contain embedded persona and startup must be provided
|
||||
- if:
|
||||
properties:
|
||||
agent:
|
||||
properties:
|
||||
id:
|
||||
const: "ux-expert"
|
||||
persona:
|
||||
type: "null"
|
||||
then:
|
||||
properties:
|
||||
agent:
|
||||
required:
|
||||
- startup
|
||||
properties:
|
||||
persona:
|
||||
const: "bmad-core/personas/ux-expert.md"
|
||||
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:
|
||||
id:
|
||||
pattern: "^(?!ux-expert).*$"
|
||||
persona:
|
||||
type: string
|
||||
then:
|
||||
properties:
|
||||
agent:
|
||||
properties:
|
||||
persona:
|
||||
pattern: "^bmad-core/personas/\\1\\.md$"
|
||||
customize:
|
||||
maxLength: 500
|
||||
description: "Keep customizations brief when using external persona"
|
||||
|
||||
# Examples showing valid agent configurations
|
||||
examples:
|
||||
product_manager:
|
||||
# Agent with external persona
|
||||
external_persona_agent:
|
||||
agent:
|
||||
name: "John"
|
||||
id: "pm"
|
||||
@@ -171,6 +190,9 @@ examples:
|
||||
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"
|
||||
@@ -179,54 +201,44 @@ examples:
|
||||
templates:
|
||||
- "prd-tmpl"
|
||||
- "project-brief-tmpl"
|
||||
- "brownfield-prd-tmpl"
|
||||
checklists:
|
||||
- "pm-checklist"
|
||||
data:
|
||||
- "bmad-kb"
|
||||
- "technical-preferences"
|
||||
utils:
|
||||
- "template-format"
|
||||
|
||||
business_analyst:
|
||||
# Agent with embedded persona
|
||||
embedded_persona_agent:
|
||||
agent:
|
||||
name: "Mary"
|
||||
id: "analyst"
|
||||
title: "Business Analyst"
|
||||
description: "Facilitates brainstorming sessions, creates research prompts, and develops comprehensive project briefs"
|
||||
persona: "bmad-core/personas/analyst.md"
|
||||
customize: ""
|
||||
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:
|
||||
- "advanced-elicitation"
|
||||
- "create-deep-research-prompt"
|
||||
- "create-doc-from-template"
|
||||
- "analyze-data"
|
||||
- "create-visualization"
|
||||
- "statistical-analysis"
|
||||
templates:
|
||||
- "project-brief-tmpl"
|
||||
checklists: []
|
||||
data:
|
||||
- "bmad-kb"
|
||||
utils: []
|
||||
|
||||
architect:
|
||||
agent:
|
||||
name: "Winston"
|
||||
id: "architect"
|
||||
title: "Architect"
|
||||
description: "Designs comprehensive system architectures balancing user experience, technical excellence, and practical implementation"
|
||||
persona: "bmad-core/personas/architect.md"
|
||||
customize: ""
|
||||
dependencies:
|
||||
tasks:
|
||||
- "create-doc-from-template"
|
||||
- "execute-checklist"
|
||||
- "shard-doc"
|
||||
templates:
|
||||
- "architecture-tmpl"
|
||||
- "fullstack-architecture-tmpl"
|
||||
- "brownfield-architecture-tmpl"
|
||||
- "data-report-tmpl"
|
||||
- "dashboard-tmpl"
|
||||
checklists:
|
||||
- "architect-checklist"
|
||||
- "data-quality-checklist"
|
||||
data:
|
||||
- "technical-preferences"
|
||||
utils: []
|
||||
- "statistical-methods"
|
||||
utils:
|
||||
- "data-tools"
|
||||
182
bmad-core/schemas/persona-schema.yml
Normal file
182
bmad-core/schemas/persona-schema.yml
Normal file
@@ -0,0 +1,182 @@
|
||||
# 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"
|
||||
Reference in New Issue
Block a user