{
  "handle": "Delegate",
  "mechanism": "Delegation is a {{work}}-distribution protocol over an existing {{task}}. The delegator sends DELEGATE with the task and its scope; the delegatee replies ACCEPT or REFUSE. Until ACCEPT, the delegator retains ownership. On REFUSE, the delegator reassigns or escalates. On ACCEPT, ownership transfers to the delegatee, which reports PROGRESS via {{heartbeat}}. Completion returns a result. Failure invokes {{break}}; ownership returns to the delegator before retry, reassignment, or escalation.",
  "gloss": "Work handoff: delegate → accept/refuse → heartbeat → result-or-failure",
  "failure_modes": [
    "No response: The candidate never replies; the delegator retains the task, but work stalls until an external timeout or reassignment policy acts.",
    "Capability mismatch (assigned to incapable agent—fails late).",
    "Delegatee disappears (no progress updates—need timeout).",
    "Circular delegation: A task returns to an earlier owner in its delegation chain.",
    "Overload (one agent accepts everything—need load awareness).",
    "Progress lies (reports complete when not—need verification)."
  ],
  "invariants": [
    "Delegation is a request, not a command: it is accepted or refused.",
    "Ownership remains with the delegator until ACCEPT; REFUSE transfers nothing and triggers reassignment or escalation.",
    "The delegatee reports progress; silence is not progress.",
    "A failed accepted {{task}} invokes {{break}} and returns ownership to the delegator before the next disposition.",
    "Exactly one owner per task."
  ],
  "preconditions": [
    "Delegator owns the {{task}} and has authority to delegate it.",
    "Delegatee is addressable.",
    "Scope of delegation defined."
  ],
  "postconditions": [
    "On ACCEPT, ownership transfers to exactly one delegatee; completion returns a result, while failure invokes {{break}} and returns ownership to the delegator.",
    "On REFUSE, the delegator retains ownership and reassigns or escalates the {{task}}."
  ],
  "_meta": {
    "tier": 2,
    "related": [
      "Handoff"
    ],
    "ring": 1,
    "supersedes": [
      "sema:Delegate#mh:SHA-256:e557d8268697e26743dc5d2cf191741e47b7bef0d986e8dbff3d86e5e9d9486e",
      "sema:Delegate#mh:SHA-256:7e2aa7273061011208a1e1d26d4d616deed5499d29d5275ff3f09dc878e8bbc0",
      "sema:Delegate#mh:SHA-256:78a8da9a060a24531bde6d3673a4bfc3123b72adce8ff4e95e244937715f150d",
      "sema:Delegate#mh:SHA-256:ec0575e98f94ecb05d6ead258b92737219d2d9c091164e5d86a380783b286b7b"
    ],
    "path": [
      "Society",
      "Coordination"
    ]
  },
  "sema_id": "sema:Delegate#mh:SHA-256:00fabbb5e33ec9b95dce20eb8c03e6dd3578e59b041dcf0d6a28b8908763ca45",
  "sema_ref": "Delegate#00fa",
  "sema_stub": "00fa",
  "dependencies": {
    "accepts": {
      "task": "sema:Task#mh:SHA-256:a85010f508f85055170c396c8fa390125c1206888c565ac10651f3969a339f8d"
    },
    "composes_with": {
      "break": "sema:Break#mh:SHA-256:5003e128ac02e7835d2094d72dc929ce4c96819b56ef167c2ca8da9f16aa402a",
      "heartbeat": "sema:Heartbeat#mh:SHA-256:c5dfefe91d5460716f19e001290b47c3853173b17f0b6914793f6f51a41903ef"
    },
    "references": {
      "work": "sema:Work#mh:SHA-256:f0c3ba2d663c900244d2ed814ed3682c56a867aa32bc3c4dfd1b19fe311aa2c6"
    }
  },
  "sema_layer": "Society",
  "sema_category": "Coordination",
  "used_by": {
    "composes_with": {
      "Handoff": "sema:Handoff#mh:SHA-256:1323eea000780c4fc715bcc90b5ea28d6353c780ad561e86aeff723855650ab5"
    }
  }
}
