Status: backlog Priority: P2 Created: 2026-02-22 Owner: AI Depends-on: phase8-demo-migration Phase: 8 — Library Restructuring
After the restructuring is complete, the project needs a clear README that explains what this library is, how to use it, and — critically — what NOT to use from the upstream fulcro-rad dependency.
Users will have both fulcro-rad and fulcro-rad-statecharts on the classpath. Without clear guidance, they may accidentally use UISM-based functions from upstream that conflict with the statecharts engine.
deps.edn[com.fulcrologic.rad.statechart.form :as form]
[com.fulcrologic.rad.form-options :as fo]
[com.fulcrologic.rad.statechart.form-options :as sfo]
statechart.report, report-options, statechart.report-options)statechart.application/install-statecharts!, start-routing!, install-url-sync!defsc-form with a few attributes, sfo/triggers)statechart.routing/route-to!, edit!, create!)This section must be prominent and clear. Users have fulcro-rad on the classpath and must avoid:
| Do NOT use | Why | Use instead |
|---|---|---|
com.fulcrologic.rad.form | UISM engine — conflicts with statecharts | com.fulcrologic.rad.statechart.form |
com.fulcrologic.rad.report | UISM engine | com.fulcrologic.rad.statechart.report |
com.fulcrologic.rad.routing (upstream) | Fulcro Dynamic Router based | com.fulcrologic.rad.statechart.routing |
com.fulcrologic.rad.authorization | UISM-based auth system | Not provided — handle auth separately |
com.fulcrologic.fulcro.ui-state-machines | UISM library | com.fulcrologic.statecharts.* |
com.fulcrologic.fulcro.routing.dynamic-routing | DR-based routing | Statecharts routing |
fo/triggers (with UISM callback signature) | Wrong callback shape | sfo/triggers (returns ops vector) |
fo/machine | UISM machine reference | sfo/statechart |
rad-hooks (use-form, use-report) | React hooks for data | Statecharts manage lifecycle |
install-form-container-renderer!, etc. | Map-based dispatch | defmethod render-element |
Equally important — users should know what's shared and fine:
com.fulcrologic.rad.attributes and attributes-options — attribute definitionscom.fulcrologic.rad.form-options (fo/) — shared option keys (fo/id, fo/attributes, fo/subforms, etc.)com.fulcrologic.rad.report-options (ro/) — shared option keyscom.fulcrologic.rad.form-render / report-render — rendering multimethodscom.fulcrologic.rad.application — fulcro-rad-app, install-ui-controls! (shared app setup)com.fulcrologic.rad.picker-options — picker infrastructuredate-time, decimal, integer)save-middleware, autojoin)com.fulcrologic.rad.ids, locale, errors, options-utilFor users converting from UISM RAD to statecharts RAD:
rad.form requires with rad.statechart.formrad.report requires with rad.statechart.reportrad.statechart.form-options require, move engine-specific keys from fo/ to sfo/rad.routing with rad.statechart.routingrapp/install-statecharts! pattern (was not in upstream — new)README.md — NEW or rewrittenCan you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |