RELATIONSHIP_TIER_BANDS_BRIEF.md

decisions/spine/RELATIONSHIP_TIER_BANDS_BRIEF.md

O-9 — Relationship-tier bands: decision brief

▶ JOSH'S RULINGS (2026-07-16) — ALL FOUR RULED; the carried risk is MEASURED + DISCHARGED (2026-07-17)

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):

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.

Cooled −39/−10 · Stranger −9/+9 · Known +10/+39 · Warm +40/+69 · Trusted +70/+89 · Family +90/+100.

overlay**: 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].

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.

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).

1. Correction to the work order's premise — the slots are prose, not sentinels

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:

The genuinely empty numeric slots are live registry cells:

2. The existing score architecture these bands must compose with

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]

3. What else is already written that these bands collide with

This is the part the work order did not anticipate, and it changes the recommendation.

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]

4. Genre reference points, named concretely

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.

5. The three schemes

All three share a substrate, which is not in contention:

Scheme A — Integrity-Mirror: five relational bands on the integrity boundaries

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.

Scheme B — Preserve-the-Written-Six: keep the written faction ladder verbatim, add a separate bond ladder

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.

Scheme C — Symmetric Nine: one relational ladder, per-axis labels (RECOMMENDED)

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:

6. The departure rule — scheme-independent, and the part that actually expresses the ratified model

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]

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.

6.1 The departure-rule fan-out — the alternatives to the design above

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:

6.1-A — OPPOSITION-MAGNITUDE (the §6 design; RECOMMENDED)

A new 0-100 derived scalar for belief-distance, thresholds per the departure enum, loyalty_score as capped inertia.

6.1-B — BAND-CROSSING (the do-not-invent-anything option)

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.

6.1-C — SCORE-DIRECT (the cheapest machinery)

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.

6.1-D — LEAVE-DEFERRED (the status quo; the already-applied option)

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.

7. Recommendation

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.

8. The strongest objection

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.

9. The exact edits that would be applied on ratification — NOT APPLIED

Nothing below is written. Each is contingent on Josh ruling the provenance question, then a scheme, with the tier names ruled separately.

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:

10. Adjacent observations, out of O-9 scope, flagged not fixed

11. Critic findings this round rejected, with proof

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.

12. What this brief could not close

Stated plainly rather than papered over.

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