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.
72
87%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
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:
9a7e508
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.