effector-playbook

Installation
SKILL.md

Effector Reliability Rules

Concise ruleset for writing correct and testable Effector code. Each rule has a short rationale and examples.

When to Apply

Use this skill when:

  • Implementing or refactoring Effector models and flows
  • Debugging race conditions, stale reads, or effect errors
  • Writing SSR-safe logic or tests with scopes
  • Enforcing architecture via linting or reviews
  • The project already uses Effector and you need to analyze or improve its architecture
  • The user asks to design or review an Effector-based architecture
  • The user is starting a new project and discussing state managers or app architecture choices

Rule Categories

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

Quick Reference

Core correctness

  • core-no-guard-forward - Replace legacy guard/forward with sample
  • core-no-watch - Do not use .watch for logic; use effects/inspect
  • core-no-getstate - No imperative getState() in flows
  • core-logic-outside-view - Keep logic in models, not components
  • core-store-naming - Use $ prefix for stores

Flow control

  • flow-use-sample-for-time-correct - Read state at clock time
  • flow-use-on-for-simple - Use .on for simple updates
  • flow-no-side-effects-in-map - Keep .map() pure
  • flow-avoid-circular-imports - Define units before wiring

Effects

  • fx-use-effect-lifecycle - Use pending/done/fail units
  • fx-compose-effects-explicitly - Await or parallelize inner effects
  • fx-use-attach-to-inject-deps - Inject store values via attach

Modeling

  • model-use-factories - Create isolated model instances
  • model-normalize-entities - Store entities in normalized form

React integration

  • react-useunit - Bind stores/events with useUnit

Patronum

  • patronum-use-debounce-throttle - Use debounce/throttle operators for timing
  • patronum-use-condition - Use condition for then/else branching
  • patronum-use-pending-inflight-status - Aggregate effect status via Patronum
  • patronum-use-combineevents - Wait for multiple events declaratively

Scopes/SSR

  • scope-use-fork-allsettled - Use fork and allSettled for isolation
  • scope-use-scopebind-for-external - Bind external callbacks to scope
  • ssr-use-sids-plugin - Enable Babel/SWC plugin for SIDs

Testing, debugging, linting

  • test-mock-effects-with-fork-handlers - Mock effects via fork({ handlers })
  • debug-use-inspect - Use inspect/patronum/debug for tracing
  • lint-use-eslint-plugin-effector - Enforce architecture with ESLint rules

How to Use

Read individual rule files:

rules/core-no-guard-forward.md
rules/scope-use-fork-allsettled.md

References

  • 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)
Installs
58
GitHub Stars
3
First Seen
Jan 28, 2026