Proof Board Snapshot Custody Lens / 证据板快照羁押 Lens

This lens observes whether 证据板快照羁押线 and 证据板快照羁押机制 correctly make board snapshots into playable custody objects.

The oracle is: a proof board is not proof custody merely because its rows are visible. If a later route cites a board, the game must expose row state, custodian, board visibility, citation scope, hidden or harmed reader, selected posture, cost, and future route effect.

This lens observes:

It is observed through:

Observable promise

A passing implementation proves that a board caption, pinned row order, visible snapshot, or stale pinned proof cannot unlock a route as clean authority by itself.

The implementation must answer:

  • which board source created the snapshot;
  • who holds or lacks custody of the snapshot;
  • which future reader or route wants to cite it;
  • which rows are pinned, hidden, summarized, footnoted, redacted, absent, or contested;
  • what state and custodian each row has;
  • what citation scope each row permits;
  • who is harmed if the board is treated as complete;
  • what branch posture the player selected;
  • what cost and future route effect follow.

The lens fails if the game records only board_ready, snapshot_saved, proofs_visible, evidence_summary_clean, all_rows_current, or board_has_required_rows.

Entry oracle

entry_state_required:
  trigger_kind: state_pressure
  board_snapshot_present_or_claimed: true
  board_rows_min: 2
  board_used_as_proof_route_authority_report_or_annex: true
  future_reader_or_route_consumes_snapshot: true
  row_states_visible: true
  row_custodians_visible_or_explicit_absence: true
  hidden_stale_scoped_or_contested_row_visible_or_explicit_absence: true
  harmed_reader_or_claimant_visible_or_explicit_absence: true
  player_can_certify_rebuild_seat_split_quarantine_publish_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_row_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

The lens fails if entry opens from a fixed turn, day/week interval, chapter quota, raw board row count, generic evidence review, dashboard status, lens-health state, or a board with no downstream reader.

Snapshot row oracle

证据板快照 or equivalent must record:

snapshot_required:
  snapshot_id: <stable id>
  board_source: production_triage_board | replay_export_capsule | resume_packet | evidence_carryover_docket | recovery_indemnity_shelf | route_loadout_manifest | ruling_reader_collision | equivalent
  board_custodian_or_absence: <custodian or explicit_absence>
  requested_use:
    future_reader: public | lawful | sponsor | archive | inspector | editor | fan_public | artist_boundary | worker | claimant | route_asset | management | broadcast_reality | equivalent
    route_or_rite: <route rite package report annex or explicit_absence>
    requested_clean_claim: <claim>
  rows:
    - row_id: <row or explicit_absence>
      row_source: <source>
      row_state_before: fresh | scoped | stale | omitted | quarantined | public_only | lawful_only | sponsor_only | split_required | contradiction_pending | captured | false_owner | recovery_only | equivalent
      row_custodian_or_absence: <custodian or explicit_absence>
      board_visibility: pinned | hidden | summarized | footnoted | redacted | absent | contested
      citation_scope: current | source_only | lawful_only | public_only | sponsor_only | recovery_only | not_citable | equivalent
  hidden_or_harmed_reader: <reader claimant worker artist operator or explicit_absence>
  omitted_counter_row_or_absence: <row or explicit_absence>

The lens fails if row identity exists without row state, custodian, visibility, citation scope, or hidden-reader consequence.

Review rite oracle

证据板羁押复核 or equivalent must require concrete assignment:

assignment_required:
  snapshot_id_or_absence: <snapshot or explicit_absence>
  future_reader_or_route: <reader or route>
  board_custodian_or_absence: <custodian or explicit_absence>
  rows_min: 2
  row_states_visible: true
  row_visibility_visible: true
  hidden_or_harmed_reader_or_absence: <reader or explicit_absence>
  proof_bridge_or_absence: <bridge or explicit_absence>
  selected_posture: certify_with_scope | rebuild_board | seat_omitted_row | split_board | quarantine_snapshot | publish_minority_note | accept_stale_default
  cost_or_scar_or_absence: <cost scar or explicit_absence>
  future_route_effect: <effect>

The lens fails if sponsor payment, lawful seal, editor checksum, public pressure, or management order certifies the board without these slots.

Branch divergence oracle

A satisfying implementation must expose at least five non-equivalent constructive branch families plus default or explicit blocked state.

BranchRequired reliefRequired costRequired future effect
Certify with scopefuture reader acceptance, proof legibility, or route access improvesaddendum due, handler burden, excluded reader pressureaccepted_with_scope, public_addendum_required, lawful_annex_required
Rebuild boardstale snapshot or captured board risk dropsroute delay, archive debt, management pressureproof_board_rebuild_required, costlier
Seat omitted rowhidden harm or omitted row becomes legiblesponsor pressure, public distrust, inspection heatcontradiction_pending, split_required, accepted_with_scope
Split boardincompatible readers stop sharing one false snapshotsource ambiguity, route delay, reconciliation costpublic_only, lawful_only, sponsor_only, split_required
Quarantine snapshotfalse proof, false owner, or broadcast drift fallscurrent route blocked, sponsor/fan pressure risesblocked, lawful_annex_required, recovery_only
Publish minority notedissent, worker, claimant, artist, or operator row remains visibleexposure, public distrust, inspection heatpublic_addendum_required, accepted_with_challenge, costlier
Stale defaultimmediate closure or fastest-filed story may proceedfalse clean snapshot, hidden row hardened, hostile readerblocked, hostile, contradiction_pending, sponsor_unwind_required, recovery_only

The lens fails if every branch returns board_accepted, evidence_valid, or one generic pressure delta.

No board-as-proof shortcut

A passing implementation must explicitly prove:

no_board_as_proof_shortcut:
  board_snapshot_is_custody_object: true
  row_states_visible: true
  row_custodians_visible_or_explicit_absence: true
  board_visibility_visible: true
  citation_scope_visible: true
  hidden_or_harmed_reader_visible_or_explicit_absence: true
  future_route_effect_uses_snapshot_state: true

The lens fails if proofs are pinned on the board is enough to unlock a route.

Default oracle

过期证据板快照默认 must fire or arm when:

  • a future reader consumes a board with no snapshot custody row;
  • board row state is hidden;
  • row custodian is absent without explicit absence;
  • hidden or harmed reader is omitted;
  • stale, scoped, public-only, lawful-only, sponsor-only, quarantined, captured, false-owner, contradiction-pending, or recovery-only rows are loaded as fresh universal rows;
  • board caption or row order is treated as neutral proof;
  • a minority note, omitted row, worker/operator dissent, claimant row, or artist-boundary row is summarized away;
  • the board is filed as management closure without future route effect.

Required payload:

default_required:
  event: storyteller.event.stale_board_snapshot_default.v1
  snapshot_id_or_absence: <snapshot or explicit_absence>
  requested_clean_claim: <claim>
  board_custodian_or_absence: <custodian or explicit_absence>
  default_actor: sponsor | archive | inspector | editor | public_audience | management | producer_absence | route_claimant | broadcast_reality | equivalent
  false_snapshot_claim: board_pinned_so_proof_current | board_clean_so_rows_clean | omitted_row_not_material | scoped_row_counts_as_universal | stale_row_still_fresh | board_order_is_neutral | equivalent
  hidden_or_harmed_reader: <reader claimant operator artist worker or explicit_absence>
  stale_or_omitted_rows: []
  snapshot_state_after: false_clean_snapshot | captured_board | stale_board_hardened | contradiction_pending | hostile_reader | blocked | recovery_only | equivalent
  future_route_effect: blocked | costlier | public_addendum_required | lawful_annex_required | sponsor_unwind_required | packet_rebuild_required | proof_board_rebuild_required | recovery_only | contradiction_pending | equivalent
  counter_deltas_min: 3

The default fails if it only refreshes UI, warns the player, or changes mood without mutating future play.

Future consumption oracle

At least one downstream surface must consume snapshot state:

  • route accepts board only with scope;
  • public reader requires addendum;
  • lawful or archive reader requires annex or chain rebuild;
  • sponsor route requires unwind or remains sponsor-only;
  • replay/resume packet rebuild is required;
  • route asset becomes costlier, hostile, captured, blocked, split-required, or recovery-only;
  • management closure retains a scar;
  • broadcast reality receives contradiction-pending, stale-board-hardened, or recovery-only state.

If the snapshot result never changes future play, the lens is incomplete.

Replay evidence shape

lens_id: storyteller.lens.proof_board_snapshot_custody.v1
session_id: lens-proof-board-snapshot-custody-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  board_snapshot_present_or_claimed: true
  board_rows_min: 2
  board_used_as_proof_route_authority_report_or_annex: true
  future_reader_or_route_consumes_snapshot: true
  row_states_visible: true
  row_custodians_visible_or_explicit_absence: true
  hidden_stale_scoped_or_contested_row_visible_or_explicit_absence: true
  no_fixed_turn_trigger: true
offered:
  card: storyteller.card.proof_board_snapshot.v1
  rite: storyteller.rite.proof_board_custody_review.v1
snapshot:
  snapshot_id: <snapshot>
  board_source: <source>
  board_custodian_or_absence: <custodian or explicit_absence>
  requested_clean_claim: <claim>
  future_reader: <reader>
  rows:
    - row_id: <row>
      row_state_before: <state>
      row_custodian_or_absence: <custodian or explicit_absence>
      board_visibility: <visibility>
      citation_scope: <scope>
  hidden_or_harmed_reader: <reader or explicit_absence>
branch_result:
  selected_posture: certify_with_scope | rebuild_board | seat_omitted_row | split_board | quarantine_snapshot | publish_minority_note | accept_stale_default
  snapshot_state_after: <state>
  future_route_effect: <effect>
  emitted_event_or_absence: storyteller.event.stale_board_snapshot_default.v1 | explicit_absence
  counter_deltas:
    relief: []
    cost: []
    future: []
assertions:
  - entry_is_state_triggered
  - board_snapshot_is_custody_object
  - rows_have_state_custodian_visibility_and_scope
  - hidden_or_harmed_reader_visible_or_explicit_absence
  - board_caption_order_or_pins_do_not_create_universal_proof
  - branch_postures_diverge
  - success_has_cost
  - stale_snapshot_default_mutates_future_play
  - future_reader_consumes_snapshot_state
  - no_fixed_turn_day_week_raw_row_count_dashboard_or_lens_health_trigger

Non-goals

  • Not a dashboard or project-board check.
  • Not governance.
  • Not raw row-count expansion.
  • Not a generic evidence list.
  • Not a replacement for production triage, replay export, resume packet, evidence carryover, recovery indemnity, route loadout, proof burden, or reader collision.
  • Not valid if board visibility itself equals clean proof.