add-malli-schemas
Efficiently add Malli schemas to API endpoints in the Metabase codebase with proper patterns, validation timing, and error handling
Evaluate Clojure code via nREPL using clj-nrepl-eval. Use this when you need to test code, check if edited files compile, verify function behavior, or interact with a running REPL session.
$ npx -y skills add metabase/metabase --skill clojure-eval --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/clojure-evalContext preview
The summary Claude sees to decide when to auto-load this skill.
Evaluate Clojure code via nREPL using clj-nrepl-eval. Use this when you need to test code, check if edited files compile, verify function behavior, or interact with a running REPL session.
name: clojure-eval description: Evaluate Clojure code via nREPL using clj-nrepl-eval. Use this when you need to test code, check if edited files compile, verify function behavior, or interact with a running REPL session.
Use this skill when you need to:
The `clj-nrepl-eval` command evaluates Clojure code against an nREPL server. **Session state persists between evaluations**, so you can require a namespace in one evaluation and use it in subsequent calls. Each host:port combination maintains its own session file.
First, discover what nREPL servers are running in the current directory:
clj-nrepl-eval --discover-ports
This will show all nREPL servers (Clojure, Babashka, shadow-cljs, etc.) running in the current project directory.
**Then use the AskUserQuestion tool:**
IMPORTANT: IF you start a REPL do not supply a port let the nREPL start and return the port that it was started on.
> Evaluation automatically connects to the given port
Use the `-p` flag to specify the port and pass your Clojure code.
**Recommended: Pass code as a command-line argument:**
clj-nrepl-eval -p <PORT> "(+ 1 2 3)"
**For multiple expressions (single line):**
clj-nrepl-eval -p <PORT> "(def x 10) (+ x 20)"
**Alternative: Using heredoc (may require permission approval for multiline commands):**
clj-nrepl-eval -p <PORT> <<'EOF' (def x 10) (+ x 20) EOF
**Alternative: Via stdin pipe:**
echo "(+ 1 2 3)" | clj-nrepl-eval -p <PORT>
**Discover all nREPL servers in current directory:**
clj-nrepl-eval --discover-ports
Shows all running nREPL servers in the current project directory, including their type (clj/bb/basilisp) and whether they match the current working directory.
**Check previously connected sessions:**
clj-nrepl-eval --connected-ports
Shows only connections you have made before (appears after first evaluation on a port).
**Require a namespace (always use :reload to pick up changes):**
clj-nrepl-eval -p <PORT> "(require '[my.namespace :as ns] :reload)"
**Test a function after requiring:**
clj-nrepl-eval -p <PORT> "(ns/my-function arg1 arg2)"
**Check if a file compiles:**
clj-nrepl-eval -p <PORT> "(require 'my.namespace :reload)"
**Multiple expressions:**
clj-nrepl-eval -p <PORT> "(def x 10) (* x 2) (+ x 5)"
**Complex multiline code (using heredoc):**
clj-nrepl-eval -p <PORT> <<'EOF' (def x 10) (* x 2) (+ x 5) EOF
*Note: Heredoc syntax may require permission approval.*
**With custom timeout (in milliseconds):**
clj-nrepl-eval -p <PORT> --timeout 5000 "(long-running-fn)"
**Reset the session (clears all state):**
clj-nrepl-eval -p <PORT> --reset-session clj-nrepl-eval -p <PORT> --reset-session "(def x 1)"
1. Discover nREPL servers: `clj-nrepl-eval --discover-ports` 2. Use **AskUserQuestion** tool to prompt user to select a port 3. Require namespace:
clj-nrepl-eval -p <PORT> "(require '[my.ns :as ns] :reload)"
4. Test function:
clj-nrepl-eval -p <PORT> "(ns/my-fn ...)"
5. Iterate: Make changes, re-require with `:reload`, test again
Metabase is the easy, open-source way for everyone in your company to ask questions and learn from data.
Repo: metabase/metabase
Efficiently add Malli schemas to API endpoints in the Metabase codebase with proper patterns, validation timing, and error handling
Add OpenTelemetry tracing spans to Clojure code following Metabase tracing conventions. Use when instrumenting backend code with trace coverage.
Add product analytics events to track user interactions in the Metabase frontend
Review Clojure and ClojureScript code changes for compliance with Metabase coding standards, style violations, and code quality issues. Use when reviewing pull…
Guide Clojure and ClojureScript development using REPL-driven workflow, coding conventions, and best practices. Use when writing, developing, or refactoring…
Review documentation changes for compliance with the Metabase writing style guide. Use when reviewing pull requests, files, or diffs containing documentation…