smithery/plurigrid

joker-lint

Joker Lint Skill

Installation

$ npx skills add smithery/plurigrid --skill joker-lint

Also in this package

Other skills from smithery/plurigrid · top by installs.

npx skills add smithery/plurigrid

Browse all from smithery/plurigrid

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,398 B
  • docs SUMMARY.md 34 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

joker-lint Skill

"Fast Clojure linting in Go. No JVM. Instant feedback."

Overview

Joker Lint uses the Joker interpreter (Clojure in Go) for fast static analysis and linting. Sub-second startup, no JVM required.

GF(3) Role

Aspect Value
Trit -1 (MINUS)
Role VALIDATOR
Function Validates Clojure code style and correctness

Installation

# macOS
brew install candid82/brew/joker

# From source
go install github.com/candid82/joker@latest

Core Commands

# 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

Lint Rules

;; .joker configuration
{:rules {:no-unused-fn true
         :no-unused-bindings true
         :no-private-access true
         :no-redeclare true
         :if-without-else :warning}}

Integration with clj-kondo

;; 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))}))

GF(3) Lint Triads

;; 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 ✓

Babashka Integration

#!/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)))

Performance

Tool Startup 1000 lines
Joker 10ms 50ms
clj-kondo 100ms 200ms
Eastwood 5s 10s

GF(3) Triads

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

Cat# Integration

This 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)

GF(3) Naturality

The skill participates in triads where:

(-1) + (0) + (+1) ≡ 0 (mod 3)

This ensures compositional coherence in the Cat# equipment structure.

REPL atlas

Part of: repl-commons. Family canonical: clojure.

Para(Optic) atlas

Part of: para-mensch-commons.