Recovery Inventory Triage / 复原库存分诊线
Recovery Inventory Triage is a pressure storyline for the moment when multiple crisis systems try to spend the same scarce recovery capacity.
It extends the current mesh without duplicating it. 赞助补偿库存线 asks what the sponsor receives after delivery shortfall. 复原病房出院压迫线 asks whether a recovering body can be used. 认领人现场接待线 asks whether a claimant row physically reaches the floor. 经营压缩台 asks whether costly success is being counted as clean yield. This storyline asks the shared-inventory question: when sponsor, public, archive, ward, editor, floor, and management all want the same recovery surface, which row is spent and which future reader inherits the scar?
The storyline binds 复原库存分诊机制, 复原库存账本, 复原库存分配, and 复原库存夺取默认.
Why this is the next useful expansion
The vault already has many strong consequences, but most are local to their own docket. That creates a future implementation risk: one correction slot can save sponsor delivery, one ward air bed can restore a performer, one oxygen reserve can calm fans, and one checksum lane can fix archive proof — all in separate successful branches — unless a shared row prevents double spending.
This storyline turns recovery capacity into named inventory with owners and readers. It is high value because it forces management RPG choices without raw count expansion:
- a future slot used for sponsor makegood cannot also be free correction capacity;
- ward air used for a pressured appearance cannot also be clean recovery protection;
- fan oxygen reserve used as public benefit cannot also satisfy a sponsor floor;
- archive proof window used for lawful proof cannot also be an edit shortcut;
- crew rest used to keep the floor open cannot also make management efficiency clean;
- public contrition airtime cannot be both sponsor apology and claimant receipt without a split scar.
Primary playable question
When finite recovery inventory is contested, does the producer:
- allocate one row to the most urgent demand;
- split the row into escrowed partial uses;
- reserve it for a protected future reader;
- borrow forward from future capacity;
- convert it into public oxygen / public receipt;
- convert it into sponsor makegood;
- convert it into lawful proof;
- refuse and record the double-spend attempt;
- quarantine the row;
- let sponsor, schedule, management, archive, ward, fan oxygen, editor, or handler absence file first?
Every answer must name the primary reader, the excluded/scoped reader, the inventory state after, and the future route effect.
State-triggered entry
Open this storyline when all conditions below are true:
entry_state:
trigger_kind: state_pressure
finite_recovery_inventory_present_or_absent: true
competing_demands_min: 2
shared_inventory_or_explicit_absence_visible: true
future_readers_min: 2
default_if_unworked_present: true
player_can_allocate_split_reserve_borrow_quarantine_refuse_or_default: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_count_trigger: trueThe storyline must not open from fixed turn count, fixed day/week interval, chapter quota, raw content count, dashboard state, lens health, generic low morale, or generic budget shortage.
Content pack
Mechanic
- 复原库存分诊机制 defines finite inventory rows, competing demand rows, allocation modes, default capture, counters, and replay evidence.
Card
- 复原库存账本 records source pressure, inventory rows, competing demands, future readers, selected allocation, excluded reader, and future route effect.
Rite
- 复原库存分配 assigns priority, split escrow, reservation, forward borrowing, public conversion, sponsor conversion, lawful conversion, refusal, quarantine, or default.
Event
- 复原库存夺取默认 fires or arms when inventory is hidden, double-spent, absent-but-filed, or captured by an institution first.
Storyline spine
Beat 1 — Scarce recovery row becomes visible
A prior branch or current pressure names a finite row:
- correction slot;
- ward air or protected recovery bed;
- fan oxygen reserve;
- crew rest shift;
- archive proof window;
- edit checksum lane;
- sponsor makegood frame;
- public contrition minute;
- custody handler;
- security lane.
The row must have a quantity state, current owner or explicit absence, protected boundary or explicit absence, and at least one future reader.
Beat 2 — Competing demands collide
At least two demands target the same row or incompatible recovery rows. Examples:
- sponsor makegood wants the future correction slot while broadcast reality needs it for public correction;
- fan oxygen refund wants the oxygen reserve while management wants to show audience stability;
- ward air protects an artist while sponsor package wants a live appearance;
- archive proof window is needed by lawful custody while cutroom wants it as an edit checksum lane;
- crew rest shift is required for floor safety while claimant intake wants an escort lane;
- public contrition minute is demanded by a claimant and by sponsor stop-loss copy.
Beat 3 — Ledger opens
Create 复原库存账本. The ledger must name inventory row, demands, primary reader, excluded/scoped reader, protected boundary, support/proof, default, and future route effect.
Beat 4 — Allocation rite prices the scar
Run 复原库存分配. The player chooses allocation mode and assigns who receives, who is scoped/excluded, which proof or support exists, and which future route reads the result.
The rite must not allow a clean money payment or clean KPI to produce universal acceptance.
Beat 5 — Capture default hardens false-clean inventory
If ignored or underfilled, 复原库存夺取默认 records capture actor, captured use, hidden demand, excluded reader, false-clean claim, and future effect. This can feed management appeal, reader collision, sponsor unwind, public-only bridge, lawful proof gate, recovery-only route, or correction-slot debt.
Branch map
| Branch | Immediate relief | Cost/scar | Future state |
|---|---|---|---|
| Priority allocation | selected demand receives finite row | excluded demand hostile/blocked/narrowed | accepted with cost; excluded reader scar |
| Split escrow | two demands receive scoped partial use | ambiguity, proof burden, handler load | split_required or collision_ready |
| Reserve boundary | future reader/body boundary protected | current sponsor/schedule/public pressure rises | future route preserved but current route narrows |
| Borrow forward | current crisis stabilizes | future capacity becomes costlier/exhausted | future slot debt or recovery-only row |
| Public oxygen conversion | public/fan legitimacy improves | sponsor hostility, audit, fan resentment | public_only bridge or oxygen audit |
| Sponsor makegood conversion | sponsor pressure narrows | contract capture, public distrust, artist/claimant cost | sponsor_only or unwind_required |
| Lawful proof conversion | archive/inspection/custody clarity improves | public delay, sponsor hostility, edit debt | lawful_only or checksum_required |
| Refuse and record | false double-spend blocked | immediate pressure, handler burden | disputed, costlier, or recovery-only |
| Quarantine | unsafe use prevented | route delayed or correction slot lost | quarantine_receipt_required |
| Default capture | institution files first | hidden demand, false-clean claim | blocked, costlier, sponsor_only, public_only, lawful_only, recovery_only, or collision_ready |
Character and faction hooks
- Sponsor Makegood Inventory can demand a future slot, sponsor frame, or public contrition minute.
- Recovery Ward Discharge Pressure can contest ward air, body boundary, and proxy release.
- Claimant Floor Intake can contest floor lane, handler, security lane, or public receipt capacity.
- Live Floor Crew Load can contest crew rest and runner capacity.
- Cutroom Priority Queue can contest edit checksum lane and proof window.
- Management Compression Desk can try to file allocation as clean efficiency, forcing a false-clean metric scar.
Missability and recovery
The storyline is missed when implementation:
- treats recovery capacity as abstract money, morale, or free cooldown;
- records only one demand with no explicit absence;
- lets one row satisfy every reader;
- hides excluded reader;
- lets sponsor, legal, archive, edit, management, schedule, public, or handler authority replace finite row assignment;
- double-spends ward air, oxygen reserve, correction slot, proof window, crew rest, public contrition, or custody handler;
- files absent inventory as available;
- produces no future route effect;
- opens from fixed turn/day/week/chapter/count/lens health.
Recovery is allowed only through a visible scar: split escrow, public addendum, lawful proof gate, sponsor unwind, route recovery surcharge, quarantine receipt, future slot debt, handler burden, fan oxygen refund audit, or recovery-only route.
Replay evidence expectation
storyline_id: storyteller.storyline.recovery_inventory_triage.v1
session_id: lens-recovery-inventory-triage-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
trigger_kind: state_pressure
finite_recovery_inventory_present_or_absent: true
competing_demands_min: 2
shared_inventory_or_explicit_absence_visible: true
future_readers_min: 2
no_fixed_turn_trigger: true
offered:
card: storyteller.card.recovery_inventory_ledger.v1
rite: storyteller.rite.recovery_inventory_allocation.v1
ledger:
inventory_rows:
- inventory_id: <row>
inventory_kind: <kind>
quantity_state: <state>
current_owner_or_absence: <owner_or_absence>
competing_demands:
- demand_id: <demand-a>
requester: <requester>
requested_inventory: <inventory>
future_reader: <reader>
- demand_id: <demand-b>
requester: <requester>
requested_inventory: <inventory>
future_reader: <reader>
branch_runs:
allocation_branch:
allocation_mode: priority_allocate | split_escrow | reserve_boundary | borrow_forward | convert_to_public_oxygen | convert_to_sponsor_makegood | convert_to_lawful_proof | refuse_and_record | quarantine
selected_inventory_or_absence: <inventory>
primary_reader_state_after: <state>
excluded_reader_state_after: <different state>
inventory_state_after: <state>
future_route_effect: <effect>
counter_deltas:
relief: []
cost: []
future: []
default_branch:
event_seen_or_armed: storyteller.event.recovery_inventory_capture_default.v1
capture_actor: <actor>
captured_use: <use>
hidden_or_excluded_demand: <demand>
excluded_reader: <reader>
false_clean_claim: <claim>
future_route_effect: <effect>
assertions:
- entry_is_state_triggered
- finite_inventory_row_or_explicit_absence_visible
- competing_demands_and_future_readers_visible
- ledger_records_owner_boundary_primary_and_excluded_readers
- allocation_branches_diverge
- no_clean_double_spend
- default_names_capture_actor_hidden_demand_and_excluded_reader
- future_route_consumes_inventory_state
- no_fixed_turn_triggerNon-goals
- Not raw content-count expansion.
- Not a global economy layer.
- Not a management governance checklist.
- Not sponsor makegood, recovery ward, claimant intake, live floor, or cutroom priority alone.
- Not valid unless the finite recovery row changes downstream playable state.