no-use-effect · factory-ai — скилл для Claude Code: запрет useEffect в React
Скилл, который не даёт агенту писать useEffect в React-коде и подсказывает пять замен. Пригодится при рефакторинге и ревью компонентов.
npx skills add Factory-AI/factory-plugins --skill no-use-effect -a claude-codeЧто делает no-use-effect
Скилл описывает правило: useEffect не вызывается напрямую. Вместо него — вычисление состояния по месту, библиотека для загрузки данных, обработчик события, useMountEffect или key на родителе. Пять правил разложены по таблице «вместо эффекта для… — используй…», к каждому идёт пример плохого и хорошего кода и «smell test» — примета, по которой видно, что вы опять скатываетесь к эффекту.
Активируется, когда агент пишет новый компонент, правит существующие вызовы useEffect, смотрит PR с эффектами или добавляет useEffect «на всякий случай». Отдельно оговорён выход из правила: useMountEffect — обёртка над useEffect с пустым массивом зависимостей, чтобы намерение читалось явно. Её советуют для синхронизации с внешней системой при монтировании: фокус, скролл, подписки на браузерные API, жизненный цикл сторонних виджетов.
После правок скилл предлагает прогнать проверку — npm run lint, npm run typecheck и npm run test с фильтром по пакету. Учтите: в проекте нужен настроенный линт-правило no-restricted-syntax, иначе запрет держится только на дисциплине агента. Если линтер не настроен, useEffect вернётся в код при первом же удобном случае.
Какие задачи решает
- убрать лишние
useEffectиз компонента при рефакторинге - объяснить агенту, почему не стоит синхронизировать состояние через эффект
- найти эффект-флаг, который только переключает действие
- заменить самодельный кэш и отмену запросов на библиотеку
- сбросить локальное состояние компонента при смене id
Примеры запросов агенту
- Перепиши этот компонент без useEffect, покажи, какое правило применил
- Посмотри PR: где тут useEffect можно заменить на вычисление по месту?
- Агент добавил useEffect на всякий случай — проверь и убери
Как установить no-use-effect
1Через Skills CLI (Vercel)
npx skills add Factory-AI/factory-plugins --skill no-use-effect -a claude-code2Вручную: положить файлы
~/.claude/skills/no-use-effect/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/no-use-effect/
1Через Skills CLI (Vercel)
npx skills add Factory-AI/factory-plugins --skill no-use-effect -a codex2Вручную: положить файлы
.agents/skills/no-use-effect/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Factory-AI/factory-plugins --skill no-use-effect -a cursor2Вручную: положить файлы
.cursor/skills/no-use-effect/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Factory-AI/factory-plugins no-use-effect2Вручную: положить файлы
.github/skills/no-use-effect/SKILL.md1Через Skills CLI (Vercel)
npx skills add Factory-AI/factory-plugins --skill no-use-effect -a gemini-cli2Командой платформы
gemini skills install https://github.com/Factory-AI/factory-plugins --path plugins/typescript/skills/no-use-effectВручную: положить файлы
.devin/skills/no-use-effect/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Factory-AI/factory-plugins --skill no-use-effect -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о no-use-effect
Как установить no-use-effect в Claude?
Выполните npx skills add Factory-AI/factory-plugins --skill no-use-effect -a claude-code. Файл скилла появится по пути ~/.claude/skills/no-use-effect/SKILL.md.
Что делает no-use-effect?
Запрещает прямой вызов useEffect в React-коде и подсказывает замену из пяти правил: вычисление по месту, библиотека запросов, обработчик события, useMountEffect, key на родителе.
Чем useMountEffect отличается от обычного useEffect?
Это обёртка над useEffect с пустым массивом зависимостей. Смысл — явно показать, что синхронизация нужна один раз при монтировании, а не при каждом изменении.
Похожие скиллы
Всё по теме «Фронтенд и UI» →Сначала — no-use-effect от других авторов.