Remedy Preclusion / 救济失权机制
Remedy Preclusion is the mechanic that prevents a service row from becoming universal waiver.
The recent mesh can already prove that a capacity notice was served, a callback carrier was assigned, a substitute carrier was fit-tested, a counterreceipt was heard, or a capacity row was scoped. The missing aftershock is finality overreach: a later reader says service exists, so the next remedy is barred.
This mechanic asks a narrower question: did the served row actually give this barred claimant a real opportunity to answer this specific remedy?
Inputs
inputs_required:
source_service_row: <row id>
source_surface: capacity_notice_service | reader_rebuttal_notice | callback_carrier_collision | excluded_counterreceipt | substitute_carrier | broadcast_capacity_liability | equivalent
service_state_before: served | split_served | proxy_served | lawful_served | public_served | sponsor_served | callback_required | substituted | quarantined | false_served | unserved | equivalent
served_reader_or_claimant: <reader or explicit_absence>
omitted_or_deferred_reader: <reader or explicit_absence>
claimant_trying_to_bar: <actor>
barred_claimant_or_reader: <reader>
remedy_at_risk: callback | correction | refund | counterreceipt | lawful_appeal | public_addendum | route_delay | capacity_reserve | witness_protection | substitute_fit_review | equivalent
proof_of_actual_opportunity_or_absence: <proof or explicit_absence>
future_reader_or_route: <reader route package proof window or broadcast reality surface>The mechanic fails if it evaluates only served: true.
State machine
preclusion_state_machine:
unchecked:
on_valid_source_and_barred_remedy: contested_preclusion
contested_preclusion:
branches:
accept_scoped_preclusion: scoped_preclusion
rebut_preclusion: preclusion_rebutted
reopen_remedy: remedy_reopened
lawful_appeal: lawful_only
public_addendum: public_only
substitute_or_callback_rework: split_required
quarantine_service: quarantined
false_preclusion_default: false_precluded
scoped_preclusion:
future_reader_must_name_scope: true
preclusion_rebutted:
future_reader_must_offer_remedy_or_cost: true
remedy_reopened:
callback_or_addendum_required: true
quarantined:
future_route_blocked_until_rework: true
false_precluded:
event: storyteller.event.false_preclusion_default.v1Valid conclusions
A conclusion is valid only when the result mutates relief, cost, and future route state.
valid_result:
preclusion_state_after: scoped_preclusion | preclusion_rebutted | remedy_reopened | lawful_only | public_only | sponsor_only | quarantined | false_precluded | recovery_only | contradiction_pending
barred_claimant_state_after: protected | delayed | hostile | lawful_only | public_only | bought_off | blocked | recovery_only | equivalent
source_service_state_after: preserved_for_named_scope | narrowed | challenged | quarantined | defaulted | false_clean | equivalent
future_reader_or_route_effect: addendum_required | callback_required | costlier | audit_required | route_delay | public_only | lawful_only | sponsor_capture | blocked | hostile | recovery_only | contradiction_pending
counter_deltas:
relief: [<delta>]
cost: [<delta>]
future: [<delta>]Invariants
hard_rules:
service_is_not_universal_waiver: true
public_notice_is_not_lawful_waiver: true
lawful_notice_is_not_public_consent: true
sponsor_countercopy_is_not_fan_consent: true
proxy_service_is_not_artist_boundary_waiver: true
callback_to_one_reader_is_not_callback_to_all: true
substitute_service_is_not_fit_review_waiver: true
omitted_reader_remains_visible: true
future_reader_consumes_preclusion_state: true
no_fixed_turn_day_week_raw_count_dashboard_or_lens_health_trigger: trueObservable surfaces
This mechanic is observed through:
It receives source rows from 容量告知送达队列线, 读者反驳通知线, 回叫承载撞车线, 被排除者反回执挑战线, 替代承载征调线, and 播出容量责任级联线.