Scar Convergence Desk Lens / 伤痕汇流台 Lens
This lens observes whether 伤痕汇流台线 and 伤痕汇流台机制 correctly make preserved campaign scars converge on a present stabilizer.
The oracle is: a scarred stabilizer is not a universal clean key. If the current route asks for clean use of a handler, proof, public wording, lawful seal, sponsor release, edit checksum, artist boundary, facility room, route asset, or broadcast slot, and preserved source rows make that use dishonest, the implementation must expose a docket, a costed hearing, non-equivalent branch outcomes, and a future reader.
A pass cannot be achieved by adding a late-game penalty, a scar count threshold, a generic backlog, or a summary scene.
Primary observation link
This lens observes:
- 伤痕汇流台线;
- 伤痕汇流台机制;
- 和解反震账本;
- 休眠认领复燃线;
- 反向同盟锁线;
- 裁定读者冲突线;
- 播出破产账本线;
- 导出证据回流分岔线;
- Route Assets and Custody;
- Producer License and Pressure;
- Broadcast Reality.
It is observed through:
Design intent
The existing green corpus already proves local consequences. This lens targets the next execution edge: the same stabilizer can be scarred by several earlier correct decisions, and later content must stop treating it as clean.
This is management + RPG pressure. The player is not auditing a graph. The player is assigning a handler, proof bridge, authority, sacrifice/collateral, protected boundary, and future reader to keep play moving while preserving source scars.
Must pass
1. Entry is state-triggered by clean-use conflict
Required entry evidence:
entry_state:
trigger_kind: state_pressure
current_surface_requests_stabilizer: true
shared_stabilizer_present: true
source_scar_rows_material_to_stabilizer: true
impossible_clean_use: true
future_reader_present: true
player_response_available: true
no_fixed_turn_trigger: true
no_raw_count_trigger_without_conflict: trueThe lens fails if entry comes from a fixed turn, day interval, chapter quota, raw scar count, late-game phase, page count, dashboard state, or lens-health state.
2. Current surface and stabilizer are visible
伤痕汇流案卷 must show:
current_surface:
surface_id: <route/rite/reader/license/ending/public statement/asset use>
requested_clean_use: <what the route wants>
shared_stabilizer:
stabilizer_id: <handler/proof/seal/release/checksum/boundary/room/slot/asset>
stabilizer_type: handler | proof | public_wording | lawful_seal | sponsor_release | edit_checksum | artist_boundary | facility_room | route_asset | broadcast_slot | equivalent
current_state_before: clean_claimed | scarred | narrowed | contested | captured | public_only | lawful_only | recovery_only | contradiction_pending | equivalentThe lens fails if it only says many scars, late pressure, or old debt without a current clean-use request.
3. Source scar rows are preserved and material
The docket must name preserved source rows and explain why each row matters now.
source_scar_rows:
- source_row_id: <row>
source_surface: settlement_aftershock | dormant_claim | adverse_coalition | ruling_reader_collision | broadcast_insolvency | evidence_carryover | ending_scar | handler_burden | equivalent
source_session_id: <durable session id or in-world source id>
scar_state: <state>
claimant_who_paid: <claimant/faction/person>
claimant_harmed_or_deferred: <claimant/faction/person>
future_reader_owed: <reader or explicit_absence>
route_effect_carried: <effect>
conflict_with_stabilizer: <reason>The lens fails if source rows are summarized without source id, scar state, harmed claimant, and conflict with the stabilizer.
4. Conflict kind and default narrator are explicit
The docket must record:
convergence:
conflict_kind: same_handler_overpromised | proof_claims_incompatible_truths | public_wording_vs_lawful_seal | sponsor_release_vs_artist_boundary | edit_checksum_vs_archive_truth | facility_room_vs_public_safety | route_asset_vs_false_owner | broadcast_slot_vs_unpaid_creditor | equivalent
impossible_clean_use: true
default_narrator_if_hidden: sponsor | inspector | archive | editor | fan_public | artist | route_claimant | blackout_system | public_audience | equivalent
future_reader: producer_license | route_asset | public_table | lawful_reader | sponsor_gate | ending_scar | correction_slot | broadcast_reality | equivalentThe lens fails if collapse/default pressure is narratorless.
5. Hearing assignments are explicit
伤痕汇流听证 must require assignment or explicit absence for:
assignment_slots:
selected_convergence_row: <id>
shared_stabilizer: <id>
selected_response: consolidate_with_sacrifice | appoint_scar_trustee | split_future_readers | pawn_clean_route | retire_stabilizer | quarantine_convergence | suppress_and_collapse
handler_or_explicit_absence: <value>
proof_bridge_or_explicit_absence: <value>
authority_or_explicit_absence: <value>
sacrifice_or_collateral_or_explicit_absence: <value>
protected_boundary_or_explicit_absence: <value>
future_reader: <reader>The lens fails if a famous character, sponsor money, legal seal, public outrage, or editor patch solves the convergence without filling a slot.
6. Branches diverge
At least five branch families must be playable or explicitly blocked by state:
- consolidate with sacrifice;
- appoint scar trustee;
- split future readers;
- pawn clean route;
- retire stabilizer;
- quarantine convergence;
- suppress and collapse.
Each branch must differ by stabilizer state after, reader state after, cost surface, and future route effect.
7. No universal clean key
No branch may make every source row, reader, claimant, sponsor, artist boundary, lawful seal, public table, and route asset cleanly satisfied.
Required evidence:
no_universal_clean_key:
source_rows_preserved: true
at_least_one_reader_or_claimant_narrowed_or_costed: true
stabilizer_state_after_not_clean: true
future_route_effect_not_clean_universal: trueThe lens fails if a stabilizer returns to clean or universally accepted.
8. Success has relief, cost, and future reader effect
Every non-collapse 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 cost surfaces include inspection heat, bureau favor debt, sponsor stop-loss pressure, contract capture, public distrust, artist-boundary cost, edit debt, archive debt, source ambiguity, handler burden, facility pressure, broadcast slot scar, future recovery cost, black-screen pressure, and reality drift.
9. Collapse event mutates future play
伤痕汇流塌陷 must fire or be armed when source rows are hidden, harmed claimants are omitted, the hearing is underfilled, false clean use is declared, universal acceptance is claimed, or a default narrator moves first.
Required collapse evidence:
collapse:
event: storyteller.event.scar_convergence_collapse.v1
collapse_cause: <cause>
default_narrator: <narrator>
stabilizer_state_after: false_clean_stabilizer_hardened | captured | hostile | contradiction_pending | quarantined_by_rival | recovery_only | blocked | equivalent
future_reader_effect: producer_license_review | route_blocked | public_table_required | lawful_appeal_required | sponsor_gate_required | ending_costlier | correction_slot_required | broadcast_reality_drift | equivalent
counter_deltas_min: 3The lens fails if collapse is only a cutscene, mood change, money loss, or generic reputation hit.
10. Replay provenance is multi-source but not trigger logic
Passing evidence must include source row ids and session or in-world source ids, but those ids do not trigger the story by themselves. The trigger is the present clean-use conflict.
Minimal evidence shape:
lens: storyteller.lens.scar_convergence_desk.v1
session_id: lens-scar-convergence-desk-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
trigger_kind: state_pressure
current_surface: <surface>
requested_clean_use: <use>
shared_stabilizer: <stabilizer>
impossible_clean_use: true
no_fixed_turn_trigger: true
source_inventory:
source_rows:
- source_row_id: <row>
source_surface: <surface>
source_session_id: <session or in-world source id>
scar_state: <state>
conflict_with_stabilizer: <reason>
- source_row_id: <row>
source_surface: <surface>
source_session_id: <session or in-world source id>
scar_state: <state>
conflict_with_stabilizer: <reason>
offered:
card: storyteller.card.scar_convergence_docket.v1
rite: storyteller.rite.scar_convergence_hearing.v1
branch_result:
selected_response: <branch>
stabilizer_state_after: <state>
reader_states_after: []
future_reader_effect: <effect>
emitted_event: storyteller.event.scar_convergence_collapse.v1 | none_if_valid
counter_deltas:
relief: []
cost: []
future: []
assertions:
entry_state_triggered_by_clean_use_conflict: true
source_rows_preserved_and_material: true
harmed_claimants_visible: true
branches_non_equivalent: true
no_universal_clean_key: true
future_reader_consumes_result: trueProgress metric
scarConvergenceDeskProgress = 0..8:
0: no current clean-use request or no stabilizer.1: shared stabilizer and current surface are visible.2: preserved source scar rows are attached to the stabilizer.3: harmed claimants, conflict kind, default narrator, and future reader are visible.4: 伤痕汇流案卷 enters play.5: 伤痕汇流听证 offers explicit assignment slots.6: at least two non-collapse branches create different stabilizer and reader states.7: collapse/default creates future route or reader cost.8: replay proves multi-source scar convergence with source provenance, selected branch, counter deltas, stabilizer after-state, and future reader consumption.
Failure cases
The lens must fail if any of these are true:
- entry is fixed-turn, fixed-day, chapter quota, raw scar count, or generic late-game phase;
- no current clean-use request exists;
- no shared stabilizer exists;
- source scars are summarized without row ids and material conflict;
- harmed claimants are omitted;
- default narrator is unnamed;
- the hearing lacks handler/proof/authority/collateral/boundary/future-reader slots or explicit absence;
- all branches resolve to the same state;
- success creates a universal clean key;
- collapse does not mutate future route, reader, license, custody, or broadcast reality;
- replay provenance replaces in-world source rows;
- source rows are erased instead of narrowed, preserved, retired, pawned, quarantined, or carried.
Non-goals
- Not a generic replay system.
- Not raw late-game difficulty.
- Not raw count satisfaction.
- Not governance or dashboard methodology.
- Not a filler follow-up scene.
- Not an ending-only scar check.
- Not valid unless the stabilizer, future reader, branch state, and preserved source rows are all visible.