Confidant Repair Terms / 私约修复条件机制

Confidant Repair Terms makes the aftermath of a breached private promise playable. The mechanism begins after a promise has already been violated, softened, exposed, or converted into public/sponsor/lawful proof outside the original scope.

The design rule is simple: the harmed character authors the repair terms. The producer may accept, negotiate, shield, separate, refuse, or fake the repair, but cannot convert apology into universal forgiveness.

Trigger surface

confidant_repair_trigger:
  trigger_kind: state_pressure
  source_promise_or_breach_visible: true
  confidant_character_visible: true
  breached_material_visible: true
  violated_scope_visible_or_explicit_absence: true
  breach_reader_visible: true
  character_harm_claim_visible: true
  demanded_repair_visible: true
  proof_required_by_character_visible_or_explicit_absence: true
  future_character_or_route_consumes_repair_state: true
  player_can_accept_negotiate_contrit_shield_separate_refuse_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_breach_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

Invalid entries include generic apology scenes, relationship thresholds, romance/affinity state, fixed sequence position, raw promise count, dashboard state, lens health, or public contrition that cannot alter a future character or route reader.

State model

The mechanism stores three locks separately.

repair_locks:
  breach_lock:
    source_promise_id_or_absence: <promise id or explicit_absence>
    confidant_character: <named character>
    breach_state_before: breached | hostile | exposed | public_only | lawful_only | sponsor_only | missed | recovery_only | equivalent
    breached_material: <material>
    violated_scope: <scope or explicit_absence>
    breach_reader: <reader>
  term_lock:
    harm_named_by_character: <harm claim>
    demanded_repair: return_material | replace_proof | publish_boundary | shield_source | pay_witness | withdraw_recap | route_separation | public_contrition | handler_recusal | equivalent
    proof_required_by_character: oath | receipt | checksum | public_addendum | lawful_seal | witness_payroll | route_quarantine | explicit_absence | equivalent
    nonnegotiable_limit: <limit or explicit_absence>
  future_lock:
    selected_repair_posture: accept_terms | negotiate_restitution | public_contrition | shielded_repayment | route_separation | refuse_repair | performative_apology_default
    repair_state_after: pending | accepted | partial | public_contrition | shielded | route_separated | refused | performative | hostile | missed | recovery_only | equivalent
    future_character_or_route_effect: <future consumer mutation>

A character can accept a public apology and still ban sponsor reuse. A route can reopen while the character remains handler-only. A lawful repair can fail in public. None of these states may collapse into one trust flag.

Branch families

The mechanism must expose these branch families through 私约修复面谈 or an equivalent rite:

BranchReliefCostFuture scar
Accept termsdemanded repair becomes legitimateproof replacement, schedule cost, sponsor/archive pressurescoped route reopened, recruitable with cost, addendum required
Negotiate restitutionnarrower repair is mutually visibleconsent debt, notice burden, character route costlierpartial repair, split reader, future objection preserved
Public contritionharmed public or character sees acknowledgementlicense pressure, sponsor pressure, public distrustpublic repair route opens; sponsor route narrows
Shielded repaymentwitness/source gets protection or paymentpayroll, handler burden, lawful delayprotected witness state, lawful-only proof, route delay
Route separationcharacter avoids the contaminated routeproof gap, missed scenes, route asset costcharacter elsewhere, this route blocked or costlier
Refuse repairproof/schedule pressure is preserved nowhostile character, recruitability damage, ending scar riskhostile witness, missed recruit, recovery-only branch
Performative apology defaultdesk pressure may fall brieflyfalse repair hardenshostile/unavailable/missed/recovery-only future

No branch may create universal forgiveness across character, public, lawful, sponsor, archive, management, route asset, and broadcast-reality readers.

Counter and route contract

Every non-default resolution must mutate all three categories:

counter_deltas_required:
  relief: at_least_one
  cost: at_least_one
  future_character_or_route_effect: at_least_one

Expected surfaces include confidant_repair_legitimacy, character_availability, recruitability, missability, proof_replacement_cost, witness_protection_cost, handler_burden, public_receipt_distrust, sponsor_capture, archive_debt, producer_license_pressure, broadcast_reality_drift, route_asset_access_cost, future_recovery_cost, and ending_scar_pressure.

Default behavior

私约修复默认 fires or arms when a breached promise is treated as repaired without character-authored terms, proof of repair, a preserved nonnegotiable limit, or a future route mutation.

Acceptable default consequences include false repair recorded, character terms hidden, sponsor-only repair, public-only repair, lawful-only repair, handler recusal required, hostile confidant witness, recruit missed, route separated, recovery-only route, or ending scar.

Relation to existing systems

Non-goals

  • Not a forgiveness meter.
  • Not a generic apology scene.
  • Not a romance repair mechanic.
  • Not a clean proof converter.
  • Not a bulk route unlock.
  • Not valid without named harm, demanded repair, proof of repair, and future reader consumption.