messaging-the-human · git:20260830.72d9747 · 2026-08-30 · sha256 754e07aebd5b0325
messaging-the-human git:20260830.72d9747A
Immutable. This exact content is served forever at /api/v1/blob/754e07aebd5b0325.
---
name: messaging-the-human
description: "Use when a human decision, access grant, external action, or escalation must survive the operator's absence, or when an orchestrator or PM has a judgment-worthy update for the operator."
metadata:
cli_surfaces_referenced:
- gateway human add
- gateway human list
- queue block
- queue handoff
- queue transitions
- send
openrig:
stage: provisional
audience: all agents
sibling_skills:
- queue-handoff
- human-in-the-loop
- openrig-user
---
# Messaging the Human
The human is an addressable participant, but their attention is scarce and they
may not be at a terminal. Anything that must survive their absence needs a
durable queue row; the gateway turns the human blocker on that row into the
external notification.
Any seat may contact the human directly for a real escalation. Orchestrators
and product managers may also send updates they judge the human would want to
know. Do not add a routing intermediary merely because of your role.
## The supported route
First discover the registered human identity. Never invent or remember an
address:
```bash
rig gateway human list --json
```
Use the returned `humans[].address`. If no unambiguous registered human is
returned, stop: registration is lifecycle work (`rig gateway human add
--help`), not an address to guess.
Keep the work row owned by the agent who must resume it, then park that row on
the registered human:
```bash
rig queue block <qitem-id> --on <registered-human-address> \
--summary "<decision owed>" \
--evidence-ref "<durable artifact the human should judge>" \
--continuation "<what resumes after the answer>"
```
The gateway resolves the registered human to the configured connector, sends
the Slack notification, and records its receipt on the same row. Confirm the
effect from the append-only history:
```bash
rig queue transitions <qitem-id>
```
The row is the obligation and the audit trail. Slack is the attention leg. A
reply resolves the durable blocker and wakes the row owner; it does not create
a second private work stream.
## When to use it
Escalate directly when only the human can supply the missing capability:
- a decision or irreversible judgment only they own;
- access, credentials, authority, or capacity only they can grant;
- an external action only they can perform;
- a security-class or provider/model-fallback event they need to know about.
Orchestrators and product managers may additionally send meaningful milestone,
environment, or completion updates. Prefer signal over routine narration.
## Boundaries
- `rig send` sends text to an agent's terminal. It is not the Slack route and
does not create a durable human obligation.
- An unregistered or ambiguous human identity must fail loudly. Register or
repair the identity; never downgrade it to an agent seat or a guessed
`@external` address.
- Agent-to-agent work that needs closure uses `rig queue handoff`, not this
human-blocker path.
- Deferred work that is not imminent belongs in the mission workspace, not on
the queue.
## Writing the escalation
Lead with what is blocked and the exact decision or action needed. Point at the
durable evidence instead of pasting a second copy, and name the continuation so
the system can resume the right work when the answer arrives.