Ledger Custodian / 账簿保管员 Storyline
Bound character: 账簿保管员.
The Ledger Custodian knows the difference between relief that reached a district and relief that merely looked good on a sponsor broadcast. Their storyline begins when an Oxygen Audit Notice forces the player to prove who received fan-oxygen relief, who holds the archive record, and whether the public can inspect the receipt.
The character is deliberately missable. The audit can proceed without them by substituting card.evidence.fan_oxygen_ledger, but the substitute cannot recreate their public testimony or make contested custody clean.
Existing seam this storyline binds
Three focused Storyteller Game CLI replays now prove the playable outcomes; the older parent-lens semantic projection remains historical design evidence only:
- a public-custody pass assigns
npc.ledger_custodian, lowers oxygen debt, raisesaudit_integrityto4, and leaves the archive public; - a sponsor compromise substitutes
card.evidence.fan_oxygen_ledger, lowers debt, and leaves custody contested behindcard.rights.temporary_voice_release; - a blackout failure assigns explicit absence instead of either living witness or documentary ledger, leaves oxygen debt unchanged, raises inspector pressure, and keeps custody contested.
This storyline makes the character consequences of those outcomes explicit.
Entry state and recruitment window
The offer opens from audit pressure rather than a fixed turn. rite.expose_fan_oxygen_audit_pressure must first expose the four fixed audit surfaces and add two visible fan-oxygen debt. Only then may event.oxygen_audit_notice select one of three exact evidence tuples and record the matching rite choice index:
entry_state:
trigger_kind: state_pressure
pressure_rite: rite.expose_fan_oxygen_audit_pressure
pressure_flag: ledger_custodian.fan_oxygen_audit_pressure_visible
fan_oxygen_debt_at_least: 2
event: event.oxygen_audit_notice
rite: rite.public_oxygen_audit
active_relief_broadcast: true
community_archive_present: true
ledger_slot_open: true
ledger_custodian_state: living | documentary_substitute | explicit_absence
no_fixed_turn_trigger: trueThe recruitment window closes when rite.public_oxygen_audit resolves or the player commits to substitute/absence. The audit requires an explicit selected option, and runtime rejects a choice unless its branch flag and exact seven assignments match the notice. Closing the window records ledger_custodian.audit_disposition_recorded; only the public branch recruits.
Story beats
Beat 1 — The unclaimed beneficiary column
The audit notice exposes at least one oxygen-relief row whose broadcast receipt does not name a beneficiary or final archive custodian. The Ledger Custodian offers to testify only if their ledger remains attached to the public audit rather than becoming sponsor property.
Beat 2 — Assign the witness or choose an absence
The event and rite leave one of three matched tuples:
npc.ledger_custodian+faction.city_inspectorate+storyteller.card.oxygen_audit_no_rights_transfer_receipt.v1;card.evidence.fan_oxygen_ledger+faction.corporate_sponsors+card.rights.temporary_voice_release;storyteller.card.ledger_custodian_explicit_absence.v1+storyteller.card.oxygen_audit_pressure_absence.v1+storyteller.card.oxygen_audit_rights_absence.v1.
All three also require the same named future reader, storyteller.card.ledger_custodian_named_future_reader.v1. No branch may treat a missed witness as silently present.
Beat 3 — The archive chooses a posture
The same rite binds exactly seven slots in order: broadcast, ledger, oxygen, archive, pressure_actor, rights_posture, and future_reader. Broadcast, oxygen, archive, and future reader stay fixed; the event-selected ledger/pressure/rights tuple changes together. The custodian is recruitable only on the public tuple.
Beat 4 — The result becomes durable
ledger_custodian_states:
recruitable:
window: audit_notice_open
assigned_public_witness:
branch: public_custody_pass
recruited_flag: ledger_custodian.recruited
route_asset: route_asset.ledger_custodian_audit_witness
archive_custody: public
future_use: recurring_audit_witness
substituted_by_ledger_card:
branch: sponsor_custody_compromise
miss_flag: ledger_custodian.missed_for_current_audit
archive_custody: contested
future_use: documentary_proof_only
missed_for_current_audit:
branch: failure_blackout_audit
miss_flag: ledger_custodian.missed_for_current_audit
archive_custody: contested
fan_oxygen_debt_decreases: false
future_use: cannot_clean_same_auditBranch matrix
| Branch | Character state | Immediate relief | Cost | Future effect |
|---|---|---|---|---|
| Recruit public witness | ledger_custodian.state.assigned_public_witness | oxygen debt falls; public custody | inspector visibility; no rights transfer | recruited recurring witness + route asset |
| Use ledger substitute | ledger_custodian.state.substituted_by_ledger_card | oxygen debt falls | temporary rights; contested custody | documentary proof only; custodian missed |
| Blackout absence | ledger_custodian.state.missed_for_current_audit | none | debt does not fall; blackscreen; contested custody | later-audit recovery only; custodian missed |
Recruitability and missability contract
The character is recruited for this route only when all of the following are true:
npc.ledger_custodianoccupies the audit ledger slot;faction.city_inspectorateoccupiespressure_actor;storyteller.card.oxygen_audit_no_rights_transfer_receipt.v1occupiesrights_posture;asset.community_archiveis assigned as archive target;- the resolved branch is
public_custody_pass; - final archive custody is
public; ledger_custodian.recruitedandroute_asset.ledger_custodian_audit_witnessare recorded.
They are missed for this audit when the player resolves with the evidence-card substitute or the explicit-absence blackout. A later story may reopen contact for a different audit, but it may not rewrite the completed audit.
irreversibility:
recruited_after_missed: rejected
public_testimony_implied_by_ledger_card: rejected
retroactive_cleanup_of_resolved_audit: rejectedCompletion oracle
The storyline is complete when the three dedicated CLI artifacts prove all states are reachable and non-equivalent:
ledger-custodian-audit-witness.public.replay.json— recruited/assigned public witness and sole route asset;ledger-custodian-audit-witness.substitute.replay.json— irreversible miss with documentary evidence and temporary rights;ledger-custodian-audit-witness.blackout.replay.json— irreversible miss, blackscreen, contested custody, and unchanged debt.
Every terminal replay must record ledger_custodian.audit_disposition_recorded. The substitute and blackout replays must omit both recruitment and the route asset, so missability is more than prose.
Non-goals
- Not a fixed-turn recruitment encounter.
- Not a generic archive clerk.
- Not a free
audit_integritybonus. - Not proof that sponsor custody is public custody.
- Not permission to recruit the custodian after the audit has already recorded their absence.