Weekly Broadcast Cycle Audit Lens / 七日播出周期审计 Lens
This lens observes whether 七日播出周期审计线 makes the seven-day broadcast loop a future-consuming audit surface.
The passing implementation proves that the end of a week is not just a calendar event. A future reader must see cycle window, forced main slot, license table, active schedule rows, prep or embedded rows, premiere results, blackout rows, legacy state, audit reader, and future effect before the next cycle can consume the result.
Observable Promise
A passing implementation must show:
- cycle window;
- forced main slot;
- license slots before audit;
- active side slots;
- prep rows and embedded slots or explicit absence;
- premiere results or pending premiere state;
- audit reader;
- blackout rows or explicit absence;
- legacy choice or explicit absence;
- selected audit posture;
- cycle state after;
- license state after;
- future reader or route effect;
- durable default when a false-clean cycle closes.
The lens fails if the game records only day == 7, cycle_complete, week_closed, all_airings_resolved, license_released, dashboard health, or lens health.
Entry Oracle
entry_state_required:
trigger_kind: state_pressure
cycle_window_visible: true
forced_main_slot_visible: true
license_slot_state_visible: true
active_schedule_rows_present: true
prep_or_embedded_rows_present_or_explicit_absence: true
premiere_results_present_or_pending: true
audit_reader_present: true
unresolved_blackout_or_legacy_pressure_present_or_explicit_absence: true
future_cycle_consumes_audit_state: true
no_fixed_turn_trigger: true
no_raw_day_count_trigger: true
no_dashboard_or_lens_health_trigger: trueThe lens must fail if entry is driven by turn number, raw day count, dashboard state, lens health, weekly recap, or generic chapter boundary with no future consumer.
Ledger Oracle
Weekly Broadcast Cycle Ledger or equivalent must record:
ledger_required:
source_cycle:
cycle_id: <cycle>
cycle_window: <window>
audit_reader: <reader>
cycle_state_before: <state>
license:
license_slots_before: <table>
forced_main_slot:
slot_id: <slot>
schedule_contract: <contract or explicit_absence>
service_state: <state>
side_slots: []
cycle_rows:
prep_rows: []
embedded_slots: []
premiere_results: []
audit:
selected_posture: certify_clean_rollover | carry_scarred_success | quarantine_blackout_slot | convert_legacy_card | force_main_overflow | split_cycle_memory | cycle_blackout_default
blackout_rows: []
legacy_choice_or_absence: <legacy or explicit_absence>
cycle_state_after: <state>
license_state_after: <state>
future_reader_or_route_effect: <effect>Rite Oracle
Weekly Broadcast Cycle Audit or equivalent must expose:
certify_clean_rollovercarry_scarred_successquarantine_blackout_slotconvert_legacy_cardforce_main_overflowsplit_cycle_memorycycle_blackout_default
Each branch must include relief_any, cost_any, and future_effect_any.
Default Oracle
Cycle Blackout Default must record:
cycle_blackout_default:
false_cycle_closure:
consumed_as: next_cycle_seed | license_release | route_unlock | legacy_selection | audit_pass | equivalent
audit_reader: company | algorithm | sponsor | public | lawful_reader | archive | resistance | broadcast_reality | equivalent
hidden_or_unserved_rows:
forced_main_slot: missing | unserved | partial | overflow_hidden | blacked_out | explicit_absence | equivalent
side_slot_rows: hidden | folded_without_cost | embedded_false_clean | explicit_absence | equivalent
prep_or_premiere_rows: hidden | out_of_scope | unpriced | false_shared | explicit_absence | equivalent
blackout_or_legacy_rows: hidden | unquarantined | unconverted | overclean | explicit_absence | equivalent
harmed_surface:
default_narrator: company | algorithm | sponsor | public | lawful_reader | archive | resistance | broadcast_reality | equivalent
license_state_after: polluted | falsely_released | frozen | overflowed | hostile | recovery_only | equivalent
future_cycle_effect: forced_main_overflow | blocked_side_slot | blackout_pollution | legacy_debt | public_addendum | route_costlier | hostile_reader | recovery_only | equivalent
counter_deltas_min: 3The default fails if it is only a warning, day-end loss, UI validation error, generic scandal, or route tag mutation with no cycle state.
No Day-Count Clean Week
No branch may make the week clean only because a date boundary passed.
Required evidence:
no_day_count_clean_week:
cycle_window_preserved: true
forced_main_slot_read: true
license_state_after_visible: true
at_least_one_row_costed_or_explicitly_absent_when_contested: true
future_cycle_consumes_audit_state: true
no_raw_day_count_trigger: trueProgress Metric
0: no weekly cycle audit surface.1: storyline, mechanism link, ledger, rite, event, lens, and sibling binding exist.2: entry requires state pressure from cycle close and visible future consumer.3: ledger records source cycle, forced main, license rows, cycle rows, audit posture, and future effect.4: audit branches diverge by license state, cycle state, cost, and future effect.5: default records false cycle closure, hidden rows, default narrator, license state after, and future cycle effect.6: no raw day count or dashboard state can close the week cleanly.
Replay Evidence Expectation
lens_id: storyteller.lens.weekly_broadcast_cycle_audit.v1
session_id: lens-weekly-broadcast-cycle-audit-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
trigger_kind: state_pressure
cycle_window_visible: true
forced_main_slot_visible: true
license_slot_state_visible: true
future_cycle_consumes_audit_state: true
no_fixed_turn_trigger: true
offered:
card: storyteller.card.weekly_broadcast_cycle_ledger.v1
rite: storyteller.rite.weekly_broadcast_cycle_audit.v1
branch_runs:
scoped_success:
selected_posture: certify_clean_rollover | carry_scarred_success | quarantine_blackout_slot | convert_legacy_card | force_main_overflow | split_cycle_memory
cycle_state_after: <state>
license_state_after: <state>
future_reader_or_route_effect: <effect>
counter_deltas:
relief: []
cost: []
future: []
default:
selected_posture: cycle_blackout_default
event_seen_or_armed: storyteller.event.cycle_blackout_default.v1Non-Goals
- Not a weekly recap.
- Not a daily action-point validator.
- Not a dashboard health lens.
- Not a duplicate of on-screen slot readback.
- Not valid unless the next cycle consumes the audit state.