← ClaudeAtlas

clojure-reviewlisted

Review Clojure and ClojureScript code changes for compliance with Metabase coding standards, style violations, and code quality issues. Use when reviewing pull requests or diffs containing Clojure/ClojureScript code.
aiskillstore/marketplace · ★ 329 · Code & Development · score 82
Install: claude install-skill aiskillstore/marketplace
# Clojure Code Review Skill # Metabase Clojure Style Guide This guide covers Clojure and ClojureScript coding conventions for Metabase. See also: `CLOJURE_STYLE_GUIDE.adoc` for the Community Clojure Style Guide. ## Naming Conventions **General Naming:** - Acceptable abbreviations: `acc`, `i`, `pred`, `coll`, `n`, `s`, `k`, `f` - Use `kebab-case` for all variables, functions, and constants **Function Naming:** - Pure functions should be nouns describing the value they return (e.g., `age` not `calculate-age` or `get-age`) - Functions with side effects must end with `!` - Don't repeat namespace alias in function names **Destructuring:** - Map destructuring should use kebab-case local bindings even if the map uses `snake_case` keys ## Documentation Standards **Docstrings:** - Every public var in `src` or `enterprise/backend/src` must have docstring - Format using Markdown conventions - Reference other vars with `[[other-var]]` not backticks **Comments:** - `TODO` format: `;; TODO (Name M/D/YY) -- description` ## Code Organization **Visibility:** - Make everything `^:private` unless it is used elsewhere - Try to organize namespaces to avoid `declare` (put public functions near the end) **Size and Structure:** - Break up functions > 20 lines - Lines ≤ 120 characters - No blank lines within definition forms (except pairwise `let`/`cond`) ## Style Conventions **Keywords and Metadata:** - Prefer namespaced keywords for internal use: `:query-type/normal` not `:norm