rehearse-the-withdrawal-before-you-need-it
Turn "we can block it" into a measured control by withdrawing something on purpose, checking it as an ordinary user, and writing down how long it took.
Procedure
- start start. Goes next to s1
- check It works before you withdraw it. Goes on_fail to s9; next to s2
- action Note the time and withdraw it, RW (reversible-write), requires approval. Goes rollback to s8; on_fail to s9; next to s3
- check The ordinary account cannot reach it. Goes on_fail to s5; next to s4
- decision Is there another way in?. Goes if another_path to s5; if default to s6
- action Close the path you found, RW (reversible-write). Goes on_fail to s9; retry to s3; next to s6
- action Write down how long it took, RO (read-only). Goes on_fail to s9; next to s7
- action Tell the owner why, and what next, RO (read-only). Goes on_fail to s9; next to s8
- escalate The control does not exist yet. Terminal
- action Restore the rehearsal subject, RW (reversible-write). Goes next to __end_success
- end success. Terminal
Open the graph on its own page — larger, printable, and an address you can send.
Walk it without running it — you answer what your environment would answer, and the path, the capabilities, the approvals and the distance back to an undo come out of the document. Nothing executes; there is no Run button here and there will not be one.
Trust
T2 · attested 2026-10-11 · runbooks.directory
Nobody has attested this record. That is the ordinary case: T2 is what the catalog can check on its own, and T3 needs somebody to run the procedure and sign for it.
- Link liveness has not been checked: it needs a network and the catalog builds without one. Run
pnpm gates --onlinewhere there is one.
Steps
s1check — It works before you withdraw its2action — Note the time and withdraw it (reversible-write) — requires approvals3check — The ordinary account cannot reach its4decision — Is there another way in?s5action — Close the path you found (reversible-write)s6action — Write down how long it took (read-only)s7action — Tell the owner why, and what next (read-only)s8action — Restore the rehearsal subject (reversible-write)s9escalate — The control does not exist yet
Capabilities
This is a privilege request. Check it against your own allowlist before running.
Provenance
- Source
- https://github.com/microsoft/ai-agent-runbooks/blob/083f33eec889/02-patterns/Agent-Governance-and-Rollout-Control-Plane/Agent-Governance-and-Rollout-Control-Plane-Runbook.md
- Fetched
- 2026-09-04
- Source last checked
- not since it was captured on 2026-09-04 — recorded as
current - Licence
- MIT
- How it got here
- Rewritten here from the source above, under its licence. The words and the steps are this catalog's; the procedure it describes is not this catalog's invention, and the source is where to check it.
- Highest risk in this procedure
- reversible-write
Take it with you
- SKILL.md — the record as an Agent Skills file
- workflow.yaml — Open Workflow DSL 1.0.3, for a runner
- record.json — the catalog's own JSON
- graph.svg — the graph, standalone
Run it under supervision
Runs here, on your machine, under supervision: every step is proposed before it happens, an approval gate stops for you, and a failed expectation goes where the procedure says rather than on to the next step. Nothing is sent anywhere. To supervise an agent that is doing the work instead, runbooks hook sits in its tool-call path.
npx @runbooks/cli run adapted/rehearse-the-withdrawal-before-you-need-it@1.0.0 --as "$(whoami)" \
--input subject=<something you own and may withdraw — a test one, created for this> \
--input ordinary_account=<an account with no special rights, for checking what a user sees>