Custody Oracle Crossread / 羁押判读交叉线

Custody Oracle Crossread is a pressure-system storyline for the moment after Storyteller has already created a custody scar and before a future route is allowed to reuse it.

The player is not choosing the original custody outcome again. The player is choosing which in-world oracle gets to answer what that outcome means now: archive, public receipt, cutroom checksum, sponsor readback, fan oxygen memory, or stability table.

Primary playable question

When a prior route asset, voice, archive copy, memorial claim, stability table, or public receipt has become durable but not clean consensus, who may answer its current state, who is excluded by that answer, and what future route becomes opened, narrowed, hostile, captured, blocked, or recovery-only?

Why this is the next useful expansion

The current satisfied lens corpus already covers many first-order decisions. What remains thin is the replay-facing readout. A player can protect a voice, suppress a docket, publish a receipt, or carry proof across the floor; later, the game still needs a concrete way to ask what that choice means without turning it into hidden flag prose.

This storyline provides that playable readout seam. It connects:

It is not another ruling. It is the moment a prior ruling, custody row, voice probate, fan ledger, or stability table is read by the world.

State-triggered entry

Open the storyline when all are true:

entry_state:
  trigger_kind: state_pressure
  prior_state_family_any:
    - route_asset_custody
    - archive_voice_custody
    - memorial_voice_probate
    - availability_reader_result
    - reality_drift_docket
    - stability_clearance_table
    - fan_oxygen_ledger_row
    - memorial_air_chain_row
    - blackbox_patch_row
  prior_state_is_durable: true
  prior_state_not_clean_consensus: true
  future_route_requires_answer: true
  oracle_surfaces_available_min: 2
  player_can_select_or_record_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_count_trigger: true

Valid source states include protected, missed, hostile, captured, sacrificed, false_owner, lawful_only, public_only, sponsor_only, fan_only, editor_masked, stability_only, recovery_only, double_reality_hardened, or an explicit absence.

Content pack

Mechanic

Existing docket cards used as oracle carriers

Existing rites used as crossread actions

A crossread may be implemented by scoped variants of:

The rite must record the queried prior state, selected oracle, excluded reader, cost, and future route effect.

Existing events used as default or answer pressure

Storyline spine

Beat 1 — A prior state asks to be read

A future route needs to know what a scarred object is now. It may be a protected witness, a captured proof packet, a memorial voice row, a sponsor-cleared version, a public-only receipt, a fan oxygen debt, an editor-masked checksum, or a recovery-only route asset.

The game must not answer silently. The player sees a crossread row or equivalent docket refresh.

Beat 2 — Oracles disagree before the player chooses

At least two answer surfaces are live. For example:

  • archive says lawful_only, but public receipt wants visible legitimacy;
  • fan oxygen says the debt was paid, but sponsor readback calls it a stop-loss breach;
  • cutroom checksum says the broadcast can continue, but archive sees source ambiguity;
  • stability table says the audience can keep watching, but reality drift remains unresolved;
  • memorial voice probate says the chain is scoped, but future sponsor use tries to treat it as a universal license.

Beat 3 — The player selects, splits, or refuses an oracle

Offer a rite or equivalent action that forces the player to pick one of:

  • archive answer;
  • public receipt answer;
  • cutroom checksum answer;
  • sponsor readback answer;
  • fan oxygen answer;
  • stability table answer;
  • split answer;
  • refusal/default.

The chosen oracle must not erase the others. It scopes them, excludes them, makes them hostile, or feeds them into a future contradiction.

Beat 4 — The answer changes a route

The selected answer must be consumed by at least one future route or reader.

Valid future effects:

  • lawful route opens but public addendum is required;
  • public route opens but lawful annex is required;
  • sponsor route opens with capture;
  • fan route opens with queue retaliation risk;
  • broadcast route opens with stability escrow debt;
  • archive reader contests checksum source;
  • future drift audit gets a contradiction object;
  • route asset becomes narrowed, hostile, captured, blocked, or recovery-only.

Beat 5 — Default answer becomes a scar

If the player refuses or hides the crossread, the loudest oracle answers by default. The event must name the answering surface and the harmed/excluded surface.

Default answer examples:

  • sponsor readback captures a public receipt;
  • archive seal blocks fan oxygen legitimacy;
  • cutroom checksum masks a voice without lawful probate;
  • stability table delays contradiction into later drift;
  • fan oxygen ledger makes an archive-only state publicly volatile.

Branch map

BranchReliefCost/scarFuture state
Archive answercustody clarity, lawful route, false-owner pressure downinspection heat, archive debt, public distrustlawful-only; public addendum required
Public receipt answerpublic legitimacy, private capture blocked, audience stabilitysponsor pressure, witness exposure, inspection heatpublic-only; lawful annex required
Cutroom checksum answercontinuity, slot survival, source protectionedit debt, source ambiguity, public distrustchecksum-required; archive contested
Sponsor readback answerstop-loss relief, slot pressure relief, money pressure downcontract capture, public distrust, recovery costsponsor-only; neutrality contested
Fan oxygen answerfan balance, grief stability, mutual-aid legitimacyfan resentment, queue retaliation, sponsor pressurefan route opens; lawful route costlier
Stability table answerchurn relief, broadcast legibility, schedule survivalstability debt, clearance premium, delayed contradictionbroadcast route opens; drift audit costlier
Split answertwo futures remain playable with scopehandler burden, ambiguity, inspection or drift pressurescoped dual route; later reader collision
Refusal/defaultimmediate assignment burden fallshostile reader, captured answer, false owner, recovery costblocked, hostile, captured, or recovery-only

Counter contract

Every resolved branch must mutate at least three durable surfaces:

counter_contract:
  relief_min: 1
  cost_min: 1
  future_route_or_reader_effect_min: 1

Core counters and states:

  • custody_clarity
  • archive_signature_legitimacy
  • archive_debt
  • inspection_heat
  • public_receipt_legitimacy
  • public_receipt_distrust
  • fan_oxygen_balance
  • fan_oxygen_resentment
  • fan_oxygen_liability
  • sponsor_stop_loss_pressure
  • contract_capture
  • continuity_hazard
  • source_ambiguity
  • edit_debt
  • audience_stability
  • audience_churn
  • stability_escrow_debt
  • clearance_premium
  • reality_drift
  • future_recovery_cost
  • route_asset_pressure

Missability and recovery

This storyline is missed when implementation:

  • shows the player a prior custody state as a clean tooltip;
  • lets one answer surface satisfy all future readers;
  • hides the excluded reader;
  • lets sponsor, archive, public, fan, editor, or stability answer erase the others;
  • lets memorial voice probate become universal permission;
  • lets stability clearance become truth;
  • triggers from fixed turn, fixed day/week, chapter quota, raw count, dashboard state, or lens health.

Recovery must be scarred:

  • reopen crossread with higher inspection heat;
  • publish an addendum and accept sponsor/fan cost;
  • file lawful annex and accept delay;
  • attach checksum correction and accept edit debt;
  • unwind sponsor readback and accept contract capture residue;
  • split the answer and accept later reader collision;
  • quarantine the route asset and accept recovery-only access.

Replay/session evidence shape

storyline_id: storyteller.storyline.custody_oracle_crossread.v1
session_id: lens-custody-oracle-crossread-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  prior_state_family: <family>
  prior_state_id: <stable id>
  prior_state_value: protected | missed | hostile | captured | false_owner | lawful_only | public_only | sponsor_only | editor_masked | fan_only | stability_only | recovery_only | equivalent
  future_route_requires_answer: true
  oracle_surfaces_available_min: 2
  no_fixed_turn_trigger: true
crossread_row:
  queried_object: <route asset voice docket receipt patch table or explicit_absence>
  oracle_surfaces:
    - <oracle-a>
    - <oracle-b>
  selected_oracle: archive | public_receipt | cutroom_checksum | sponsor_readback | fan_oxygen | stability_table | split | refusal_default
  excluded_or_contested_surface: <surface>
  future_route_or_reader: <route or reader>
branch_runs:
  resolved_branch:
    selected_oracle: <oracle>
    answer_state_after: <state>
    future_effect: <effect>
    counter_deltas:
      relief: []
      cost: []
      future: []
  default_branch:
    event_seen_or_armed: availability_reader_collision_default | iris_voice_probate_default | clearance_desk_repricing | reality_drift_intervention | equivalent
    loudest_oracle: <oracle>
    harmed_surface: <surface>
    false_or_captured_answer: <state>
assertions:
  - entry_is_state_triggered
  - prior_state_history_preserved
  - multiple_oracles_visible
  - selected_oracle_scopes_not_erases
  - excluded_surface_visible
  - answer_consumed_by_future_route
  - success_has_cost
  - refusal_or_default_is_durable
  - no_fixed_turn_trigger

Non-goals

  • Not a turn-count package.
  • Not generic governance.
  • Not raw count expansion.
  • Not a lore recap of old choices.
  • Not a universal truth oracle.
  • Not valid if the crossread answer is not consumed by a route, reader, event, counter, or route-asset state.