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 fieldExecutable v1 value
Registeraudience.merge.blackout.09
Source / incidentcrisis_ledger / blackout.incident.09
Cohort onecaption_access_row_09; caption_user; miscaption; caption_log_09; named_scope
Cohort twofan_oxygen_row_09; oxygen_holder; oxygen_loss; oxygen_row_09; batch_scope
Clean-merge beneficiarystability_table
Harmed if merged cleanlycaption_user
Future reader / effectpublic_contrition / public_addendum_required
Default riskproof_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:

SlotExact card ID
registerstoryteller.card.audience_grievance_merge_register.v1
source_surfacestoryteller.card.audience_grievance_source_surface.v1
incident_keystoryteller.card.audience_grievance_incident_key.v1
cohort_onestoryteller.card.audience_grievance_caption_cohort_row.v1
cohort_twostoryteller.card.audience_grievance_oxygen_cohort_row.v1
beneficiarystoryteller.card.audience_grievance_clean_merge_beneficiary.v1
harmed_readerstoryteller.card.audience_grievance_harmed_reader.v1
future_readerstoryteller.card.audience_grievance_future_reader.v1
handlerstoryteller.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:

IndexOption IDState afterFuture effect
0merge_as_one_scopedmerge_as_one_scopedpublic_addendum_required
1split_by_harmsplit_by_harmmultiple_remedies_visible
2split_by_readersplit_by_readerreader_specific_routes_required
3representative_leadrepresentative_lead_scopedcounterreceipt_rights_reserved
4reject_duplicate_with_scarrejected_duplicate_with_scarcounterreceipt_armed
5publish_conflictconflict_publishedcorrection_conflict_note_required
6quarantine_proofquarantined_for_proof_recheckoxygen_and_caption_recheck_required
7default_clean_mergefalse_clean_pendingrecovery_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:

  1. every complaint becomes a raw queue item and management pressure turns into count noise;
  2. 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: true

Invalid entries include a fixed turn number, chapter quota, raw complaint count, dashboard alert, generic sentiment score, or lens-health state.

Content pack

Mechanic

Card

  • 观众申诉并案登记 records the cluster, cohorts, harm types, proof carriers, proposed merge, clean-merge beneficiary, harmed cohort, future consumer, and route effect.

Rite

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

BranchReliefCost/scarFuture state
Merge as one with scopequeue pressure down, stability legibleexcluded-cohort pressure, addendum debtscoped incident; later reader must respect scope
Split by harmerasure risk down, public legitimacy uphandler burden, remedy cost, sponsor pressuremultiple remedies; one route costlier
Split by readerfuture reader ambiguity downroute complexity, archive/lawful/public debtlawful-only, public-only, fan-only, archive-contested, or sponsor-only
Representative leadhearing speed, claimant-floor reliefmandate pressure, notice pressurerepresentative statement scoped; counterreceipt rights remain
Reject duplicate with scarvisible queue pressure downfalse duplicate risk, hostile cohortcounterreceipt armed or recovery-only route
Publish conflictpublic/archive legibility upsponsor pressure, churn, stability debtapology/correction requires conflict note
Quarantineproof integrity, route-asset integritydelay, fan resentment, recovery costrecheck/addendum/recovery-only required
Default clean mergefastest stability or desk reliefovermerged grievance scarfalse 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: 1

Expected counters:

  • grievance_queue_pressure
  • merge_legibility
  • audience_stability
  • public_receipt_legitimacy
  • public_receipt_distrust
  • excluded_cohort_pressure
  • false_duplicate_risk
  • counterreceipt_risk
  • fan_oxygen_balance
  • fan_oxygen_resentment
  • caption_access_pressure
  • claimant_floor_pressure
  • handler_burden
  • notice_service_pressure
  • mandate_pressure
  • sponsor_stop_loss_pressure
  • archive_debt
  • lawful_annex_pressure
  • route_asset_integrity
  • broadcast_reality_contradiction
  • future_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_trigger

Runtime 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.json assigns all nine exact cards and selects rite choice 1, leaving split_by_harm and multiple_remedies_visible without default markers;
  • lens/replays/audience-grievance-merge-register.overmerged-default.replay.json assigns the same nine cards, selects rite choice 7, then selects event option 3, 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.