Claude Code Plugins

Community-maintained marketplace

Feedback

ies

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name ies
description ies
version 1.0.0

ies

FloxHub bmorphism/ies - Clojure/Julia/Python/multimedia environment with Gay.jl coloring, Flox composition, and DuckDB social analysis.

Trit Assignment: 0 (ERGODIC) - Coordinator role for environment orchestration.

Canonical Triads:

polyglot-spi (-1) ⊗ ies (0) ⊗ gay-mcp (+1) = 0 ✓  [Environment]
three-match (-1) ⊗ ies (0) ⊗ pulse-mcp-stream (+1) = 0 ✓  [Social Analysis]
influence-propagation (-1) ⊗ ies (0) ⊗ agent-o-rama (+1) = 0 ✓  [Cognitive Surrogate]

Quick Start

# Activate from FloxHub
flox activate -r bmorphism/ies

# Or clone locally
flox pull -r bmorphism/ies ~/ies
flox activate -d ~/ies

# Verify Gay.jl integration
echo $GAY_SEED      # 69
echo $GAY_PORT      # 42069

Installed Packages (10)

Package Version Description
babashka 1.12.208 Clojure scripting (no JVM startup)
clojure 1.12.2.1565 JVM Lisp
jdk 21.0.8 OpenJDK
julia-bin 1.11.7 Technical computing
ffmpeg 7.1.1 Media processing
python312 3.12.11 Python interpreter
coreutils 9.8 GNU utilities
tailscale 1.88.4 Mesh VPN
enchant2 2.6.9 Spell checking
pkg-config 0.29.2 Build configuration

Environment Composition

Include Syntax

Compose environments via manifest.toml:

[include]
environments = [
  # FloxHub remote environments
  { remote = "bmorphism/effective-topos" },
  { remote = "flox/python-dev" },
  
  # Local environments (relative or absolute path)
  { dir = "../shared-tools" },
  { dir = "/Users/bob/.flox/environments/common" },
]

Merge Rules by Section

Section Merge Behavior
[install] Union - packages from all envs combined
[vars] Last wins - later env overrides earlier
[hook] Concatenate - all on-activate scripts run in order
[profile] Concatenate - all shell init scripts run in order
[services] Union with override - later service definitions win
[options] Last wins - later options override

Priority Order

When composing [A, B, C]:

  1. A is loaded first (lowest priority)
  2. B overrides A for conflicts
  3. C overrides both (highest priority)
  4. Current manifest overrides all includes

Example: IES + effective-topos Composition

# ~/ies/.flox/env/manifest.toml
version = 1

[include]
environments = [
  { remote = "bmorphism/effective-topos" }  # guile, ghc, cargo
]

[install]
# IES-specific packages (merged with effective-topos)
babashka.pkg-path = "babashka"
julia-bin.pkg-path = "julia-bin"
ffmpeg.pkg-path = "ffmpeg"

[vars]
# Overrides effective-topos GAY_SEED if set there
GAY_SEED = "69"
GAY_PORT = "42069"

[hook]
on-activate = '''
  # Runs AFTER effective-topos hook
  echo "IES environment ready"
  echo "Gay seed: $GAY_SEED"
'''

[profile]
common = '''
  # Appended to effective-topos profile
  alias gaybb="bb gay.bb"
'''

Nested Composition

Environments can include environments that include other environments:

ies
 └── includes effective-topos
      └── includes flox/base-dev
           └── includes common-tools

Merge proceeds depth-first, left-to-right.


DuckDB Social Analysis

Schema for Bluesky/Social Data

-- Create tables for social analysis
CREATE TABLE posts (
  post_id VARCHAR PRIMARY KEY,
  author_did VARCHAR NOT NULL,
  author_handle VARCHAR,
  text TEXT,
  created_at TIMESTAMP,
  indexed_at TIMESTAMP,
  likes INT DEFAULT 0,
  reposts INT DEFAULT 0,
  replies INT DEFAULT 0,
  gay_color VARCHAR,  -- Deterministic color from Gay.jl
  gay_index INT       -- Index in color stream
);

CREATE TABLE interactions (
  interaction_id VARCHAR PRIMARY KEY,
  post_id VARCHAR REFERENCES posts(post_id),
  actor_did VARCHAR,
  actor_handle VARCHAR,
  interaction_type VARCHAR,  -- 'like', 'repost', 'reply', 'quote'
  created_at TIMESTAMP,
  text TEXT,  -- For replies/quotes
  sentiment VARCHAR
);

CREATE TABLE network (
  user_did VARCHAR PRIMARY KEY,
  handle VARCHAR,
  interaction_count INT,
  first_seen TIMESTAMP,
  last_seen TIMESTAMP,
  relationship_type VARCHAR,
  entropy_score FLOAT
);

-- Indexes for fast queries
CREATE INDEX idx_posts_author ON posts(author_did);
CREATE INDEX idx_posts_created ON posts(created_at);
CREATE INDEX idx_interactions_post ON interactions(post_id);
CREATE INDEX idx_interactions_type ON interactions(interaction_type);

Ingestion from Babashka

#!/usr/bin/env bb

(require '[babashka.http-client :as http])
(require '[cheshire.core :as json])
(require '[babashka.pods :as pods])

;; Load DuckDB pod
(pods/load-pod 'org.babashka/go-sqlite3 "0.1.0")
(require '[pod.babashka.go-sqlite3 :as sqlite])

(def db "social_analysis.duckdb")

(defn fetch-user-posts [handle]
  (-> (http/get (str "https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed"
                     "?actor=" handle "&limit=100"))
      :body
      (json/parse-string true)
      :feed))

(defn gay-color [index seed]
  (let [z (+ seed index)
        z (bit-xor z (unsigned-bit-shift-right z 30))
        z (* z 0xbf58476d1ce4e5b9)]
    (format "#%06X" (bit-and z 0xFFFFFF))))

(defn ingest-posts! [posts]
  (doseq [[idx post] (map-indexed vector posts)]
    (let [p (:post post)
          color (gay-color (inc idx) 69)]
      (sqlite/execute! db
        ["INSERT INTO posts (post_id, author_did, author_handle, text, created_at, gay_color, gay_index)
          VALUES (?, ?, ?, ?, ?, ?, ?)"
         (:uri p) (:did (:author p)) (:handle (:author p))
         (:text (:record p)) (:createdAt (:record p))
         color (inc idx)]))))

;; Usage
(def posts (fetch-user-posts "barton.bsky.social"))
(ingest-posts! posts)

Analysis Queries

-- Top engagers in network
SELECT handle, interaction_count, entropy_score
FROM network
ORDER BY interaction_count DESC
LIMIT 20;

-- Posting frequency by hour
SELECT EXTRACT(HOUR FROM created_at) as hour,
       COUNT(*) as post_count
FROM posts
GROUP BY hour
ORDER BY hour;

-- Topic clustering via text patterns
SELECT 
  CASE 
    WHEN text ILIKE '%category%' OR text ILIKE '%topos%' THEN 'math'
    WHEN text ILIKE '%code%' OR text ILIKE '%julia%' THEN 'programming'
    WHEN text ILIKE '%music%' OR text ILIKE '%sound%' THEN 'music'
    ELSE 'other'
  END as topic,
  COUNT(*) as count,
  AVG(likes) as avg_likes
FROM posts
GROUP BY topic
ORDER BY count DESC;

-- Interaction entropy over time
SELECT 
  DATE_TRUNC('day', created_at) as day,
  COUNT(DISTINCT interaction_type) as type_diversity,
  COUNT(*) as total_interactions,
  -SUM(p * LN(p)) as entropy
FROM (
  SELECT created_at, interaction_type,
         COUNT(*) OVER (PARTITION BY DATE_TRUNC('day', created_at), interaction_type) * 1.0 /
         COUNT(*) OVER (PARTITION BY DATE_TRUNC('day', created_at)) as p
  FROM interactions
) sub
GROUP BY day
ORDER BY day;

-- Gay color distribution (verify determinism)
SELECT gay_color, COUNT(*) as count
FROM posts
GROUP BY gay_color
ORDER BY count DESC
LIMIT 10;

Time-Travel Queries

-- Install temporal versioning extension
INSTALL temporal;
LOAD temporal;

-- Query posts as of specific timestamp
SELECT * FROM posts
FOR SYSTEM_TIME AS OF TIMESTAMP '2025-12-01 00:00:00';

-- Compare states between two points
SELECT 
  a.post_id,
  a.likes as likes_before,
  b.likes as likes_after,
  b.likes - a.likes as delta
FROM posts FOR SYSTEM_TIME AS OF '2025-12-01' a
JOIN posts FOR SYSTEM_TIME AS OF '2025-12-15' b
  ON a.post_id = b.post_id
WHERE b.likes > a.likes
ORDER BY delta DESC;

Gay.jl/Gay.bb Integration

Environment Variables

GAY_SEED=69           # Master seed for reproducibility
GAY_PORT=42069        # MCP server port
GAY_INTERVAL=30       # Color refresh interval (seconds)
GAY_MCP_PROJECT=~/Gay.jl  # Julia project path

Gay.bb (Babashka Implementation)

;; gay.bb - included in ies environment
(ns gay
  (:require [clojure.string :as str]))

(def ^:dynamic *seed* (parse-long (or (System/getenv "GAY_SEED") "69")))

(defn splitmix64 [state]
  (let [z (unchecked-add state 0x9e3779b97f4a7c15)
        z (unchecked-multiply
            (bit-xor z (unsigned-bit-shift-right z 30))
            0xbf58476d1ce4e5b9)
        z (unchecked-multiply
            (bit-xor z (unsigned-bit-shift-right z 27))
            0x94d049bb133111eb)]
    (bit-xor z (unsigned-bit-shift-right z 31))))

(defn color-at [index]
  (let [h (splitmix64 (+ *seed* index))
        hue (/ (mod h 360) 360.0)
        hex (format "#%06X" (bit-and h 0xFFFFFF))]
    {:index index :hue hue :hex hex}))

(defn palette [n]
  (mapv color-at (range 1 (inc n))))

;; Triadic stream (GF(3) conservation)
(defn triadic-colors [n]
  (let [colors (palette (* 3 n))]
    {:minus   (take-nth 3 colors)              ; trit -1
     :ergodic (take-nth 3 (drop 1 colors))     ; trit 0
     :plus    (take-nth 3 (drop 2 colors))}))  ; trit +1

Gay.jl (Julia Implementation)

# Activated via: julia --project=$GAY_MCP_PROJECT
using Gay

# Set environment seed
Gay.set_seed!(parse(Int, get(ENV, "GAY_SEED", "69")))

# Generate colors for IES packages
ies_packages = ["babashka", "clojure", "jdk", "julia-bin", "ffmpeg",
                "python312", "coreutils", "tailscale", "enchant2", "pkg-config"]

for (i, pkg) in enumerate(ies_packages)
    c = Gay.color_at(i)
    println("$(pkg): $(c.hex)")
end

# Triadic palette (GF(3) = 0)
triadic = Gay.triadic_palette(10)
# Returns: (minus=Color[], ergodic=Color[], plus=Color[])

Triadic Workflow

┌─────────────────────────────────────────────────────────┐
│  Trit 0 (ERGODIC): Julia Analysis                       │
│    └── Gay.jl color assignment                          │
│    └── DuckDB queries                                   │
│    └── Statistical summaries                            │
├─────────────────────────────────────────────────────────┤
│  Trit 1 (PLUS): Babashka Transform                      │
│    └── Gay.bb processing                                │
│    └── HTTP/API integration                             │
│    └── Data pipelines                                   │
├─────────────────────────────────────────────────────────┤
│  Trit 2 (MINUS): FFmpeg Render                          │
│    └── Media encoding                                   │
│    └── Visualization output                             │
│    └── Validation/verification                          │
└─────────────────────────────────────────────────────────┘

Pipeline Example

#!/usr/bin/env bb
(require '[babashka.process :as p])
(require '[cheshire.core :as json])

(defn triadic-pipeline [input-file]
  ;; Trit 0: Julia analysis
  (let [analysis (-> (p/shell {:out :string}
                       (format "julia -e 'using JSON; include(\"analyze.jl\"); println(JSON.json(analyze(\"%s\")))'"
                               input-file))
                     :out
                     (json/parse-string true))

        ;; Trit 1: Clojure transform
        transformed (-> analysis
                        (update :gamma #(* % 1.2))
                        (assoc :processed_at (java.time.Instant/now)))

        ;; Trit 2: FFmpeg render
        _ (p/shell (format "ffmpeg -i %s -vf 'eq=gamma=%f' -y output.mp4"
                           input-file
                           (:gamma transformed)))]

    {:analysis analysis
     :transformed transformed
     :output "output.mp4"}))

Services

# manifest.toml services section
[services.gaybb]
command = "bb -e '(require (quote gay)) (gay/start-server!)'"
shutdown.command = "pkill -f 'bb.*gay'"

[services.gaymcp]
command = "julia --project=$GAY_MCP_PROJECT $GAY_MCP_PROJECT/bin/gay-mcp"
shutdown.command = "pkill -f gay-mcp"
# Service management
flox services start          # Start all services
flox services start gaybb    # Start specific service
flox services status         # Check status
flox services logs gaybb     # View logs
flox services stop           # Stop all

Interoperability

With effective-topos

# Compose environments
cd ~/ies
cat >> .flox/env/manifest.toml << 'EOF'
[include]
environments = [{ remote = "bmorphism/effective-topos" }]
EOF
flox activate  # Now has guile, ghc, cargo + ies packages

Connection Points

ies-flox effective-topos Bridge
babashka guile Both Lisps, S-expressions
julia ocaml ML-family, ADTs
ffmpeg imagemagick Media processing
tailscale guile-goblins Distributed networking

FloxHub Publication

# Push updates to FloxHub
flox push -d ~/ies

# Pull latest
flox pull -r bmorphism/ies

# Fork to your namespace
flox pull -r bmorphism/ies --copy
flox push  # Pushes to your FloxHub

Aliases & Shortcuts

# Defined in [profile.common]
alias gaybb="bb gay.bb"
alias gaymcp="julia --project=\$GAY_MCP_PROJECT \$GAY_MCP_PROJECT/bin/gay-mcp"
alias ies-duck="duckdb social_analysis.duckdb"
alias ies-ingest="bb ingest.bb"

References

Scientific Skill Interleaving

This skill connects to the K-Dense-AI/claude-scientific-skills ecosystem:

Graph Theory

  • networkx [○] via bicomodule
    • Universal graph hub

Bibliography References

  • general: 734 citations in bib.duckdb

Cat# Integration

This skill maps to Cat# = Comod(P) as a bicomodule in the equipment structure:

Trit: 0 (ERGODIC)
Home: Prof
Poly Op: ⊗
Kan Role: Adj
Color: #26D826

GF(3) Naturality

The skill participates in triads satisfying:

(-1) + (0) + (+1) ≡ 0 (mod 3)

This ensures compositional coherence in the Cat# equipment structure.