Claimant Briefing Order Lens / 认领告知顺序 Lens

This lens observes whether 认领告知顺序线 and 认领告知顺序机制 correctly make advance notice into a scarce, stateful, cross-pressure resource.

The lens exists because the current Storyteller mesh already answers several adjacent questions: which crisis is staffed, which cut is prioritized, which correction slot airs, which route asset claimant wins, and which handler is overdrawn. It does not yet force the implementation to prove who learned about a pending action first and what the excluded claimants can do before the action resolves.

The lens must fail any implementation where all claimants are safely briefed for free, where excluded claimants are not recorded, where first notice never changes recipient behavior, or where leak/preemption/default is only flavor.

This lens observes:

It is observed through:

Observable promise

A replay must prove that a pending action with multiple affected claimants cannot become public/binding without notice-order state. The replay must show who was told first, who was excluded, what proof or caller made the notice credible, what the recipient did, and how the pending action or future route changed.

Entry oracle

A valid implementation opens from state, not sequence.

Minimum entry evidence:

entry_state:
  source_surface: correction_slot | cutroom_priority | claimant_collision | public_contrition | stabilization_liability | protected_witness | production_triage | route_asset | equivalent
  pending_action: <action id>
  affected_claimants_min: 2
  first_notice_can_change_response: true
  late_or_absent_notice_can_harm_claimant: true
  proof_anchor_or_absence: <anchor or explicit absence>
  caller_or_absence: <handler/caller or explicit absence>
  no_fixed_turn_trigger: true

The lens fails if the surface opens only because of a fixed turn number, chapter beat, content quota, generic day phase, or hidden global timer.

Required observable content

Docket card

认领告知案卷 or an equivalent card must record:

  • source surface;
  • pending action;
  • proof anchor or explicit absence;
  • first briefed claimant or no-briefing choice;
  • excluded claimants;
  • caller/handler or explicit absence;
  • notice terms;
  • recipient response;
  • leak/preemption actor if any;
  • notice state after resolution;
  • future route effect;
  • at least three counter or durable-state deltas.

Assignable rite

认领告知电话 or an equivalent rite must require:

  • the docket;
  • selected pending action;
  • selected first claimant or no briefing;
  • excluded claimant list;
  • proof anchor or absence;
  • caller/handler or absence;
  • briefing terms;
  • accepted cost.

The lens fails if the player can brief everyone safely or if absence is not an explicit input.

Leak/preemption event

告知泄漏抢跑 or an equivalent event must fire or become default-ready when notice is abused, omitted, broken, or preempted.

The event must mutate the pending action and future route state.

Required states

A satisfying implementation must expose durable states equivalent to at least seven of:

  • notice_unbriefed
  • notice_briefed
  • notice_embargoed
  • notice_preempted
  • notice_injuncted
  • notice_leaked
  • notice_counterbriefed
  • notice_split
  • notice_no_default
  • notice_public_only
  • notice_lawful_only
  • notice_sponsor_captured
  • notice_recovery_only

Branch divergence oracle

At least four branch families must be playable and non-equivalent.

Branch A — Sponsor-first review

Expected evidence:

selected_branch: sponsor_first
first_briefed_claimant_any: [sponsor, management]
recipient_response_any: [funds, files_countercopy, requests_review, preempts]
relief_any: [budget_strain_down, sponsor_stop_loss_pressure_down, slot_pressure_down]
cost_any: [sponsor_preemption_up, contract_capture_up, public_receipt_distrust_up, fan_oxygen_resentment_up]
future_route_effect_any: [sponsor_captured, public_audit_required, clean_version_blocked, recovery_only]

Branch B — Inspector/archive-first lawful notice

Expected evidence:

selected_branch: inspector_first
first_briefed_claimant_any: [inspector, archive, lawful_caller]
recipient_response_any: [files_injunction, narrows, quarantines, admits]
relief_any: [lawful_use_unlocked, archive_fraud_down, custody_clarity_up]
cost_any: [inspection_heat_up, lawful_injunction_risk_up, bureau_favor_debt_up, public_delay_up]
future_route_effect_any: [lawful_only, appeal_required, public_route_costlier, recovery_only]

Branch C — Public/fan warning first

Expected evidence:

selected_branch: public_first
first_briefed_claimant_any: [fan_public, yu_lan, pirate_relay, audience_witness]
recipient_response_any: [leaks, protects, counterbriefs, mobilizes]
relief_any: [public_receipt_legitimacy_up, private_capture_blocked, fan_trust_up]
cost_any: [public_panic_up, sponsor_stop_loss_pressure_up, witness_exposure_up, inspection_heat_up]
future_route_effect_any: [public_only, sponsor_retaliation, witness_route_costlier, blackout_pressure_up]

Branch D — Artist/witness/refusal first

Expected evidence:

selected_branch: artist_or_witness_first
first_briefed_claimant_any: [artist, witness, proxy, refusal_holder, protected_carrier]
recipient_response_any: [consents, refuses, demands_protection, defects, delays]
relief_any: [artist_trust_up, witness_safety_up, consent_legitimacy_up, false_consent_blocked]
cost_any: [schedule_pressure_up, sponsor_delay_up, witness_exposure_up, handler_burden_up]
future_route_effect_any: [unlocked_with_notice, delayed, refusal_route_preserved, recovery_only]

Branch E — Editor/source/archive first

Expected evidence:

selected_branch: source_first
first_briefed_claimant_any: [editor, baiya, cutroom, archive_source, black_box]
recipient_response_any: [captures_source, splits_notice, preserves_checksum, narrows]
relief_any: [slot_legibility_up, continuity_hazard_down, source_integrity_up]
cost_any: [edit_debt_up, archive_debt_up, source_ambiguity_up, public_distrust_up]
future_route_effect_any: [split_canon, lawful_only, contradiction_pending, recovery_only]

Branch F — Counterbrief or split notice

Expected evidence:

selected_branch: counterbrief_or_split_notice
first_briefed_claimant: <claimant a>
second_briefed_claimant: <claimant b>
excluded_claimants_remaining: []
relief_any: [private_capture_blocked, lawful_overreach_blocked, public_panic_softened]
cost_any: [source_ambiguity_up, claimant_retaliation_up, future_correction_cost_up]
future_route_effect_any: [split_canon, costlier, public_audit_required, lawful_appeal_required]

Branch G — No notice, broken terms, or absent proof

Expected evidence:

selected_branch: no_notice_or_broken_terms
event_seen: storyteller.event.briefing_leak_preemption.v1
cause_any: [no_credible_caller, no_proof_anchor, excluded_claimant_leaked, embargo_broken, first_claimant_abused_notice]
state_after_any: [no_notice_default, leaked, preempted, hostile, captured, recovery_only]
cost_any: [claimant_retaliation_up, public_panic_up, sponsor_preemption_up, inspection_heat_up, route_asset_capture_up]
future_route_effect_any: [blocked, hostile, captured, public_only, lawful_only, recovery_only]

Oracle assertions

A binding check should fail unless all assertions below are true.

  1. Primary links existobserves and observed_through arrays point to concrete Storyteller pages.
  2. Entry is state-driven — a pending multi-claimant action opens the surface, not a fixed sequence.
  3. First notice is visible — the first briefed claimant or no-briefing choice is recorded.
  4. Excluded claimants are visible — at least one affected claimant is recorded as late, excluded, counterbriefed, or explicitly absent.
  5. Proof/caller is named — proof anchor and caller/handler exist or are explicitly absent.
  6. Recipient response matters — the first claimant must have a visible response option.
  7. Branch outcomes diverge — sponsor-first, inspector-first, public-first, artist/witness-first, source-first, counterbrief/split, and no-notice/broken-terms cannot collapse into the same result.
  8. Leak/preemption is durable — broken notice emits an event/default and changes future route access or pending-action state.
  9. No safe everyone-briefing — briefing all claimants must require split notice/counterbrief cost or be impossible in the current window.
  10. At least three deltas exist — every resolved branch mutates at least three counters or durable states, including relief and cost.
  11. Future route mutates — state after resolution must affect a later action, route, claimant posture, proof custody, or correction/cutroom availability.
  12. Replay provenance exists — passing evidence includes session id, seed, source surface, pending action, claimant set, offered choices, selected assignments, recipient response, event/default if any, deltas, and future route effect.

Progress metric

claimantBriefingOrderProgress = 0..8:

  • 0: no notice-order state or provenance.
  • 1: pending action and at least two affected claimants are visible.
  • 2: 认领告知案卷 or equivalent records first claimant, excluded claimants, proof/caller, and terms.
  • 3: 认领告知电话 or equivalent offers at least three first-notice choices or no-notice/broken-terms branch.
  • 4: selected branch mutates recipient response and at least three counters/states.
  • 5: at least one excluded claimant changes future pressure.
  • 6: at least three branch families produce non-equivalent states.
  • 7: 告知泄漏抢跑 or equivalent fires/defaults on no notice, broken terms, or abuse of first notice.
  • 8: at least four branch families are proven with replay/session evidence, including one leak/preemption and one counterbrief/split-notice branch.

Evidence shape

lens_id: storyteller.lens.claimant_briefing_order.v1
session_id: lens-claimant-briefing-order-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  source_surface: <surface id>
  pending_action: <action id>
  affected_claimants:
    - <claimant a>
    - <claimant b>
  proof_anchor_or_absence: <anchor>
  caller_or_absence: <handler or absence>
  no_fixed_turn_trigger: true
offered_choices:
  - card.claimant_briefing_docket
  - rite.claimant_briefing_call
  - sponsor_first
  - inspector_first
  - public_first
  - artist_or_witness_first
  - source_first
  - counterbrief_or_split_notice
  - no_notice_or_broken_terms
branch_runs:
  sponsor_first:
    first_briefed_claimant: sponsor
    excluded_claimants: []
    recipient_response: <response>
    state_after: <state>
    counter_deltas: {}
  inspector_first:
    first_briefed_claimant: inspector
    recipient_response: <response>
    state_after: <state>
    counter_deltas: {}
  public_first:
    first_briefed_claimant: fan_public
    recipient_response: <response>
    state_after: <state>
    counter_deltas: {}
  counterbrief_or_split_notice:
    first_briefed_claimant: <claimant a>
    second_briefed_claimant: <claimant b>
    state_after: split_notice
    counter_deltas: {}
  no_notice_or_broken_terms:
    event: storyteller.event.briefing_leak_preemption.v1
    cause: <cause>
    state_after: <state>
    counter_deltas: {}
assertions:
  - state_triggered_entry
  - first_briefed_claimant_visible
  - excluded_claimants_visible
  - proof_anchor_or_absence_named
  - caller_or_absence_named
  - branch_outcomes_diverge
  - leak_or_preemption_durable
  - future_route_mutates

Non-goals

  • Not a raw lens-count target.
  • Not governance or methodology.
  • Not a fixed turn or daily phase.
  • Not a generic diplomacy or relationship scene.
  • Not a universal consent checklist.
  • Not a clean way to notify sponsor, inspector, fan public, artist, witness, editor, and archive all at once.
  • Not satisfied by page existence; proof must come from replay-visible notice order, excluded claimant consequence, event/default, counter deltas, and future-route mutation.