Recognized Broadcast Basis Lens / 播出确认基准 Lens

This lens observes whether 播出确认基准线 and 播出确认基准机制 correctly turn a successful or surviving result into contested recognition state.

The oracle is: a result may remain true while different factions disagree about which version counts; the game must expose that basis dispute as rows, assignments, costs, defaults, and future route changes.

This is a state-triggered lens. It must not depend on fixed turn count, day interval, chapter marker, dashboard status, lens health, or raw content count.

This lens observes:

It is observed through:

Observable promise

A passing implementation proves that a result cannot become universally clean just because it succeeded. The source result remains true, but recognition must name:

  • which source result is being counted;
  • which claimant wants which basis;
  • what proof or explicit absence anchors the basis;
  • who or what is excluded if that basis wins;
  • which future route, payment claim, certification, correction right, proof use, or custody gate changes.

Entry oracle

entry_required:
  trigger_kind: state_pressure
  source_result_exists: true
  source_result_kept_true: true
  source_result_countable_by_multiple_channels: true
  recognized_basis_ledger_present: true
  basis_rows_min: 2
  excluded_reader_or_route_asset_present: true
  future_effect_if_unanswered_present: true
  no_fixed_turn_trigger: true
  no_fixed_day_trigger: true
  no_chapter_trigger: true
  no_dashboard_or_lens_health_trigger: true
  no_raw_count_trigger: true

The lens fails if entry opens from a sequence marker, chapter cleanup, generic post-victory phase, test-count gap, or fixed turn.

Ledger oracle

确认基准账本 must expose at least two non-equivalent rows.

ledger_row_required:
  card: storyteller.card.recognized_basis_ledger.v1
  basis_id: <stable id>
  source_surface: <storyline rite event card replay source or in-world proof>
  source_result_kept_true: <result>
  basis_claimant: sponsor | archive | inspector | fan_public | editor | artist | handler_staff | producer | route_asset_holder | equivalent
  basis_kind: contract_delivery | lawful_certification | public_receipt | archive_canon | edit_checksum | memorial_copy | route_asset_use | settlement_basis | equivalent
  demanded_recognition: <what must count>
  proof_anchor_or_absence: <proof or explicit_absence>
  excluded_reader: <reader route asset claimant or explicit_absence>
  payable_or_gate_created: <certification payment correction route gate custody gate or default right>
  default_if_unanswered: misrecognized | sponsor_booked | archive_sealed | public_only | lawful_only | disputed | route_gate_hardened | recovery_only | equivalent

Rows fail if they only store sentiment, payment status, public heat, legal status, or a generic clean flag.

Hearing oracle

基准确认听证 must require concrete assignment.

assignment_required:
  rite: storyteller.rite.basis_recognition_hearing.v1
  selected_basis_row: <basis id>
  source_surface: <source>
  basis_claimant: <claimant>
  basis_kind: <kind>
  proof_anchor_or_absence: <proof or explicit_absence>
  excluded_reader: <reader or route asset>
  handler_or_absence: <handler or explicit_absence>
  support_or_absence: public_receipt | archive_seal | contract_clause | edit_checksum | route_asset_testimony | replay_derived_proof | reserve | explicit_absence
  selected_response: recognize_single_basis | split_basis | escrow_basis | force_reaudit | refuse_recognition | let_default_book
  cost_or_scar: <nonzero cost scar or explicit default>

The lens fails if a famous handler, sponsor payment, legal stamp, public apology, edit checksum, or replay session id resolves recognition without row, proof/absence, excluded reader, selected response, and scar.

Branch divergence oracle

A passing implementation must prove at least three non-equivalent branch families, including one constructive branch and one default, refusal, or misrecognition branch.

BranchRequired reliefRequired costRequired future effect
Recognize single basisselected channel usableexcluded reader or rival basis pressure riseslater rite checks recognized channel
Split basistwo channels gain weaker usesource ambiguity or claimant collision risesfuture use must declare channel
Escrow basisfalse booking delayedreserve, schedule, or resentment risesdefault arms if proof/claimant moves first
Force re-auditweak basis pressure decreasesinspection, exposure, burden, or schedule cost risesre-audit result must be consumed later
Refuse recognitionbad basis blockedsponsor, public, lawful, or route pressure risesroute becomes disputed, channel-limited, or recovery-only
Let default bookclaimant counts firstdefault event records wrong/private/first basisfuture route, proof, payment, certification, or custody gate changes

Every branch must mutate recognition state, relief/cost, and future playable state. Branches fail if they all return handled, clean, or one generic pressure delta.

Misrecognition oracle

误认基准违约 must fire or be armed when the ledger is hidden, the hearing is underfilled, a claimant counts first, a wrong/private basis is accepted, or replay provenance is used as a debug substitute rather than an in-world proof.

default_required:
  event: storyteller.event.misrecognized_basis_default.v1
  source_surface: <source>
  source_result_kept_true: <result>
  failed_basis_row: <basis id or explicit_absence>
  default_claimant: <claimant>
  wrong_or_private_basis: <basis kind>
  excluded_reader: <reader route asset claimant or explicit_absence>
  failed_response: <reason>
  basis_state_after: misrecognized | default_booked | public_only | lawful_only | sponsor_only | disputed | recovery_only | equivalent
  future_route_effect: blocked | costlier | hostile | public_only | lawful_only | sponsor_only | recovery_only | contradiction_pending | equivalent
  recovery_hook_or_terminal: <hook or terminal>
  counter_deltas_min: 3

The event fails if it merely adds flavor text, anger, score loss, or generic pressure without changing basis state and future play.

Replay provenance oracle

Replay/session evidence can support the basis only if it appears as a current in-world object: proof copy, receipt row, checksum, archive seal, public ledger row, route asset testimony, or docket.

The lens fails if a source session id alone counts as proof.

Minimal replay evidence shape

lens: storyteller.lens.recognized_broadcast_basis.v1
result: pass | fail
session_id: lens-storyteller-recognized-broadcast-basis-v1-<timestamp>
seed: <deterministic-seed>
source_result:
  source_surface: <storyline rite event card replay source or in-world proof>
  source_session_id: <session or explicit_absence>
  source_result_kept_true: <result>
entry_state:
  trigger_kind: state_pressure
  basis_rows_min: 2
  proof_anchor_or_absence_visible: true
  excluded_reader_or_route_asset_present: true
  future_effect_if_unanswered_present: true
  no_fixed_turn_trigger: true
ledger:
  card: storyteller.card.recognized_basis_ledger.v1
  rows:
    - basis_id: <basis id>
      basis_claimant: <claimant>
      basis_kind: <kind>
      demanded_recognition: <demand>
      proof_anchor_or_absence: <proof or explicit_absence>
      excluded_reader: <reader or route asset>
    - basis_id: <basis id>
      basis_claimant: <claimant>
      basis_kind: <kind>
      demanded_recognition: <demand>
      proof_anchor_or_absence: <proof or explicit_absence>
      excluded_reader: <reader or route asset>
hearing:
  offered_rite: storyteller.rite.basis_recognition_hearing.v1
  selected_response: recognize_single_basis | split_basis | escrow_basis | force_reaudit | refuse_recognition | let_default_book
  assigned_inputs:
    basis_row: <basis id>
    proof_anchor_or_absence: <proof or explicit_absence>
    handler_or_absence: <handler or explicit_absence>
    support_or_absence: <support or explicit_absence>
outcome:
  basis_state_after: recognized_single | split_basis | escrowed_basis | reaudit_open | misrecognized | recovery_only_basis
  recognized_channel: <channel or none>
  excluded_reader_effect: <effect>
  future_route_effect: <effect>
  emitted_event: storyteller.event.misrecognized_basis_default.v1 | none
counter_deltas:
  relief:
    - <relief>
  cost:
    - <cost>
assertions:
  source_result_preserved: true
  entry_state_driven: true
  ledger_rows_concrete: true
  hearing_assignment_concrete: true
  branches_diverge: true
  default_mutates_future_play: true
  replay_proof_embedded_in_world: true
  no_fixed_turn_trigger: true

Progress metric

Progress is measured by branch observability, not page count.

  • 20%: source result with multiple recognition channels creates a basis ledger.
  • 40%: ledger stores at least two rows with source, claimant, basis kind, proof/absence, excluded reader, default, and future effect.
  • 60%: hearing offers concrete assignment and at least three non-equivalent branch families.
  • 80%: one constructive branch and one default/refusal/misrecognition branch produce different recognition state and future route effects.
  • 100%: replay proves source result preservation, basis row creation, branch selection, assigned inputs, counter deltas, and future state mutation.

Failure cases

The lens must fail if any of these are true:

  • source result is erased or retconned instead of preserved;
  • entry is fixed-turn, fixed-day, chapter, dashboard, lens-health, or raw-count driven;
  • no basis ledger exists;
  • fewer than two basis rows exist;
  • rows lack source result, basis claimant, basis kind, proof/absence, excluded reader, default, or future effect;
  • hearing can resolve without selected row, proof/absence, handler/absence, support/absence, response, and scar;
  • single, split, escrow, re-audit, refusal, and default branches collapse into one outcome;
  • replay session id is treated as proof without an in-world proof object;
  • misrecognized default does not mutate future route, proof, payment, certification, or custody gate;
  • success is clean and universal across sponsor, lawful, public, editor, and route channels.

Non-goals

  • Not a passive accounting dashboard.
  • Not a governance checklist.
  • Not raw lens-count expansion.
  • Not a fixed-turn reconciliation phase.
  • Not a clean ending repair.
  • Not valid unless recognition state changes future playable state.