Rules and patterns for writing reliable Effector code and fixing bugs (events/stores/effects, sample flow control, models/factories, SSR/scopes, tests, debugging, linting)...
Concise ruleset for writing correct and testable Effector code. Each rule has a short rationale and examples.
Use this skill when:
| Category | Prefix | Focus |
|---|---|---|
| Core correctness | core- |
Anti-patterns, naming, separation |
| Flow control | flow- |
sample, purity, wiring |
| Effects | fx- |
Async correctness, dependencies |
| Modeling | model- |
Encapsulation and normalization |
| React integration | react- |
Binding in UI |
| Patronum | patronum- |
Operator guidance |
| Scopes/SSR | scope-, ssr- |
Isolation and hydration |
| Testing | test- |
Deterministic tests |
| Debugging | debug- |
Tracing without side effects |
| Linting | lint- |
Enforcement |
core-no-guard-forward - Replace legacy guard/forward with samplecore-no-watch - Do not use .watch for logic; use effects/inspectcore-no-getstate - No imperative getState() in flowscore-logic-outside-view - Keep logic in models, not componentscore-store-naming - Use $ prefix for storesflow-use-sample-for-time-correct - Read state at clock timeflow-use-on-for-simple - Use .on for simple updatesflow-no-side-effects-in-map - Keep .map() pureflow-avoid-circular-imports - Define units before wiringfx-use-effect-lifecycle - Use pending/done/fail unitsfx-compose-effects-explicitly - Await or parallelize inner effectsfx-use-attach-to-inject-deps - Inject store values via attachmodel-use-factories - Create isolated model instancesmodel-normalize-entities - Store entities in normalized formreact-useunit - Bind stores/events with useUnitpatronum-use-debounce-throttle - Use debounce/throttle operators for timingpatronum-use-condition - Use condition for then/else branchingpatronum-use-pending-inflight-status - Aggregate effect status via Patronumpatronum-use-combineevents - Wait for multiple events declarativelyscope-use-fork-allsettled - Use fork and allSettled for isolationscope-use-scopebind-for-external - Bind external callbacks to scopessr-use-sids-plugin - Enable Babel/SWC plugin for SIDstest-mock-effects-with-fork-handlers - Mock effects via fork({ handlers })debug-use-inspect - Use inspect/patronum/debug for tracinglint-use-eslint-plugin-effector - Enforce architecture with ESLint rulesRead individual rule files:
rules/core-no-guard-forward.md
rules/scope-use-fork-allsettled.md
AGENTS.md (compiled rules)references/llms-full.txt (Effector API reference)references/scopes-ssr.md (scopes, SSR, hydration)references/testing.md (testing patterns)references/babel-plugin.md (SIDs and plugin usage)references/patronum-operators.md (operator index)