Claude-skill-registry entropy-sequencer
Layer 5 Interaction Interleaving for Maximum Information Gain with DuckDB
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/entropy-sequencer" ~/.claude/skills/majiayu000-claude-skill-registry-entropy-sequencer && rm -rf "$T"
manifest:
skills/data/entropy-sequencer/SKILL.mdsource content
entropy-sequencer
Layer 5: Interaction Interleaving for Maximum Information Gain
Version: 1.1.0 (music-topos enhanced) Trit: 0 (Ergodic - coordinates information flow) Bundle: core
Overview
Entropy-sequencer arranges interaction sequences to maximize learning efficiency. Instead of chronological replay, it reorders interactions to maximize information gain at each step, enabling 3x faster pattern learning.
Enhanced Integration: DuckDB + Hy
DuckDB SQL Backend
-- Compute entropy for message sequences WITH message_features AS ( SELECT message_id, LENGTH(content) as msg_length, LAG(LENGTH(content)) OVER (ORDER BY timestamp) as prev_length FROM messages WHERE thread_id = ? ), entropy_scores AS ( SELECT message_id, ABS(msg_length - COALESCE(prev_length, msg_length)) as surprise FROM message_features ) SELECT SUM(LN(surprise + 1)) as total_entropy FROM entropy_scores;
Hy Implementation
;; From thread_relational_hyjax.hy (defn entropy-maximized-interleave [messages] "Arrange messages to maximize information gain at each step." (setv remaining (list messages)) (setv result []) (setv current-entropy 0.0) (while remaining (setv best-idx 0) (setv best-gain -1000.0) (for [i (range (len remaining))] (setv candidate (+ result [(get remaining i)])) (setv gain (information-gain candidate current-entropy)) (when (> gain best-gain) (setv best-gain gain) (setv best-idx i))) (setv best-msg (.pop remaining best-idx)) (.append result best-msg) (setv current-entropy (compute-message-entropy result))) {:sequence result :final-entropy current-entropy :message-count (len result)})
Ruby Integration
# lib/world_broadcast.rb extension module EntropySequencer def self.greedy_max_entropy(interactions, seed: 0x42D) remaining = interactions.dup sequence = [] context = [] while remaining.any? best_idx = 0 best_gain = -Float::INFINITY remaining.each_with_index do |interaction, i| gain = conditional_entropy(interaction, context) if gain > best_gain best_gain = gain best_idx = i end end best = remaining.delete_at(best_idx) sequence << best context << best end sequence end def self.conditional_entropy(item, context) return 1.0 if context.empty? # Entropy = log of variance from context mean mean = context.sum.to_f / context.size variance = (item - mean).abs Math.log(variance + 1) end end
Interleaving Strategies
| Strategy | Predictability | Info Gain |
|---|---|---|
| Sequential | 0.85 (high) | 1.0x |
| Entropy-Maximized | 0.23 (low) | 3.2x |
| Topic-Switched | 0.45 (medium) | 2.1x |
| Network-Flow | 0.55 | 1.8x |
GF(3) Triad Integration
| Trit | Skill | Role |
|---|---|---|
| -1 | three-match | Reduces/validates sequence constraints |
| 0 | entropy-sequencer | Coordinates optimal ordering |
| +1 | triad-interleave | Generates interleaved streams |
Conservation: (-1) + (0) + (+1) = 0 ✓
Justfile Recipes
# Optimize sequence via Hy entropy-hy: uv run hy lib/thread_relational_hyjax.hy # DuckDB entropy query entropy-duckdb db="interactions.duckdb": duckdb {{db}} -c "SELECT * FROM entropy_analysis LIMIT 10" # Ruby entropy test entropy-rb: ruby -I lib -r world_broadcast -e "puts WorldBroadcast::EntropySequencer.greedy_max_entropy([1,5,2,8,3]).inspect"
Related Skills
- Generates base interleaved streamstriad-interleave
(Layer 4) - Consumes optimized sequencesagent-o-rama
- Deterministic seedinggay-mcp
- Time-travel queriesduckdb-temporal-versioning