CH_39_v3.md

decisions/spine/v3_exemplars/CH_39_v3.md

CH_39 — v3.1 EXEMPLAR (West Africa Modern: The Man Who Patents the Morning)

What this is. A worked transformation of docs/spine/CH_39.md (v2.5) to the SPINE_SCHEMA_v3.md v3.1 beat→fork→state graph — the gold-standard MODERN / reveal-LIFTED reference for the 79-chapter rewrite, and one of the three files harness/check_spine_graph.py is kept green on. It does NOT overwrite the live entry (the corpus stays v2.5 until Josh ratifies v3). It demonstrates the v3 DELTA: the machine layer (beat graph / fork graph / boss-as-beats / SQ beats / scene rows / seam diffs / derived axes) authored in full typed form to the v3.1 template — one row grammar, fixed field order, every field present-or-none, closed enums, the two-namespace state grammar (the ws namespace resolves to a Worldstate variable; the local namespace is produce-before-consume), first-class actors/systems/threads, and the per-beat reveal gate. The PRESERVED blocks are UNCHANGED from CH_39.md — cited by reference, not re-authored (that is the point: v3 is additive; the anchors + [SRC:] + reveal discipline survive intact).

PRESERVED (unchanged from CH_39.md v2.5): Block 1 preamble · Block 2 Entry header · Block 3 Continuity anchor · Block 4 Body prose (the 5-paragraph emotional lens — kept short, kept literary; NOT the event spec) · Block 5 Threads (T1 ESCALATION, T2 ANCHOR, T3 ESCALATION, T11 ANCHOR, T12 ANCHOR) · Block 6 Civ-marks · Block 7 Everything-woven · Block 12 Key ally NPCs · Block 14 Protected-framing · Block 15 Anti-fringe · Block 16 Three-layer · Block 17 Asset anchors · Block 20 Decisions. v3 changes only Blocks 8/9/10/11/13/18 + the transition seam, below.

---

§10 · BEAT GRAPH (was: 4 prose bullets → now: 11 typed v3.1 beats)

Beat-scale mode_variety (folds to the chapter mode_variety_check): combat B05/B08 · puzzle B06 · investigation→puzzle B04/B09 · learning B02 · discovery→learning B03 · character B01/B07/B10 · transformation B11 → projected five combat=Y; puzzle=Y; learning=Y; character=Y; transformation=Y earned by NAMED beats (retires the R4 waiver structurally). dominant_combat_mode direct (the modal combat beat B05).

---

§10b · FORK GRAPH (was: one prose trichotomy at the resolution bullet, band vocab inconsistent → now: two typed action-keyed forks; bands live ONLY in the derived delta)

FORK_CH39_A — the exposure-response (anchor CH39_B10)

optiondirectiondelta (class-bounded)axis_valuemark_writerelationship/factionopportunity_effectsws_writes
restore the knowledge to the community, free the fixer cleanlygenerative+Substantialnone{yoruba_community: protective, high-persistence}ws.faction_standing_per_faction: yoruba +open: knowledge-restored route (lore/relationship class)ws.community_state_per_region: +honored; ws.journal_status: +returned-the-word
expose for the win and the leveragegenerative+smallnone{yoruba_community: neutral-positive}ws.faction_standing_per_faction: +smallopen: leverage route; close: full-restoration → conserved by later revisitws.antagonist_operational_state_per_region: +exposed
expose and move onneutral~0none{yoruba_community: unmarked}nonenonews.community_state_per_region: unchanged
seize the exposed knowledge and apparatus for usecorrosive−Substantialnone{yoruba_community: corrosive, high-persistence}ws.faction_standing_per_faction: yoruba −open: seized-apparatus kit route; close: community-restored route → conserved by an equivalent kit elsewherews.community_state_per_region: +wronged; ws.reputation_biography_propagation: +extractive
take it and burn the record to keep itcorrosive−Substantial (terminal-band texture)none{yoruba_community: corrosive, permanent}ws.faction_standing_per_faction: −hardopen: terminal-kit; close: restoration + fixer-turn → conservedws.community_state_per_region: +desecrated; ws.reputation_biography_propagation: +feared
Vocabulary FIX vs v2.5: the live CH_39.md names truly_good / good_enough / neutral / evil (four labels, drops L5, mis-types "neutral"). v3.1 keeps the fork options ACTION-keyed with a direction; the five texture bands (Truly Good / Good Enough / Drifting / Evil / Pure Evil) are the DERIVED axis; "Neutral" is reserved for the WS3 world-state; path_bucket stays UNLOCKED here (committed only at Ch 65). [SRC: T1_Integrity_Paths_Worldstates_Master # 3.2]

FORK_CH39_B — the fixer-handling / Tunde (anchor CH39_B07)

optiondirectiondelta (class-bounded)axis_valuemark_writerelationship/factionopportunity_effectsws_writes
free-and-turn — show him what he was part of, give the way outgenerative+Accumulativenonenonews.relationship_history: Tunde bought → ally (turned)none+carried modern-WA ally (light); proof the modern enemy runs on the un-convincible
use-and-discard — leverage him, then drop himcorrosive−Accumulativenonenonews.relationship_history: Tunde bought → discarded (burned)noneTunde not carried; a local contact spent

---

§9 · BOSS AS BEATS (was: Block 9 phases re-narrated separately → now: a THIN JOIN INDEX; phases ARE beats)

§11 · SIDE-QUESTLINE BEATS (was: prose gate/hook/reward line → now: machine gate + beat interleave)

§13 · SCENE / DIALOGUE ANCHOR ROWS (was: 5 prose moment-titles → now: typed rows bound to beat_id)

scene_anchor_idbeat_refscene_typepath_bucketanchor_typeparticipant_refshard_line_relevance
SC_CH39_consultationCH39_B02per_chapter_cutsceneUNLOCKEDdialogue_initiationbabalawo, protagonist, CHAR_0002HELD: ase felt-not-declared
SC_CH39_the_brandCH39_B04per_chapter_cutsceneUNLOCKEDscene_entrythe director (record), protagonistLIFTED: House named
SC_CH39_hero_of_his_storyCH39_B09boss_encounter_introUNLOCKEDdialogue_initiationthe director, protagonistHELD: chain dark above operative
SC_CH39_the_turnCH39_B07branch_decision_pointUNLOCKEDbranch_decision_pointTunde, protagonistnone
SC_CH39_the_recordCH39_B09boss_encounter_resolutionUNLOCKEDbeat_transitionthe director, babalawo (record), protagonistLIFTED

(audio_priority_layer / scene_audio_intent / thematic_anchor → [POPULATE→T0_Scene_Spec_Registry], driven off these rows.)

§18 · DERIVED-STATE AXES (computed at chapter close; separate columns — texture ≠ ending)

---

SEAM STATE-DIFFS (was: prose Departure/Passage/Arrival → now: machine-checkable exit→entry assertions over the ws namespace)

CH_38 → CH_39 (the crossing into modernity — the single largest seam)

CH_39 → CH_40 (Africa-Modern triad, Nigeria→Congo)

---

Exemplar notes (for Fable + Josh)

Generated by harness/site/structure_site.py — the URL path is the repo path. review root