Stale Dispatch Recall / 过期派发召回机制
Stale Dispatch Recall is the mechanism for local instruction drift after the authoritative state changes.
Storyteller has strong surfaces for deciding boundaries, redactions, reader recognition, availability scope, and enforcement load. This mechanism covers the next gap: the old instruction may already be in someone’s hand.
A valid implementation must prove that a changed boundary does not automatically rewrite every call sheet, cutroom mark, sponsor copy, public script, ward order, runner note, pirate packet, proof tag, or route-asset handoff.
Entry contract
Open from state pressure only:
entry_state:
trigger_kind: state_pressure
source_decision_or_boundary_changed: true
source_history_preserved: true
stale_instruction_issued_under_old_state: true
stale_instruction_still_actionable: true
holder_or_recipient_present_or_explicit_absence: true
future_reader_or_route_can_be_affected: true
recall_channel_available_or_explicit_absence: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_count_trigger: trueThe mechanism fails if it opens because a fixed turn, day, week, chapter quota, content count, dashboard state, or generic maintenance phase arrived.
State machine
stale_dispatch_states:
no_stale_instruction:
meaning: no old instruction can still execute
stale_instruction_detected:
meaning: old instruction exists but recall has not been assigned
recall_open:
meaning: player can select channel handler acknowledgement and cost
partially_acknowledged:
meaning: at least one recipient received recall and at least one remains stale or explicit absence
fully_recalled_with_cost:
meaning: affected recipients have acknowledgements and costs are recorded
split_recall:
meaning: readers are scoped differently and not universally clean
stale_executed:
meaning: old instruction executed or was cited
false_execution:
meaning: stale instruction became the operative reality for at least one reader
recovered_with_scar:
meaning: false execution was repaired but future use is narrowed or costlier
recovery_only:
meaning: old execution blocks clean route useRequired data surface
过期派发案卷 must record source change, old instruction, holder, stale action, affected readers, acknowledgement requirement, handler or explicit absence, and default.
The implementation must preserve both states:
source_history:
old_instruction_issued_under_state: <old state>
new_state_after_source_change: <new state>
old_instruction_not_erased: trueThe old instruction must be an object or row, not narration.
Assignable rite
过期派发召回 must require:
- the docket;
- the source decision or boundary;
- the stale instruction;
- holder or explicit absence;
- recall channel;
- handler or explicit absence;
- acknowledgement surface or explicit absence;
- protected reader;
- reader left stale or explicit absence;
- accepted cost;
- future reader or route effect.
A universal notify all branch is valid only when every affected recipient records an acknowledgement and the branch pays cost on schedule, handler burden, proof burden, public confusion, sponsor pressure, inspection heat, edit debt, runner risk, crew load, or equivalent.
Branch families
Live-floor recall
Covers old call sheets, stage marks, floor gates, ward movement, crowd cues, recovery orders, and proof handoffs.
Expected result: wrong local execution risk falls; crew load, schedule pressure, or public confusion rises; future acceptance requires floor acknowledgement.
Cutroom recall
Covers scratch cuts, redaction marks, checksum tags, source labels, blackout delay masks, and final-air queues.
Expected result: final-air integrity improves; edit debt, source ambiguity, or proof burden rises; future readers reject unpatched stale cuts.
Lawful recall
Covers inspector, archive, ward, custody order, proof chain, and admissibility surfaces.
Expected result: lawful acceptance improves; public delay, bureau debt, or inspection heat rises; public reader may require addendum.
Sponsor recall
Covers sponsor copy, budget promises, preview clauses, package wording, and management clean reporting.
Expected result: false private promise falls; sponsor retaliation, contract capture, or public distrust rises; public use is costlier.
Public recall
Covers public script, fan delegate line, audience gate notice, public admission, pirate-correcting statement, and visible addendum.
Expected result: public legitimacy improves; panic, witness exposure, sponsor heat, or lawful addendum cost rises.
Runner or route-asset recall
Covers low-rank carriers, corridor notes, proof tags, route-asset handoffs, and physical custody movement.
Expected result: misdelivery risk falls; runner risk, payroll leak, favor debt, or custody noise rises.
Split recall
Covers partial recall where one reader can proceed and another remains scoped, delayed, or stale.
Expected result: immediate route may proceed; source ambiguity, handler burden, correction pressure, or future recovery cost rises.
Stale execution default
Covers unacknowledged, hidden, underfilled, or intentionally accepted stale execution.
Expected result: 过期派发执行 fires or is armed; future route is blocked, captured, costlier, or recovery-only.
Counter contract
Every branch must mutate at least one relief, one cost, and one future route or reader effect.
counter_contract:
relief_min: 1
cost_min: 1
future_reader_or_route_effect_min: 1Recommended counters and states:
stale_dispatch_riskfalse_executionfinal_air_integritycustody_clarityreader_acceptance_scopedschedule_pressurehandler_burdenproof_burdenpublic_confusionsponsor_stop_loss_pressureinspection_heatedit_debtsource_ambiguityrunner_riskcrew_loadroute_asset_pressurefuture_route_acceptance
Integration boundaries
- With 认领告知顺序线, briefing asks who learns first before or during a pending action. Stale dispatch asks whether old local instructions are recalled after the state changes.
- With 裁定读者冲突线, reader collision asks how future readers interpret a valid row. Stale dispatch asks whether recipients still execute the superseded row.
- With 可用性读者冲突线, availability collision scopes access. Stale dispatch catches old access orders still moving bodies, slots, or route assets.
- With 预播排练污染线, preair contamination decides whether a draft trace becomes pseudo-real. Stale dispatch catches old rehearsal instructions after the boundary is decided.
- With 通告单负荷账本, call sheet load asks whether there are enough people to run a slot. Stale dispatch asks whether those people hold the current instruction.
- With Stale Dispatch Afteruse Receipt, this mechanism answers the first recall question, while afteruse receipt answers whether a later reader can spend the recall row as clean authority.
Non-goals
- Not an implementation governance checklist.
- Not a generic communications system.
- Not a fixed upkeep phase.
- Not a raw-count objective.
- Not a replacement for enforcement load, reader collision, or claimant notice.
- Not valid unless stale execution changes a future reader, route, custody chain, broadcast state, or recovery scar.