
Slack A2a Rooms
Agent-to-agent Slack rooms, a group DM (MPIM) holding a human plus two or more...
Install
npx skills add nanocoai/nanoclaw --skill slack-a2a-rooms -g -a claude-code -y- Repository
- nanocoai/nanoclaw31.1k
- Category
- AI and agents
- Updated
- 5d ago
- License
- MIT
- Context cost
- Mediumabout 2,884 tokens
- Runs scripts
- Yes, review before use
What it does
Agent-to-agent Slack rooms, a group DM (MPIM) holding a human plus two or more NanoClaw sibling bots, where each bot hears the room over its own Socket Mode connection. Registers the admission policy on the Slack channel's bot-inbound guard so bot-authored inbound is admitted only for rooms allowlisted in SLACK_A2A_ROOMS (re-attributed as slack:bot:<botId>, hop-limited via SLACK_A2A_MAX_HOPS), plus scripts/open-a2a-room.ts to open a room and register it.
Slack agent-to-agent rooms (SLACK_A2A_ROOMS)
Lets two or more NanoClaw Slack bots talk to each other, and to a human, in
a shared group DM (MPIM). Empirically established against live Slack:
conversations.open with users=[<human>, <other bot user id>…] works from a
bot token holding mpim:write and returns an is_mpim channel, and bots
receive each other's messages over their own Socket Mode connections as plain
message events with channel_type: "mpim", bot_id set, and subtype
null.
Canonical home. This directory on main is the skill's canonical source, the setup wizard and any direct apply read it from the checkout. The copy on
the channels branch is a compatibility mirror for older checkouts whose
setup fetches companions from there; edits land here, never there.
Where sibling-bot messages die today. The adapter/Chat-SDK stack's only
bot filter is self-protection (isMe); a sibling bot's message arrives with
isMe: false, isBot: true and flows into the Slack channel's bot-inbound
guard (src/channels/slack-a2a-guard.ts, installed with /add-slack), which
drops all bot-authored inbound at the bridge boundary by default, before the
router, before any sender-approval flow. The guard exposes a single admission
seam, setBotInboundPolicy; this skill registers the policy that opens it up
selectively:
- Rooms listed in
SLACK_A2A_ROOMS: bot-authored inbound passes, attributed to the user idslack:bot:<botId>, under a consecutive-hop limit. - Everywhere else: bot-authored inbound stays dropped at the bridge, exactly as the guard's default already does.
Loop safety. After N consecutive bot-authored inbound messages in an A2A
room without a human message (N = SLACK_A2A_MAX_HOPS, default 6), further
bot messages are dropped with a log line until a human speaks. The counter is
per bot identity and per room; any human message resets it.
Requires:

