skills/effectorjs/SKILL.md
Design, refactor, and review Effector state management using modern v23+ patterns. Use when tasks involve createStore/createEvent/createEffect modeling, dataflow with sample/attach/split, scope-safe SSR with fork/allSettled/serialize/hydrate, React integration with useUnit, Solid/Vue integration patterns, fixing scope loss, or replacing anti-patterns such as business logic in watch, imperative calls in effects, and direct getState business reads.
npx skillsauth add aiko-atami/effectorjs-skills effectorjsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to produce deterministic, scope-safe Effector solutions for new features, refactors, and code reviews.
modeling: create or extend stores/events/effects.refactor: replace anti-patterns with declarative flows.ssr: implement or debug scope-safe SSR.review: assess risks, regressions, and missing tests.legacy-migration: move old patterns to modern v23+ safely.references/core-patterns.md.references/lint-derived-best-practices.md after core patterns to enforce plugin-backed best practices.references/explicit-start.md when task touches app bootstrap, startup logic, initialization order, tests, scope, or SSR.references/computation-priority.md when task touches ordering, watch, sequencing, race-like behavior, or side effects placement.references/react-ssr-scope.md when React/SSR/scope appears.references/solid-scope.md when Solid integration appears.references/vue-scope.md when Vue integration appears.references/anti-patterns-and-fixes.md when fixing or reviewing existing logic.references/legacy-migration-map.md when deprecated APIs/imports are present.references/checklists.md for acceptance criteria.appStarted) and keep startup wiring declarative.sample first; use attach for effect composition.fork, allSettled) for tests, SPA bootstrap boundaries, and SSR.useUnit and correct provider wiring.sample, attach, split if needed).eslint-plugin-effector as baseline constraints.Unit: include Store, Event, Effect, Domain, Scope.Common unit: only Store, Event, Effect (reactive update sources for many APIs).Derived store: read-only store built from other stores (map, combine, effect-derived stores like .pending).Derived store constraints: do not mutate directly and do not use as target in sample.Reducer: store.on(...) handlers must return next state; undefined or same reference (===) means no store update.Watcher: side effects/debug observability only; watcher return value is ignored.Subscription: treat unsubscribe handlers as infrastructure concern; avoid manual subscription management in business logic.Purity: pure functions (map, .on, transform callbacks) must not imperatively call events/effects.Domain: namespace for units; onCreate* hooks are acceptable for infra-level cross-cutting concerns (logging/instrumentation), not business orchestration.watch.sample over forward/guard for orchestration.map/.on pure and avoid side effects in pure computation stages.$store.getState() for business dataflow; pass state through sample source.target in sample; target writable units/events/effects only.sample/guard options in semantic order: clock -> source -> filter -> fn -> target.target usage (no simultaneous result assignment and explicit target).clock/source arrays and duplicate .on handlers for one store-event pair.sample/guard without runtime effect (must have target or captured result).$store, eventHappened, someFx).useUnit; avoid raw event/effect usage in JSX handlers.If legacy code is present:
development
Select and apply Patronum operators for Effector code with minimal, practical v2.x examples. Use when tasks involve choosing between Patronum operators, composing reactive state flows, replacing manual sample/combine boilerplate with Patronum utilities, explaining operator signatures and return types, or adapting legacy Patronum usage to modern v2 shorthand and import patterns.
development
Choose and implement effector-storage persistence patterns for Effector apps. Use when tasks involve persist/createPersist usage, selecting adapters (local/session/query/broadcast/storage/asyncStorage/memory/nil/log), configuring clock/pickup/context/keyPrefix, validating data with contracts, handling done/fail/finally flows, SSR-safe adapter fallback with either, or debugging sync and serialization issues.
development
Integrate and use argon-router in React web applications with Effector. Use when tasks involve creating routes and routers, wiring RouterControls/history adapters, composing routes with chainRoute/group/createVirtualRoute, rendering views with RouterProvider/createRoutesView/Outlet, building links with Link/useLink, and managing URL query state with trackQuery and @argon-router/paths.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.