agent consolidation
This commit is contained in:
@@ -1,138 +0,0 @@
|
||||
# BMAD Schemas
|
||||
|
||||
This directory contains YAML schema definitions for BMAD Method configuration files.
|
||||
|
||||
## Agent Schema
|
||||
|
||||
The `agent-schema.yml` defines the EXACT structure required for agent configuration files in the BMAD Method, based on the standard pm.yml structure.
|
||||
|
||||
### Required Structure
|
||||
|
||||
Every agent configuration file MUST have exactly these fields:
|
||||
|
||||
```yaml
|
||||
agent:
|
||||
name: string # Human-friendly name (e.g., "John")
|
||||
id: string # Unique identifier (e.g., "pm")
|
||||
title: string # Professional title (e.g., "Product Manager")
|
||||
description: string # Main goal and purpose of the agent
|
||||
persona: string # Reference to persona file in bmad-core/personas/
|
||||
customize: string # Customization instructions (use "" if none)
|
||||
|
||||
dependencies:
|
||||
tasks: [] # Array of task files from bmad-core/tasks/
|
||||
templates: [] # Array of template files from bmad-core/templates/
|
||||
checklists: [] # Array of checklist files from bmad-core/checklists/
|
||||
data: [] # Array of data files from bmad-core/data/
|
||||
utils: [] # Array of utility files from bmad-core/utils/
|
||||
```
|
||||
|
||||
### Important Notes
|
||||
|
||||
1. **ALL fields are required** - Even if empty, include all fields with empty arrays `[]` or empty strings `""`
|
||||
2. **No additional fields allowed** - The schema enforces exactly this structure
|
||||
3. **No environments section** - Environment-specific configurations are not part of the standard
|
||||
4. **Customize field** - Must be present even if empty (use `""`)
|
||||
|
||||
### Example (pm.yml)
|
||||
|
||||
```yaml
|
||||
agent:
|
||||
name: John
|
||||
id: pm
|
||||
title: Product Manager
|
||||
description: >-
|
||||
Main goal is to help produce or maintain the best possible PRD and represent the end user the
|
||||
product will serve.
|
||||
persona: pm
|
||||
customize: ""
|
||||
|
||||
dependencies:
|
||||
tasks:
|
||||
- create-doc-from-template
|
||||
- correct-course
|
||||
- create-deep-research-prompt
|
||||
- brownfield-create-epic
|
||||
- brownfield-create-story
|
||||
- execute-checklist
|
||||
templates:
|
||||
- prd-tmpl
|
||||
- brownfield-prd-tmpl
|
||||
checklists:
|
||||
- pm-checklist
|
||||
- change-checklist
|
||||
data:
|
||||
- technical-preferences
|
||||
utils:
|
||||
- template-format
|
||||
```
|
||||
|
||||
## Agent Team Schema
|
||||
|
||||
The `agent-team-schema.yml` defines the structure for agent team configuration files in the BMAD Method.
|
||||
|
||||
### Required Structure
|
||||
|
||||
Every team configuration file MUST have exactly these fields:
|
||||
|
||||
```yaml
|
||||
bundle:
|
||||
name: string # Team name (e.g., "Team Fullstack")
|
||||
description: string # Team purpose and capabilities
|
||||
|
||||
agents: [] # Array of agent IDs or "*" for all agents
|
||||
|
||||
workflows: [] # Array of workflow names from bmad-core/workflows/
|
||||
```
|
||||
|
||||
### Important Notes
|
||||
|
||||
1. **ALL fields are required** - Include all fields even if arrays are empty
|
||||
2. **No additional fields allowed** - The schema enforces exactly this structure
|
||||
3. **Agent wildcard** - Use `"*"` to include all available agents
|
||||
4. **Workflows** - Reference workflow files from bmad-core/workflows/ (without extension)
|
||||
|
||||
### Example (team-fullstack.yml)
|
||||
|
||||
```yaml
|
||||
bundle:
|
||||
name: Team Fullstack
|
||||
description: >-
|
||||
Comprehensive full-stack development team capable of handling both greenfield
|
||||
application development and brownfield enhancement projects. This team combines
|
||||
strategic planning, user experience design, and holistic system architecture
|
||||
to deliver complete solutions from concept to deployment.
|
||||
|
||||
agents:
|
||||
- bmad
|
||||
- analyst
|
||||
- pm
|
||||
- ux-expert
|
||||
- architect
|
||||
- po
|
||||
|
||||
workflows:
|
||||
- brownfield-fullstack
|
||||
- brownfield-service
|
||||
- brownfield-ui
|
||||
- greenfield-fullstack
|
||||
- greenfield-service
|
||||
- greenfield-ui
|
||||
```
|
||||
|
||||
### Special Cases
|
||||
|
||||
**Using Wildcards** - The team-all.yml example shows using both specific agents and wildcards:
|
||||
|
||||
```yaml
|
||||
agents:
|
||||
- bmad
|
||||
- "*" # Includes all other agents
|
||||
```
|
||||
|
||||
## File References
|
||||
|
||||
All references in schemas should be file names WITHOUT extensions:
|
||||
- ✅ `prd-tmpl` (not `prd-tmpl.md`)
|
||||
- ✅ `pm-checklist` (not `pm-checklist.md`)
|
||||
- ✅ `greenfield-fullstack` (not `greenfield-fullstack.yml`)
|
||||
@@ -1,185 +0,0 @@
|
||||
# BMAD Agent Configuration Schema
|
||||
# This schema defines the structure for BMAD Method agent configuration files
|
||||
|
||||
type: object
|
||||
required:
|
||||
- agent
|
||||
- dependencies
|
||||
|
||||
properties:
|
||||
agent:
|
||||
type: object
|
||||
description: Core agent configuration
|
||||
required:
|
||||
- name
|
||||
- id
|
||||
- title
|
||||
- description
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: Human-friendly name of the agent (e.g., 'John', 'Mary')
|
||||
examples:
|
||||
- John
|
||||
- Mary
|
||||
- Winston
|
||||
- Sarah
|
||||
- Bob
|
||||
|
||||
id:
|
||||
type: string
|
||||
pattern: ^[a-z][a-z0-9-]*$
|
||||
description: Unique identifier for the agent, lowercase with hyphens
|
||||
examples:
|
||||
- pm
|
||||
- analyst
|
||||
- architect
|
||||
- po
|
||||
- dev
|
||||
|
||||
title:
|
||||
type: string
|
||||
description: Professional title or role of the agent
|
||||
examples:
|
||||
- Product Manager
|
||||
- Business Analyst
|
||||
- Architect
|
||||
- Product Owner
|
||||
|
||||
description:
|
||||
type: string
|
||||
description: Detailed description of the agent's purpose and capabilities
|
||||
minLength: 20
|
||||
|
||||
customize:
|
||||
type: string
|
||||
description: Optional customization instructions for the agent's behavior and personality
|
||||
default: ""
|
||||
|
||||
startup:
|
||||
type: array
|
||||
description: Startup instructions executed when the agent is activated
|
||||
items:
|
||||
type: string
|
||||
examples:
|
||||
- - "Let the User Know what Tasks you can perform in a numbered list for user selection."
|
||||
- "Execute the Full Tasks as Selected."
|
||||
|
||||
dependencies:
|
||||
type: object
|
||||
description: Resources required by this agent
|
||||
required:
|
||||
- persona
|
||||
properties:
|
||||
persona:
|
||||
type: string
|
||||
description: Reference to the persona file (without extension) in bmad-core/personas/
|
||||
examples:
|
||||
- pm
|
||||
- analyst
|
||||
- architect
|
||||
- po
|
||||
- dev
|
||||
|
||||
tasks:
|
||||
type: array
|
||||
description: List of task files (without extension) from bmad-core/tasks/
|
||||
items:
|
||||
type: string
|
||||
pattern: ^[a-z][a-z0-9-]*$
|
||||
uniqueItems: true
|
||||
examples:
|
||||
- - create-doc-from-template
|
||||
- execute-checklist
|
||||
- correct-course
|
||||
|
||||
templates:
|
||||
type: array
|
||||
description: List of template files (without extension) from bmad-core/templates/
|
||||
items:
|
||||
type: string
|
||||
pattern: ^[a-z][a-z0-9-]*(-tmpl)?$
|
||||
uniqueItems: true
|
||||
examples:
|
||||
- - prd-tmpl
|
||||
- architecture-tmpl
|
||||
- story-tmpl
|
||||
|
||||
checklists:
|
||||
type: array
|
||||
description: List of checklist files (without extension) from bmad-core/checklists/
|
||||
items:
|
||||
type: string
|
||||
pattern: ^[a-z][a-z0-9-]*(-checklist)?$
|
||||
uniqueItems: true
|
||||
default: []
|
||||
examples:
|
||||
- - pm-checklist
|
||||
- architect-checklist
|
||||
- po-master-checklist
|
||||
|
||||
data:
|
||||
type: array
|
||||
description: List of data files (without extension) from bmad-core/data/
|
||||
items:
|
||||
type: string
|
||||
pattern: ^[a-z][a-z0-9-]*$
|
||||
uniqueItems: true
|
||||
default: []
|
||||
examples:
|
||||
- - technical-preferences
|
||||
- bmad-kb
|
||||
|
||||
utils:
|
||||
type: array
|
||||
description: List of utility files (without extension) from bmad-core/utils/
|
||||
items:
|
||||
type: string
|
||||
pattern: ^[a-z][a-z0-9-]*$
|
||||
uniqueItems: true
|
||||
default: []
|
||||
examples:
|
||||
- - template-format
|
||||
|
||||
environments:
|
||||
type: object
|
||||
description: Optional environment-specific configurations
|
||||
properties:
|
||||
web:
|
||||
type: object
|
||||
description: Web environment configuration
|
||||
properties:
|
||||
available:
|
||||
type: boolean
|
||||
description: Whether this agent is available in web environments
|
||||
default: true
|
||||
|
||||
description:
|
||||
type: string
|
||||
description: Web-specific description of the agent's capabilities
|
||||
|
||||
max_size:
|
||||
type: integer
|
||||
description: Maximum character size for web bundle
|
||||
minimum: 1000
|
||||
|
||||
ide:
|
||||
type: object
|
||||
description: IDE environment configuration
|
||||
properties:
|
||||
available:
|
||||
type: boolean
|
||||
description: Whether this agent is available in IDE environments
|
||||
default: true
|
||||
|
||||
description:
|
||||
type: string
|
||||
description: IDE-specific description of the agent's capabilities
|
||||
|
||||
max_size:
|
||||
type: integer
|
||||
description: Maximum character size for IDE agent
|
||||
minimum: 1000
|
||||
maximum: 20000
|
||||
|
||||
additionalProperties: false
|
||||
@@ -1,240 +0,0 @@
|
||||
# IDE Agent Schema Definition
|
||||
# This schema defines the structure for IDE agent configuration files (.ide.md)
|
||||
# IDE agents are self-contained, conversational agents with commands and specialized capabilities
|
||||
|
||||
type: object
|
||||
required:
|
||||
- role
|
||||
- file_references
|
||||
- persona
|
||||
- core_principles
|
||||
- critical_startup_operating_instructions
|
||||
- commands
|
||||
|
||||
properties:
|
||||
role:
|
||||
type: string
|
||||
description: "The title/role name of the IDE agent"
|
||||
pattern: "^.+ IDE Agent$"
|
||||
examples:
|
||||
- "Product Manager IDE Agent"
|
||||
- "Business Analyst IDE Agent"
|
||||
- "Full Stack Developer IDE Agent"
|
||||
|
||||
file_references:
|
||||
type: object
|
||||
description: "File paths and references used by the agent"
|
||||
required:
|
||||
- taskroot
|
||||
properties:
|
||||
taskroot:
|
||||
type: string
|
||||
description: "Root directory for task files"
|
||||
const: "bmad-core/tasks/"
|
||||
templates:
|
||||
type: string
|
||||
description: "Directory containing template files"
|
||||
const: "bmad-core/templates/"
|
||||
checklists:
|
||||
type: string
|
||||
description: "Directory containing checklists"
|
||||
const: "bmad-core/checklists/"
|
||||
default-template:
|
||||
type: string
|
||||
description: "Default template used by the agent"
|
||||
pattern: "^bmad-core/templates/.+$"
|
||||
additionalProperties: true
|
||||
|
||||
persona:
|
||||
type: object
|
||||
required:
|
||||
- name
|
||||
- role
|
||||
- identity
|
||||
- focus
|
||||
- style
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: "The agent's character name"
|
||||
examples: ["John", "Mary", "Sarah", "James", "Quinn", "Sally", "Winston", "Bob", "BMad"]
|
||||
role:
|
||||
type: string
|
||||
description: "The agent's professional role"
|
||||
identity:
|
||||
type: string
|
||||
description: "Extended description of the agent's specialization and expertise"
|
||||
minLength: 20
|
||||
focus:
|
||||
type: string
|
||||
description: "Primary objectives and responsibilities"
|
||||
minLength: 20
|
||||
style:
|
||||
type: string
|
||||
description: "Communication style and approach characteristics"
|
||||
minLength: 20
|
||||
|
||||
core_principles:
|
||||
type: array
|
||||
description: "Always-active principles that guide the agent's behavior"
|
||||
minItems: 3
|
||||
contains:
|
||||
type: object
|
||||
properties:
|
||||
principle:
|
||||
const: "Numbered Options Protocol"
|
||||
description:
|
||||
pattern: ".*numbered lists.*easy selection.*"
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- principle
|
||||
- description
|
||||
properties:
|
||||
principle:
|
||||
type: string
|
||||
description: "Brief principle title"
|
||||
pattern: "^[A-Z].*"
|
||||
description:
|
||||
type: string
|
||||
description: "Detailed explanation of the principle"
|
||||
minLength: 10
|
||||
|
||||
critical_startup_operating_instructions:
|
||||
type: array
|
||||
description: "Instructions executed when the agent starts"
|
||||
minItems: 1
|
||||
items:
|
||||
type: string
|
||||
description: "Individual startup instruction"
|
||||
allOf:
|
||||
- description: "First instruction must announce name/role and mention *help"
|
||||
contains:
|
||||
type: string
|
||||
pattern: ".*(announce|Announce).*(name|role).*\\*help.*"
|
||||
|
||||
commands:
|
||||
type: array
|
||||
description: "Available commands the agent can execute"
|
||||
minItems: 2
|
||||
contains:
|
||||
type: object
|
||||
properties:
|
||||
command:
|
||||
const: "*help"
|
||||
description:
|
||||
pattern: ".*numbered list.*selection.*"
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- command
|
||||
- description
|
||||
properties:
|
||||
command:
|
||||
type: string
|
||||
pattern: "^\\*[a-z][a-z0-9-]*( \\{[^}]+\\})?$"
|
||||
description: "Command syntax (must start with *)"
|
||||
description:
|
||||
type: string
|
||||
description: "What the command does"
|
||||
minLength: 10
|
||||
parameters:
|
||||
type: array
|
||||
description: "Optional parameters for the command"
|
||||
items:
|
||||
type: string
|
||||
pattern: "^[a-z][a-z0-9-]*$"
|
||||
|
||||
# Optional properties for agent-specific capabilities
|
||||
additionalProperties: true
|
||||
|
||||
# Additional optional sections that may appear
|
||||
definitions:
|
||||
optional_sections:
|
||||
expertise:
|
||||
type: object
|
||||
description: "Technical expertise areas (commonly used by architect agents)"
|
||||
additionalProperties:
|
||||
type: string
|
||||
|
||||
workflow:
|
||||
type: array
|
||||
description: "Step-by-step workflow description"
|
||||
items:
|
||||
type: string
|
||||
|
||||
task_execution_protocol:
|
||||
type: object
|
||||
description: "Detailed protocol for task execution (commonly used by dev agents)"
|
||||
additionalProperties: true
|
||||
|
||||
agent_transformation_protocol:
|
||||
type: object
|
||||
description: "Protocol for transforming into other agents (used by BMAD orchestrator)"
|
||||
additionalProperties: true
|
||||
|
||||
# Validation rules
|
||||
allOf:
|
||||
# Ensure common commands are properly formatted
|
||||
- if:
|
||||
properties:
|
||||
commands:
|
||||
contains:
|
||||
properties:
|
||||
command:
|
||||
const: "*chat-mode"
|
||||
then:
|
||||
properties:
|
||||
commands:
|
||||
contains:
|
||||
properties:
|
||||
description:
|
||||
pattern: ".*(conversational mode|advanced-elicitation).*"
|
||||
|
||||
# Ensure create commands reference tasks
|
||||
- if:
|
||||
properties:
|
||||
commands:
|
||||
contains:
|
||||
properties:
|
||||
command:
|
||||
pattern: "^\\*create-"
|
||||
then:
|
||||
properties:
|
||||
commands:
|
||||
contains:
|
||||
properties:
|
||||
description:
|
||||
pattern: ".*(task|create-doc).*"
|
||||
|
||||
# Examples showing valid IDE agent configurations
|
||||
examples:
|
||||
product_manager:
|
||||
role: "Product Manager IDE Agent"
|
||||
file_references:
|
||||
taskroot: "bmad-core/tasks/"
|
||||
templates: "bmad-core/templates/"
|
||||
default-template: "bmad-core/templates/prd-tmpl"
|
||||
persona:
|
||||
name: "John"
|
||||
role: "Product Manager"
|
||||
identity: "Product Manager specialized in document creation and product research"
|
||||
focus: "Creating Product Requirements Documents (PRDs) and other product documentation using templates"
|
||||
style: "Analytical, inquisitive, data-driven, user-focused, pragmatic"
|
||||
core_principles:
|
||||
- principle: "User-Focused Requirements"
|
||||
description: "All requirements must center on user needs and value"
|
||||
- principle: "Clear Success Metrics"
|
||||
description: "Define measurable outcomes for all features"
|
||||
- principle: "Numbered Options Protocol"
|
||||
description: "When presenting multiple options, use numbered lists for easy selection"
|
||||
critical_startup_operating_instructions:
|
||||
- "Announce your name and role, and let user know they can say *help at any time"
|
||||
commands:
|
||||
- command: "*help"
|
||||
description: "Show these available commands as a numbered list offering selection"
|
||||
- command: "*chat-mode"
|
||||
description: "Enter conversational mode with advanced-elicitation options"
|
||||
- command: "*create-doc {template-name}"
|
||||
description: "Run task create-doc with specified template"
|
||||
parameters: ["template-name"]
|
||||
@@ -1,156 +0,0 @@
|
||||
# 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
|
||||
|
||||
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: "Optional startup instructions (deprecated - moved to agent YAML)"
|
||||
pattern: "^## Critical Start.*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
|
||||
# Note: Startup instructions validation removed as they now reside in agent YAML files
|
||||
|
||||
# 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."
|
||||
# Note: startup instructions now defined in agent YAML file
|
||||
|
||||
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