Clojure Write
REPL-driven Clojure development with best practices and conventions
✨ The solution you've been looking for
Guide Clojure and ClojureScript development using REPL-driven workflow, coding conventions, and best practices. Use when writing, developing, or refactoring Clojure/ClojureScript code.
See It In Action
Interactive preview & real-world examples
AI Conversation Simulator
See how users interact with this skill
User Prompt
Help me build a data validation system for user profiles. I want to start with basic field validators and compose them into a complete validator.
Skill Processing
Analyzing request...
Agent Response
Step-by-step guidance to create small validator functions in REPL, test them thoroughly, then compose into larger validation logic
Quick Start (3 Steps)
Get up and running in minutes
Install
claude-code skill install clojure-write
claude-code skill install clojure-writeConfig
First Trigger
@clojure-write helpCommands
| Command | Description | Required Args |
|---|---|---|
| @clojure-write bottom-up-function-development | Develop complex functionality by building and testing small functions first | None |
| @clojure-write repl-driven-refactoring | Safely refactor existing Clojure code using REPL feedback | None |
| @clojure-write code-quality-and-style-compliance | Ensure code follows Clojure conventions and passes readability checks | None |
Typical Use Cases
Bottom-up Function Development
Develop complex functionality by building and testing small functions first
REPL-Driven Refactoring
Safely refactor existing Clojure code using REPL feedback
Code Quality and Style Compliance
Ensure code follows Clojure conventions and passes readability checks
Overview
Clojure Development Skill
Tool Preference
When clojure-mcp tools are available (e.g., clojure_eval, clojure_edit), always use them
instead of shell commands like ./bin/mage -repl. The MCP tools provide:
- Direct REPL integration without shell escaping issues
- Better error messages and feedback
- Structural Clojure editing that prevents syntax errors
Only fall back to ./bin/mage commands when clojure-mcp is not available.
@./../_shared/development-workflow.md @./../_shared/clojure-style-guide.md @./../_shared/clojure-commands.md
REPL-Driven Development Workflow
- Start with small, fundamental functions:
- Identify the core features or functionalities required for your task.
- Break each feature down into the smallest, most basic functions that can be developed and tested independently.
- Write and test in the REPL:
- Write the code for each small function directly in the REPL (Read-Eval-Print Loop).
- Test it thoroughly with a variety of inputs, including typical use cases and relevant edge cases, to ensure it behaves as expected.
- Integrate into source code:
- Once a function works correctly in the REPL, move it from the REPL environment into your source code files (e.g., within appropriate namespaces).
- Gradually increase complexity:
- Build upon tested, basic functions to create more complex functions or components.
- Compose smaller functions together, testing each new composition in the REPL to verify correctness step by step.
- Ensure dependency testing:
- Make sure every function is fully tested in the REPL before it is depended upon by other functions.
- This ensures that each layer of your application is reliable before you build on it.
- Use the REPL fully:
- Use the REPL as your primary tool to experiment with different approaches, iterate quickly, and get immediate feedback on your code.
- Follow functional programming principles:
- Keep functions small, focused, and composable.
- Use Clojure’s functional programming features—like immutability, higher-order functions, and the standard library—to write concise, effective code.
How to Evaluate Code
Bottom-up Dev Loop
- Write code into a file.
- Evaluate the file’s namespace and make sure it loads correctly with:
./bin/mage -repl --namespace metabase.app-db.connection
- Call functions in the namespace with test inputs, and observe that the outputs are correct
Feel free to copy these REPL session trials into actual test cases using
deftestandis. - Once you know these functions are good, return to 1, and compose them into the task that you need to build.
Critical Rules for Editing
- Be careful with parentheses counts when editing Clojure code
- After EVERY change to Clojure code, verify readability with
-check-readable - End all files with a newline
- When editing tabular code, where the columns line up, try to keep them aligned
- Spaces on a line with nothing after it is not allowed
What Users Are Saying
Real feedback from the community
Environment Matrix
Dependencies
Framework Support
Context Window
Security & Privacy
Information
- Author
- metabase
- Updated
- 2026-01-30
- Category
- ide-plugins
Related Skills
Clojure Write
Guide Clojure and ClojureScript development using REPL-driven workflow, coding conventions, and best …
View Details →Clojure Review
Review Clojure and ClojureScript code changes for compliance with Metabase coding standards, style …
View Details →Clojure Review
Review Clojure and ClojureScript code changes for compliance with Metabase coding standards, style …
View Details →