Class Representative Mandate Drift / 集体代表委任漂移机制
This mechanic prevents prior group representation from becoming permanent clean authority.
The core rule is: a representative row may survive as history, but later play must retest mandate when the representative’s state, scope, or covered cohort changes before a future reader consumes it.
Mechanic boundary
This is not a replacement for:
- 无障碍字幕集体线, which creates or denies a class object;
- 粉丝委任分裂线, which decides who can initially speak for fan-side claims;
- 见证承载解除线, which prevents one served witness from becoming reusable capacity;
- 救济失权线, which prevents one service row from barring every later remedy.
This mechanic starts later: old representation exists, then a representative-state change makes reuse unsafe.
State machine
representative_mandate_state_machine:
dormant:
meaning: no future reader is trying to spend old authority
reuse_attempted:
required:
- source_representative_row
- original_representative
- represented_cohorts
- original_scope
- future_reader
- reuse_claim
drift_visible:
required_any:
- bought_off
- settled_separately
- discharged
- refused_reuse
- captured
- substituted
- protected_withdrawal
- oxygen_haircut
- operator_exposed
- mandate_expired
- class_scope_changed
review_open:
offered:
card: storyteller.card.class_representative_mandate_docket.v1
rite: storyteller.rite.class_representative_mandate_review.v1
resolved:
states:
- renewed_limited
- split_required
- substitute_required
- withdrawal_protected
- conflict_public
- escrowed
- quarantined
- false_universal_representative
- recovery_onlyEntry must be caused by live state pressure. It must not be caused by fixed turn number, day/week interval, raw class count, raw delegate count, raw witness count, dashboard state, lens-health state, or generic legal aftermath.
Required fields
Every implementation must expose these fields through 集体代表委任案卷 or equivalent:
fields_required:
source_representative_row_id: <row id or explicit_absence>
source_surface: <surface>
original_representative: <actor or explicit_absence>
represented_cohorts: []
excluded_or_deferred_cohorts: []
original_scope: <scope or explicit_absence>
original_proof_or_absence: <proof or explicit_absence>
drift_kind: <drift kind or explicit_absence>
representative_state_before: <state>
representative_state_after: <state>
claimant_trying_to_reuse: <actor>
future_reader: <reader>
reuse_claim: <claim>
remedy_or_route_at_risk: <remedy or route>
proof_of_current_mandate_or_absence: <proof or explicit_absence>
selected_posture: <posture>
mandate_state_after: <state>
future_reader_or_route_effect: <effect>If any field is absent, the absence must be explicit and must carry cost.
Branch contract
The mechanic must support at least six non-equivalent branch families plus default, or explicitly block unavailable branches with state reasons.
| Branch | Required proof | Required cost | Durable result |
|---|---|---|---|
| Renew mandate | current mandate proof for named scope | proof upkeep, callback/addendum pressure | renewed_limited |
| Split cohorts | represented and excluded cohorts named | split proof upkeep, route delay | split_required |
| Appoint substitute | substitute identity and authority visible | legitimacy risk, carrier exposure | substitute_required |
| Protect withdrawal | refusal/withdrawal preserved | claimant hostility, recovery cost | withdrawal_protected |
| Publish conflict notice | drift published to future readers | public distrust, sponsor/inspection heat | conflict_public |
| Escrow authority | authority held for lawful/archive reader | archive debt, lawful-only routing | escrowed |
| Quarantine mandate | unsafe reuse blocked | route block, recovery-only scar | quarantined |
| Silent representative default | fastest desk consumes old authority | false universal representative scar | false_universal_representative |
No branch may create clean universal representation across public, lawful, sponsor, archive, fan oxygen, access caption, route asset, management, and broadcast reality readers.
Counter surfaces
Each constructive branch must mutate relief, cost, and future route state.
counter_surfaces:
relief:
- representative_legitimacy
- remedy_access
- public_receipt_legitimacy
- access_caption_trust
- fan_delegate_legitimacy
cost:
- representative_drift_debt
- cohort_fracture
- fan_oxygen_resentment
- sponsor_stop_loss_pressure
- lawful_annex_debt
- archive_debt
- witness_retaliation_risk
- operator_exposure
- inspection_heat
- handler_burden
future:
- future_route_cost
- broadcast_reality_drift
- route_asset_pressure
- callback_required
- public_addendum_required
- recovery_only_mandateDefault rule
When old representation is reused without a current mandate proof, 沉默代表默认 must fire or arm. The event must name the old representative, hidden drift, false reuse claim, hidden cohort, and future route effect.
Replay evidence
mechanic_evidence:
mechanic_id: storyteller.mechanic.class_representative_mandate_drift.v1
session_id: lens-class-representative-mandate-drift-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
trigger_kind: state_pressure
source_representative_row_present: true
representative_state_changed: true
future_reader_attempts_reuse: true
represented_and_excluded_cohorts_visible_or_explicit_absence: true
no_fixed_turn_trigger: true
branch_result:
selected_posture: <posture>
mandate_state_after: <state>
future_reader_or_route_effect: <effect>
default_event_if_any: storyteller.event.silent_representative_default.v1 | explicit_absence
assertions:
- old_representation_preserved_as_history
- current_mandate_retested_before_reuse
- hidden_cohort_cannot_disappear
- success_has_relief_cost_and_future_effect
- default_names_false_representative_claim
- no_universal_representative