Maturity Notice Routing / 到期告知分流机制
Maturity Notice Routing is the mechanic that turns a mature stabilization liability ticket into enforceable service play.
稳定化责任交接线 already asks who carries a cost. This mechanic asks the next playable question: when the cost matures, who receives a legible notice first, who was omitted, who carried the proof, and what reader state changes because of that service order?
The mechanic is deliberately narrow. It does not create a new law court, timer, global inbox, or governance layer. It only runs when a 稳定化责任票据 has a maturity trigger and service order can affect future route access, proof custody, public legitimacy, fan oxygen, sponsor pressure, archive admissibility, or broadcast reality.
Design gap
The existing mesh can record:
- a scoped or callback-bearing source result;
- a stabilization liability ticket;
- a carrier, underwriting row, recourse path, proxy posture, public bond, or production carry;
- a recall event if the cost is hidden or falsely cleaned.
The missing seam is service legibility. A mature ticket can still become abstract if the implementation only says claimant called or debt recalled. Service order matters: sponsor-first service, lawful service, fan-public service, split service, proxy-runner service, archive escrow, and suppressed service should produce different future play.
Core objects
The mechanic is observed through:
It consumes or preserves:
- 稳定化责任票据;
- source row and source scar from 稳定化责任交接线;
- proxy, public, production, sponsor, archive, fan, lawful, or route-asset carrier state;
- future reader effect from the prior handoff.
State-triggered entry
entry_state_required:
trigger_kind: state_pressure
source_ticket_present: true
source_ticket_has_maturity_trigger: true
source_ticket_handoff_state_present: true
calling_claimant_present: true
omitted_or_deferred_claimant_present_or_explicit_absence: true
notice_carrier_or_explicit_absence_visible: true
service_order_can_change_reader_state: true
future_route_or_reader_effect_possible: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_count_trigger: true
no_dashboard_or_lens_health_trigger: trueThe mechanic fails if it can open from fixed time, raw counts, chapter phase, dashboard state, lens health, or generic liability pressure without a mature ticket and service-order conflict.
State machine
maturity_notice_states:
absent:
meaning: no notice row exists yet
valid_only_if: explicit_absence_recorded
exits_to: drafted | unserved_default | recovery_only
drafted:
meaning: notice slip exists but no route has served it
exits_to: lawful_served | sponsor_served | archive_escrowed | public_served | fan_served | proxy_served | split_served | production_hold | suppressed | unserved_default
lawful_served:
effect: lawful or inspector reader can proceed with debt visible
cost: sponsor pressure public delay or bureau favor debt
sponsor_served:
effect: sponsor pressure can fall or commercial route can proceed
cost: public fan lawful or omitted-reader hostility
archive_escrowed:
effect: source trace survives and false service is blocked
cost: schedule pressure sponsor pressure or archive debt
public_served:
effect: private capture is blocked through public receipt
cost: witness exposure sponsor heat or inspection heat
fan_served:
effect: fan refund or oxygen audit becomes accountable
cost: refund trigger exposure sponsor pressure or public volatility
proxy_served:
effect: a human carrier makes service proof durable
cost: proxy protection debt runner risk hostile proxy risk
split_served:
effect: incompatible readers receive separate scoped service
cost: source ambiguity handler burden future correction cost
production_hold:
effect: capture delayed while production carries unserved risk
cost: handler fatigue lane scar black-screen pressure
suppressed:
effect: short pressure may drop
cost: false service risk public distrust claimant hostility
unserved_default:
event: storyteller.event.unserved_maturity_notice.v1
effect: blocked costlier hostile or recovery_only route
false_served:
event: storyteller.event.unserved_maturity_notice.v1
effect: split_required public_or_lawful_challenge recovery_only
recovery_only:
effect: repair possible only with visible service scarEvery state transition must preserve the source ticket id, calling claimant, omitted or deferred claimant, carrier or absence, proof surface or absence, and future route effect.
Reader divergence rule
A valid service route must produce at least two non-equivalent reader states.
Examples:
reader_divergence_examples:
sponsor_first:
sponsor_reader: sponsor_only | accepted_with_cost
public_reader: distrustful | hostile | addendum_required
lawful_reader: challenge_armed | explicit_absence
lawful_first:
lawful_reader: lawful_only | accepted_with_notice_debt
sponsor_reader: stop_loss_pressure_up | hostile
public_reader: addendum_required | explicit_absence
fan_public:
fan_oxygen_reader: refund_audit_required | fan_served
sponsor_reader: pressure_up | hostile
archive_reader: stamp_required | explicit_absence
split_service:
public_reader: public_only | addendum_required
lawful_reader: lawful_only | proof_rehearing_required
route_asset_reader: split_required | costlierThe mechanic fails if every reader treats service as clean universal notice.
Carrier rule
The service carrier is a route surface, not flavor. It may be a lawful notice, sponsor countercopy, archive clerk, fan public receipt, pirate timestamp, human proxy, route asset, production hold, or explicit absence.
Carrier state must be readable later:
carrier_state_required:
before: unseen | visible | protected | recruited | retained | suppressed | captured | hostile | missed | unavailable | explicit_absence
after: protected | recruited | retained | served | split | suppressed | captured | hostile | missed | false_served | unavailable | explicit_absence
future_effect: route_unlocked_with_human_scar | proof_service_legible | route_asset_captured | proxy_posture_required | hostile_proxy_branch_armed | recovery_onlyIf a human carrier is used, 代理人姿态链 may consume the result. If the carrier is a route asset, Route Assets and Custody must preserve whether the asset is protected, captured, hostile, sacrificed, or recovery-only.
Branch contract
Every branch through 到期告知分流 must write:
branch_contract:
source_ticket_id: <ticket>
slip_id: <notice slip>
selected_route: lawful_service | sponsor_service | archive_escrow | public_or_fan_notice | proxy_runner_service | split_notice | production_hold | suppress_or_false_service
calling_claimant: <claimant>
served_claimant_or_absence: <claimant or explicit_absence>
omitted_or_deferred_claimant: <claimant or explicit_absence>
notice_carrier_before: <carrier or explicit_absence>
notice_carrier_after: <carrier or explicit_absence>
proof_of_service_after: <surface or explicit_absence>
notice_state_after: <state>
reader_states_after:
reader_a: <state>
reader_b: <different state>
future_route_effect_after: <effect>
counter_deltas:
relief: [<at least one>]
cost: [<at least one>]
future: [<at least one>]Default rule
Emit or arm 未送达到期告知 when:
- no service proof exists before the ticket is called;
- the wrong claimant is served as if service were universal;
- sponsor, archive, public, lawful, fan, or production files first while an omitted claimant is hidden;
- the carrier is captured, coerced, or suppressed without scar;
- the slip is used as proof that the source ticket became clean;
- a route consumes the mature ticket without service order.
Default must mutate future play. A default that only increases a pressure counter is invalid.
Counter surfaces
Relevant counters and durable states:
notice_service_legibilityfalse_service_riskclaimant_hostilitysponsor_stop_loss_pressurecontract_captureinspection_heatbureau_favor_debtarchive_debtpublic_notice_distrustpublic_receipt_legitimacyfan_oxygen_resentmentfan_refund_pressureproxy_protection_debtproxy_hostilityrunner_riskpayroll_leakroute_asset_pressuremanagement_pressureproduction_lane_scarhandler_fatigueblack_screen_pressurebroadcast_reality_driftrecovery_only_pressure
A successful branch must reduce or unlock one surface while increasing or spending another. Suppression may reduce short-term assignment pressure, but must increase future risk or route narrowing.
Integration boundaries
- With 稳定化责任交接线, this mechanic runs only after a ticket is mature or callable.
- With 认领告知顺序线, it can inherit who should learn first, but it adds enforceable proof of service and future reader consequence.
- With 过期派发召回线, it is not recalling an old instruction; it is making a mature debt notice legible.
- With 相对方信赖撤回线, wrong service can harden a counterparty’s false reliance and require unwind.
- With Fan Oxygen, fan-public service can open refund audit, oxygen resentment, or public legitimacy rather than generic popularity.
Progress metric
Progress is measured by playable service continuity:
- 20%: mature ticket creates or explicitly refuses a maturity notice slip.
- 40%: slip records calling claimant, omitted claimant, carrier/proof, service order risk, and future effect.
- 60%: routing rite resolves at least three non-equivalent service branches with relief/cost/future deltas.
- 80%: unserved or false-served default changes future route or reader state.
- 100%: a later route, reader, proxy, public/fan audit, sponsor desk, lawful annex, archive release, route asset, or broadcast-reality check consumes the notice state with seed/session evidence.
Executable surface
The mechanic is now enforced by an exact seven-card packet, an eight-choice one-shot routing rite, a four-outcome priority default, a focused runtime Jest suite, and two lens-scoped gameplay replays. Route-asset access is exclusive to the recruit choice, while false service leaves a durable hostile/missed or recovery scar.
Non-goals
- Not bulk content.
- Not a raw lens count target.
- Not fixed-turn, fixed-day, or maintenance-phase design.
- Not governance or dashboard proof.
- Not a replacement for handoff, claimant briefing, stale dispatch, proxy posture, route custody, or debt recall.
- Not valid if service order has no future consequence.