Recap Syndication Review / 回顾分发复核

Recap Syndication Review is the rite that decides whether a short recap fragment can travel, who can rely on it, and what scar must travel with it.

The rite consumes 回顾分发条. It must be run before a sponsor package, mirror relay, caption extract, fan cut, quote strip, archive preview, or route asset treats the fragment as proof of the full recap.

Runtime layers

The canonical page id storyteller.rite.recap_syndication_review.v1 names this design surface; it is not an execution id.

runtime_layers:
  parent_generic:
    rite: rite.recap_syndication_review
    default_event: event.clean_clip_syndication_default
    operator_or_proof_absence_allowed: true
  lu_fen_strict_overlay:
    rite: rite.lu_fen_clip_syndication_review
    default_event: event.lu_fen_clean_clip_syndication_default
    exact_required_cards: 15
    actual_person_card: card.lu_fen_clip_syndication_runner
    replaces_parent_generic_rite: false

The parent runtime remains the general recap-syndication mechanism and preserves every explicit-absence path below. The Lu Fen overlay is a stricter character proof for sessions where the actual person card and all thirteen support rows exist; it does not narrow or replace the parent rite.

Assignment contract

parent_assignment_required:
  slip: card.recap_syndication_slip
  source_recap_id: <stable recap row>
  source_recap_state: qualified | split | corrected | public_contrition | quarantined | sponsor_clean | captured | breached | recovery_only
  source_scar: <scar or explicit_absence>
  proof_anchor_or_absence: <anchor or explicit_absence>
  fragment_id: <stable clip id>
  fragment_kind: short_clip | quote_strip | sponsor_package | mirror_teaser | caption_extract | emergency_explainer | fan_cut | archive_preview | equivalent
  selected_excerpt_or_absence: <excerpt id or explicit_absence>
  scar_tag_state_before: carried | softened | dropped | contradicted | caption_only | lawful_only | sponsor_only | public_only | explicit_absence
  distributor: producer | sponsor | management | archive | mirror_desk | caption_operator | fan_delegate | pirate_relay | character | equivalent
  destination_surface: official_feed | mirror_feed | sponsor_feed | caption_feed | fan_oxygen_queue | public_recap_table | archive_preview | route_asset_bridge | equivalent
  beneficiary_of_clean_fragment: <beneficiary or explicit_absence>
  harmed_or_omitted_reader: <reader or explicit_absence>
  operator_state_or_absence: unseen | visible | protected | recruited | retained | suppressed | captured | hostile | missed | explicit_absence
  future_reader_or_route: <reader route asset or explicit_absence>
  selected_posture: carry_scar_tag | split_by_reader | require_caption_witness | publish_addendum | quarantine_clip | sponsor_clean_cut | default_false_clean

The parent rite fails if it offers a branch without selected fragment, source scar or explicit absence, harmed reader or explicit absence, beneficiary, proof/caption state, and future reader or route.

Strict Lu Fen overlay assignment

strict_character_assignment:
  rite: rite.lu_fen_clip_syndication_review
  slip: card.recap_syndication_slip
  source_recap_id: storyteller.card.lu_fen_source_recap_row.v1
  source_recap_state: storyteller.card.lu_fen_source_recap_state.v1
  source_scar: storyteller.card.lu_fen_source_scar.v1
  proof_anchor_or_absence: storyteller.card.lu_fen_proof_anchor.v1
  fragment_id: storyteller.card.lu_fen_fragment_id.v1
  fragment_kind: storyteller.card.lu_fen_fragment_kind.v1
  selected_excerpt_or_absence: storyteller.card.lu_fen_selected_excerpt.v1
  scar_tag_state_before: storyteller.card.lu_fen_scar_tag_state.v1
  distributor: storyteller.card.lu_fen_distributor.v1
  destination_surface: storyteller.card.lu_fen_destination_surface.v1
  beneficiary_of_clean_fragment: storyteller.card.lu_fen_clean_fragment_beneficiary.v1
  harmed_or_omitted_reader: storyteller.card.lu_fen_harmed_reader.v1
  operator_state_or_absence: card.lu_fen_clip_syndication_runner
  future_reader_or_route: storyteller.card.lu_fen_future_reader.v1
  selected_posture: protect_or_recruit_lu_fen | carry_scar_tag | split_by_reader | require_caption_witness | publish_addendum | quarantine_clip | sponsor_or_mirror_clean_cut | default_false_clean

All fifteen strict-overlay slots are required, exact-id checked, in-hand checked, and checked against the selected option. Explicit absence remains valid in the parent generic rite, but cannot stand in for Lu Fen or a strict support row in this character overlay.

Protect or recruit Lu Fen

protect_or_recruit_lu_fen is choice 0 and the only branch allowed to set route_asset.lu_fen_scar_tag_runner. It yields recruited_scar_tag_runner, visible protection cost, and a bounded future fragment-context check. All other branches clear the route asset.

Branch families

Carry scar tag

The fragment travels with its scar tag, proof boundary, and omitted-reader warning.

branch: carry_scar_tag
requires:
  - source_scar_present_or_explicit_absence
  - proof_anchor_or_absence_named
  - harmed_reader_named_or_explicit_absence
relief_any:
  - clip_legibility_up
  - future_reader_acceptance_up
  - false_clean_clip_down
cost_any:
  - sponsor_stop_loss_pressure_up
  - management_pressure_up
  - public_attention_to_scar_up
future_effect_any:
  - accepted_with_scar
  - addendum_not_required_if_scope_preserved

Split by reader

The producer releases different fragment states for public, lawful, sponsor, mirror, caption, or route readers.

branch: split_by_reader
requires:
  - two_or_more_incompatible_readers
  - scoped_fragment_for_each_reader_or_explicit_absence
relief_any:
  - selected_reader_unblocked
  - mirror_or_sponsor_feed_kept
cost_any:
  - contradiction_pressure_up
  - edit_debt_up
  - handler_burden_up
future_effect_any:
  - split_required
  - sponsor_only_or_mirror_only_or_caption_only

Require caption witness

The fragment can circulate only with a source-matched caption, witness ledger, or readable addendum.

branch: require_caption_witness
requires:
  - caption_extract_or_access_reader_present
  - caption_or_adaptation_state_not_source_matched_or_needs_proof
relief_any:
  - access_caption_reliance_safer
  - caption_context_restored
cost_any:
  - caption_witness_burden_up
  - distribution_delay_up
  - sponsor_pressure_up
future_effect_any:
  - caption_witness_required
  - correction_required_if_reused_without_witness

Publish addendum

The cut goes out with a public addendum that names the omitted scar or proof absence.

branch: publish_addendum
requires:
  - omitted_scar_tag_or_proof_absence_visible
relief_any:
  - public_receipt_legitimacy_up
  - broadcast_reality_drift_down
cost_any:
  - public_receipt_distrust_up
  - producer_license_pressure_up
  - sponsor_stop_loss_pressure_up
future_effect_any:
  - public_audit_required
  - addendum_required_before_future_reuse

Quarantine clip

The fragment is withheld from proof use until source recap, mirror rights, caption state, or route asset custody catches up.

branch: quarantine_clip
requires:
  - fragment_id_present
  - future_reader_would_overread_fragment
relief_any:
  - false_clean_clip_blocked
  - route_asset_contamination_down
cost_any:
  - schedule_pressure_up
  - fan_oxygen_resentment_up
  - sponsor_pressure_up
future_effect_any:
  - quarantined
  - recovery_only_if_unquarantined_without_review

The player knowingly accepts a sponsor-clean fragment while recording harmed reader and future restriction.

branch: sponsor_clean_cut
requires:
  - sponsor_or_management_beneficiary_present
  - harmed_reader_named
  - future_restriction_recorded
relief_any:
  - sponsor_stop_loss_pressure_down
  - slot_pressure_down
  - management_pressure_down
cost_any:
  - public_receipt_distrust_up
  - access_harm_erasure_up
  - fan_oxygen_resentment_up
future_effect_any:
  - sponsor_only
  - public_addendum_required
  - lawful_or_caption_bridge_required

Default false clean

If the slip is absent, scar tag is dropped without cost, or future reader consumes the fragment as full recap, 洁净切条分发默认 fires or arms.

branch: default_false_clean
parent_event_seen_or_armed: event.clean_clip_syndication_default
strict_character_event_seen_or_armed: event.lu_fen_clean_clip_syndication_default
requires:
  - hidden_or_false_clean_fragment
relief_any:
  - immediate_sponsor_or_management_pressure_may_drop
cost_any:
  - false_clean_clip_up
  - harmed_reader_hostility_up
  - broadcast_reality_drift_up
future_effect_any:
  - correction_required
  - caption_witness_required
  - sponsor_only
  - mirror_only
  - blocked
  - costlier
  - hostile
  - recovery_only

Operator contract

If a named operator is present, the rite must mutate their state. Valid states:

operator_state_after_any:
  - protected
  - recruited
  - retained
  - suppressed
  - captured
  - hostile
  - missed
  - explicit_absence

Recruiting or protecting an operator can improve scar_tag_integrity, but it cannot turn a fragment into universal proof. Suppressing or capturing an operator may lower immediate distribution pressure, but must arm default, hostile testimony, or recovery-only future use.

Replay evidence expectation

parent_runtime_replay:
  rite_id: rite.recap_syndication_review
  default_event_id: event.clean_clip_syndication_default
  session_id: lens-storyteller-lens-recap-syndication-drift-v1-<timestamp>
  assignment:
    slip: card.recap_syndication_slip
    operator_state_or_absence: <state or explicit_absence>
    selected_posture: <generic posture>
strict_character_replay:
  rite_id: rite.lu_fen_clip_syndication_review
  default_event_id: event.lu_fen_clean_clip_syndication_default
  session_id: lens-storyteller-lens-character-lu-fen-clip-syndication-runner-v1-<timestamp>
  cards:
    slip: card.recap_syndication_slip
    person: card.lu_fen_clip_syndication_runner
  exact_assignment_count: 15
  selected_posture: <Lu Fen posture>
shared_entry_state:
  trigger_kind: state_pressure
  source_recap_id: <id>
  fragment_id: <id>
  future_reader_or_route_present: true
  no_fixed_turn_trigger: true
branch_result:
  clip_state_after: <state>
  scar_tag_state_after: <state>
  harmed_reader_state_after: <state>
  beneficiary_state_after: <state>
  operator_state_after: <state or explicit_absence>
  future_reader_effect: <effect>
  counter_deltas:
    relief: []
    cost: []
    future: []
assertions:
  - selected_fragment_visible
  - source_recap_and_scar_visible
  - scar_tag_or_absence_visible
  - harmed_reader_and_beneficiary_visible
  - future_reader_consumes_clip_state
  - branch_states_diverge
  - no_universal_clean_clip
  - no_fixed_turn_day_week_raw_count_dashboard_or_lens_health_trigger