Wardrobe Evidence Custody Lens / 演出服证物羁押 Lens
This lens observes whether 演出服证物羁押线 correctly prevents a worn object from becoming clean costume, body proof, sponsor image, safety repair, public relic, and recovery collateral at the same time.
A passing implementation proves that the garment row names the wearer or claimed wearer, trace state, custodian, requested use, harmed reader, proof anchor, repair/contamination state, selected posture, and future route effect. It fails if clothing is cosmetic inventory or if a sponsor logo, sanitized patch, or public relic silently proves body presence.
This lens is state-triggered. It must not depend on a fixed numbered turn.
Primary observation link
This lens observes:
- 演出服证物羁押线;
- 演出服证物羁押机制;
- Route Assets and Custody, Broadcast Reality, and Producer License and Pressure;
- adjacent pressure from Mira Veil Storyline, 赞助补偿库存线, 直播现场通行瓶颈线, Memorial Rights Contempt Storyline, 复原追偿搁架线, and 声音替身责任线.
It is observed through:
Observable promise
Whenever a future route consumes a worn object, the game must answer:
What garment is being used, who wore it or is claimed to have worn it, what trace does it carry, who holds custody, who is harmed, what use is selected, and what future reader or route changes after the choice?
The lens fails if the garment becomes a clean proof object by being visible on screen.
Must pass
1. Entry is state-triggered by garment claim pressure
Required evidence:
entry_state:
trigger_kind: state_pressure
garment_asset_present_or_explicit_absence: true
requested_use_present: true
wearer_or_claimed_wearer_visible_or_explicit_absence: true
trace_state_visible_or_explicit_absence: true
custody_holder_visible_or_explicit_absence: true
future_reader_or_route_consumes_garment: true
harmed_reader_or_claimant_visible_or_explicit_absence: true
player_can_preserve_return_recut_repair_relic_collateralize_split_or_default: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_wardrobe_count_trigger: true
no_raw_card_count_trigger: true
no_dashboard_or_lens_health_trigger: trueThe lens fails if entry depends on fixed turn number, day/week interval, chapter quota, raw wardrobe count, raw content count, dashboard state, lens health, or generic inventory phase.
2. Docket state is visible
Wardrobe Evidence Docket or equivalent must record:
wardrobe_evidence_row:
garment_id_or_absence: <wardrobe asset prop cloth uniform ribbon or explicit_absence>
wearer_or_claimed_wearer: <artist witness double avatar crowd delegate or explicit_absence>
body_trace_state: clean | blood | burn | oxygen_tag | sweat | repair_stitch | voice_sync_marker | sponsor_logo | memorial_trace | counterfeit | explicit_absence
custody_holder: artist | wardrobe_desk | sponsor | archive | inspector | editor | fan_public | safety_crew | producer | claimant | explicit_absence
requested_use: preserve_as_evidence | return_to_wearer | sponsor_recut | safety_repair_reuse | public_relic | recovery_collateral | split_custody | ignore
harmed_reader_or_claimant: <reader claimant route or explicit_absence>
proof_anchor_or_absence: <body voice scene camera receipt witness or explicit_absence>
contamination_or_repair_state: intact | contaminated | sanitized | patched | cut_down | double_pledged | missing | explicit_absence
future_route_effect: accepted_with_scar | lawful_only | sponsor_only | safety_only | public_only | costlier | blocked | recovery_onlyThe lens fails if the implementation records only costume, logo, damaged, returned, or inventory item.
3. Assignment slots are explicit
演出服证物分诊 or equivalent must require:
assignment_required:
rite: storyteller.rite.wardrobe_evidence_triage.v1
docket: storyteller.card.wardrobe_evidence_docket.v1
garment_id_or_absence: <wardrobe asset or explicit_absence>
wearer_or_claimed_wearer: <artist witness double avatar crowd delegate or explicit_absence>
body_trace_state: <trace state>
current_custody_holder: <holder or explicit_absence>
requested_use: preserve_as_evidence | return_to_wearer | sponsor_recut | safety_repair_reuse | public_relic | recovery_collateral | split_custody | ignore
handler_or_absence: <handler or explicit_absence>
proof_anchor_or_absence: <proof anchor or explicit_absence>
harmed_reader_or_claimant_or_absence: <reader claimant or explicit_absence>
contamination_or_repair_state: <state or explicit_absence>
selected_posture: preserve_trace | return_with_receipt | sponsor_recut | safety_repair | public_relic | collateralize | split_custody | accept_defaultThe lens fails if sponsor money, inspector seal, editor checksum, artist consent, or producer authority resolves the garment without these slots.
4. Branch postures diverge
A valid implementation must offer or state-block these branch families:
preserve_trace;return_with_receipt;sponsor_recut;safety_repair;public_relic;collateralize;split_custody;accept_default.
Branches must differ by state after, privileged reader, harmed reader treatment, counter deltas, and future route effect.
5. Branch assertions
Preserve trace assertion
selected_posture: preserve_trace
state_after: evidence_preserved_wearer_absent
relief_any: [body_presence_clarity_up, archive_fraud_down, inspection_proof_up]
cost_any: [artist_trust_down, stage_readiness_down, sponsor_stop_loss_pressure_up]
future_effect_any: [lawful_only, accepted_with_scar, wearer_route_costlier]
forbidden: [preserve_as_free_inventory]Return with receipt assertion
selected_posture: return_with_receipt
state_after: wearer_protected_proof_narrowed
relief_any: [artist_trust_up, consent_integrity_up]
cost_any: [proof_availability_down, public_receipt_distrust_up, sponsor_pressure_up]
future_effect_any: [private_body_route_opened, public_proof_costlier]
forbidden: [return_erases_trace]Sponsor recut assertion
selected_posture: sponsor_recut
state_after: sponsor_surface_captured
relief_any: [sponsor_stop_loss_pressure_down, schedule_pressure_down]
cost_any: [contract_capture_up, body_presence_confusion_up, public_receipt_distrust_up]
future_effect_any: [sponsor_only, consent_hearing_required, counterclaim_armed]
forbidden: [logo_as_body_proof]Safety repair assertion
selected_posture: safety_repair
state_after: safety_repair_erases_trace
relief_any: [live_floor_safety_up, egress_pressure_down, crew_load_down]
cost_any: [evidence_trace_down, archive_fraud_risk_up, future_recovery_cost_up]
future_effect_any: [safety_only, proof_bridge_required, recovery_only]
forbidden: [sanitized_trace_as_clean_proof]Public relic assertion
selected_posture: public_relic
state_after: public_relic_contested
relief_any: [public_receipt_legitimacy_up, memorial_trace_visibility_up]
cost_any: [sponsor_pressure_up, artist_privacy_pressure_up, inspection_heat_up]
future_effect_any: [public_only, lawful_objection_armed, memorial_afteruse_costlier]
forbidden: [relic_as_uncontested_truth]Collateralize assertion
selected_posture: collateralize
state_after: recovery_collateral_posted
relief_any: [recovery_route_kept_open, liability_cover_up]
cost_any: [garment_availability_down, double_pledge_risk_up, claimant_hostility_up]
future_effect_any: [collateral_call_armed, costlier, recovery_only]
forbidden: [collateral_as_discharge]Split custody assertion
selected_posture: split_custody
state_after: split_custody_tagged
relief_any: [two_routes_remain_open, false_clean_body_down]
cost_any: [custody_ambiguity_up, handler_burden_up, double_claim_risk_up]
future_effect_any: [dual_reader_required, future_hearing_required]
forbidden: [split_as_universal_acceptance]Default assertion
selected_posture: accept_default
state_after: unlogged_reuse_default
event_seen_or_armed: storyteller.event.wardrobe_evidence_default.v1
relief_any: [immediate_slot_burden_down]
cost_any: [counterfeit_body_claim_up, archive_fraud_up, future_recovery_cost_up]
future_effect_any: [blocked, sponsor_only, lawful_only, recovery_only, proof_rebuild_required]
forbidden: [default_as_warning_only]6. Every constructive branch has relief, cost, and future effect
Every non-default branch must satisfy:
counter_contract:
relief_min: 1
cost_min: 1
future_reader_or_route_effect_min: 1
trace_or_custody_state_changes: trueThe lens fails if a branch only changes item ownership, costume appearance, or immediate UI state.
7. Default event is durable
演出服证物默认 must fire or be armed when the future route consumes a garment without complete custody state, when a false claim is made about the garment, or when repair/sanitization/reuse deletes trace but later claims proof.
default_required:
event: storyteller.event.wardrobe_evidence_default.v1
garment_id_or_absence: <wardrobe asset or explicit_absence>
claimed_wearer_or_absence: <wearer or explicit_absence>
trace_state_before_or_absence: <trace state or explicit_absence>
default_actor: sponsor | archive | inspector | editor | wardrobe_desk | safety_crew | fan_public | producer_absence | claimant | equivalent
false_claim: logo_proves_body | sanitized_means_clean | returned_means_uncontested | relic_means_public_truth | collateral_means_discharged | repair_erases_trace | missing_garment_was_never_proof | equivalent
harmed_reader_or_claimant: <reader claimant route or explicit_absence>
state_after: counterfeit_body_claim | sponsor_surface_captured | safety_only_trace_loss | public_relic_contested | proof_chain_broken | collateral_call_armed | recovery_only_garment
future_route_effect: blocked | costlier | lawful_only | sponsor_only | public_only | proof_rebuild_required | collateral_call_required | recovery_only
counter_deltas_min: 3The default fails if it changes only notification, flavor, mood, cosmetic state, or generic reputation.
8. Downstream reader consumes wardrobe state
At least one downstream reader or route must read the resulting garment state:
downstream_consumption_required:
reader_or_route_any:
- body_voice_custody_reader
- sponsor_makegood_reader
- live_floor_safety_reader
- memorial_rights_reader
- recovery_indemnity_reader
- voice_substitution_reader
- archive_or_inspector_reader
- public_receipt_reader
reads_state_after: true
respects_future_route_effect: trueThe lens fails if the garment state is written but never changes later choices.
Replay evidence shape
lens_id: storyteller.lens.wardrobe_evidence_custody.v1
session_id: lens-wardrobe-evidence-custody-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
trigger_kind: state_pressure
garment_asset_present_or_explicit_absence: true
requested_use_present: true
wearer_or_claimed_wearer_visible_or_explicit_absence: true
trace_state_visible_or_explicit_absence: true
custody_holder_visible_or_explicit_absence: true
harmed_reader_or_claimant_visible_or_explicit_absence: true
no_fixed_turn_trigger: true
offered:
card: storyteller.card.wardrobe_evidence_docket.v1
rite: storyteller.rite.wardrobe_evidence_triage.v1
branches:
preserve_trace:
state_after: evidence_preserved_wearer_absent
future_route_effect: lawful_only
deltas:
body_presence_clarity: +1
sponsor_stop_loss_pressure: +1
sponsor_recut:
state_after: sponsor_surface_captured
future_route_effect: sponsor_only
deltas:
sponsor_stop_loss_pressure: -1
contract_capture: +1
safety_repair:
state_after: safety_repair_erases_trace
future_route_effect: safety_only
deltas:
live_floor_safety: +1
evidence_trace: -1
default:
event_seen_or_armed: storyteller.event.wardrobe_evidence_default.v1
state_after: counterfeit_body_claim
future_route_effect: proof_rebuild_required
assertions:
- primary_links_exist
- entry_is_state_triggered_by_garment_claim_pressure
- garment_wearer_trace_custody_requested_use_harmed_reader_and_future_effect_are_visible
- triage_assignment_slots_are_explicit
- branch_postures_diverge
- every_constructive_branch_has_relief_cost_and_future_effect
- default_event_is_durable
- downstream_reader_consumes_wardrobe_state
- no_fixed_turn_day_week_raw_count_dashboard_or_lens_health_triggerProgress metric
Progress is branch coverage and state distinction, not content count.
- 20%: garment row exposes wearer, trace, custodian, requested use, harmed reader, and future effect.
- 40%: triage assignment slots can be filled or explicitly absent.
- 60%: at least three constructive branches diverge by state after and future reader.
- 80%: default event mutates proof, sponsor, safety, relic, or collateral state.
- 100%: downstream route consumes wardrobe state with replay seed, assignments, outcomes, durable state, and counter deltas.
Non-goals
- Not fashion lore.
- Not cosmetic item durability.
- Not raw prop inventory.
- Not a fixed wardrobe phase.
- Not satisfied by prose alone; proof must come from branch state and replay evidence.