Announcing https://github.com/julienba/clj-dot-prompt. It's a backport of https://github.com/google/dotprompt to put your prompt in resources files and include metadata
New release: https://github.com/bhauman/clojure-mcp-light/blob/main/CHANGELOG.md#021---2025-11-27 - Tools to help coding assistants work with Clojure.
clojure-mcp-light is NOT an MCP server. It's an extremely low-touch way to give LLM coding assistants tools that fix Clojure delimiter problems and interact with the REPL.
These tools work with ANY LLM coding assistant that has shell access, not just Claude Code.
This release adds clj-paren-repair, a CLI tool that LLMs can invoke to fix delimiters. In my experience, this is often all that's needed to prevent coding assistants from going into a "Paren Edit Death Loop." I have used it very productively with Codex cli and Gemini cli.
https://github.com/bhauman/clojure-mcp-light
Isn't Claude supposed to auto-include skills in the prompt?
just wanted to pop in and say i love this tool! way less annoying than an mcp server. and clj-paren-repair fixes my problems often!
Thanks. This approach has been working better for me than an MCP because the agent actually has control of starting/stopping the REPL (which is often manages to get into a bad state). The only complaint I have is that Claude doesn’t seem to pay as much attention to skills as it does to an MCP, which means I often have to remind it. But not seeing any paren problems with this approach.
@tony.kay I think the answer to this is adding instructions to the CLAUDE.md file. It keeps it top of mind. But it should be concise instructions. I have an example in the readme. I think this works better. Also including instructions on how to start the repl is good as well. The reason that custom instructions works better is it exists in the same priority plane as the mcp tool descriptions
Yeah, I was hoping the skills description was supposed to stay at that level (the docs say it is pre-loaded as name/description). My skill definitely teaches it how to start/stop repls and use your tool for communicating. Where did you find a description of “priority plane”?
(because I have a lot of skills I want it to know about 😄 )
I made it up as a descriptive helper... its just that custom instructions, system message, tool-descriptions are posted at the start of the context and I've always suspected have a higher status.... It has been demonstrated that the start and end of the context window get more "attention"
Yeah, but the skills docs say that the description of skills gets preloaded into the front of the window…so…maybe I need a longer description string
but the instructions get buried in the middle when they are invoked... so if you have a long conversation...
I'd definitely try the custom instructions and see how that goes...
My problem was that my CLAUDE.md had pulled old dev docs that said “to run all tests use clojure …” 😛
totally makes sense that project local CLAUDE.md would trump global skills
I’ve had limited luck with the auto inclusion in claude code and opencode. If you remind it to use skill X then it does it.
https://github.com/seancorfield/honeysql 2.7.1364 -- Turn Clojure data structures into SQL
A bug fix, an enhancement, and some housekeeping -- Happy Turkey Day (to those who celebrate)!
• Address https://github.com/seancorfield/honeysql/issues/593 by adding :transform-null-equals option to control whether [:= expr nil] transforms to IS NULL or preserves = NULL. Defaults to true (current behavior) for backward compatibility. When set to false, follows SQL standard semantics. Mirrors PostgreSQL's transform_null_equals configuration option.
• Fix https://github.com/seancorfield/honeysql/issues/590 by allowing simple expressions on the LHS of SET = clauses, such as array element assignment.
• Update dev/test deps (Clojure 1.12.3, CLI 1.12.3.1577).
• Add matrix testing against JDK 25; drop JDK 8.
Follow-up in #honeysql
National holidays are the best days to squeeze in a couple of OSS commits aren't they ;)
I'm pretty sure the Turkey is the only participant guaranteed not to have a good one on that particular day.... But I'm an Aussie, what would I know? 😁