Not recorded yet. The lesson below is complete and runnable today — the video is added later without touching this page.
recordings/E4.4.mp4Nobody has rehearsed halting an autonomous workflow.
Named holder, measured time-to-stop, tested.
Time your own stop authority end to end.
At three in the morning, the question is not what went wrong. It is who is allowed to stop it, on what evidence, without waiting for a forty-person bridge call to reach consensus.
measured_time_to_stop has to come from a real attempt, because the first time a stop authority is exercised is the worst possible moment to discover how long it takes — and D1.9's time_to_stop says twenty thousand revocations is not instant.Stop authority as something rehearsed and timed rather than assigned: a named holder, a deputy, out-of-hours reachability that was tested by calling them, and a time-to-stop from a real attempt.
Stop authority is the control everyone assumes exists and almost nobody has timed.
Answer five questions with a name or a number each: who, what mechanism, how long, what breaks, who turns it back on.
Measured time-to-stop, end to end, from a real exercise. An untimed stop authority is an intention with a runbook attached.
Measure this
| what to measure | denominator or target |
|---|---|
| time-to-stop, end to end | seconds, measured in a real exercise; an untimed stop authority is an intention |
03:00, the agent is acting, the evidence is partial
who may say stop? +-----------------------------+
| named role, on call |
on what evidence? | pre-agreed trigger list |
what does stop mean? | revoke + gateway cut |
who is told after? | named, not assembled at 3am |
+-----------------------------+
pre-agreed authority beats a forty-person bridge callStop authority is the control everyone assumes exists and almost nobody has timed.
Five questions decide whether you have it, and each needs a name or a number rather than an intention:
An untested stop button is a belief. The purpose of this lesson is to convert it into a measurement, because the measurement is what an auditor, a regulator and a board will each ask for in different words.
Anchor → E1.0. This is the interval itself, measured end to end rather than estimated. Five questions decide whether you have it, and each needs a name or a number: an untimed stop authority is an intention with a runbook attached.
The skill puts the vague answers next to the concrete ones, then asks what each stopping mechanism actually survives:
It finishes with a time-to-stop of twelve seconds, and that number comes from a game day somebody actually ran. It is not an estimate.
The skill — skills/response/stop-authority-readiness/SKILL.md
name: stop-authority-readiness
description: >-
Turn "we can stop it" into a named mechanism with an owner, a measured
time-to-stop from a game day, and a stated cost of stopping. Use to answer how
long it would actually take to stop a running agent, before granting autonomy,
and whenever stop authority has never been exercised.
allowed-tools: Read, Grep, GlobStop authority is usually described rather than specified: somebody can stop it, probably quickly, and nobody has tried. Three questions turn that into a control — which mechanism, who may invoke it without asking, and how long it takes when measured rather than estimated.
Before raising an agent's autonomy, at any authorisation to run unattended, and once a year as a game day.
1 — Write the vague answers down and then the concrete ones. Side by side. "Ops can kill it" against "the on-call SRE revokes the workload identity in the identity console, and here is the runbook". The contrast is what gets the work scheduled.
2 — Enumerate mechanisms and what each survives. Killing the process does not survive a restart or a scheduler. Revoking the identity does. Blocking egress stops the effect and not the run. Record what each actually stops.
3 — Name who may invoke it without asking. Stop authority that needs an approval is not stop authority; it is an escalation. If nobody may act alone, that is the finding.
4 — Run a game day and measure. From decision to the agent being unable to act. Report seconds. An estimate is not a measurement and this is the number that is always wrong in the optimistic direction.
5 — Cost the stop. What stopping costs per minute in halted legitimate work. Somebody will ask, and having the number is what makes the decision fast during an incident.
Input — the fixture committed at the top of scripts/stop_authority_readiness.py. Edit it and re-run: the buckets, counts and verdicts below are derived from it, not hard-coded.
Output — the opening lines of a real run:
who VAGUE the security team
CONCRETE on-call SRE, no approval required for non-human identities
mechanism VAGUE we can turn off the agents
CONCRETE revoke the SPIFFE identity at the gateway (survives restart)
time VAGUE quickly
CONCRETE measured 12s decision→first failed call, game day 2026-07-04
The run continues past this. test_skills.py executes the script on every build, with no model configured — so what CI proves is that it runs and refuses legibly, not that it prints these lines. The output above is a recorded run against a real model, and nothing re-diffs it: a model's answer is not reproducible, and this repository does not claim otherwise anywhere it can be checked.
{
"answers": [{"question": "str", "vague": "str", "concrete": "str"}],
"mechanisms": [{"name": "str", "stops": ["str"], "survives_restart": false}],
"authority": {"may_invoke_alone": ["str"], "approval_required": false},
"game_day": {"measured_seconds": 0, "estimated_seconds": 0},
"cost_per_minute": 0.0,
"ready": false
}
Three ways to do this lesson. Pick one. They run the same procedure against the same code — what changes is who drives it, and how much you see.
The agent reads the lesson, explains the idea, fetches the code, runs the check and answers your questions as you go. This is the one to take if you are here to learn.
Install it, once. From the folder you cloned. --all does every agent it finds on your machine:
python3 scripts/install_skills.py --all --lessons E4.4Then restart your agent and open it in that folder. On Windows, if python3 says Python was not found, use python instead.
Then pick e4-4-stop-authority:
| agent | install just for this agent | start it |
|---|---|---|
| Claude Code | python3 scripts/install_skills.py --tool claude --lessons E4.4 | type /e4-4-stop-authority |
| GitHub Copilot (VS Code) | python3 scripts/install_skills.py --tool copilot --lessons E4.4 | type /e4-4-stop-authority in Chat |
| Cursor | python3 scripts/install_skills.py --tool cursor --lessons E4.4 | type / in Agent chat and search for it |
| Codex | python3 scripts/install_skills.py --tool agents --lessons E4.4 | type $e4-4-stop-authority, or run /skills |
No agent, no conversation. The same lesson executes and prints the same readback. Take this one if you have no assistant, if you are reviewing rather than learning, or if you want the result without the teaching around it.
python3 scripts/lesson.py E4.4Neither of the above, and no model needed. The first command writes CyberTravels exactly as it stood at the end of this lesson; the second prints the diff — the lines this lesson added or changed, and nothing from any later one.
python3 scripts/checkpoint.py --at E4.4 --out work/cybertravels
python3 scripts/checkpoint.py --at E4.4 --diffOn Windows, type python wherever these say python3 — and use \ instead of / in the paths. Everything else is identical. A0.0 step 2 explains why.
Ways 1 and 2 need a model; way 3 does not. A signed-in Claude Code CLI needs no API key, and any OpenAI-compatible endpoint works too. With neither, the audit exits 2 and says so rather than inventing an answer. A0.0 sets this up.
Ways 1 and 2 both end with the same readback: What I did, What changed, The number and Read this next. A step that was skipped or refused is reported as exactly that, never as a pass.
If you did the last lesson’s challenge, expect this to stop. Most challenges ask you to edit the code, and ways 1 and 2 will not overwrite your edits: you get stopped, not a failure, with two options — --out for a fresh folder that keeps your work, or --force to discard it and start this lesson clean.
The vague and concrete answers print side by side. Killing the process stops the agent but does not survive a restart, while identity revocation does. The game-day timeline gives a measured 12-second time-to-stop, permitting 12 to 240 further actions depending on rate. The readiness check fails the vague version on three counts and passes the tested one.
Run the game day. The deliverable is the number, and the number is what goes in the evidence pack for F1.7 and the board slide for F3.5. An untested stop button is a belief.
Tools used
Skill source: skills/response/stop-authority-readiness