Prep Action Budget Overdraft Lens

This lens observes whether daily prep work is implemented as visible budget authority instead of raw action count or clean readiness.

Entry Oracle

The packet must open from a future reader trying to consume prep work whose day budget is contested:

entry_state:
  trigger_kind: state_pressure
  source_prep_day_row_present: true
  base_action_budget_visible: true
  consumed_actions_visible: true
  frozen_or_borrowed_actions_visible: true
  requested_future_slot_visible: true
  harmed_reader_or_explicit_absence_visible: true
  future_reader_consumes_prep_budget_state: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_action_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

The lens fails if the entry is a timer, calendar cleanup, raw action count, dashboard warning, or lens-health check.

Bound Packet

The lens expects these pages:

Checks

1. Budget and output are separate

The docket must name:

prep_action_budget_docket:
  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
  budget_state_after: required
  future_reader_or_route_effect: required

2. Branches diverge

The readback must expose all branch families:

  • certify_remaining_budget;
  • freeze_contaminated_action;
  • borrow_next_day_action;
  • convert_to_rehearsal_debt;
  • split_budget_by_slot;
  • publish_overdraft_scar;
  • unbudgeted_prep_default;
  • future_effect_any.

3. Default mutates future play

The default event must record:

unbudgeted_prep_default:
  false_prep_budget_claim: true
  hidden_or_invalid_budget_state: required
  capturing_reader: required
  harmed_or_omitted_reader: required
  budget_state_after: required
  future_reader_effect: required
  counter_deltas_min: 3
  durable_mutation: true

4. Runtime rollup status is explicit

This is a direct-wiki contract. It is bound for evaluator coverage now and should be promoted into playable game-content objects when the preparation action runtime rollup is refreshed.

Adjacency

This lens owns only the missing read between the day’s prep budget and future consumption.