react-ban-use-effect

Installation
SKILL.md

React Ban useEffect

Default stance: do not import or call useEffect directly in React components. Treat effects as an escape hatch for synchronizing with external systems, not as the default place to put render, event, data, or reset logic.

Start Here

  1. Search the touched React surface for direct useEffect imports and calls.
  2. Classify each effect by intent before editing:
    • render-time derivation
    • data fetching or server state
    • response to a user action
    • local state reset on identity change
    • async UI, pending state, or request waterfall
    • external-system synchronization
  3. Replace it with the narrowest declarative pattern from references/replacements.md.
  4. For data, forms, external stores, or performance work, also check the stronger alternative map in references/alternatives.md.
  5. Keep behavior proof concrete: run the repo's lint/type/test gate, the optional react-doctor CLI diff scan when available, plus the smallest runtime or component check that exercises the changed path. Fix failures and rerun before completion.

Replacement Ladder

Installs
52
Repository
uinaf/agents
GitHub Stars
4
First Seen
May 28, 2026
react-ban-use-effect — uinaf/agents