open-games

Open Games Skill (ERGODIC 0)

16 stars

Best use case

open-games is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Open Games Skill (ERGODIC 0)

Teams using open-games should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/open-games/SKILL.md --create-dirs "https://raw.githubusercontent.com/plurigrid/asi/main/ies/music-topos/.codex/skills/open-games/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/open-games/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How open-games Compares

Feature / Agentopen-gamesStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Open Games Skill (ERGODIC 0)

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Open Games Skill (ERGODIC 0)

> Compositional game theory via Para/Optic structure

**Trit**: 0 (ERGODIC)  
**Color**: #26D826 (Green)  
**Role**: Coordinator/Transporter

## Core Concept

Open games are morphisms in a symmetric monoidal category:

```
        ┌───────────┐
   X ──→│           │──→ Y
        │  Game G   │
   R ←──│           │←── S
        └───────────┘
```

Where:
- **X → Y**: Forward play (strategies)
- **S → R**: Backward coplay (utilities)

## The Para/Optic Structure

### Para Morphism
```haskell
Para p a b = ∃m. (m, p m a → b)
-- Existential parameter with action
```

### Optic (Lens Generalization)
```haskell
Optic p s t a b = ∀f. p a (f a b) → p s (f s t)
-- Profunctor optic for bidirectional data
```

### Open Game as Optic
```haskell
OpenGame s t a b = 
  { play    : s → a
  , coplay  : s → b → t
  , equilibrium : s → Prop
  }
```

## Composition

### Sequential (;)
```
G ; H = Game where
  play = H.play ∘ G.play
  coplay = G.coplay ∘ (id × H.coplay)
```

### Parallel (⊗)
```
G ⊗ H = Game where
  play = G.play × H.play
  coplay = G.coplay × H.coplay
```

## Nash Equilibrium via Fixed Points

```haskell
isEquilibrium :: OpenGame s t a b → s → Bool
isEquilibrium g s = 
  let a = play g s
      bestResponse = argmax (\a' → utility (coplay g s (respond a')))
  in a == bestResponse
```

### Compositional Equilibrium
```
eq(G ; H) = eq(G) ∧ eq(H)  -- under compatibility
```

## Integration with Unworld

```clojure
(defn opengame-derive 
  "Transport game through derivation chain"
  [game derivation]
  (let [; Forward: strategies through derivation
        forward (compose (:play game) (:forward derivation))
        ; Backward: utilities through co-derivation  
        backward (compose (:coplay game) (:backward derivation))]
    {:play forward
     :coplay backward
     :equilibrium (transported-equilibrium game derivation)}))
```

## GF(3) Triads

```
temporal-coalgebra (-1) ⊗ open-games (0) ⊗ free-monad-gen (+1) = 0 ✓
three-match (-1) ⊗ open-games (0) ⊗ operad-compose (+1) = 0 ✓
sheaf-cohomology (-1) ⊗ open-games (0) ⊗ topos-generate (+1) = 0 ✓
```

## Commands

```bash
# Compose games sequentially
just opengame-seq G H

# Compose games in parallel
just opengame-par G H

# Check Nash equilibrium
just opengame-nash game strategy

# Transport through derivation
just opengame-derive game deriv
```

## Economic Examples

### Prisoner's Dilemma
```haskell
prisonersDilemma :: OpenGame () () (Bool, Bool) (Int, Int)
prisonersDilemma = Game {
  play = \() → (Defect, Defect),  -- Nash
  coplay = \() (p1, p2) → payoffMatrix p1 p2
}
```

### Market Game
```haskell
market :: OpenGame Price Price Quantity Quantity
market = supplyGame ⊗ demandGame
  where equilibrium = supplyGame.eq ∧ demandGame.eq
```

## Categorical Semantics

```
OpenGame ≃ Para(Lens) ≃ Optic(→, ×)

Composition: 
  (A ⊸ B) ⊗ (B ⊸ C) → (A ⊸ C)  -- via cut
  
Tensor:
  (A ⊸ B) ⊗ (C ⊸ D) → (A ⊗ C ⊸ B ⊗ D)
```

## References

- Ghani, Hedges, et al. "Compositional Game Theory"
- Capucci & Gavranović, "Actegories for Open Games"
- Riley, "Categories of Optics"
- CyberCat Institute tutorials

Related Skills

We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.