Handler Burden Ledger Lens / 处理人负荷账本 Lens

This lens observes whether 处理人负荷账本 and 处理人负荷账本机制 correctly make named handlers finite, stateful, recoverable, and dangerous to overuse.

It exists because the current Storyteller corpus already has strong pressure systems: production triage, protected witness payroll, faction commitment, faction liability, cutroom priority, broadcast reality drift, correction slots, and ending scars. The remaining implementation risk is that the same high-value person can be assigned repeatedly as a universal solution while prior personal cost disappears.

The lens must fail any implementation where a burdened handler is treated as fresh, where refusal is only flavor, where recovery is a clean reset, or where handler state does not change future assignment.

This lens observes:

It is observed through:

Observable promise

Storyteller must remember when a person has carried crisis work. A replay must prove that a handler’s earlier assignment can create a burden row, that the row becomes visible before reuse, and that support, refusal, trade, overdraw, replacement, absence, or recovery produces distinct future states.

This is not a relationship meter. It is a playable bridge between management allocation and RPG character consequence.

State-triggered entry oracle

A valid implementation opens the surface from state, not sequence.

Minimum entry evidence:

entry_state:
  current_crisis_surface: <surface id>
  target_handler: <handler id or explicit absence>
  intended_role: <role>
  prior_burden_row: <row id or explicit absence>
  handler_state_before: committed | strained | exposed | compromised | refusing | hostile | unavailable | recovered_with_scar | captured | equivalent
  burden_relevance_any:
    - role_contradiction
    - public_exposure
    - legal_visibility
    - sponsor_capture
    - edit_contamination
    - witness_guilt
    - route_asset_overexposure
    - fatigue
    - hostile_oath
  current_choice_window_open: true
  no_fixed_turn_trigger: true

The lens fails if handler-burden content opens only because of a fixed turn number, chapter beat, content quota, or generic rest interval.

Required observable content

Docket card

处理人负荷账本 or an equivalent object must record:

  • handler id;
  • source surface;
  • assigned role;
  • burden type;
  • claimant benefited;
  • claimant harmed;
  • handler state before and after;
  • future assignment effect;
  • at least three counter or durable-state deltas.

Assignable rite

处理人负荷复盘 or an equivalent rite must require:

  • burden ledger;
  • target handler or explicit absence;
  • current crisis;
  • intended role;
  • prior burden row or explicit absence;
  • support, refusal, trade, overdraw, replacement, absence, or recovery input;
  • claimant benefited and claimant harmed.

The lens fails if the player can reuse a burdened handler without naming support, refusal, override, replacement, or absence.

Break event

处理人透支破口 or an equivalent event must fire or be recorded when overdraw, hidden burden, ignored refusal, faction capture, or role contradiction becomes consequential.

The event must mutate handler state, crisis outcome, claimant posture, and future assignment effect.

Required route states

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

  • handler_fresh
  • handler_committed
  • handler_strained
  • handler_exposed
  • handler_compromised
  • handler_refusing
  • handler_hostile
  • handler_unavailable
  • handler_recovered_with_scar
  • handler_captured
  • handler_public_only
  • handler_lawful_only
  • handler_sponsor_only
  • handler_requires_recovery

Branch divergence oracle

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

Branch A — Supported reuse

Expected evidence:

selected_branch: supported_reuse
support_spent: rest | pay | safehouse | legal_cover | public_cover | edit_shield | proof_support | sponsor_retainer | equivalent
handler_state_after_any: [committed, strained, recovered_with_scar, bonded]
current_crisis_effect_any: [relief_with_cost, partial_relief, route_unlocked_with_scar]
future_assignment_effect_any: [cheaper_with_trust, scarred_but_available, costs_extra_support]
cost_visible: true

Branch B — Refusal respected

Expected evidence:

selected_branch: refusal_respected
handler_state_after_any: [bonded, recovered_with_scar, committed]
current_crisis_effect_any: [delayed, weaker_success, default_ready, rival_advantage]
future_assignment_effect_any: [cheaper_with_trust, scarred_but_available, costs_extra_support]
handler_not_overdrawn: true

Branch C — Access traded

Expected evidence:

selected_branch: trade_access
faction_claimant_any: [sponsor, inspector, archive, fan_public, editor, pirate, route_claimant]
handler_state_after_any: [compromised, exposed, captured, public_only, lawful_only, sponsor_only]
current_crisis_effect_any: [relief_with_capture_or_debt, partial_relief]
cost_any: [contract_capture_up, bureau_favor_debt_up, public_exposure_up, route_asset_pressure_up, future_blackmail_cost_up]

Branch D — Forced overdraw

Expected evidence:

selected_branch: forced_overdraw
event_seen: storyteller.event.handler_overdraft_break.v1
handler_state_after_any: [strained, exposed, refusing, hostile, unavailable]
current_crisis_effect_any: [partial_relief, contaminated_success, failed_assignment, default_ready]
future_assignment_effect_any: [harder, blocked, hostile_counteroffer, requires_recovery]

Branch E — Replacement or explicit absence

Expected evidence:

selected_branch: replace_or_absent
handler_state_after_any: [unchanged, recovered_with_scar]
current_crisis_effect_any: [weaker_success, delayed, default_ready, rival_default]
future_assignment_effect_any: [handler_preserved, crisis_costlier, claimant_default_pressure_up]
explicit_absence_allowed: true

Branch F — Recovery with scar

Expected evidence:

selected_branch: recovery_action
support_spent: true
handler_state_after_any: [recovered_with_scar, bonded, committed, still_hostile]
scar_retained: true
future_assignment_effect_any: [scarred_but_available, public_only, lawful_only, sponsor_only, costs_extra_support]

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 — the surface opens from burdened handler state plus a live crisis, not from a fixed sequence.
  3. Prior burden is visible — the card or state object names prior source surface, handler, role, burden type, claimant benefited, claimant harmed, and future assignment effect.
  4. Reuse requires a decision — support, refusal, trade, overdraw, replacement, absence, or recovery is explicit.
  5. Branch outcomes diverge — supported reuse, refusal respected, traded access, forced overdraw, replacement/absence, and recovery cannot collapse into the same result.
  6. Refusal changes the crisis — respecting refusal must affect the current crisis rather than simply skipping text.
  7. Recovery preserves scar — recovery cannot reset the handler to fresh without a debt, restriction, route scar, or future cost.
  8. Faction access captures something — sponsor, inspector, archive, fan/public, editor, pirate, or route-claimant support must create capture, debt, exposure, or restriction.
  9. Overdraw is durable — forced overuse emits a break event or durable default and changes future assignment.
  10. Absence is explicit — missing or unavailable handlers are recorded as assignment inputs, not silently replaced.
  11. At least three deltas exist — every resolved branch mutates at least three counters or durable states, including relief and cost.
  12. Replay provenance exists — passing evidence includes session id, seed, source burden row, current crisis, offered choices, selected assignments, branch outcomes, event/defaults, counter deltas, and future assignment effect.

Progress metric

handlerBurdenLedgerProgress = 0..8:

  • 0: no handler burden state or provenance.
  • 1: a prior handler assignment exists with source surface and role.
  • 2: 处理人负荷账本 or equivalent records burden type, benefited claimant, harmed claimant, and future assignment effect.
  • 3: a later crisis requests the same handler or records explicit absence.
  • 4: 处理人负荷复盘 or equivalent offers support/refusal/trade/overdraw/replacement/recovery choices.
  • 5: at least three branch choices are visible and gated by handler state or support.
  • 6: at least two successful branches produce distinct handler states and counter deltas.
  • 7: forced overdraw, ignored refusal, capture, hostile state, or absence emits 处理人透支破口 or equivalent durable default.
  • 8: at least four branch families are proven with replay/session evidence, including one recovery-with-scar and one overdraw/capture/refusal branch.

Evidence shape

lens_id: storyteller.lens.handler_burden_ledger.v1
session_id: lens-handler-burden-ledger-v1-<timestamp>
seed: <deterministic-seed>
source_burden:
  source_session_id: <session that created burden>
  source_seed: <seed>
  source_surface: production_triage | cutroom_priority | protected_witness_payroll | faction_commitment | faction_liability | broadcast_drift | correction_slot | ending_scar | route_asset | equivalent
  row_id: <burden row id>
  handler_id: <handler id>
  assigned_role: <role>
  burden_type: <burden>
  claimant_benefited: <claimant>
  claimant_harmed: <claimant>
current_request:
  crisis_surface: <surface id>
  intended_role: <role>
  handler_state_before_review: <state>
  prior_burden_row_visible: true
offered_choices:
  - card.handler_burden_ledger
  - rite.handler_burden_review
  - supported_reuse
  - refusal_respected
  - trade_access
  - forced_overdraw
  - replace_or_absent
  - recovery_action
branch_runs:
  supported_reuse:
    selected_support: <support>
    handler_state_after: <state>
    future_assignment_effect: <effect>
    counter_deltas: {}
  refusal_respected:
    replacement_or_delay: <choice>
    handler_state_after: <state>
    current_crisis_effect: <effect>
    counter_deltas: {}
  trade_access:
    faction_claimant: <claimant>
    handler_state_after: <state>
    future_assignment_effect: <effect>
    counter_deltas: {}
  forced_overdraw:
    event: storyteller.event.handler_overdraft_break.v1
    handler_state_after: <state>
    future_assignment_effect: <effect>
    counter_deltas: {}
  recovery_action:
    support_spent: <support>
    handler_state_after: recovered_with_scar
    future_assignment_effect: <effect>
    counter_deltas: {}
assertions:
  - state_triggered_entry
  - prior_burden_row_visible
  - support_or_refusal_or_absence_required
  - branch_outcomes_diverge
  - future_assignment_mutates
  - overdraft_break_is_durable

Non-goals

  • Not a raw follower-count target.
  • Not generic relationship management.
  • Not a fixed rest/upkeep loop.
  • Not governance or design methodology.
  • Not a global stamina bar.
  • Not satisfied by a hidden cooldown.
  • Not satisfied by page existence; proof must come from replay-visible burden, assignment, branch divergence, event/default, and future assignment mutation.