| name | mpi-message |
| description | MPI workflow pack - Send or manage same-filesystem async coordination messages between agents. Use for tell another agent, read inbox, reply, acknowledge, resolve, or explicit peer workspace messages. |
mpi-message Skill
Purpose
Create and manage durable MPI coordination messages under
.agents/mpi-kanban/state/messages/. Use this when the user asks to tell
another agent, read an inbox, acknowledge a message, reply to a message,
resolve a message, or route a message to a known peer workspace.
Messages are async and same-filesystem only. This skill does not interrupt
running agents, start a daemon, run a broker, scan for recipients globally,
broadcast across projects, or deliver messages to remote machines.
Shared References
Read these references as needed:
${CLAUDE_PLUGIN_ROOT}/skills/mpi-lib/coordination-ops/messages.md - message root, send, inbox,
acknowledge, reply, resolve, and peer-route operations
${CLAUDE_PLUGIN_ROOT}/skills/mpi-lib/coordination-ops/lifecycle.md - state root and file-claim
safety rules
${CLAUDE_PLUGIN_ROOT}/skills/mpi-lib/coordination-ops/statuses.md - message statuses and
recipient selectors
${CLAUDE_PLUGIN_ROOT}/skills/mpi-lib/docs/coordination/schemas.md - message JSON examples
${CLAUDE_PLUGIN_ROOT}/skills/mpi-lib/docs/coordination/state-layout.md - state layout and
workspace scope
Invocation
Use the installed Agent Skills invocation for this agent, or ask naturally:
mpi-message tell <agent/session/role/task/file/user> ...
mpi-message inbox
mpi-message read <message-id>
mpi-message ack <message-id>
mpi-message reply <message-id> ...
mpi-message resolve <message-id> ...
mpi-message route <peer-root> ...
Pre-conditions
- Resolve
${CLAUDE_PLUGIN_ROOT}/skills/mpi-lib.
- Read
${CLAUDE_PLUGIN_ROOT}/skills/mpi-lib/coordination-ops/messages.md.
- Read
.agents/mpi-kanban/state/index.json when it exists. If it is missing
and the user only wants to read the inbox, report that no MPI coordination
inbox exists yet.
- For send, acknowledge, reply, resolve, or peer routing, use the shared
ensureMessageRoot() flow. Create only coordination state directories and
index keys required by that operation.
- If the message concerns files, reread
state/index.json and active file
claim records before suggesting or taking any edit action. A message never
bypasses a fresh claimed file lock.
Send Or Tell
Use this path when the user asks to tell another agent/session/role/task/file,
or when a workflow needs an async handoff request.
- Identify the recipient selector:
session, agent, role, task,
file, workspace, or user.
- Ask one concise clarification only if the selector or message body is
ambiguous.
- Keep the subject one line. Put detail in the message body, not in
task.json or state/index.json.
- Include compact related pointers when available:
task_card: visible MPI-* task ID
task: coordination task path
files: plain or folder-aware file references
claim: contested file claim path
handoff: related handoff path
- Run the shared
Send Message operation.
- Report the message ID, path, recipient selector, and subject.
Read Inbox
Use this path for inbox, read inbox, messages, or checking pending
coordination.
- Run the shared
Read Inbox operation.
- Default to unresolved messages:
open, acknowledged, and replied.
- For a summary view, list each message ID, status, recipient selector,
subject, related task/files, and updated time.
- For a specific message ID, show the body and recent events.
- Report stale index pointers as drift. Do not repair them unless the user
asks or the active workflow owns cleanup.
Acknowledge
Use this path when the recipient has seen a message but the outcome is not
complete.
- Run the shared
Acknowledge Message operation.
- Keep the message in
open_messages.
- Report the message ID and new status.
Reply
Use this path when the user answers a message or needs to ask a follow-up.
- Load the parent message.
- Run the shared
Reply To Message operation.
- Send the reply to the parent sender unless the user names a different
recipient.
- Keep the parent in
open_messages with status replied.
- Report the child message ID and parent message ID.
Resolve
Use this path when the message outcome is complete.
- If the message concerns files, reread
state/index.json and active file
claims first.
- Do not edit files blocked by another fresh
claimed record. Resolve with a
coordination outcome or reply asking for a handoff instead.
- Run the shared
Resolve Message operation.
- Remove the message pointer from
open_messages; keep the message record for
history.
- Report the message ID, status, and outcome summary.
Route To Peer Workspace
Use this path only when the user gives a known peer workspace root or a trusted
record names one.
- Confirm the peer root explicitly. Do not scan sibling folders or all MPI
projects on the machine.
- Confirm this is same-filesystem routing.
- In the peer root, run the shared
Route To Peer Workspace operation.
- Add
from_workspace and to_workspace provenance.
- Report the peer message ID and peer message path.
Hard Rules
- Same-filesystem async messages only.
- No live interruption, daemon, background broker, remote delivery, global
broadcast, or implicit recipient discovery.
- Message bodies and thread details belong in
state/messages/<uuid>.json,
not in task cards or state/index.json.
- Reread
state/index.json before every message mutation.
- Do not edit files blocked by active
claimed file records.
- Keep
state/index.json pointer-only; use open_messages for unresolved
message paths.