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: required

The 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_budget

freeze_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_required

borrow_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_reduced

convert_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_required

split_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_required

publish_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: costlier

unbudgeted_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.v1

Resolution 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.