Recap Syndication Drift / 回顾分发漂移机制
Recap Syndication Drift prevents a scarred public recap from being laundered into clean broadcast reality through a short clip, quote strip, sponsor package, mirror teaser, caption extract, fan cut, emergency explainer, or archive preview.
This mechanism does not replace 公开回顾捕获线. It starts after or alongside recap qualification, when another desk asks to reuse a fragment rather than the full recap. The key question is narrower: does the fragment carry the same scar, proof boundary, reader scope, and future-route warning as the recap that authorized it?
Design promise
A passing implementation proves that syndication is not free reach. Every clipped recap fragment must carry a readable state:
- source recap and scar;
- selected fragment;
- scar tag state;
- proof or caption context;
- distributor and destination;
- beneficiary of a clean fragment;
- harmed or omitted reader;
- operator state or explicit absence;
- future reader or route that consumes the fragment.
The mechanism fails if clips are modeled as flavor marketing, popularity, generic PR, raw share count, or clean reuse of approved wording.
Entry rule
entry_state_required:
trigger_kind: state_pressure
source_recap_present: true
source_recap_has_state: true
source_recap_has_scar_or_explicit_absence: true
distributable_fragment_requested_or_circulating: true
destination_surface_present: true
beneficiary_of_clean_fragment_visible_or_explicit_absence: true
harmed_or_omitted_reader_visible_or_explicit_absence: true
proof_caption_or_mirror_scope_visible_or_explicit_absence: true
future_reader_or_route_consumes_fragment_state: true
player_can_tag_split_caption_addendum_quarantine_clean_or_default: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_clip_count_trigger: true
no_dashboard_or_lens_health_trigger: trueThe mechanism must not open from a fixed turn, day/week, episode number, chapter quota, raw number of clips, dashboard state, lens-health state, or generic PR step.
State model
回顾分发条 is the canonical state row.
recap_syndication_state:
source:
source_recap_id: <recap row>
source_recap_state: qualified | split | corrected | public_contrition | quarantined | sponsor_clean | captured | breached | recovery_only
source_scar: private_scope | unserved_notice | access_harm | power_priority_loss | continuity_scope | capacity_liability | drift_contradiction | witness_exposure | equivalent | explicit_absence
proof_anchor_or_absence: public_receipt | caption_log | oxygen_queue_log | power_ledger | promise_row | edit_checksum | lawful_seal | mirror_right | explicit_absence
fragment:
fragment_id: <clip id>
fragment_kind: short_clip | quote_strip | sponsor_package | mirror_teaser | caption_extract | emergency_explainer | fan_cut | archive_preview | equivalent
scar_tag_state: carried | softened | dropped | contradicted | caption_only | lawful_only | sponsor_only | public_only | explicit_absence
caption_or_adaptation_state: source_matched | localized | auto_captioned | sponsor_rewritten | missing | contradicted | witness_required | explicit_absence
distribution:
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>
clip_state_after: pending | scar_tagged | split_tagged | corrected | quarantined | sponsor_clean | caption_only | mirror_only | false_clean | disputed | recovery_onlyTransition rules
1. Approved wording is not approved scope
A fragment may quote an approved recap line and still be invalid for a destination reader if it drops the scar tag, caption dependency, mirror-right scope, proof anchor, or harmed-reader warning.
2. Caption extracts need context
A caption-readable clip cannot be treated as source-matched proof unless the caption/adaptation state is recorded. If the caption is auto-generated, localized, sponsor-rewritten, missing, contradicted, or witness-required, the future reader must inherit that state.
3. Sponsor reach narrows public trust
A sponsor-clean cut may reduce sponsor or slot pressure, but it must become sponsor-only, public-addendum-required, lawful-bridge-required, or recovery-only unless the harmed public/access/fan reader is named and priced.
4. Mirror relay creates a second reader
A mirror teaser or relay package must not inherit source authority for free. If source rights, service authority, or proof state do not cover the mirror reader, the fragment becomes mirror-only, split-required, service-recheck-required, or default-ready.
5. Operator state is playable
If a named operator handled the cut, their state must affect future play. Protected or recruited operators can carry scar tags and testify to source context. Suppressed, captured, hostile, missed, or absent operators make future reliance costlier or default-ready.
Playable operations
回顾分发复核 exposes these operations:
| Operation | Immediate relief | Required scar |
|---|---|---|
| Carry scar tag | fragment can circulate with bounded truth | sponsor/management discomfort or public attention |
| Split by reader | incompatible feeds can proceed separately | edit debt, contradiction, handler burden |
| Require caption witness | accessibility/caption reliance is safer | distribution delay and witness burden |
| Publish addendum | public proof improves | sponsor pressure and producer-license heat |
| Quarantine clip | false clean fragment blocked | schedule, fan, sponsor, or route pressure |
| Sponsor clean cut | sponsor or slot pressure falls | public distrust, access/fan harm, future addendum |
| Default false clean | fastest narrator files first | durable false clean clip scar |
Default rule
洁净切条分发默认 must fire or arm when a slip is absent, a scar tag is hidden, proof/caption/mirror scope is hidden, a sponsor-clean fragment claims public truth, or a future reader consumes a fragment as the full recap.
The default must mutate at least three surfaces: one relief/capture surface, one cost surface, and one future reader or route surface.
Replay evidence shape
mechanic_id: storyteller.mechanic.recap_syndication_drift.v1
session_id: recap-syndication-drift-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
trigger_kind: state_pressure
source_recap_present: true
distributable_fragment_requested_or_circulating: true
harmed_or_omitted_reader_visible_or_explicit_absence: true
future_reader_or_route_consumes_fragment_state: true
no_fixed_turn_trigger: true
objects:
slip: storyteller.card.recap_syndication_slip.v1
rite: storyteller.rite.recap_syndication_review.v1
branch_runs:
resolved_branch:
selected_posture: carry_scar_tag | split_by_reader | require_caption_witness | publish_addendum | quarantine_clip | sponsor_clean_cut
fragment_id: <clip id>
clip_state_after: <state>
scar_tag_state_after: <state>
harmed_reader_state_after: <state>
operator_state_after: <state or explicit_absence>
future_reader_effect: <effect>
counter_deltas:
relief: []
cost: []
future: []
default_branch:
event_seen_or_armed: storyteller.event.clean_clip_syndication_default.v1
failed_requirement: <requirement>
default_narrator: <actor>
future_reader_effect: <effect>
assertions:
- source_recap_and_fragment_visible
- scar_tag_or_absence_visible
- proof_caption_or_mirror_scope_visible_or_absent
- harmed_reader_and_beneficiary_visible
- operator_state_mutates_if_present
- future_reader_consumes_clip_state
- no_universal_clean_clip
- no_fixed_turn_day_week_raw_count_dashboard_or_lens_health_triggerFailure cases
The mechanism fails if an approved recap sentence becomes universal permission, if caption readability is treated as proof context, if a sponsor clip is treated as public consent, if a mirror teaser inherits source rights automatically, if operator state is flavor-only, if future routes cannot read the clip state, or if the branch only changes audience mood/share count.