decisions/spine/CARDINALS_RATE_AND_ROSTER.md
**Both cardinals dissolved under measurement. Neither is the question it was filed as, and one of them
you already ruled — on 2026-07-17, the same day it was escalated to you.**
I was asked to lead this with: *"the ladder you ratified is governed by a number nobody has written, and
that number decides whether the top tier is unreachable or arrives a third of the way through the story."*
I am not writing that sentence, because I measured it and it is false. The corrected one:
**The ladder you ratified is governed by a number that is not canon's to write — it is an unset clamp in
an already-landed ACTIVE runtime doc — and the "unreachable vs. one-third in" swing is an artifact of
counting a companion's *presence in a scene* as *movement of the bond*. Your four D-REL-BANDS rulings all
stand, untouched, under every option below.**
Nothing here re-opens Rulings 1-4. Nothing was applied; no repo file was touched.
---
Three things, all up front, because each one killed a premise:
1. The RATE is not a canon question. The corpus already answers it in a landed ACTIVE doc that six
rounds of this lane never opened: RUNTIME_GENERATIVE_LAYER.md declares a relationship tick at
~0.03 Hz emitting a ±-clamped relationship_delta, with a deterministic state machine owning the
thresholds. The rate is that clamp. It is a runtime tuning value, not a magnitude class you rule.
2. The ROSTER premise is false. Tunde is not a "one-beat entity". He is carried across four nodes
(Ch 39-42) with an authored fork and a Ch-75 payoff. The "1 beat" came from measuring one field.
3. You already ruled the Ntala half. D-23 is on the RETIRED list — ruled 2026-07-17. Your ruling
contradicts a clause in Ruling 3 and a registry cell. Flagged below; you need not re-rule it.
---
Your Scheme C ladder runs −100 to +100, with the top rung (Family / Exalted) at +90. For that to mean
anything, something has to say how many points a given moment is worth. Nothing does.
The brief filled the gap by assuming relational movement reuses the integrity magnitude classes
(Foundational 10-25, Substantial 3-10, Accumulative 0.5-3). That assumption is not canon. I read the
source line: it says "mid-magnitude integrity shifts … may shift integrity by three to ten points"
— the word is *integrity*, twice, and the class governs the integrity axis only
[SRC: _source/01_Tier_1_Foundation/T1_Integrity_Paths_Worldstates_Master [ACTIVE v2.1].md # L167].
That correction is right and it stands. But the escalation then asked which class a bond beat is, and
that question does not survive the measurement — for three independent reasons:
table: 696 relational writes, and exactly 0 of them carry any magnitude class — while 182 rows in the
*adjacent column of the same table* do carry one. The schema is explicit that the classed column is the
integrity column ("NO player choice, NO integrity delta" is what defines the shape that drops it)
[SRC: docs/SPINE_SCHEMA_v3.md # L64, L68]. The authors separated these two things 696 times out of 696.
ws.loyalty_score: 0 writes. ws.bond_state:0 writes. Every relational write in the corpus is qualitative prose.
in a scene* — as if each moved the bond. Her authored bond-moving rows number five, four of which
are mutually exclusive options of a single fork, so exactly two fire per playthrough
[SRC: docs/spine/CH_16.md # L167, L173-176] [SRC: docs/spine/CH_44.md # L158, L164]. Standing beside
someone is not the same as the relationship changing, and the spine's authors never wrote it as if it were.
The answer the lane missed. The corpus already declares where relational points come from. The
partner/companion class runs a personality tick at ~0.03 Hz, every ~30 s of relevant activity; the LLM
emits "a ±-clamped relationship_delta"; the deterministic executor owns "the **relationship state
machine** (thresholds, locked beats)" [SRC: docs/RUNTIME_GENERATIVE_LAYER.md # L113, L114, L115; table
row 4 at # L143]. That doc is ACTIVE [SRC: docs/DOC_MAP.md # L107]. It even declares a *different*
cadence per axis already — factions tick at ~0.005-0.02 Hz vs. companions at 0.03 Hz [# L143, L144].
So the rate is the ± clamp on that tick. It is unset — the flag is real — but it is a runtime tuning
parameter over a layer no spine node enumerates, not a canon magnitude class. The 79-node spine is the
*backbone* of a ~30M-word game; one spine beat is not one tick. No measurement of the spine can set it.
| Option | Pros | Cons | |
|---|---|---|---|
| A | Ratify the reuse — bond beats use the integrity classes | Zero new vocabulary; one class set everywhere | Refuted. The source line says *integrity*; the spine separated the columns 696/696. And it doesn't even answer the question — "which class" still needs a ruling. |
| B | Author a separate relational magnitude set | Honest about the column separation | Pure invention — no source anywhere assigns relational magnitudes. Zero consumers today, so it orphans on arrival. Worst option against the do-not-invent rule. |
| C | Derive a rate from a story target (0.5/presence-beat → Family at Ch 63) | Arithmetically tidy; 90/184 = 0.489 ≈ the Accumulative floor 0.5 — two routes agreeing | The convergence is numerology: both routes share the false premise that presence = movement. Wrong unit (a rate over a *sample*, not the game). Its own precision (0.489) is decoration over a proxy. |
| D | Rule the calibration TARGET; leave the clamp to playtest | Aims at the layer that actually owns the number; the target is denominator-independent and *is* rulable today; invents nothing | The ladder stays inert until wired — though measurably nothing consumes it yet (0 writes). Defers a number. |
Rule the design intent, and let the clamp be tuned to hit it:
Family) at roughly the Ch-65 path-lock — the node where the spine*already* resolves her fate off your accumulated integrity, with no loyalty score at all
[SRC: docs/spine/CH_65.md # L138-146]. Late enough to be earned, in time to matter at Ch 75.
come_and_go, and the top rung should stay out of her reach.Family. A top rung that a good run *misses* is a working ladder.Reasoning, in weight order:
1. It aims at the right layer. The number lives in RUNTIME_GENERATIVE_LAYER as a clamp. Ruling a
magnitude class would be ruling canon for a runtime dial — and would sit inert beside a doc that already
contradicts it.
2. A target is rulable; a rate is not. You can decide *where Family should land* today. Nobody — you,
me, or playtest — can derive points-per-tick from a 79-node backbone of a 30M-word game.
3. It is the only option that doesn't build on sand. Both published numbers in the analysis (53, 87)
are not reproducible: 191 × 0.5 = 95.5, not 53; 44 × 3 = 132, not 87. They need undisclosed
denominators of 106 and 29 that no filter in the corpus reproduces, and "bond-moving" is defined
nowhere (4 greps, all inside the two lane docs, all rhetorical).
4. Your rulings are safe either way — proven, not assumed. Scheme C clamps the score to ±100, so the
inertia bonus (score ÷ 10) maxes at +10. Complete opposition 85 + 10 = 95 → capped at 90 < the
opposition ceiling of 100. Departure is always forced, under every rate. The invariant is protected
by the clamp, not the rate. No rate can break Ruling 3.
5. Deferral costs almost nothing. loyalty_score and bond_state have zero writes. Nothing breaks.
**"This is the inert ladder you keep building and never wiring — and a target ruled today against a game
that doesn't exist is no better grounded than a number."** The anti-orphan failure is the standing one in
this repo, and D is the option that risks it. There is also one real, spine-authored cost: Ana's *presence*
at Ch 56 is already gated on ws.companion_loyalty_transition_events [SRC: docs/spine/CH_56.md # L18],
and Ch 61 writes +ana_wounded_bond_deepened [SRC: docs/spine/CH_61.md # L135] — the spine is consuming
a loyalty system whose numbers don't exist.
Why I hold D anyway: that Ch-56 gate keys off an authored fork (FORK_CH55_A), not off a score, so it
is computable today without the rate. And the honest reading of the evidence is that a rate ruled now would
be a number invented to fill a silence — which is the exact failure the cardinal rule exists to prevent.
The deferral is real; what makes it correct is that **the record now says precisely what is deferred (the
runtime clamp, against a ruled target) and what is settled (the §5.1 reuse is not canon).**
---
Tunde (CHAR_0127) is the freed fixer from Ch 39 — the bought-and-NDA'd broker the protagonist turns rather
than kills, whose turn is that chapter's whole thesis: *the modern enemy runs on people who can be
un-convinced.* The registry rows him as a companion: loyalty_model = drawn_conditional,
loyalty_state = recruitable, attackability_tier = bonded.
The escalation says he is a roster defect because he has "1 actor-beat, 1 node — no threshold makes a
one-beat entity climb nine rungs," and asks you to choose: more beats, or a different loyalty model.
Both halves of that framing are wrong, and I can show it.
The "1 beat" is a measuring artifact. It counts one field (actors:). Tunde is actually carried across
four nodes — Ch 39, 40, 41, 42 — written into ws.companion_roster_state as "carried lightly", with an
authored fork (FORK_CH39_B, two durable outcomes writing ws.relationship_history) and an explicit
downstream payoff: *"Tunde's carry into Ch 75 (FR-03) rides the companion/relationship columns"*
[SRC: docs/spine/CH_39.md # L203, L207-208] [SRC: docs/spine/CH_42.md # L301].
The real defect is his CLASS, not his beat count. The spine names him in the *same sentence* as two
other people: *"Tunde, Amboko, and Oupa Gert carried lightly"* [SRC: docs/spine/CH_42.md # L289]. All
three do the identical job — a light modern regional contact. I checked the registry:
And the row was never a claim about Tunde. The WS7 plan that seeded it says so in its own words:
*"The CHAR_0002 / CHAR_0017 / CHAR_0127 seeds are illustrative reads for the schema only — do NOT
mass-populate … before Josh ratifies"* [SRC: docs/proposals/systems/WS7_WIRING_BUILD_PLAN.md # L158].
The row is a schema example that got mistaken for a roster assignment — the identical provenance shape
you already ruled on in Ruling 1, where the six-tier ladder turned out to be the author's shorthand rather
than your count. This lane has now made the same mistake twice.
| Option | Pros | Cons | |
|---|---|---|---|
| A | Reclassify Tunde as a contact — drop the loyalty row, matching Amboko / Gert / Wenceslao | Matches what the spine actually authored, four times, in the same breath as his peers. Honors the seed's own "illustrative" label. Costs nothing — no prose changes. | Leaves drawn_conditional with zero exemplars in 162 rows (see the objection). |
| B | Author the arc — keep drawn_conditional, commission Tunde a real join/travel arc | Thematically the strongest: he *is* the drawn-by-integrity idea made flesh, and his Ch-39 turn already carries redemption. Gives the model its exemplar. | Real authoring cost across the modern arc, against a locked 77. He'd need beats the coverage map hasn't budgeted. |
| C | Status quo — leave the seed | Free | A companion row that can never fire; the analysis is right that this is dead content. Harmless today (nothing consumes it), but it is exactly the "we built it and never wired it" pattern. |
Reasoning, in weight order:
1. The spine already answered. Four nodes of "carried lightly", grouped every time with two people who
have no loyalty rows. That is an authored intent, not an omission.
2. The row has no authority behind it. WS7 L158 labels it illustrative and forbids exactly the
inference this lane drew from it. A schema example is not characterization canon.
3. His story is complete without it. Tunde's function — proof the enemy runs on the un-convincible —
lands entirely at Ch 39 and pays off at Ch 75 through the coalition wing (FR-03), which is a *contact's*
payoff, not a travelling companion's.
4. It is not a tuning pass and never was. No threshold on any ladder fixes a class mismatch. The
analysis was right that this isn't tuning, and wrong about what it is.
Dropping Tunde leaves drawn_conditional a dead letter. He is the only instance of it in all 162
rows. You ruled the drawn-by-integrity model explicitly — *"others are DRAWN by your integrity/actions"*
[SRC: docs/proposals/systems/RULINGS.md # L56] — so reclassifying him quietly retires a model you
authored, leaving a ratified branch of the loyalty system with no character anywhere who exercises it.
That is the anti-orphan failure arriving through the back door: not an unused doc, but an unused *ruling*.
This is why B is genuinely live and why the call is yours. If you want a drawn-by-integrity companion
in the modern arc, Tunde is the right body for it and the answer is an authoring order. If you don't, A is
correct and drawn_conditional should be retired or reassigned deliberately — not left propped up by an
illustrative seed. What A must not do is drop the row and say nothing about the orphaned model.
---
1. Your D-23 ruling contradicts Ruling 3's for_life exemption and a registry cell. The brief says
*"never is no trigger (Ntala's for_life anchor)"* and *"Only loyalty_model = for_life is exempt"*
[SRC: docs/spine/RELATIONSHIP_TIER_BANDS_BRIEF.md # L220, L221], and the registry rows CHAR_0002 as
for_life / never. But the live spine's Ch-65 EVIL row reads: **"Ntala departs (companions who oppose
the corrosion leave)" [SRC: docs/spine/CH_65.md # L146] — and your D-23 ruling of 2026-07-17**
confirms it, offering Departure/Continuation on *"every surviving band (TG/GE/Drifting)"*, with EVIL
pointedly not enumerated [SRC: docs/spine/DECISIONS_PENDING_JOSH.md # L13 (D-23 RETIRED), # L94].
Scope it precisely: your *cap arithmetic* invariant is untouched — the spine agrees complete
opposition forces departure. What is refuted is the exemption clause layered beside it. The spine
and your own ruling outrank the registry; the row and the clause should be aligned to them at the §9
wiring commit. This needs no new ruling from you.
2. The ratified +15 bonus cap is inert. Max inertia is 100 ÷ 10 = +10, which never reaches +15. One
of the eight ratified starting magnitudes can never fire. Harmless (it fails safe) and tunable without a
re-ruling per Ruling 3 — but better known now than discovered later.
3. A citation defect is propagating. Both the analysis §5 and the work order cite the brief's
relational-reuse claim at L151. L151 is the departure-enum bullet; the claim is at L170. The
substance is unaffected; the pointer is wrong and has been copied forward twice.
---
**24 citations checked; 22 resolve and say what is claimed; 1 is the L151 defect above; 1 (D-23 as an open
question) is superseded — it is ruled.** Every number below was re-derived with my own read-only parsers
against docs/spine/, not inherited from the lane.
CH_57_BUILD_BRIEF.md is not a node; Prologue and Epilogueare). Ntala CHAR_0002 = 191 beats / 55 nodes. Ana CHAR_0017 = 44 / 22. Architect = 7 / 2. Wabenhotep =
2 / 1. Tunde = 0 by ID, 1 as the bare name Tunde [SRC: docs/spine/CH_39.md # L151]. Ntala's
cumulative presence: Ch 17 = 29, Ch 24 = 66, Ch 39 = 113, Ch 58 = 166, Ch 65 = 184, Ch 76 = 190.
ws.loyalty_score 0; ws.bond_state 0; ws.familiar_bond_state 99 / 38 (a *different* axis); ws.faction_standing_per_faction 50 / 16; ws.relationship_history 72 / 22;
ws.companion_roster_state 35 / 12; ws.companion_loyalty_transition_events 18 / 4.
182 classed integrity deltas in the adjacent column. (My parse spans all fork-table shapes; counts differ
by ≤2 from the deliverable's choice-table-only basis — immaterial, and the 0 is exact under both.)
44 × 3 = 132. Implied denominators of 106 and 29 appear nowhere and no filter reproduces both.
the "hundreds of transactions" live in the ambient runtime layer no spine node enumerates. Like-for-like,
*neither* axis's events are countable from this corpus — so the asymmetry the risk rested on is not
demonstrable in either direction.
live in the scratchpad. Concurrent-lane churn (drain 7) touched nothing I measured — all reads were of
docs/spine/, docs/, _source/, and registries/.