Not recorded yet. The lesson below is complete and runnable today — the video is added later without touching this page.
recordings/F2.6.mp4Materiality assessed for an autonomous actor with a human-actor playbook.
Coordinate with E2 in hour one.
Draft the notification for an agentic incident.
The question "is this reportable" has to be answerable in hours, by someone who is already busy. Trigger criteria written during an incident are written under the worst conditions available.
Breaking a disclosure deadline into its phases to find the one that consumes it, which for an agentic incident is establishing who acted rather than containment.
The clock starts at awareness and broken attribution consumes it, so containing fast buys no reporting time.
Write the trigger criteria before they are needed, with separate owners for containment and disclosure.
Whether the pre-incident reading existed at all. During an incident you are either quoting a measurement or guessing.
Measure this
| what to measure | denominator or target |
|---|---|
| whether the pre-incident reading existed at all | yes/no; during an incident you are either quoting a measurement or guessing |
the question, asked at 2am, by someone already busy is it reportable? --> to whom? --> by when? +---------------------------------------------+ | trigger criteria, written in advance: | | data class . autonomy . harm . jurisdiction | +---------------------------------------------+ criteria written during an incident are written badly
Incident and disclosure obligations meet agentic incidents badly, for one specific reason: broken attribution consumes the clock.
The clock starts at awareness — when you know a reportable event may have occurred. It does not pause while you work out who did it. So if your logs attribute an agent's actions to the human whose credential it borrowed (E3.4), the days you spend establishing what actually happened are deadline days.
Two consequences worth internalising:
Anchor → F1.1. A disclosure clock runs on facts you either measured before the incident or are guessing at during it. E5.4 re-measures the indicators after the fix; this lesson is why the pre-incident reading has to have existed at all.
Containment takes an hour and establishing who acted takes forty-eight, on a seventy-two hour clock. The skill breaks the deadline into phases, finds the dominant one, and re-runs it with delegation chains recorded.
The skill — skills/regulatory/disclosure-phase-breakdown/SKILL.md
name: disclosure-phase-breakdown
description: >-
Break a disclosure deadline into its phases and find the one that consumes
most of it — usually establishing who acted rather than containment. Use when
a reporting obligation is being planned for, or was missed.
allowed-tools: Read, Grep, GlobDisclosure planning concentrates on containment because that is the exciting part. The phase breakdown says otherwise: containment in an hour, and establishing the acting identity in forty-eight, on a seventy-two hour clock. The delay is attribution, and attribution is fixed months earlier by what the logs record.
Planning for a reporting obligation, and at post-incident review when a deadline was met late or narrowly.
1 — Enumerate the phases. Detection, triage, containment, establishing who acted, scoping affected subjects, drafting, approval, submission. All of them, including the approval step everyone forgets.
2 — Attribute hours to each from a real incident or a tabletop. Estimates here are systematically optimistic; use measured values where you have them and mark the rest as estimates.
3 — Find the dominant phase. It is usually attribution or scoping. Report it as a proportion of the whole clock, which is what makes it actionable.
4 — Re-run with delegation chains recorded. Model what attribution costs when the acting identity and the chain are on every record. The difference is the business case for B2.7-style attribution, in hours against a regulatory deadline.
5 — Pre-draft what can be pre-drafted. The regime, the template, the distribution list, the approver. Drafting under time pressure is where the avoidable hours are.
Input — the fixture committed at the top of scripts/disclosure_phase_breakdown.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:
scenario contain report met margin
------------------------------------------------------------------
attribution sound 2.0 20.0 True 52.0
attribution broken, 3d scope 6.0 92.0 False -20.0
fast containment, slow scope 1.0 80.0 False -8.0
The third row contained in ONE HOUR and missed by 8 hours.
phase hours cumulative note
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.
{
"obligation": {"regime": "str", "hours": 0},
"phases": [{"phase": "str", "hours": 0, "measured": false}],
"total_hours": 0,
"dominant": {"phase": "str", "share": 0.0},
"with_attribution": {"phase_hours": 0, "total_hours": 0, "meets_deadline": true},
"pre_drafted": ["str"]
}
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 F2.6Then restart your agent and open it in that folder. On Windows, if python3 says Python was not found, use python instead.
Then pick f2-6-incident-and-disclosure-obligations:
| agent | install just for this agent | start it |
|---|---|---|
| Claude Code | python3 scripts/install_skills.py --tool claude --lessons F2.6 | type /f2-6-incident-and-disclosure-obligations |
| GitHub Copilot (VS Code) | python3 scripts/install_skills.py --tool copilot --lessons F2.6 | type /f2-6-incident-and-disclosure-obligations in Chat |
| Cursor | python3 scripts/install_skills.py --tool cursor --lessons F2.6 | type / in Agent chat and search for it |
| Codex | python3 scripts/install_skills.py --tool agents --lessons F2.6 | type $f2-6-incident-and-disclosure-obligations, 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 F2.6Neither 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 F2.6 --out work/cybertravels
python3 scripts/checkpoint.py --at F2.6 --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.
One-hour containment still misses the 72-hour deadline when scoping is slow. The phase breakdown totals 92 hours, of which establishing who acted is 48 — two-thirds of the entire deadline. Recording act chains cuts the total to 44.5 hours and meets the deadline. The runbook check flags a shared owner, a late clock start and a missing pre-drafted disclosure.
Draft the disclosure sentence you would send when you know an agent acted but cannot say which one. Getting legal to agree that wording takes weeks in peacetime and is impossible at hour 60.
Skill source: skills/regulatory/disclosure-phase-breakdown