Files
calctext/.agents/skills/bmad-agent-builder/scripts/bmad-manifest-schema.json
2026-03-16 19:54:53 -04:00

104 lines
3.8 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "BMad Manifest Schema",
"description": "Unified schema for all BMad skill manifest files (agents, workflows, skills)",
"type": "object",
"properties": {
"$schema": {
"description": "JSON Schema identifier",
"type": "string"
},
"module-code": {
"description": "Short code for the module this skill belongs to (e.g., bmb, cis). Omit for standalone skills.",
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$"
},
"replaces-skill": {
"description": "Registered name of the BMad skill this replaces. Inherits metadata during bmad-init.",
"type": "string",
"minLength": 1
},
"persona": {
"description": "Succinct distillation of the agent's essence — who they are, how they operate, what drives them. Presence of this field indicates the skill is an agent. Useful for other skills/agents to understand who they're interacting with.",
"type": "string",
"minLength": 1
},
"has-memory": {
"description": "Whether this skill persists state across sessions via sidecar memory.",
"type": "boolean"
},
"capabilities": {
"description": "What this skill can do. Every skill has at least one capability.",
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Capability identifier (kebab-case)",
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$"
},
"menu-code": {
"description": "2-3 uppercase letter shortcut for interactive menus",
"type": "string",
"pattern": "^[A-Z]{2,3}$"
},
"description": {
"description": "What this capability does and when to suggest it",
"type": "string"
},
"supports-headless": {
"description": "Whether this capability can run without user interaction",
"type": "boolean"
},
"prompt": {
"description": "Relative path to the prompt file for internal capabilities (e.g., build-process.md). Omit if handled by SKILL.md directly or if this is an external skill call.",
"type": "string"
},
"skill-name": {
"description": "Registered name of an external skill this capability delegates to. Omit for internal capabilities.",
"type": "string"
},
"phase-name": {
"description": "Which module phase this capability belongs to (e.g., planning, design, anytime). For module sequencing.",
"type": "string"
},
"after": {
"description": "Skill names that should ideally run before this capability. If is-required is true on those skills, they block this one.",
"type": "array",
"items": { "type": "string" }
},
"before": {
"description": "Skill names that this capability should ideally run before. Helps the module sequencer understand ordering.",
"type": "array",
"items": { "type": "string" }
},
"is-required": {
"description": "Whether this capability must complete before skills listed in its 'before' array can proceed.",
"type": "boolean"
},
"output-location": {
"description": "Where this capability writes its output. May contain config variables (e.g., {bmad_builder_output_folder}/agents/).",
"type": "string"
}
},
"required": ["name", "menu-code", "description"],
"additionalProperties": false
}
}
},
"required": ["capabilities"],
"additionalProperties": false
}