Recovery Counterstub Docket / 复原副签案卷

Recovery Counterstub Docket is the durable card that names who actually signed, withheld, copied, or lost the counterstub for a scarce recovery inventory row.

It exists because 复原库存账本 can already prove that recovery rows are finite, while 赞助后用引证案卷 can already prove that sponsor afteruse cannot become a universal citation. The missing surface is the low-rank custody mark between them: a sponsor, archive, schedule board, or manager should not be able to say “the inventory was properly released” unless the counterstub holder, liability target, excluded reader, and future scar are named.

Card use

Add this card when a finite recovery row is requested by at least two incompatible readers and the row’s counterstub is contested, absent, unsigned, overwritten, sponsored, archived, or being used as later proof.

Valid entry pressure includes:

  • a sponsor afteruse request cites a prior recovery row as clean proof;
  • archive custody demands the original counterstub before accepting a correction, refund, proof window, or ward-air release;
  • management files a recovery row as available while a worker signature is missing;
  • a fan oxygen, ward, public, artist-boundary, or lawful reader disputes the person blamed for the missing row;
  • a route asset depends on whether the row was released, withheld, quarantined, or stolen.

Invalid entry pressure:

  • fixed turn count;
  • fixed day or week interval;
  • raw number of lenses, pages, rites, cards, crises, or dashboard items;
  • generic low resources without a named recovery row;
  • sponsor anger without a later-use citation or inventory row;
  • archive review without a missing, contested, or blamed counterstub.

Required fields

counterstub_docket:
  card_id: storyteller.card.recovery_counterstub_docket.v1
  source_inventory_ledger: storyteller.card.recovery_inventory_ledger.v1
  source_afteruse_docket_or_absence: storyteller.card.sponsor_afteruse_citation_docket.v1 | explicit_absence
  recovery_row:
    inventory_id: <stable row id>
    inventory_kind: correction_slot | ward_air | oxygen_reserve | crew_rest_shift | archive_proof_window | edit_checksum_lane | sponsor_makegood_frame | public_contrition_minute | custody_handler | security_lane | equivalent
    quantity_state_before: free | claimed | split | reserved | exhausted | absent | contested | false_available | double_spent | equivalent
    current_owner_or_absence: <owner or explicit_absence>
    protected_boundary_or_absence: <boundary or explicit_absence>
  counterstub:
    counterstub_id: <stable id or explicit_absence>
    counterstub_state: 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
    counterstub_source: paper_stub | archive_scan | sponsor_copy | fan_queue_copy | ward_log | edit_checksum | oral_witness | explicit_absence | equivalent
  competing_claims:
    sponsor_claim_or_absence: <claim or explicit_absence>
    archive_claim_or_absence: <claim or explicit_absence>
    recovery_reader_claim_or_absence: <claim or explicit_absence>
    management_claim_or_absence: <claim or explicit_absence>
  reader_table:
    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>
    minimum_surface_for_desired_reader: <surface>
    minimum_surface_for_excluded_reader: <surface or explicit_absence>
  liability_state:
    blamed_actor_or_absence: <actor or explicit_absence>
    liable_actor_if_unworked: sponsor | archive | management | ward_queue | fan_queue | worker | handler_absence | explicit_absence | equivalent
    scapegoat_risk: none | low | rising | active | locked
  future_route_effect: accepted_with_counterstub | split_required | worker_protected | sponsor_only | archive_only | lawful_only | public_only | recovery_only | blocked | costlier | scapegoat_default | equivalent

The card fails its design role if it stores only inventory_used, sponsor_paid, archive_ok, worker_signed, or a money delta.

Branch memory

Every resolution or default must write a branch memory row:

branch_memory:
  selected_branch: protect_holder | split_counterstub | archive_lock | sponsor_release | recovery_reallocate | refuse_false_stub | scapegoat_default
  holder_state_after: protected | recruited | missed | hostile | unavailable | scapegoated | explicit_absence | equivalent
  counterstub_state_after: held | split | archived | sponsored | quarantined | refused | missing | locked_default | equivalent
  desired_reader_state_after: accepted_with_cost | narrowed | sponsor_only | archive_only | lawful_only | public_only | blocked | recovery_only | equivalent
  excluded_reader_state_after: protected | hostile | blamed | blocked | recovery_only | contradiction_pending | explicit_absence | equivalent
  counter_deltas:
    relief: []
    cost: []
    future: []

Counter surfaces

Recommended durable surfaces:

  • recovery_counterstub_integrity
  • worker_scapegoat_risk
  • recovery_inventory_double_spend_risk
  • sponsor_afteruse_capture
  • archive_counterstub_debt
  • public_receipt_distrust
  • fan_oxygen_resentment
  • ward_air_capacity
  • handler_burden
  • inspection_heat
  • route_recovery_cost

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

Non-goals

  • Not a generic worker card.
  • Not a universal proof receipt.
  • Not a clean sponsor release.
  • Not an archive stamp that erases the person who held the stub.
  • Not a fixed sequence hook.
  • Not a raw inventory counter.