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 | equivalentThe 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_integrityworker_scapegoat_riskrecovery_inventory_double_spend_risksponsor_afteruse_capturearchive_counterstub_debtpublic_receipt_distrustfan_oxygen_resentmentward_air_capacityhandler_burdeninspection_heatroute_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.