Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

clojuredart-skills

ClojureDart development skills packaged as an APM plugin. One install deploys the full set to every runtime in APM's default target set: Claude Code, Codex, OpenCode, Cursor, Copilot, Gemini, Windsurf, Kiro, and Grok Build. Antigravity is supported by naming it explicitly with --target antigravity.

Skills follow the Agent Skills open standard. Three auto-trigger from conversation context (clojuredart, clojuredart-lenses, clojuredart-nav); the rest appear as slash commands.

This package layers on top of the host-neutral clojure-skills baseline. Install both together so the clojure skill handles general Clojure family style (naming, threading, collections, atoms, dispatch, formatting, namespaces, testing) and this package covers Dart interop, type hints and nullability, cljd.flutter directives, async, FFI, the ClojureDart socket REPL, and Flutter project layout.

Companion packages

Six sibling APM packages. This package layers on top of clojure-skills and covers Dart interop, type hints, cljd.flutter directives, async, FFI, and the Flutter project workflow. Install both together for ClojureDart work. The JVM, ClojureScript, Biff, and Fulcro packages are not required for ClojureDart-only projects.

Package Focus Layers on
clojure-skills Host-neutral Clojure family baseline: style, naming, threading, collections, atoms, dispatch, formatting, namespaces, and testing. Triggers on .clj, .cljs, .cljc, .cljd. —
clojure-jvm-skills Clojure on the JVM: Java interop, refs / agents / STM, with-open, JVM-typed exceptions, alter-var-root, and the Clojure CLI / tools.build / clj-kondo / cljfmt / test-runner / nREPL workflow. clojure-skills
clojurescript-skills ClojureScript style and tooling: JavaScript interop, externs inference, macro stage separation, catch :default, JS-flavored numbers and truthiness, and the cljs.main workflow. Triggers on .cljs, .cljc compiled to JS, shadow-cljs.edn, figwheel-main.edn. clojure-skills
biff-skills Biff web framework on the JVM: scaffolding, conventions, deployment. clojure-skills + clojure-jvm-skills
fulcro-skills Fulcro full-stack framework: defsc components, idents and the normalized client database, mutations, df/load!, dynamic routing, forms, UI state machines, Fulcro Inspect, and the Pathom 3 server. Triggers on com.fulcrologic.fulcro.*, com.fulcrologic.rad.*, com.wsscode.pathom3.*, defsc, defmutation, defrouter, df/load!, and ident vectors. clojure-skills + clojurescript-skills + clojure-jvm-skills
clojuredart-skills (this package) ClojureDart on Flutter: Dart interop, type hints, cljd.flutter directives, async, FFI, REPL, and the Flutter project workflow. Triggers on .cljd, cljd.flutter. clojure-skills

Install

Install APM first if you don't already have it. Then, in a project:

apm install brackendev/clojuredart-skills --target all
apm install brackendev/clojure-skills --target all

Globally for your user account:

apm install brackendev/clojuredart-skills -g --target all
apm install brackendev/clojure-skills -g --target all

Update later with apm update [-g]. Remove with apm uninstall brackendev/clojuredart-skills [-g]. A local filesystem path can replace the shorthand at either scope.

Requirements

Command guide

A quick guide to every slash command. The detailed entries under Skills cover arguments and examples.

Command Use it when What it does
/cljd-new Starting a new ClojureDart Flutter project Scaffolds the project with clj-kondo lint setup
/cljd-fix Lint, format, or compilation needs attention Runs the fix pipeline, rewriting .cljd files in the format step with cljfmt fix
/cljd-test Running ClojureDart tests Runs cljd.test suites and offers to scaffold tests when none exist
/cljd-upgrade ClojureDart is behind the latest release Moves tensegritics/clojuredart to the latest release tag and SHA and verifies with a compile
/cljd-smells-fix Reserved for a future ClojureDart smells fix Placeholder that prints a not-yet-implemented notice

Skills

User-invocable skills share an argument grammar, scope vocabulary, and mutation default. See CONVENTIONS.md for the full standard. In short: skills accept natural-language keywords and bare paths; the single sanctioned flag is --report; mutating skills apply changes by default.

Scaffolding and quality

/cljd-new <project-name>

Scaffold a new ClojureDart Flutter project pinned to the latest ClojureDart release, including clj-kondo lint setup and a cljfmt configuration that formats .cljd files.

/cljd-new my_app

/cljd-fix [lint|format|compile|dry] [--report] [all]

Fix a ClojureDart project. Defaults to running all four steps; the format step rewrites .cljd files in place via cljfmt fix. Pass --report to swap the format step for cljfmt check, which previews diffs without writing. The format step fails with a fix hint when .cljfmt.edn has no :file-pattern that matches .cljd, because cljfmt otherwise skips ClojureDart files. The advisory dry step scans .cljd files when the project's :dry4clj alias points at a dry4clj revision that includes the .cljd extension.

/cljd-fix
/cljd-fix compile
/cljd-fix format --report

/cljd-test [unit|widget|all|<path>]

Run ClojureDart tests with cljd.test. When no test files exist, the skill offers to scaffold them.

/cljd-test
/cljd-test widget

/cljd-upgrade [--report] [all]

Upgrade ClojureDart to the latest GitHub Release. Runs the built-in clj -M:cljd upgrade, which rewrites the tensegritics/clojuredart :tag and :sha in deps.edn, then verifies with a compile and restores the original deps.edn if the compile fails. Pass --report to print the current and latest release coordinates without writing.

/cljd-upgrade
/cljd-upgrade --report

/cljd-smells-fix [path|all] [--report] (placeholder)

Reserves the command name for a future ClojureDart-specific smells fix pipeline. When implemented, will mirror the mutation contract of /clj-smells-fix in clojure-skills: auto-apply Stage 1 mechanical findings and the Stage 2 DEFECT-tier safety band; report SMELL and HINT findings; honor --report to disable all writes. Currently prints a "not yet implemented" notice and exits. See TODO.md.

Auto-triggered

These skills activate from conversation context. They cannot be invoked directly.

Skill Triggers
clojuredart .cljd files, deps.edn with tensegritics/clojuredart, cljd-out/ directories, Flutter integration, ClojureDart REPL usage. Covers syntax, Dart interop, widget macros, project structure, compilation, REPL-driven development, the defrecord factory rule, and the absence of with-redefs. Defers to the clojure baseline for general style.
clojuredart-lenses Auto-triggers alongside the code-lenses plugin in ClojureDart work. Layers on top of clojure-lenses and records only the Flutter-specific deltas. Covers the four default code-lenses philosophies (grug, Honest Code, Tidy First, Parse Don't Validate) and the two opt-in philosophies (APOSD, Legacy Code) that activate when their lens is added with +aposd or +legacy-code or invoked directly.
clojuredart-nav ClojureDart navigation discussions: named routes, go_router, the Navigator API, tab navigation, and deep linking in Flutter.

Contributing

See CONTRIBUTING.md.

License

MIT. See LICENSE.

About

ClojureDart on Flutter: Dart interop, type hints, cljd.flutter directives, async, FFI. Layers on clojure-skills. APM package on the Agent Skills open standard.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Contributors