Fighting Game · Guides & deep dives

V2 Concordia Substrate

is signed off.

2sections2 minread

On this page

@v2/concordia-substrate is the V2-owned composition boundary for the planned Concordia substrate while @concordia/* remains planned-only. The service wires the four Nous primitives directly:

  • @nous/cooperative-bargaining for case sessions and bargaining lifecycle.
  • @nous/preference-inference for per-party Bradley-Terry preference plans and utility fits.
  • @nous/agreement-search for seed candidates, kernel ranking, and Nash search.
  • @nous/concordia-sealed-memory for sealed private intake and preference evidence.

The same composition now wires @iris/concordia-assistant for appellant / arbiter dialogue scaffolding. Each surface includes an assistantDialogue object with:

  • appellant and arbiter IntakeFlowState records advanced to the first substantive facts prompt after consent gating;
  • canonical Iris promptForStep scripts, with trauma-aware tone on crew conflicts;
  • PartyIsolatedPromptBuilder and validateContextIsolation checks for each party context; and
  • only sealed-memory refs for private context handoff.

@oshun/concordia-integration is also wired as the V2 to substrate event routing shim. Each surface includes an eventRouting object with:

  • a ConcordiaIntegrationRegistration for the V2 tenant;
  • case, intake, preference, search, and escalation subscriptions produced from privacy-projected payloads only;
  • case workbench, audit, and player dispute-status nav descriptors; and
  • redacted telemetry sinks for non-performance Concordia events.

@kuanyin/concordia-restorative is wired for the high-impact moderation branch. Anti-cheat appeals create a moderation_appeal restorative preflight with required safety checks from Kuanyin, but the branch does not open automatically: party consent and safety gates must pass before a restorative circle can start. Tournament-result disputes and crew conflicts expose an explicit non-eligible branch reason rather than silently entering the moderation path.

Launch Gate#

@oshun/config owns the launch gate for external exposure. The ENABLE_V2_CONCORDIA_SUBSTRATE flag defaults to disabled until launch readiness is signed off. While disabled, the composition surface still runs internal off-rollback checks and reports featureGate.blocksExternalExposure: true; when enabled, the same deterministic/off-rollback surface reports that it no longer blocks external exposure.

The first V2 use cases are anti-cheat appeals, tournament-result disputes, and crew conflicts. Each case is off rollback, stores private party artifacts only behind sealed-memory references, and exposes search summaries without raw private intake text. The Iris dialogue scaffold, Oshun event routing shim, and Kuanyin restorative branch are also off rollback and cannot influence deterministic gameplay simulation.

Verification#

V2/ue/Tools/check-v2-concordia-substrate.py validates package wiring, tests, docs, lockfile entries, tsconfig.base.json, and CI workflow coverage.