Files
BMAD-METHOD/bmad-core/schemas/ide-agent-schema.yml

240 lines
7.0 KiB
YAML

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