---
slug: "Delegate"
name: "Delegate"
type: "Coordination"
layer: "Society"
ref: "Delegate#00fa"
sema_id: "sema:Delegate#mh:SHA-256:00fabbb5e33ec9b95dce20eb8c03e6dd3578e59b041dcf0d6a28b8908763ca45"
tags: ["Society","Coordination"]
updated: 2026-11-11
mindscape: "bootstrap"
index_url: https://mindscape.pages.dev/bootstrap/index.json
url: https://mindscape.pages.dev/bootstrap/Delegate/
related: ["Task","Break","Heartbeat","Work","Handoff"]
---

# Delegate

Work handoff: delegate → accept/refuse → heartbeat → result-or-failure

Layer: Society · Category: Coordination

## Mechanism

Delegation is a [Work](https://mindscape.pages.dev/bootstrap/Work.md)-distribution protocol over an existing [Task](https://mindscape.pages.dev/bootstrap/Task.md). 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](https://mindscape.pages.dev/bootstrap/Heartbeat.md). Completion returns a result. Failure invokes [Break](https://mindscape.pages.dev/bootstrap/Break.md); ownership returns to the delegator before retry, reassignment, or escalation.

## 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](https://mindscape.pages.dev/bootstrap/Task.md) invokes [Break](https://mindscape.pages.dev/bootstrap/Break.md) and returns ownership to the delegator before the next disposition.
- Exactly one owner per task.

## Preconditions

- Delegator owns the [Task](https://mindscape.pages.dev/bootstrap/Task.md) 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](https://mindscape.pages.dev/bootstrap/Break.md) and returns ownership to the delegator.
- On REFUSE, the delegator retains ownership and reassigns or escalates the [Task](https://mindscape.pages.dev/bootstrap/Task.md).

## 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).

## Builds on

- [Task](https://mindscape.pages.dev/bootstrap/Task.md) (Infrastructure; Accepts)
- [Break](https://mindscape.pages.dev/bootstrap/Break.md) (Infrastructure; Composes with)
- [Heartbeat](https://mindscape.pages.dev/bootstrap/Heartbeat.md) (Infrastructure; Composes with)
- [Work](https://mindscape.pages.dev/bootstrap/Work.md) (Infrastructure; References)

## Used by

- [Handoff](https://mindscape.pages.dev/bootstrap/Handoff.md) (Society; Composes with)

## Identity

- Sema ID: `sema:Delegate#mh:SHA-256:00fabbb5e33ec9b95dce20eb8c03e6dd3578e59b041dcf0d6a28b8908763ca45`
- Ref: `Delegate#00fa`
- 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`

## Links

- [Pattern page](https://mindscape.pages.dev/bootstrap/Delegate/)
- [View in the interactive graph](https://mindscape.pages.dev/bootstrap/#Delegate)
- [JSON](https://mindscape.pages.dev/bootstrap/Delegate.json)
- [Index of all patterns](https://mindscape.pages.dev/bootstrap/index.json)
