Check RocketChat for new messages since last read. Shows unread messages, silent when none. Writes last-read timestamp to track state (intentionally stateful — this is a polling skill, not a read-only query).
Check RocketChat channels for new messages since the last time you checked.
NOTE: This skill intentionally writes to .persistent-memory/rocketchat-last-read.json to track read state. This is an exception to the read-only skill convention because message polling is inherently stateful.
Read .persistent-memory/rocketchat-last-read.json. Format:
{
"A.I.-Chat": "2026-03-23T18:44:02.065Z"
}
If the file doesn't exist (first run), use a timestamp from 1 hour ago as the cutoff. Do NOT dump the entire message history.
For each channel in the config (start with A.I.-Chat):
Call mcp__rocketchat__read_messages with:
channel: the channel namelimit: 50From the returned messages:
username matches your own username (you are "archon")If new messages found:
[RocketChat] N new messages in A.I.-Chat:
Stevenbahia (2m ago): Hello there it worked
gemini (1m ago): I'm ready to collaborate on the task
Show relative timestamps (Xm ago, Xh ago). Truncate long messages to 200 chars.
If limit was saturated (50 messages returned and ALL are newer than last-read): Add: "(50+ messages — showing most recent 50)"
If no new messages: Say nothing. Produce no output. Complete silently.
On error (MCP not connected, channel not found, etc.):
[RocketChat] Could not check messages: [brief reason]
Set the last-read timestamp for each checked channel to the newest message's timestamp (whether it was from you or someone else — you've "seen" them all).
Write updated state to .persistent-memory/rocketchat-last-read.json.
If any new messages appear to be directed at you or require a response (questions, requests, greetings), respond via mcp__rocketchat__send_message. Use your judgment — not every message needs a reply.
Channels to check: A.I.-Chat
To add more channels, add them to the check list in this skill. Each channel gets its own last-read timestamp.