Metric Capture Appeal Lens / 指标捕获申诉 Lens

This lens observes whether 指标捕获申诉线 and 指标捕获申诉机制 correctly make a captured false-clean management metric appealable, costly, and future-readable.

A pass cannot be achieved by adding an apology scene, a generic review option, a public anger note, or a free correction. The implementation must prove a source captured report, hidden debt, future reader, appeal claimant, proof/channel/handler/shield assignments, divergent appeal branches, retaliation default, and downstream consumption without any fixed turn trigger.

This lens observes:

It is observed through:

Design intent

The current corpus has strong management-compression and package-omission surfaces. This lens targets the next missing execution edge: after a false-clean management metric has already been captured and read, recovery must become a playable appeal with proof, channel, handler, retaliation, and future-reader cost.

The appeal should feel like management + RPG pressure, not governance. The producer is not editing a report. The producer is assigning people, proof, slots, legal attention, public exposure, sponsor release, route quarantine, or quote repricing while factions retaliate.

Must pass

1. Entry is state-triggered from captured metric

Required entry evidence:

entry_state:
  trigger_kind: state_pressure
  captured_metric_report_present: true
  hidden_debt_present: true
  future_reader_reads_metric_or_hidden_debt: true
  appeal_claimant_or_producer_license_pressure_present: true
  proof_channel_handler_or_explicit_absence_representable: true
  no_fixed_turn_trigger: true

The lens fails if eligibility comes from a fixed turn number, day interval, chapter quota, raw content count, lens-health state, or generic management-review phase.

2. Source capture is preserved, not retried

The appeal must preserve the prior capture/default. It cannot silently reopen the original 经营压缩台机制 review as if the default never happened.

Required source shape:

source_capture:
  source_capture_event: storyteller.event.metric_capture_default.v1 | equivalent
  captured_report_id: <stable captured metric report id>
  captured_by: board | sponsor | schedule_desk | liability_table | crew_utilization_table | quote_table | route_asset_claimant | public_absence | equivalent
  captured_metric: slot_salvaged | liability_capped | sponsor_confidence_preserved | audience_churn_suppressed | crew_utilization_improved | quote_clearance_reused | route_asset_recovered | public_harm_contained | equivalent
  hidden_debt: <debt_counter_or_state>
  default_state_before_appeal: <captured_or_false_clean_state>

The lens fails if the appeal has no stable report id, no captured metric, or no hidden debt.

3. Future reader is named

指标捕获申诉案卷 must name at least one future reader.

Valid readers include:

  • producer license review;
  • route asset availability;
  • public contrition table;
  • correction slot;
  • lawful conversion;
  • sponsor gate;
  • quote or reprice table;
  • crew lane;
  • schedule lane;
  • broadcast reality reader;
  • equivalent.

The lens fails if the appeal only changes immediate mood, money, or reputation.

4. Appeal claimant and requested recoding are visible

The docket must record who is allowed to challenge the metric and what recoding they request.

appeal_basis:
  claimant: producer | comptroller | public_receipt | lawful_reader | sponsor_confessor | crew_witness | quote_carrier | route_asset_holder | equivalent
  challenged_metric: <metric>
  requested_recoding: public_table_correction | lawful_appeal | sponsor_confession | crew_scar_publication | quote_detachment | route_asset_quarantine | split_metric | suppress_or_no_answer

The lens fails if appeal pressure is only anonymous backlash.

5. Proof, channel, handler, and shield are assigned or absent

The docket and hearing must expose concrete slots:

assignment_slots:
  proof_anchor_or_absence: <proof_or_explicit_absence>
  appeal_channel_or_absence: public_table | lawful_hearing | correction_slot | sponsor_sideletter | crew_safety_notice | quote_reprice | route_asset_quarantine | producer_license_review | explicit_absence
  handler_or_absence: <handler_or_explicit_absence>
  retaliation_shield_or_absence: sponsor_release | inspector_oath | public_receipt | crew_safehouse | quote_reprice | route_quarantine | producer_license_stay | explicit_absence
  future_reader: <reader>

A famous character, sponsor money, legal authority, or public outrage cannot satisfy the lens unless it fills a slot or records explicit absence.

6. Hearing assignments are explicit

指标捕获申诉听证 must require:

hearing_assignment:
  docket: storyteller.card.metric_capture_appeal_docket.v1
  captured_report_id: <id>
  captured_metric: <metric>
  hidden_debt: <debt>
  appeal_mode: public_table_correction | lawful_appeal | sponsor_confession | crew_scar_publication | quote_detachment | route_asset_quarantine | split_metric | suppress_or_no_answer
  appeal_claimant: <claimant>
  proof_anchor_or_absence: <proof_or_absence>
  appeal_channel_or_absence: <channel_or_absence>
  handler_or_absence: <handler_or_absence>
  retaliation_shield_or_absence: <shield_or_absence>
  future_reader: <reader>

The lens fails if the player can file an appeal without report id, hidden debt, channel, handler, or future reader.

7. Branches diverge

At least six branch families must be playable or explicitly blocked by state:

  • public table correction;
  • lawful appeal;
  • sponsor confession or contract sacrifice;
  • crew scar publication;
  • quote detachment or reprice;
  • route asset quarantine;
  • split metric;
  • suppress/no answer retaliation default.

Each branch must differ by report state, hidden-debt state, cost surface, and future reader effect.

8. Success has relief, cost, and future gate

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_license: at_least_one

Accepted cost surfaces include sponsor pressure, contract capture, public distrust, witness exposure, crew refusal, route asset exposure, inspection heat, bureau debt, correction-slot pressure, quote reprice, producer-license pressure, future claim cost, and future recovery cost.

9. Sponsor confession and buyout do not delete discoverability

A sponsor confession, side letter, buyout, or contract sacrifice branch must preserve a release record, confession scar, public surcharge, future correction hook, or producer-license note.

non_erasure_required:
  appeal_mode: sponsor_confession
  discoverability_after: release_record | confession_scar | future_reader_surcharge | producer_license_note | recovery_cost_due | equivalent
  hidden_debt_deleted: false

The lens fails if sponsor money removes the hidden debt from future play.

10. Lawful or public correction has scar

Public and lawful correction cannot create clean universal truth.

Required evidence:

correction_scar_required:
  appeal_mode: public_table_correction | lawful_appeal
  relief_any: [hidden_debt_legible, false_clean_metric_down, selected_metric_integrity_up]
  cost_any: [inspection_heat_up, bureau_favor_debt_up, sponsor_pressure_up, witness_exposure_up, correction_slot_pressure_up, release_delay_up]
  future_effect_any: [public_table_required, lawful_appeal_required, accepted_with_public_scar, lawful_only_until_heard]

11. Split metric is not universal acceptance

Split metric must scope readers and preserve contradiction.

split_metric_required:
  scoped_readers_min: 2
  universal_acceptance: false
  hidden_debt_state_after: scoped_visible | surcharge_attached | contradiction_pending
  future_effect_any: [split_required, accepted_with_surcharge, contradiction_pending]

The lens fails if every route accepts the same corrected metric cleanly.

12. Route asset quarantine changes availability

A route-asset quarantine appeal must make the asset unavailable, costlier, protected, split, or recovery-only until released.

route_asset_quarantine_required:
  route_asset_id: <id>
  asset_state_before: falsely_clean | captured | exposed | equivalent
  asset_state_after: quarantined | protected_but_unavailable | split_required | recovery_only_until_released | equivalent
  future_route_effect: quarantined | costlier | recovery_only | release_required

The lens fails if quarantine is only flavor text or a counter bump.

13. Underfilled or suppressed appeal arms retaliation default

指标申诉报复默认 must fire or be armed when the appeal is hidden, underfilled, bought without release, filed without future reader, or lacks proof/channel/handler/shield.

Required default evidence:

retaliation_default:
  event: storyteller.event.metric_appeal_retaliation_default.v1
  captured_report_id: <id>
  captured_metric: <metric>
  hidden_debt: <debt>
  appeal_gap:
    proof_anchor: present | absent
    appeal_channel: present | absent
    handler: present | absent
    future_reader: present | absent
    retaliation_shield: present | absent
  retaliation_author: board | sponsor | inspector | editor | fan_public | crew_table | route_asset_claimant | blackout_system | equivalent
  default_state_after: appeal_discredited | sponsor_retaliation | lawful_reversal | public_backfire | crew_leak | route_asset_recapture | false_clean_hardened | recovery_only | equivalent
  future_route_effect: blocked | costlier | sponsor_only | lawful_appeal_required | public_table_required | correction_slot_required | split_required | recovery_only | producer_license_review | equivalent
  counter_deltas: {}

The lens fails if default changes only prose, mood, anger, money, or generic reputation.

14. Downstream reader consumes the appeal result

Passing evidence must show at least one downstream route, slot, license, public statement, legal conversion, sponsor gate, quote table, crew lane, broadcast-reality reader, or route asset consuming the appeal result.

Valid consumption examples:

15. Replay provenance is not trigger logic

Replay evidence may record session id, seed, source capture session, and debug turn ranges. Eligibility remains based on captured report state, hidden debt, appeal claimant, proof/channel/handler/shield representation, future reader, and no fixed turn trigger.

Branch assertions

Public table correction

selected_appeal_mode: public_table_correction
appeal_state_after: public_table_corrected
relief_any:
  - hidden_debt_legibility_up
  - public_receipt_legitimacy_up
  - false_clean_metric_down
cost_any:
  - sponsor_stop_loss_pressure_up
  - witness_or_route_asset_exposure_up
  - correction_slot_pressure_up
future_route_effect_any:
  - public_table_required
  - accepted_with_public_scar

Lawful appeal

selected_appeal_mode: lawful_appeal
appeal_state_after: lawful_appeal_filed
relief_any:
  - selected_metric_integrity_up
  - liability_cap_claim_down
  - route_asset_false_clean_risk_down
cost_any:
  - inspection_heat_up
  - bureau_favor_debt_up
  - schedule_or_release_delay_up
future_route_effect_any:
  - lawful_appeal_required
  - lawful_only_until_heard
selected_appeal_mode: sponsor_confession
appeal_state_after: sponsor_confession_attached
discoverability_after_any:
  - release_record
  - confession_scar
  - future_reader_surcharge
  - producer_license_note
relief_any:
  - false_clean_metric_down
  - sponsor_only_route_unlocked_or_narrowed
cost_any:
  - contract_capture_up
  - sponsor_retaliation_armed
  - public_receipt_distrust_up
future_route_effect_any:
  - accepted_with_release_clause
  - sponsor_unwind_required

Crew scar publication

selected_appeal_mode: crew_scar_publication
appeal_state_after: scar_published
relief_any:
  - crew_truth_or_route_asset_integrity_up
  - hidden_debt_legibility_up
cost_any:
  - crew_refusal_risk_up
  - route_asset_exposure_up
  - management_pressure_up
future_route_effect_any:
  - scarred_acceptance_only
  - recovery_cost_due

Quote detachment or reprice

selected_appeal_mode: quote_detachment
appeal_state_after: quote_detached_or_repriced
relief_any:
  - quote_integrity_up
  - carrier_price_integrity_up
cost_any:
  - budget_strain_up
  - schedule_pressure_up
  - future_clearance_cost_up
future_route_effect_any:
  - reprice_required
  - accepted_after_detachment

Route asset quarantine

selected_appeal_mode: route_asset_quarantine
appeal_state_after: route_asset_quarantined
asset_state_after_any:
  - quarantined
  - protected_but_unavailable
  - recovery_only_until_released
relief_any:
  - route_asset_integrity_up
  - false_owner_pressure_down
cost_any:
  - route_asset_unavailable
  - fan_or_sponsor_pressure_up
  - future_recovery_cost_up
future_route_effect_any:
  - quarantined
  - recovery_only_until_released

Split metric

selected_appeal_mode: split_metric
appeal_state_after: split_metric_record
scoped_readers_min: 2
universal_acceptance: false
relief_any:
  - selected_metric_integrity_up
  - immediate_route_not_blocked
cost_any:
  - source_ambiguity_up
  - future_claim_cost_up
  - handler_burden_up
future_route_effect_any:
  - split_required
  - accepted_with_surcharge

Suppress or no answer

selected_appeal_mode: suppress_or_no_answer
emitted_or_armed_event: storyteller.event.metric_appeal_retaliation_default.v1
default_state_after_any:
  - appeal_discredited
  - sponsor_retaliation
  - lawful_reversal
  - public_backfire
  - crew_leak
  - route_asset_recapture
  - false_clean_hardened
  - recovery_only
future_route_effect_any:
  - blocked
  - costlier
  - sponsor_only
  - lawful_appeal_required
  - public_table_required
  - correction_slot_required
  - split_required
  - recovery_only
  - producer_license_review

Replay evidence expectation

lens_id: storyteller.lens.metric_capture_appeal.v1
session_id: lens-metric-capture-appeal-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  captured_metric_report_present: true
  hidden_debt_present: true
  future_reader_reads_metric_or_hidden_debt: true
  appeal_claimant_or_producer_license_pressure_present: true
  proof_channel_handler_or_explicit_absence_representable: true
  no_fixed_turn_trigger: true
source_capture:
  source_capture_event: storyteller.event.metric_capture_default.v1
  captured_report_id: <id>
  captured_by: board | sponsor | schedule_desk | liability_table | crew_utilization_table | quote_table | route_asset_claimant | public_absence | equivalent
  captured_metric: <metric>
  hidden_debt: <state>
  default_state_before_appeal: <state>
offered:
  card: storyteller.card.metric_capture_appeal_docket.v1
  rite: storyteller.rite.metric_capture_appeal_hearing.v1
docket:
  claimant: <claimant>
  challenged_metric: <metric>
  requested_recoding: <mode>
  proof_anchor_or_absence: <proof_or_absence>
  appeal_channel_or_absence: <channel_or_absence>
  handler_or_absence: <handler_or_absence>
  retaliation_shield_or_absence: <shield_or_absence>
  future_reader: <reader>
branch_runs:
  successful_or_scarred_branch:
    selected_appeal_mode: public_table_correction | lawful_appeal | sponsor_confession | crew_scar_publication | quote_detachment | route_asset_quarantine | split_metric
    appeal_state_after: <state>
    captured_report_state_after: <state>
    hidden_debt_state_after: <state>
    future_route_effect: <effect>
    counter_deltas: {}
  retaliation_branch:
    emitted_or_armed_event: storyteller.event.metric_appeal_retaliation_default.v1
    retaliation_author: <author>
    default_state_after: <state>
    future_route_effect: <effect>
    counter_deltas: {}
downstream_reader:
  reader_id: <id>
  consumed_result: true
  accepted_or_rejected_or_surcharged: <state>
assertions:
  - primary_links_exist
  - entry_is_state_triggered_from_captured_metric
  - captured_report_hidden_debt_and_future_reader_visible
  - appeal_claimant_and_requested_recoding_visible
  - docket_records_proof_channel_handler_retaliation_shield_or_absence
  - hearing_assignments_are_explicit
  - branches_diverge_by_report_state_hidden_debt_cost_and_future_reader
  - success_has_relief_cost_and_future_gate
  - sponsor_confession_and_buyout_do_not_delete_discoverability
  - lawful_or_public_correction_has_scar
  - split_metric_is_not_universal_acceptance
  - route_asset_quarantine_changes_availability
  - underfilled_or_suppressed_appeal_arms_retaliation_default
  - downstream_reader_consumes_appeal_result
  - no_fixed_turn_trigger

Progress metric

metricCaptureAppealProgress = 0..10:

  • 0: no captured metric appeal surface.
  • 1: captured report and hidden debt are visible.
  • 2: future reader and appeal claimant are named.
  • 3: 指标捕获申诉案卷 records captured report, hidden debt, requested recoding, proof/channel/handler/shield, and future reader.
  • 4: 指标捕获申诉听证 is fillable with explicit assignments.
  • 5: at least three non-default appeal modes produce distinct report states and costs.
  • 6: public/lawful correction branches preserve scar and future-reader gates.
  • 7: sponsor confession, quote detachment, or route-asset quarantine preserves discoverability and changes future availability or pricing.
  • 8: split metric proves scoped readers and no universal acceptance.
  • 9: 指标申诉报复默认 fires or is armed with retaliation author, appeal gap, future effect, and deltas.
  • 10: downstream reader consumes the appeal result in replay evidence with seed/session id and no fixed turn trigger.

Non-goals