git clone https://github.com/plurigrid/asi
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/asi/skills/squint-runtime" ~/.claude/skills/plurigrid-asi-squint-runtime-e4a0b0 && rm -rf "$T"
plugins/asi/skills/squint-runtime/SKILL.mdSquint Runtime Skill
Status: ✅ Production Ready Author: Michiel Borkent (borkdude) Trit: 0 (ERGODIC - neutral transport) Stars: 1.2k+
Overview
Squint is a light-weight ClojureScript dialect that compiles to JavaScript with minimal runtime overhead. It's the "minimal" alternative in borkdude's browser runtime spectrum.
When to Use Squint vs Cherry
| Aspect | Squint | Cherry 🍒 |
|---|---|---|
| Runtime size | Minimal (~10KB) | Full cljs.core (~100KB) |
| Semantics | JS-like | Full CLJS |
| Data structures | JS objects/arrays | Persistent immutable |
| Keywords | Strings | CLJS keywords |
| Interop | Seamless | Requires macros |
| JSX | ❌ | ✅ |
| Use case | Small scripts, interop | Full applications |
Installation
npm install squint-cljs@latest
Usage
;; example.cljs (ns example) ;; Functions compile to regular JS functions (defn greet [name] (str "Hello, " name "!")) ;; JS interop is seamless (js/console.log (greet "World")) ;; Object destructuring works naturally (defn process [{:keys [a b c]}] (+ a b c)) (process #js {:a 1 :b 2 :c 3}) ; => 6
Compile and Run
# Compile to JS npx squint compile example.cljs # Run directly npx squint run example.cljs
Key Differences from CLJS
-
Data structures are JS native:
{:a 1} ; => {a: 1} in JS (plain object) [1 2 3] ; => [1, 2, 3] in JS (array) -
Keywords become strings:
:foo ; => "foo" in JS -
No persistent data structures (use JS mutation)
-
Faster interop (no conversion needed)
Integration with Gay.jl Colors
(ns squint.gay-colors) ;; SplitMix64 constants (def GOLDEN 0x9E3779B97F4A7C15) (def MASK64 0xFFFFFFFFFFFFFFFF) (defn splitmix64 [state] (let [s (bit-and (+ state GOLDEN) MASK64) z (-> s (bit-xor (unsigned-bit-shift-right s 30)) (* 0xBF58476D1CE4E5B9) (bit-and MASK64)) z (-> z (bit-xor (unsigned-bit-shift-right z 27)) (* 0x94D049BB133111EB) (bit-and MASK64))] (bit-xor z (unsigned-bit-shift-right z 31)))) (defn color-at [seed idx] (loop [state seed i idx] (if (zero? i) (let [v (splitmix64 state) l (+ 10 (* 85 (/ (bit-and v 0xFF) 255))) c (* 100 (/ (bit-and (unsigned-bit-shift-right v 8) 0xFF) 255)) h (* 360 (/ (bit-and (unsigned-bit-shift-right v 16) 0xFFFF) 65535))] {:L l :C c :H h}) (recur (splitmix64 state) (dec i)))))
Commands
just squint-compile file.cljs # Compile CLJS to JS just squint-run file.cljs # Run CLJS file just squint-watch # Watch mode compilation
Skill Name: squint-runtime Type: ClojureScript Compiler Trit: 0 (ERGODIC) Invariant: ✅ Deterministic compilation
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
: 734 citations in bib.duckdbgeneral
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.