Prep Action Budget Readback
Prep Action Budget Readback resolves a docketed attempt to consume prep work when the daily action budget is contested.
Required Assignment
prep_action_budget_readback:
docket: storyteller.card.prep_action_budget_docket.v1
source_prep_day_row: required
base_action_budget: required
actions_spent_this_day: required
frozen_action_source_or_absence: required
borrowed_action_source_or_absence: required
requested_future_slot: required
prep_output_claimed: required
harmed_reader_or_absence: required
prior_budget_text_or_absence: required
selected_budget_posture: required
future_reader_or_route_effect_before: requiredThe readback is invalid if the assignment contains only a prep result and a slot name.
Branches
certify_remaining_budget
Use when the day still had enough visible budget to create the claimed output.
certify_remaining_budget:
relief: prep_output_certified_inside_day_budget
cost: non_named_outputs_still_need_day_rows
budget_state_after: certified_remaining_budget
future_reader_or_route_effect: accepted_with_budget
future_effect_any: accepted_with_budgetfreeze_contaminated_action
Use when the output exists but one action was frozen by audit, blackout, power, crew, or sponsor pressure.
freeze_contaminated_action:
relief: contaminated_action_named
cost: requested_future_slot_cannot_consume_until_source_clears
budget_state_after: frozen_action
future_reader_or_route_effect: freeze_required
future_effect_any: freeze_requiredborrow_next_day_action
Use when production lets the output stand by spending tomorrow’s budget now.
borrow_next_day_action:
relief: prep_output_stands_with_borrowed_budget
cost: next_day_action_budget_reduced
budget_state_after: borrowed_against_tomorrow
future_reader_or_route_effect: next_day_reduced
future_effect_any: next_day_reducedconvert_to_rehearsal_debt
Use when rehearsal, coverage, or dispatch can stand only as debt.
convert_to_rehearsal_debt:
relief: coverage_or_rehearsal_allowed_as_debt
cost: future_rehearsal_or_crew_check_becomes_costlier
budget_state_after: rehearsal_debt
future_reader_or_route_effect: debt_check_required
future_effect_any: debt_check_requiredsplit_budget_by_slot
Use when the same day budget is being claimed by main slot, side slot, route move, and public reader at once.
split_budget_by_slot:
relief: slot_budget_segments_named
cost: unnamed_slots_cannot_inherit_clean_readiness
budget_state_after: split_by_slot
future_reader_or_route_effect: split_required
future_effect_any: split_requiredpublish_overdraft_scar
Use when the over-spend should remain public and surchargeable instead of hidden.
publish_overdraft_scar:
relief: overdraft_source_and_beneficiary_named
cost: sponsor_public_or_lawful_reader_can_surcharge_later
budget_state_after: overdraft_scar
future_reader_or_route_effect: costlier
future_effect_any: costlierunbudgeted_prep_default
Use when the future reader already consumed or will consume the output without valid budget authority.
unbudgeted_prep_default:
relief: none
cost: false_clean_readiness_becomes_future_debt
budget_state_after: unbudgeted_default
future_reader_or_route_effect: recovery_only
future_effect_any: costlier_or_recovery_only
emits_event: storyteller.event.unbudgeted_prep_default.v1Resolution Requirements
Every non-default branch must emit:
- one relief surface;
- one cost surface;
budget_state_after;future_reader_or_route_effect;- a note about which future reader still cannot consume the raw prep result.
Every default or scar branch must move at least three counters or route flags: schedule friction, crew fatigue, public trust, sponsor exposure, lawful friction, route cost, rehearsal debt, blackout pressure, or management metric hostility.