Back to skills
SkillHub ClubShip Full StackFull Stack

behaviour-surprisal-analysis

Imported from https://github.com/plurigrid/asi.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
8
Hot score
84
Updated
March 20, 2026
Overall rating
C3.9
Composite score
3.9
Best-practice grade
B82.7

Install command

npx @skill-hub/cli install plurigrid-asi-behaviour-surprisal-analysis

Repository

plurigrid/asi

Skill path: skills/behaviour-surprisal-analysis

Imported from https://github.com/plurigrid/asi.

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: plurigrid.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install behaviour-surprisal-analysis into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/plurigrid/asi before adding behaviour-surprisal-analysis to shared team environments
  • Use behaviour-surprisal-analysis for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: behaviour-surprisal-analysis
description: Behaviour Surprisal Analysis
version: 1.0.0
---

# Behaviour Surprisal Analysis

**Status**: Production Ready (v3.0 - Cat# Integration)
**Trit**: 0 (ERGODIC - measurement/observation)
**Principle**: S(x) = -log₂(P(x|attention_mode))
**Frame**: Tri-channel prediction evaluation with AGM belief revision + Cat# bicomodule structure

---

## Overview

**Behaviour Surprisal Analysis** calculates information-theoretic surprise between predictions and observed outcomes using three complementary attention channels mapped to Cat# = Comod(P) structure:

| Channel | Trit | Home | Poly Op | Kan Role | Description |
|---------|------|------|---------|----------|-------------|
| **Direct** (α) | −1 | Span | × (product) | Ran_K | Exact artifact matching |
| **Diffuse** (β) | 0 | Prof | ⊗ (parallel) | Adj | Thematic/structural matching |
| **Meta** (γ) | +1 | Presheaves | ◁ (substitution) | Lan_K | Capability/infrastructure tracking |

```
Total Surprisal = α·S_direct + β·S_diffuse + γ·S_meta
where α + β + γ = 1 and typically α=0.3, β=0.5, γ=0.2
```

## Cat# Integration (v3.0)

### Galois Adjunction α ⊣ γ

The Direct and Meta channels form a Galois adjunction through the Diffuse bridge:

```
         α (abstract)
  Direct ─────────────→ Diffuse
    ↑                      │
    │        CatSharp      │ γ (concretize)
    │         Scale        │
    └──────────────────────┘
           Meta

  GF(3): (−1) + (0) + (+1) = 0 ✓
```

- **α (abstraction)**: Direct predictions → Diffuse patterns
- **γ (concretization)**: Diffuse patterns → Direct predictions
- **Unit η**: id → γ∘α verifies coherence

### Three Homes (Spivak ACT 2023)

Each channel lives in a specific Cat# home:

```
┌────────────┬─────────────┬──────────┬───────────────┬────────────┐
│  Channel   │  Poly Op    │ Kan Role │   Structure   │   Home     │
├────────────┼─────────────┼──────────┼───────────────┼────────────┤
│  Direct    │  × (prod)   │  Ran_K   │ cofree t_p    │   Span     │
│  Diffuse   │  ⊗ (para)   │  Adj     │ bicomodule    │   Prof     │
│  Meta      │  ◁ (subst)  │  Lan_K   │ free m_p      │ Presheaves │
└────────────┴─────────────┴──────────┴───────────────┴────────────┘
```

### Bicomodule Coherence

Predictions and observations form bicomodule pairs. Coherence is verified by:

1. **Galois unit check**: η: id → γ∘α preserves trits
2. **Bicomodule compatibility**: pred_trit ↔ obs_trit compatible homes

## CatSharp Scale Sonification

Surprisal values map to pitch classes via the CatSharp scale:

| Trit | Pitch Classes | Chord Type | Hz Range |
|------|---------------|------------|----------|
| +1 (PLUS) | {0, 4, 8} | Augmented triad | C-E-G# |
| 0 (ERGODIC) | {3, 6, 9} | Diminished 7th | D#-F#-A-C |
| −1 (MINUS) | {1,2,5,7,10,11} | Fifths cycle | C#,D,F,G,A#,B |

```clojure
;; Surprisal → Pitch class → Frequency
(defn surprisal->pitch-class [surp]
  (mod (Math/round (* (min surp 10.0) 1.2)) 12))

(defn pitch-class->freq [pc]
  (* 261.63 (Math/pow 2 (/ pc 12.0))))  ;; C4 = 261.63 Hz
```

Enable with `--sonify` flag to hear the surprisal as tones via sox.

## AGM Belief Revision (Levi Identity)

Based on [Baker 2023](https://ijcai.org/proceedings/2023/811):

```
K * φ = (K − ¬φ) + φ   (Levi Identity)
```

- **Contraction (K − ¬φ)**: Remove predictions contradicted by observations
- **Expansion (+ φ)**: Add new beliefs from observed data
- **Revision (K * φ)**: Combined operation via Levi identity

### Spohn κ-Ranking

Predictions ranked by entrenchment:

```clojure
(defn kappa-rank [belief]
  (- (Math/log (/ 1 (max 0.01 (:confidence belief))))))
```

Lower κ = more entrenched = harder to revise.

## Usage

```bash
# Full Cat# analysis with sonification
bb ~/.claude/skills/behaviour-surprisal-analysis/analyse.bb \
  --predictions predictions.json \
  --observed observed.json \
  --alpha 0.3 --beta 0.5 --gamma 0.2 \
  --sonify

# With capability tracking
bb analyse.bb \
  --predictions predictions.json \
  --observed observed.json \
  --skills-before skills_t0.txt \
  --skills-after skills_t30.txt

# Direct-heavy (Span home focus)
bb analyse.bb --alpha 0.7 --beta 0.2 --gamma 0.1

# Meta-heavy (Presheaves home focus)
bb analyse.bb --alpha 0.1 --beta 0.3 --gamma 0.6 --sonify
```

## Input Format

```json
{
  "predictions": {
    "direct": [
      {"content": "Ruby MCP SDK for skill markets", "confidence": 0.8},
      {"content": "VirtualizationBridge sandbox test", "confidence": 0.7}
    ],
    "diffuse": [
      {"theme": "GF(3) conservation", "keywords": ["trit", "lattice", "conservation"]},
      {"theme": "skill markets", "keywords": ["confidential", "commitment", "beacon"]}
    ],
    "meta": {
      "skills_before": 45,
      "mcp_servers_before": 12,
      "config_hash": "a3f2c1"
    }
  },
  "observed": {
    "threads": [
      "Ruby MCP SDK for confidential skill markets",
      "GF(3) skill composition and Galois connection verification",
      "Derangement operators and GF(3) entropy management"
    ],
    "capability_events": [
      {"type": "skill_install", "count": 373, "source": "plurigrid/asi"},
      {"type": "mcp_addition", "server": "world_a_aptos"}
    ]
  }
}
```

## Output Format

```
╔══════════════════════════════════════════════════════════════════╗
║  BEHAVIOUR SURPRISAL ANALYSIS v3.0 (Cat# + AGM)                  ║
║  α=0.30 (Span/Ran) β=0.50 (Prof/Adj) γ=0.20 (Presh/Lan)          ║
╚══════════════════════════════════════════════════════════════════╝

  DIRECT ATTENTION (Home: Span, Kan: Ran_K)
  ───────────────────────────────────────────────────────────────
  Prediction                      │ Match │ S_dir │ Trit │ PC │ Home
  ────────────────────────────────┼───────┼───────┼──────┼────┼─────
  VirtualizationBridge sandbox    │  34.9% │  1.52 │  +   │  2 │ Span
  ...

  CAT# COHERENCE
  ───────────────────────────────────────────────────────────────
  Galois adjunction α ⊣ γ:    ✓ coherent
  Bicomodule compatibility:   85.0% (✓)

  CATSHARP SONIFICATION
  ───────────────────────────────────────────────────────────────
  ♪ Direct (Ran_K): 293.7 Hz
  ♪ Diffuse (Adj): 329.6 Hz
  ♪ Meta (Lan_K): 261.6 Hz
```

## GF(3) Triads

The skill participates in balanced triads:

```
behaviour-surprisal-analysis (0) ⊗ catsharp-galois (0) ⊗ gay-mcp (-1) + operad-compose (+1) = 0 ✓

# Internal channel triad
Direct (−1) + Diffuse (0) + Meta (+1) = 0 ✓
```

## Attention Calibration

| Prediction Style | Recommended (α,β,γ) | Cat# Focus |
|-----------------|---------------------|------------|
| Specific artifacts | (0.6, 0.3, 0.1) | Span heavy |
| Thematic directions | (0.2, 0.6, 0.2) | Prof heavy |
| Capability exploration | (0.2, 0.3, 0.5) | Presheaves heavy |
| Mixed/balanced | (0.3, 0.5, 0.2) | Bicomodule equilibrium |

## API

```clojure
(require '[behaviour-surprisal-analysis :as bsa])

;; Full Cat# analysis
(bsa/combined-analysis
  predictions observed
  0.3 0.5 0.2          ;; α β γ
  before-state after-state
  capability-events
  true)                ;; sonify?

;; Galois adjunction verification
(bsa/verify-galois-unit direct-result)

;; Bicomodule coherence check
(bsa/check-bicomodule-coherence direct diffuse meta)

;; Sonify channel
(bsa/sonify-channel results "Direct" 0.3)
```

## Philosophical Foundation

The tri-channel Cat# model reflects:

1. **Cat# Three Homes**: Span (comodules), Prof (bimodules), Presheaves (right modules)
2. **Kan Extensions**: Ran_K (limit/consume), Lan_K (colimit/generate), Adj (bridge)
3. **Galois Adjunction**: α ⊣ γ for abstraction/concretization
4. **AGM Epistemology**: Contraction, Expansion, Revision via Levi identity
5. **CatSharp Scale**: Mazzola's categorical music theory for sonification

### Key Insight: GF(3) = Naturality

GF(3) conservation IS the naturality condition of Cat# equipment:

```
For a triad (s₋₁, s₀, s₊₁):
  Ran_K(s₋₁) →[bicomodule]→ s₀ →[bicomodule]→ Lan_K(s₊₁)
  
  The commuting square:
    G(f) ∘ η_A = η_B ∘ F(f)
    
  Becomes the GF(3) equation:
    (−1) + (0) + (+1) ≡ 0 (mod 3)
```

---

**Skill Name**: behaviour-surprisal-analysis
**Version**: 3.0.0 (Cat# Integration)
**Type**: Prediction Evaluation / Information Theory / Belief Revision / Category Theory
**Trit**: 0 (ERGODIC)
**GF(3)**: Conserved via Cat# bicomodule structure
**Dependencies**: sox (optional, for sonification)
**Sources**: 
- [Spivak "All Concepts are Cat#" (ACT 2023)](https://topos.site/p/2023-act-tutorial)
- [Baker 2023 - AGM for Human Reasoning](https://ijcai.org/proceedings/2023/811)
- [Mazzola "The Topos of Music" (2002)](https://www.springer.com/gp/book/9783764357313)
- [arxiv:2505.13763 - LLM Metacognition](https://arxiv.org/abs/2505.13763)
behaviour-surprisal-analysis | SkillHub