FORKB_RESURRECTION_BRIEF_2026-07-27.md

pipelines/FORKB_RESURRECTION_BRIEF_2026-07-27.md

FORK B — THE DECISION BRIEF

The direction (Josh, verbatim intent, 2026-07-27): *"after death, allow the user to choose to

revive at last checkpoint, or wait to see if one of their support companions who may have been

trained or taught resurrection may be able to revive the user, but this can only happen out of

combat."*

Synthesis of five read-only deep dives (canon-integration · mechanics/economy · presentation ·

engine/schema · adversary), 2026-07-27. Per the standing decision protocol: this brief presents

HOW, not whether. Analyst disagreements are preserved as named FORKS, never averaged.

Source files (scratchpad): forkb_canon_integration.md · forkb_mechanics_economy.md ·

forkb_presentation.md · forkb_engine_schema.md · forkb_adversary.md.

---

0. THE FOUR FACTS ALL FIVE ANALYSTS AGREE ON

These are not proposals. They are positive-controlled findings, converged from independent passes,

and they reshape the question:

1. Resurrection is ALREADY RATIFIED CANON — it was never absent. T0_Ability_Tree_Registry

carries A_A_009 Breath of Life (T5, L1, Air/Heart), A_C_003 Vril Revival (T5, L1/L2,

Ether-Crown), A_C_004 Vril Mass Revival (T7, L1, revival_aoe), all reading *"restores a

downed ally to combat consciousness with reduced vitality."* Collective Surge (T7) explicitly

relays a Mass Revival across a formation from any linked ally's position — canon already

presupposes allies hold revival-class casts. The pre-Claude GDD authored the whole ladder, and

the antagonist family has revival too (Death's Scythe: *"opponents defeated with this weapon

cannot be revived by antagonist family means"* — proving revival-DENIAL is already a designed

counter-lever). The only missing arrow in a four-way symmetric system is ally→player. Josh

asked for the one hole filled. Any framing of this as "adding resurrection" is factually wrong.

2. Josh's "trained or taught" speaks the corpus's own vocabulary, one-to-one. *Taught* =

Lane B, the quest-gated transformative tier (T0_Bonus_Pool_Registry.unlock_gate_quest_ref

the column already exists). *Trained* = Lane A, the proficiency-depth ladder + INT + bond +

spec purpose. Nothing needs inventing at the acquisition layer.

3. The out-of-combat constraint is derivable from canon, not arbitrary — and it is genre-correct.

The seven infinite-vital-energy devices bond to the protagonist's vril-seat equipment only,

so a companion has no Enhanced Ability Mastery and cannot hold a Crown-seat channel under combat

pressure. Independently, the rule maps 1:1 onto the WoW combat-rez / out-of-combat-rez split.

Josh arrived at the correct line himself; the loop's job is to state it in-fiction as capability,

never as a UI rule.

4. The runtime is 0% built and the ally runtime is ZERO. Positive-controlled across

C:/dev/Humanity/Humanity/Source: \bAlly|Allies → 0 hits; Companion → 10 hits, all data

plumbing; Checkpoint0 hits; bInCombat|IsInCombat|CombatActive0 hits. No ally

pawn, no ally ASC, no ally AI, no party frame. THE FAMILIAR TRAP: ~20 Familiar hits in

Source are all the boss composure node (Ability.Mode.Familiar, Composure_Familiar,

UHumanityFamiliarAbility) — not one is a creature. Flag this to every downstream agent.

Also: "revive at last checkpoint" has no checkpoint to revive at. The shipped path is

RespawnAtNearestSite() → nearest AHumanitySiteMarker by squared distance. Josh said

*last*; the code does *nearest*. That is a semantic fork, §2.7.

---

1. THE SHAPE OPTIONS — four coherent parameterizations

Each shape is a complete, internally consistent answer across four axes: the choice surface ·

what the wait costs · where you come back · how the capability is acquired. They nest:

A ⊂ B ⊂ C. D is the cost-axis alternative.

SHAPE A — THE DIEGETIC HOLD (minimum coherent; condition-only uncertainty)

and settles low (arena-biased yaw, never the player's last look direction); a single quiet

hold-to-let go is available from the first frame to the last. Not letting go IS the wait

the player never "picks" wait, so there is no second UI object and no greyed tease. No input =

wait (the accessibility floor); the checkpoint is an active press.

in force, made visible) + the ally's vril, refilled only at the vril site.

proficiency depth). Deterministic on conditions — no roll.

by construction (no cut the game imposes); natural-voice-native; no-dead-end by construction

(Option A never fails); the smallest thing that is honestly Josh's direction; buildable in ~4-5

waves + one mint without any ally runtime (the wait resolves truthfully to "no one could

reach you").

nearly FREE (enemies de-aggro from a body within seconds) — the constraint is *correct* but not

yet *meaningful*, and must be reported that way. The wait can be dominated (§3.1). In the

Ch 2-5 slice the branch is inert.

SHAPE B — THE HOLD WITH TEETH (A + the enemy side) ← RECOMMENDED

Everything in A, plus:

disengage (generous default) · execute (finish the body after a visible windup) ·

guard (hold over the body, refuse to leash — combat never ends, so the wait cannot resolve) ·

ignore.

them and come. One rule; closes the AFK-farm-from-the-floor exploit; improves the fiction.

genuinely able to end *worse* than letting go, it is register-correct for rated-M, and it creates

the feature's best moment (your ally peels the executioner off you) with no die roll. It also

closes the "enemies wander off ⇒ free revive" leak that makes A's constraint hollow.

owner W-SPACE) from "highest-leverage" to blocking. The execute windup is authored content.

SHAPE C — THE THREE-ROUTE ECONOMY (B + path parity + measured balance) ← the destination

Everything in B, plus the three routes to one mechanic:

routebandcostwho
compassion — the existing A_A_009/A_C_003/A_C_004 rowsL1/L2ally vril highbuilt support allies
extraction — Soul-Drain-adjacent, *"alternate revival mechanics through different element routing"* (T1_Ability_Tree L848) — canon-declared, ZERO rows existL4/L5cheap in vril, expensive in world: takes vitality from something living; community-ripple + faction + persona consequence; karmic-debt residue (T1_Story_Spine L114)evil-path allies
craft — reagent / inscriptionnonea consumable + the Alchemy·Herbalism·Inscription trade economyany ally — the anti-collapse keystone

Plus a MAJOR pick cost on a support pool (taking it means not taking a damage/utility major),

a new SPEC_VRIL_REVIVE_ALLY row in T0_Spec_Purpose_Registry, and a **named per-path pick-rate

assertion** in the Phase-5M/5H build-space sweeps.

heal/revival rows across 185 are L1 or L1,L2; zero at L3/L4/L5, while 13 L3 rows and 7 L4,L5

rows exist elsewhere, so the bands are expressible and the zero is real). The craft route is

bench-independent, so a DEPARTED healer narrows options without deleting the mechanic. Makes the

whole thing measurable rather than asserted: near-100% pick rate in one band = meta-collapse;

near-0% = a dead pick; both are defects, fixed by widening competitors, never by removal.

consumable-hoarding economy if the drop rates are wrong; the largest mint surface.

SHAPE D — THE CONSERVATIVE COST VARIANT (the revive returns you to the well)

Same surface as A/B, but a successful ally revive still relocates you to the checkpoint — what

the ally saves you is the world-advance delta, not the walk.

(no in-place restore path); leaves graduated persistence untouched.

bookkeeping difference the player will never feel. Three analysts rate it weak.

override** (the ally_revive_policy column, §3.3) for the rare authored arena where in-place

revival would break a boss economy.

---

2. CANON-INTEGRATION RULING POINTS — the loop vs Josh

2.A GENUINELY JOSH'S (brief, never bare — presented here with recommendations)

**J-1 — THE CONSCIOUSNESS-WITHDRAWAL RECONCILIATION. This is the gating decision: every

player-facing word depends on it.ANALYST FORK — kept visible.**

The ratified model is *"consciousness withdrawal to the last attuned recharge source"*

(BATCH1_RULINGS.md L50-51), deliberately a substrate event, not a UI event.

DURATION** — so the wait is simply the interval before it completes, and Fork B "intercepts a

withdrawal in progress." Under this reading nothing is amended: the choice is *let go* vs

*hold on*, the timeout resolves to the checkpoint because the withdrawal completes on its own, and

no new metaphysics is minted.

withdrawn to the well, the choice is offered to someone who is not there and both options collapse

into one location. It offers three repairs — (1) make withdrawal explicitly graduated (amends

BATCH1 item 4), (2) introduce a tether the healer works on (mints a new vril concept), or

(3) reframe the options as "let go / hold on" (costs canon nothing).

analysts already hold, it costs zero amendment, and it is the most emotionally loaded framing of

the two options. But the loop should NOT apply it silently: the ratified sentence does not say

"graduated," and writing that word into canon is a change to a Josh-ratified model. **Ask him to

bless one sentence, then everything downstream is execution.**

J-2 — THE ASYMMETRY / FALLEN-vs-DEAD LINE.ANALYST FORK — kept visible.

protagonist and nobody else, ever. Grounds: T3_Familiars_Named L919 already rules the Ch-58

reunion resolved *"not through resurrection"*; named/persona'd NPCs stay permanently dead

(community-ripple doctrine, DESIGN_GAP_REGISTER #13). Canon has already declined resurrection as

a narrative resolution mechanism.

*downed allies* and Mass Revival targets the whole fallen team, so DOWNED must be party-wide or

the player's own ratified kit is meaningless. Engine's B2 recommends **allies go DOWNED, never

dead, in combat. The adversary draws the line at the community-ripple / persona-death event**:

before it fires you are *fallen*; after it fires you are gone.

state and is symmetric across the party; DEAD is a story event and is asymmetric and permanent.

Permanent death is never a combat outcome for a persona'd character. The revive acts on DOWNED,

never on DEAD, and the boundary is the community-ripple event — a write that already exists.*

This preserves the Ch-58 ruling, the community-ripple doctrine, Mass Revival, and the gear-return

contract simultaneously. **It is §17-adjacent cardinal territory (a hard line about death

permanence) — recommend Josh ratifies the sentence rather than the loop applying it.**

Enforcement note: loyalty_state has no dead value and WS_028's event enum has no KILLED

(BG3-2). Fork B raises that gap's priority because the player will now visibly notice the

asymmetry.

J-3 — THE HEALER'S CHILD (D-2 F-STAR). The emotionally correct reviver — the Manggarai

healer-elder's daughter, the protagonist's primary human companion from Ch 13 — is canonically

barred: *"no combat ability, vril, or weapon is gained"* (T3_Core_Characters §3.4, per the D-2

F-STAR ruling 2026-07-19).

reviver; Fork B lives on the other companions and the familiars.

non-vril, Herbalism/medicine-grounded resuscitation is not a combat ability and is the exact

expression of her mother's tradition — reachable without granting her vril, a weapon, or any

combat presence. Her parallel-analytical way of knowing is already canon (Ch 16 Indus).

of this feature in the entire game. It is a characterization-canon call on a Josh-authored ruling

about a Josh-owned character — not a creative-within-vision apply.

J-4 — THE EVIL-PATH ANSWER (path parity).ANALYST FORK on who rules it.

Mechanics calls minting the L4/L5 revival lane *"not a fork — an authoring task the loop rules and

applies,"* citing T1_Ability_Tree L848 which already declares the lane exists. Engine calls the

rows *"cardinal-adjacent (band-gated capability) — Josh's call on the routing."* The adversary adds

a third route entirely: HL_0076 already bands incoming healing (L1 +10%, L2 +5%, L5 +10%

vulnerability), so the companion comes regardless and the *magnitude* rides the band — which

routes cleanly around the §8.11.8 firewall (no condition_expr reads loyalty; the magnitude reads

the band exactly as all healing does).

— same ability, higher vril cost, karmic-debt residue per T1_Story_Spine L114), and Josh rules

ONE thing: whether path parity is delivered by a separate L4/L5 route, by HL_0076 magnitude, or

both.** That single choice touches the equally-weighted-endings architecture, which is his.

J-5 — CAN THE PARTY WIN A FIGHT WITHOUT YOU, AND CAN THEY FINISH A BOSS? The adversary names

this *"the largest single cost, invisible in the direction's phrasing."* Out-of-combat-only means

either the mechanic almost never fires (dead feature) or the fight must be **capable of ending

without the player**. If the party can finish a boss: who gets the win credit, the win_reward, the

mastery credit, the tell-reads?

their win_condition is a player-performed read (5-7 counter-class reads in a row on a pip

meter that wipes on error), Rangku's FREE route is an integrity choice only the player can make,

and Naga Padoha's resolution is a cosmic subdual. **An ally cannot satisfy any of them, so those

encounters cannot end while you are down** and the wait resolves to attrition then the checkpoint.

The design disarms itself exactly where an ally-undo would do the most damage. Josh's call is the

scope statement, not the mechanism.

2.B THE LOOP RULES (creative-within-vision — apply and show the path)

doctrine.

T0_Ally_Behavior_Policy rows, the T0_Familiar_Bond_Ability rungs.

is replaced on the revive path by the companion's own words.

chapter** — removing it would be exactly the care-tier inflation the doctrine names as a defect —

but the wake is routed off protected sacred ground (§5.7 already models sites as having their own

consent), the voice is culturally registered per region, and no borrowed rite is ever depicted.

2.C A CORRECTION THE PARENT BRIEF NEEDS ⚠ ANALYST CONTRADICTION — unresolved, director call

The parent brief's premise *"protected chapters carry 1-HP withdrawal"* is inverted per the

canon-integration analyst: defeat_protected / the 1-HP clamp is a BOSS column (the boss

withdraws at 1 HP; Naga Padoha is the slice's one clamped boss), not player-death protection.

The player can and does die inside a protected encounter.

But the engine analyst independently specifies a player-side clamp as build item A8 (*"missing

today"*) and QA test T10 (*"protected chapter clamps player to 1 HP; S2 never opens"*).

These cannot both be right. Recommendation: the canon analyst's read is better evidenced

(FUN_REBUILD_PLAN.md L372, PRE_5090_BUILD_PLAN.md L349-350 both scope it to the boss row) —

so A8/T10 should be struck from the build list unless the director's own re-read of the

deciding artifact says otherwise. Per the standing agent-frame-claims rule, the director re-reads

before landing.

---

3. THE EXPLOIT / BALANCE GUARDS THAT MUST SHIP WITH IT

Non-optional. Each is cheap; each closes a defect an analyst demonstrated.

#Exploit / defectThe guardShips with
3.1DOMINATION / wait-scumming. If waiting is free and the checkpoint stays available, waiting strictly dominates and the choice is theatre.Three teeth, in order: (a) the world-advance clock keeps running while you are down (ruled doctrine, free, just made visible — and canon's Withdrawal clock already tightens tells / slows wells / prunes answers, so the party gets *worse* the longer you lie there); (b) depletion carried forward — a successful revive leaves the party spent, refillable only at the sanctum; (c) execute — the wait can end worse. Explicitly rejected: a wait timer, a hidden roll, an XP/loot penalty, and any "you may only choose once" lockout. Letting go must stay available for the entire wait.A (a) · B (b,c)
3.2PATH-ASYMMETRY COLLAPSE — the sharpest, and already latent in shipped canon. All 8 heal/revival rows are L1 or L1,L2; zero at L3/L4/L5. If ally-revive is the death-mitigation system, the integrity axis silently becomes a difficulty setting. Directly violates §8.11.9 and CVD §17.4.The three routes (§C) and/or HL_0076 magnitude banding. A named sweep assertion: revival-major pick rate reported per path bucket (L1/L2, L3, L4/L5) — ~100% in one and ~0% in another is the defect showing up as a number instead of an argument.C
3.3THE ATTRITION EXPLOIT. Boss state persists across player death by design (*"the boss is not reset — Composure damage / defeat state / withdrawal all stand"*, HumanityCharacter.cpp L349). Today the only limiter is the walk back from the well. A revive at the body deletes it: chip, die, get up, chip, die. A collision between two ruled doctrines. ⚠ Mechanics says chain-meter bosses self-limit; the adversary says the general case still breaks.ally_revive_policy ∈ {allowed, denied} per encounter row on the proven docs/registry_extensions.json combat-encounter rail (the pip-column vector), default allowed, empty = not-yet-populated NEVER denied; plus Shape D as the per-encounter override where in-place return would break the economy. Alternative worth costing: boss Composure — but not defeat state — resets on a player death the party did not finish (the cleanest; it converts attrition into "the party has to actually win").B (flag) · C
3.4THE OUT-OF-COMBAT PREDICATE IS ITSELF THE EXPLOIT SURFACE. It does not exist in code or canon. Whatever gets built becomes gameable: aggro-based → kite past the leash radius and die outside it; damage-recency → break LOS and wait out the timer. Three concrete engine defects: (A) Flee counts as aggroed (a timid macaque holds combat open forever); (B) Stalk does NOT (the Ebu Gogo stalker at standoff reads out-of-combat — the exact horror beat where a revive window is most wrong); (C) bPerceivedThisFrame is frame-transient.Encounter-resolution-based, not perception-based, with settle hysteresis, strictest at bosses — and carrying PROVENANCE: EmptyBecauseDefeated / EmptyBecauseRetired / EmptyBecauseLeashed. BUG-0018 trap: volume teardown empties the world of hostiles without any hostile being defeated; a naive detector flips to ELIGIBLE *because the level unloaded*. Extend GuardianTeardownOnEndPlayTest.A (blocking)
3.5AP_0001 FIRES ON A CORPSE — a live latent defect. T0_Ally_Behavior_Policy AP_0001 = ws.integrity_level in [L1,L2] & flag(local.player_health_at_or_below_50)interpose, autonomous. A player at HP 0 satisfies "at or below 50." The moment a downed state exists, the L1/L2 familiar interposes for a dead player forever.The downed state must be excluded from health-fraction predicates, or AP_0001/AP_0002 re-scoped in the same commit. QA twin: an ALIVE player at 40% must still satisfy it.A
3.6BOND-FARMING. If the revive moves the bond, players farm deaths to repair relationships — inverting the integrity system.The revive grants ZERO bond movement. Rule it explicitly in the owning doc.A
3.7AFK-FARM FROM THE FLOOR. Allies clear the zone while you lie there.Allies do not initiate new engagements while the player is downed — they finish what is on them and come. One rule; also correct under §8.11.8 awareness.B
3.8DOUBLE-FIRE ON THE DEATH DELEGATE. It binds from both PossessedBy and OnRep_PlayerState, guarded only by bDeathDelegateBound. Two ledger rows ⇒ the world-advance delta applies twice.The ledger append is idempotent per death. QA test T9.A
3.9THE CHOICE IS COSMETIC. Nothing is written to world state on death today, so both branches produce the same (empty) delta. A cosmetic choice on a death screen is meta-collapse applied to the defeat axis.Different CURRENCIES, not different magnitudes. RETURN carries the world-advance delta (the Hades economy, ruled). ALLY REVIVE carries a relationship/standing delta instead — the ally spent vril, risk and standing for you, and that is remembered. Neither dominates; both are real.A
3.10"SEE IF" READ AS RNG. A probabilistic revive falls under HL_0061 / CVD §17.13 (±1σ bound, anti-streak floor, mandatory success ceiling, reset on drop) — heavy machinery bought to purchase a worse feeling, and it turns the game's most emotional beat into a σ-bounded loot roll.The uncertainty is CONDITIONAL, never a roll. You don't know whether your healer survived, disengaged, is in range, has vril, or read the moment fast enough. That answer is already determined by the build the player made. All five analysts converge on this.A
3.11PARTY-WIPE DEADLOCK / softlock.Option A (let go) never fails and is available from the first frame of DOWNED to the last — so no configuration of enemies, allies, arenas, bands or luck can produce a dead end. Assert this in check_no_dead_end.py as an explicit invariant rather than leaving it a property nobody checks. Plus W6 IMPOSSIBLE must fail fast and honestly — never run a timer out on a player who was never going to be revived.A
3.12SUPPORT COMPANIONS BECOME MANDATORY (the banned meta-collapse mode) and INT becomes a tax rather than a tradeoff.Access is TAUGHT, reliability is TRAINED: any taught ally may attempt it; only a built ally does it well. INT gates *decision quality*, never *access*. The capability is a MAJOR pick that competes with other majors, not a character's identity. Plus one T0_Role_Composition_Rule row asserting a viable glass-damage composition clears the bar without a revive-capable ally.C
3.13Difficulty-dial drift — someone later invents a "revive success chance" stat.The revive's reliability rides ambient vril density, the one ruled dial (Wellspring · Veiled · Fading · Sundered · The Forgotten One). Near-certain on Wellspring; a real race on Sundered; the reach may simply not be there on The Forgotten One. State it so no separate stat is minted.A

Two firewalls the feature must not breach (Gate 29 check_ally_build.py B5 already enforces

them): (i) behavior quality is a BUILD property, never an integrity property — **no policy

condition_expr may read a loyalty ws key, therefore the revive policy may not be

loyalty-gated; (ii) policy_source is a closed enum with no player-authored member — the

player may not author the revive policy.** They build the ally; the ally decides. That is also §1.4's

existing familiar rule (*"the player cannot override this behavior"*).

ANALYST FORK — the loyalty question. Canon-integration's clean split says **WILL she? rides

THE BOND + integrity band** (and recommends a WAVERING companion still comes — the best beat the

fork can produce). Mechanics/engine say firewall (i) makes a loyalty-gated policy **structurally

illegal. Recommended reconciliation:** loyalty decides whether she is *still with you at all*

(the roster, upstream — departed/estranged cannot revive by construction), and it decides

nothing at the policy layer. Willingness below that is not bond-gated; a soft floor (a

low-bond ally tries and does not reach you in time) preserves the AAAAA no-dead-pick principle and

keeps the bond legible through play instead of through a tooltip. This keeps both readings' intent

and breaks neither gate.

---

4. THE PRESENTATION SHAPE UNDER RULED FORK A

**The headline: Josh's direction SETTLES Fork B by splitting it per-branch — an answer none of the

four escalated options anticipated, and strictly better than any of them.**

PRESENTATION_DOCTRINE.md §0.B offered four competing camera treatments. They become sequential

states of one machine:

Historical optionIts new job
Opt 3 — hold on the bodythe DEFAULT state. The camera stays down because the player has a decision to make from down there, and because the wait has to be watchable.
Opt 1 — hard cutthe FAST PATH, taken only when the player presses for it.
Opt 2 — diegetic dissolvethe TIMEOUT. The withdrawal completing on its own — the one place a dissolve belongs.
Opt 0 — the shipped 0.55 s fadeRETIRED. A greybox stand-in, not a member of the machine.

The hard cut becomes PLAYER-AUTHORED, and that retires Fork A's strongest objection to Opt 1.

The objection was that *"making death the one routine hard cut trains the player to read a cut as

failure, which then poisons every other legitimate cut."* A cut the player pressed is not a cut the

game imposed — it reads as the player's own impatience, so it never transfers dread onto the

authored cuts. **Fork A's scarcity doctrine survives intact and the one exception it had to carve

becomes an exception the player writes.**

The six states. S0 THE FALL (camera inherits the fall, settles low, arena-biased yaw — a

build requirement, not a detail: a camera that keeps the player's last look direction will stare at

a wall for half of all deaths and the wait will read as broken) → S1 THE LOW HOLD (choice offered

frame one, world not paused, not desaturated; treatment at the EDGE — a slow closing

vignette that doubles as the diegetic timer — never from the centre of frame) → S2 THE WAIT →

S3 THE RISE (diegetic, camera rises with the body, so CC-3 is satisfied trivially) / S4 THE CUT

(fastest transition in the game, CP-6 unchanged) / S5 THE DISSOLVE.

Three canon-binding presentation facts fall straight out of the ability rows: the revive returns

you at reduced vitality (readable on the body — breath, walk speed, frame edges — never on a

bar); the revive is instant cast (no channel bar, no progress meter on a death surface); and the

dark path is not denied the revive, it gets a different one (*"alternate revival mechanics

through different element routing"* is an explicit instruction that the revive IMAGE forks on band).

Three things this buys that nothing else does:

1. THE WAIT MAKES THE INT AXIS WATCHABLE — its only real showcase. Low INT: the ally is still

swinging, or standing where it was; it does not read that the fight ended. Mid: it turns,

registers the body, comes. High: it breaks off early, clears or pulls the last threat off

your body first, and arrives with intent. Josh's INT-as-AI ruling (2026-07-26) is on the

comparator roster as a *"day-old ruling with zero teacher"* — better AI is normally felt as

ambient competence, the hardest thing for a player to attribute to a stat they bought. *"Your

healer noticed you go down, disengaged, made it across the arena, and got you up"* is the single

most legible possible payoff for an invested stat.

2. THE HONEST-FAILURE PRESENTATION — load-bearing, not polish. A wait that resolves into nothing

is indistinguishable from a bug, and *not being able to tell* is the failure. **Rule: waiting

always shows you something.** Ally still fighting → you watch them try and fail to disengage.

Cannot reach → the near-miss. No vril → they arrive, kneel, and cannot. Never learned it →

they arrive, kneel, hold on, and stay with you while the draw takes. Companion dead → empty

ground where they would have been; say nothing; the absence is the memory. **The "arrives and

cannot" cases are better presentation than a success, because they carry the relationship. If

these images are cut for budget, the "it's a slot machine" objection becomes correct and the

feature should not ship.**

3. The frequency problem solves itself. A fixed ceremony is the AAA mistake; a fixed fade is

invisible. Here the fast player presses once and takes the fastest transition in the game, and

the patient player gets a beat that is different every time — because the beat is *the live world

around the body*, and the live world is never the same twice.

Do NOT gate the OPTION on combat state — gate the ACTION. "Out of combat only" invites a static

availability check at HP 0 (enemies alive → hide the wait). That is the wrong build: the fight can

END while the player waits, most often because the companion finished it, and *watching your ally

kill the last enemy and then come for you is the single best expression of this entire system.*

The surface stays constant; the world decides. This also makes the rule invisible — the player

never learns there is a rule, they just observe that nobody kneels next to them mid-fight.

Availability is communicated by the CAMERA, not by a greyed menu item. If someone is out there,

you can see them. If nobody is out there, you see empty ground. Show-don't-tell, on the exact

surface where a UI availability flag would have been most tempting. **All analysts reject the greyed

tease.** (Residual fork: engine prefers "shown with a truthful diegetic read"; mechanics/canon

prefer the option simply not existing until someone is there. The camera-bias answer satisfies both

— the surface is constant, the frame is honest.)

THE DEFAULT ON NO INPUT MUST BE "WAIT" — three floor-level reasons: a player who is stunned,

distracted, away from the pad, or on assistive input is not punished; the timeout resolves WAIT into

the checkpoint anyway, so no-input can never softlock (CC-8 + the no-dead-end floor, satisfied by

construction); and it preserves the beat for the player who did not know there was one. **The

checkpoint is an ACTIVE press.** That ordering is what makes the machine both merciful and fast.

Attunements (ratified, judgment-free) carries a presentation default — pre-select wait/return —

governing which option is pre-selected, never availability, so it stays a preference and not a

content gate.

Accessibility floor (Attunements is ratified canon, so this has a home): options are TEXT +

distinct input, never colour-coded or icon-only; the companion approach needs **two independent

channels** (silhouette/motion in frame — which is what the S0 camera bias buys — AND audio); the

diegetic vignette timer needs an explicit duration-indicator backstop for low vision; **the dark

hold → bright vril close-up is a photosensitivity risk by construction and needs a

reduced-intensity variant — a hard floor item on the most-repeated surface in the game**; motion

sliders inherit; no hold-to-confirm-only, no twitch window, full remap, one-handed reachable.

Strings — the natural-voice gap is LIVE and shipped. Today's surface reads

"DEFEATED (no fail wall) -- %s" (HUD L548). Three defects in one greybox line: **"no fail wall" is

internal design vocabulary on a player-facing frame** (CP-3 — the player must never learn the game

has a *policy* about fail walls; naming the mercy destroys it); "DEFEATED" is system voice; and the

consolation payload is system voice too (death_reward = *"logs his stalk cadence for the retry;

unlocks a polo-corruption lore fragment"* — every load-bearing word is a machine's word). **The

2026-07-27 rewrite pass did not reach it** — it covered the 96 sidecar strings + boss display names,

and death_reward is neither. The highest-frequency player-facing text in the game is still in

machine voice, and the natural-voice rewrite makes it strictly *better* because it makes it teach:

*"He always steps left before he lunges. I saw it that time."* Same word count; the first promises a

log, the second is the log and hands the player the counter.

Recommended option pair (PROPOSAL-tier seeds; examples-not-limits): "Not yet." / "Go back." Two

opposites, both what a person actually thinks, neither naming a system, and — critically — **neither

promising rescue**, so the honest-failure cases do not read as broken promises.

Strings to refuse: anything naming the mechanism (withdrawal, vril site, consciousness);

anything naming the ability by system name ("Breath of Life", "resurrection" — fine as an internal

token, never on the surface); anything promising ("someone is coming"); and the literal phrase

"content to wait"/"content to watch", a live advisory signature in

harness/check_reveal_discipline.py WHO_SOFT.

**Reveal discipline — the death surface is the highest-frequency player-facing text in the game and

it fires from Ch 2.** Five risks, in severity order:

withdrawal, tether, consciousness) hands the player Layer-3 metaphysics on a surface they will see

fifty times. The return is shown, never explained. Canon models this perfectly: four revival

ability rows describe *what happens* and never *what it means*. Match that restraint exactly.

death screen — a whisper, a pulse, a light, a sense of being held, the collective reaching for you

— is exactly HL_0046's Grand Sage communication vocabulary (visions, intuition pulses,

vibrational imprints), deployed on a surface visited dozens of times before Ch 76. HL_0044's

protection assumes hints are rare enough to police individually; **a death screen played 200 times

is a drip. check_reveal_discipline.py reads canon artifacts, not runtime presentation — this

is a MAJOR-class hazard the existing gates would not catch.** The death/wait surface needs its own

named entry in the reveal-discipline baseline.

Ch 23, the Duat Ch 69, the Realm Road Ch 70-74). A revive dressed in dying-rising imagery — light

from above, mythic register, resurrection language — pre-empts authored beats with a routine loop.

**Keep the revive vital and medical, never mythic. Someone catching you, not someone raising

you.** The resonance is allowed to *exist*; a player who read the Osiris material and then watches

someone gather her up will feel it. That feeling is the payload. Naming it destroys it.

Hunter" and display_name "the one who tracks me." The surface draws the diegetic name or no

name, never the registry name.

the Ch-58 HELD familiar reveal. The death-and-wake loop rhymes with the Ch-2 opening

(*"Get up. Climb toward the light."*) — a free presentation asset with a hard constraint: it must

never re-stage the familiar's death image or gesture at it.

Ch 15 (Astral Projection) and leaks a Crown-seat capability the player does not have. Pre-Ch-15

the read is body-and-senses: the world greys, sound muffles, edges go soft. **Not a soul

leaving — a vessel emptying.**

about bringing someone back is one adjective away from theology). Relief, reproach and exhaustion

— never cosmology. It goes through the natural-voice pass with string_status tracked AND the

reveal gate.

observation's first line; the journal holds the full entry. One authored string, two lengths, one

write. Timing gift: the journal activates at Ch 13 and Ntala joins at Ch 13 — both halves of

the mature death surface arrive in the same chapter, so the surface can be designed deliberately

as *the thing that grows*: bare and solitary early, a record at Ch 13, a witness who can reach you

later.

Doctrine deltas to land: PD §0.B is superseded, not amended (the four options become the

states; the fork's field stays as provenance); the §3.2 Death/defeat row is replaced;

CP-6 needs one clarifying clause — the WAIT state can outlast the arc-reveal hold, so it must be

declared a player-paced live-world state outside the hold-class ordinal ladder (closer to CC-9

dwell), or a future author will read a contradiction into a ruled doc; CP-2 (everything skippable)

now binds two exits; BUG-0017's single-framed-overlay invariant has an unruled collision

dying during a held scene or with a fork pending — and needs a precedence ruling (recommended: the

defeat surface outranks both). T1_UI_UX_Spec is a 2-line empty stub; the death choice surface

has no canonical home and is its natural first real item, alongside the vril-polarity readability

floor already earmarked for it.

---

5. WHAT IS ACTUALLY REQUIRED — the honest build list

Sizes in this project's own wave idiom (a wave ≈ a few files + its own tests + its own commit and

gate ritual). ENGINE/CANON declared per the standing engine-reuse rule.

5.1 BUILD-NOW — no ally runtime required, fully testable today

#ComponentSizeENGINE / CANONNotes
A1Checkpoint anchor + save-on-arm. Replace nearest-marker-by-distance with a real checkpoint. Recommend the vril site — already ruled save + recharge + loadout sanctum, so one anchor serves three ruled systems, and it is the same place the ally's vril comes back. AHumanityVrilRechargeZone exists (VS_CH02_001).1 waveENGINE (checkpoint) + CANON (which sites)Hard prerequisite. grep Checkpoint over Source → 0 hits; there is no checkpoint to revive at.
A2The choice state machine + surface, WAIT present and resolving W6 IMPOSSIBLE honestly (no allies exist yet). Real machine, real choice, real ledger, truthful failure.1 waveENGINE (machine) + CANON (strings)Design S2 surface-agnostic — blocking-ness is a property of the surface, not the machine (the MMO bridge, §7)
A3The downed pawn contract. Not lock-on targetable; invisible to the enemy perception cone; does not satisfy the health-fraction ally predicates (guard 3.5); holds position (no physics teleport until a branch resolves); IsDowned() distinct from bPlayerDead for QA/HUD.smallENGINEWithout it, S2 is a corpse-beating bug
A4The out-of-combat detector as a named primitive WITH PROVENANCE (UHumanityCombatStateSubsystem): encounter-scoped, settle hysteresis, and fixes Defect A (Flee counts as aggroed) + Defect B (Stalk does not) + Defect C (frame-transient perception).1 small waveENGINE — highest reuse value in the listPays FOUR existing debts on landing: RAGE decays out of combat, STAMINA regens out of combat, loadout switching never mid-encounter, and every T0_Ally_Behavior_Policy predicate that needs to know a fight is running. Schedule it regardless of Fork B.
A5The world-advance delta on death (VOL2 SL-1 — specified and unbuilt; nothing is written to world state on death today).smallENGINE seam + CANON deltaWithout it the choice is cosmetic (guard 3.9)
A6The schema/canon mint (see 5.4).1 mint + critic ritualCANONZero-token compute, but full mint discipline + --emit-baseline in the same commit
A7Soak death-loop lane in Tools/run_soak.py: N scripted deaths per map, both branches; no leaked RespawnTimerHandle, no duplicate ledger rows, no actor leak, stable peak memory.smallENGINEgrep death run_soak.py → 1 unrelated hit. Player death has ZERO coverage today — all 55 UE automation tests assert BOSS defeat.
A8~~Player-side protected 1-HP clamp~~STRUCK pending director re-read — see §2.C. The clamp is a boss column; there is no evidence of a player-side clamp in canon.

BUILD-NOW total: ~4-5 waves + one mint. A1, A4, A5 and A7 are all things the slice needs

regardless of whether the revive branch ever ships — which is the strongest scheduling argument

in the brief. With the ally runtime absent, the wait branch resolves to *"nobody could reach you"* —

honest, no-dead-end, fully testable, and it becomes the real mechanic the moment allies exist.

Nothing is wasted and nothing is faked.

5.2 POST-SLICE — the ally runtime (the real cost centre)

#ComponentSizeNotes
B1THE ALLY PAWN + AI SUBSYSTEM. Greenfield: ally character class + its own ASC/AttributeSet, controller, follow/positioning, target selection, the INT-tiered behavior-policy interpreter reading T0_Ally_Behavior_Policy.condition_expr, party frame, stat/loadout application from WS_027.multi-wave — the largest item in this analysisHead start: the predicate evaluator already exists on BOTH sides (harness/condition_expr.py + Source/.../Quest/ConditionExpr.cpp + FHumanityConditionExpr49Test), and the policy rows are authored. The brain wiring is the missing half.
B2Party combat that continues after the player falls — enemies retarget onto allies; allies can themselves go DOWNED; a fight that can be lost while you watch.multi-waveThis is what makes "out of combat only" MEAN anything. Today, with the player down there is no target, so hostiles de-aggro or leash within seconds and the constraint costs almost nothing. Reconciles with the permanent-death doctrine per §2.A J-2: allies go DOWNED, never dead, in combat — which also protects the gear-return contract from a loot-loss edge case.
B3downed_target_policy on the enemy state machine (a small branch in an existing machine) + the execute windup.1 wave + contentBlocked on DESIGN_GAP_REGISTER #1 (non-boss aggro spec, MISSING, owner W-SPACE) — now promoted to a blocking dependency, and it gains a column the register does not currently name.
B4The revive CAST + presentation hookup.1 waveModest once B1 exists; HumanityAbilityFoundry is built
B5The teaching loop — how the player actually trains an ally.factory work, per chapterCanon-anchored: *"vril-integration develops as the player teaches and imbues the familiar through bonding and training"* (T3_Familiars_Named L55)

5.3 5090-ERA / GATED

#ComponentNotes
C1Death presentation. TODO_CANON L225-227 defers it explicitly as an ART placeholder, T2/GATED-5090 (the greybox is *"freeze the anim + tip the actor ~74°"*). The Fork-B camera grammar + the revive VFX.
C2THE PRESENTATION LADDER'S FLAGSHIP CONSUMER. §5 rules per-mastery-tier presentation variants and Josh nodded it a hard 5090 requirement (*"every spell and ability and movement needs to be beautiful and fluid art"*). The revive is the ONE ability the player watches from the receiving end, in close-up, held still — a Philosophus-tier revive should look effortful, a mastered one should look like nothing at all. Name it as a flagship case in the DR-2 tiered-asset request; it is a held close-up, not a combat-speed flourish.
C3Phase-5M magnitudes — every number here is firewalled: wait duration, revived vitality fraction, vril cost, the two branches' currency weights, the INT threshold at which an ally notices.
C4Phase-5M/5H build-space sweeps with the named per-path revival pick-rate assertion (guard 3.2).
DTier-C: raid rez rules, the wipe economy, the §8.7 path-agnostic reconciliation (§7).

5.4 THE SCHEMA MINT — every mechanic to the row that must carry it

#mechanichomestatus
1player DOWNED state · party-wide DOWNEDruntime + transient local.*new (runtime)
2"last checkpoint" anchor**new durable ws.*** last_vril_site_touched → soft-FK T0_Vril_Site_Registry.site_id; + QuestSaveGame fieldnew row
3caster eligibility + the asymmetrycaster_class_scope ∈ {protagonist, ally, both}, revival_direction_scope ∈ {to_ally, to_protagonist, both}, out_of_combat_only bool on T0_Ability_Tree_RegistryVector-C extension via docs/registry_extensions.jsonnew columns — the asymmetry MUST be schema-expressed or a future author will collapse the two directions and silently legalise in-combat player rez
4companion revive capabilityT0_Bonus_Pool_Registry / T0_Bonus_Option_Registrypick_class=major, lane=B, unlock_gate_quest_ref (= *taught*), spec_purpose_refs, respec_classexisting columns, new rows
5familiar revive capabilityT0_Familiar_Bond_Abilitybond_100_mastery, grants_class=active, integrity_band_gate=L1;L2, command_permission=autonomousexisting columns, new rows — BLOCKER: these rows are COPY-ONLY from T3_Familiars_Named §1.6. A revival rung cannot be invented in the registry; it needs a living-source T3 edit or a Josh ruling. Gate 29 B2 polices 22 × 5 = 110 coverage.
6revive behavior (when)T0_Ally_Behavior_Policyaction_ref=revive_protagonist, domain=proactivity, autonomy_band=autonomous, disposition_legal_set=protective, int_tier/unlock_int_min, policy_source=canon_seedexisting columns, new rows — structurally identical to AP_0001
7the out-of-combat predicateharness/condition_expr.py grammargrammar change. in_combat = 0 occurrences, encounter = 0 occurrences today. Worse, the grammar's contract is produce-before-consume, and a combat-state flag is produced by the *runtime*, not a beat — so flag(local.encounter_resolved) would fail the lint or need a fake producer. Add a first-class runtime-surface token (read(combat_state) under the existing read(surface) form is cheapest) and teach the C++ evaluator. Gate 29 B3 then holds the line — *a malformed predicate must fail loudly, never silently match nothing* — which is exactly the failure this feature cannot afford (a silently-never-matching gate = a revive that silently never fires).
8the defeat ledgerappend-only ws.* on the WS_044 idiom: {event_id, chapter_ref, site_ref, encounter_ref, outcome ∈ {checkpoint_return, ally_revive, ally_revive_unavailable}, reviver_ref, capability_ref, vril_paid_ref, wait_duration_ref, combat_end_provenance ∈ {defeated, leashed, retired}, world_delta_ref, relationship_delta_ref}NAMED LANDMINE: the applier's APPEND_LEGAL_IDS frozenset holds twelve ids; WS_044/WS_046 were landed outside it with the deviation self-declared in the rows' notes (MINT_APPLY_CRITIC_2026-07-27.md §A). Extend it in the same commit or the finding repeats verbatim. Avoid superseded ids WS_043/WS_045.
9taught_capability_refs + derived revival_readinessWS_027 companion_roster_state and WS_012 familiar_bond_state (whose `vril_integration_state = latent\developing\integrated` is already the teaching ladder)new sub-fields
10the L3/L4/L5 revival laneT0_Ability_Tree_Registrymust be MINTEDa no-dead-end violation waiting to ship (guard 3.2)
11spec purposeT0_Spec_Purpose_Registry — new SPEC_VRIL_REVIVE_ALLY (function_class=heal, scope_class=single, role_axis_ref=ROLE_SINGLE_HEAL)new row — without it the sweeps cannot count revival builds as a distinct viable spec, and an uncounted spec is invisible to the balance teeth
12per-encounter policyT0_Boss_Encounter_Registry new column ally_revive_policy ∈ {allowed, denied} on the proven combat-encounter raildefault allowed; empty = not-yet-populated, NEVER denied (the discipline the pip columns already carry)
13enemy downed_target_policyT0_Creature_Roster — rides the missing aggro blocknew column, BLOCKING on gap #1
14reduced vitality + ally exhaustionT0_Status_Tablenew rows — successive revives return progressively less and leave a lingering impairment on the ally, so chaining is self-defeating without a counter the player can game or a number the UI must show
15consolation-paid-once ledgerdurable ws.* per encounter instancenew row
16the stringssidecars under the natural-voice pass; register from T0_Voice_Registry; string_status trackednew strings + the death_reward column rewrite (§4)
17role-composition guardrailT0_Role_Composition_Rule — a viable glass-damage composition without a revive allynew row

Canon edits (tier docs, critic-gated): T1_Ability_Tree §11.7 (the ally-cast/out-of-combat/

protagonist-target case + the no-EAM reason) and §5I.2 (the spec purpose); **T1_Integrity_Paths

§8.11 — the owning home** (the CAN/WILL/HOW-WELL split, the loyalty-state legal set, the

asymmetry/fallen-vs-dead hard line, the zero-bond-movement rule); §8.11.5 (the familiar grant

shape); T1_Combat_System_Spec failure states (the second door, the density coupling, the

out-of-combat condition); PRESENTATION_DOCTRINE §0.B + §3.2 + CP-6; T1_UI_UX_Spec (its first

real content); docs/DOC_MAP.md row + a named consumer for every new artifact.

5.5 QA TEETH

**Engine (UE automation, existing latent-command idiom) — 11 Tier-1 tests, each with a must-not-fire

twin: choice offered at HP 0 (and the 1.45 s auto-respawn timer must NOT be armed**) · checkpoint

return lands at the anchor, not nearest-marker-by-distance (a nearer marker must NOT win) · wait

blocked in combat over REAL ticks · wait resolves out of combat → revive at reduced vitality ·

wait impossible fails FAST (must NOT run a timer out) · boss-fight wait refused/unresolvable

(both killable and protected classes) · downed pawn contract (**an ALIVE player at 40% HP MUST still

satisfy AP_0001) · teardown does not fake out-of-combat** (extend GuardianTeardownOnEndPlay)

· ledger appends exactly once, idempotent under re-possession · strings resolve from data (extend

FHumanityCH02SpoilerSafeStringsTest) · the hysteresis test — the predicate must not fire during

a momentary LOS break (*the one most likely to be wrong and least likely to be noticed*).

Canon gates: Gate 29 check_ally_build.py (B3 predicate lint + B4 disposition legality +

B5 both firewalls) · NEW tooth — revive-capability provenance (every taught_capability_refs

entry resolves to a row with ability_class ∈ {revival, revival_aoe} and a satisfiable band lock,

positive-controlled so an unreachable resolver reports as unreachable, never as a clean zero) ·

NEW tooth — the evil-lane hole (if the L1/L2 lane is a live affordance and L3/L4/L5 is empty,

FAIL or WARN with a named worklist — the executable form of the no-dead-end floor) · **NEW tooth —

the asymmetry firewall** (no row may carry revival_direction_scope=to_protagonist without

out_of_combat_only=trueJosh's constraint made unspellable-to-violate in data) ·

Gate 26 check_build_space.py (enroll the spec + a dominance tooth: ~100% pick rate is a defect

symmetrically to a never-picked option) · Gate 9 check_no_dead_end.py (assert the

Option-A-never-fails invariant explicitly) · check_reveal_discipline.py +

check_grand_sage_silence.py scoped to the new death-surface strings, **with the surface given its

own named baseline entry** · check_registry_extensions.py · check_ws_value_form.py ·

registry_fidelity.py --emit-baseline in the same commit as any registry edit.

---

6. RECOMMENDATION

**Build SHAPE B, staged: land Shape A's BUILD-NOW block now, design the surface so B and C are data

additions rather than rewrites, and commit to C as the balance destination before the feature is

ever described as shipped.**

Concretely:

1. Now (pre-slice, ~4-5 waves + one mint): A1 checkpoint anchor · A2 the state machine and the

diegetic-hold surface · A3 the downed contract · A4 the combat-state authority with provenance ·

A5 the world-advance delta · A6 the mint · A7 the soak lane. **Four of these seven are things the

slice needs anyway. The WAIT branch ships present and honest**, resolving to "no one could

reach you," because no ally runtime exists.

2. Report it register-honestly. Until B2 (party combat that continues after you fall), the

out-of-combat constraint is *correct but nearly free* — enemies de-aggro from a body within

seconds. Ship it anyway (retrofitting it later is expensive) and never let a play-quality

claim ride on it pre-B2.

3. Post-slice: B1 → B2 → B3 → B4 → B5, at which point Shape B is real.

4. Before any "the revive is balanced" claim: Shape C's three routes + the per-path pick-rate

sweep assertion.

Why B over A: A's wait can be dominated and its constraint is hollow — execute and the

no-new-engagements rule are what make the wait a genuine risk rather than a delay with a menu on it,

and they cost one enum column and one behavior rule.

Why B over C now: C's three routes are the balance destination, but they are a mint-and-author

program whose correctness is only *measurable* at Phase-5M/5H sweeps. Shipping C's rows before the

sweeps exist is authoring against an unmeasured target.

Why not D: it trades the exact fantasy Josh described for a bookkeeping difference the player

cannot feel. Keep it as a per-encounter override only.

THE STRONGEST OBJECTION

**"This is a multi-wave engine program, a greenfield ally runtime, a blocking design gap, and a

17-row mint — bought for a branch that cannot fire once in the only thing Josh will play."**

It is true and it is the honest shape of the cost. Every analyst converged on it: Josh ruled

Ch 2-7 stays SOLO as built, the slice is Ch 2-5, the revival ladder is T5 Philosophus of a

twelve-tier climb, and the earliest plausible companion window is Ch 13 (Ntala) with the earliest

*functional* one later still. Fork B has zero surface in the Josh Gate slice. So the feature

Josh just directed is a feature he will not see in the build he is waiting to play — and if it is

mis-built as a greyed second option, it is worse than absent: it is a **taught-then-broken

affordance**, a promise the game cannot keep for eleven chapters.

The answer, and why it does not overturn the recommendation:

checkpoint system (grep Checkpoint → 0). There is no combat-state authority, and four ruled

canon rules (RAGE decay, STAMINA regen, the loadout-switch ban, every ally predicate) are

silently unenforceable without it. Nothing is written to world state on death, so the ruled

Hades loop is unbuilt. And player death has zero test coverage while 55 automation tests

assert boss defeat. Those get built either way; Fork B is the reason they get scheduled.

early, gains a record at Ch 13 (the journal activates), and gains a **witness who can reach

you** later. That is a true story about the arc — the world starts empty and fills — and the first

time someone can come for you is a story beat. Built deliberately, it is better than the mechanic

being available from Ch 2. Discovered as a bug report, it is a disaster.

0.55-second greybox placeholder as the death presentation of a 30M-word game, which is exactly

how *"a greybox constant becomes shipped canon without anyone ruling it."* And it forfeits the one

surface where the party system, the INT-as-AI axis, the healing spec's apex, the loyalty canon's

only mechanical gain, and the Presentation Ladder all land at once. Per-frequency, the death

loop is among the highest-leverage presentation surfaces in the project.

Second-strongest objection, worth naming: *two options at death is one option too many* — the

player answers this question hundreds of times, and a decision made hundreds of times with the same

answer is a tax, not a decision. Answer: the no-input default is WAIT and the fast path is one

press, so neither audience is taxed. But this is the objection I would most want **measured in the

QA loop's feel telemetry rather than argued** — it is a wall-clock question about a repeated

surface, which is exactly the class the feel strips measure.

---

7. THE MMO BRIDGE

SCALES cleanly — the architecture is already there:

allies within range return to combat consciousness simultaneously"*) is a raid rez by

construction. And Collective Surge (T7, Ch 70-77) explicitly relays Mass Revival across a

formation from any linked ally's position — a raid-rez-relay primitive authored before anyone

asked for one.

§8.7 states *"One taxonomy, two arenas."* ROLE_SINGLE_HEAL / ROLE_GROUP_HEAL already span.

Josh's rule is the genre-standard rule, arrived at independently.

developing disasters and intervenes before they cascade into team wipes."* The role exists; the

mechanic it would use is what this direction builds.

STAYS SOLO — do not scale these:

timed release-or-wait, non-blocking, world keeps running. **Design S2 surface-agnostic so

blocking-ness is a property of the surface, not of the machine** — this is a BUILD-NOW

architectural requirement, not a Tier-C afterthought.

stays a Tier-A/party property.

⚠ ONE REAL CANON COLLISION — name it now. §8.7 rules raid roles path-agnostic: *"Integrity

band gates no role, no build axis, and no operational team. An L5 Pure Evil guild fields the same

role space as an L1 Truly Good guild."* But **every revival row carries integrity_band_lock = L1

or L1,L2. Under current data an L5 guild cannot field a rezzer at all** — a direct

contradiction of a ratified Tier-C rule.

Recommended resolution: the band lock is a Tier-A campaign catalog-access property (which is

what T1_Ability_Tree §12 says catalog access is *for* — path identity and replayability), and

Tier-C fields the L4/L5 alternate route so the role space stays equal. **Which promotes authoring

the evil-lane revival from a no-dead-end nicety to a Tier-C BLOCKER.**

Also flag: §8.8's four-team architecture has no failure economy at all — kill benefits are

canon, wipe/recovery rules are absent. Out of scope now; record it as a Tier-C-phase gap so it is

not discovered late.

---

8. THE JOSH-DECISION SHORTLIST (each briefed above, none bare)

1. J-1 — the withdrawal reconciliation. Bless *"let go / hold on"* (zero amendment,

recommended), or rule withdrawal explicitly graduated (amends BATCH1 item 4). **Gating: every

player-facing word depends on it.**

2. J-2 — the DOWNED/DEAD hard line. Ratify: *DOWNED is a symmetric combat state; DEAD is an

asymmetric permanent story event; permanent death is never a combat outcome for a persona'd

character; the boundary is the community-ripple event.* §17-adjacent cardinal territory.

3. J-3 — the healer's child. Reading A (default: barred by D-2 F-STAR) vs Reading B (an

out-of-combat, non-vril, herbal resuscitation that grants her no vril, no weapon, no combat

presence). B is the highest-emotion version of this feature in the game.

4. J-4 — path parity. Separate L4/L5 route, HL_0076 magnitude banding, or both. (The loop

authors the rows either way; the parity mechanism touches equally-weighted endings.)

5. J-5 — can the party win without you, and can they finish a BOSS? If yes, who gets the win

credit / win_reward / mastery credit / tell-reads. The largest scope decision in the direction.

6. The attrition collision (guard 3.3): graduated persistence (the boss remembers) vs

revive-at-body. One ruled doctrine has to bend.

7. Naming. Player-facing naming flags per docs/NAMING_METHOD.md — but note the natural-voice

doctrine bites hard here: **there should probably be no name at all on the player's surface,

just a person's voice and a choice.**

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