Back to skills
SkillHub ClubShip Full StackFull Stack
abductive-repl
Imported from https://github.com/plurigrid/asi.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Stars
10
Hot score
84
Updated
March 19, 2026
Overall rating
C3.7
Composite score
3.7
Best-practice grade
B80.4
Install command
npx @skill-hub/cli install plurigrid-asi-abductive-repl
Repository
plurigrid/asi
Skill path: ies/music-topos/.agents/skills/abductive-repl
Imported from https://github.com/plurigrid/asi.
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: plurigrid.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install abductive-repl into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/plurigrid/asi before adding abductive-repl to shared team environments
- Use abductive-repl for development workflows
Works across
Claude CodeCodex CLIGemini CLIOpenCode
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: abductive-repl
description: "Hypothesis-Test Loops via REPL for Exploratory Abductive Inference with Gay.jl colors"
---
# 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
```julia
# 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
```hy
;; 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
```clojure
;; 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 |
|---------|-------------|-------------|
| `!teleport <id>` | Jump to invader's world state | Julia |
| `!abduce r g b` | Infer invader from observed RGB | Julia/Hy |
| `!test [n]` | Run n abductive roundtrip tests | Julia |
| `!hy-analyze` | Run HyJAX relational analysis | Hy |
| `!bb-export` | Export hypotheses via Babashka | Babashka |
## Properties (Testable Predicates)
```ruby
# 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
```makefile
# 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
- `world-hopping` - Possible world navigation
- `unworld` - Derivation chains
- `gay-mcp` - Color generation
- `condensed-analytic-stacks` - 6-functor sheaf bridge