{
  "handle": "OrchestrationLoop",
  "mechanism": "A strict lifecycle for high-stakes problem solving implementing {{workflow}}. It enforces a sequence: 1. {{request_framing}} (Frame Problem → {{frame_spec}}), 2. {{manifest_planning}} (Architect Solution → {{execution_manifest}}), 3. {{rollout}} (Execute safely → {{rollout_manifest}}). Each transition is mediated by a typed artifact that must pass a non-compensatory {{accept_spec}}. The loop can iterate: failed rollouts trigger re-planning, failed plans trigger re-interpretation. At seams that cross trust boundaries (cross-organizational or commons-facing), feedback returning through each stage passes through a {{receptivity_gate}} that validates any FailureTrace before the upstream stage absorbs the rejection.",
  "gloss": "Interpret-Plan-Rollout Lifecycle",
  "failure_modes": [
    "Bureaucracy: Blindly following the full lifecycle for trivial tasks (using a cannon for a mosquito).",
    "Loop Stalling: Getting stuck in Plan/Rollout cycles without shipping.",
    "Artifact Rejection Cascade: Overly strict AcceptSpecs repeatedly send work to earlier phases until `iteration_limit` is exhausted.",
    "Seam Leakage: Untyped data bypasses the artifact boundaries."
  ],
  "invariants": [
    "Artifact Mediation: All phase transitions MUST pass through typed artifacts.",
    "Non-Compensatory Gates: Each AcceptSpec is binary pass/fail.",
    "Bounded Iteration: Within one run, the loop MUST NOT re-enter an earlier phase more than `iteration_limit` times; the next failed gate escalates."
  ],
  "parameters": [
    {
      "name": "iteration_limit",
      "type": "PositiveInteger",
      "range": "unspecified",
      "description": "Maximum number of failed-gate re-entries within one run before escalation"
    }
  ],
  "_meta": {
    "tier": 2,
    "ring": 1,
    "related": [
      "LayeredCheck"
    ],
    "supersedes": [
      "sema:OrchestrationLoop#mh:SHA-256:fd5ef68be3fdf8bec5e5bb4544153e5029e22626212e2267edeb26881ce9a94a",
      "sema:OrchestrationLoop#mh:SHA-256:f6f4621352b2120682c035e18bf79704abfaea356a6a3e70221dbefde01adb2e",
      "sema:OrchestrationLoop#mh:SHA-256:2d637ac17bf4488368e941ca8e754442b7c08e6118a8f29e546ff9d2a1d6e374",
      "sema:OrchestrationLoop#mh:SHA-256:119060a70a92ceca5b05c02983b7711ca7f3079df78b22d60ecde319bf7600cc",
      "sema:OrchestrationLoop#mh:SHA-256:56675014ff21d45be3f8f0343756a79a8051dbedffdeb4e749942105d548f70a"
    ],
    "path": [
      "Society",
      "Protocols"
    ]
  },
  "sema_id": "sema:OrchestrationLoop#mh:SHA-256:e8ba5873bab7bc8a60c971462d4c5a19d86ecf67c4526a516242e20aa388762e",
  "sema_ref": "OrchestrationLoop#e8ba",
  "sema_stub": "e8ba",
  "signature": [
    "Workflow(Rollout)"
  ],
  "dependencies": {
    "composes_with": {
      "manifest_planning": "sema:ManifestPlanning#mh:SHA-256:8bd4fc5ad5c604cd4814a96d23565a07d890e78800281c81abdfeafe02473896",
      "request_framing": "sema:RequestFraming#mh:SHA-256:2280a35647a93cf3f8b03ee5fb63f8c2ec6faf19ec9627e1d9144ffa231f551e",
      "rollout": "sema:Rollout#mh:SHA-256:ea8c8bdf3303e53d240d6393a776de33ff7c0980a269539d6eb22a8b35e430b4"
    },
    "references": {
      "accept_spec": "sema:AcceptSpec#mh:SHA-256:37fa28b93d390f8c8eb171eaab54ff4f9e57a95ef67af024422f823545a291cc",
      "execution_manifest": "sema:ExecutionManifest#mh:SHA-256:fed57d4adcd6d9d1f82c57c3d22724485171672d77a34fdfaf7338a430f5f0b1",
      "frame_spec": "sema:FrameSpec#mh:SHA-256:3c202cc3416eadb2215857b542e4fc54660d5253fca9c2d42cb999929ad18c42",
      "receptivity_gate": "sema:ReceptivityGate#mh:SHA-256:0db58374b9595734af888df1f152aa802e6da20fb24e2786e44f1837f2a4f4fa",
      "rollout_manifest": "sema:RolloutManifest#mh:SHA-256:248df60c0a8d3d0e73d0dc29ee287c233c5761d610af135bc3baf96e1e556e10",
      "workflow": "sema:Workflow#mh:SHA-256:808de72d3285e4ac086b85bfe4ba028ad2904b4088f7a22b60259ff8d8ffe057"
    }
  },
  "sema_layer": "Society",
  "sema_category": "Protocols",
  "used_by": {}
}
