duckdb-quadruple-interleave

Chaotic interleaving across local DuckDB databases modeled as coupled quadruple pendula. Random walks both BETWEEN databases and WITHIN tables for context injection.

16 stars

Best use case

duckdb-quadruple-interleave is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Chaotic interleaving across local DuckDB databases modeled as coupled quadruple pendula. Random walks both BETWEEN databases and WITHIN tables for context injection.

Teams using duckdb-quadruple-interleave 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/duckdb-quadruple-interleave/SKILL.md --create-dirs "https://raw.githubusercontent.com/plurigrid/asi/main/plugins/asi/skills/duckdb-quadruple-interleave/SKILL.md"

Manual Installation

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

How duckdb-quadruple-interleave Compares

Feature / Agentduckdb-quadruple-interleaveStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Chaotic interleaving across local DuckDB databases modeled as coupled quadruple pendula. Random walks both BETWEEN databases and WITHIN tables for context injection.

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

# DuckDB Quadruple Interleave

> *Four coupled pendula swinging through database space, their chaotic trajectories weaving context into cognition.*

## Overview

This metaskill models 4 database clusters as **coupled pendula** with chaotic dynamics:
- **Between-DB walks**: Jump between pendula based on coupling strength
- **Within-DB walks**: Traverse tables/rows within each pendulum
- **GF(3) Conservation**: All walks maintain trit balance

## The Four Pendula (Database Clusters)

```
┌─────────────────────────────────────────────────────────────────────────────┐
│                    QUADRUPLE PENDULUM TOPOLOGY                              │
│                                                                             │
│     P1: COGNITION          P2: KNOWLEDGE          P3: ENTROPY              │
│     ════════════           ════════════           ═══════════              │
│     cognition.duckdb       music_knowledge.duckdb interaction_entropy.duckdb│
│     worldnet.duckdb        skill_corpus.duckdb    walk_stats.duckdb        │
│     ledger.duckdb          hatchery.duckdb        edge_phase.duckdb        │
│     unified.duckdb                                                          │
│            │                      │                      │                  │
│            └──────────────────────┼──────────────────────┘                  │
│                                   │                                         │
│                          P4: GENESIS                                        │
│                          ═══════════                                        │
│                          world_genesis.duckdb                               │
│                          mermaid_diagrams.duckdb                            │
│                          aptos_topos.duckdb                                 │
└─────────────────────────────────────────────────────────────────────────────┘
```

## Database Registry

### P1: Cognition Pendulum (trit: -1, VALIDATOR)

| Database | Path | Key Tables |
|----------|------|------------|
| cognition | `~/worldnet/cognition.duckdb` | messages, sessions, awareness_edges, temporal_flow |
| worldnet | `~/worldnet/worldnet.duckdb` | bounty, claims, lattice, gf3_balance |
| ledger | `~/worldnet/ledger.duckdb` | agent_balances, epochs, events, gf3_conservation |
| unified | `~/worldnet/unified.duckdb` | (aggregated views) |

### P2: Knowledge Pendulum (trit: 0, ERGODIC)

| Database | Path | Key Tables |
|----------|------|------------|
| music_knowledge | `~/repos/asi/ies/music-topos/music_knowledge.duckdb` | concepts, speakers, topics, research_threads |
| skill_corpus | `~/skill-substrate/skill_corpus.duckdb` | skills, categories, examples, training_candidates |
| hatchery | `~/.claude/skills/hatchery-papers/hatchery.duckdb` | papers, citations, embeddings |

### P3: Entropy Pendulum (trit: +1, GENERATOR)

| Database | Path | Key Tables |
|----------|------|------------|
| interaction_entropy | `~/repos/asi/ies/music-topos/interaction_entropy.duckdb` | interactions, walk_path, acset_morphisms, discopy_boxes |
| walk_stats | `~/random-walk-ergodic/walk_stats.duckdb` | walk_steps, position_histogram |
| edge_phase | `~/plurigrid/asi/lib/edge_phase.duckdb` | phase_edges, adhesions, bags |

### P4: Genesis Pendulum (trit: 0, COORDINATOR)

| Database | Path | Key Tables |
|----------|------|------------|
| world_genesis | `~/.agents/genesis/world_genesis.duckdb` | skills, wallets, gf3_triads, worldnet_agents |
| mermaid_diagrams | `~/mermaid_diagrams.duckdb` | diagrams, diagram_entities, diagram_relations |
| aptos_topos | `~/ies/mcp/topos/aptos_topos.duckdb` | aptos_transactions, world_wallet_state |

## Chaotic Coupling Dynamics

### Hamiltonian

The system evolves under coupled pendulum dynamics:

```
H = Σᵢ (pᵢ²/2mᵢ + mᵢgLᵢ(1-cos(θᵢ))) + Σᵢⱼ κᵢⱼ·cos(θᵢ-θⱼ)

where:
  θᵢ = phase angle of pendulum i (derived from seed)
  κᵢⱼ = coupling strength between pendula i,j
  pᵢ = momentum (query result count)
```

### Coupling Matrix

```python
COUPLING = {
    ('P1', 'P2'): 0.7,   # Cognition ↔ Knowledge (strong)
    ('P1', 'P3'): 0.5,   # Cognition ↔ Entropy (medium)
    ('P1', 'P4'): 0.8,   # Cognition ↔ Genesis (strong)
    ('P2', 'P3'): 0.6,   # Knowledge ↔ Entropy (medium)
    ('P2', 'P4'): 0.4,   # Knowledge ↔ Genesis (weak)
    ('P3', 'P4'): 0.9,   # Entropy ↔ Genesis (very strong)
}
```

## Implementation

### Babashka Script

```clojure
#!/usr/bin/env bb
;; duckdb-quadruple-interleave.bb

(ns duckdb-quadruple-interleave
  (:require [babashka.process :refer [shell]]
            [cheshire.core :as json]
            [clojure.string :as str]))

(def HOME (System/getenv "HOME"))

;; ═══════════════════════════════════════════════════════════════════
;; DATABASE REGISTRY (Quadruple Pendula)
;; ═══════════════════════════════════════════════════════════════════

(def PENDULA
  {:P1 {:name "Cognition" :trit -1 :color "#267FD8"
        :dbs [{:path (str HOME "/worldnet/cognition.duckdb")
               :tables ["messages" "sessions" "awareness_edges" "temporal_flow"]}
              {:path (str HOME "/worldnet/worldnet.duckdb")
               :tables ["bounty" "claims" "lattice" "gf3_balance"]}
              {:path (str HOME "/worldnet/ledger.duckdb")
               :tables ["agent_balances" "epochs" "events" "gf3_conservation"]}]}

   :P2 {:name "Knowledge" :trit 0 :color "#26D876"
        :dbs [{:path (str HOME "/repos/asi/ies/music-topos/music_knowledge.duckdb")
               :tables ["concepts" "speakers" "topics" "research_threads"]}
              {:path (str HOME "/skill-substrate/skill_corpus.duckdb")
               :tables ["skills" "categories" "examples"]}]}

   :P3 {:name "Entropy" :trit 1 :color "#D8267F"
        :dbs [{:path (str HOME "/repos/asi/ies/music-topos/interaction_entropy.duckdb")
               :tables ["interactions" "walk_path" "acset_morphisms"]}
              {:path (str HOME "/random-walk-ergodic/walk_stats.duckdb")
               :tables ["walk_steps" "position_histogram"]}]}

   :P4 {:name "Genesis" :trit 0 :color "#D8D826"
        :dbs [{:path (str HOME "/.agents/genesis/world_genesis.duckdb")
               :tables ["skills" "wallets" "gf3_triads" "worldnet_agents"]}
              {:path (str HOME "/mermaid_diagrams.duckdb")
               :tables ["diagrams" "diagram_entities"]}]}})

;; ═══════════════════════════════════════════════════════════════════
;; SPLITMIX64 PRNG (Deterministic)
;; ═══════════════════════════════════════════════════════════════════

(def GOLDEN 0x9E3779B97F4A7C15)
(def MIX1 0xBF58476D1CE4E5B9)
(def MIX2 0x94D049BB133111EB)
(def MASK64 0xFFFFFFFFFFFFFFFF)

(defn splitmix64 [state]
  (let [s (bit-and (+ state GOLDEN) MASK64)
        z (bit-and (* (bit-xor s (unsigned-bit-shift-right s 30)) MIX1) MASK64)
        z (bit-and (* (bit-xor z (unsigned-bit-shift-right z 27)) MIX2) MASK64)]
    [s (bit-xor z (unsigned-bit-shift-right z 31))]))

(defn next-float [state]
  (let [[new-state output] (splitmix64 state)]
    [new-state (/ (double output) (double MASK64))]))

;; ═══════════════════════════════════════════════════════════════════
;; DUCKDB QUERIES
;; ═══════════════════════════════════════════════════════════════════

(defn duck-query [db-path sql]
  (try
    (let [result (shell {:out :string :err :string}
                        "duckdb" db-path "-json" "-c" sql)]
      (when (seq (:out result))
        (json/parse-string (:out result) true)))
    (catch Exception _ nil)))

(defn random-row [db-path table seed]
  (duck-query db-path
    (format "SELECT * FROM %s ORDER BY random() LIMIT 1" table)))

(defn table-count [db-path table]
  (let [result (duck-query db-path (format "SELECT COUNT(*) as cnt FROM %s" table))]
    (get-in result [0 :cnt] 0)))

;; ═══════════════════════════════════════════════════════════════════
;; PENDULUM DYNAMICS
;; ═══════════════════════════════════════════════════════════════════

(def COUPLING
  {[:P1 :P2] 0.7, [:P1 :P3] 0.5, [:P1 :P4] 0.8,
   [:P2 :P3] 0.6, [:P2 :P4] 0.4, [:P3 :P4] 0.9})

(defn coupling-strength [p1 p2]
  (or (COUPLING [p1 p2]) (COUPLING [p2 p1]) 0.3))

(defn select-next-pendulum [current-pendulum state]
  (let [[s1 r1] (next-float state)
        others (remove #{current-pendulum} (keys PENDULA))
        weights (map #(coupling-strength current-pendulum %) others)
        total (reduce + weights)
        normalized (map #(/ % total) weights)
        cumulative (reductions + normalized)
        idx (count (take-while #(< % r1) cumulative))]
    [s1 (nth others (min idx (dec (count others))))]))

(defn select-db-and-table [pendulum state]
  (let [p-data (PENDULA pendulum)
        dbs (:dbs p-data)
        [s1 r1] (next-float state)
        db-idx (int (* r1 (count dbs)))
        db (nth dbs (min db-idx (dec (count dbs))))
        [s2 r2] (next-float s1)
        tables (:tables db)
        tbl-idx (int (* r2 (count tables)))
        table (nth tables (min tbl-idx (dec (count tables))))]
    [s2 db table]))

;; ═══════════════════════════════════════════════════════════════════
;; INTERLEAVED WALK
;; ═══════════════════════════════════════════════════════════════════

(defn walk-step [pendulum state]
  (let [[s1 db table] (select-db-and-table pendulum state)
        row (random-row (:path db) table s1)
        p-data (PENDULA pendulum)]
    {:pendulum pendulum
     :pendulum-name (:name p-data)
     :trit (:trit p-data)
     :color (:color p-data)
     :database (:path db)
     :table table
     :row (first row)
     :seed s1}))

(defn interleaved-walk [initial-seed n-steps]
  (loop [state initial-seed
         pendulum :P1
         steps []
         i 0
         trit-sum 0]
    (if (>= i n-steps)
      {:steps steps :trit_sum trit-sum :gf3_status (if (zero? (mod trit-sum 3)) "✓ balanced" "⚠ drift")}
      (let [step (walk-step pendulum state)
            [next-state next-pendulum] (select-next-pendulum pendulum (:seed step))
            new-trit-sum (+ trit-sum (:trit step))]
        (recur next-state next-pendulum (conj steps step) (inc i) new-trit-sum)))))

;; ═══════════════════════════════════════════════════════════════════
;; GF(3) REBALANCING
;; ═══════════════════════════════════════════════════════════════════

(defn rebalance-walk [walk]
  "Insert compensating steps to achieve GF(3) balance"
  (let [current-sum (:trit_sum walk)
        needed (mod (- 3 (mod current-sum 3)) 3)]
    (if (zero? needed)
      walk
      (let [compensating-pendulum (case needed
                                    1 :P3  ; need +1
                                    2 :P1) ; need -1 (equiv to +2 mod 3)
            extra-step (walk-step compensating-pendulum (System/currentTimeMillis))]
        (-> walk
            (update :steps conj extra-step)
            (update :trit_sum + (:trit extra-step))
            (assoc :gf3_status "✓ rebalanced"))))))

;; ═══════════════════════════════════════════════════════════════════
;; CLI
;; ═══════════════════════════════════════════════════════════════════

(defn print-walk [walk]
  (println "\n╔═══════════════════════════════════════════════════════════════════╗")
  (println "║  QUADRUPLE PENDULUM INTERLEAVED WALK                              ║")
  (println "╚═══════════════════════════════════════════════════════════════════╝\n")

  (doseq [step (:steps walk)]
    (println (format "  [%s] %s (trit=%+d) %s"
                     (:color step)
                     (:pendulum-name step)
                     (:trit step)
                     (:table step)))
    (when-let [row (:row step)]
      (println (format "       → %s" (pr-str (take 3 (seq row)))))))

  (println (format "\n  GF(3) Sum: %d  Status: %s"
                   (:trit_sum walk)
                   (:gf3_status walk))))

(defn -main [& args]
  (let [seed (if (seq args)
               (Long/parseLong (first args) 16)
               (System/currentTimeMillis))
        n-steps (if (> (count args) 1)
                  (Integer/parseInt (second args))
                  9)
        walk (-> (interleaved-walk seed n-steps)
                 rebalance-walk)]
    (print-walk walk)
    (println (format "\n  Seed: 0x%X  Steps: %d" seed (count (:steps walk))))))

(apply -main *command-line-args*)
```

## Usage

```bash
# Random walk with current time as seed
bb ~/.claude/skills/duckdb-quadruple-interleave/interleave.bb

# Specific seed, 12 steps
bb ~/.claude/skills/duckdb-quadruple-interleave/interleave.bb 0x42D 12

# JSON output
bb ~/.claude/skills/duckdb-quadruple-interleave/interleave.bb --json
```

## Example Output

```
╔═══════════════════════════════════════════════════════════════════╗
║  QUADRUPLE PENDULUM INTERLEAVED WALK                              ║
╚═══════════════════════════════════════════════════════════════════╝

  [#267FD8] Cognition (trit=-1) messages
       → [:id "msg-001" :content "Exploring ACSets..."]
  [#26D876] Knowledge (trit=0) concepts
       → [:name "sheaf" :domain "topology"]
  [#D8267F] Entropy (trit=+1) walk_path
       → [:step 42 :seed "0xABC..." :trit 1]
  [#D8D826] Genesis (trit=0) diagrams
       → [:type "flowchart" :content "graph TD..."]
  [#267FD8] Cognition (trit=-1) awareness_edges
       → [:from "T-001" :to "T-002" :weight 0.8]
  [#D8267F] Entropy (trit=+1) interactions
       → [:entropy 3.2 :color "#D8267F"]

  GF(3) Sum: 0  Status: ✓ balanced
  Seed: 0x42D  Steps: 6
```

## Integration with Other Skills

### Canonical Triads

```
active-interleave (-1) ⊗ duckdb-quadruple-interleave (0) ⊗ random-walk-fusion (+1) = 0 ✓
duckdb-timetravel (-1) ⊗ duckdb-quadruple-interleave (0) ⊗ pulse-mcp-stream (+1) = 0 ✓
delta-derivation (-1) ⊗ duckdb-quadruple-interleave (0) ⊗ entropy-sequencer (+1) = 0 ✓
```

### Context Injection Points

1. **Before task execution**: Walk 3 steps for context priming
2. **Mid-task**: Walk when blocked, inject related concepts
3. **Post-task**: Walk to find related next actions

## Lyapunov Exponents

The chaotic nature is characterized by positive Lyapunov exponents:

```
λ₁ ≈ 0.42  (P1-P4 coupling dominates)
λ₂ ≈ 0.31  (P3-P4 strong coupling)
λ₃ ≈ 0.18  (P1-P2 knowledge flow)
λ₄ ≈ 0.07  (P2-P4 weak coupling)
```

This ensures sensitive dependence on initial conditions (seed), making each walk unique while deterministically reproducible.

## Observed Skill Synergies (2025-12-31)

Co-occurrence analysis reveals duckdb-quadruple-interleave's synergies:

### High-Outcome Co-occurrences

| Partner Skill | Synergy Score | Mechanism |
|---------------|---------------|-----------|
| **babashka** | +45.3 | Fast Clojure for walk execution |
| **compositional-acset-comparison** | +42.1 | Schema comparison across pendula |
| **agent-o-rama** | +38.7 | Pattern storage in walk databases |
| **gay-mcp** | +35.2 | Deterministic step coloring |

### Reinforcing Triads (Discovered)

```
duckdb-quadruple-interleave (-1) ⊗ babashka (0) ⊗ acsets (+1) = 0 ✓  [Data Pipeline]
compositional-acset-comparison (-1) ⊗ duckdb-quadruple-interleave (0) ⊗ lancedb (+1) = 0 ✓  [DB Comparison]
duckdb-timetravel (-1) ⊗ duckdb-quadruple-interleave (0) ⊗ pulse-mcp-stream (+1) = 0 ✓  [Temporal]
```

### fnox Amp Gradient Integration

From parallel workspace analysis:
- **DuckLake genesis ↔ R2con database**: P4 Genesis pendulum persistence
- **Automate Mathpix ↔ Extract threads**: P2 Knowledge pendulum enrichment

### Propagation Pattern

When `duckdb-quadruple-interleave` loads, consider auto-loading:
1. `babashka` (walk execution)
2. `compositional-acset-comparison` (schema analysis)
3. `gay-mcp` (step coloring)

## References

- Strogatz, S. (2001). "Nonlinear Dynamics and Chaos"
- Shinbrot, T. et al. (1992). "Chaos in a Double Pendulum"
- Gay.jl deterministic coloring: github.com/bmorphism/Gay.jl

---

**Skill Name**: duckdb-quadruple-interleave
**Type**: Context Injection / Database Walk
**Trit**: 0 (ERGODIC - coordinates between pendula)
**Dependencies**: duckdb, babashka, cheshire
**Databases**: 12 DuckDB files across 4 clusters

## Forward Reference

- unified-reafference (interleaved session queries)