From asi
Lints Clojure code using Joker (Go-based interpreter) for fast JVM-free static analysis, detecting unused functions/bindings and style issues.
How this skill is triggered — by the user, by Claude, or both
Slash command
/asi:joker-lintThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> *"Fast Clojure linting in Go. No JVM. Instant feedback."*
"Fast Clojure linting in Go. No JVM. Instant feedback."
Joker Lint uses the Joker interpreter (Clojure in Go) for fast static analysis and linting. Sub-second startup, no JVM required.
| Aspect | Value |
|---|---|
| Trit | -1 (MINUS) |
| Role | VALIDATOR |
| Function | Validates Clojure code style and correctness |
# macOS
brew install candid82/brew/joker
# From source
go install github.com/candid82/joker@latest
# Lint a file
joker --lint src/core.clj
# Lint with specific rules
joker --lint --working-dir . src/**/*.clj
# Format check
joker --format src/core.clj
# REPL mode
joker
;; .joker configuration
{:rules {:no-unused-fn true
:no-unused-bindings true
:no-private-access true
:no-redeclare true
:if-without-else :warning}}
;; Use both for comprehensive linting
(defn lint-project []
(let [joker-results (joker-lint "src/")
kondo-results (clj-kondo-lint "src/")]
{:joker joker-results
:kondo kondo-results
:total-issues (+ (count joker-results)
(count kondo-results))}))
;; Linting as validation (-1)
;; Code generation as (+1)
;; Formatting as coordination (0)
(def lint-triad
{:generator {:tool "cursive-gen" :trit +1}
:coordinator {:tool "cljfmt" :trit 0}
:validator {:tool "joker-lint" :trit -1}})
(defn balanced-code-flow [code]
(-> code
(generate) ; +1
(format-code) ; 0
(lint))) ; -1
;; Σ = +1 + 0 + (-1) = 0 ✓
#!/usr/bin/env bb
(require '[babashka.process :refer [shell]])
(defn joker-lint [path]
(let [result (shell {:out :string :err :string :continue true}
"joker" "--lint" path)]
{:exit (:exit result)
:issues (parse-lint-output (:out result))
:trit -1})) ; Validation role
(defn lint-and-report [paths]
(->> paths
(map joker-lint)
(mapcat :issues)
(group-by :severity)))
| Tool | Startup | 1000 lines |
|---|---|---|
| Joker | 10ms | 50ms |
| clj-kondo | 100ms | 200ms |
| Eastwood | 5s | 10s |
joker-lint (-1) ⊗ cljfmt (0) ⊗ cursive-gen (+1) = 0 ✓
joker-lint (-1) ⊗ babashka-clj (0) ⊗ clojure (+1) = 0 ✓
joker-lint (-1) ⊗ clj-kondo-3color (0) ⊗ squint-runtime (+1) = 0 ✓
Skill Name: joker-lint Type: Static Analysis / Linting Trit: -1 (MINUS - VALIDATOR) GF(3): Validates Clojure code correctness
This skill connects to the K-Dense-AI/claude-scientific-skills ecosystem:
general: 734 citations in bib.duckdbThis skill maps to Cat# = Comod(P) as a bicomodule in the Prof home:
Trit: 0 (ERGODIC)
Home: Prof (profunctors/bimodules)
Poly Op: ⊗ (parallel composition)
Kan Role: Adj (adjunction bridge)
The skill participates in triads where:
(-1) + (0) + (+1) ≡ 0 (mod 3)
This ensures compositional coherence in the Cat# equipment structure.
npx claudepluginhub plurigrid/asi --plugin asiIntegrates clj-kondo linter with Gay.jl 3-color streams for GF(3) trit-based diagnostics and conservation checks in Clojure code.
Guides Clojure and ClojureScript development with REPL-driven workflow, coding conventions, and best practices. Use when writing, developing, or refactoring Clojure/ClojureScript code.
Reviews Clojure/ClojureScript code changes for compliance with Metabase coding standards, style violations, and code quality issues during pull request review.