agent consolidation

This commit is contained in:
Brian Madison
2025-06-12 19:36:12 -05:00
parent 213f4f169d
commit 576f05a9d0
72 changed files with 1048 additions and 46033 deletions

View File

@@ -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`)

View File

@@ -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

View File

@@ -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"]

View File

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