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.
Primary observation link
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: trueThe 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 | equivalentRows 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.
| Branch | Required relief | Required cost | Required future effect |
|---|---|---|---|
| Recognize single basis | selected channel usable | excluded reader or rival basis pressure rises | later rite checks recognized channel |
| Split basis | two channels gain weaker use | source ambiguity or claimant collision rises | future use must declare channel |
| Escrow basis | false booking delayed | reserve, schedule, or resentment rises | default arms if proof/claimant moves first |
| Force re-audit | weak basis pressure decreases | inspection, exposure, burden, or schedule cost rises | re-audit result must be consumed later |
| Refuse recognition | bad basis blocked | sponsor, public, lawful, or route pressure rises | route becomes disputed, channel-limited, or recovery-only |
| Let default book | claimant counts first | default event records wrong/private/first basis | future 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: 3The 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: trueProgress 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.