BESTFRIEND_SEED_DOSSIER.md

decisions/BESTFRIEND_SEED_DOSSIER.md

Best-friend seed dossier — the Ch-1 Selection-2 entity: row shape, seed-transfer contract, Ch-75 payoff hooks, and the combat-focus decision brief

CANON SUBORDINATION — this document is PROPOSAL-TIER: it serves canon and never outranks it.
The canon: the CVD · the T1 foundation docs · the T0 registries (registries/) · the spine
(docs/spine/CH_*.md) · the region pages (_source/02_Tier_2_Region_Pages/). Authority order:
docs/DOC_MAP.md § 0.
Canon served: T3_Core_Characters §2.2 / §3.2 / §3.4 · docs/spine/CH_01.md ·
docs/spine/CH_13.md · docs/spine/CH_75.md · T0_Character_Index · T0_Hard_Lines ·
T0_Worldstate_Variables · T1_Integrity_Paths_Worldstates_Master §8.11 ·
docs/spine/DECISIONS_PENDING_JOSH.md · docs/boards/SLICE_COMPLETION_BOARD.md ·
docs/PRE_5090_BUILD_PLAN.md.
READ THAT CANON FIRST — open it and derive from it before you build anything from this document.
If this document disagrees with canon, CANON WINS and this document is the defect. Nothing here is
applied until it is ratified into canon.

This document mints no registry row, edits no canon file, applies nothing to any registry, and

changes no numerical, naming, hard-line or §17 content. It proposes a row SHAPE, a transfer

CONTRACT, a hook INVENTORY, and one decision BRIEF routed to Josh through the main director.

Honest tier: ROW SHAPE AND CONTRACT — TEXT ONLY, NOTHING APPLIED. No character row exists for this

entity today and none is minted here. No image, plate or geometry is produced or dispatched.

PRONOUN CONVENTION, declared before anything reads it, on the exemplar's own precedent

[SRC: PERSONA_EXEMPLAR_CHAR_0002 # The pronoun convention, restated where an author will hit it].

This document names the seed entity BY RELATION — the best friend, the friend, the one who stayed —

and carries NO GENDERED PRONOUN for that entity anywhere, using the relation word or the

gender-neutral form the spine itself uses ("They call after you once")

[SRC: CH_01 # Body prose]. That is not a stylistic preference: the friend's gender is the player's

Ch-1 Selection-2 choice and is the very parameter this dossier exists to carry

[SRC: T3_Core_Characters # Chapter 1 Character Creation], so a gendered pronoun here would be an

authored value in the one cell that must stay unauthored. Where this document says "she" of

CHAR_0002, it is inheriting the exemplar's declared DESIGNER-SIDE READING CONVENIENCE and nothing

more — her gender is inherited from the same unauthored selection

[SRC: T3_Core_Characters # Identity Parameters]. Every player-facing surface derived from this

document is pronoun-free with respect to both entities, and any consumer strips the convention

before authoring a line.

Citation form, declared on the face. Every citation is either an insertion-invariant

doc-and-heading-fragment anchor or a registry row-key anchor, the two forms

harness/check_source_anchors.py proves. This document carries ZERO line-range citations: a new

line-range pointer hard-fails the line_citations tooth unless docs/line_citation_baseline.json

is re-emitted in the same commit, and that baseline is a shared file this lane is forbidden to

touch. Where a claim rests on a build/ file, which the anchor index does not cover, the path and

section are named in plain prose instead.

0. DERIVATION

DERIVED FROM:

the Chapter-1 CANON cell and the BD-08 asset-blocker note

[SRC: SLICE_COMPLETION_BOARD # Chapter 1 -- the other realm]

[SRC: SLICE_COMPLETION_BOARD # BD-08].

hard-line binding), Continuity anchor (THE CONSTANCY), Body prose (the friend at the door and on

the plain, the fight about nothing), §10 Beat graph (CH01_B03 the finding, CH01_B11 the childhood

lived, CH01_B12 the argument), §10b Fork graph (the selections are not fork nodes), Key ally NPCs

(the seeding sentence this dossier is built on), Dialogue and scene anchors (SC_CH01_the_argument),

Mechanical anchors, End-state carry-forward (biography_set; companions_present NONE), Seam

state-diffs, Decisions surfaced (Q1, Q2, Q7, Q8).

zero-forward-valence clause), §10 Beat graph (CH13_B01 the join, CH13_B13 the gift), Key ally NPCs,

Dialogue and scene anchors (SC_CH13_the_gift, no gender fixed on either party), Seam state-diffs,

Decisions surfaced (the gender-discipline record and the flagged pre-existing prose defect).

layout (grief_country hosts CH75_B03), §10 Beat graph (CH75_B03), §10b Fork graph (FORK_CH75_B and

its three band rows), Key ally NPCs (the full role-level build of the friend and the echo-completion

clause), Dialogue and scene anchors (SC_CH75_the_one_she_grew_up_beside), Mechanical anchors

(childhood_best_friend), Three-layer surfacing, Decisions surfaced (Q14, the CF-2 payoff APPLIED).

Creation (Selection 2 in full), §2.3 The Biography Parameter System, §3.1 Canonical Identity, §3.2

Identity Parameters (the gender inheritance and the designed resonance), §3.4 Ch 13 South Africa —

The Active Companion Activation (the companion architecture bullet list, including the no-combat

ruling and the D-2 F-STAR re-affirmation).

For-Life Inversion, §8.11.7 Player-Shaped Ally Stat Spreads, §8.11.8 The Intelligence Axis and Ally

Behavior Quality, §8.11.9 Allies as Build Components.

by-relation, name-deferred, realm-side precedent this row shape follows; CHAR_0002 Ntala as the

seed's destination; CHAR_0005 The Elven King as the title-only naming precedent.

which state key carries the Ch-1 selections (§4 finding G-1); WS_007, WS_008, WS_027.

and loyalty system, whose one-line spec is the transfer contract this dossier expands

[SRC: PRE_5090_BUILD_PLAN # WS-8].

source of finding F-3, which already carries the combat-focus collision as an unresolved item.

fight), the sixth sitting (the ending sequence), the twenty-ninth sitting (the by-play selection

mechanism), and the head board, checked before §6 was written so no ruled question is re-asked.

there as a finding for the director and deliberately not resolved by that lane. Cited in prose

because build/ is outside the anchor index.

NOT DERIVED (authored judgment, and why it had no canon home):

fixed cells, player-parameterized cells, and Josh-deferred cells. T0_Character_Index has no

column that marks a cell as player-varying, and CHAR_0002's row expresses its own gender fork by

writing prose into voice_signature_notes rather than by any schema affordance. The framing is

this document's; the schema hole it exposes is carried as finding G-3.

"best-friend seeds the main companion" [SRC: PRE_5090_BUILD_PLAN # WS-8], and no canon states the

write, hold, read, apply, firewall and re-read stages. Each clause is derived from a cited canon

fact and names its derivation inline; the sequencing of them is authored.

Alternative 5 is grounded in FORK_CH75_B's own TRULY_GOOD row [SRC: CH_75 # Fork graph] but the

proposal to route the orphaned clause there is this document's.

ROUTING NOTE (contract clause 2). persona and character-row are not listed work kinds in

harness/route.py, so no read-set exists for the dossier's §2-§5 halves. The nearest listed kind for

the §6 half is decision, and it was resolved live — `python harness/route.py decision --chapter

CH_01 — returning CLAUDE.md's decision protocol, the DECISIONS head, docs/BATCH1_RULINGS.md`, the

CVD, and CLAUDE.md's rulings-are-the-floor law, read in that order before §6 was written. The canon

nodes read in place of a row-shape read-set are the eight enumerated above, read in the order the

mandate set. Adding a character-row kind to route.py is finding G-8.

1. The absence, located and cited twice

The mandate's premise is measured, not asserted, and the board records it in two places on two

different rails.

RECORD ONE, the Chapter-1 CANON cell. The board's Chapter 1 entry is tiered GREYBOX, and its

evidence line ends with the measurement and the consequence in the same sentence: 0 named characters

carry this node as first appearance in T0_Character_Index, measured over 167 rows, and therefore

"the best-friend who seeds the main companion has no character row". The cell's first Remaining line

is that row, stated as a canon debt rather than an art debt — "the best-friend character row -- the

companion seed is canon with no registry entity"

[SRC: SLICE_COMPLETION_BOARD # Chapter 1 -- the other realm].

RECORD TWO, the BD-08 blocker note. BD-08 is the named-slice-characters-with-a-character-asset

blocker, and it closes with the same absence read from the ART side: "Chapter 1 still carries ZERO

named-character rows, so the best-friend who seeds the main companion has no registry entity to

generate from" [SRC: SLICE_COMPLETION_BOARD # BD-08].

The two records are not a duplicate. The first says the CANON layer is missing a row the story

already depends on; the second says the ASSET layer has nothing to generate from because of it. One

row shape answers both, which is why this dossier proposes one and not two.

The absence was re-measured at head before this document was written, on the same discipline

CHAR_0164's own provenance cell records: a scan of T0_Character_Index's

chapter_first_appearance column returns exactly three rows anchored to the realm nodes —

CHAR_0001 the Protagonist, CHAR_0005 the Elven King, and CHAR_0164 the Mother, all at Prologue —

and none at Ch 1 [SRC: T0_Character_Index @ CHAR_0164] [SRC: T0_Character_Index @ CHAR_0005]. The

registry's last allocated id at that read is CHAR_0167. The zero is an answer, not a search that

could not reach.

2. What canon fixes about the seed entity, before any row is shaped

Everything in this section is cited. Nothing in it is this document's.

best friend in the fairy realm" [SRC: T3_Core_Characters # Chapter 1 Character Creation]. Ch 1's

entry header carries the same four selections as binding canon and names the downstream in the

same clause — the best friend's gender determines the healer's-child gender at Ch 13

[SRC: CH_01 # Entry header].

life" [SRC: CH_01 # Body prose]. CH01_B03's objective is to find the friend, "a life, not a menu"

[SRC: CH_01 # Beat graph]. The sibling Selection-1 mechanism was ruled by-play at the

twenty-ninth sitting; no equivalent mechanism is ruled for Selection 2, and none is invented here

[SRC: DECISIONS_PENDING_JOSH # RULED 2026-07-30 (twenty-ninth sitting)].

the door and out on the plain through every afternoon of the years the grudge runs, not from

obligation but because they simply are [SRC: CH_01 # Continuity anchor]. That is Josh's own third-

sitting authoring: "The best friend was always there, by their side, making them happy"

[SRC: DECISIONS_PENDING_JOSH # RULED 2026-07-27 (third sitting)].

clumsily to help and the child closing, deflecting and walking away, and no beat mends it before

the fall [SRC: CH_01 # Key ally NPCs]. The scene row holds the care clause: the friend is only

trying to help and nobody is a villain [SRC: CH_01 # Dialogue and scene anchors]. There is no

option to mend it — the ruled crueller cut [SRC: CH_01 # Fork graph].

best friend is not carried through, and seeds the Ch-13 companion Ntala's starting build"

[SRC: CH_01 # End-state carry-forward]. The seam assertion says the same

[SRC: CH_01 # Seam state-diffs].

best friend's gender, skills, and combat focuses SEED the starting gender, skills, and

combat-focus of the healer's child (CHAR_0002, Ntala) — the protagonist's main and longest

traveling companion, who joins at Ch 13 and then develops across the arc"

[SRC: CH_01 # Key ally NPCs]. T3 states the narrower gender half as the tier-doc canon: "The

selected best friend's gender determines the gender of the healer's child who joins the

protagonist at Ch 13 South Africa" [SRC: T3_Core_Characters # Chapter 1 Character Creation], and

§3.2 restates it from the destination side with the design reason attached

[SRC: T3_Core_Characters # Identity Parameters].

invisible on first play and never surfaced", carrying zero forward reveal-valence

[SRC: CH_13 # Continuity anchor]. Ch 1 binds the same at CH01_B03's reveal field

[SRC: CH_01 # Beat graph].

the friend is met again at the homecoming as an ally-side reunion in the Movement-1 grief-country

register, built at role level with the name deferred, reveal-orthogonal, never a mid-game travel

companion, and no-dead-end [SRC: CH_75 # Decisions surfaced] [SRC: WHOLE_ARC_CONNECTIVE_WEB # CF-2].

This dossier does not reopen it.

the naming method and Josh" [SRC: CH_75 # Key ally NPCs], and again on the mechanical-anchor line

[SRC: CH_75 # Mechanical anchors]. The method is docs/NAMING_METHOD.md [SRC: NAMING_METHOD]. The

discipline is the one HL_0099 sets for the King and CHAR_0164 inherits by relation for the mother

[SRC: T0_Hard_Lines @ HL_0099] [SRC: T0_Character_Index @ CHAR_0164].

What canon does NOT fix, stated so no later pass mistakes a blank for a decision: the friend has no

species line of their own beyond being one of the realm's own [SRC: CH_75 # Body prose], no age

statement, no family, no faction row, no voice register, no appearance canon, and no beat on either

node that joins a thread [SRC: CH_01 # Beat graph] [SRC: CH_75 # Beat graph]. The row shape below

leaves every one of those cells blank and declares each blank, rather than filling it.

3. The parameterized row shape

PROPOSAL-TIER. Nothing here is applied. The id is not allocated by this document: the director

allocates deterministically at apply, after a fresh pull, so that a sibling lane landing a row first

shifts the base and nothing collides. At the read taken for this document the next free id is

CHAR_0168 and the registry's last row is CHAR_0167.

The shape follows CHAR_0164 rather than CHAR_0002, and the choice is load-bearing. CHAR_0164 is the

corpus's one existing realm-side, name-deferred, present-in-two-nodes, never-a-target row, and its

provenance cell is the established form for carrying a Josh-deferred name and a proposal-tier

attackability token without inventing either [SRC: T0_Character_Index @ CHAR_0164]. CHAR_0002 is the

wrong template: she is a travelling for-life companion with a full loyalty block, and the friend is

canonically NOT a travel companion [SRC: CH_75 # Key ally NPCs].

3.1 The three cell classes

The thirty-eight columns split three ways, and keeping the classes apart is the whole point of

calling this shape parameterized.

playthrough.

derived from it. These are the cells that make this row unlike every other row in the registry,

and the schema has no affordance for them — see finding G-3.

declared in extensions on the CHAR_0164 precedent.

3.2 The proposed row, column by column

columnclassPROPOSED valuegrounding
character_idfixeddirector-allocated at applyid space is the director's, never a lane's
namedeferredThe Childhood Best Friend (by relation only — the protagonist's fairy-realm best friend, the Ch-1 Selection-2 choosing; no proper name minted)name deferred to the naming method and Josh [SRC: CH_75 # Key ally NPCs]
rolefixedfairy_realm_childhood_best_friend_the_ch_1_selection_2_choosing_the_one_who_stayed_while_others_turned_left_behind_in_the_realm_at_the_fall_re_met_grown_at_the_ch_75_homecoming_seeds_the_ch_13_primary_human_companions_starting_build[SRC: CH_01 # Continuity anchor] [SRC: CH_01 # Key ally NPCs] [SRC: CH_75 # Key ally NPCs]
chapter_first_appearancefixedCh_01CH01_B03 is the finding beat [SRC: CH_01 # Beat graph]
chapters_presentfixedCh_01;Ch_75the two nodes that stage the friend [SRC: CH_01 # Beat graph] [SRC: CH_75 # Beat graph]
seed_statusfixedcanonicalthe selection is CVD-level canon [SRC: T3_Core_Characters # Chapter 1 Character Creation]
antagonist_family_affiliationfixednonereveal-orthogonal, no family who-frame [SRC: CH_75 # Beat graph]
faction_affiliationsfixedfairy_realm_the_kings_court_and_the_people_of_the_realm_one_of_the_realms_ownthe friend is "one of the realm's own" [SRC: CH_75 # Body prose]
thread_involvementdeferred, blankblankDECLARED BLANK: CH01_B03 and CH75_B03 both carry threads [none] [SRC: CH_01 # Beat graph] [SRC: CH_75 # Beat graph]
voice_signature_notesplayer-parameterizedthe constancy register — present-tense warmth, never a promise; the one who says the hard true thing clumsily and kindly and gets closed on for it; no gender-fixed voice and no pronoun on any player-facing line, the voice preset forking off the player's Selection-2 gender exactly as CHAR_0002's does[SRC: CH_01 # Body prose] [SRC: CH_01 # Key ally NPCs] [SRC: T0_Character_Index @ CHAR_0002]
authoritative_docfixedT3_Core_Characters_2§2.2 owns Selection 2 [SRC: T3_Core_Characters # Chapter 1 Character Creation]
extensionsfixedthe provenance cell drafted at §3.3CHAR_0164 precedent [SRC: T0_Character_Index @ CHAR_0164]
attackability_tierfixed, proposal-tier tokenprotected-collectivethe closest attested token for never-framed-as-a-target; the fair-folk court is honored allies and never targets [SRC: CH_01 # Key ally NPCs], and the Ch-75 reunion is ally-side [SRC: CH_75 # Key ally NPCs]. The token choice is proposal-tier; the never-a-target FACT is canon
is_load_bearingfixedtruethe seed drives CHAR_0002's starting build and CH_75's FORK_CH75_B [SRC: CH_01 # Key ally NPCs] [SRC: CH_75 # Fork graph]
loyalty_modelfixed, blankblankDECLARED BLANK: not a travel companion, never on the WS_027 roster [SRC: CH_75 # Key ally NPCs] [SRC: T0_Worldstate_Variables @ WS_027]
loyalty_statefixed, blankblanksame
loyalty_belief_axisfixed, blankblanksame
loyalty_departure_thresholdfixed, blankblanksame
loyalty_join_triggerfixed, blankblanksame
loyalty_notesfixedthe declaration drafted at §3.4so no later pass reads the five blanks as unbuilt
mesh_id_refplayer-parameterized, blankblankthe gender fork needs two tiles and the column holds one — finding G-3
mesh_pipeline_type · substrate_material_ref_path · mesh_tagsdeferred, blankblankthe realm builds last, at slice-end, on the matured pipeline; the visual chain is not this lane's
generation_statusfixedpendingmatches every unbuilt row in the registry
generation_prompt_hash · last_generated_timestamp · regeneration_trigger · ue_asset_path · binding_kind · generation_tier · decay_bearing · decay_stage · voice_signature_ref · voice_substrate_override_object · dialogue_dataset_ref · generation_licence_refdeferred, blankblankunbuilt across the whole realm-side cast

3.3 The extensions provenance cell, drafted

The cell below is the row's own record of what it is and what it deliberately does not claim. It is

drafted here so the apply pass pastes rather than composes.

The entity is the player's Ch-1 Selection-2 choosing, canon since T3_Core §2.2, and it has had no

registry row for the whole life of the corpus — an absence the slice board records twice, once as a

canon debt on the Chapter-1 CANON cell and once as an asset blocker under BD-08. THE ABSENCE WAS

RE-MEASURED AT HEAD BEFORE THIS MINT: chapter_first_appearance carries exactly three realm-node

rows (CHAR_0001, CHAR_0005, CHAR_0164, all Prologue) and none at Ch 1, against live controls that hit

on the identical scan. WHO THEY ARE, CARRIED FROM THE SPINE AND NOT COMPOSED HERE: the one the

childhood days are spent beside and THE ONE WHO STAYED WHILE OTHERS TURNED, present at the door and

out on the plain through every afternoon of the years the realm's grieving people turn away (Josh

RULED 2026-07-27, third sitting); the one the protagonist hurts at CH01_B12, trying clumsily and

kindly to help and getting closed on for it, with no beat that mends it before the fall (the ruled

crueller cut, sixth sitting); left behind in the realm at the rift-fall and NOT carried through

(CH_01 end state, companions_present NONE); grown in the years the protagonist was gone and re-met at

the Ch-75 homecoming in the grief-country at CH75_B03, ally-side and restrained, one of the realm's

own (Q14, the CF-2 payoff APPLIED per Josh's directive). NAME CELL IS PROVISIONAL AND BY RELATION

ONLY — no proper name is minted here; CH_75 defers identity and name to the naming method and Josh,

and the entity inherits the HL_0099 title-only discipline by the same route CHAR_0164 does. THE

DOWNSTREAM THIS ROW EXISTS TO ANCHOR: the selected friend's gender, skills and combat focuses seed

the starting gender, skills and combat-focus of CHAR_0002 Ntala, who joins at Ch 13 and then develops

across the arc (CH_01 Key ally NPCs; T3_Core §3.2) — the transfer contract is

docs/proposals/BESTFRIEND_SEED_DOSSIER.md §4, and the combat-focus half of that clause is an

UNRESOLVED canon-internal tension routed to Josh at that document's §6, recorded here so no later

pass reads either line as settled. REVEAL: the resonance is DESIGNER-ONLY and carries zero forward

valence — Ch 1 holds it at CH01_B03 and Ch 13 states it as "invisible on first play and never

surfaced", and the Ch-75 reunion is reveal-orthogonal, carrying no family who-frame, no thesis and no

Grand-Sage content (HL_0116, HL_0043). GENDER IS NOT AUTHORED AND IS NOT THIS ROW'S: it is the

player's selection, which is why voice_signature_notes carries the parameter rather than a value

and why every player-facing line derived from this row is pronoun-free. WHAT THIS ROW DOES NOT MINT:

no name, no T3 supporting-character doc (the authoritative doc is the tier section that owns the

selection), no thread involvement (both staging beats carry threads [none]), no loyalty block (the

friend is explicitly NOT a travel companion and never enters the WS_027 roster), no age, species,

family or appearance canon, and no persona-system row (T0_Persona_Index is unminted).

3.4 The loyalty_notes declaration, drafted

Five loyalty columns are blank and the blank is the design, not a gap. CH_75 states it in terms: the

reunion is "an ALLY-SIDE reunion … and NOT a mid-game travel companion (the older travel-companion

idea was ruled mistaken — the friend lived in the realm while the protagonist was exiled on Earth)",

and the friend "stays in the realm (NOT a travel companion)"

[SRC: CH_75 # Key ally NPCs] [SRC: CH_75 # Mechanical anchors]. A loyalty model would put this

entity on the live traveling-party ledger at WS_027, which seeds membership and per-member loyalty

from exactly these columns [SRC: T0_Worldstate_Variables @ WS_027]; writing them would therefore

create a party member canon says does not exist. What the friend has instead is a path-dispatch

reunion that READS the Ch-65-locked band and writes relationship history — FORK_CH75_B, whose three

rows write ws.relationship_history and never a loyalty value

[SRC: CH_75 # Fork graph] [SRC: T0_Worldstate_Variables @ WS_008].

3.5 What the row shape deliberately does not carry

[SRC: ENTITY_PERSONA_SYSTEM # The common persona spine]. When it mints, this entity is a

person-class, non-flagship instance and the exemplar is the template.

[SRC: PERSONA_EXEMPLAR_CHAR_0002 # Findings for the director].

docs/spine/player_strings/CH_01.csv sidecar that carries Vennathir and Talvaeren while the

machine ids stay machine ids [SRC: CH_01 # Decisions surfaced]. The friend's display name rides the

same sidecar when Josh names them, and the machine id stays the allocated CHAR_ id.

the fifth sitting's ruled build order [SRC: DECISIONS_PENDING_JOSH # RULED 2026-07-27 (fifth sitting)].

4. The seed-transfer contract for N8.5

N8.5's whole canon on this is one clause: CompanionController join/leave gated on integrity band

plus logged actions, utility-AI combat, disposition-bias, and "best-friend seeds the main companion"

[SRC: PRE_5090_BUILD_PLAN # WS-8]. Its upstream is P2.11, the four-selections character creator,

whose spec ends "Writes base BiographyState" and whose own note names the binding —

best-friend gender to healer's-child companion [SRC: PRE_5090_BUILD_PLAN # WS-8]. Everything below

expands that clause into the stages an implementer needs, and every stage names the canon it

realizes.

4.1 The load-bearing finding, stated before the contract

THE SEED HAS NO DURABLE STATE CARRIER TODAY. T0_Worldstate_Variables carries forty-eight rows,

WS_001 through WS_048, and none of them holds the Ch-1 selections: the nearest neighbours are WS_006

appearance_score, WS_007 age_stage — whose note reads "Per Ch 1 selection plus arc-progression aging"

without holding the selection itself — and WS_027 companion_roster_state, which is a live-party

ledger and not a biography record [SRC: T0_Worldstate_Variables @ WS_007]

[SRC: T0_Worldstate_Variables @ WS_027]. On the spine side, CH01_B03's only write is

{local.best_friend_chosen: true}, a LOCAL flag scoped to the node and carrying no value at all

[SRC: CH_01 # Beat graph], and Ch 1's end state records the selections as prose —

"biography_set: the four Ch-1 selections are SET" — rather than as keys

[SRC: CH_01 # End-state carry-forward]. So the parameter that must survive twelve chapters to reach

CH13_B01, and seventy-four to reach CH75_B03, is at present held only by an engine-side

BiographyState named in a build-plan cell. That is finding G-1 and it is the first thing N8.5

needs.

4.2 The six clauses

gender, skills, and combat focuses, per Ch 1's own seeding sentence

[SRC: CH_01 # Key ally NPCs]. The write is dramatized as childhood and never as a menu

[SRC: CH_01 # Body prose]. The write happens once and is never re-offered: Ch 1 has zero fork

nodes and the selections carry no integrity direction, so nothing later in the arc can move them

[SRC: CH_01 # Fork graph].

twelve chapters. docs/CANON_AUDIT.md records exactly this window as a reconciliation item — the

journal author exists as a selection but not a companion across Ch 1 to Ch 13, and the parameter is

dormant pre-Ch-13. Nothing in Ch 2 through Ch 12 reads them, and Ch 12's end state carries no

traveling companion at all [SRC: CH_13 # Continuity anchor]. A hold that long is a save-migration

surface: the values must be in the earliest save format N8.5 ships against, or every legacy save

loses the seed.

ws.companion_roster_state: +ntala_joined_primary_human_companion

[SRC: CH_13 # Beat graph]. This is the moment CHAR_0002's row enters the WS_027 ledger, and

WS_027 seeds membership and per-member loyalty from the T0_Character_Index loyalty columns

[SRC: T0_Worldstate_Variables @ WS_027] — so the seed must be applied at or before the seeding

step, never after it.

§3.2 Identity Parameters, and CHAR_0002's own registry row, whose voice_signature_notes opens

gender_matches_protagonist_Ch_1_best_friend_selection

[SRC: T3_Core_Characters # Chapter 1 Character Creation]

[SRC: T3_Core_Characters # Identity Parameters] [SRC: T0_Character_Index @ CHAR_0002]. Downstream

it drives the voice preset fork and the two-tile asset consequence recorded in

build/art/characters/CHAR_0002_CANON_SHEET.md §7.

[SRC: CH_01 # Key ally NPCs]. The ally-side home for it is ratified: companions carry stat

spreads over the canonical six-attribute roster, and specialties are derived from the weighting

rather than assigned [SRC: T1_Integrity_Paths_Worldstates_Master # Player-Shaped Ally Stat Spreads].

So "skills" lands as the STARTING WEIGHTING of CHAR_0002's spread, which the player then builds

on from level-up onward — consistent with Ch 1's own "and then develops across the arc".

implementer should build this field until it is ruled.

states it: designer-only, invisible on first play, never surfaced, zero forward reveal-valence

[SRC: CH_13 # Continuity anchor]. Ch 1 holds the same at CH01_B03

[SRC: CH_01 # Beat graph]. The concrete consequences an implementer must honor: no UI element,

tooltip, codex entry, achievement, journal line or dialogue line may reference the linkage; the

Ch-13 gift scene names both parties by relation and never by pronoun, which is the chapter's own

discipline [SRC: CH_13 # Dialogue and scene anchors]; and the pre-existing prose defect Ch 13

flags on its own body text is a repair owed, not a licence to write gendered lines

[SRC: CH_13 # Decisions surfaced].

by the friend's own instance at CH75_B03 — because the entity re-met there IS the selected friend,

grown [SRC: CH_75 # Beat graph]. What that read needs is the friend's own gender-parameterized

asset and voice, not Ntala's; the two instances are separate entities that happen to share one

parameter. FORK_CH75_B then dispatches on the Ch-65-locked band and writes relationship history

[SRC: CH_75 # Fork graph]. The completion of the echo is held FELT and never spoken

[SRC: CH_75 # Key ally NPCs].

4.3 What the contract explicitly forbids

and none is invented here. If NG+ needs one, that is a new question for Josh, not a default.

types zero fork nodes precisely because of this [SRC: CH_01 # Fork graph].

gender, which T3 §3.2 and CH_01 both state [SRC: T3_Core_Characters # Identity Parameters]

[SRC: CH_01 # Key ally NPCs].

5. The CH_75 payoff hooks

Eight hooks. Each names what the row must be able to answer for CH_75 to render, and each is joined

to the canon that asks for it. None of them is new canon; the section is an inventory of demands

already on the books.

scene row SC_CH75_the_one_she_grew_up_beside carries the same bare token in its participant refs

[SRC: CH_75 # Beat graph] [SRC: CH_75 # Dialogue and scene anchors]. childhood_best_friend is a

placeholder string with no registry target. The single most concrete thing the proposed row does is

give that token a resolvable character_id, on both nodes, in one allocation.

the door-home crossing lands there and the childhood best friend is re-met there

[SRC: CH_75 # Key sites and spatial layout]. The row carries no site cell; the join is the beat's,

and the hook is recorded so a later staging pass does not re-site it.

that READS the Ch-65-locked band and writes ws.relationship_history three ways —

childhood_friend_reunited_and_allied on TRULY_GOOD, childhood_friend_reunited on GOOD_ENOUGH,

childhood_friend_reunited_estranged on EVIL [SRC: CH_75 # Fork graph]. The row must be the

subject those three writes name.

the Movement-2 front [SRC: CH_75 # Fork graph], and CH_75's Key ally NPCs line frames it as

additive support, never a wall. This hook is the one canon-attested place where a COMBAT capability

attaches to this entity, and §6 alternative 5 is built on it.

through on every path and the friend's presence in the front is additive support and never a wall;

the realm's war resolves regardless of the friend's presence

[SRC: CH_75 # Fork graph]. Anything the row later grows must not become a completion gate.

Selection-2 friend seeded Ntala's starting build, so the homecoming reunion quietly COMPLETES that

echo, with the friend and the companion who began as their mirror present in the same moment — held

FELT and restrained, never a mechanical exposition and never a designer-only reveal spoken to the

player [SRC: CH_75 # Key ally NPCs]. The row's own reveal clause must carry this fence verbatim.

ally, never a new travel companion, never a newly-rooted found-family bond, and no new

traveling-companion or familiar bond roots at Ch 75 [SRC: CH_75 # Key ally NPCs]. The five blank

loyalty cells at §3.4 are this lock expressed in the schema.

[SRC: CH_75 # Key ally NPCs] [SRC: CH_75 # Mechanical anchors], and the player-facing string rides

the player_strings sidecar when Josh names them, exactly as Vennathir and Talvaeren do

[SRC: CH_01 # Decisions surfaced].

REVEAL DISCIPLINE ACROSS THE HOOK SET, stated because this is where the leak would happen. Ch 75 is

sixty-two chapters past the slice, and nothing in this section may travel backward. No Ch-1 or Ch-13

surface authored from this dossier may carry a re-meeting, a survival, a grown friend, a homecoming,

or any hint that the friendship has a future — CH01_B03 holds the friend at present-tense warmth with

zero forward valence, and the constancy "is present-tense warmth and never a promise"

[SRC: CH_01 # Key ally NPCs]. The friend's reveal at Ch 75 is itself orthogonal: no family who-frame,

no thesis, no Grand-Sage content [SRC: CH_75 # Beat graph], and the patriarch is still unnamed at

that node [SRC: T0_Hard_Lines @ HL_0043]. The realm's own material stays held on the pre-Ch-13 side

under the absolute show-don't-tell that Ch 1 carries as a hard-line binding

[SRC: T0_Hard_Lines @ HL_0116].

6. DECISION BRIEF — the CH_01 "combat focuses" clause versus the T3 §3.4 "no combat abilities" ruling

Routed to Josh through the main director. This is genuine canon-fork material: it sits on a hard-line

node's own text on one side and a T0_Hard_Lines row on the other, and either resolution edits live

canon. It is presented complete — alternatives, deep-dive, adversarial review, recommendation, and

the strongest objection — never as a bare question, per the standing protocol. The DECISIONS head was

read before this was written; the tension is not ruled anywhere.

6.1 The collision, in both parties' own words

CH_01, Key ally NPCs, on the best friend: "the selected best friend's gender, skills, and combat

focuses SEED the starting gender, skills, and combat-focus of the healer's child (CHAR_0002, Ntala)"

[SRC: CH_01 # Key ally NPCs].

T3_Core §3.4, Companion architecture, on the healer's child: "No combat abilities — informational and

social capability only. Their perception of NPC behavioral cues is sharper than the protagonist's

vril-based intuition in strictly human social contexts. In the Ch 75 EVIL inversion this social-

behavioral read is applied predictively against the protagonist and expressed as the encounter's

coherence — no combat ability, vril, or weapon is gained; denial derives from social and behavioral

tells … never vril-signature or combat frame-data. Per the D-2 F-STAR ruling 2026-07-19"

[SRC: T3_Core_Characters # The Active Companion Activation]. The same lock is a hard-line row,

HL_0096 [SRC: T0_Hard_Lines @ HL_0096].

Both lines are live canon. Neither is a draft. The collision has been found twice independently and

resolved neither time: build/art/characters/CHAR_0002_CANON_SHEET.md §7 records it verbatim and

says "This is a finding for the director, not an edit", and the persona exemplar's finding F-3

carries it forward under the same status

[SRC: PERSONA_EXEMPLAR_CHAR_0002 # Findings for the director]. Three lanes have now hit the same

wall, which is the evidence that it is a ruling and not an authoring preference.

Two further facts frame the fork, because a ruling that ignores either will be re-litigated.

player builds, that the spread drives specialties and preferred combat styles, and that "how an ally

fights emerges from how the player built them, not from a fixed authored archetype"

[SRC: T1_Integrity_Paths_Worldstates_Master # Player-Shaped Ally Stat Spreads]. §8.11.9 goes

further: allies are first-class build components and the party is a build surface

[SRC: T1_Integrity_Paths_Worldstates_Master # Allies as Build Components and Team Composition as Content].

A companion with no combat expression at all is an exception to a ratified system, and the

exception is currently undeclared.

ally spread buys behavior quality across three domains — pattern detection, proactivity, awareness

— that it competes with the combat attributes on the same spread, and that "a high-intelligence

support that reads the fight for the player is a legitimate spec"

[SRC: T1_Integrity_Paths_Worldstates_Master # The Intelligence Axis and Ally Behavior Quality]. A

path exists inside ratified canon for a companion to matter in a fight without fighting.

6.2 The five alternatives, steelmanned

ALTERNATIVE 1 — STATUS QUO. Change nothing. Both lines stand; the implementer picks one at N8.5.

downstream of it has been built yet. Deferring costs nothing today and keeps a canon edit off a

hard-line node until the combat system's ally layer is real enough to rule against.

columns at the join [SRC: T0_Worldstate_Variables @ WS_027], and N8.5 is tagged BUILD-NOW

[SRC: PRE_5090_BUILD_PLAN # WS-8]. The first implementer to reach clause 4 has to guess, and a

guess that lands becomes de facto canon nobody ruled.

as a fork until someone silently resolves it in code.

ALTERNATIVE 2 — NARROW CH_01. Strike "skills, and combat focuses" from the Ch-1 seeding sentence,

leaving gender as the only seeded value, which is what T3 §2.2 and §3.2 actually state.

[SRC: T3_Core_Characters # Chapter 1 Character Creation]

[SRC: T3_Core_Characters # Identity Parameters]. The wider clause appears in exactly one place, a

spine entry, which is subordinate to T1 and T3 in the authority hierarchy. Narrowing restores a

single reading and touches no hard line.

inheritance rather than a cosmetic one, and it is the only canon that gives Selection 2 any

mechanical weight at all. Reduced to gender, Selection 2 becomes a pronoun switch on a companion

whose player-facing surfaces are already ruled pronoun-free [SRC: CH_13 # Dialogue and scene anchors]

— which risks a player selection that expresses nowhere.

deletes a line rather than finding it a home. The rulings-are-the-floor law reads against

subtraction as the default move.

ALTERNATIVE 3 — RE-READ "combat focuses" INSIDE THE ALLY-SPREAD LAYER. Rule that the seeded

"combat-focus" is a COMBAT-CONTEXT focus expressed entirely through §8.11.8's three behavior domains

— which of pattern detection, proactivity, or awareness CHAR_0002 starts weighted into — and carries

no attack, no weapon, no vril and no damage verb. HL_0096 stands untouched; the ally-spread system

supplies the vocabulary; the CH_01 clause keeps its words and gains a definition.

rather than invented for the occasion. §8.11.8 explicitly legitimizes a support spec whose value in

a fight is reading it [SRC: T1_Integrity_Paths_Worldstates_Master # The Intelligence Axis and Ally Behavior Quality],

and CHAR_0002's canonical faculty is precisely a READ — her perception of behavioral cues is sharper

than the protagonist's vril intuition in human social contexts

[SRC: T3_Core_Characters # The Active Companion Activation]. The persona exemplar independently

proposed this same reading as the coherent one under F-3

[SRC: PERSONA_EXEMPLAR_CHAR_0002 # Findings for the director].

derives the EVIL-band opposition encounter's coherence from social and behavioral tells and from no

combat frame-data at all [SRC: T3_Core_Characters # The Active Companion Activation], and CH75_B13

stages exactly that — the front's coherence tightens because she is reading the player, "a smarter

opponent, never a stronger one" [SRC: CH_75 # Beat graph]. Under this reading, the Selection-2 seed

is what set the shape of the read the player has been benefiting from for sixty-two chapters and

then meets from the other side. That is a payoff, not a patch.

reader in two years finds "combat focuses" and reads it plainly again. Mitigation is to record the

definition on both surfaces, not to rely on the reader.

ALTERNATIVE 4 — WIDEN T3 §3.4. Give CHAR_0002 a small inherited combat kit — a defensive verb, a

thrown item, a self-preservation move — seeded from the friend.

live defect: the persona exemplar's finding F-1 measures her present, unarmed and unwarded on three

Ch-13 combat beats with no rowed policy covering her

[SRC: PERSONA_EXEMPLAR_CHAR_0002 # Findings for the director]. A companion who can do something

when a fight starts is a smaller design problem than one who cannot.

[SRC: T0_Hard_Lines @ HL_0096]; the no-combat lock is what makes her the human-scholarship

counterweight to the protagonist's vril intuition

[SRC: T3_Core_Characters # The Active Companion Activation]; and the Ch-75 inversion's entire

register depends on her having gained nothing — "no combat ability, vril, or weapon is gained".

Arming her, even lightly, degrades the arc's most distinctive companion design into a generic party

member and reopens a ruling that was made twice.

for it — the ward-gated suppression policies AP_0009 through AP_0014 exist precisely to make her

unhittable rather than capable [SRC: T0_Ally_Behavior_Policy @ AP_0009]. Fixing safety by adding

combat is solving the wrong problem with the most expensive tool.

ALTERNATIVE 5 — GIVE THE ORPHANED CLAUSE ITS OWN CANON HOME: the friend's combat focuses seed the

FRIEND's own Ch-75 combat role, not Ntala's.

and it is canon-attested rather than invented. FORK_CH75_B's TRULY_GOOD row has the friend "drawn

fully to her side, taking up arms in the Movement-2 front" [SRC: CH_75 # Fork graph]. The friend

therefore HAS a combat role in canon, it is currently unspecified, and the Selection-2 combat

focuses are exactly the parameter that would specify it — the friend who was built as a

close-quarters child fights as one when the war reaches the grief-country.

that pays the selection off, and it does so without touching a hard line or a hard-line node's text.

It also matches the friend's own canon status: an ally-side, realm-native, non-roster combatant with

no loyalty model, which is a class that CAN carry combat without any HL_0096 exposure.

re-reading — it is a re-pointing, and re-pointing is an edit. It also puts the payoff behind the

TRULY_GOOD band alone, so two of three players never see it, and the mitigation (a band-appropriate

expression on all three rows) is more design than a ruling should have to carry.

6.3 RECOMMENDATION

RULE ALTERNATIVE 3 AS THE PRIMARY, AND ADOPT ALTERNATIVE 5 AS ITS COMPOSABLE SECOND HALF.

The two are not rivals. Alternative 3 answers what the seed does to CHAR_0002 — it weights her

starting §8.11.8 behavior profile and nothing else, so HL_0096 and the whole

human-scholarship-counterweight design stand exactly as ruled twice already. Alternative 5 answers

where the plain-language reading of "combat focuses" has a legitimate home — on the friend's OWN

Ch-75 arms-taking, which canon already grants and has never specified. Together they keep every

existing canon line intact, delete nothing, invent no system, and give the arc's longest-dormant

player parameter two visible expressions instead of zero: a companion whose way of reading a fight

was shaped by the friend left behind, and a friend who fights the homecoming war the way the player

built them a lifetime earlier.

Concretely, if ruled, the applies are small and are named so the ruling is costed:

CHAR_0002's starting behavior-domain weighting under §8.11.8 and never as a combat ability, per

HL_0096 — with the friend's own arms-taking named as the second landing.

one reading rather than two.

focuses, and the GOOD_ENOUGH and EVIL rows get band-appropriate expressions so the payoff is not

band-exclusive.

note drafted at §3.3.

6.4 THE STRONGEST OBJECTION

The recommendation may be a distinction without a difference in play. If the seed's only effect on

CHAR_0002 is a starting weighting inside a behavior-tree quality axis, and she never fights, then the

player never SEES the seed express on her at all — which means the entire felt resonance the design

exists to produce still rests on gender alone, which is what T3 §2.2 already said before the wider

clause was ever written. On that reading, alternative 3 is alternative 2 with more words, and Josh

should rule the honest, cheaper version instead.

The answer, and it is an answer rather than a deflection: the behavior domains ARE visible, and canon

already says so. §8.11.8 rules that a more intelligent ally detects more patterns, acts more

proactively and stays more aware, and that "the investment is legible in play"

[SRC: T1_Integrity_Paths_Worldstates_Master # The Intelligence Axis and Ally Behavior Quality]. On

CHAR_0002 that legibility has an authored surface already designed for it — the persona exemplar's

social read, where she registers a tell before the protagonist's vril reading would and surfaces it as

an observation, and her per-option reaction shapes, both grounded on her canonical sharper-perception

faculty [SRC: T3_Core_Characters # The Active Companion Activation]. A player whose friend was built

one way meets a companion who notices the room, and a player whose friend was built another meets a

companion who notices the person. And the expression has a terminal payoff the other reading cannot

reach: at CH75_B13 that same faculty is turned on the player, and the encounter's whole coherence is

the read [SRC: CH_75 # Beat graph]. Under alternative 2 that read has no origin. Under the

recommendation, the player set its shape in the first hour of the game and meets it in the last.

The objection nevertheless survives in one respect that Josh should weigh directly: the difference

between the two readings is felt, not measured, and if he wants Selection 2 to have a MEASURABLE

mechanical expression, only alternative 5's half of the recommendation delivers one — which is a

second reason to rule them together rather than to rule alternative 3 alone.

7. Findings for the director

Eight. Three are load-bearing: G-1, G-2, and G-3.

none of them carries the four Ch-1 selections; CH01_B03 writes only a valueless local flag; Ch 1's

end state records the selections as prose [SRC: CH_01 # Beat graph]

[SRC: CH_01 # End-state carry-forward] [SRC: T0_Worldstate_Variables @ WS_007]. The longest-lived

player parameter in the game is held today only by an engine-side BiographyState named in a

build-plan cell [SRC: PRE_5090_BUILD_PLAN # WS-8]. Either a biography_selection_state worldstate

row is owed, or the omission is deliberate and should be recorded as such. Registry act, not this

lane's.

been found by three independent lanes and resolved by none, and N8.5 is tagged BUILD-NOW.

mesh_id_ref and no marker for a cell whose value is a player selection; CHAR_0002's row expresses

its own gender fork as prose inside voice_signature_notes

[SRC: T0_Character_Index @ CHAR_0002]. The proposed friend row hits the identical wall, so the

corpus now has TWO entities the model counts once and canon requires twice. This is the sibling of

the two-outfit schema hole recorded in build/art/characters/CHAR_0002_CANON_SHEET.md §9, and the

friend's instance of it has never been counted anywhere.

ruled that the Child Familiar bonds by play, with no list and no prompt

[SRC: DECISIONS_PENDING_JOSH # RULED 2026-07-30 (twenty-ninth sitting)], and CH01_B03 says only

"a life, not a menu" without a measure [SRC: CH_01 # Beat graph]. If Selection 2 is also

by-play — whichever realm child the player spends the childhood beside — that is a Ch-1 build-lane

design question with a ruled sibling to pattern on. Named, not answered.

one CH_01 surface [SRC: CH_75 # Beat graph] [SRC: CH_75 # Dialogue and scene anchors]

[SRC: CH_01 # Beat graph]. Applying the proposed row is what closes it; until then the graph

carries a dangling actor on a built node.

[SRC: PERSONA_EXEMPLAR_CHAR_0002 # Findings for the director]. Same class as G-3: a live surface

with no row behind it. Named, not repaired.

CH75_B03 joins a thread [SRC: CH_01 # Beat graph] [SRC: CH_75 # Beat graph], so the row's blank is

honest. Whether the arc's single most emotionally load-bearing relationship genuinely carries no

thread is a question for the thread-grid pass, not for this row.

character row improvises a read-set, as this one did (see the routing note at §0).

8. What this document does not do

It mints no registry row, allocates no id, edits no canon file, touches no registry CSV, no fidelity

baseline, no line-citation baseline, and no shared file. It authors no name for the friend, no

appearance, no age, no species detail, no voice register and no dialogue. It produces no image, plate

or geometry, and it dispatches nothing. It does not reopen the CF-2 Ch-75 reunion ruling, the

designer-only status of the resonance, the friend's not-a-travel-companion lock, the by-play

Selection-1 mechanism, or the gender inheritance, all of which are ruled. It resolves nothing in §6:

that section is a brief for Josh, and until he rules it the CH_01 clause and the T3 §3.4 ruling both

stand exactly as written.

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