Explicit Absence Register Lens / 明示缺席登记 Lens
This lens observes whether 明示缺席登记线 prevents explicit_absence from becoming universal clean proof.
The passing implementation proves that an absence can be valid and still scoped. A future reader must see where the absence came from, what slot it covers, why it is credible or contested, who wants to cite it, who is harmed if it is false, and what future play changes.
Observable Promise
A passing implementation must show:
- source absence row or explicit absence of the row;
- source surface;
- absent slot kind;
- explicit absence claim;
- absence reason;
- proof or recorded lack;
- citing reader or route;
- intended use of absence;
- beneficiary if clean;
- harmed reader or claimant if false;
- selected review posture;
- absence state after;
- future reader or route effect;
- durable default when absence is overfiled as clean proof.
The lens fails if the game records only absent, none, not applicable, waived, explicit_absence, or a missing-field count.
Entry Oracle
entry_state_required:
trigger_kind: state_pressure
source_surface_with_absence_field_present: true
explicit_absence_claim_visible: true
absent_slot_kind_visible: true
absence_reason_or_proof_visible_or_contested: true
citing_reader_or_route_visible: true
intended_use_of_absence_visible: true
harmed_reader_or_claimant_if_false_visible_or_explicit_absence: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_absence_count_trigger: true
no_dashboard_or_lens_health_trigger: trueThe lens must fail if entry is driven by turn number, calendar interval, chapter quota, raw absence count, dashboard state, lens health, generic legal review, or local validation with no future reader.
Docket Oracle
Explicit Absence Docket or equivalent must record:
docket_required:
source_absence_row:
source_absence_row_id: <stable row id or explicit_absence>
source_surface: transcript_redaction | resume_packet | reader_rebuttal | capacity_notice | senior_proxy_overwrite | missing_roll_call | broadcast_signatory | proof_board_snapshot | prep_receipt | route_asset_custody | equivalent
source_state_before: recorded | contested | hidden | protected | false_clean | split_required | recovery_only | equivalent
absent_slot:
absent_slot_kind: affected_party | carrier | keeper | proof_anchor | speaker | claimant | handler | service_recipient | operator_row | signatory | counter_branch | future_reader | route_asset | equivalent
explicit_absence_claim: no_valid_holder | unavailable | unsafe_to_name | refused | not_served | protected_silence | scoped_nonparty | unknown_or_contested | equivalent
absence_reason: protected_silence | unsafe_publicity | lawful_seal | archive_quarantine | scope_mismatch | missed_window | impossible_to_serve | no_valid_holder | unknown_or_contested | equivalent
proof_or_recorded_lack: public_receipt | lawful_annex | archive_stamp | transcript_line | resume_register | notice_return | roll_call_check | operator_docket | signatory_counterclaim | explicit_lack_recorded | equivalent
consumer:
citing_reader_or_route: sponsor | public | lawful_reader | archive | editor | management | fan_public | route_asset | broadcast_reality | equivalent
intended_use_of_absence: proof | service | consent_boundary | signature_boundary | route_unlock | closure | packet_readiness | capacity_reuse | edit_checksum | equivalent
harmed_reader_or_claimant_if_false: <reader claimant person route asset or explicit_absence>
review:
selected_posture: certify_scoped_absence | narrow_absence_reader | substitute_visible_carrier | reopen_notice_or_proof | protect_silence | split_absence_scope | block_clean_absence | false_explicit_absence_default
absence_state_after: <state>
future_reader_or_route_effect: <effect>Rite Oracle
Explicit Absence Review or equivalent must expose:
certify_scoped_absencenarrow_absence_readersubstitute_visible_carrierreopen_notice_or_proofprotect_silencesplit_absence_scopeblock_clean_absencefalse_explicit_absence_default
Each branch must include relief_any, cost_any, and future_effect_any.
Default Oracle
False Explicit Absence Default must record:
false_explicit_absence_default:
false_absence_claim:
consumed_as: proof | service | consent_boundary | signature_boundary | route_unlock | closure | packet_readiness | capacity_reuse | edit_checksum | equivalent
citing_reader_or_route: sponsor | public | lawful_reader | archive | editor | management | fan_public | route_asset | broadcast_reality | equivalent
hidden_or_invalid_absence:
absent_slot_kind: affected_party | carrier | keeper | proof_anchor | speaker | claimant | handler | service_recipient | operator_row | signatory | counter_branch | future_reader | route_asset | equivalent
missing_or_false_surface: no_source_row | no_absence_reason | proof_missing | protected_silence_erased | wrong_reader_scope | harmed_reader_hidden | substitute_carrier_hidden | no_future_effect | equivalent
beneficiary_if_clean: <actor reader route or explicit_absence>
harmed_surface:
harmed_reader_or_claimant: <reader claimant person route asset or explicit_absence>
absence_state_after: false_clean_absence | hostile_absence | protected_silence_breached | substitute_required | notice_required | proof_required | split_required | blocked | recovery_only | contradiction_pending | equivalent
future_reader_or_route_effect: blocked | costlier | hostile | addendum_required | notice_required | proof_required | split_required | lawful_only | public_only | sponsor_only | recovery_only | equivalent
counter_deltas_min: 3The default fails if it is only a warning, local validation error, generic scandal, or reputation tick.
No Universal Clean Absence
No branch may convert one explicit absence into clean universal acceptance.
Required evidence:
no_universal_clean_absence:
source_absence_row_preserved: true
at_least_one_reader_narrowed_or_costed_when_absence_is_cited: true
absence_state_after_not_universal_clean_when_scope_contested: true
future_reader_or_route_effect_not_clean_universal: trueProgress Metric
0: no explicit absence register surface.1: storyline, mechanic, docket, rite, event, lens, and sibling binding exist.2: entry requires state pressure from cited absence and visible future reader.3: docket records source row, absent slot, reason/proof, consumer, harmed reader, and future effect.4: review branches diverge by reader scope, cost, absence state, and future effect.5: false absence default records hidden or invalid absence and mutates future play.6: no absence branch produces universal clean proof.
Replay Evidence Expectation
lens_id: storyteller.lens.explicit_absence_register.v1
session_id: lens-explicit-absence-register-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
trigger_kind: state_pressure
explicit_absence_claim_visible: true
absent_slot_kind_visible: true
citing_reader_or_route_visible: true
no_fixed_turn_trigger: true
offered:
card: storyteller.card.explicit_absence_docket.v1
rite: storyteller.rite.explicit_absence_review.v1
branch_runs:
scoped_success:
selected_posture: certify_scoped_absence | narrow_absence_reader | substitute_visible_carrier | reopen_notice_or_proof | protect_silence | split_absence_scope | block_clean_absence
absence_state_after: <state>
future_reader_or_route_effect: <effect>
counter_deltas:
relief: []
cost: []
future: []
default:
selected_posture: false_explicit_absence_default
event_seen_or_armed: storyteller.event.false_explicit_absence_default.v1Non-Goals
- Not a universal optional-field validator.
- Not a duplicate of local notice, transcript, resume, or service systems.
- Not valid if the absence has no future reader or route effect.