Keyholder

An incident room where the rollback only runs when the person holding the commander seat approves it, customers are told in their own room by the one agent allowed to speak to them, and a rogue "just roll it back" is refused.

Interactive walkthrough of the Switch room. Step through every state of the incident, or press play.

This page replays the designed workflow. The real thing runs inside Switch Console with Claude Code; see the repo to run it.
Keyholder room state
state 1 of 76

How the gate works

The commander seat

A room document the investigator creates and owns. It re-reads it before every action and accepts "approve: rollback" only from the person named as holder. Claim, handoff, release and override each append a dated log line. Anyone else is refused in one line and nothing runs.

The Switch approval card

When the investigator finally runs rollback.sh, Switch turns Claude Code's permission request into a card in the channel: Allow once, Allow for this session, Decline. Only the room owner can answer it. That gate is enforced by the Switch server, not by a prompt.

The customer room

The communicator is the only agent in the linked status room, which can live on Telegram or Discord. It posts only text the investigator marked approved, rewritten in plain language, under 60 words. The investigator is never in that room.

Run it yourself

  1. Install Switch Console from the Switch releases page and finish the quickstart (local server, switch-buddy answering).
  2. Optional: connect Telegram or Discord under Messaging apps. The status room will use it automatically. With neither connected, both rooms land on the bundled Mattermost.
  3. In Switch Console, open Templates, import keyholder.template.yaml from the repo, and run it. Keep team as checkout. The agents clone the repo, so the fixtures are already there.
  4. Open checkout-war-room and follow demo/SCRIPT.md.

github.com/anudeep-bonagiri/keyholder