BMAD Configuration Schema
{
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "bmad-config-schema",
"title": "BMAD Configuration Schema",
"description": "BMAD framework configuration schema",
"type": "object",
"properties": {
"version": {
"type": "string",
"description": "Configuration file version"
},
"description": {
"type": "string",
"description": "Configuration file description"
},
"enabled": {
"type": "boolean",
"description": "Whether BMAD is enabled",
"default": true
},
"defaultMode": {
"type": "string",
"enum": ["optional", "mandatory", "disabled"],
"description": "Default BMAD mode",
"default": "optional"
},
"gates": {
"type": "object",
"description": "Phase gate configuration",
"properties": {
"analysis": { "$ref": "#/definitions/gateConfig" },
"planning": { "$ref": "#/definitions/gateConfig" },
"solutioning": { "$ref": "#/definitions/solutioningGateConfig" },
"implementation": { "$ref": "#/definitions/implementationGateConfig" }
}
},
"personas": {
"type": "object",
"description": "Persona configuration",
"additionalProperties": { "$ref": "#/definitions/personaConfig" }
},
"emergency": {
"type": "object",
"description": "Emergency mode configuration",
"properties": {
"allowBypass": { "type": "boolean", "default": true },
"requireApproval": { "type": "boolean", "default": true },
"bypassableGates": {
"type": "array",
"items": { "type": "string" },
"default": ["analysis", "planning"]
},
"mandatoryGates": {
"type": "array",
"items": { "type": "string" },
"default": ["implementation"]
},
"postReviewHours": { "type": "integer", "default": 48, "description": "Required post-review hours after emergency mode" }
}
},
"parallelExecution": {
"type": "object",
"description": "Parallel execution configuration",
"properties": {
"enabled": { "type": "boolean", "default": true },
"maxConcurrency": { "type": "integer", "minimum": 1, "default": 2 },
"defaultPattern": { "type": "string", "enum": ["fan-out", "sequential"], "default": "fan-out" }
}
},
"feedback": {
"type": "object",
"description": "Feedback configuration",
"properties": {
"maxRetries": { "type": "integer", "minimum": 1, "default": 3, "description": "Maximum retry count (prevents infinite loops)" },
"autoFix": {
"type": "object",
"properties": {
"enabled": { "type": "boolean", "default": true },
"categories": {
"type": "array",
"items": { "type": "string" },
"default": ["type_safety", "code_style", "lint_rules"]
}
}
}
}
}
},
"definitions": {
"gateConfig": {
"type": "object",
"properties": {
"enabled": { "type": "boolean", "default": true },
"mandatory": { "type": "boolean", "default": true },
"persona": { "type": "string" },
"checks": { "type": "array", "items": { "type": "string" } }
}
},
"solutioningGateConfig": {
"type": "object",
"properties": {
"enabled": { "type": "boolean" },
"mandatory": { "type": "boolean" },
"parallelPersonas": { "type": "array", "items": { "type": "string" } },
"checks": { "type": "object" }
}
},
"implementationGateConfig": {
"type": "object",
"properties": {
"enabled": { "type": "boolean" },
"mandatory": { "type": "boolean" },
"personas": { "type": "array", "items": { "type": "string" } },
"subGates": { "type": "object" }
}
},
"personaConfig": {
"type": "object",
"properties": {
"enabled": { "type": "boolean", "default": true },
"phase": { "type": "string" },
"linkedAgents": {
"type": "array",
"items": { "type": "string" },
"description": "Linked agent or skill paths (agents/, agents/, skills/ directories)"
},
"mcpTools": {
"type": "array",
"items": { "type": "string" },
"description": "Linked MCP tool names (mcp__servername__toolname format)"
}
}
}
}
}