Recovery Counterstub Hearing / 复原副签听证

Recovery Counterstub Hearing is the assignable rite that decides what happens when a scarce recovery inventory row has a contested counterstub and multiple readers want to treat the row as proof.

It is deliberately small: the player is not holding a generic trial. The player is choosing whether a worker-held stub becomes protected testimony, split proof, archive custody, sponsor release, recovery reallocation, refusal, or scapegoat default.

Entry contract

Open only from state pressure:

entry_state_required:
  trigger_kind: state_pressure
  docket: storyteller.card.recovery_counterstub_docket.v1
  finite_recovery_row_present_or_explicit_absence: true
  counterstub_state_visible: true
  competing_claims_min: 2
  desired_reader_present: true
  excluded_or_blamed_reader_present_or_explicit_absence: true
  future_route_effect_pending: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

Invalid entry:

  • fixed turn count, day, week, chapter quota, or raw content count;
  • generic hearing phase;
  • generic sponsor review;
  • generic archive review;
  • recovery inventory allocation with no counterstub holder, missing signature, sponsor afteruse claim, or blamed worker.

Required assignment

assignment:
  docket: storyteller.card.recovery_counterstub_docket.v1
  recovery_row: <inventory id or explicit_absence>
  inventory_kind: <kind>
  counterstub_id_or_absence: <id or explicit_absence>
  counterstub_state_before: unsigned | held | copied | split | overwritten | missing | quarantined | surrendered | scapegoated | sponsor_captured | archive_locked | equivalent
  named_holder_or_absence: <worker/handler/faction/explicit_absence>
  signature_pressure: voluntary | protected | coerced | bribed | blamed | absent | unknown | equivalent
  desired_reader: sponsor_reader | archive_reader | lawful_reader | public_reader | fan_oxygen_reader | ward_reader | artist_boundary_reader | management_reader | route_asset_reader | equivalent
  excluded_or_blamed_reader: <reader or worker or explicit_absence>
  assigned_handler_or_absence: producer | shen_luo | yu_lan | han_yanshuang | baiya | archive_clerk | public_witness | recovery_worker | explicit_absence | equivalent
  proof_bridge_or_absence: original_stub | archive_scan | sponsor_copy | fan_queue_copy | ward_log | edit_checksum | oral_witness | recovery_inventory_ledger | explicit_absence | equivalent
  chosen_mode: protect_holder | split_counterstub | archive_lock | sponsor_release | recovery_reallocate | refuse_false_stub | default_selects

The rite fails if sponsor money, an archive stamp, an edit checksum, management authority, or a generic inspector order fills the assignment without naming the holder and excluded reader.

Branch families

Protect holder

Use when the counterstub holder can be protected, recruited, paid, shielded, or placed under clean custody before blame hardens.

selected_branch: protect_holder
relief_any:
  - recovery_counterstub_integrity_up
  - false_clean_claim_blocked
  - worker_testimony_available
cost_any:
  - handler_burden_up
  - inspection_heat_up
  - sponsor_pressure_up
future_effect_any:
  - worker_protected
  - recruit_window_open
  - accepted_with_counterstub
forbidden:
  - worker_signature_as_free_universal_release

Split counterstub

Use when sponsor, archive, public, ward, or lawful readers can each receive a scoped copy, note, or receipt without pretending they are the same truth.

selected_branch: split_counterstub
relief_any:
  - one_reader_unblocked
  - reader_collision_contained
  - sponsor_afteruse_scope_visible
cost_any:
  - source_ambiguity_up
  - archive_counterstub_debt_up
  - public_receipt_distrust_up
future_effect_any:
  - split_required
  - sponsor_only
  - archive_only
  - lawful_only
forbidden:
  - split_copy_as_universal_acceptance

Archive lock

Use when lawful or archive custody must hold the original stub and force sponsor/public/ward routes to use annotated copies or wait.

selected_branch: archive_lock
relief_any:
  - lawful_reader_confidence_up
  - source_trace_preserved
  - false_stub_blocked
cost_any:
  - schedule_pressure_up
  - sponsor_pressure_up
  - ward_or_fan_delay_up
future_effect_any:
  - archive_only
  - checksum_required
  - recovery_only_until_release
forbidden:
  - archive_scan_erases_holder

Use when the sponsor may receive a scoped commercial release, but the holder and excluded reader must remain visible.

selected_branch: sponsor_release
relief_any:
  - sponsor_stop_loss_pressure_down
  - package_pressure_down
  - commercial_route_unblocked
cost_any:
  - contract_capture_up
  - public_receipt_distrust_up
  - worker_scapegoat_risk_up
future_effect_any:
  - sponsor_only
  - public_or_lawful_reader_hostile
  - unwind_required_if_reused
forbidden:
  - sponsor_release_as_clean_reality

Recovery reallocate

Use when the row must return to recovery use rather than proof use.

selected_branch: recovery_reallocate
relief_any:
  - ward_air_capacity_up
  - fan_oxygen_reserve_up
  - route_recovery_cost_down
cost_any:
  - sponsor_pressure_up
  - archive_counterstub_debt_up
  - management_pressure_up
future_effect_any:
  - recovery_only
  - future_proof_bridge_required
  - sponsor_afteruse_blocked
forbidden:
  - recovery_need_erases_counterstub_liability

Refuse false stub

Use when the proposed stub is overwritten, coerced, missing, or too captured to use safely.

selected_branch: refuse_false_stub
relief_any:
  - false_clean_claim_blocked
  - blamed_worker_protected
  - excluded_reader_surface_preserved
cost_any:
  - immediate_schedule_pressure_up
  - sponsor_pressure_up
  - handler_burden_up
future_effect_any:
  - blocked
  - costlier
  - contradiction_pending
forbidden:
  - refusal_as_free_cleanup

Default selects

If the rite is unavailable, ignored, underfilled, or filed clean first, arm or emit 复原副签替罪默认.

selected_branch: default_selects
event_seen_or_armed: storyteller.event.recovery_counterstub_scapegoat_default.v1
future_effect_any:
  - scapegoat_default
  - sponsor_only
  - archive_only
  - recovery_only
  - blocked
  - costlier

Output contract

Every non-default branch must output:

branch_output:
  counterstub_state_after: held | split | archived | sponsored | quarantined | refused | missing | equivalent
  holder_state_after: protected | recruited | missed | hostile | unavailable | blamed | explicit_absence | equivalent
  desired_reader_state_after: accepted_with_cost | narrowed | sponsor_only | archive_only | lawful_only | public_only | recovery_only | blocked | equivalent
  excluded_reader_state_after: protected | hostile | blamed | blocked | recovery_only | contradiction_pending | explicit_absence | equivalent
  future_route_effect: accepted_with_counterstub | split_required | worker_protected | sponsor_only | archive_only | lawful_only | public_only | recovery_only | blocked | costlier | equivalent
  counter_deltas_min: 3

At least two readers must end in different states.

Non-goals

  • Not a generic hearing.
  • Not a resource allocation duplicate.
  • Not a sponsor afteruse duplicate.
  • Not a clean archive stamp.
  • Not a worker punishment scene.
  • Not fixed-sequence content.