decisions/spine/RELATIONSHIP_TIER_BANDS_BRIEF.md
ruled that the six in reputation-prestige-nemesis.md L7 (Hostile → Neutral → Friendly → Honored →
Revered → Exalted) was the proposal author's rendering of his "WoW-Vanilla Exalted love", not a
deliberate authorial compression of WoW's actual eight tiers. **Consequence: the six carries no
authorial weight, so Scheme C EXTENDS a rendering rather than overriding a ruling** — §8's strongest
objection is discharged at its root, and Scheme B is no longer the safe fallback it would have been.
Round 1's "Josh wrote six tiers" assertion is now positively established as FALSE, not merely
unsupported; the round-2 retraction was correct, and the record is settled by ruling rather than by
inference.
Hostile −89/−70 · Wary −69/−40 · Cool −39/−10 · Neutral −9/+9 · Friendly +10/+39 · Honored +40/+69 ·
Revered +70/+89 · Exalted +90/+100), one numeric ladder across every relational axis with per-axis
display labels. Ruled as recommended, on the plain C option rather than the per-axis-thresholds
variant — so the shared ladder stands as the default and any per-axis override is a later tuning
move, not a founding assumption.
**AUTHORITY NOTE — added 2026-07-17; this paragraph previously carried a trap and the correction is
load-bearing for the §9 wiring commit.** The superseded wording said an override "remains
schema-supported without forking the ladder", which is TRUE about the SCHEMA and MISLEADING about the
AUTHORITY: schema support is not ratification, and "needs no ladder fork" does rhetorical work it has
not earned — Ruling 2 was never about whether a fork was mechanically cheap, it was about which variant
is canon. The distinction the registry CANNOT enforce (both moves look identical in a per-row cell, so
it must be held in doctrine): a per-FACTION override (one guild grinds faster than another) is GENUINE
tuning, creative-within-vision, applyable while showing the path; a per-AXIS override (all companions
differ from all factions) IS the declined variant wearing a schema hat and requires a NEW Josh ruling —
it may NOT be waved through as tuning. Note the asymmetry that makes the tuning framing tempting and
wrong: Ruling 3's magnitudes were expressly ratified as authored starting values that playtest may move
without a re-ruling; Ruling 2's bands got no such clause. "A later tuning move, not a founding
assumption" authorizes revisiting the QUESTION later — it does not pre-approve the ANSWER.
§8's rate-mismatch objection has since been MEASURED and DISCHARGED
(docs/spine/RATE_MISMATCH_ANALYSIS.md): the shared-threshold default survives the numbers and
per-axis thresholds were refuted outright (zero measured beneficiaries, two victims).
on the plain option rather than the numbers-provisional variant. What this ratifies is the SHAPE, and
the shape's load-bearing clause is the cap arithmetic: opposition tops out at 100 and the effective
trigger caps at 90, so **complete opposition ALWAYS forces departure and investment can never buy
immunity** — Josh's "invested is sticky but not immune" stated as a theorem rather than an intention.
WAVERING gets a real computed band (effective trigger −15), which discharges WS_028's ratified-but-
uncomputable intermediate state. B is dropped: the fork turned on whether WAVERING deserved a computed
band, and this ruling says it does. C stays rejected on the ratified model (a farmable score would let
a player buy immunity to a belief violation — the gift-farming failure the runtime doc forbids, and it
would fail silently). D stays rejected on the ratified enum.
Status of the eight magnitudes (85 / 60 / 35, the ÷10 inertia, the +15 bonus cap, the 90 effective
cap, the −15 WAVERING band, the two-node sustain): ratified as the AUTHORED STARTING VALUES.
ALIGNMENT (2026-07-19 wiring commit): the +15 inertia cap is unreachable on the −100..+100 score
domain (÷10 maxes at +10) and is recorded inert per RATE_MISMATCH_ANALYSIS — behavior unchanged, the
90-cap invariant unaffected; the canonical arithmetic now lives at T1_Integrity §8.11.2. Per the
brief's own §6 framing and WS7_WIRING_BUILD_PLAN L162, the exact crossing remains a tuning value, so
playtest may move the numbers without a re-ruling — but the SHAPE above, and the 90-cap invariant in
particular, is now ratified and may not be tuned away. Note A is not a rival metaphysics to B: it
computes opposition FROM the integrity band, so A is B plus sub-band resolution.
proposal (docs/spine/RELATIONSHIP_TIER_NAMES_PROPOSAL.md, run through deep-dive → adversarial-filter
→ player-vibe-test; 11 candidate sets, 4 killed):
ladder_analog = WoW-Exalted): Hunted −100/−90 · Banished −89/−70 ·Suspected −69/−40 · Cooled −39/−10 · Stranger −9/+9 · Welcomed +10/+39 · Honored +40/+69 ·
Revered +70/+89 · Exalted +90/+100. Josh's WoW top three survive verbatim; only the four
placeholders that were positively defective on evidence changed, so the live `ladder_analog =
WoW-Exalted` cell stays literally true.
loyalty_score): Enemy −100/−90 · Severed −89/−70 · Wary −69/−40 ·Cooled −39/−10 · Stranger −9/+9 · Known +10/+39 · Warm +40/+69 · Trusted +70/+89 · Family +90/+100.
attackability_tier column — no third list. **ANTAGONISToverlay**: already schema'd at WS7 L268 (positive arm only), not re-authored.
it names the player's EARNED POSITION, never what the people ARE. That is what makes Sámi: Hunted
safe where Sámi: Hostile is disqualified — "Hostile" predicates a property of a living people;
"Hunted" describes what the player's own conduct earned. Hunted is canon-grounded as the
ANTI-GENOCIDE response: "attempting systematic slaughter escalates diegetic response (settlement to
region to hunted-across-the-world)" [SRC: docs/proposals/systems/attackability-and-consequence-model.md # L23].
Citation correction, verified at ratification: the proposal credits T1_IPW §8.7 L382 as this
argument's basis, but L382 says standing tracks "the protagonist's treatment OF" the groups — the
opposite direction from "what was done to the player". The conclusion stands on the attackability
grounding plus the sound inference that the ladder measures the PLAYER's conduct (so labeling it
with a property of the people is a category error); do not re-cite §8.7 L382 for the reception reading.
betrayal/Corrupted-band drift → trends wary, banter cools, and … lock a companion out entirely"
[SRC: docs/RUNTIME_GENERATIVE_LAYER.md # L116]; Known/Trusted/Family track "from a neutral or wary
first meeting, through acquaintance and earned trust, to a bonded found-family tier"
[SRC: docs/proposals/ENTITY_PERSONA_SYSTEM.md # L133]. Family (not Kin) because "kin" is a live
term of art for the Ch-66 origin-lineage recognition and "kin of the house returned" was itself a
reveal defect requiring recast [SRC: docs/spine/CANDIDATE_RESOLUTIONS.md # L114].
docs/spine/RATE_MISMATCH_ANALYSIS.md;it supersedes §8's rate-mismatch text and the mitigation note below.** The grind arithmetic was
re-run against the real per-companion beat count, as §8 instructed, now that the roster has landed.
§8's premise is false: companions do not get "a dozen" bond-moving beats — Ntala gets 191
actor-beats across 55 of 79 nodes (measured off the structural actors: field, 891 beats parsed).
Family is not dead content, and the ratified shared-threshold default SURVIVES; per-axis thresholds
were REFUTED (zero measured beneficiaries, two victims). Three findings replace the carried risk:
(a) the INVERSE defect is real — Ntala SATURATES, crossing +90 by Ch 24 at the Substantial floor and
playing ~53 further nodes with no headroom; (b) **the real binding constraint is the unauthored
per-beat RATE, not the threshold** — her best case swings 53 → 1060 (20x) purely on the magnitude
class, and Ana lands on 87, three points short of +90, on a number nobody has written; (c) Tunde is a
ROSTER defect (one beat, one node — no threshold makes a one-beat entity climb nine rungs), which is
Josh's call per WS7 L158. Ruling 4's aggravation is confirmed but bites on Tunde, not on the axis.
Severed echoes the Ch-29 Sámi severance motif and was first-to-trade;every cleaner candidate was already killed. Re-open that one rung if it grates in play.
Status: FULLY RULED — provenance (1), scheme (2), departure rule (3), names (4). Nothing in this brief is
wired into the registries yet: the ratified bands + departure rule + labels land per §9, and
tier_thresholds stays empty until that wiring commit. Wiring precision note: the FR registry's LIVE
faction_class / ladder_analog values drift from the WS7-planned enums and NO live row carries
faction_class = CULTURE — the §17.1 argument holds regardless, but the wiring commit must reconcile
that drift rather than assume the planned enums.
Status of the original draft: DRAFTED, not applied. Cardinal — these are Josh-final-yes numericals. Nothing below was edited into the repo at authoring time.
This brief recommends the numeric band structure for the relationship / disposition ladder that ENTITY_PERSONA_SYSTEM §3.2 defers, plus the departure rule that makes the ratified companion-loyalty model mechanically expressible. Every number is a recommendation for Josh's ruling.
Revision note (round 2): four corrections landed against an adversarial critic pass — an inverted reveal-gate flag withdrawn and re-aimed (§10), a §17.4 overreach re-grounded to argue-by-analogy rather than compel (§2, §7), the "Josh wrote six tiers" provenance claim retracted as unsupported and converted into a ruling Josh makes first (§8), and the departure rule given the alternatives fan-out the standing decision protocol requires (§6.1). Two of the critic's own prescribed citations were themselves wrong and are corrected here with proof (§11).
The work order describes [POPULATE→] sentinels in ENTITY_PERSONA §3.2 / §8. There are none. A grep for [POPULATE across docs/proposals/ENTITY_PERSONA_SYSTEM.md returns zero matches across all 272 lines; the file has no bracketed sentinel of any kind. The deferral is real but carried as prose, and the actual empty slots are in the live registries, not in the proposal doc. This matters because the applied edit surface is different from what the order assumed.
Scope of that correction, so it is not over-read: the [POPULATE→] convention is live and pervasive elsewhere in the repo — the spine entries carry it inline (for example docs/spine/CH_39.md L227 ends on [POPULATE→T0_Character_Index]), and it also appears through docs/fidelity_baseline.json, docs/DECISION_DOSSIER.md, docs/CANON_AUDIT.md, docs/PIPELINE_ADAPTER.md and others. The mechanism is real; it is simply absent from this one file. Read the correction as "not in that doc", never as "the sentinel mechanism is a phantom". [SRC: docs/spine/CH_39.md # L227]
The deferral statements, verbatim-located:
docs/proposals/ENTITY_PERSONA_SYSTEM.md line 131 (§3.2) — "The ladder is descriptive here; the numerical bands are Josh's to set and are not invented in this doc, consistent with the do-not-invent rule and with the way faction standing already runs on an authored -100 to +100 range." Governs: the disposition ladder that every relationship-holding entity (persons, factions, companions, bonded creatures) carries. [SRC: docs/proposals/ENTITY_PERSONA_SYSTEM.md # L131 §3.2]docs/proposals/ENTITY_PERSONA_SYSTEM.md line 258 (§8, Guardrails held) — "It assigns no chapter, coins no name, sets no integrity band or magnitude number... The relationship-tier bands, the opportunity thresholds, the word-count decomposition, the new registries, and the faction-anchor decision are all proposals for Josh's confirmation." Governs: the do-not-invent self-binding that this brief must not breach. [SRC: docs/proposals/ENTITY_PERSONA_SYSTEM.md # L258 §8]The genuinely empty numeric slots are live registry cells:
registries/T0_Reputation_Ladder_Registry [DRAFT v0.1]/Sheet1.csv — the tier_thresholds column is empty on both extant rows (FR_0001 Swahili coast trade-guild; FR_0002 House of Velheim enemy-Exalted easter egg). This is the literal ladder-threshold slot. [SRC: registries/T0_Reputation_Ladder_Registry [DRAFT v0.1]/Sheet1.csv # tier_thresholds, rows FR_0001 / FR_0002]registries/T0_Worldstate_Variables [ACTIVE v0.1]/Sheet1.csv line 9 — WS_008 relationship_history declares a "per-NPC ledger object with bond_state, integrity_signature_at_last_encounter, encounter_count". bond_state has no enum. [SRC: registries/T0_Worldstate_Variables [ACTIVE v0.1]/Sheet1.csv # L9 WS_008]familiar_bond_state declares bond_tier and a bond_quality enum; neither is enumerated. [SRC: registries/T0_Worldstate_Variables [ACTIVE v0.1]/Sheet1.csv # L13 WS_012]companion_roster_state and WS_028 companion_loyalty_transition_events landed as WS7 anchors with the domain reduced to the free-text "companion-loyalty runtime state". The loyalty_score(-100..+100) domain spec that the WS7 plan specified did not land. [SRC: registries/T0_Worldstate_Variables [ACTIVE v0.1]/Sheet1.csv # L28-29; cf. docs/proposals/systems/WS7_WIRING_BUILD_PLAN.md # L150, L153]Read and confirmed, not assumed:
Spine read, run explicitly because the live spine outranks every registry and proposal doc and because omitting it is what produced the round-1 inverted flag now withdrawn in §10. A grep of docs/spine/ for Exalted returns exactly three substantive hits, all typing the FR-08 / FR_0002 surface this brief touches: CH_08 L321 (the FR-08 broker-rep hook has no Ch-8 surface and is deliberately not typed there); CH_28 L316 (FR-08 typed as the play-both-faces opportunity, "invisible scaffolding pre-reveal"); CH_38 L286 (FR-04/FR-08 reveal-gate-anchored by the exit seam's reveal_state → LIFTED-house). The spine carries no relational-tier band anywhere, so the ladder itself is genuinely unauthored rather than authored-elsewhere — which is the finding that licenses this brief. [SRC: docs/spine/CH_08.md # L321] [SRC: docs/spine/CH_28.md # L316] [SRC: docs/spine/CH_38.md # L286]
This is the part the work order did not anticipate, and it changes the recommendation.
ladder_analog column already holding two different analogs (WoW-Exalted for FR_0001, enemy-Exalted for FR_0002) against one shared threshold column. That column existing is evidence the intended architecture is per-axis labels over shared thresholds. [SRC: registries/T0_Reputation_Ladder_Registry [DRAFT v0.1]/Sheet1.csv # header + rows FR_0001 / FR_0002]loyalty_model (for_life | invested_sticky | come_and_go | drawn_conditional | not_companion), loyalty_state, loyalty_belief_axis, loyalty_departure_threshold (never | complete_opposition | major_opposition | any_sustained_misalignment | circumstance_only), loyalty_join_trigger, loyalty_notes. Columns 13-14 (attackability_tier, is_load_bearing) belong to the sibling attackability subsystem, not to companion-loyalty; the WS7 plan's one-owner-per-column rule makes that boundary load-bearing. Exactly five of 162 rows carry any loyalty value: CHAR_0002 Ntala (for_life / never), CHAR_0003 The Architect (not_companion / circumstance), CHAR_0017 Ana (come_and_go / major_opposition), CHAR_0109 Wabenhotep (not_companion / never), CHAR_0127 Tunde (drawn_conditional / any_sustained_misalignment). [SRC: registries/T0_Character_Index [ACTIVE v1.1]/T0_Character_Index DRAFT v1.1.csv # header cols 13-20 + 5 populated rows; docs/proposals/systems/WS7_WIRING_BUILD_PLAN.md # L137-146]loyalty_departure_threshold names complete_opposition and major_opposition but nothing defines them. WS_028 declares transition events DRAWN | WAVERING | DEPARTED | REBONDED — so WAVERING is a required intermediate state that currently has no band at all. [SRC: docs/proposals/systems/WS7_WIRING_BUILD_PLAN.md # L141, L152, L154]The ratified companion-loyalty model this must express: companions travel with the player; invested ones join; some come and go, some are for life, some leave when integrity and actions oppose their beliefs, others are drawn by integrity and actions; invested is sticky but not immune, and complete opposition forces them out. [SRC: docs/proposals/systems/RULINGS.md # L56]
The synthesis those four support: keep integrity as the single real global property (Ultima), add a per-entity signed relational scalar with inertia (Dragon Age), keep it per-faction and asymmetric (New Vegas) without the fame/infamy split, and give the ladder a long positive tail (WoW) while refusing WoW's dead negative arm.
All three share a substrate, which is not in contention:
loyalty_score. No scheme invents a new range.docs/spine/RATE_MISMATCH_ANALYSIS.md §5.]The relational ladder reuses the integrity boundaries exactly: Bonded +60 to +100; Trusted +20 to +59; Neutral or wary -19 to +19; Suspicious -59 to -20; Locked-out enemy -100 to -60.
The faction axis keeps the written six tiers (Hostile, Neutral, Friendly, Honored, Revered, Exalted) with thresholds fitted to it: Hostile -100 to -20; Neutral -19 to +19; Friendly +20 to +44; Honored +45 to +69; Revered +70 to +89; Exalted +90 to +100. The companion and NPC bond axis separately runs the five-band Scheme-A shape.
One numeric ladder serves every relational axis (NPC bond_state, faction standing, companion loyalty_score). Nine tiers, symmetric about zero:
Tier widths run 11, 20, 30, 30, 19, 30, 30, 20, 11 — an exact mirror, spanning all 201 integers with no gap and no overlap. The names above are placeholders for a Josh naming call; the recommendation is that each axis keeps its own display labels over the shared numbers, which is what the FR_ registry's existing ladder_analog column already does. The faction axis displays Exalted; the companion axis displays the persona doc's own vocabulary (bonded found-family at the top tier, locked-out enemy at the bottom); the numbers underneath are one ladder.
Calibration checks run against Scheme C, because a band scheme that does not survive arithmetic is not a recommendation:
None of the three schemes alone expresses "invested is sticky but not immune," because departure is not driven by the relational score. It is driven by the opposition between the player's sustained integrity and the companion's belief pole, with the relational score acting only as inertia. This component is required under any scheme.
Authority note, stated before the design rather than after it. The WS7 plan's OPEN FLAGS already rule this exact surface tuning-deferred: "Departure semantics: the exact integrity_score / integrity_level crossing that constitutes 'complete_opposition' vs 'major_opposition' for each threshold is a tuning value (Fable-5 / authoring) — flagged as tuning-deferred, NOT invented here." That flag both authorises this brief's recommend-never-apply posture and obliges it to say plainly that everything in this section is a tuning recommendation against an open flag. In particular, the opposition magnitude below is a NEW derived construct with no existing source anywhere in the corpus — it is proposed here for the first time, and §6.1 fans out the alternatives to it rather than presenting it as the only design. [SRC: docs/proposals/systems/WS7_WIRING_BUILD_PLAN.md # L162]
loyalty_belief_axis pole. It is computed from the integrity band per §3.2, not from observed deeds, because integrity is a real property read directly (§2.2, L27).loyalty_departure_threshold enum to opposition triggers: never is no trigger (Ntala's for_life anchor); complete_opposition triggers at 85; major_opposition at 60; any_sustained_misalignment at 35; circumstance_only is not integrity-driven at all and departs by plot.Every magnitude in that list — 85, 60, 35, the divide-by-10 inertia, the +15 bonus cap, the 90 effective-trigger cap, the trigger-minus-15 WAVERING band, the two-node sustain, the DRAWN 60 — is proposed here and sourced nowhere. They are internally consistent and they are arithmetically checked, and that is all they are.
The standing decision protocol requires steelmanned alternatives, deep-dive, adversarial review, and a recommendation for any fork, including the status-quo option. Round 1 gave the ladder three schemes and the departure rule exactly one design, which inverted the effort against the risk — the departure rule is the half carrying every invented magnitude. The fan-out:
A new 0-100 derived scalar for belief-distance, thresholds per the departure enum, loyalty_score as capped inertia.
Departure keys off the player's integrity_level (WS_002, already live as the five-value enum L1_TRULY_GOOD | L2_GOOD_ENOUGH | L3_DRIFTING | L4_EVIL | L5_PURE_EVIL_TERMINAL) crossing N bands away from the companion's belief pole. complete_opposition = 4 bands; major_opposition = 3; any_sustained_misalignment = 2. No new scalar at all.
Departure keys off loyalty_score alone falling below a per-model floor (for_life none; invested_sticky -70; come_and_go -40; drawn_conditional -25). loyalty_belief_axis only sets the decay rate — how fast opposed player integrity drains the score.
loyalty_score integer -100..+100), and no new construct whatsoever. WAVERING is trivially the band just above the floor. Inertia is native — a high score simply takes longer to drain. It composes with Scheme C for free, because loyalty_score IS the relational axis: departure becomes "you fell to the Wary tier", needing no separate machinery at all. [SRC: docs/proposals/systems/WS7_WIRING_BUILD_PLAN.md # L150]Author nothing. WS7 L162 already rules the crossing a Fable-5 tuning value; ship the enum unbanded and let playtest set it.
Recommendation within the fan-out: A, with B as the fallback that a single Josh ruling could promote. The real fork is A versus B, and it turns on one question — whether WAVERING deserves a computed band or may be an authored per-companion beat. WS_028's ratified enum says computed, which is why A is recommended. C is rejected on the ratified model, D on the ratified enum. Note that A already consumes B's grounding: §6's opposition magnitude is computed from the integrity band, so A is B plus sub-band resolution rather than a rival metaphysics.
Strongest objection to A: it is a new construct on a surface already flagged tuning-deferred, carrying eight numbers that come from nowhere. If Josh's instinct is that the departure rule should not exist as a formula at all, D is correct and this whole section is premature.
Adopt Scheme C — the symmetric nine-tier shared relational ladder with per-axis display labels — plus the §6 departure rule (design A).
Josh should rule the §8 provenance question first, because it decides whether Scheme C is an extension or an override. The reasoning for C, in order of weight.
First, the persona doc's own §3.2 already describes a three-tier negative arm at L134 (suspicion, hostility, locked-out enemy), so nine tiers is closer to what that doc says than the six written elsewhere — this is a reconciliation of two existing texts, not an invention. Second, one ladder across three axes avoids reproducing the dual-encoding defect the repo already carries as Known issue #3, while keeping relationship numerically distinct from integrity as §8.7 demands. Third, +90 Exalted survives the grind and trade-off arithmetic in §5, and Scheme A's +60 does not.
Supporting, by analogy and not by compulsion: CVD §17.4 weights evil-state and good-state equally in production scope. That hard line is scoped to the integrity axis — it is titled "Integrity hard lines", is anchored in §9 and §10, and its bullets govern integrity bands, appearance, voice, and per-integrity-state content unlocks. It does not govern a faction ladder tier count, and a one-negative-tier ladder does not by itself reduce evil-state production scope: an evil player still walks Hostile and still receives evil-state content. §17.4 argues for symmetry; it does not compel it. Round 1 ranked this first and framed it as a compulsion, which was an overreach — and one that contradicted this brief's own §2 position that the relational ladder is a new axis rather than a CVD-level count. A brief cannot both disclaim integrity-axis governance and invoke the integrity-axis hard line to compel a shape. [SRC: _source/01_Tier_1_Foundation/T1_CVD_Creative_Vision_Document [ACTIVE v1.4].md # L1009, L1011, L1019 §17.4]
The naming of the nine tiers is a separate cardinal call and is deliberately not made here. The recommendation is only that the numbers be one ladder and the labels be per-axis.
The nine-tier ladder may override a real authorial choice on a structural axis, and it may be unifying two things that are not one thing.
Whether the six is Josh's own count is unsettled by the record, and that is the actual fork. reputation-prestige-nemesis.md is headed "(Josh, 2026-07-13)" at L1 and says at L3 that the systems are ones "Josh specified from WoW-Vanilla Exalted love" — but that same line labels the doc "Creative-within-vision" and "Proposal-first; numerical tuning flagged for Fable-5", which makes the L7 six-tier enumeration an agent's rendering of Josh's spec rather than demonstrably his authored count. The ruling record does not enumerate at all: RULINGS.md L57 records only "a WoW-Exalted reputation ladder (completionist Exalted-all-cultures rewards)". A repo-wide grep for "Honored" finds no second enumeration of six tiers and no Josh-quoted text carrying a count — the only other tier-naming hit is WHOLE_ARC_CONNECTIVE_WEB_INVENTORY L97's passing "Honored-Revered-Exalted", which names three positive tiers consistent with L7 but enumerates nothing. He named WoW-Vanilla and has played it — he knows it ships eight — so if the six was his deliberate compression, Scheme C re-cuts a real authorial choice and Scheme B is correct. If the six was the proposal author's shorthand for "WoW-tier shape", C extends a rendering rather than overriding a ruling. Josh should be asked which it was before he is asked to pick a scheme. Round 1 asserted "Josh wrote six tiers" as fact; the record does not establish it, and telling him he wrote it risks making him protect a choice he never made. [SRC: docs/proposals/systems/reputation-prestige-nemesis.md # L1, L3, L7] [SRC: docs/proposals/systems/RULINGS.md # L57] [SRC: docs/proposals/WHOLE_ARC_CONNECTIVE_WEB_INVENTORY.md # L97]
The six is also already committed to live structure as ladder_analog=WoW-Exalted in the FR_ registry, so nine is not a clean-slate proposal — it re-cuts something that landed.
Deeper: the per-axis-label device may be papering over a genuine semantic mismatch rather than resolving it. A faction accumulates reputation through many small repeated transactions; a companion builds a bond through a few heavy narrative beats. Those are different physics, and identical thresholds over both is a claim that they metabolize points at the same rate. If they do not — if a companion realistically only ever encounters a dozen bond-moving beats across the arc while a faction sees hundreds of transactions — then +90 is a reasonable faction grind and an unreachable companion ceiling, and the shared ladder quietly makes the top companion tier dead content. Scheme B's separation, whatever its dual-encoding cost, does not have this failure mode.
The honest mitigations, offered rather than assumed: the FR_ registry's tier_thresholds is a per-row column, so a per-axis or per-faction threshold override is already schema-supported and can absorb a rate mismatch without forking the ladder; and the §5 grind arithmetic should be re-run against the actual per-companion beat count once the roster lands, which is a Fable-5 tuning pass, not a canon call. If the six was Josh's deliberate count, Scheme B is the correct fallback and should be ruled directly.
Nothing below is written. Each is contingent on Josh ruling the provenance question, then a scheme, with the tier names ruled separately.
docs/proposals/ENTITY_PERSONA_SYSTEM.md §3.2, replacing the deferral clause at L131. The sentence "The ladder is descriptive here; the numerical bands are Josh's to set and are not invented in this doc, consistent with the do-not-invent rule and with the way faction standing already runs on an authored -100 to +100 range." becomes a statement of the ratified ladder: the nine tiers with their ranges, the note that the ladder is shared across NPC, faction, and companion axes with per-axis display labels, and a cross-citation to the ruling doc. The two arms described at L133-134 are then restated against the ratified tier names.docs/proposals/ENTITY_PERSONA_SYSTEM.md §8, L258. "The relationship-tier bands, the opportunity thresholds, the word-count decomposition, the new registries, and the faction-anchor decision are all proposals for Josh's confirmation" narrows — relationship-tier bands drop out of the deferred list and gain a citation to the ruling; the remaining items stay deferred. The clause "sets no integrity band or magnitude number" stays true and untouched, because this ladder sets no integrity band.registries/T0_Reputation_Ladder_Registry [DRAFT v0.1]/Sheet1.csv, tier_thresholds on FR_0001 and FR_0002. Populate with the ratified ladder encoded as the global default. Recommend the column carry an override only where a faction deviates, with the global default living in the T1 authority section rather than repeated per row.registries/T0_Worldstate_Variables [ACTIVE v0.1]/Sheet1.csv WS_008 (L9). Extend the domain text to enumerate bond_state against the ratified tier set.standing_value names the shared ladder rather than a bare range.loyalty_score(-100..+100) — and add the ratified tier enum plus the §6 departure-rule fields.bond_tier and bond_quality join the shared ladder or stay a separate Ch-58-reunion-coupled scale. Recommend joining, but this needs its own ruling because the Ch 58 reunion branches off path buckets, not tiers.docs/DOC_MAP.md — index this brief, and the T1 §8.11 ladder section once authored, so neither orphans. Every sibling this brief cites is already indexed there (ENTITY_PERSONA_SYSTEM at L119, reputation-prestige-nemesis at L269, WS7_WIRING_BUILD_PLAN at L274); the standing anti-orphan rule is that a doc is not done until it is listed. [SRC: docs/DOC_MAP.md # L119, L269, L274]Gate note for the orchestrator, made precise rather than blanket. The two registries in this list sit in different baseline classes, and the difference matters:
T0_Worldstate_Variables/Sheet1 IS covered by extension_hashes in docs/fidelity_baseline.json. The WS_008 / WS_012 / WS_021 / WS_027 / WS_028 edits therefore hard-require a baseline refresh in the same commit or the fidelity gate goes red.T0_Reputation_Ladder_Registry is declared in added_registries, which harness/registry_fidelity.py matches on base-name presence only (L259) and does not cell-hash. Populating tier_thresholds alone would not redden fidelity. Refresh anyway — the cost is nil and the failure mode of guessing wrong is a red gate.--emit-baseline on harness/registry_fidelity.py, NOT on run_gates.py. Run run_gates.py UNPIPED — a pipe makes $? the pipe's exit code and masks a red gate.shape_mismatch trap that --emit-baseline cannot clear.reveal_state LIFTED-house: "the House of Velheim nameable player-facing from Ch 39 — the pattern coordinated, a family, the name, and the origin-tie surfaced; held past here — ... the patriarch to Ch 76, the thesis to Ch 77". So Ch 38/39 names the HOUSE and Ch 76 names the PATRIARCH; round 1 conflated the two reveals of a deliberate two-stage gate. WHOLE_ARC_CONNECTIVE_WEB_INVENTORY L117 (FR-08) carries both stages on this exact row without contradiction: reveal_gate_anchor post-Ch-38 is the ACCRUAL anchor (rep tracks against a faction that is by then nameable), while the enemy-Exalted TRACK "only becomes LEGIBLE after the reveal (Ch 76+ / post-game)" — the legibility gate, which lives in the track unlock, not in this column. CH_28.md L316 types the pre-reveal accrual as "invisible scaffolding pre-reveal" and CH_38.md L286 anchors the FR-08 writes to the exit seam. Josh's own ruling confirms the legibility gate independently: RULINGS.md L57 records the enemy-Exalted epilogues as "REVEAL-FIREWALLED: legible only post-Ch-76/post-game". No change needed; no order should be spawned against this row. [SRC: docs/spine/CH_38.md # L250, L286] [SRC: docs/spine/CH_28.md # L316] [SRC: docs/proposals/WHOLE_ARC_CONNECTIVE_WEB_INVENTORY.md # L117] [SRC: docs/proposals/systems/RULINGS.md # L57]reputation-prestige-nemesis.md L23 reads: the enemy-Exalted track "only becomes legible/available AFTER the reveal (Ch 76+, when the family/pattern is named)". The gate (Ch 76+) is right and Josh-ruled; the parenthetical rationale is stale against the spine, which names the family and the pattern at Ch 38/39 and holds only the patriarch to Ch 76. The correct repair is to the clause, not the column — something like "(Ch 76+ / post-game, gated on the track unlock rather than on the House being nameable)". This is worth an order precisely because that stale parenthetical is what produced the round-1 inversion: a later agent read it, trusted it over the spine, and nearly filed a fix against a spine-correct row. Whether it lands is a living-source call on a proposal doc, not a canon call. [SRC: docs/proposals/systems/reputation-prestige-nemesis.md # L23 §C "Enemy / antagonist Exalted", heading at L19] [SRC: docs/spine/CH_38.md # L250]loyalty_departure_threshold=circumstance where the WS7-planned enum value is circumstance_only. Cosmetic, single row, illustrative seed. [SRC: registries/T0_Character_Index [ACTIVE v1.1]/T0_Character_Index DRAFT v1.1.csv # CHAR_0003; docs/proposals/systems/WS7_WIRING_BUILD_PLAN.md # L141]major_opposition where the plan seeded circumstance_only (L145, with the note "leaves by circumstance not integrity" — so the live value contradicts the seed's own rationale, not just its token); live CHAR_0127 Tunde is any_sustained_misalignment where the plan seeded major_opposition (L146). Both are illustrative-only rows that Josh must rule anyway, so this is noise rather than a defect, but the plan and the tree no longer agree. [SRC: docs/proposals/systems/WS7_WIRING_BUILD_PLAN.md # L145-146]Two of the round-2 critic's prescribed substitutions carried citations that do not resolve to what they claim. The findings were right; these two citations inside them were not, and applying them verbatim would have propagated a fresh defect into the brief.
The finding each of those citations was attached to stands and is applied. Only the line numbers are refused.
Everything else in the critic pass is accepted: MAJOR 1 (inverted flag) applied in §10, and extended — the flag is withdrawn from the registry and re-aimed at the stale proposal-doc clause that caused it. MAJOR 2 (§17.4 overreach) applied in §2 and §7. MAJOR 3 (provenance) applied in §8 and promoted to a ruling Josh makes first, per §7. MAJOR 4 (protocol violation) applied as the §6 authority note and the §6.1 fan-out. The five actionable MINORs are applied: the spine-read line in §2, the sentinel-scope note in §1, the column-ownership correction in §3, the precise gate note in §9, and the DOC_MAP entry in §9.
Stated plainly rather than papered over.
tier_thresholds overrides) is real and schema-supported, but whether it is needed is unknowable now.