{
  "markdown": "# use-effect-killer\n\nAn agent skill that audits your React codebase for `useEffect` anti-patterns and proposes idiomatic fixes. Works with any coding agent that supports the [Agent Skills](https://github.com/vercel-labs/skills) specification — Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, and more.\n\nBased on React's official guide: [You Might Not Need an Effect](https://react.dev/learn/you-might-not-need-an-effect).\n\n## What it detects\n\n| # | Anti-Pattern | Recommended Fix |\n|---|-------------|-----------------|\n| 1 | Derived state via effect | Compute inline (`const x = a + b`) |\n| 2 | Expensive computation in effect | `useMemo` |\n| 3 | Reset all state on prop change | `key={prop}` on child component |\n| 4 | Adjust some state on prop change | Derive during render |\n| 5 | Event logic in effect | Move to event handler |\n| 6 | POST/mutation in effect | Move to event handler |\n| 7 | Effect chains | Consolidate into event handler + derived state |\n| 8 | App init in effect | Module-level code or `didInit` guard |\n| 9 | Notify parent via effect | Call callback in event handler |\n| 10 | Pass data to parent via effect | Lift data fetching to parent |\n| 11 | External store subscription | `useSyncExternalStore` |\n| 12 | Initialize state from props via effect | Pass prop directly to `useState` |\n| 13 | Fetch without cleanup | Add ignore flag / abort controller, or use a data-fetching library |\n\n## Install\n\n### One-command install (recommended)\n\n```bash\nnpx skills add victor36max/use-effect-killer\n```\n\n### Manual install (Claude Code)\n\n```bash\nmkdir -p .claude/skills/use-effect-killer\ncurl -sL https://raw.githubusercontent.com/victor36max/use-effect-killer/main/SKILL.md \\\n  -o .claude/skills/use-effect-killer/SKILL.md\n```\n\n### Manual install (Codex / other agents)\n\n```bash\nmkdir -p .agents/skills/use-effect-killer\ncurl -sL https://raw.githubusercontent.com/victor36max/use-effect-killer/main/SKILL.md \\\n  -o .agents/skills/use-effect-killer/SKILL.md\n```\n\n## Usage\n\nIn Claude Code, run:\n\n```\n/use-effect-killer\n```\n\nOr scope to a specific directory:\n\n```\n/use-effect-killer src/components\n```\n\nThe skill will scan for all `useEffect` usages, classify each one against the 13 anti-patterns, and produce a structured report with file paths, line numbers, and concrete fix suggestions.\n\n## License\n\nMIT\n",
  "bytes": 2329,
  "sha": "6be00b4a774f2350dc8823f7388f18457e9303ae45f5fc06200e2135a4635cce",
  "repo_slug": "victor36max/use-effect-killer",
  "fonte": "repo",
  "truncated": false,
  "api": "https://api.agentalog.com/api/listings/skl_victor36max_use_effect_killer_use_effect_e1439568/readme"
}