Use before sending or suppressing any Leader message to Workers, Manager, or Team Admin. Always use this skill for cross-room Matrix messages, @mention decisions, task assignment notifications, structured status reports, completion reports, blocker/revision messages, questions, requester updates, or when deciding whether a same-room reply is enough.
69
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Before any message, decide the target recipient and target room.
message tool only when the target room is different from the current room, or when the workflow explicitly requires a different room.Room names such as Team Room, Leader Room, or Leader DM describe where the recipient should see the message. They do not by themselves mean you should call the message tool.
Hard rule: do not call the message tool to send a message back into the current room.
taskflow(delegate_task) delivers the Worker assignment automatically: it
publishes task files, then sends a Team Room message that visibly @mentions
the assigned Worker's full Matrix ID and returns the Matrix eventId. Do
NOT send a second assignment message after a successful delegate_task —
that duplicates the assignment and can trigger the Worker twice.
An assignment intent sentence is not an assignment. Do not send same-room text such as "I need to delegate this", "I will assign this to the dev worker", "now delegate the first ready node", or "the dev worker should start" as a substitute for the Team Room assignment. The Worker is notified by the delegate_task auto-notification that visibly @mentions the Worker's full Matrix ID and gives a concrete task to start.
Use a Worker private room only for exceptional follow-up that should not be team-visible, such as sensitive clarification or direct recovery/debugging.
Route reports by the project source:
| Source | Target Room | Report To |
|---|---|---|
| Manager | Leader Room @mention | Manager |
| Team Admin | Leader DM | Team Admin |
Determine requester from the current notification message sender, and report back to the requester recorded on the project:
sender is Team Admin, the target room is Leader DM. If the current room is that Leader DM, reply directly in the current session.sender is Manager, the target room is Leader Room. If the current room is that Leader Room, reply directly in the current session and @mention Manager when action is needed.Only use the message tool for a requester report when the target room is not the current room.
After task handling changes Project state, notifying the requester is mandatory. If the requester is Team Admin, this means a Leader DM report to the DM admin. Team Room coordination, Worker assignment messages, and downstream task notices do not count as the requester report.
Do not copy team-room coordination logs into requester DM. Summarize the state.
For project-shaped Team Admin requests received in Leader DM, do not send DAG plans, analysis, "let me..." progress notes, tool preambles, or other interim project narration back to Leader DM before the first Team Room assignment has been posted. While reading skills, checking organization, planning, creating the Project, or delegating the first task, your same-room Leader DM reply must be exactly NO_REPLY. The first visible non-NO_REPLY message for that request must be either the Worker assignment delivered by the taskflow(delegate_task) auto-notification (which sends the Team Room @mention itself), or a blocker/question to the Team Admin when assignment cannot proceed. After the Team Room assignment, send one concise requester update if needed.
Use project-management to determine project report content and the DAG or Loop Project Status Report shape. Use this skill to decide where the report should be delivered and whether to reply directly or use the message tool.
All human-facing message text must use the language selected by AGENTS.md Response Language. This includes headings, field labels, table headers, state labels, summaries, next steps, notes, and deliverable descriptions.
Matrix rendering supports headings, lists, dividers, Markdown tables, and fenced code blocks. Keep requester reports concise. The requester wants current state and outcomes, not internal command logs.
Reply directly in the current session.
If the recipient must act, include their full Matrix ID as a visible @mention. (For Worker task assignments this is already done by the delegate_task auto-notification — do not repeat it. The format below is for non-assignment follow-up such as requester updates or clarifications):
@worker:domain Status: todo-api-20260429-130052-01 is in progress; spec published at shared/tasks/todo-api-20260429-130052-01/spec.md.Do not use the message tool for same-room replies.
Use the message tool only when the target room is not the current room, or when the workflow must continue in a different room.
Resolve the recipient Matrix ID and target room from agt CLI immediately before sending.
For Team work, the Worker assignment is delivered by the taskflow(delegate_task) auto-notification in the Team Room; do not send it again with message. Use the message tool only for explicit cross-room sends — a requester status update when the requester is in a different room than the current session:
{
"action": "send",
"channel": "matrix",
"target": "room:!roomid:matrix-local.agentteams.io:18080",
"message": "@alice:matrix-local.agentteams.io:18080 Task todo-api-20260429-130052-01 delegated to @worker:matrix-local.agentteams.io:18080; waiting for result."
}target is where to send the message. Use a Matrix room target such as room:!roomid:domain.message is the full visible message body. Include the recipient's full Matrix ID when they must act.curl, or remembered channel commands. Raw Matrix sends can lose formatted HTML and structured mentions, causing Workers not to wake.ok, done, 收到, or 好的.223ddc2
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.