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: true

Exact 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_silent true and all seven competing branch flags false;
  • branch_eligibility.state.silent_default_pending true;
  • all four pending flags true: branch_eligibility.silent_default_pending, event.silent_branch_suppression.armed, future_route.silent_branch_suppression_pending, and broadcast_reality.branch_falsely_absent;
  • branch_eligibility.default_resolved false and no prior resolution of storyteller.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: 3

Accepted 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 IDTerminal stateFuture effect
reconstruct_eligibility_receipteligibility_receipt_reconstruction_requiredfuture_routes_require_eligibility_receipt
publish_hidden_beneficiaryhidden_lock_beneficiary_exposedpublic_or_lawful_challenge_required
freeze_false_unavailable_routefalse_unavailable_route_frozenrecovery_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.