Claude-skill-registry abductive-repl
Hypothesis-Test Loops via REPL for Exploratory Abductive Inference with Gay.jl colors
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/abductive-repl" ~/.claude/skills/majiayu000-claude-skill-registry-abductive-repl && rm -rf "$T"
manifest:
skills/data/abductive-repl/SKILL.mdsource content
abductive-repl
Hypothesis-Test Loops via REPL for Exploratory Abductive Inference
Version: 1.1.0 (music-topos enhanced) Trit: 0 (Ergodic - coordinates inference) Bundle: repl
Overview
Abductive-REPL enables exploratory abductive reasoning through an interactive REPL. Given observed outcomes, it generates hypotheses, tests them, and refines understanding through iterative loops.
Core Concept
Observation → Generate Hypotheses → Test → Refine → Repeat Abduction: Given effect E and rule "A implies E", hypothesize A as possible cause.
Enhanced Integration: Interpreters
Julia (Gay.jl) - Primary
# Start abductive REPL with Gay.jl julia --project=Gay.jl -e 'using Gay; Gay.repl()' # In REPL: gay> !abduce 216 125 157 # Searches invader space for color match
Hy (HyJAX) - Secondary
;; thread_relational_hyjax.hy integration (import lib.thread_relational_hyjax :as tra) (defn abduce-from-color [r g b] "Abduce invader ID from observed RGB" (let [target [r g b] analyzer (tra.ThreadRelationalAnalyzer)] ;; Search hypothesis space (lfor id (range 1 10000) :if (color-match? id target 0.05) {:hypothesis id :confidence (- 1.0 (color-distance id target))})))
Babashka (bb) - Scripting
;; abductive_repl.bb (require '[babashka.process :refer [shell]]) (defn abduce [observed-color] (let [result (shell {:out :string} "julia" "--project=Gay.jl" "-e" (format "using Gay; Gay.abduce(RGB(%s))" (clojure.string/join "," observed-color)))] (parse-hypotheses (:out result))))
REPL Commands Enhanced
| Command | Description | Interpreter |
|---|---|---|
| Jump to invader's world state | Julia |
| Infer invader from observed RGB | Julia/Hy |
| Run n abductive roundtrip tests | Julia |
| Run HyJAX relational analysis | Hy |
| Export hypotheses via Babashka | Babashka |
Properties (Testable Predicates)
# world_broadcast.rb integration module AbductiveProperties def self.spi_determinism(id, seed) # Same input always produces same output c1 = WorldBroadcast::CondensedAnima.liquid_norm([id], r: 0.5) c2 = WorldBroadcast::CondensedAnima.liquid_norm([id], r: 0.5) c1 == c2 end def self.abductive_roundtrip(id, seed) # Forward → Abduce → Verify forward = CondensedAnima.analytic_stack([id]) cellular = CondensedAnima.to_cellular_sheaf(forward) cellular[:vertices].include?(id) end end
GF(3) Triad Integration
| Trit | Skill | Role |
|---|---|---|
| -1 | slime-lisp | Validates REPL expressions |
| 0 | abductive-repl | Coordinates inference |
| +1 | cider-clojure | Generates evaluations |
Conservation: (-1) + (0) + (+1) = 0 ✓
Justfile Recipes
# Start abductive REPL abduce-repl: julia --project=Gay.jl -e 'using Gay; Gay.repl()' # Run via Hy abduce-hy: uv run hy -c '(import lib.thread_relational_hyjax) (print "HyJAX ready")' # Babashka roundtrip test abduce-bb-test n="100": bb -e '(println "Abductive tests:" {{n}})'
Related Skills
- Possible world navigationworld-hopping
- Derivation chainsunworld
- Color generationgay-mcp
- 6-functor sheaf bridgecondensed-analytic-stacks