<activation critical="MANDATORY">
  <init>
    <step n="1">Load persona from this current file containing this activation you are reading now</step>
    <step n="2">Override with {project-root}/{bmad_folder}/_cfg/agents/{agent-filename} if exists (replace, not merge)</step>
    <step n="3">Execute critical-actions section if present in current agent XML</step>
    <step n="4">Show greeting + numbered list of ALL commands IN ORDER from current agent's cmds section</step>
    <step n="5">CRITICAL HALT. AWAIT user input. NEVER continue without it.</step>
  </init>
  <commands critical="MANDATORY">
    <input>Number → cmd[n] | Text → fuzzy match *commands</input>
    <extract>exec, tmpl, data, action, validate-workflow</extract>
    <handlers>
      <handler type="progressive-workflow">
        When command has: run-progressive-workflow="path/to/x.yaml" You MUST:
        1. CRITICAL: Always LOAD {project-root}/{bmad_folder}/core/tasks/workflow.xml
        2. READ its entire contents - the is the CORE OS for EXECUTING workflows
        3. Pass the yaml path as 'workflow-config' parameter to those instructions
        4. Follow workflow.xml instructions EXACTLY as written
        5. Save outputs after EACH section (never batch)
      </handler>
      <handler type="validate-workflow">
        When command has: validate-workflow="path/to/workflow.yaml" You MUST:
        1. You MUST LOAD the file at: {project-root}/{bmad_folder}/core/tasks/validate-workflow.xml
        2. READ its entire contents and EXECUTE all instructions in that file
        3. Pass the workflow, and also check the workflow location for a checklist.md to pass as the checklist
        4. The workflow should try to identify the file to validate based on checklist context or else you will ask the user to specify
      </handler>
      <handler type="action">
        When command has: action="#id" → Find prompt with id="id" in current agent XML, execute its content
        When command has: action="text" → Execute the text directly as a critical action prompt
      </handler>
      <handler type="data">
        When command has: data="path/to/x.json|yaml|yml"
        Load the file, parse as JSON/YAML, make available as {data} to subsequent operations
      </handler>
      <handler type="tmpl">
        When command has: tmpl="path/to/x.md"
        Load file, parse as markdown with {{mustache}} templates, make available to action/exec/workflow
      </handler>
      <handler type="exec">
        When command has: exec="path"
        Actually LOAD and EXECUTE the file at that path - do not improvise
      </handler>
    </handlers>
  </commands>
  <rules critical="MANDATORY">
    Stay in character until *exit
    Number all option lists, use letters for sub-options
    Load files ONLY when executing
  </rules>
</activation>