routed-group-chat
Skill1 starsChanged 20 days agoMITView on GitHub
Hold one shared-thread group chat between the human and several Claude roles (for example a leadership team of manager, product owner, liaison and customer proxy), where only the role the human @mentions answers, everyone sees the whole thread, and decisions are pinned. Use when the user says "group chat with", "talk to the leadership team", "ask the manager and the PO", "@manager", "@all", "get everyone's view", or wants several agents in one conversation without them talking over each other.
In this repository8 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- .team/CLAUDE.mdCLAUDE.md
- agile-teamSkill
- example-skillSkill
- house-rulesSkill
- render-markdownSkill
- six-hatsSkill
- unattendedSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
Pick the roster: Use the team's own roster file if it has one.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
routed-group-chat
One thread, many roles. The human addresses roles by @mention; code routes the message, so only those roles answer, each with the whole thread in view. Decisions and open questions are pinned in a log that summaries never touch.
GC="uv run --frozen --quiet --project ~/.claude/skills/routed-group-chat/runner group-chat"--frozen runs the skill's tested uv.lock as it is; never drop it. Roster
format, addressing, markers and compaction are in reference/protocol.md next
to this file. Read it before writing a roster.
Steps
- Pick the roster. Use the team's own roster file if it has one;
otherwise start from
examples/leadership.tomlhere. Pick a chat directory (default.group-chat/<team>in the cwd) and state both to the human. - Relay each message as written:
Show the printed replies verbatim, one per role. Do not add your own reply unless the human addresses you.$GC --roster <roster.toml> --dir <chat dir> say "<the human's message>" - Exit 2 (bad address, roster or state, or the chat is busy): show the message; do not guess a recipient. Exit 1 (a model call failed): show the replies that did arrive and the error; the thread keeps them.
- On request:
logprints pinned decisions and open questions;showprints the summary and recent turns.chatreads one message per stdin line for a human typing directly.
Rules
- Routing is the human's: never add or change an @mention in their message.
- A role hands the floor on with
HANDOFF: @name; the runner caps hops per message (--max-handoffs, default 2). - Roles run with no tools, connectors or settings: they talk, they don't act.
- The chat directory is the record. Do not edit
state.jsonby hand.
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.

