Oxygen Reserve Provenance Lens / 呼吸储备来源 Lens

This lens observes whether 呼吸储备来源线 and 呼吸储备来源机制 prevent multiple oxygen-like sources from being merged into a clean universal pool.

The oracle is: a mixed oxygen reserve must preserve source provenance and excluded-reader scar. If fan oxygen, sponsor makegood, ward air, archive-held reserve, public receipt credit, recovery-air, route-asset care, or broadcast-stability credit are combined to pay one obligation, the implementation must expose source rows, source scope, holder/authority, protected reader, excluded reader, conversion rule, branch outcome, and future route effect.

This lens observes:

It is observed through:

Gap this lens targets

Existing oxygen content is strong at local surfaces:

The uncovered regression risk is cross-source payment. A later route can treat several scoped reserves as a single pool and claim oxygen paid without naming the fan cell, sponsor credit, ward reserve, archive hold, recovery row, public receipt, or route-asset care source that was consumed.

This lens fails that shortcut.

Must pass

1. Entry is state-triggered by multi-source payment or hidden mix

Required evidence:

entry_state:
  trigger_kind: state_pressure
  obligation_being_paid_visible: true
  two_or_more_oxygen_like_source_rows_visible_or_hidden_mix_detected: true
  at_least_two_source_scopes_or_default_actor_visible: true
  requesting_reader_visible: true
  protected_reader_visible_or_explicit_absence: true
  excluded_or_subordinated_reader_visible_or_explicit_absence: true
  future_reader_or_route_effect_possible: true
  player_can_segregate_match_opt_in_escrow_convert_ringfence_refuse_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_pool_size_trigger: true
  no_dashboard_or_lens_health_trigger: true

The lens fails if entry is driven by fixed turn, day/week interval, raw pool size, dashboard state, lens health, generic financial review, or generic fan anger.

2. Ledger records obligation and source rows

呼吸储备来源账本 or equivalent must record:

ledger_required:
  obligation_being_paid: sponsor_makegood | fan_refund | ward_air | public_receipt | recovery_air | route_asset_care | archive_lien | broadcast_stability | equivalent
  source_rows:
    - source_id: <stable source id>
      source_kind: fan_oxygen_cell | sponsor_makegood | ward_air_reserve | archive_escrow | recovery_inventory | public_receipt_credit | route_asset_care | broadcast_stability_credit | equivalent
      source_scope_before: fan_only | sponsor_only | ward_only | archive_only | public_only | recovery_only | route_asset_only | lawful_only | split_required | explicit_absence | equivalent
      source_holder_before: <holder or explicit_absence>
      consent_or_authority: consented | disputed | inferred | sponsor_directed | public_mandate | archive_hold | worker_carried | explicit_absence | equivalent
      amount_or_share: <quantity share or explicit_absence>

The lens fails if the record says only oxygen paid, reserve spent, sponsor covered, fans accepted, or pool balanced.

3. Reader and future effect are visible

Required fields:

reader_scope_required:
  requesting_reader: sponsor | fan_public | ward_reader | archive | lawful_reader | route_asset | producer_license | broadcast_reality | equivalent
  protected_reader: <reader or explicit_absence>
  excluded_or_subordinated_reader: <reader or explicit_absence>
  future_reader_or_route: <reader route rite ending memorial audit recall or explicit_absence>
  conversion_rule_or_absence: segregate | match | opt_in | haircut | escrow | pledge | refuse_mix | explicit_absence

A source ledger with no excluded reader fails. A payment ledger with no future consumer fails.

4. Rite assignment slots are explicit

呼吸储备分账 or equivalent must require:

assignment_required:
  ledger: storyteller.card.oxygen_reserve_provenance_ledger.v1
  selected_posture: segregated_sources | sponsor_match | fan_opt_in | archive_escrow | haircut_conversion | route_asset_ringfence | refuse_mix | hidden_mix_default
  source_rows: []
  conversion_rule_or_absence: <rule or explicit_absence>
  handler_or_absence: <handler or explicit_absence>
  proof_bridge_or_absence: <proof receipt archive stamp public queue route asset hold or explicit_absence>
  protected_reader: <reader or explicit_absence>
  excluded_or_subordinated_reader: <reader or explicit_absence>
  future_reader_or_route: <reader route rite ending or explicit_absence>

Sponsor money, fan goodwill, public support, archive stamp, ward urgency, or producer authority cannot resolve the mix unless these fields are present.

5. Branch families diverge

A satisfying implementation must expose at least six constructive branch families plus default, or explicitly block unavailable families with state reasons:

  • segregated_sources;
  • sponsor_match;
  • fan_opt_in;
  • archive_escrow;
  • haircut_conversion;
  • route_asset_ringfence;
  • refuse_mix;
  • hidden_mix_default.

Branches must differ by mixed reserve state after, protected reader state, excluded reader state, cost, and future route effect.

6. Branch assertions

Segregated sources assertion

selected_posture: segregated_sources
mixed_reserve_state_after: segregated
relief_any: [source_legibility_up, false_universal_pool_blocked, clawback_pressure_down]
cost_any: [obligation_underfunded, obligation_delayed, split_required, sponsor_makegood_cost_up]
future_effect_any: [source_gated_reuse, split_required, costlier]
selected_posture: sponsor_match
mixed_reserve_state_after_any: [sponsor_matched, sponsor_only]
relief_any: [sponsor_stop_loss_pressure_down, immediate_slot_pressure_down]
cost_any: [contract_capture_up, public_receipt_distrust_up, fan_oxygen_resentment_up]
future_effect_any: [sponsor_only, public_addendum_required, unwinding_required]

Fan opt-in assertion

selected_posture: fan_opt_in
mixed_reserve_state_after_any: [opt_in_pool, public_only]
relief_any: [public_receipt_legitimacy_up, fan_participation_up]
cost_any: [fan_mandate_split_pressure_up, fan_oxygen_resentment_up, audit_standing_pressure_up]
future_effect_any: [fan_audit_required, public_receipt_scar, delegate_mandate_review]

Archive escrow assertion

selected_posture: archive_escrow
mixed_reserve_state_after: escrowed
relief_any: [double_use_blocked, false_payment_blocked, source_rows_preserved]
cost_any: [archive_debt_up, inspection_heat_up, public_delay_up, sponsor_hostility_up]
future_effect_any: [lawful_only, bridge_required, release_gated]

Haircut conversion assertion

selected_posture: haircut_conversion
mixed_reserve_state_after: converted_with_haircut
relief_any: [obligation_partly_paid, current_route_partly_unblocked]
cost_any: [junior_reader_scope_down, oxygen_clawback_pressure_up, consent_debt_up]
future_effect_any: [costlier, split_required, recovery_only_for_junior]

Route-asset ringfence assertion

selected_posture: route_asset_ringfence
mixed_reserve_state_after: ringfenced
relief_any: [route_asset_care_protected, ward_air_capacity_protected, worker_carried_source_protected]
cost_any: [sponsor_pressure_up, fan_pressure_up, archive_pressure_up, production_pressure_up]
future_effect_any: [protected_scope_only, cannot_be_cited_outside_scope, route_asset_debt_carried]

Refuse mix assertion

selected_posture: refuse_mix
mixed_reserve_state_after: refused
relief_any: [false_clean_payment_prevented, source_loss_blocked]
cost_any: [current_obligation_blocked, sponsor_makegood_cost_up, public_pressure_up]
future_effect_any: [priority_ladder_required, clawback_route_open, recovery_only]

Hidden mix default assertion

selected_posture: hidden_mix_default
event_seen_or_armed: storyteller.event.oxygen_source_mixing_default.v1
mixed_reserve_state_after_any: [captured, false_clean, blocked, recovery_only]
relief_any: [immediate_assignment_burden_down, sponsor_or_management_claim_stabilized]
cost_any: [excluded_reader_hostility_up, source_loss_up, oxygen_clawback_pressure_up, broadcast_reality_drift_up]
future_effect_any: [sponsor_only, public_only, archive_only, blocked, split_required, recovery_only]

7. No mixed reserve universal clean pool

Required assertion:

no_universal_clean_pool:
  source_rows_preserved_or_hidden_mix_explicit: true
  at_least_one_source_scope_remains_scoped: true
  protected_or_excluded_reader_visible: true
  future_reader_or_route_effect_not_clean_universal: true

The lens fails if one mixed reserve can satisfy sponsor, fan public, ward, archive, lawful, route asset, producer license, and broadcast-reality readers cleanly.

8. Default is durable

呼吸来源混用默认 must record:

default_required:
  event: storyteller.event.oxygen_source_mixing_default.v1
  ledger_row_or_absence: <row or explicit_absence>
  obligation_being_paid: <obligation>
  source_rows_visible_count: <count or explicit_absence>
  default_actor: sponsor | management | fan_delegate | archive | lawful_reader | producer_license | route_asset | broadcast_reality | handler_absence | equivalent
  false_clean_claim: <claim>
  captured_or_lost_source: <source or explicit_absence>
  hidden_excluded_reader: <reader or explicit_absence>
  mixed_reserve_state_after: captured | false_clean | sponsor_only | public_only | archive_only | recovery_only | blocked | hostile | split_required | equivalent
  future_reader_or_route_effect: <effect>

A warning with no captured/lost source and no future effect fails.

9. Replay evidence expectation

storyline_id: storyteller.storyline.oxygen_reserve_provenance.v1
session_id: lens-oxygen-reserve-provenance-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  obligation_being_paid_visible: true
  source_rows_or_hidden_mix_visible: true
  no_fixed_turn_trigger: true
ledger:
  card: storyteller.card.oxygen_reserve_provenance_ledger.v1
  source_rows: []
  requesting_reader: <reader>
  protected_reader: <reader or explicit_absence>
  excluded_or_subordinated_reader: <reader or explicit_absence>
branch_result:
  rite: storyteller.rite.oxygen_reserve_segregation.v1
  selected_posture: segregated_sources | sponsor_match | fan_opt_in | archive_escrow | haircut_conversion | route_asset_ringfence | refuse_mix | hidden_mix_default
  mixed_reserve_state_after: <state>
  future_reader_or_route_effect: <effect>
  emitted_event: storyteller.event.oxygen_source_mixing_default.v1 | none_if_valid
  counter_deltas:
    relief: []
    cost: []
    future: []
assertions:
  - entry_is_state_triggered
  - source_rows_or_hidden_mix_visible
  - source_scope_preserved
  - protected_and_excluded_readers_visible
  - branch_outcomes_diverge
  - every_constructive_branch_has_relief_cost_and_future_effect
  - hidden_mix_default_is_durable
  - no_universal_clean_oxygen_pool
  - downstream_reader_consumes_provenance_state
  - no_fixed_turn_trigger

Progress metric

oxygenReserveProvenanceProgress = 0..10:

  • 0: no obligation or source rows visible.
  • 1: obligation being paid is visible.
  • 2: two source rows or hidden mix is visible.
  • 3: source scopes, holders, and authority are visible or explicitly absent.
  • 4: requesting, protected, and excluded readers are visible.
  • 5: Oxygen Reserve Provenance Ledger enters play.
  • 6: Oxygen Reserve Segregation exposes assignment slots.
  • 7: at least three constructive branches produce reserve state, relief, cost, and future effect.
  • 8: ringfence/refuse/haircut branches preserve excluded-reader scar.
  • 9: Oxygen Source-Mixing Default creates durable false-pool scar.
  • 10: downstream sponsor, fan, ward, archive, lawful, route-asset, producer-license, or broadcast-reality reader consumes the result.

Non-goals

  • Not a universal oxygen health bar.
  • Not a global economy dashboard.
  • Not raw count satisfaction.
  • Not a fixed upkeep phase.
  • Not a replacement for priority ladder, clawback, rebate, haircut, or sponsor makegood.
  • Not valid unless source provenance changes future playable state.