Contract Audit
Global Five Over-Rules
- Evidence before elegance. Never improve the story by weakening the evidence.
- Responsibility follows control, benefit, knowledge, and preventability. Do not stop at the most visible actor.
- Keep the taxonomy intact. Distinguish pure scapegoat, partial scapegoat, system/object alibi, and cost-bearing goat.
- Steelman before judgment. Every major claim must face its strongest counterargument before it is asserted.
- Handoff cleanly. Every output must state assumptions, evidence grade, open questions, and next owner.
When to use
- After a chapter rewrite pass under treatment class
structural-polishorfull-craft-rewriteper rule 08 (these classes require a contract file). - Whenever the chapter's contract YAML is edited mid-cycle — the audit then verifies the edit is consistent with prose changes.
- Before any
status: in-review → readytransition for a chapter under contract per rule 09.
Lower treatment classes (prose-polish, defamation-safe-tighten) do not require a contract; this skill does not apply to those.
Decision rubric
For each slot in the chapter's book/chapters-v2/<n>-<slug>.contract.yml:
knows: slot
Pass: every concept-id in reader_state_after.knows is named in the chapter prose and used (not just mentioned in passing). The use must be observable — a sentence that depends on the concept, not just one that defines it.
can_discriminate: slot
Pass: every distinction-id in reader_state_after.can_discriminate is installed by the chapter — meaning the chapter contains BOTH (a) a passage that names the distinction and (b) a passage that demonstrates the distinction in action. Naming without demonstration installs a label, not a discrimination.
feels: slot
Pass: every declared stance transition (e.g., sympathy:visible-goat:on → sympathy:chain:on) has a recognition beat that earns it per rule 12 V1 (earned not manufactured) and rule 12 V3 (sympathy follows the chain). The audit must:
- Identify the recognition beat (the prose moment where the transition lands).
- Verify the transition's prose evidence is consistent with the chapter's source ledger (no V7 evidence-grade mismatch).
- Verify the transition's craft moves do not violate rule 12 V8 (no internal laundering).
Conditional pass: the transition occurs but the recognition beat is weaker than the prior chapter version (per snapshot in process/audits/history/). Document as Gate-B "conditional pass" per rule 12.
primed_for: slot
Pass: every fair-clue-id in reader_state_after.primed_for is planted in the chapter at a verifiable line anchor. Plant must be implicit enough not to spoil the future payoff but explicit enough that the future chapter's recognition can refer back.
Conflict handling
Chapter delivers more than the contract declared. Permitted, but record the over-delivery as
additional_statein the audit output. Over-delivery infeels:is a Laura red-team flag — the chapter may be making the reader feel something the contract did not authorize, and the over-feeling may be implication-driven (rule 07).Chapter delivers less than the contract declared. Failed audit. The chapter is reverted to
status: in-rewriteper rule 09. Either revise prose to deliver, or revise contract with rule-09 contract-change-control (skill/contract-change-control).Contract uses concept-ids not declared in
book/registries/cognitive-arc.yml. Soft fail; the audit flags the gap and routes to Bonnie to either add the concept to the cognitive arc or use an existing concept-id. Concept-ids without arc declarations are silent fragmentation.feels:slot declares a transition but Laura red-teams it as V3 violation (sympathy lands on wrong actor). Hard fail on rule 12 core value. Laura's veto authority under rule 03 amendment applies. The chapter cannot promote toready; either revise prose to fix V3 OR revise contract to declare the actual stance the chapter produces (and re-justify it).Audit is run on a chapter whose contract was just amended. Run
/contract-change-controlfirst to validate the amendment did not mask failure; only then run contract-audit against the new contract.
Escalation conditions
- Escalate to Bonnie when
can_discriminate:slot failures are structural (the distinction's installation requires scene reorder, not prose tweak). - Escalate to Laura when
feels:slot transitions pass structurally but fail rule 12 V1, V3, or V8. - Escalate to Nancy when
feels:slot transitions pass structurally but the underlying claim has rule 12 V7 (severity-evidence mismatch) on a live-content actor. - Escalate to Stephen when
knows:slot failures stem from evidence-grade mismatch in the cited claim (concept is named but the citation supporting it is C-grade). - Escalate to xaiolai when the contract's declared
feels:transition matches the chapter prose but xaiolai's Gate B read disagrees on whether the transition is "genuinely stronger" — the rubric provides outcome classes; the human still adjudicates.
Boundary-case recipes
Auditing a contract that declares
knows: [](empty know-slot). Permitted — a chapter that installs only discriminations or feelings without introducing new named concepts uses this shape. Audit only the non-empty slots.Auditing a contract with multiple
feels:transitions. Audit each transition independently. A chapter cannot pass overall if any transition fails its recognition beat; partial pass is recorded but the chapter does not promote.Auditing a contract whose
primed_for:includes a fair-clue paid off in a chapter that does not yet exist. Permitted during rollout; the cross-chapter/callback-auditwill flag the missing payoff at book-level. Contract-audit only verifies the plant exists.Auditing a contract where
reader_state_beforereferences concepts the prior chapter does not deliver. Hard fail; the chapter requires a precondition the corpus does not provide. Either Bonnie revises chapter order, or Wayne adds a brief precondition-installation passage near the chapter opening.Auditing a chapter with no contract because the treatment class is
prose-polish. This skill exits withnot-applicableand routes to the class-specific audit chain (audit-chapter,evidence-audit,fair-clue-audit, defamation-wording).
Output format
Owner: contract-audit (skill run by <wayne|stephen|joe|laura>)
Task: Audit book/chapters-v2/<n>-<slug>.md against book/chapters-v2/<n>-<slug>.contract.yml
Inputs reviewed:
- book/chapters-v2/<n>-<slug>.md
- book/chapters-v2/<n>-<slug>.contract.yml
- process/audits/history/<n>/<prior-timestamp>/contract-audit.md (if exists)
- .claude/rules/12-reader-experience-values.md
Output: contract-audit memo at process/audits/<n>-<slug>-contract-audit.md
Evidence grade: N/A
Assumptions: <e.g., contract was drafted by Wayne pre-rewrite and signed off by Bonnie>
Open questions: <slots whose verdicts are conditional + reason>
Risks: <slots whose passing depends on unverified downstream chapters>
Handoff: <next owner — wayne if revise, laura if feels-slot review, nancy if V7/V8, xaiolai if Gate B>
Per-slot findings table:
| Slot | Element | Verdict (pass/conditional/fail/over-delivered) | Evidence (line anchors) | Required action |
|---|
Per-feels:-transition table:
| Transition | Recognition beat (line) | V1 verdict | V3 verdict | V8 verdict | Overall |
|---|
Examples
A: "Contract-audit complete for ch-04. knows: 3/3 pass. can_discriminate: 2/2 pass (proxy-vs-sponsor demonstrated at L312 with the named example). feels: 1 transition, recognition beat at L401. V1 pass (transition rests on cited memo CITE_04_017 at L398). V3 conditional — sympathy does land on the chain by L410, but a sympathetic descriptor for the proxy at L385 (scan-implication flagged) leaves residual sympathy that competes with the transfer. V8 pass. primed_for: 2/2 pass (motif of the empty chair planted at L80 and L520; both anchored in motif-registry). Overall: conditional pass; escalate to Laura for V3 read." Real audit shape: most slots pass cleanly, one transition is conditional rather than failing outright, and the route to Laura is named. The cross-skill reference (scan-implication flag) shows the audits compose.