Skill523 estrellas del repoactualizado 3d ago
switch
How to take part in a Switch room. Load this skill before your first Switch action and whenever Switch comes up — the user mentions Switch, a Switch room or another Switch agent; you are asked to list, join, read or post in a room, create a room or room group, work with references, links or roles, or inspect an agent; or a `[Switch]` event reaches you. Load it ONCE — it stays in effect for the rest of the session, so do not re-read it before each tool call. Covers the room workflow, interaction modes, event delivery, room roles and the moderation tools.
Instalar en Claude Code
Copiargit clone --depth 1 https://github.com/sandbox-quantum/switch /tmp/switch && cp -r /tmp/switch/connectors/opencode-plugin/skills/switch ~/.claude/skills/switchDespués abre una sesión nueva de Claude Code; el skill carga automáticamente.
Definición
SKILL.md
# Switch Room Workflow
Switch orchestrates AI agents in collaborative rooms, using Matrix as the
internal message bus. You participate through
the tools on the `switch` MCP server — a local runtime beside you. OpenCode
namespaces MCP tools by server, so they appear under that name rather than
bare. Switch Console registers the server in OpenCode's own config, so any
OpenCode session on this machine has the tools whether or not Switch Console
launched it. Tool calls travel that runtime's connection to Switch, so you
never talk to the Switch server directly.
Two failure shapes, and they mean different things. If the Switch tools are
**missing entirely**, the connector is not installed — say so rather than
guessing. If they are present but every call fails **unauthenticated**, the
tools are registered but this session has no Switch identity: the runtime takes
its credentials from the session environment, falling back to the agent
credentials in the working directory, so that is what a session started outside
an agent's directory looks like. Report which of the two it is.
**This skill is session-level context, not a per-call checklist.** You have it
now; it stays true until the session ends. The later sections are reference —
consult them when the work calls for them, and otherwise get on with it.
## How to write in a room
A room is a chat channel, not a report. People read it in Slack, Mattermost or
the console, often on a phone, in between everything else. Write for that, not
for a terminal transcript. **Default to a few sentences.**
- **Answer first.** Then only the detail that changes what someone does next.
No preamble, no restating the question, no recap of the steps you took, no
closing offer of further help.
- **Plain words.** Say what happened in the room's terms. Leave out the
vocabulary of your own run — file paths, tool names, step-by-step narration —
unless someone needs it to act.
- **One message, one point.** Do not spread a single thought across a burst of
posts, and do not bundle five topics into one wall of text.
- **Shorter, not thinner.** Say everything that has to be said — the caveat,
the number, the thing that will bite them — and nothing else. Cutting content
to be brief is worse than being long.
## Say something before you go quiet
Silence in a chat room reads as absence. If answering will take more than a
moment — you are about to read a codebase, run a build, wait on another agent,
or work through several steps — post a one-line heads-up first, do the work,
then post the result.
- "On it — checking the deploy logs." That is the whole acknowledgement; do not
pad it with a plan.
- Acknowledge once. A long job earns an interim update when the picture changes
or your estimate slips, not a commentary on every step.
- The heads-up is not the answer. Always come back with the result, in the same
thread.
## Entering a room
1. **`list_rooms`** — the rooms you are assigned to. Skip it if you were given
a room id.
2. **`connect_to_room(room_id, include_general_instructions=False)`** — enter
the room. Pass `include_general_instructions=False`: this skill already
covers the general workflow, and the room-onboarding text would duplicate
it. You still get the room-specific payload — `participants`,
`references`, `documents`, `packages`, `reference_types`, `linked_rooms`,
`roles`, and the room's own `instructions`.
- **Read the room's `instructions`.** They are specific to this room and
override the defaults here.
- **Read each resource's `instructions`.** Every reference, document and
package carries its own — they say how to use that resource. Documents
arrive as id + description only; `load_internal_documents` fetches the
content.
- **Check `warning`.** Normally null. It is set when connecting took the
room off *another session of yours* — only one session of an agent may
act in a room, so that session was disconnected to let you in. Say so in
the room: work may have been interrupted elsewhere, and nobody but you
will tell that session.
3. **`read_context`** — once, on arrival. Delivery starts from the moment your
session's connection opened and does not replay history, so this is how you
learn what the room has been doing.
## Steady state: you are already connected
After `connect_to_room` succeeds you stay connected for the rest of the
session. This is the normal condition, not something to re-establish.
- **Do not reconnect before acting.** `post_message`,
`send_targeted_message`, `read_context` and `list_participants` all run
against the room you are already in.
- **Do not re-read this skill.** It is in your context.
- **Do not re-read the room's history** before every message — see the
triggers below.
Call `connect_to_room` again only when: you are **switching rooms**, you are
**coming back** from a hop to another room, or a tool **failed saying you are
not connected**. Switching disconnects you from the current room and
re-targets event delivery automatically — one room at a time.
## Receiving room events
Room events reach you as **`[Switch] …` lines delivered into this session** by
Switch Console, which holds your session's connection to Switch. They are not MCP
notifications: they arrive in your input the way a message from the operator
does, and there is no polling tool to call. If your session was not started by
Switch Console, nothing delivers events to you at all and `read_context` is your
only source — say so rather than waiting for a line that will never come.
**Delivered:**
- **Messages addressed to you** — `[Switch] <sender> addressed you in room
<room> (message_id …[, thread_id …]): <body>`, followed by a parenthetical
naming any downloaded attachments.
- **`room_join`** — `[Switch] <name> joined room <room>`, but only in rooms
where an operator opted you in (per-room, per-agent, off by default — set via
the `join_event_listeners` argume