Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/brackendev/clojurescript-skills/cljs-fixnpx skills add brackendev/clojurescript-skills --skill cljs-fixgit clone --depth 1 https://github.com/brackendev/clojurescript-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/brackendev/clojurescript-skills/cljs-fix)<a href="https://agentmods.dev/skills/brackendev/clojurescript-skills/cljs-fix"><img src="https://agentmods.dev/badge/skills/brackendev/clojurescript-skills/cljs-fix.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00026 | $0.02253 |
| Opus 5 | $0.00013 | $0.01126 |
| Sonnet 5 | $0.00005 | $0.00451 |
| Haiku 4.5 | $0.00003 | $0.00225 |
Grade A, and why
cljs-fix scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 163 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ClojureScript Fix
Run lint, format, test, advanced-compilation, and duplicate-form checks on ClojureScript source files. The format step writes by default; lint, test, advanced, and dry are pure-read of source. See CONVENTIONS.md in the repo root for the argument grammar this skill follows.
Arguments
| Input | Target |
|---|---|
| (no argument) | Run all five steps (lint, format, test, advanced, dry) on the project (src, test) |
all |
Same as (no argument); accepted for family consistency |
lint |
Run lint only |
format |
Run format only |
test |
Run tests only |
advanced |
Run advanced-compilation sanity check only |
dry |
Run dry only |
--report |
Replace cljfmt fix with non-writing cljfmt check in the format step |
Step keywords are combinable (for example, /cljs-fix lint test dry). The --report flag may appear in any position. When --report is present without an explicit step keyword, every step still runs; only the format step's behavior changes.
The step keyword dry is the dry4clj duplicate-form scan, not a dry-run mode. Only the literal --report token disables writes.
Mutation
Only the format step writes source. It runs clj -M:cljfmt fix by default, rewriting .cljs and .cljc files in place. With --report, the step runs clj -M:cljfmt check, which exits non-zero when files would change but does not write.
The advanced step writes generated JavaScript under out/ (or the project's compiler :output-dir), which is a build artifact, not source. The lint, test, and dry steps are pure-read regardless of --report.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 163 lines · 26 tokens per session scan A 67b9c8ea4c45
cljs-fix is a skill published in the GitHub repository brackendev/clojurescript-skills (1 stars, last pushed 1mo ago), licensed MIT. It adds 26 tokens to every session and 2,253 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
lipas-e2e
Run end-to-end scenarios against a live LIPAS dev system. Use when verifying a user-visible flow works correctly across DB, Elasticsearch, app-db, and DOM. Covers municipality-user flows (create/update sports facility) and grows from there.
help-video-ingest
Extract help-center (ohjeet) articles from LIPAS YouTube tutorial videos using Gemini's native video understanding, consolidate them into task-sized help pages, translate to sv/en, and publish to the help CMS (which feeds the AI-assistant knowledge base). Use when turning tutorial videos or guide PDFs into ohjeet…
joyride
Joyride core — REPL evaluation, async patterns, VS Code API access, Flares, JS interop, and available libraries. Use when: working with Joyride evaluation, writing ClojureScript in any Joyride context, creating Flares/WebViews, exploring VS Code APIs via the REPL, or using joyrideevaluatecode.
joyride-internals
Joyride extension internals — subsystem contracts, state architecture, activation sequences, and namespace reference. Use when: modifying core extension code, debugging state issues, working with app-db or SCI context, understanding activation or script execution flow, investigating nREPL or when-context behavior, or…
joyride-user-scripting
Joyride User scope scripting — scripts and source files in /.config/joyride/. Covers user activation scripts, global keyboard shortcuts, disposable management, and npm dependencies. Use when: creating or editing User scripts/source files, setting up useractivate.cljs, or configuring global keybindings.
joyride-workspace-scripting
Joyride Workspace scope scripting — scripts and source files in /.joyride/. Covers workspace activation, project-specific automation, workspace vs user scope precedence, and team sharing. Use when: creating or editing Workspace scripts/source files, setting up workspaceactivate.cljs, or building project-specific…