clojure-style
Clojure style guidelines. Activate before writing or editing Clojure code
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Clojure style guidelines. Activate before writing or editing Clojure code
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Use when drafting, writing, or filing a Linear ticket/issue, or asked for a Linear title/body/description.
Use when drafting, writing, or opening a pull request (gh pr create), or asked for a PR title/body/description.
Writing voice for authored prose — PR bodies, Linear tickets, review comments, commit messages.
Hand a file to the user's running editor and block until they finish editing it. Use whenever a draft (PR body, ticket, commit message, any generated file) needs the user's review before you act on it, or when a task says "open this in my editor/vim/nvim".
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design.
Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices. Use when user wants to convert a plan into issues, create implementation tickets, or break down work into issues.
| name | clojure-style |
| description | Clojure style guidelines. Activate before writing or editing Clojure code |
| paths | ["**/*.clj","**/*.cljs","**/*.cljc","**/*.bb","**/*.edn"] |
Build primitives that combine orthogonally. Don't build a function that handles multiple modes via flags — build pieces that the caller composes. If a simpler expression exists, use it. Extract helpers when there's 3+ repeats. Use the abstractions and hooks the library/framework provides rather than wrapping or patching after the fact. If a library has a custom dispatch mechanism, use it.
Bad: a function with a mode parameter that switches between strategies.
Good: two functions the caller can combine as needed.
with-redefs is never to be used
Write docstrings matching these archetypes. Match their voice, verbosity, and formatting exactly; bare identifiers, no backticks. Key descriptions use " - " (space-dash-space). Optional keys: append ", default = X". Predicate → clojure.core/nil? Pure transform → clojure.core/get-in Multi-arity with branching → clojure.core/reduce Lazy or transducer → clojure.core/filter State mutation + caller-fn rule → clojure.core/swap! Options map → clojure.tools.deps/create-basis (or calc-basis for single-arg options) Structured return-map → clojure.tools.deps/make-classpath-map Otherwise generally copy clojure.core, and other core team libs.
Deprecation notice → clojure.core/replicate DEPRECATED: prefix.
Write fn arglist on newline after fn name.
Args: clojure.core. No :as.
* for deref bindings, foobar = @*foobar
use some? only when True is important vs just truthy
test names end -test