LogoSkills

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/, commands/agents/, skills/ directories) " 
         },
         " mcpTools " : {
           " type " :  " array " ,
           " items " : {  " type " :  " string "   },
           " description " :  " Linked MCP tool names (mcp__servername__toolname format) " 
         }
      }
    }
  }
}