Silent Branch Suppression / 静默分支压下
Silent Branch Suppression is the event that fires or arms when a material branch becomes unavailable without a concrete 分支资格回执 or equivalent record.
It is not a generic failure message. It records a false-unavailable claim: someone benefits when the game table treats a blocked branch as if it was never materially present.
Trigger
trigger_required:
trigger_kind: state_pressure
source_option_set_present: true
candidate_branch_material_to_future_play: true
branch_not_offered_or_only_generic_lock_reason: true
missing_receipt_or_underfilled_receipt: true
harmed_reader_if_silent_present_or_explicit_absence: true
lock_beneficiary_present_or_explicit_absence: true
future_reader_or_route_consumes_absence: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_choice_count_trigger: true
no_dashboard_or_lens_health_trigger: trueExact default-only runtime gate
The implemented event is not a general failure event and cannot follow the seven non-default readback branches. It requires:
- the branch-eligibility readback to be resolved on
default_silent; branch_eligibility.branch.default_silenttrue and all seven competing branch flags false;branch_eligibility.state.silent_default_pendingtrue;- all four pending flags true:
branch_eligibility.silent_default_pending,event.silent_branch_suppression.armed,future_route.silent_branch_suppression_pending, andbroadcast_reality.branch_falsely_absent; branch_eligibility.default_resolvedfalse and no prior resolution ofstoryteller.event.silent_branch_suppression.v1.
The event must reject the same state if any pending flag is absent, if any constructive/suppression branch is current, or if it has already resolved.
Event payload
silent_branch_suppression:
event: storyteller.event.silent_branch_suppression.v1
source_option_set_id: <choice set, rite, docket, or route surface>
candidate_branch_id_or_absence: <branch id or hidden>
candidate_branch_label_or_absence: <label or hidden>
missing_receipt_reason: missing | underfilled | generic_reason_only | hidden_blocker | hidden_harmed_reader | hidden_beneficiary | wrong_blocker | false_recovery_only | equivalent
suppressed_blocker:
blocking_surface_hidden_or_absent: capacity | callback | notice | proof | carrier | handler | witness | sponsor | public | lawful | archive | route_asset | producer_license | management_compression | broadcast_reality | hidden | explicit_absence
blocking_row_hidden_or_absent: <row id, hidden, or explicit_absence>
missing_requirement_hidden_or_absent: <requirement, hidden, or explicit_absence>
false_unavailable_claim: prerequisite_never_existed | route_not_viable | claimant_waived | carrier_absent_by_choice | proof_spoiled | capacity_exhausted_cleanly | sponsor_blocked_cleanly | public_notice_unneeded | lawful_reader_closed | management_removed_cleanly | equivalent
default_actor: sponsor | archive | inspector | management | route_asset | public_table | lawful_reader | artist | fan_public | handler | broadcast_reality | equivalent
harmed_reader_state_after: hostile | excluded | silenced | public_counter | lawful_challenge | sponsor_capture | recovery_only | explicit_absence
pending_future_route_effect_before: silent_branch_suppression_pending
terminal_future_route_effect: future_routes_require_eligibility_receipt | public_or_lawful_challenge_required | recovery_only_until_blocker_served
counter_deltas_min: 3Accepted event shape
The implemented runtime uses the condition-driven, four-flag armed shape above. An immediate prose event or a folded replay note is not implementation evidence. The event must preserve the suppressed branch identity or explicitly record why the identity is hidden.
Valid forms include:
- a sponsor report claims the high-cost public branch was never viable;
- an archive table hides that a proof-carrier branch was blocked only by missing custody;
- management removes a recovery option while citing efficiency;
- broadcast reality hardens a route as impossible because no receipt named the missing bond;
- a lawful reader later asks why the annex path was not shown;
- a fan-public route becomes hostile after the public notice branch was hidden.
Consequence contract
Every event result must mutate at least three durable surfaces:
- one lock or false-unavailable surface;
- one harmed-reader or beneficiary surface;
- one future route, proof, custody, schedule, public, lawful, sponsor, management, or broadcast-reality surface.
The event fails if it changes only flavor text, generic morale, generic difficulty, or tutorial state.
Three exclusive terminals
| Stable option ID | Terminal state | Future effect |
|---|---|---|
reconstruct_eligibility_receipt | eligibility_receipt_reconstruction_required | future_routes_require_eligibility_receipt |
publish_hidden_beneficiary | hidden_lock_beneficiary_exposed | public_or_lawful_challenge_required |
freeze_false_unavailable_route | false_unavailable_route_frozen | recovery_only_until_blocker_served |
Every terminal clears the four pending flags and branch_eligibility.state.silent_default_pending, sets branch_eligibility.default_resolved and branch_eligibility.silent_suppression_scar, and leaves exactly one terminal branch_eligibility.state.* plus one matching future_route.* flag. The other two terminal pairs must remain false. All three preserve a durable record that the candidate branch was falsely filed as absent.
Authority boundary
The event may reconstruct the missing receipt, expose the local lock beneficiary, or freeze the falsely unavailable route. It does not prove the candidate branch should have succeeded; compel its selection; satisfy the missing requirement; or grant consent, waiver, settlement, route clearance, archive release, proof truth, sponsor/fan/inspector/editor authority, or universal broadcast authority.
Replay readback
lens/replays/branch-eligibility-receipts.replay.json must show default_silent executed through storyteller.rite.branch_eligibility_readback.v1, verify all four pending flags before event resolution, and execute reconstruct_eligibility_receipt. The focused runtime test executes all three terminal IDs from equivalent pending states. Merely creating the event, ending a turn, or recording the event ID is insufficient.
Recovery
Recovery is allowed only through scar-preserving work:
- late 分支资格回读;
- published absence;
- carrier assignment;
- bond payment;
- proof bridge restoration;
- lawful addendum;
- public correction;
- route-asset recovery;
- recovery-only branch.
A recovered lock still remembers that silent suppression happened.