<scenario schemaVersion="3" id="project_generate" title="Orchestrate reviewed project generation">
  <inputs><input name="name" required="true"/><input name="kind" required="true"/><input name="prd" required="true"/><input name="observations" default="No runtime observations supplied. Do not claim execution."/></inputs>
  <systemPrompt>Run the declared generation pipeline. Every writer and reviewer is a fresh nested subagent. Host operations own staging, validation and publication. A review is an assessment, not evidence of executing the generated application.</systemPrompt>
  <tools><allow name="project_prepare_operation"/><allow name="project_store_operation"/><allow name="project_assemble_operation"/><allow name="project_inspect_operation"/><allow name="project_validate_operation"/><allow name="project_publish_operation"/></tools>
  <steps>
    <run scenario="project_design" result="design"><input name="name" value="{{name}}"/><input name="kind" value="{{kind}}"/><input name="prd" value="{{prd}}"/></run>
    <tool name="project_prepare_operation" result="prepared"><input name="name" value="{{name}}"/><input name="kind" value="{{kind}}"/><input name="prd" value="{{prd}}"/><input name="architecture" value="{{design.architecture}}"/></tool>
    <foreach items="prepared.tasks" item="task" collect="stored" result="components" limit="20" attempts="20">
      <run scenario="project_component" result="draft"><input name="kind" value="{{kind}}"/><input name="prd" value="{{prd}}"/><input name="contract" value="{{prepared.contract}}"/><input name="task" value="{{task}}"/></run>
      <run scenario="project_review_component" result="reviewed"><input name="kind" value="{{kind}}"/><input name="prd" value="{{prd}}"/><input name="contract" value="{{prepared.contract}}"/><input name="task" value="{{task}}"/><input name="draft" value="{{draft}}"/></run>
      <tool name="project_store_operation" result="stored"><input name="generation_id" value="{{prepared.generation_id}}"/><input name="task_id" value="{{task.id}}"/><input name="content" value="{{reviewed}}"/></tool>
    </foreach>
    <tool name="project_assemble_operation" result="assembled"><input name="generation_id" value="{{prepared.generation_id}}"/></tool>
    <run scenario="project_review_project" result="acceptance"><input name="kind" value="{{kind}}"/><input name="prd" value="{{prd}}"/><input name="bundle" value="{{assembled.display}}"/><input name="diagnostics" value="{{observations}}"/></run>
    <run scenario="project_integrate" result="integrated"><input name="kind" value="{{kind}}"/><input name="prd" value="{{prd}}"/><input name="architecture" value="{{design.architecture}}"/><input name="bundle" value="{{assembled.display}}"/><input name="diagnostics" value="{{acceptance}}"/></run>
    <tool name="project_validate_operation" result="validation"><input name="generation_id" value="{{prepared.generation_id}}"/><input name="bundle" value="{{integrated}}"/></tool>
    <run scenario="project_check" result="quality"><input name="generation_id" value="{{prepared.generation_id}}"/><input name="kind" value="{{kind}}"/><input name="prd" value="{{prd}}"/><input name="observations" value="{{observations}}"/></run>
    <if input="quality.passed" equals="false">
      <then>
        <foreach items="prepared.repairs" item="attempt" collect="rechecked" result="repairs" limit="1" attempts="3" successProperty="passed">
          <tool name="project_inspect_operation" result="current"><input name="generation_id" value="{{prepared.generation_id}}"/></tool>
          <run scenario="project_integrate" result="repaired"><input name="kind" value="{{kind}}"/><input name="prd" value="{{prd}}"/><input name="architecture" value="{{design.architecture}}"/><input name="bundle" value="{{current.display}}"/><input name="diagnostics" value="{{current.diagnostics}}"/></run>
          <tool name="project_validate_operation" result="repairValidation"><input name="generation_id" value="{{prepared.generation_id}}"/><input name="bundle" value="{{repaired}}"/></tool>
          <run scenario="project_check" result="rechecked"><input name="generation_id" value="{{prepared.generation_id}}"/><input name="kind" value="{{kind}}"/><input name="prd" value="{{prd}}"/><input name="observations" value="{{observations}}"/></run>
        </foreach>
      </then>
    </if>
    <tool name="project_publish_operation" result="receipt"><input name="generation_id" value="{{prepared.generation_id}}"/></tool>
  </steps>
  <exit mode="copy">Return only the verified publication receipt. Pending approval stops the entire parent tree. Failed validation must never be described as completed generation.</exit>
</scenario>
