بنقرة واحدة
re-frame2
يحتوي re-frame2 على 9 من skills المجمعة من day8، مع تغطية مهنية على مستوى المستودع وصفحات skill داخل الموقع.
Skills في هذا المستودع
Writes re-frame2 ClojureScript application code — events, subscriptions, effects, flows, frames, state machines (reg-machine, parallel regions, tags, spawn), schemas, stories, routing, tests, and the canonical patterns (RemoteData, Resources, Forms, Boot, WebSocket, NineStates, ManagedHTTP, AsyncEffect, LongRunningWork, StaleDetection, ReusableComponents, StatefulComponents, FormAction, SSR-Loaders). Use whenever the user mentions re-frame2, reg-event, reg-sub, reg-fx, reg-cofx, reg-flow, reg-view, reg-machine, reg-route, reg-story, reg-app-schema, reg-resource, reg-mutation, dispatch, subscribe, app-db, flows, frames, regions, tags, the nine UI states, managed HTTP, RemoteData lifecycles, cached server-state / query-cache / TanStack-Query shapes, writing tests for a re-frame2 app, or state-machine-for-HTTP shapes — even when re-frame2 is not named explicitly. **Authoring only** (writing new code). **Do not use** for: live-app inspection (use `re-frame2-pair`), greenfield project bootstrap (use `re-frame2-set
Pair-program against a **running** re-frame2 application via its Tool-Pair contract — attach to a live shadow-cljs nREPL, inspect a frame's app-db, dispatch events, hot-swap handlers, read the trace stream and per-frame epoch history, and time-travel with `restore-epoch`. Use when the user is operating on (or wants to operate on) a live runtime they have running locally. **Do not use** for static spec reading, architecture questions, design discussion, or ordinary source edits when no runtime is involved — those belong to `skills/re-frame2/` (authoring) or direct spec reading. See `references/vocabulary.md` for the surface glossary; vocabulary matches alone do not justify activation.
Guides an engineer building a NEW re-frame2 implementation in one of the eight in-scope JS-cross-compile-to-React+VDOM host languages — ClojureScript (the reference), TypeScript, Melange/ReScript/Reason, F# (Fable), Squint, Scala.js, PureScript, Kotlin/JS. Drives a two-phase workflow (Phase 1: lock decisions; Phase 2: walk the spec corpus in dependency order with the conformance corpus as the acceptance test). Trigger on phrasing like "port re-frame2", "implement re-frame2 in <language>", "second re-frame2 implementation", "implementor checklist", "conformance corpus", or any prompt about building re-frame2 itself. **Do not use** for: writing apps on the CLJS reference (use `re-frame2`), greenfield bootstrap (use `re-frame2-setup`), v1→v2 migration (use `re-frame-migration`), or live-app inspection (use `re-frame2-pair`).
Greenfield-only bootstrap for re-frame2 ClojureScript projects. Scope: brand-new apps from nothing, or empty CLJS projects (shadow-cljs / Clojure already present but zero re-frame2 wiring). Adds the artefact dependencies, writes a minimal shadow-cljs.edn for a Reagent single-page app, lays down the canonical entry namespace (with `rf/init!` + the Reagent adapter), and walks the author through their first mounted counter. Trigger on phrasing like "start a re-frame2 project", "scaffold re-frame2", "hello-world re-frame2 app", "new re-frame2 app", or a build failure on a freshly-scaffolded project that traces to missing `re-frame.core` / `re-frame.adapter.reagent` wiring. Exits once the counter mounts. **Do not use** for writing app code on an already-bootstrapped project (use `re-frame2`), v1→v2 migration (use `re-frame-migration`), live-app inspection (use `re-frame2-pair`), or porting re-frame2 itself (use `re-frame2-implementor`). For the full disqualifier list and routing to sibling skills, see `skills/READ
Writes view code for re-frame2's compiled-view substrate `re-frame.ui` (artifact `day8/re-frame2-ui`, alias `ui/`) — `defview` components and children, templates, reactive `sub` reads, event handlers (vectors, `ui/event`, `ui/handler`, the bare-fn shorthand), local state and effects, presence, frames and roots (`frame-root`, `frame-provider`, `ui/mount`), interop (`ui/raw`, `ui/html`, `ui/spread`, `ui/raw-fn`, custom elements, `ui/->react`), and structural tests via `re-frame.ui.test`. Use whenever the user mentions defview, ui/sub, frame-root, ui/mount, compiled views / compiled hiccup, the re-frame2 view compiler, ui.test, presence-phase, or is writing/porting VIEW code in an app that depends on day8/re-frame2-ui — even when the library is not named explicitly. **View layer only** (the `(props) → template` surface and its tests). **Do not use** for: events/subs/fx/machines/ flows authoring (use `re-frame2`), Reagent/UIx/Helix adapter views (the frozen/legacy substrates — use `re-frame2` §views), live-app in
Focused critique-mode for **existing** re-frame2 ClojureScript code. Reviews a body of source files (or a user-supplied snippet) against a small catalogue of re-frame2 anti-patterns, surfaces concrete findings cross-linked to canonical idioms, and may suggest inline fixes. **Activates only on explicit pull** — phrasings like "review my re-frame2 code for anti-patterns", "audit this against re-frame2 best practices", "any improvements?", "is there a better re-frame2 pattern here", "spot any anti-patterns in cart/handlers.cljs". A body of re-frame2 source must be in scope: read or edited in this conversation, supplied as a snippet, or named as a resolvable `.cljs` / `.cljc` file or directory (which the skill reads before critiquing) — vocabulary alone is not enough. **Do not use** for greenfield bootstrap, live-runtime work, retro on a pair session, authoring new code, spec/architecture discussion, or inline mid-edit interruption — see `skills/README.md` §Skill routing — single source for the full disambiguatio
Migrates an existing re-frame v1.x ClojureScript codebase to re-frame2. Swaps the artefact coord (re-frame/re-frame → day8/re-frame2 + a substrate adapter), applies the mechanical (Type A) rewrites from MIGRATION.md automatically, and flags the judgment-call (Type B) call sites for human review before touching them. Trigger on phrasing like "migrate to re-frame2", "upgrade re-frame", "v1 to v2", "what breaks under re-frame2", or any prompt referencing a v1 surface (re-frame.db, dispatch-with, reg-global-interceptor, reg-sub-raw, ^:flush-dom, re-frame.alpha, re-frame-test, old top-level :dispatch / :dispatch-n effect-map keys), or a v1 add-on library (http-fx / :http-xhrio, async-flow-fx / :async-flow). **Do not use** for: greenfield bootstrap, writing v2 application code, live v2-app inspection, static critique, devtools tours, or porting re-frame2 itself — see the full routing table in `skills/README.md` §Skill routing for the right sibling skill.
Read-only tour of **Xray** — the re-frame2 devtools panel. Use when the user wants to know how to *launch* Xray (in-app inline panel, the overlay fallback for hosts with no layout column / full-screen-canvas / no `[data-rf-xray-host]` — `open-overlay!`, pop-out window, programmatic mount, or the wired hotkeys), which of its two modes (Dynamic event-spine / Static registry browse) and which tab surfaces the data they're looking for, or what each tab is *for*. Trigger phrases: "open Xray", "where is X in Xray", "which Xray panel shows…", "Xray Static mode", "browse registered machines/routes/schemas in Xray", "Ctrl+Shift+C", "Xray hotkey", "Xray mode toggle", "Xray popout", "Xray overlay", "Xray open-overlay!", "open Xray with no layout host / no [data-rf-xray-host] / full-screen canvas", "Xray machine inspector", "Xray epoch cascade", "where do Xray issues show up", "Xray Graph tab", "Xray derivation/process graph", "where does this value come from in Xray", "Xray Resources tab", "Xray Frames tab", "Xray modul
Retrospect on a `re-frame2-pair` session and turn it into prioritised improvement ideas for the pair skill, scripts, MCP surface, or upstream `re-frame2` Tool-Pair contract; optionally drafts a GitHub issue the user can file. Activates on two triggers: (a) **explicit pull** — user asks for a retrospective on a recent pair session ("retro on this pair session", "what went wrong with my pair session", "review my re-frame2-pair session", "draft an issue about that"); or (b) **post-error within a re-frame2-pair session** — after a stack trace, failed dispatch, red CI, or a runtime error during live pair work, to post-mortem the firefight. Requires evidence: a concrete `re-frame2-pair` session in this conversation (turns where the user attached, dispatched, walked traces/epochs, hot-swapped, or time-travelled), **or** a user-supplied recap of one. **Not** for ordinary `re-frame2-pair` operation, nor for code/spec/framework work the body's routing matrix sends elsewhere. Vocabulary matches alone ("retro", "what wen