Process one inbound peer message at a time without silent drop, escalation leak, or loop noise.
One message, one verb, one action, one visible close. The runtime delivers; you decide and act.
The inbox skill governs triage. Downstream skills govern the work that triage selects.
Inbox processing has five parts:
Message — the one inbound item delivered by the runtime
Verb — Delete, Defer, Delegate, or Do
Rationale — one sentence saying why that verb was chosen
Closing artifact — the artifact that makes the message visibly handled
Downstream skill — the skill loaded if the message requires further work
❌ Treat the message as "noted" without deciding what it is
✅ Name the verb, state the rationale, and leave a visible close
The runtime delivers one message. You assign one verb. That verb determines one action. That action must leave one visible closing artifact.
Inbox processing fails through:
Silent drop — message read but never closed
Escalation leak — operator asked to decide something already in the agent's scope
Stale backlog — messages sit untriaged across sessions
Loop noise — duplicates or rejected copies are handled as if they were new work
Verb drift — more than one verb implied, or no verb stated at all
❌ "Interesting message from Pi, noted"
✅ "Do — Pi asked where to track feature requests. Answerable now. Responding."
Your repo is your mailbox. The runtime delivers exactly one message at a time via state/input.md. You process that one message. You do not loop, poll, or pick from the queue yourself.
threads/mail/inbox/ and choose messages manuallystate/input.md; if it is absent, there is no inbox work# state/input.md
---