OpenCyber Academy
Professional · Chapter 10 · English
Course code: OCA-039Chapter 10: OCA-039-C010

Chapter 10 — Playbook engineering and quality review

Open, free learning for anyone who wants to protect people and technology. No account is required to read this text or its worked answers.

Lesson map

Lesson 10 published. Map, example, EX046.

flowchart TD
  N0["Learning outcomes and connection"]
  N1["10.1 A defective starting playbook, P0"]
  N2["10.2 A bounded specimen, P1"]
  N3["10.3 Walk the main case and a negative control"]
  N4["10.4 Score the playbook as a document, then test it"]
  N5["10.5 Measure outcomes without gaming them"]
  N6["10.6 A playbook is a decision interface, not a comma"]
  N7["10.7 Seven gates as a controlled workflow"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Worked example"]
  EX --> Q["Exercise EX046"]

Logical drawing

flowchart LR
  N0["Learning outcomes and connection"]
  N1["10.1 A defective starting playbook, P0"]
  N2["10.2 A bounded specimen, P1"]
  N3["10.3 Walk the main case and a negative control"]
  N4["10.4 Score the playbook as a document, then test it"]
  N5["10.5 Measure outcomes without gaming them"]
  N6["10.6 A playbook is a decision interface, not a comma"]
  N7["10.7 Seven gates as a controlled workflow"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX046"]
[Learning outcomes and connection]
    |
    v
[10.1 A defective starting playbook, P0]
    |
    v
[10.2 A bounded specimen, P1]
    |
    v
[10.3 Walk the main case and a negative control]
    |
    v
[10.4 Score the playbook as a document, then test it]
    |
    v
[10.5 Measure outcomes without gaming them]
    |
    v
[10.6 A playbook is a decision interface, not a comma]
    |
    v
[10.7 Seven gates as a controlled workflow]
    |
    v
[Worked example] --> [Exercise EX046]

Learning outcomes and connection

The learner can turn a case's decisions into a reusable, reviewable procedure with an entry condition, evidence boundary, role-specific approvals, tested branches, stop rules, rollback, communication gate and version history. A playbook is supplementary to this course's principal book: it supports supervised work but cannot supply authority by its mere existence. Chapters 1–9 provide the teaching and worked case; Chapters 11–12 will later exercise and assess the whole workflow.

The NIST SP 800-184 recovery guide discusses planning, playbook development, testing and improvement. NIST SP 800-84 provides exercise-program guidance. The specimen below is original CTN classroom text, not a NIST-issued template and not a ready-to-run response command. It contains no production access, credentials or instructions for disruption.

10.1 A defective starting playbook, P0

An invented draft P0 says:

If any sign-in alert mentions svc-enroll, disable the account. Restore the latest backup. Email all learners that a breach occurred. Close the case when the portal loads.

The sentence is short, but it is unsafe as an operational decision aid. “Any alert” lacks service effect and source quality. “Disable” lacks an approver, target scope and dependency review; CTN's shared account supports an approved job. “Latest backup” ignores data correctness and would have reverted S40/S41 in C26. “Breach” exceeds C31–C33's evidence and bypasses privacy/communications approval. “Portal loads” does not test authoritative slot state, alternate API writes, audit attribution, monitoring or rollback. The playbook has no version, owner, source reference, handoff or stop condition.

The repair should be a set of decision gates, not a longer paragraph that automatically performs the same actions. A useful playbook lets a novice pause safely, record uncertainty and contact the correct owner. Its success is measured by reproducible decisions and clear outputs, not by having many steps. Some steps must be conditional: if the authoritative state is correct, do not restore; if the owner is unavailable, escalate through the actual approved route; if a test fails, stop release and preserve the failure artifact.

10.2 A bounded specimen, P1

The following is P1, an unapproved teaching specimen designed from CTN's case. Its named inputs are synthetic. The real organization must adapt the scope, approvals, tools, law and contacts before use.

Lesson table; scroll horizontally to read all columns →

Gate Entry question and permitted artifact Owner / stop condition
0. Open Does a service-related signal identify a time, source, reporter and potentially affected function? Open a case and retain raw wording. Analyst records; incident lead decides coordination. If service link is absent, route for ordinary triage without calling it compromise.
1. Bound evidence Which source can answer current state, account/session activity and approval scope? Request minimal intervals and fields. Track event, ingestion, collection and case-receipt times. Custodian authorizes retrieval; if retention is short, escalate the bounded request. Stop at access boundary when authority is missing.
2. Decide priority Separate impact, confidence and loss risk. Record provisional priority and a falsifiable review trigger. Incident lead uses local taxonomy; no priority label automatically authorizes a change.
3. Select containment Compare targeted hold, session action and broad account action by harm prevented, service cost, reversibility and route coverage. Service/identity owners approve the exact target, expiry, operator and rollback. If no approver or no testable scope, pause and escalate.
4. Verify cause path Preserve relevant task/configuration, validate identifier semantics, compare with approved baseline and keep actor uncertainty explicit. Application/identity custodians; never destroy the only copy or identify a person from an account label.
5. Return service Compare backup and current values with the owner-approved target; test data, both service routes, audit and rollback in isolation. Stage production correction only after a recorded gate. Recovery and service owners. Failed criterion = no-go until a documented revised test or risk acceptance.
6. Communicate and improve Separate service status from data assessment; prepare audience-specific drafts with source limits, approver and next-update time. Record measured outcomes and assigned improvement. Communications/privacy/legal decision owners where applicable. A draft is not a sent notice; no unsupported breach or no-breach claim.

The specimen keeps human authority and evidence gates visible. It does not prescribe a command or a specific vendor feature. A local implementation would need an operator runbook with safe, authorized steps, but that runbook must be reviewed against actual architecture and is outside this classroom text. Links to supplementary Incident Response playbooks remain source-linked and retain their original rights.

10.3 Walk the main case and a negative control

For the main CTN case, gate 0 records C02 and service S42; gate 1 identifies C03–C05 and later C09's provenance gap; gate 2 assigns P2 at 09:14 because impact is plausible and detailed IdP records face a stated 10:00 expiry. Gate 3 does not disable svc-enroll: C13–C16 make a S42 hold a defensible proposal, C17 authorizes it and C18/C19 provide limited execution/effect observations. Gate 4 uses C20's verified q-144 join and C22/C23's unapproved configuration findings while preserving actor uncertainty. Gate 5 rejects C27's failed audit criterion, accepts the isolated C28 rehearsal and then uses C29/C30's separate production and owner-acceptance receipts. Gate 6 drafts, but does not send, messages while C31–C33 leave external delivery unresolved.

Variant V10 is a separate fictional negative control: an alert names the shared account, but a service-owner read-only check finds the questioned slot correct; the job manifest includes the exact request under an approved change, and there is no unexpected task or data signal in the supplied scope. Under P1, the analyst still records the alert and sources, but the containment branch has no current harm path and should not execute a disruptive change. A supervisor may downgrade or close only after applying the organization's actual criteria and documenting the limited source scope. V10 cannot be imported as evidence that the main CTN case was harmless.

Variant V10b tests an unavailable approver. The service owner does not answer before a stated log expiry. P1 permits the analyst to request a bounded preservation path from the authorized custodian and invoke the real escalation procedure. It does not let the analyst invent approval for an account disablement. The dry-run outcome is “decision pending; preservation escalated; disruptive action not executed.” If an organization cannot identify a reachable alternate, that is a readiness defect to assign and exercise, not a reason to hide the gap in the playbook.

10.4 Score the playbook as a document, then test it

Use six 0–2 criteria. 0 means absent or contradicted; 1 means present but too vague for a second responder; 2 means the condition, owner and artifact are explicit enough to test. The criteria are: (1) trigger and bounded scope, (2) roles and approvals, (3) source/provenance and uncertainty, (4) containment verification and rollback, (5) recovery acceptance with failed-test handling, and (6) audience-specific communication and next review. This scores document quality, not whether CTN's real controls work. The score must be supported by line references or a dry-run artifact.

P0 earns 1/12 in this classroom rubric: it names a portal-load check, worth 1 under recovery because an observable condition exists, but omits authoritative data, audit and stop criteria; the other five areas lack a usable gate or actively contradict a safe boundary. P1's written gates specify all six areas, so it can earn 12/12 for designed fields. That does not mean it is release-ready. A reviewer should still test it on the main case, V10 and V10b, inspect whether another reader makes the same decisions, and obtain technical, service-owner, privacy and language review. If a local adaptation fails a branch, retain that failure and revise the version; do not preserve the score by weakening criteria after the fact.

A walk-through record needs inputs released at each stage, the branch chosen, its rationale, the owner who would approve, an expected artifact and a stop rule. An observed case card and a simulated dry-run result must be labeled separately. A good revision log reads: “P1 draft 0.2: added negative-control V10 and unavailable-approver V10b; kept gate 3 non-executable without approval; owner review pending.” A poor log says “fixed incident playbook” without naming which decision changed or how it will be tested.

10.5 Measure outcomes without gaming them

Playbook metrics should include a denominator and a quality condition. “Time to first action” can reward unsafe disruption. More useful classroom measures are: time from C08 expiry warning to an authorized bounded preservation request; share of action records with target/approver/expiry/verification filled; share of evidence packages with raw and normalized times; number of recovery tests stopped when a mandatory criterion failed; and time from service acceptance to an assigned improvement ticket. A metric does not replace review of the actual artifact. A one-minute response that disabled all accounts without permission is worse than a slower, bounded decision.

For CTN, the response record could track the C08-to-C09 sequence, C17/C21 approval and expiry, C27 no-go, C29/C30 acceptance, and C33 privacy uncertainty. It must also track failures: C01 lacked after-hours alternates, C09 lacked original-object metadata, C12's self-reported tag misled the early hypothesis, and the first isolated restore lacked an audit actor. Assign each improvement to an owner, due date and falsifiable re-test. Those are future work items, not repaired controls merely because they appear in a table.

10.6 A playbook is a decision interface, not a command transcript

The defective specimen P0 says, in essence, respond to any sign-in alert by disabling a shared account, restoring the latest backup, checking whether the portal loads, emailing a breach notice and closing the incident. It looks efficient because it hides the questions an operator must answer: whether the alert affects the business, what an account supports, what permission exists, whether backup data are correct, what the service test covers and whether any data exposure is established.

A deployable playbook should instead act as a decision interface between evidence, accountable owners and operational procedures. It can prescribe how to ask and document questions without granting action rights. A separate operator runbook, reviewed for the real architecture and authorization, may eventually define safe commands. The classroom P1 is not that operator runbook. This distinction protects a novice from treating a generic text example as permission to disconnect production accounts or send notifications.

Treat each gate as a typed contract with these fields: entry condition; required evidence; permitted analyst output; decision owner; approval boundary; operator if applicable; pass/fail/unknown branch; stop/escalate condition; emitted case artifact; next checkpoint. The words unknown, unavailable and not authorized must be first-class branch values. If the only outputs are “yes” and “proceed,” the playbook will eventually force an unsafe decision when inputs are missing.

This design is aligned in spirit with NIST SP 800-61 Revision 3, which integrates response with organizational cyber-risk management. The CTN gate fields are original teaching choices and should not be represented as mandatory clauses from that publication.

10.7 Seven gates as a controlled workflow

A usable P1 design supports the following seven gates, numbered 0–6, without inventing an eighth stage or changing the existing specimen's scope.

Lesson table; scroll horizontally to read all columns →

Gate Contract question Output that another responder can inspect Failure or unknown branch
0 — Intake What source, event time, reporter and business function justify case opening? Case record and raw wording, with source reference Route uncertain service linkage to triage, not automatic disruption
1 — Preserve and bound Which source, fields, time window and custodian can test the claim? Scoped collection request, provenance and expiry risk Missing access approval = stop access and escalate authorized preservation
2 — Prioritize What are impact, confidence and source-loss urgency? Provisional severity with next review condition No reliable score = record unknown and refer to incident lead
3 — Contain Which least-disruptive target is expected to limit harm, and who approves it? Action-specific proposal, permission, operator, rollback, test No approval or untestable scope = no disruptive execution
4 — Verify cause What mechanism is supported, what would disconfirm it, and what baseline is approved? Versioned claim/evidence ledger and cause-to-fix contract Unproven attribution remains unknown; do not destroy original source
5 — Recover Which target data, service paths, identity controls, audit and rollback must pass? Preannounced acceptance sheet, isolated results, separate production receipts Any mandatory test failure = no-go until a new reviewed decision
6 — Communicate/review What audience needs which supported facts, who may release them and when is the next status? Versioned draft, approvals, dispatch receipt if sent, assigned improvement Missing release approval = draft only; data question goes to privacy/legal owner

This is intentionally not a rigid chronological claim that a service cannot preserve evidence before an incident lead assigns severity. Some gates may be revisited as new evidence arrives. But revisiting does not make an earlier authority grant larger: C21's extension is a new permission event, not a retrospective reinterpretation of C17. Gate dependencies should be explicit. A cause hypothesis does not itself authorize account disablement, and an isolated recovery pass does not imply production approval.

The P1 record should include a source horizon for every branch. At 09:14, the team can discuss initial priority and C08 retention; at 09:35 it has C13–C16; at 09:42 it has C17–C19; at 09:54 it can discuss C20–C23; at 10:16 it can reject C27; at 10:45 it can recognize C30's limited acceptance; at 11:00 it has C31–C33's bounded data question. A second reader should be able to reconstruct the decision without looking at cards not yet released.

10.8 Test inputs must be selected to reveal wrong branches

A walk-through that tests only the main CTN case is inadequate. Because the main case includes a confirmed stored-state problem, a flawed playbook may appear useful even if it would unnecessarily disrupt a harmless alert. Negative controls expose whether the procedure can do less when evidence justifies less.

Main CTN branch: C13 confirms the S42 state discrepancy; C14/C15 narrow approval and job-origin claims; Gate 3 proposes a scoped hold. C17 approves it, C18 reports it enabled and C19 shows one observed route behavior. Gate 4 accepts C20's verified q-144 mechanism without naming a human; C22/C23 leave separate identity questions. Gate 5 refuses C27 after the blank audit actor and then recognizes C28 only as an isolated candidate pass; C29/C30 supply later, distinct production and limited acceptance records. Gate 6 prepares, but does not send, status drafts while C31–C33 remain uncertain about external delivery.

V10 negative control: A separate alert names the shared account, but the owner-approved read-only slot state is correct, an approved run manifest includes the exact questioned request, and no unexpected task or data signal is present in the supplied scope. The correct branch is bounded documentation and review, not account disablement, restore or breach notice. A supervisor may determine whether downgrade or closure is appropriate under the real criteria. This variant cannot disprove the actual main case because it is a different evidence set.

V10b missing-approver test: The relevant owner is unavailable while an authorized source faces a stated retention limit. The correct result is an authorized preservation escalation and a pending disruptive decision. The analyst must not make “emergency” mean “approval invented by the playbook.” A readiness defect should be recorded if there is no reachable alternate. The test succeeds when the procedure safely stops despite pressure to make progress.

These branches challenge three different failure modes: incorrectly treating harm as universal, incorrectly treating harmlessness as impossible, and incorrectly treating missing authority as permission. An assessor should not report “the playbook handled three incidents.” It handled one fictional main case and two separate hypothetical tests. The purpose is decision validation, not an operational case count.

10.9 Separate approval, execution and independent verification in the data model

A common documentation anti-pattern is a single “completed” field shared by the approver, operator and reviewer. That field has no stable meaning. Instead record an approval object with approver, scope, issue time and expiry; an execution object with operator, target version, time and error/receipt; and a verification object with independent observer, source, query/route coverage and verdict. All three carry a reference to the case and action ID. If a step has not occurred, its object is pending, not filled with anticipated success.

For CTN, the P1 implementation might show C17 as approval, C18 as reported execution and C19 as one-route observation. It must not collapse them to “S42 completely blocked.” At C21 an approval extension and a separate operator receipt update the allowed time, not every other permission field. At C24 the task-only disablement is distinct from the C25 later identity action. These are natural examples for a state-machine review: no transition to “verified” without an observation; no transition to “executed” without the required authority; no silent extension at expiry.

Quality assurance should include stale-input tests. What happens when the state read is older than the proposed change? What if the service owner changes the approved target? What if an evidence source expires before the custodian replies? What if the alleged negative control contains a hidden unexplained request not represented in its approved manifest? The playbook should route each inconsistency to a bounded new question and stop the relevant action. It should not hardcode that a task name or account label alone is suspicious enough to disable an identity.

10.10 Document scoring is not release certification

This book's six criteria use 0 for absent or contradicted, 1 for vague but recognizable and 2 for explicit, testable condition/owner/artifact: (1) trigger and bounded scope, (2) roles and approvals, (3) source provenance and uncertainty, (4) containment verification and rollback, (5) recovery acceptance and failed-test handling, and (6) audience-specific communications and review.

P0 earns 1/12 in the existing worked assessment: its generic “portal loads” supplies only a vague observable recovery condition worth 1; the other fields are unusable or unsafe. The P1 document design can score 12/12 because the seven gates express those conditions. Neither result says that P1 operated safely on any real system. The scorer should attach evidence from the actual text, not negotiate points to make a preferred draft look publishable.

A separate operational readiness gate is still required. Before live adoption, a real owner must verify contacts and delegation, retention procedures, architecture-specific route coverage, approved tools, simulation outcomes, accessibility, security/privacy review and change control. A high score with no owner approval is still draft. The CISA federal cyber incident and vulnerability response playbooks illustrate why documented coordination paths matter; they were written for federal civilian systems, and local adaptation requires scope and rights review.

Metrics are equally vulnerable to gaming. “Time to first action” might reward immediate unauthorized account disablement; “time to close” might reward avoiding questions. Prefer measurements whose numerators and denominators encourage auditable decisions, for example: number of approved disruptive actions with complete target/expiry/rollback fields divided by all disruptive actions performed; percentage of recovery candidates correctly stopped on a mandatory failure; and number of privacy-sensitive drafts dispatched without designated approval (target zero). Record sampling window and exclusions. A denominator of zero should be reported as not applicable, not “100% compliance.”

10.11 Worked good and bad release reasoning

Defensible P1 draft 0.2 note: “Replaced P0's automatic shared-account disable, latest-backup restore and unsupported breach message with seven evidence- and authority-gated decisions. Walked the main CTN cards only at their release checkpoints; stopped C27's failed audit gate; and kept C28 isolated from C29 production approval. V10 produced no disruptive action on an owner-confirmed harmless path; V10b escalated bounded evidence preservation without inventing an approver. Remaining before release: real owner delegation and technical route tests, privacy/communications approval mapping, and a witnessed simulation with retained results. Status: training draft, not for production.” This describes work performed without claiming the playbook passed field validation.

Incorrect note: “P1 scored 12/12, fixed incident response and has been deployed. Any unavailable owner can be bypassed for urgent actions.” It confuses written-field coverage with demonstrated operations, overrides the permission boundary precisely where the V10b test demands restraint, and asserts deployment absent any case receipt. It also avoids the uncomfortable result that a valid operational response sometimes consists of not acting disruptively.

10.12 Offline laboratory: rubric score and branch conditions

Goal: verify the classroom P0 score and that a missing approver or absent harm cannot result in a disruptive action in a tiny decision model. Inputs: six P0 criterion scores and three isolated branch tuples. Safety: standard Python 3 only, no network, no file access, no real response commands. Success: output exactly matches the lines below, and the learner explains that a branch result is a recommendation state, not a record of execution.

criteria = [0, 0, 0, 0, 1, 0]
print("C10 P0 points=", sum(criteria))
branches = [
    ("CTN", True, True),
    ("V10", True, False),
    ("V10b", False, True),
]
for branch, authority, harm in branches:
    decision = (
        "PROPOSE-AND-VERIFY" if authority and harm
        else "NO-DISRUPTION" if not harm
        else "ESCALATE-NO-EXECUTION"
    )
    print("C10", branch, "=" + decision)

Executed output:

C10 P0 points= 1
C10 CTN =PROPOSE-AND-VERIFY
C10 V10 =NO-DISRUPTION
C10 V10b =ESCALATE-NO-EXECUTION

The CTN authority=True fixture represents a deliberately simplified point after relevant approval, not permission at the 09:35 proposal checkpoint. PROPOSE-AND-VERIFY does not execute anything. The toy boolean harm field discards evidence strength, impact and scope; therefore this model cannot replace the seven-gate record. Its value is to fail visibly on two unsafe shortcuts. A stronger classroom test would inject an expired approval and an unverified route; both should leave action pending until a fresh owner decision. These are proposed test cases, not reported CTN outcomes.

10.13 Engineer a playbook as a versioned decision contract

A playbook is not the record of a command that ran. It is an interface that receives source-bounded inputs and directs a responsible person to a documented next decision. Its minimum useful behavior is to make uncertainty actionable without granting powers to the analyst. P0's imperatives—disable, restore, email, close—are dangerous because they implicitly assume account compromise, permission, backup correctness, privacy determination and service acceptance. P1 improves structure by defining seven gates, numbered 0 through 6. But a document that names gates can still fail at runtime, so the quality review must separate design coverage, dry-run decision quality and real-world execution evidence.

Each gate can be written as a contract with these fields: entry evidence and release cutoff; decision question; required producer/custodian; permissible analyst output; approver and scope; operator receipt if an action occurs; independent protection and legitimate-service verification; failure/unknown branch; next reviewer and deadline. An implementation that encodes only "true/false" loses critical distinctions. If a data source is not retrieved, the result is UNKNOWN, not FALSE. If an action is approved but no operator receipt exists, the result is APPROVED_NOT_EXECUTED, not DONE. If an isolated recovery test passes, the production gate remains pending. If a message draft is approved but not dispatched, the audience still has not been shown that message.

The NIST SP 800-184 recovery guide addresses planning, exercises and improvement. NIST SP 800-84, published in 2006, provides a framework for exercise design and evaluation. Neither prescribes P1's seven gates, a score of 12/12 or any CTN role/receipt. These are OpenCyber Academy teaching constructs and must be adapted to actual owner authority before any use.

10.14 Exercise branch coverage must challenge the unsafe option

A branch test is an input deliberately chosen to reveal whether a decision interface chooses the wrong action. Testing only the main CTN incident could produce misleading confidence: because S42 truly differs from its owner-approved target, even a crude playbook that always shuts down accounts might appear to have acted in response to harm. The negative V10 branch demonstrates the need for safe non-disruption when an approved run explains a correct slot state. V10b, where the service owner cannot be reached during an evidence-retention warning, tests a different failure: whether an unavailable approval is wrongly treated as emergency permission. The correct outcome is to escalate the authorized preservation question and keep the disruptive operation pending.

Two contrasted worked paths:

Correct path: At C02 the analyst opens a case without declaring account compromise; at C08 the analyst requests narrowly scoped IdP preservation under the proper custodian. At C13–C16 the team proposes an S42-only hold; C17, C18 and C19 separately record approval, reported configuration and one route test. At C20 the job-to-request mechanism strengthens while actor remains unknown. C27 fails the predeclared audit gate; C28 passes only isolation; C29 adds new production approval/action; C30 supplies limited acceptance. C31–C33 open a separate data inquiry and leave public messages unsent. A reliable playbook can stop between any two steps and tell a receiving operator which receipt is absent.

Incorrect path: The analyst sees V10's shared-account alert, runs a disablement action despite its owner-approved benign run, restores a backup despite correct current state, and announces a breach. Here the control has no supported harmful path and its collateral business cost is unjustified. If an approver is absent as in V10b, a blind escalation from "not reachable" to "automatically authorized" is an even clearer failure. The repaired P1 process must protect against action when action is unwarranted, not merely direct faster action in an incident.

10.15 Design measurable quality without confusing it with release approval

P0's 1/12 and P1's 12/12 count the six written-field dimensions in the published classroom rubric. They do not count real disabled sessions, timely custodians, safe restores or delivered communications. A document can achieve 12/12 with no single operational test executed. Therefore release assessment requires independent blind review of a frozen version and three scenario packets: main CTN, V10 non-disruption and V10b missing approver. The evaluator records the requested gate, expected decision, actual trainee output, failed fields, permitted next action, and an owner decision on revision. A design score cannot overrule an unsafe branch.

For a future program metric, define numerator, denominator, source and failure rule. "Percent of approvals documented" should count eligible proposed actions, not all incidents; a missing approval or wrong scope must count as failed rather than disappear from the denominator. "Percent of recovery tests passing" should include C27's no-go in the run population, not just successful C28. "Communication timeliness" should distinguish a draft produced before 12:00 from a message actually approved and sent. Avoid counting hypothetical V10/V10b actions as incidents resolved.

A revision is traceable when it names version, exact changed gate, reason for change, new test and reviewer. A new revision should not erase the previous failure. A source-card release must be frozen for each evaluated decision: C20 may improve Gate 4 after 09:46 but cannot be cited to justify a 09:35 proposal; C33 at 11:00 cannot be cited in C30's earlier service acceptance. This is why a professional playbook needs both a case-record schema and a facilitator release log.

10.16 Offline laboratory C10X — document score versus safe branch execution

Environment: Python 3 standard library, in memory. The invented Boolean fields are not authenticated decision receipts, and this program cannot deploy controls or send communications. The same rubric can score design and still require separate authority and evidence gates for a branch.

SCORES = {
    "P0": (0, 0, 0, 0, 1, 0),
    "P1": (2, 2, 2, 2, 2, 2),
}

def assess10(name, approval, receipt, data, audit):
    if receipt and not approval:
        return "INVALID_UNAPPROVED_EXECUTION"
    if name == "V10":
        return "INVALID_BENIGN_EXECUTION" if receipt else "DOCUMENT_REVIEW_NO_DISRUPTION"
    if not approval:
        return "HOLD_AUTHORITY"
    if not receipt:
        return "APPROVED_NOT_EXECUTED"
    if data is not True:
        return "NO_GO_DATA"
    if audit is not True:
        return "NO_GO_AUDIT"
    return "BOUNDED_CHECK_REVIEW_OPEN"

for name, values in SCORES.items():
    print(name + ": " + str(sum(values)) + "/12")

CASES = [
    ("V10", False, False, None, None),
    ("V10b", False, False, None, None),
    ("C17", True, False, None, None),
    ("C27", True, True, True, False),
    ("C28_ISOLATED", True, False, True, True),
    ("C30_DECLARED", True, True, True, True),
]
for name, *fields in CASES:
    print(name + ": " + assess10(name, *fields))
print("V10_FALSE_NEGATIVE: " + assess10("V10", True, True, True, True))
print("V10B_UNAPPROVED_ACTION: " + assess10("V10b", False, True, True, True))

Literal tested output:

P0: 1/12
P1: 12/12
V10: DOCUMENT_REVIEW_NO_DISRUPTION
V10b: HOLD_AUTHORITY
C17: APPROVED_NOT_EXECUTED
C27: NO_GO_AUDIT
C28_ISOLATED: APPROVED_NOT_EXECUTED
C30_DECLARED: BOUNDED_CHECK_REVIEW_OPEN
V10_FALSE_NEGATIVE: INVALID_BENIGN_EXECUTION
V10B_UNAPPROVED_ACTION: INVALID_UNAPPROVED_EXECUTION

Adversarial interpretation: P1 can score 12/12 while V10b still blocks disruptive action. C27's failed actor audit cannot be averaged away by correct data. C28_ISOLATED reports a favorable isolated test but no production execution receipt. C30_DECLARED is a toy consistency result for a limited accepted scope, not proof that a production system passed every test or that the incident is closed. The V10 hardcoded branch represents only the separate provided benign fixture; no user should build production approval logic from this toy string.

Supervised practice: Freeze P1 as draft 0.2 and write seven gate contracts, each with an unknown/stop branch. Evaluate main CTN, V10 and V10b in separate packets; record why the same input fields could support different operational choices. Run the exact C10X program, then ask a peer to challenge C27/C28 status and the unverified source semantics. Seven-point rubric: two for correct document scoring and its limits, two for main/negative branch distinction, one for approval-vs-execution, one for audit no-go and one for a versioned, owner-assigned retest. A real tenant action or learner-facing dispatch is forbidden.

Additional adversarial control and release rule: The added V10_FALSE_NEGATIVE row inserts a fictitious reported execution into the normally benign V10 branch. A playbook that answers DOCUMENT_REVIEW_NO_DISRUPTION despite such a report would mask potentially unauthorized action; the corrected classifier rejects it. V10B_UNAPPROVED_ACTION supplies a reported action without any permitted approver and rejects it before treating the case as an ordinary escalation. These are synthetic contradictions, not new CTN actions. The previous eight output lines remain unchanged. This toy guard does not authenticate the approval, prove that a control actually ran, or replace the chapter's seven-gate contract. A reviewer should preserve both the unexpected action report and the source/authority evidence that would be required to investigate it.

10.17 Synthesis and next chapter

The repaired playbook is stronger because it makes authority, source limits, accepted business state, failed tests and unknowns visible to a second responder. It is not an executable runbook. The next chapter's staged tabletop can measure whether a supervised learner actually follows the gates under time pressure, including when a source or approver is unavailable; success in a toy decision function is not operational readiness or an accredited qualification.

At each gate, a second responder should be able to tell who may approve and which evidence is still missing.

Common errors and limits

Practice: peer walkthrough and release decision

Give a second learner P1, the main case up to 09:14, then release later cards at their checkpoints. Require an actual filled gate record; the reviewer cannot use the answer appendix during the first pass. Repeat with V10 and V10b. Compare branch decisions against the preannounced rubric, record disagreements, revise P1 to draft 0.2, and list the approvals and technical tests still needed before any real operational adoption. This is a tabletop of text, not an exercise in a production tenant.

Exercises — subject 10

EX046 — Defect inventory. Input: P0 and C13–C33. Name at least six distinct defects, each with the case card or learning gate it would violate and the likely harm. A 2-point result separates a missing approval from an incorrect backup target and an unsupported public notice.

EX047 — Playbook rewrite. Input: P0 and P1. Produce a one-page seven-gate local draft (gates 0–6) with trigger, minimal evidence, approval/stop rule, result artifact and owner per gate. A 2-point result keeps it a supervised decision aid, not a command sequence or permission grant.

EX048 — Three-branch walkthrough. Inputs: main CTN case through C33 and separate V10/V10b. Produce a three-row branch table: evidence, action status, approval gate, stopping or review condition. A 2-point result applies V10 only to its variant and does not execute a disruption under V10b. Compare your branch table to the C10 recommendation-state fixture in §10.12; do not treat its output as execution evidence.

EX049 — Quality score. Input: P0, P1 and the six criteria in §10.4. Score each criterion 0–2 for both drafts, cite the text that earns points, and explain why 12/12 document design would still require field testing and review. A 2-point result reproduces P0's 1/12 and distinguishes design from operational proof. Reproduce the C10 four-line offline output and explain why the P0 point count and toy branch results cannot certify a field-ready playbook.

EX050 — Versioned release note. Input: EX046–EX049. Write a 100–160-word draft 0.2 release note for future Chapter 11 simulation, including three tested branches, two remaining approvals or technical checks, one owner-assigned improvement and an explicit “not for production” status. A 2-point result does not mark the book or playbook complete.

Subject synthesis and next step

Ten sequential subjects now teach a supervised response path: prepare ownership, make bounded decisions, triage and preserve evidence, investigate alternatives, contain an observed harm path, test a cause-related change, restore correct service, communicate honestly and review the playbook itself. Chapters 11–12 use these artifacts in a supervised simulation and case portfolio. The full book still needs deeper teaching, independent review and 300-page A4 verification.

Worked answers

EX046 — Model P0 defect inventory. (1) “Any sign-in alert” omits service/impact discrimination; Chapter 3 required a bounded case. (2) Automatic account disablement lacks owners/approval and would disrupt approved batch-17 (C14). (3) It ignores narrower S42 control and rollback (C17–C21). (4) “Latest backup” would undo approved S40/S41 reservations (C26). (5) “Portal loads” would miss C27's blank alternate-route audit actor. (6) A blanket breach email is unsupported by C31–C33 and bypasses privacy/communications review. (7) Closing on a page load discards C30 monitoring and unresolved cause/data work. (8) No source provenance, version or next checkpoint makes a second responder unable to reproduce the decision. Any six distinct, case-linked defects with likely harm satisfy the two-point criterion.

Additional professional worked reasoning: P0 fails safe decision design because its shared-account trigger has no corroboration, its account disablement has no approved scope, its restore choice ignores S40/S41, and its breach email lacks data evidence and release authority. The portal-load statement provides one weak observable check and explains the published 1/12, not an accepted recovery test. List a failed gate and required owner/source for every unsafe imperative.

EX047 — Model seven-gate local draft. Gate 0: a time/source/service signal opens a case; analyst preserves wording, incident lead owns classification. Gate 1: custodian receives a narrow source/time/field request; missing permission stops access, approaching retention triggers escalation. Gate 2: incident lead records impact, confidence, priority and review trigger; no action right follows from a priority label. Gate 3: service/identity owner approves target, expiry, operator, verification and rollback; absent approval stops disruptive work. Gate 4: source owner preserves and tests the cause hypothesis against an approved baseline; unknown actor remains unknown. Gate 5: recovery and service owners compare data target, two functional routes, audit and rollback, rejecting failed mandatory criteria. Gate 6: communication/privacy owners approve audience-specific messages and assign next update/improvement. Each gate produces a dated case artifact; none is an execution command.

Additional professional worked reasoning: P1's seven gates are 0–6, not additional chapters. A complete revision records evidence horizon, owner, action or hold, expected result and next check for each. It must separate source requests from received copies, approval from execution, isolated C28 from production C29, and data referral from external notice. The full 12/12 document-field score is necessary for this exercise's text criterion but insufficient for any release decision.

EX048 — Model branch table. Main CTN: C13 confirms wrong stored state, C20 links an unapproved task to q-144; recommend scoped hold, follow C17/C21 approval and C18/C19 observations, then C24–C30 remediation and recovery; stop at any failed acceptance criterion such as C27. V10 only: correct slot state plus exact approved job record and no unexpected task within supplied scope; document limited negative control, do not disable account or send breach notice, and let the authorized supervisor decide downgrade/closure. V10b only: owner unavailable before a source-expiry warning; request authorized bounded preservation and invoke the real escalation route, but leave disruptive action pending. The three rows are separate simulations; one row's result is never imported into another's evidence.

Additional professional worked reasoning: For the main CTN branch, cite C13–C19 at their released times; do not use C20 at the 09:35 proposal or C33 at the 10:45 service decision. The action remains a proposal until C17, reported execution until C18 and one-route observed effect after C19. A later C29/C30 return is separate, and C31–C33 never establish external delivery or absence of disclosure. A single all-green incident field would conceal these transitions.

C10X strengthened branch reasoning: Two added adversarial rows keep the original P0/P1 scores and six branch outcomes intact. The benign V10 case becomes INVALID_BENIGN_EXECUTION if a simulated operator receipt is injected, and V10b becomes INVALID_UNAPPROVED_EXECUTION if a disruptive receipt is asserted without approval. Neither row states that CTN performed an operation. A complete EX048 response distinguishes expected safe decisions from contradictory input/receipt evidence and requests an authorized investigation of any alleged execution.

EX049 — Model score. Using the six 0–2 criteria in §10.4, P0 scores 0 trigger/scope, 0 authority, 0 evidence, 0 containment/rollback, 1 recovery, 0 communication/review = 1/12. The one point reflects a vague but observable “portal loads” check; it lacks data, audit and failed-test handling. P1's Gate 0 supplies trigger/scope, Gates 1–2 provenance and uncertainty, Gate 3 authority and reversible containment, Gates 4–5 cause and acceptance, and Gate 6 audience/next review. As a document design, it can score 2 in each = 12/12. That is not field effectiveness: the main case, V10 and V10b walkthroughs, source/rights check and owner approval remain required. A local scorer could lower a P1 criterion only by pointing to an actual missing field or failed branch, not by changing the rubric after seeing the result.

Additional professional worked reasoning: The separate V10 specimen must select documentation/no disruption because its supplied owner state and approved run explain the alert in the tested scope; V10b must escalate preservation while holding disruptive work for an authorized service owner or valid alternate. C10X prints these differences but authenticates no approvals. A bad branch cannot be excused by P1's 12/12 score; record version, failed decision and retest.

EX050 — Model draft 0.2 release note. “CTN response playbook draft 0.2, for Chapter 11 tabletop only; not for production use. The main-case walk-through required distinct C17 approval, C18 execution and C19 verification, and stopped C27's failed audit gate before recovery. The V10 negative control did not disable the shared account or announce a breach. V10b preserved the expiring-source request through an authorized custodian while leaving disruptive action pending without an approver. The service owner must approve actual containment limits and rollback; the privacy/communications owners must review audience wording. A technical reviewer must test alternate write routes and the new audit actor field in an authorized environment. The incident lead owns an improvement ticket for C01's missing after-hours alternate, due before the next rehearsal, with a reachable-contact test as its closure criterion. Version 0.2 is a reviewed classroom draft, not a completed course book.”

Additional professional worked reasoning: A useful quality report includes the six itemized 0–2 scores, P0=1/12 and P1=12/12 for written criteria, one failing/pending receipt per selected branch, independent reviewer, frozen card release and the next revision. It must not describe C28's isolated pass as production effectiveness, C30's limited acceptance as incident closure, or an unapproved communication draft as sent. The observable improvement is a correct supervised decision on main CTN plus V10/V10b, not a generic claim of playbook certification.

C10 playbook-branch fixture — worked laboratory result.

C10 P0 points= 1
C10 CTN =PROPOSE-AND-VERIFY
C10 V10 =NO-DISRUPTION
C10 V10b =ESCALATE-NO-EXECUTION

P0 earns 1/12 for a vague recovery observation; it does not satisfy authority, evidence or audit criteria. CTN returns PROPOSE-AND-VERIFY only in the toy branch after a simplified approval, V10 returns NO-DISRUPTION, and V10b returns ESCALATE-NO-EXECUTION. None of the strings records a performed production action. EX048/EX049 require the real gate fields, release horizon and owner decision in addition to these outputs.