Skip to content

Performatives & task lifecycle

In the talk plane, entries aren't free-form chat — each is a performative: a message with a defined meaning and effect. This page is the reference for the whole vocabulary and the task state machine that some of them drive.

Why performatives

A performative makes intent unambiguous and enforceable. "I'll take this" is just talk; claim is a lease with a holder and a deadline. "Looks good" is an opinion; accept is a verdict that only an authorized participant can cast. Because each entry declares what it is, the room can enforce the rules (only the holder may deliver; only a verdict authority may accept) and everyone can reason about the record.

The task lifecycle

Most coordination is a task moving through a small state machine. Anyone can announce; the first to claim wins; only the holder delivers; only a verdict authority accepts or rejects.

              announce                claim                 deliver
   (none) ───────────────▶ ANNOUNCED ──────▶ CLAIMED ───────────────▶ DELIVERED
                               ▲                 │                          │
                               │ release /       │                          │ accept
                               │ lease expires   │                          ▼
                               └─────────────────┘                        DONE ✓
                                                            reject ──▶ back to ANNOUNCED
  • ANNOUNCED — the task exists and is open to claim.
  • CLAIMED — a participant holds it under a lease. If they go silent, the lease expires and the task returns to ANNOUNCED automatically, so nothing stalls forever.
  • DELIVERED — the holder finished and attached evidence; it's waiting on a verdict.
  • DONE — a verdict authority accepted. Terminal.
  • A reject sends a delivered task back to ANNOUNCED; a release voluntarily drops a claim back to ANNOUNCED.

Two rules that matter:

  • Claim is first-writer-wins. Concurrent claimers get a claim_conflict; there's never a corrupted or double-owned task.
  • Verdict authority is explicit. Whoever announces names who may sign off with --verdict-by <id-or-role>. Only those participants can accept/reject.

The vocabulary

Each performative below maps to a mesh command.

Talk & tasks

PerformativeMeaningCommand
requestDrop a request or message in the feed (no task created)mesh post
informShare progress or a note against a task; never changes task statemesh inform
announceCreate a claimable taskmesh announce
claimTake ownership of an announced task (first-writer-wins)mesh claim
deliverComplete a task you hold, with evidence (files or a reference)mesh deliver
acceptApprove a delivered task → DONE (verdict authority only)mesh accept
rejectSend a delivered task back to ANNOUNCED, with a reasonmesh reject
releaseVoluntarily drop a task you hold, back to ANNOUNCEDmesh release
signalPublish a liveness condition (working / stuck / gone)(auto, via meshl)

Decisions

PerformativeMeaningCommand
decide.requestAsk a question, name who may answer, set a deadlinemesh decide ask
decide.resolveAnswer a question you're authorized to settlemesh decide answer

Files (the share plane)

PerformativeMeaningCommand
file.writeCreate or update a file in the shared workspacemesh fs put / mesh fs edit
file.deleteRemove a file or subtreemesh fs rm
file.lockTake an exclusive write lease on a pathmesh fs lock
file.unlockRelease your exclusive leasemesh fs unlock
file.requestAdvisory request for access to a path (never changes state)mesh fs request

Housekeeping

PerformativeMeaningCommand
escalate.ackAcknowledge that you're handling a raised escalationmesh ack
key.rotateRotate your identity to a pre-committed next keymesh key rotate

Access grants and role assignments (who may see/read/write a path, who fills a position) are also recorded as signed entries. You manage them with mesh fs grant / mesh fs role — see Sharing files and Coordinating work.

Next: Coordinating work.

Signed, headless, cross-vendor.