Dormant Claim Resurfacing Lens / 休眠认领复燃 Lens

This lens observes whether 休眠认领复燃线 and 休眠认领复燃机制 correctly bring old unresolved rows back into play when current state makes them relevant.

The lens exists because Storyteller now has many local ledgers: correction slot, stabilization liability, archive enforcement, ending scar, handler burden, public contrition, cutroom priority, proxy posture, witness payroll, and route custody. A long campaign needs proof that these rows carry forward without becoming fixed-turn callbacks, page-count filler, or unplayable backlog.

This lens observes:

It is observed through:

Observable promise

A satisfying implementation must prove that a prior unresolved row can be carried into a later session or later crisis, selected because it matters to current state, reviewed through a player choice, and resolved into a future route effect.

The lens must fail if old rows silently disappear, if resurfacing is triggered by fixed turn count, if all dormant rows are dumped into the offer set, or if suppression has no durable consequence.

Required data surfaces

Queue card

到期认领队列 or equivalent must expose rows with:

  • source surface;
  • source session id and seed;
  • source row id;
  • current row state;
  • maturity condition;
  • claimant benefited if quiet;
  • claimant harmed if resurfaced;
  • proof anchor or explicit absence;
  • carrier or explicit absence;
  • valid seats;
  • future risk if ignored.

The lens fails if a row has no provenance or no current relevance condition.

Review rite

休眠认领复核 or equivalent must require:

  • selected resurfaced row;
  • current surface;
  • reason the row is relevant now;
  • selected seat or specialist route;
  • carrier or explicit absence;
  • proof anchor or explicit absence;
  • capacity or collateral;
  • claimant benefited and claimant harmed;
  • selected response.

The lens fails if the player can accept or dismiss a matured row without naming carrier/proof/claimant/capacity or explicit absence.

Breach event

休眠认领破口 or equivalent must fire or be recorded as default-ready when a relevant row is omitted, sent to the wrong surface, over-deferred, suppressed, falsely marked clean, or rival-narrated first.

The breach must change future route effect.

State-triggered maturity oracle

A row may mature only because current state makes it relevant.

Minimum evidence:

maturity:
  source_row_state_before_any: [dormant, watchlisted, deferred, disputed, hostile, captured, recovery_only, public_only, lawful_only, sponsor_only, false_owner_risk]
  current_surface_requested_resource_any: [claimant, proof, carrier, correction, enforcement, stabilization, ending, handler, public_statement, edit_lane, route_asset, production_capacity]
  relevance_reason_any: [proof_match, claimant_match, carrier_match, route_effect_match, contradiction_match, breach_risk_match]
  no_fixed_turn_trigger: true

The lens fails if maturity is caused by a fixed turn number, arbitrary day interval, chapter quota, content count, or lens health check.

Selection oracle

The implementation must select a finite, relevant resurfacing set.

Expected evidence:

selection:
  rows_considered_min: 1
  selected_rows_min: 1
  selected_rows_are_subset_of_considered: true
  selected_reason_present: true
  unselected_rows_state_after_any: [dormant, watchlisted, deferred_with_collateral, default_ready, not_relevant]
  no_offer_all_backlog_without_filter: true

The lens fails if every old row is offered without relevance, or if the selected row has no reason to affect the current surface.

Branch divergence oracle

At least four branch families must be playable and non-equivalent.

Branch A — Seat now

Expected evidence:

selected_response: seat_now
row_state_after_any: [seated, active, merged]
current_surface_mutated: true
relief_present: true
cost_present: true
future_route_effect_any: [unlocked_with_scar, costlier, public_only, lawful_only, recovery_only, clean_laundering_blocked]

Branch B — Merge current

Expected evidence:

selected_response: merge_current
row_state_after_any: [merged, split, costlier, recovery_only]
branch_change_any: [new_required_proof, harmed_claimant_added, rival_row_watchlisted, clean_success_blocked, carrier_absence_visible]

Branch C — Route to specialist

Expected evidence:

selected_response: route_to_specialist
specialist_surface_any: [correction_slot, archive_enforcement, stabilization_handoff, ending_scar, handler_burden, production_triage, public_contrition, cutroom_priority]
row_state_after_any: [routed, pending_review, watchlisted]
current_surface_effect_any: [delayed, narrowed, costlier, partial_success, explicit_absence]

Branch D — Defer with collateral

Expected evidence:

selected_response: defer_with_collateral
row_state_after: deferred_with_collateral
collateral_any: [public_bond, sponsor_escrow, legal_hold, edit_checksum, handler_time, route_asset, fan_refund_pool, production_lane]
future_route_cost_up: true

Branch E — Split claim

Expected evidence:

selected_response: split_claim
row_state_after_any: [split, public_only, lawful_only, sponsor_only]
claimants_min: 2
future_route_effect_any: [split_custody, public_audit_required, lawful_appeal_required, sponsor_capture_risk, ending_costlier]

Branch F — Retire with scar

Expected evidence:

selected_response: retire_with_scar
row_state_after: retired_with_scar
claimant_accounting_preserved: true
future_route_effect_any: [scar_preserved, future_cost_retained, route_restriction_retained, clean_laundering_blocked]

Branch G — Suppress or ignore

Expected evidence:

selected_response: suppress_or_ignore
emitted_event: storyteller.event.dormant_claim_breach.v1
row_state_after_any: [breached, hostile, captured, recovery_only, contradiction_pending]
future_route_effect_any: [costlier, blocked, hostile_narration, false_owner_risk_up, black_screen_pressure_up]

Oracle assertions

A binding check should fail unless all assertions below are true.

  1. Primary links existobserves and observed_through arrays point to concrete Storyteller pages.
  2. Source provenance exists — matured rows retain source surface, source session id, source seed, and source row id.
  3. Entry is state-driven — rows mature from current surface relevance, not fixed turn count or content count.
  4. Selection is finite and relevant — selected row has a relevance reason and unselected rows keep explicit state.
  5. Review is assignable — carrier/proof/capacity/claimant fields are filled or explicitly absent.
  6. Branch outcomes diverge — seating, merging, routing, deferring, splitting, retiring, and suppressing do not collapse into the same result.
  7. Suppression breaches durably — omitted relevant rows emit or prepare a breach with future route effect.
  8. No silent expiry — old rows cannot become clean without scar, claimant accounting, or route restriction.
  9. No backlog flood — the implementation does not offer every dormant row without relevance selection.
  10. Future route mutates — every resolved branch changes future availability, difficulty, claimant posture, route asset state, handler state, ending eligibility, or pressure cost.
  11. At least three deltas exist — every branch changes at least three counters or durable states with visible relief and cost.
  12. Replay evidence exists — passing evidence includes session id, seed, source row, selected row, relevance reason, review assignment, branch result, event/default, counter deltas, and future route effect.

Progress metric

dormantClaimResurfacingProgress = 0..8:

  • 0: no durable source row is available across surfaces.
  • 1: at least one prior row enters 到期认领队列 or equivalent with provenance.
  • 2: row state and maturity condition are visible.
  • 3: a current surface requests a resource the row can affect.
  • 4: selection reason is recorded and unrelated rows remain dormant/watchlisted/deferred/default-ready.
  • 5: 休眠认领复核 or equivalent offers at least three responses.
  • 6: at least two non-suppression branches mutate current surface and future route effect.
  • 7: suppress/ignore/wrong-seat emits 休眠认领破口 or equivalent durable default.
  • 8: at least four branch families are proven with replay/session evidence, including one deferral-with-collateral or split claim and one breach/suppression branch.

Evidence shape

lens_id: storyteller.lens.dormant_claim_resurfacing.v1
session_id: lens-dormant-claim-resurfacing-v1-<timestamp>
seed: <deterministic-seed>
source_inventory:
  rows_considered:
    - source_surface: <prior surface>
      source_session_id: <prior session>
      source_seed: <prior seed>
      source_row_id: <source row>
      row_id: <queue row>
      row_state_before: <state>
      claimant_benefited_if_quiet: <claimant>
      claimant_harmed_if_resurfaced: <claimant>
current_surface:
  surface_id: <current surface>
  requested_resource_any:
    - claimant
    - proof
    - carrier
    - correction
    - enforcement
    - stabilization
    - ending
    - handler
    - public_statement
    - edit_lane
    - route_asset
    - production_capacity
selection:
  selected_row_id: <row>
  relevance_reason: proof_match | claimant_match | carrier_match | route_effect_match | contradiction_match | breach_risk_match
  unselected_rows_state_after: <states>
review:
  offered_card: storyteller.card.matured_claim_queue.v1
  offered_rite: storyteller.rite.dormant_claim_review.v1
  carrier_or_absence: <value>
  proof_anchor_or_absence: <value>
  capacity_or_collateral: <value>
  claimant_benefited: <claimant>
  claimant_harmed: <claimant>
branch_runs:
  seat_now:
    row_state_after: <state>
    current_surface_effect: <effect>
    future_route_effect: <effect>
    counter_deltas: {}
  route_to_specialist:
    specialist_surface: <surface>
    current_surface_effect: <effect>
    future_route_effect: <effect>
    counter_deltas: {}
  defer_with_collateral:
    collateral: <collateral>
    row_state_after: deferred_with_collateral
    future_route_effect: <effect>
    counter_deltas: {}
  suppress_or_ignore:
    emitted_event: storyteller.event.dormant_claim_breach.v1
    row_state_after: <state>
    future_route_effect: <effect>
    counter_deltas: {}
assertions:
  - primary_links_exist
  - source_provenance_preserved
  - state_triggered_maturity
  - selected_row_relevant
  - finite_offer_set
  - branch_outcomes_diverge
  - breach_is_durable
  - future_route_effect_mutates

Non-goals

  • Not a governance checklist.
  • Not a dashboard-only evidence spec.
  • Not a raw campaign-length metric.
  • Not a fixed turn callback.
  • Not a generic backlog or daily upkeep phase.
  • Not a content-count expansion.
  • Not a way to clear every old row for free.
  • Not satisfied by page existence; proof must come from replay-visible source row, selected relevance, assignable review, branch divergence, breach/default behavior, counter deltas, and future route mutation.