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: trueInvalid 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_selectsThe 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_releaseSplit 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_acceptanceArchive 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_holderSponsor release
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_realityRecovery 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_liabilityRefuse 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_cleanupDefault 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
- costlierOutput 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: 3At 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.