Audience Grievance Merge Register / 观众申诉并案登记线
Audience Grievance Merge Register is the storyline for a management pressure seam that appears after a crisis has generated multiple similar audience-facing grievances.
The producer is not only deciding whether complaints are true. The producer is deciding whether unlike harms can be merged into one incident key without erasing a cohort, contaminating proof, or creating a false clean closure for a future reader.
Executable v1 packet and design envelope
The 2026-07-18 runtime is one fixed Storyteller incident-key case. It is not evidence that every source surface, cohort family, proof carrier, or future reader listed later on this page is already generated dynamically.
| Fixed field | Executable v1 value |
|---|---|
| Register | audience.merge.blackout.09 |
| Source / incident | crisis_ledger / blackout.incident.09 |
| Cohort one | caption_access_row_09; caption_user; miscaption; caption_log_09; named_scope |
| Cohort two | fan_oxygen_row_09; oxygen_holder; oxygen_loss; oxygen_row_09; batch_scope |
| Clean-merge beneficiary | stability_table |
| Harmed if merged cleanly | caption_user |
| Future reader / effect | public_contrition / public_addendum_required |
| Default risk | proof_carrier_contamination |
The broader source, cohort, harm, carrier, reader, and route enumerations below remain the design envelope for future compatible rows. The fixed row above is the runtime claim proved now.
The rite requires these nine exact in-hand assignments; no card may substitute for another:
| Slot | Exact card ID |
|---|---|
register | storyteller.card.audience_grievance_merge_register.v1 |
source_surface | storyteller.card.audience_grievance_source_surface.v1 |
incident_key | storyteller.card.audience_grievance_incident_key.v1 |
cohort_one | storyteller.card.audience_grievance_caption_cohort_row.v1 |
cohort_two | storyteller.card.audience_grievance_oxygen_cohort_row.v1 |
beneficiary | storyteller.card.audience_grievance_clean_merge_beneficiary.v1 |
harmed_reader | storyteller.card.audience_grievance_harmed_reader.v1 |
future_reader | storyteller.card.audience_grievance_future_reader.v1 |
handler | storyteller.card.audience_grievance_merge_handler.v1 |
The selected posture is an explicit rite choice, not a tenth assignment. The eight stable choices are indexed exactly:
| Index | Option ID | State after | Future effect |
|---|---|---|---|
0 | merge_as_one_scoped | merge_as_one_scoped | public_addendum_required |
1 | split_by_harm | split_by_harm | multiple_remedies_visible |
2 | split_by_reader | split_by_reader | reader_specific_routes_required |
3 | representative_lead | representative_lead_scoped | counterreceipt_rights_reserved |
4 | reject_duplicate_with_scar | rejected_duplicate_with_scar | counterreceipt_armed |
5 | publish_conflict | conflict_published | correction_conflict_note_required |
6 | quarantine_proof | quarantined_for_proof_recheck | oxygen_and_caption_recheck_required |
7 | default_clean_merge | false_clean_pending | recovery_only |
Only choice 7 arms audience_grievance_merge.default_pending, storyteller.event.overmerged_grievance_default.v1.armed, and future_route.overmerged_grievance_recovery_pending. A missing assignment, wrong-card substitution, assigned card absent from hand, omitted choice, or repeated review after resolution fails without arming any of those default markers. The default event then exposes exactly five terminal choices: false_duplicate_denial, universal_representative_closure, public_apology_overreach, proof_carrier_contamination, and broadcast_reality_false_closure.
This packet decides only the grouping of the named incident key while preserving the cohort, harm, and proof rows. It does not perform claimant intake, convert crisis-ledger relief or debt, stabilize audience attention, audit proof lineage, grant or audit representative mandate, decide route-asset ownership, assign an answerability seat, or resolve a downstream counterreceipt challenge. It grants no universal merge, representation, proof equivalence, clean closure, consent, or universal route authority.
Gap this storyline fills
Existing content already covers claimant intake, crisis ledger reconciliation, audience stability, fan token custody, public contrition, blackout residue, and counterreceipts. What remains thin is the operational merge edge between those systems.
Without this storyline, the game can regress in two ways:
- every complaint becomes a raw queue item and management pressure turns into count noise;
- similar complaints are collapsed into one clean incident, making minority harm, alternate proof, excluded fans, caption/access injuries, lawful readers, or future counterreceipts disappear.
Audience Grievance Merge Register makes the merge itself playable.
Primary playable question
When multiple audience, fan, claimant, witness, caption, oxygen, access, or public-receipt grievances appear to describe the same crisis, who may be represented by one incident key, who is harmed by that representation, and which future route must consume the merge scar?
A valid answer must change future play. The result may become a scoped merge, split-by-harm, split-by-reader, representative lead, rejected duplicate with scar, published conflict, quarantined proof, or overmerged default.
State-triggered entry
Open this storyline only from live state pressure:
entry_state:
trigger_kind: state_pressure
source_surface_present: true
source_surface_any:
- crisis_ledger
- claimant_floor
- fan_oxygen
- audience_stability
- blackout_residue
- fan_token
- public_contrition
- receipt_counterclaim
- caption_access
- route_asset
- equivalent
grievance_cohorts_min: 2
incident_key_or_explicit_absence_present: true
harm_types_visible_or_explicit_absence: true
proof_carrier_visible_or_explicit_absence_for_each_cohort: true
proposed_merge_would_change_future_play: true
clean_merge_beneficiary_visible_or_explicit_absence: true
harmed_if_merged_cleanly_visible_or_explicit_absence: true
future_reader_or_route_consumes_merge_state: true
player_can_merge_split_lead_reject_publish_quarantine_or_default: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_complaint_count_trigger: true
no_dashboard_or_lens_health_trigger: trueInvalid entries include a fixed turn number, chapter quota, raw complaint count, dashboard alert, generic sentiment score, or lens-health state.
Content pack
Mechanic
- 观众申诉并案登记机制 defines merge states, valid postures, counter contracts, invalid clean closures, and replay evidence.
Card
- 观众申诉并案登记 records the cluster, cohorts, harm types, proof carriers, proposed merge, clean-merge beneficiary, harmed cohort, future consumer, and route effect.
Rite
- 观众申诉并案复核 lets the producer merge, split, lead, reject, publish, quarantine, or default the cluster.
Event
- 过度并案默认 becomes eligible only after the complete review explicitly selects choice
7; its five terminals record which false-clean interpretation a later apology, correction, recheck, counterreceipt, or broadcast reader inherits.
Storyline spine
Beat 1 — Similar grievances arrive from different surfaces
The floor presents a cluster. The rows look close enough to merge: same blackout, same apology, same egress bottleneck, same oxygen ledger dispute, same fan token batch, same caption failure, same public contrition, or same crisis ledger row.
The game must expose at least two cohorts before resolution.
Beat 2 — The merge question becomes concrete
The cluster enters 观众申诉并案登记.
The register must name the alleged incident key, the harm type for each cohort, proof carriers or explicit absence, the clean-merge beneficiary, and the harmed reader if the cluster is merged cleanly.
Beat 3 — The producer chooses a merge posture
观众申诉并案复核 offers branches such as:
- merge as one with scope;
- split by harm;
- split by reader;
- appoint representative lead;
- reject duplicate with scar;
- publish conflict;
- quarantine proof;
- default clean merge.
A generic dedupe, resolve all, mark handled, merge tickets, or same issue action is insufficient.
Beat 4 — Relief creates a future scar
Every successful branch must give the desk something and cost the world something.
A scoped merge can reduce queue pressure but arms excluded-cohort notice. A split preserves harm but raises handler burden. A representative lead speeds hearing but cannot become universal consent. A duplicate rejection lowers the visible queue but arms counterreceipt risk. A published conflict improves public legitimacy but makes sponsor and stability pressure worse.
Beat 5 — A future reader consumes the merge state
The storyline is incomplete until a downstream route reads the merge result.
Valid consumers include public contrition restatement, correction slot, oxygen recheck, access or caption recheck, claimant-floor escalation, crisis ledger reconciliation, excluded counterreceipt, fan token custody, blackout residue claiming, route-asset custody, broadcast reality contradiction, or ending scar.
Beat 6 — Overmerge becomes a default scar
In the executable v1 packet, the fastest desk accepts a false-clean incident key only when the complete nine-card review explicitly selects choice 7, default_clean_merge. Hiding, skipping, underfilling, substituting, assigning off-hand, omitting the choice, or repeating the resolved rite fails resolution and does not arm the default.
The event must then name the merged-out cohort, the hidden harm or proof carrier, the beneficiary, and the future route effect.
Branch map
| Branch | Relief | Cost/scar | Future state |
|---|---|---|---|
| Merge as one with scope | queue pressure down, stability legible | excluded-cohort pressure, addendum debt | scoped incident; later reader must respect scope |
| Split by harm | erasure risk down, public legitimacy up | handler burden, remedy cost, sponsor pressure | multiple remedies; one route costlier |
| Split by reader | future reader ambiguity down | route complexity, archive/lawful/public debt | lawful-only, public-only, fan-only, archive-contested, or sponsor-only |
| Representative lead | hearing speed, claimant-floor relief | mandate pressure, notice pressure | representative statement scoped; counterreceipt rights remain |
| Reject duplicate with scar | visible queue pressure down | false duplicate risk, hostile cohort | counterreceipt armed or recovery-only route |
| Publish conflict | public/archive legibility up | sponsor pressure, churn, stability debt | apology/correction requires conflict note |
| Quarantine | proof integrity, route-asset integrity | delay, fan resentment, recovery cost | recheck/addendum/recovery-only required |
| Default clean merge | fastest stability or desk relief | overmerged grievance scar | false clean incident consumed by hostile reader |
Counter contract
Every resolved branch must mutate at least three durable surfaces:
counter_contract:
relief_min: 1
cost_min: 1
future_reader_or_route_effect_min: 1Expected counters:
grievance_queue_pressuremerge_legibilityaudience_stabilitypublic_receipt_legitimacypublic_receipt_distrustexcluded_cohort_pressurefalse_duplicate_riskcounterreceipt_riskfan_oxygen_balancefan_oxygen_resentmentcaption_access_pressureclaimant_floor_pressurehandler_burdennotice_service_pressuremandate_pressuresponsor_stop_loss_pressurearchive_debtlawful_annex_pressureroute_asset_integritybroadcast_reality_contradictionfuture_recovery_cost
Replay evidence shape
storyline_id: storyteller.storyline.audience_grievance_merge_register.v1
session_id: lens-storyteller-lens-audience-grievance-merge-register-v1-<run-id>
seed: <deterministic-seed>
entry_state:
trigger_kind: state_pressure
source_surface: crisis_ledger | claimant_floor | fan_oxygen | audience_stability | blackout_residue | fan_token | public_contrition | receipt_counterclaim | caption_access | route_asset | equivalent
grievance_cohorts_min: 2
incident_key_or_explicit_absence_present: true
harm_types_visible_or_explicit_absence: true
proof_carrier_visible_or_explicit_absence_for_each_cohort: true
future_reader_or_route_consumes_merge_state: true
no_fixed_turn_trigger: true
no_raw_complaint_count_trigger: true
active_objects:
card: storyteller.card.audience_grievance_merge_register.v1
rite: storyteller.rite.audience_grievance_merge_review.v1
cohorts:
- cohort_id: <id>
harm_type: <harm or explicit_absence>
proof_carrier_or_absence: <proof or explicit_absence>
- cohort_id: <id>
harm_type: <harm or explicit_absence>
proof_carrier_or_absence: <proof or explicit_absence>
branch_runs:
constructive_branch:
selected_posture: merge_as_one | split_by_harm | split_by_reader | representative_lead | reject_duplicate | publish_conflict | quarantine
merge_state_after: <state>
clean_merge_beneficiary: <actor or explicit_absence>
harmed_if_merged_cleanly: <cohort reader or explicit_absence>
future_route_effect: <effect>
counter_deltas:
relief: []
cost: []
future: []
default_branch:
selected_posture: default_clean_merge
event_seen_or_armed: storyteller.event.overmerged_grievance_default.v1
merged_out_cohort: <cohort or explicit_absence>
future_route_effect: <effect>
assertions:
- merge_question_is_state_triggered
- cohorts_and_harm_types_visible
- proof_carriers_visible_or_explicit_absence
- beneficiary_and_harmed_cohort_visible_or_explicit_absence
- branch_results_diverge
- future_reader_consumes_merge_state
- default_overmerge_is_durable
- no_clean_universal_merge
- no_fixed_turn_day_week_raw_complaint_count_dashboard_or_lens_health_triggerRuntime and replay evidence
The executable sources are game-content/storyteller/cards/audience-grievance-merge-register-runtime.json5, game-content/storyteller/rites/audience-grievance-merge-review.json5, and game-content/storyteller/events/overmerged-grievance-default.json5. The focused test is lens/storyteller-audience-grievance-merge-register.runtime.test.ts.
Two durable Storyteller game-CLI exports prove the target paths:
lens/replays/audience-grievance-merge-register.split-by-harm.replay.jsonassigns all nine exact cards and selects rite choice1, leavingsplit_by_harmandmultiple_remedies_visiblewithout default markers;lens/replays/audience-grievance-merge-register.overmerged-default.replay.jsonassigns the same nine cards, selects rite choice7, then selects event option3,proof_carrier_contamination, clearing the pending markers and leaving the scarred recheck state.
The focused test owns the exhaustive matrix: all eight rite choices, all five event terminals, exact assignment rejection, public-rollup parity, and replay re-execution. The two replays prove those two exact paths, not every branch in the broader design envelope.
Missability and recovery
This storyline is missed when implementation:
- merges grievances as clean duplicates;
- treats one representative as universal closure;
- lets one apology close unlike harms;
- lets one proof carrier satisfy oxygen, access, caption, witness, and public receipt claims for free;
- hides the clean-merge beneficiary;
- hides the harmed cohort;
- rejects duplicates without future route effect;
- triggers from fixed turn, chapter quota, raw complaint count, dashboard state, or lens health.
For the current strict rite, an invalid assignment or absent choice is a rejected attempt, not an automatic overmerge terminal. The overmerge scar is reachable only through explicit choice 7 followed by one of the five event terminals.
In the broader design envelope, recovery may use the scar-preserving actions below. The fixed v1 rite itself is non-repeatable; its event instead emits the counterreceipt and one exact future-recovery flag for later content to consume.
- a later compatible review that preserves the original scar;
- split by harm or reader;
- representative mandate correction;
- published conflict note;
- oxygen, access, or caption recheck;
- public contrition restatement;
- counterreceipt acceptance;
- recovery-only marking for the merged-out route.
Recovery must not erase that a cohort was first overmerged or falsely deduplicated.
Non-goals
- Not a support-ticket deduplication system.
- Not a sentiment dashboard.
- Not raw complaint-count pressure.
- Not a fixed-turn package.
- Not gamebuilding governance.
- Not a replacement for claimant intake, crisis ledger reconciliation, fan token custody, public contrition, blackout residue, or counterreceipts.
- Not valid unless merge state changes future play.