Rebuttal Recall Collision Docket / 反驳召回撞锁案卷

Rebuttal Recall Collision Docket is the visible card for a narrow but important pressure seam: an old instruction is being recalled while a future reader also wants to cite, answer, or consume the same authority row.

The existing 过期派发案卷 asks whether an old instruction can still execute. The existing 读者反驳通知账本 asks whether an affected party can answer before a later reader uses a prior row as authority. This card appears only when both are true enough to interfere with each other.

Card promise

A valid docket instance must name:

  1. the shared authority row, boundary, proof object, or route asset both procedures cite;
  2. the stale instruction that is still actionable;
  3. the future reader trying to use the cited row;
  4. the affected party, proxy, or explicit absence with rebuttal standing;
  5. the holder, recipient, or explicit absence that can execute the stale instruction;
  6. the competing correction authorities;
  7. the binding order selected by the player;
  8. the acknowledgement surfaces that prove which recipients and readers were actually bound;
  9. the durable default if recall and rebuttal are misbound.

The card opens from state pressure. It must never open from fixed turn, fixed day/week, chapter quota, raw content count, dashboard state, or lens health.

Docket fields

card_id: storyteller.card.rebuttal_recall_collision_docket.v1
state: hidden | collision_open | arbitrated | split_bound | frozen | misbound | recovered_with_scar
shared_authority:
  authority_row_id: <stable cited row or boundary id>
  source_surface: transcript | rehearsal_trace | dispatch | custody_copy | public_receipt | route_asset | sponsor_copy | archive_docket | equivalent
  source_history_preserved: true
stale_dispatch_side:
  stale_docket_id: storyteller.card.stale_dispatch_docket.v1 | equivalent
  stale_instruction_id: <instruction id>
  stale_holder_or_absence: floor_crew | cutroom | sponsor | archive | inspector | ward | runner | fan_delegate | pirate_relay | explicit_absence | equivalent
  stale_action_if_unrecalled: <action>
  recall_channel_available: live_floor_bulletin | lawful_notice | cutroom_patch | sponsor_retraction | public_addendum | runner_relay | quarantine | explicit_absence
rebuttal_side:
  rebuttal_ledger_id: storyteller.card.reader_rebuttal_notice_ledger.v1 | equivalent
  future_reader: archive | inspector | sponsor | editor | fan_public | pirate_relay | route_asset | broadcast_reality | lawful_body | management | equivalent
  intended_use: proof | public_receipt | lawful_fact | sponsor_release | final_cut | route_unlock | consent_record | discharge_record | contradiction_close | equivalent
  affected_party_or_absence: <party proxy constituency or explicit_absence>
  rebuttal_boundary_available: private_notice | lawful_annex | public_counterline | editor_mask | sponsor_silence | archive_objection | split_notice | explicit_absence
collision:
  collision_kind: recall_before_notice | notice_before_recall | split_reader_binding | lawful_freeze | public_counterline_bridge | sponsor_silence_misbind | runner_bridge | no_arbitration
  selected_binding_order: recall_first | notice_first | split_bind | freeze_both | public_bridge | sponsor_hush | runner_bridge | default
  bound_recipients: []
  bound_readers: []
  unbound_or_explicit_absence: []
  acknowledgement_surfaces:
    - signed_stub
    - checksum
    - docket_stamp
    - public_line
    - witness_receipt
    - route_asset_tag
    - explicit_absence
unworked_default:
  event: storyteller.event.recall_rebuttal_misbind.v1
  default_state: stale_instruction_executed_without_answer | row_answered_after_old_execution | wrong_reader_bound | false_notice_authority | split_correction_unacknowledged | recovery_only

Eligible entry states

Use this card only when both sides are live or explicitly absent in a meaningful way:

  • a prior row is being cited and notice boundary remains unresolved;
  • an old instruction based on the same row is still actionable;
  • at least one recipient can execute or one future reader can accept before the other correction lands;
  • the player can assign binding order, carrier, acknowledgement, or default;
  • a future route, proof test, broadcast, public receipt, custody state, or route asset will change depending on which correction binds first.

Binding order memory

The docket must preserve partial binding. It is valid for the floor to accept recall while the public reader still lacks rebuttal, or for the affected party to publish a counterline while the cutroom still holds a stale mark. The key is that the game records who is bound, who is unbound, and what future route effect follows.

Clean universal correction is invalid unless it pays costs and records acknowledgement for every affected reader and recipient.

Counter and state contract

Every resolved branch should mutate at least one relief, one cost, and one future-route or reader effect.

Recommended relief surfaces:

  • stale_dispatch_risk_down
  • notice_legitimacy_up
  • future_reader_acceptance_scoped
  • custody_clarity_up
  • false_execution_blocked

Recommended cost surfaces:

  • correction_authority_conflict_up
  • handler_burden_up
  • proof_burden_up
  • schedule_pressure_up
  • public_confusion_up
  • inspection_heat_up
  • contract_capture_up
  • runner_risk_up
  • edit_debt_up

Recommended future effects:

  • future_reader_accepts_with_dual_acknowledgement
  • route_requires_late_rebuttal
  • route_requires_recall_stamp
  • split_reader_table
  • lawful_freeze_until_arbitrated
  • sponsor_unwind_required
  • correction_misbound_recovery_only

Non-goals

  • Not a duplicate of stale dispatch recall.
  • Not a duplicate of reader rebuttal notice.
  • Not a generic correction checklist.
  • Not a governance or dashboard page.
  • Not valid if recall automatically satisfies rebuttal.
  • Not valid if rebuttal automatically recalls old instructions.
  • Not valid if all readers and recipients silently synchronize for free.