Precedent Drift Registry Lens / 先例漂移登记 Lens
This lens observes whether 先例漂移登记线 and 先例漂移登记机制 correctly make institutional memory playable after a resolved case is cited as precedent.
A passing implementation proves that an oxygen stay, sponsor release, continuity addendum, unserved mandate row, reader-specific ruling, or compressed management metric cannot silently become universal policy. The old branch remains true; the new play is the caption, reader limit, analogy basis, excluded reader, and future route effect of the claimed precedent.
The lens fails if the implementation stores only precedent_ok, policy_set, sponsor_rule, inspection_rule, archive_rule, management_clean, fans_consented, or any other clean global memory flag.
Primary observation link
This lens observes:
- 先例漂移登记线;
- 先例漂移登记机制;
- 先例漂移案卷;
- 先例题名听证;
- 伪先例默认;
- 呼吸追缴扣押线;
- 赞助后用引证线;
- 连续性后用藐视线;
- 执行授权枯竭线;
- 裁定读者冲突线;
- 经营压缩台;
- Broadcast Reality;
- Route Assets and Custody.
It is observed through:
Observable promise
When a resolved source case is later cited as precedent, Storyteller must prove:
- which source surface produced the old case;
- which branch or default happened;
- which source relief remains true;
- which source cost, scar, excluded reader, or future effect remains true;
- which institution is claiming the precedent;
- what rule it claims;
- what new target case or route it affects;
- which analogy basis is being used;
- which reader benefits;
- which reader is excluded, harmed, or explicitly absent;
- which caption posture the player selects;
- which future route, proof, package, public receipt, report, or route asset changes.
The lens fails if the old case is retconned, erased, or accepted as clean precedent without a caption surface.
Must pass
1. Entry is state-triggered from source case plus later claim
entry_state_required:
trigger_kind: state_pressure
source_case_present: true
source_case_branch_resolved_or_defaulted: true
source_cost_or_scar_kept_true: true
later_precedent_claim_present: true
claiming_institution_present: true
target_case_or_route_present: true
desired_new_reader_present: true
excluded_reader_present_or_explicit_absence: true
analogy_basis_visible: true
future_route_or_asset_effect_possible: true
player_can_annotate_narrow_split_counter_quarantine_errata_capture_or_default: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_count_trigger: true
no_dashboard_or_lens_health_trigger: trueThe lens fails if entry opens from numbered turns, day/week interval, chapter quota, content count, dashboard state, lens health, generic sponsor pressure, generic inspection heat, or generic legal review.
2. Source case memory remains visible
先例漂移案卷 or equivalent must preserve the source case:
source_case_required:
source_surface: oxygen_clawback_foreclosure | sponsor_afteruse_citation | continuity_afteruse_contempt | enforcement_mandate_exhaustion | ruling_reader_collision | management_compression | broadcast_insolvency | equivalent
source_case_id: <stable id or explicit_absence>
original_branch: <branch selected or default>
original_reader: <reader or explicit_absence>
protected_reader: <reader or explicit_absence>
harmed_or_excluded_reader: <reader or explicit_absence>
source_relief_kept_true: <relief or explicit_absence>
source_cost_kept_true: <cost or scar>
source_future_effect_kept_true: <future effect>The lens fails if precedent play reopens the source case by erasing its old cost or turns the old branch into a no-op.
3. Precedent claim is concrete
The docket must also record:
precedent_claim_required:
claiming_institution: sponsor_desk | inspection_desk | archive_desk | management_desk | editor_desk | lawful_desk | fan_delegate | route_asset_holder | pirate_relay | equivalent
claimed_rule: <generalized rule>
target_case: <new case or route surface>
analogy_basis: same_reader | same_asset | same_sponsor | same_signature | same_continuity_version | same_refund_shape | same_mandate_dimension | same_public_receipt | weak_similarity | equivalent
desired_new_reader: <reader>
excluded_reader_or_absence: <reader or explicit_absence>
memory_state_before: unregistered | annotated | narrowed | split | appealed | contaminated | captured | quarantine | explicit_absenceThe lens fails if the new claim is only they cite the old case with no target case, analogy basis, or excluded reader.
4. Hearing assignment is explicit
先例题名听证 or equivalent must require:
assignment_required:
docket: storyteller.card.precedent_drift_docket.v1
source_case_id: <stable id or explicit_absence>
source_surface: <surface>
original_branch: <branch>
source_cost_kept_true: <cost or scar>
source_future_effect_kept_true: <effect>
claiming_institution: <institution>
claimed_rule: <rule>
target_case: <case or route>
analogy_basis: <basis>
desired_new_reader: <reader>
excluded_reader_or_absence: <reader or explicit_absence>
selected_posture: annotate_precedent | narrow_scope | split_readers | counter_precedent | quarantine_memory | publish_errata | accept_capture | refuse_default
handler_or_absence: producer | shen_luo | yu_lan | han_yanshuang | baiya | inspector | sponsor_counsel | archive_clerk | fan_delegate | explicit_absence | equivalent
proof_bridge_or_absence: docket_caption | public_footnote | archive_cross_index | reader_split_note | inspection_errata | counter_digest | quarantine_stamp | explicit_absence | equivalent
accepted_cost_surface: <cost or explicit_absence>
future_route_effect: <effect>
no_fixed_turn_trigger: trueThe lens fails if sponsor money, inspector authority, archive custody, editor checksum, management report, or public outrage can set precedent without these assignments.
5. Branches diverge
At least six branch families must be playable or explicitly blocked by state, including one default family:
- annotate precedent;
- narrow scope;
- split readers;
- counter precedent;
- quarantine memory;
- publish errata;
- accept capture;
- false precedent default.
Each branch must differ by:
branch_non_equivalence:
memory_state_after: <different state>
desired_reader_state_after: <different state>
excluded_reader_state_after: <different state>
cost_surface: <different cost>
future_route_effect: <different effect>No branch may create clean universal precedent for sponsor, management, lawful, public, archive, editor, fan, route asset, and broadcast-reality readers.
6. Branch-specific assertions
Annotate precedent
selected_posture: annotate_precedent
relief_any:
- institutional_memory_legible
- false_universal_rule_blocked
cost_any:
- public_receipt_distrust_up
- inspection_heat_up
- handler_burden_up
future_effect_any:
- citation_requires_caption
- accepted_with_scar
forbidden:
- source_scar_deletedNarrow scope
selected_posture: narrow_scope
relief_any:
- target_route_can_use_limited_rule
- weak_similarity_blocked
cost_any:
- future_conversion_cost_up
- sponsor_or_management_pressure_up
future_effect_any:
- narrow_precedent_only
- analogy_check_required
forbidden:
- weak_similarity_as_clean_precedentSplit readers
selected_posture: split_readers
relief_any:
- one_reader_route_unblocked
- excluded_reader_recovery_hook_preserved
cost_any:
- source_ambiguity_up
- route_copies_diverge
future_effect_any:
- split_precedent_required
- universal_acceptance_blocked
forbidden:
- split_as_universal_acceptanceCounter precedent
selected_posture: counter_precedent
relief_any:
- captured_rule_contested
- harmed_reader_visible
cost_any:
- appeal_pressure_up
- bureau_favor_debt_up
future_effect_any:
- contested_precedent
- future_hearing_required
forbidden:
- counter_case_hidden_after_useQuarantine memory
selected_posture: quarantine_memory
relief_any:
- false_rule_spread_blocked
- source_case_preserved
cost_any:
- route_delay_up
- archive_debt_up
future_effect_any:
- quarantine_until_bridge
- recovery_only_for_target_case
forbidden:
- quarantine_as_clean_deletionPublish errata
selected_posture: publish_errata
relief_any:
- public_memory_trust_up
- inspection_or_archive_rule_corrected
cost_any:
- institutional_embarrassment_up
- sponsor_stop_loss_pressure_up
future_effect_any:
- errata_required_for_reuse
- public_only_until_lawful_bridge
forbidden:
- errata_as_free_retconAccept capture
selected_posture: accept_capture
relief_any:
- claiming_institution_pressure_down
- schedule_or_stop_loss_pressure_down
cost_any:
- precedent_capture_up
- excluded_reader_hostility_up
future_effect_any:
- captured_precedent
- captured_reader_gate_required
forbidden:
- capture_record_hiddenFalse precedent default
selected_posture: refuse_default
event_seen_or_armed: storyteller.event.false_precedent_default.v1
false_rule_any:
- fan_absence_equals_future_consent
- sponsor_release_cleans_public_reader
- archive_escrow_equals_ownership
- unserved_mandate_row_never_mattered
- checksum_equals_raw_truth
- scarred_management_metric_was_clean
- one_reader_acceptance_is_universal
future_effect_any:
- false_precedent
- captured_precedent
- contaminated
- hostile_reader
- route_blocked
- recovery_only7. Reader states diverge
Passing evidence must show at least two reader states after resolution, and at least two must differ:
reader_states_after:
sponsor_reader: accepted_with_caption | captured | narrowed | hostile | blocked | explicit_absence | equivalent
management_reader: clean_metric_blocked | contaminated | accepted_with_scar | captured | appeal_armed | explicit_absence | equivalent
lawful_reader: accepted_with_cost | lawful_only | errata_required | blocked | recovery_only | explicit_absence | equivalent
public_reader: accepted_with_footnote | public_only | distrustful | hostile | blocked | explicit_absence | equivalent
archive_reader: cross_index_required | quarantined | ownership_blocked | recovery_only | explicit_absence | equivalent
editor_reader: checksum_limited | raw_truth_blocked | ambiguity_pending | recovery_only | explicit_absence | equivalent
fan_or_artist_reader: consent_required | hostile | recovery_hook_preserved | blocked | explicit_absence | equivalent
route_asset_or_broadcast_reader: accepted_with_cost | route_costlier | captured | blocked | recovery_only | explicit_absence | equivalentThe lens fails if every reader accepts the same institutional memory.
8. Success has relief, cost, and future effect
Every non-default branch must mutate at least three counters or durable states:
counter_deltas_required:
relief: at_least_one
cost: at_least_one
future_reader_or_route_effect: at_least_oneAccepted relief surfaces:
institutional_memory_legible;false_universal_rule_blocked;weak_similarity_blocked;captured_rule_contested;public_memory_trust_up;inspection_or_archive_rule_corrected.
Accepted cost surfaces:
precedent_capture_up;precedent_contamination_up;public_receipt_distrust_up;inspection_heat_up;bureau_favor_debt_up;sponsor_stop_loss_pressure_up;route_copies_diverge;archive_debt_up;source_ambiguity_up;excluded_reader_hostility_up.
Accepted future effects:
citation_requires_caption;analogy_check_required;split_precedent_required;future_hearing_required;quarantine_until_bridge;errata_required_for_reuse;captured_reader_gate_required;recovery_only;route_blocked.
9. Default is durable
伪先例默认 or equivalent must name:
- source surface;
- source case id or explicit absence;
- original branch;
- source cost or scar kept true;
- default actor;
- false rule;
- target case;
- missing caption surface;
- first accepting reader;
- harmed or excluded reader;
- precedent memory state after;
- future route effect;
- at least three deltas.
The default must change future play through route acceptance, sponsor package gating, inspection errata, archive cross-index, legality conversion, management metric contamination, public receipt footnote, route asset recovery, or broadcast reality drift.
10. Future acceptance changes
After resolution, at least one future offer must change acceptance, block reason, surcharge, required bridge, reader label, route state, or recovery requirement.
Valid examples:
- a sponsor package accepts the precedent only with capture label;
- an inspection report requires errata before using the old case;
- an archive proof requires a cross-index before transfer;
- a public receipt requires a footnote;
- a legality conversion is blocked until the analogy is narrowed;
- a route asset remains recovery-only while memory is quarantined;
- a management metric is marked contaminated;
- a broadcast reality readback rejects false precedent.
11. Replay evidence is complete and not trigger logic
Replay evidence may record seed, session id, and source sessions. Eligibility must remain based on resolved source case, later precedent claim, claiming institution, target case, desired reader, excluded reader, analogy basis, and future route effect.
lens_id: storyteller.lens.precedent_drift_registry.v1
result: pass | fail
session_id: lens-precedent-drift-registry-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
trigger_kind: state_pressure
source_case_present: true
source_case_branch_resolved_or_defaulted: true
source_cost_or_scar_kept_true: true
later_precedent_claim_present: true
claiming_institution_present: true
target_case_or_route_present: true
desired_new_reader_present: true
excluded_reader_present_or_explicit_absence: true
analogy_basis_visible: true
no_fixed_turn_trigger: true
offered:
card: storyteller.card.precedent_drift_docket.v1
rite: storyteller.rite.precedent_caption_hearing.v1
docket:
source_surface: <surface>
source_case_id: <id or explicit_absence>
original_branch: <branch>
source_cost_kept_true: <cost>
source_future_effect_kept_true: <effect>
claiming_institution: <institution>
claimed_rule: <rule>
target_case: <case or route>
analogy_basis: <basis>
desired_new_reader: <reader>
excluded_reader_or_absence: <reader or explicit_absence>
branch_runs:
valid_branch:
selected_posture: annotate_precedent | narrow_scope | split_readers | counter_precedent | quarantine_memory | publish_errata | accept_capture
memory_state_before: <state>
memory_state_after: <state>
reader_states_after: {}
counter_deltas:
relief: []
cost: []
future: []
future_route_effect: <effect>
default_branch:
emitted_or_armed_event: storyteller.event.false_precedent_default.v1
false_rule: <rule>
missing_caption_surface: <surface or explicit_absence>
first_accepting_reader: <reader>
harmed_or_excluded_reader: <reader or explicit_absence>
precedent_memory_state_after: false_precedent | captured_precedent | contaminated | hostile_reader | recovery_only | route_blocked
future_route_effect: <effect>