Espionage & Hybrid War: covert ops (spy/sabotage/assassinate) + the non-kinetic warfare spectrum (cyber, economic, information, proxy) #57

Closed
opened 2026-10-15 17:05:42 +02:00 by kamilkrzywda · 0 comments
Owner

What

Expand the old "espionage" idea into hybrid war — the full non-kinetic warfare spectrum. Nations wage war short of open conquest: covert action against an adversary plus cyber/economic/information/proxy pressure, each with a chance of exposure that backfires on the attacker's relations.

Mechanism

  • TurnResult gains hybrid: { ops: HybridOp[] } — required, default []. HybridOp = { type: 'spy'|'sabotage'|'assassinate'|'cyber'|'economic'|'information'|'proxy'; from: string /* nationRef */; target: string /* nationRef or regionKey */; detail?: string }.
  • Each op resolves a success/exposure roll (the LLM declares an intended outcome, but the engine applies a deterministic rule: e.g. an assassinate succeeds only if the target's stability is below a threshold, and any failed/caught op penalizes the attacker's relation with the target and/or the public).
  • Effects: spy → reveals a stat/region; sabotage → small stat delta on target; assassinate → kills a named leader (ties into the Named-leaders feature) or, absent one, a stability hit; cyber → target stat dip + possible disruption of a marker; economic → target economy down (ties into Trade/embargo); information → relation shift on a third party (disinformation); proxy → support a non-nation or push a third nation toward war.
  • Builds on: relations, per-region stats, the military gate (espionage can weaken a target to enable a later conquest).

Acceptance

  • e2e safety (critical): stub returns hybrid: { ops: [] }, stays deterministic; additive (legacy games load with no hybrid); must not break the UK-in-wwii-1939 e2e (empty frontier, military 80→85, 7-item legend).
  • Unit tests in server/engine.test.ts (each op type, exposure/backfire, interaction with the military gate).
  • System prompt documents hybrid + the op types; user prompt carries relevant current state. Version bump at PR time.
## What Expand the old "espionage" idea into **hybrid war** — the full non-kinetic warfare spectrum. Nations wage war short of open conquest: covert action against an adversary plus cyber/economic/information/proxy pressure, each with a **chance of exposure** that backfires on the attacker's relations. ## Mechanism - `TurnResult` gains `hybrid: { ops: HybridOp[] }` — required, default `[]`. `HybridOp = { type: 'spy'|'sabotage'|'assassinate'|'cyber'|'economic'|'information'|'proxy'; from: string /* nationRef */; target: string /* nationRef or regionKey */; detail?: string }`. - Each op resolves a **success/exposure roll** (the LLM declares an intended outcome, but the engine applies a deterministic rule: e.g. an `assassinate` succeeds only if the target's `stability` is below a threshold, and any failed/caught op **penalizes the attacker's relation** with the target and/or the public). - Effects: `spy` → reveals a stat/region; `sabotage` → small stat delta on target; `assassinate` → kills a named leader (ties into the Named-leaders feature) or, absent one, a stability hit; `cyber` → target stat dip + possible disruption of a marker; `economic` → target economy down (ties into Trade/embargo); `information` → relation shift on a third party (disinformation); `proxy` → support a non-nation or push a third nation toward war. - Builds on: relations, per-region stats, the military gate (espionage can *weaken* a target to enable a later conquest). ## Acceptance - **e2e safety (critical):** stub returns `hybrid: { ops: [] }`, stays deterministic; additive (legacy games load with no `hybrid`); must **not** break the UK-in-`wwii-1939` e2e (empty frontier, military 80→85, 7-item legend). - Unit tests in `server/engine.test.ts` (each op type, exposure/backfire, interaction with the military gate). - System prompt documents `hybrid` + the op types; user prompt carries relevant current state. Version bump at PR time.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OpenCode/History#57