BMAD-METHOD/.ai/orchestrator-state-schema.yml

670 lines
19 KiB
YAML

# BMAD Orchestrator State YAML Schema Definition
# This schema validates the structure and data types of .ai/orchestrator-state.md
type: object
required:
- session_metadata
- active_workflow_context
- memory_intelligence_state
properties:
# Session Metadata - Core identification data
session_metadata:
type: object
required: [session_id, created_timestamp, last_updated, bmad_version, project_name]
properties:
session_id:
type: string
pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$'
description: "UUID v4 format"
created_timestamp:
type: string
format: date-time
description: "ISO-8601 timestamp"
last_updated:
type: string
format: date-time
description: "ISO-8601 timestamp"
bmad_version:
type: string
pattern: '^v[0-9]+\.[0-9]+$'
description: "Version format like v3.0"
user_id:
type: string
minLength: 1
project_name:
type: string
minLength: 1
project_type:
type: string
enum: ["mvp", "feature", "brownfield", "greenfield"]
session_duration:
type: integer
minimum: 0
description: "Duration in minutes"
# Project Context Discovery - Brownfield analysis results
project_context_discovery:
type: object
properties:
discovery_status:
type: object
properties:
completed:
type: boolean
last_run:
type: string
format: date-time
confidence:
type: integer
minimum: 0
maximum: 100
project_analysis:
type: object
properties:
domain:
type: string
enum: ["web-app", "mobile", "api", "data-pipeline", "desktop", "embedded", "other"]
technology_stack:
type: array
items:
type: string
architecture_style:
type: string
enum: ["monolith", "microservices", "serverless", "hybrid"]
team_size_inference:
type: string
enum: ["1-5", "6-10", "11+"]
project_age:
type: string
enum: ["new", "established", "legacy"]
complexity_assessment:
type: string
enum: ["simple", "moderate", "complex", "enterprise"]
constraints:
type: object
properties:
technical:
type: array
items:
type: string
business:
type: array
items:
type: string
timeline:
type: string
enum: ["aggressive", "reasonable", "flexible"]
budget:
type: string
enum: ["startup", "corporate", "enterprise"]
# Active Workflow Context - Current operational state
active_workflow_context:
type: object
required: [current_state]
properties:
current_state:
type: object
required: [active_persona, current_phase]
properties:
active_persona:
type: string
enum: ["analyst", "pm", "architect", "design-architect", "po", "sm", "dev", "quality", "none"]
current_phase:
type: string
enum: ["analyst", "requirements", "architecture", "design", "development", "testing", "deployment"]
workflow_type:
type: string
enum: ["new-project-mvp", "feature-addition", "refactoring", "maintenance"]
last_task:
type: string
task_status:
type: string
enum: ["in-progress", "completed", "blocked", "pending"]
next_suggested:
type: string
epic_context:
type: object
properties:
current_epic:
type: string
epic_status:
type: string
enum: ["planning", "in-progress", "testing", "complete"]
epic_progress:
type: integer
minimum: 0
maximum: 100
story_context:
type: object
properties:
current_story:
type: string
story_status:
type: string
enum: ["draft", "approved", "in-progress", "review", "done"]
stories_completed:
type: integer
minimum: 0
stories_remaining:
type: integer
minimum: 0
# Decision Archaeology - Historical decision tracking
decision_archaeology:
type: object
properties:
major_decisions:
type: array
items:
type: object
required: [decision_id, timestamp, persona, decision]
properties:
decision_id:
type: string
pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$'
timestamp:
type: string
format: date-time
persona:
type: string
decision:
type: string
minLength: 1
rationale:
type: string
alternatives_considered:
type: array
items:
type: string
constraints:
type: array
items:
type: string
outcome:
type: string
enum: ["successful", "problematic", "unknown", "pending"]
confidence_level:
type: integer
minimum: 0
maximum: 100
reversibility:
type: string
enum: ["easy", "moderate", "difficult", "irreversible"]
pending_decisions:
type: array
items:
type: object
properties:
decision_topic:
type: string
urgency:
type: string
enum: ["high", "medium", "low"]
stakeholders:
type: array
items:
type: string
deadline:
type: string
format: date
blocking_items:
type: array
items:
type: string
# Memory Intelligence State - Memory system integration
memory_intelligence_state:
type: object
required: [memory_provider, memory_status]
properties:
memory_provider:
type: string
enum: ["openmemory-mcp", "file-based", "unavailable"]
memory_status:
type: string
enum: ["connected", "degraded", "offline"]
last_memory_sync:
type: string
format: date-time
pattern_recognition:
type: object
properties:
workflow_patterns:
type: array
items:
type: object
properties:
pattern_name:
type: string
confidence:
type: integer
minimum: 0
maximum: 100
usage_frequency:
type: integer
minimum: 0
success_rate:
type: number
minimum: 0
maximum: 100
decision_patterns:
type: array
items:
type: object
properties:
pattern_type:
type: string
enum: ["architecture", "tech-stack", "process"]
pattern_description:
type: string
effectiveness_score:
type: integer
minimum: 0
maximum: 100
anti_patterns_detected:
type: array
items:
type: object
properties:
pattern_name:
type: string
frequency:
type: integer
minimum: 0
severity:
type: string
enum: ["critical", "high", "medium", "low"]
last_occurrence:
type: string
format: date-time
proactive_intelligence:
type: object
properties:
insights_generated:
type: integer
minimum: 0
recommendations_active:
type: integer
minimum: 0
warnings_issued:
type: integer
minimum: 0
optimization_opportunities:
type: integer
minimum: 0
user_preferences:
type: object
properties:
communication_style:
type: string
enum: ["detailed", "concise", "interactive"]
workflow_style:
type: string
enum: ["systematic", "agile", "exploratory"]
documentation_preference:
type: string
enum: ["comprehensive", "minimal", "visual"]
feedback_style:
type: string
enum: ["direct", "collaborative", "supportive"]
confidence:
type: integer
minimum: 0
maximum: 100
# Quality Framework Integration - Quality gates and standards
quality_framework_integration:
type: object
properties:
quality_status:
type: object
properties:
quality_gates_active:
type: boolean
current_gate:
type: string
enum: ["pre-dev", "implementation", "completion", "none"]
gate_status:
type: string
enum: ["passed", "pending", "failed"]
udtm_analysis:
type: object
properties:
required_for_current_task:
type: boolean
last_completed:
type: [string, "null"]
format: date-time
completion_status:
type: string
enum: ["completed", "in-progress", "pending", "not-required"]
confidence_achieved:
type: integer
minimum: 0
maximum: 100
brotherhood_reviews:
type: object
properties:
pending_reviews:
type: integer
minimum: 0
completed_reviews:
type: integer
minimum: 0
review_effectiveness:
type: integer
minimum: 0
maximum: 100
anti_pattern_monitoring:
type: object
properties:
scanning_active:
type: boolean
violations_detected:
type: integer
minimum: 0
last_scan:
type: string
format: date-time
critical_violations:
type: integer
minimum: 0
# System Health Monitoring - Infrastructure status
system_health_monitoring:
type: object
properties:
system_health:
type: object
properties:
overall_status:
type: string
enum: ["healthy", "degraded", "critical"]
last_diagnostic:
type: string
format: date-time
configuration_health:
type: object
properties:
config_file_status:
type: string
enum: ["valid", "invalid", "missing"]
persona_files_status:
type: string
enum: ["all-present", "some-missing", "critical-missing"]
task_files_status:
type: string
enum: ["complete", "partial", "insufficient"]
performance_metrics:
type: object
properties:
average_response_time:
type: integer
minimum: 0
description: "Response time in milliseconds"
memory_usage:
type: integer
minimum: 0
maximum: 100
description: "Memory usage percentage"
cache_hit_rate:
type: integer
minimum: 0
maximum: 100
description: "Cache hit rate percentage"
error_frequency:
type: integer
minimum: 0
description: "Errors per hour"
resource_status:
type: object
properties:
available_personas:
type: integer
minimum: 0
available_tasks:
type: integer
minimum: 0
missing_resources:
type: array
items:
type: string
# Consultation & Collaboration - Multi-persona interactions
consultation_collaboration:
type: object
properties:
consultation_history:
type: array
items:
type: object
properties:
consultation_id:
type: string
pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$'
timestamp:
type: string
format: date-time
type:
type: string
enum: ["design-review", "technical-feasibility", "emergency", "product-strategy", "quality-assessment"]
participants:
type: array
items:
type: string
minItems: 2
duration:
type: integer
minimum: 0
description: "Duration in minutes"
outcome:
type: string
enum: ["consensus", "split-decision", "deferred"]
effectiveness_score:
type: integer
minimum: 0
maximum: 100
active_consultations:
type: array
items:
type: object
properties:
consultation_type:
type: string
status:
type: string
enum: ["scheduled", "in-progress", "completed"]
participants:
type: array
items:
type: string
collaboration_patterns:
type: object
properties:
most_effective_pairs:
type: array
items:
type: string
consultation_success_rate:
type: integer
minimum: 0
maximum: 100
average_resolution_time:
type: integer
minimum: 0
description: "Average resolution time in minutes"
# Session Continuity Data - Context preservation
session_continuity_data:
type: object
properties:
handoff_context:
type: object
properties:
last_handoff_from:
type: string
last_handoff_to:
type: string
handoff_timestamp:
type: string
format: date-time
context_preserved:
type: boolean
handoff_effectiveness:
type: integer
minimum: 0
maximum: 100
workflow_intelligence:
type: object
properties:
suggested_next_steps:
type: array
items:
type: string
predicted_blockers:
type: array
items:
type: string
optimization_opportunities:
type: array
items:
type: string
estimated_completion:
type: string
session_variables:
type: object
properties:
interaction_mode:
type: string
enum: ["standard", "yolo", "consultation", "diagnostic"]
verbosity_level:
type: string
enum: ["minimal", "standard", "detailed", "comprehensive"]
auto_save_enabled:
type: boolean
memory_enhancement_active:
type: boolean
quality_enforcement_active:
type: boolean
# Recent Activity Log - Operation history
recent_activity_log:
type: object
properties:
command_history:
type: array
maxItems: 100
items:
type: object
properties:
timestamp:
type: string
format: date-time
command:
type: string
persona:
type: string
status:
type: string
enum: ["success", "failure", "partial"]
duration:
type: integer
minimum: 0
description: "Duration in seconds"
output_summary:
type: string
insight_generation:
type: array
maxItems: 50
items:
type: object
properties:
timestamp:
type: string
format: date-time
insight_type:
type: string
enum: ["pattern", "warning", "optimization", "prediction"]
insight:
type: string
confidence:
type: integer
minimum: 0
maximum: 100
applied:
type: boolean
effectiveness:
type: integer
minimum: 0
maximum: 100
error_log_summary:
type: object
properties:
recent_errors:
type: integer
minimum: 0
critical_errors:
type: integer
minimum: 0
last_error:
type: string
format: date-time
recovery_success_rate:
type: integer
minimum: 0
maximum: 100
# Bootstrap Analysis Results - Brownfield project analysis
bootstrap_analysis_results:
type: object
properties:
bootstrap_status:
type: object
properties:
completed:
type: [boolean, string]
enum: [true, false, "partial"]
last_run:
type: string
format: date-time
analysis_confidence:
type: integer
minimum: 0
maximum: 100
project_archaeology:
type: object
properties:
decisions_extracted:
type: integer
minimum: 0
patterns_identified:
type: integer
minimum: 0
preferences_inferred:
type: integer
minimum: 0
technical_debt_assessed:
type: boolean
discovered_patterns:
type: object
properties:
successful_approaches:
type: array
items:
type: string
anti_patterns_found:
type: array
items:
type: string
optimization_opportunities:
type: array
items:
type: string
risk_factors:
type: array
items:
type: string
additionalProperties: false