bot2bot-post
Skill396 starsChanged 6 months agoMITView on GitHub
Post a coordination message from this bot to the shared bot2bot channel — @-mentioning a specific peer via --to, auto-mentioning only in single-peer fleets, never guessing.
- Reads credentials
In this repository73 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- agent-activitySkill
- agent-registrySkill
- agent-room-opsSkill
- answer-formatSkill
- audio-transcribeSkill
- bee-actionsSkill
- call-diagnosticsSkill
- claude-codexSkill
- claude-geminiSkill
- claude-piSkill
- claude-routerSkill
- collaboration-intelligenceSkill
- connect-appsSkill
- context-dropSkill
- context-reconstructSkill
- db-browserSkill
- deal-finderSkill
- doc-ingestSkill
- electron-overlay-dimmingSkill
- email-findSkill
- engine-conflict-resolveSkill
- gemini-ttsSkill
- image-generationSkill
- import-claude-contextSkill
- local-workspace-serverSkill
- macos-toolsSkill
- macos-useSkill
- make-viral-videoSkill
- marketplaceSkill
- media-transcriptSkill
- meeting-prepSkill
- meeting-schedulerSkill
- mention-gateSkill
- model-switchSkill
- morning-briefingSkill
- ms365-connectSkill
- observeSkill
- obsidian-vaultSkill
- openai-ttsSkill
- open-sutando-refSkill
- overlay-appsSkill
- phone-conversationSkill
- proactive-loopSkill
- pr-shepherd-contractSkill
- quota-trackerSkill
- regression-searchSkill
- relaySkill
- releaseSkill
- report-feedbackSkill
- review-preflightSkill
- room-collabSkill
- schedule-cronsSkill
- screen-companionSkill
- screen-recordSkill
- self-diagnoseSkill
- self-upgradeSkill
- session-recapSkill
- skill-usage-reportSkill
- The first 60 shown.
The file
Files
Bot-to-Bot Post
Post a coordination message from this Sutando node to the shared #bot2bot Discord channel. The receiving bot's bridge processes @-mention messages from other bots as tasks (see src/discord-bridge.py:244), so prefixing with <@peer-id> routes the post to that peer's loop.
Usage
python3 skills/bot2bot-post/post.py [--to <peer|id>] <kind> <text>
python3 skills/bot2bot-post/post.py [--to <peer|id>] <kind> --body-file <path>Use --body-file for any prose containing backticks or apostrophes. An
apostrophe closes a single-quoted shell argument and re-arms the backticks, so
the shell eats the remainder — the message arrives truncated and the send still
reports success. Write the body to a file and pass the path; nothing crosses a
quoting boundary.
--body-file reads whatever path it is given and posts the contents, and neither
form redacts. That is not new capability — the positional form already accepts
"$(cat <path>)" — but the content is no longer visible in the caller's command,
so write the file yourself; never point it at a path you have not read.
Kinds:
claim— "I'm taking this work, ETA X"blocked— "I'm stuck on X, need eyes"done— "shipped X, FYI"ping— "you there?"opinion— "what do you think about X?"
Examples:
python3 skills/bot2bot-post/post.py --to mini claim "refactor task-bridge task-file schema ETA 20m"
python3 skills/bot2bot-post/post.py done "shipped PR #472 — kickstart web-client after merge"
python3 skills/bot2bot-post/post.py --to air opinion "is Discord-as-state better than files for coord?"Recipient targeting (multi-peer fleets)
--to <peer|id>— @-mention a specific peer: a name from$CLAUDE_CONFIG_DIR/channels/discord/peers.json(e.g.air,mini) or a raw numeric Discord id. The guard verifies the recipient is a member of the bot2bot channel and REFUSES otherwise (exit non-zero) — no dead-letter posts to non-members.- No
--to, exactly ONE peer bot in the channel — auto-mentions that peer (the original two-bot convenience, preserved). - No
--to, TWO OR MORE peers — posts without any mention and prints a stderr NOTE pointing at--to. The skill never guesses a recipient: a wrong guess routes a task to the wrong bot's loop (observed 2026-07-29: two bots each auto-pinged the wrong third peer, triggering the target's team-tier auto-refusal). An unaddressed post is a broadcast status line — visible to all, tasked to none. - To direct a task at a particular peer,
--tois the only supported way in a multi-peer fleet.
Configuration
- Channel: resolved from
$CLAUDE_CONFIG_DIR/channels/discord/access.json— pick thegroupsentry tagged{"role": "bot2bot", ...}, fallback to any entry with valuetrue. - Token:
DISCORD_BOT_TOKENread from$CLAUDE_CONFIG_DIR/channels/discord/.env. - Peer roster:
$CLAUDE_CONFIG_DIR/channels/discord/peers.json—{"<name>": "<discord-id>", ...}, names usable with--to. Keep it to the ACTUAL members of the bot2bot channel (verify against the channel'sallowFrom). Own id is fetched via Discord/users/@meand always excluded from peer resolution.
Why
Before this skill: bot A could reply in a task-triggered channel (existing pending_replies path) and DM the owner (poll_proactive), but had no way to initiate a channel post. That made cross-bot coord invisible to Chi and impossible without going through him. Now bots can claim/block/done in the open.
The no-guess contract (2026-07-29): with three bots in the channel, the old "pick the other bot from allowFrom" heuristic was undefined — both Pro and Mini shipped pings to the wrong peer the same day, each triggering the mis-targeted bot's sandboxed auto-refusal. Explicit --to, single-peer auto-mention, and unaddressed broadcast are the full contract now.
See also
src/discord-bridge.py:244— the exception that routes bot-to-bot @-mentions as tasksfeedback_cross_bot_mention.md— memory note on @-mention conventionsnotes/team-proposal-coord-loop-2026-04-20.md— the joint proposal that motivated this skill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

