Audience Grievance Merge Review / 观众申诉并案复核

Audience Grievance Merge Review is the rite that lets the producer decide how a cluster of similar audience grievances should be carried forward.

It is not a customer-service action. It is a management rite that changes route pressure. Merging complaints can buy stability, but it can also erase a harmed cohort. Splitting complaints can preserve truth, but it creates handler burden, remedy cost, and future reader conflict.

Entry requirements

entry_state_required:
  trigger_kind: state_pressure
  register_present: storyteller.card.audience_grievance_merge_register.v1
  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
  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

Assignments

The executable rite has exactly nine required slots. Every slot accepts only the named card, and every assigned card must be present in the player’s hand:

assignment_required:
  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
  exact_required_slot_count: 9
  all_slots_required: true
  exact_accepts_required: true
  assigned_cards_must_be_in_hand: true
  selected_choice_required: true

A famous handler, sponsor payment, public apology, stability table, or duplicate card cannot skip or substitute for these assignments. A missing slot, wrong-card substitution, assigned card absent from hand, or omitted choice returns an unsuccessful resolution and does not arm default. Because the rite is non-repeatable and its conditions reject review_resolved or default_resolved, a second resolution attempt also fails without arming default.

The assigned register carries one fixed runtime row: audience.merge.blackout.09, sourced from crisis_ledger under blackout.incident.09, with caption_access_row_09 / miscaption / caption_log_09 and fan_oxygen_row_09 / oxygen_loss / oxygen_row_09. It names stability_table as beneficiary, caption_user as harmed reader, and public_contrition as future reader. The broader field alternatives in the Wiki packet remain a design envelope rather than claims about dynamically generated current rows.

Exact choice order

IndexOption IDMerge state 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

These are eight explicit choices, not a fallback index. Only choice 7 sets audience_grievance_merge.default_pending, storyteller.event.overmerged_grievance_default.v1.armed, and future_route.overmerged_grievance_recovery_pending. Choices 0..6 leave all three markers false and cannot trigger the event.

Branches

Merge as one

Use when cohorts share an incident key and the producer chooses speed, legibility, or stability.

Relief: queue_pressure_down, audience_stability_up, or management_pressure_down. Cost: excluded_cohort_pressure_up, public_receipt_distrust_up, or counterreceipt_risk_up. Future: apology, correction, oxygen recheck, or access row becomes one scoped incident with addendum required.

Split by harm

Use when the same incident created different injuries.

Relief: erasure_risk_down or public_legitimacy_up. Cost: handler_burden_up, remedy_cost_up, or sponsor_stop_loss_pressure_up. Future: multiple remedies stay visible; at least one route becomes costlier.

Split by reader

Use when lawful, archive, public, fan, caption, access, or sponsor readers cannot accept the same merge.

Relief: reader_confusion_down. Cost: route_complexity_up, archive_debt_up, or public_addendum_pressure_up. Future: one path may be lawful-only, public-only, fan-only, archive-contested, or sponsor-only.

Representative lead

Use when one cohort can speak first without erasing others.

Relief: hearing_speed_up or claimant_floor_pressure_down. Cost: mandate_pressure_up, notice_service_pressure_up, or excluded_reader_pressure_up. Future: representative statement is scoped and later cohorts retain counterreceipt rights.

Reject duplicate

Use when a cohort is treated as already represented.

Relief: queue_pressure_down. Cost: hostile_cohort_pressure_up or false_duplicate_risk_up. Future: counterreceipt, route hostility, public challenge, or recovery-only branch is armed.

Publish conflict

Use when the merge conflict itself must be visible.

Relief: public_receipt_legitimacy_up or archive_legibility_up. Cost: sponsor_pressure_up, audience_churn_up, or stability_debt_up. Future: correction or apology requires conflict note; clean closure becomes invalid.

Quarantine

Use when merging would contaminate proof.

Relief: proof_integrity_up. Cost: route_delay_up, future_recovery_cost_up, or fan_oxygen_resentment_up. Future: affected route requires recheck, addendum, or recovery-only posture.

Default clean merge

Use only when the player completes all nine exact assignments and explicitly selects choice 7. Hiding, skipping, underfilling, substituting, assigning off-hand, omitting the choice, or repeating the rite is rejected without default arming.

Immediate relief: fastest stability or management pressure falls. Durable cost: a later event treats the clean merge as false, overbroad, or hostile to the merged-out cohort.

The armed event has exactly five exclusive terminals: false_duplicate_denial, universal_representative_closure, public_apology_overreach, proof_carrier_contamination, and broadcast_reality_false_closure. Each terminal clears the pending triple, records a distinct scar/state/future effect, and gains storyteller.card.overmerged_grievance_counterreceipt.v1.

Counter contract

counter_deltas_required:
  relief: at_least_one
  cost: at_least_one
  future_reader_or_route_effect: at_least_one

Candidate surfaces:

  • grievance_queue_pressure
  • 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
  • sponsor_stop_loss_pressure
  • archive_debt
  • route_asset_integrity
  • broadcast_reality_contradiction
  • future_recovery_cost

Evidence shape

rite_id: storyteller.rite.audience_grievance_merge_review.v1
register: storyteller.card.audience_grievance_merge_register.v1
selected_posture: merge_as_one | split_by_harm | split_by_reader | representative_lead | reject_duplicate | publish_conflict | quarantine | default_clean_merge
cohorts_seen:
  - <cohort id>
  - <cohort id>
future_reader_or_route: <reader or route>
merge_state_after: <state>
harmed_or_excluded_cohort_after: <cohort or explicit_absence>
counter_deltas:
  relief: []
  cost: []
  future: []
assertions:
  - merge_question_is_state_triggered
  - cohort_harm_types_visible
  - clean_merge_beneficiary_visible_or_explicit_absence
  - harmed_if_merged_cleanly_visible_or_explicit_absence
  - future_reader_consumes_merge_state
  - no_raw_complaint_count_or_fixed_turn_trigger

Authority and non-overlap boundary

This rite decides only how the named incident key groups the two fixed cohort rows. It preserves their harm and proof carriers. 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.

Runtime and replay evidence

The rite source is game-content/storyteller/rites/audience-grievance-merge-review.json5; its supporting card and event sources are game-content/storyteller/cards/audience-grievance-merge-register-runtime.json5 and game-content/storyteller/events/overmerged-grievance-default.json5. lens/storyteller-audience-grievance-merge-register.runtime.test.ts resolves all eight indexes from reset states, rejects missing/substituted/off-hand/choiceless/repeated attempts, proves choice-7-only arming, and covers all five terminals.

lens/replays/audience-grievance-merge-register.split-by-harm.replay.json proves the exact nine assignments with choice 1. lens/replays/audience-grievance-merge-register.overmerged-default.replay.json proves the same assignments with choice 7, followed by default event option 3.