install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bmorphism-video-interleave" ~/.claude/skills/plurigrid-asi-bmorphism-video-interleave && rm -rf "$T"
manifest:
skills/bmorphism-video-interleave/SKILL.mdsource content
bmorphism Video Archive Interleave
Chromatic interleaving of bmorphism talk transcripts with skill corpus via GF(3)-conserved segment retrieval.
Archive Summary
| Video | Duration | Segments | Trit | Hue |
|---|---|---|---|---|
| AGI House Math Night | 65.9 min | 1,306 | ERGODIC (0) | 120° |
| AI Agents on Aptos | 16.5 min | 154 | PLUS (+1) | 30° |
| Plurigrid Energy | 72.2 min | 1,300 | MINUS (-1) | 240° |
| TOTAL | 154.6 min | 2,760 | Σ = 0 ✓ |
Database Schema (ACSet)
-- ~/bmorphism_talks.duckdb videos(id, title, duration_seconds, youtube_url) transcripts(id, video_id, segment_start, segment_end, text, confidence) topics(id, name, color_hue) video_topics(video_id, topic_id, trit) -- GF(3) typed
Interleave Patterns
1. Skill-to-Transcript Bridge
Query transcripts relevant to a skill:
-- Find segments mentioning category theory concepts SELECT v.title, t.segment_start, t.text FROM transcripts t JOIN videos v ON t.video_id = v.id WHERE t.text ILIKE '%functor%' OR t.text ILIKE '%category%' OR t.text ILIKE '%morphism%' ORDER BY t.segment_start;
2. GF(3) Conserved Retrieval
Retrieve balanced triads of segments:
;; Babashka query for balanced retrieval (require '[babashka.pods :as pods]) (pods/load-pod 'org.babashka/go-sqlite3 "0.1.0") (require '[pod.babashka.go-sqlite3 :as sqlite]) (defn balanced-segments [db topic] (let [minus (sqlite/query db "SELECT text FROM transcripts t JOIN video_topics vt ON t.video_id = vt.video_id WHERE vt.trit = -1 LIMIT 3") ergodic (sqlite/query db "SELECT text FROM transcripts t JOIN video_topics vt ON t.video_id = vt.video_id WHERE vt.trit = 0 LIMIT 3") plus (sqlite/query db "SELECT text FROM transcripts t JOIN video_topics vt ON t.video_id = vt.video_id WHERE vt.trit = 1 LIMIT 3")] {:minus minus :ergodic ergodic :plus plus :conserved? (= 0 (mod (+ (count minus) (- (count plus))) 3))}))
3. Temporal Chromatic Walk
Walk through video segments by timestamp, coloring by Gay.jl hue:
(defn chromatic-walk [db video-id] (let [segments (sqlite/query db "SELECT segment_start, text FROM transcripts WHERE video_id = ? ORDER BY segment_start" [video-id])] (map-indexed (fn [i seg] (let [hue (mod (* i 7) 360)] ; Prime stride for coverage (assoc seg :hue hue :trit (cond (or (< hue 60) (>= hue 300)) :plus (< hue 180) :ergodic :else :minus)))) segments)))
Topic Mapping
| Topic | Hue | Primary Video | Skills |
|---|---|---|---|
| Category Theory | 240° | AGI House | acsets, algebraic-rewriting |
| Blockchain/Aptos | 30° | AI Agents | aptos-agent, aptos-gf3-society |
| Energy Systems | 120° | Plurigrid | anoma-intents, crdt |
| Active Inference | 180° | AGI House | cognitive-superposition |
| Compositional | 300° | All | bisimulation-game |
Commands
# Query specific topic duckdb ~/bmorphism_talks.duckdb \ "SELECT text FROM transcripts WHERE text ILIKE '%active inference%'" # Get segment at timestamp duckdb ~/bmorphism_talks.duckdb \ "SELECT text FROM transcripts WHERE video_id = 1 AND segment_start BETWEEN 300 AND 360" # Export for skill training duckdb ~/bmorphism_talks.duckdb \ "COPY (SELECT text FROM transcripts) TO 'corpus.txt'"
Integration with Skill Corpus
Semantic Bridge Queries
-- Find skills mentioned in transcripts WITH skill_mentions AS ( SELECT t.text, s.name as skill FROM transcripts t CROSS JOIN skills s -- from skill_relations.duckdb WHERE t.text ILIKE '%' || s.name || '%' ) SELECT skill, COUNT(*) as mentions FROM skill_mentions GROUP BY skill ORDER BY mentions DESC;
Cross-Database Join (DuckDB)
ATTACH 'skill_relations.duckdb' AS skills_db; ATTACH 'bmorphism_talks.duckdb' AS talks_db; SELECT s.name, s.trit, COUNT(t.id) as segment_mentions FROM skills_db.skills s JOIN talks_db.transcripts t ON t.text ILIKE '%' || s.name || '%' GROUP BY s.name, s.trit ORDER BY segment_mentions DESC;
GF(3) Conservation Invariant
The archive maintains GF(3) balance:
AGI House (0) + AI Agents (+1) + Plurigrid (-1) = 0 ✓
When retrieving segments, always pull from all three videos proportionally to maintain conservation.
Cat# Integration
Trit: 0 (ERGODIC) - coordination role Home: Prof (profunctor category) Poly Op: ⊗ (tensor) Kan Role: Adj (adjunction) Color: #36E26C (hue 139°)
Triadic Composition
video-interleave (0) ⊗ chromatic-walk (+1) ⊗ sheaf-cohomology (-1) = 0 ✓
Files
- 3 MP3s + 3 JSON transcripts~/bmorphism_videos/
- ACSet database~/bmorphism_talks.duckdb
- Babashka transcription script~/transcribe_videos.bb