mcpField
R
react-effects-audit

react-effects-audit

github.com/fusengineテスト・品質3446 回インストール2 週間前に更新
リポジトリ

react-effects-audit について

react-effects-auditは、ReactおよびNext.jsプロジェクトを対象とするコード監査スキルです。不要なuseEffectのパターンを9種類検出し、重要度と箇所、修正案を示し、該当時には設計上の指針も確認します。

主な機能

  1. 019種類のuseEffectアンチパターン検出
  2. 02重要度とコード箇所の報告
  3. 03確認済みの問題への修正案
  4. 04React・Next.jsの設計指針との照合
  5. 05確認前の自動修正を回避

活用シーン

  1. 01Reactコードの不要なEffectの点検
  2. 02クリーンアップ不足のfetch Effectの発見
  3. 03Next.jsのデータ取得Effectの確認
  4. 04Effect連鎖やイベント処理の評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/fusengine/agents --skill react-effects-audit

インストール後、Claude Code で/react-effects-auditを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
anti-patterns.md
detection-rules.md
fix-patterns-advanced.md
fix-patterns-core.md
report-format.md

詳細

React Effects Audit は、対象ファイルまたはディレクトリをスキャンし、React の公式ガイダンス「You Might Not Need an Effect」で説明されている 9 種類の `useEffect` のアンチパターン(派生状態、高コストな計算、状態のリセット、イベント処理、親への通知、Effect の連鎖、fetch のクリーンアップ漏れ、ストアの手動購読、アプリ初期化ロジック)を検出します。それぞれについて、重大度(CRITICAL/WARNING/INFO)、正確な位置、修正案を提示します。

対象が Next.js または React プロジェクトの場合、対応する SOLID スキル(solid-nextjs または solid-react)も参照し、Server Components や TanStack Query を使うべきデータ取得 Effect など、アーキテクチャレベルの違反も検出します。検出内容を先に提示せずに自動修正することはありません。

対象: $ARGUMENTS

React Effects Audit

概要

React のコードベースをスキャンし、React の公式ドキュメント(「You Might Not Need an Effect」)に基づいて不要な useEffect の使用を検出します。アンチパターンを重大度、位置、推奨される修正とともに報告します。


エージェントのワークフロー(必須)

PHASE 1: Scan target files (Glob *.tsx, *.jsx, *.ts, *.js)
PHASE 2: Detect anti-patterns (Grep detection rules)
PHASE 3: Analyze context (Read flagged files)
PHASE 4: Generate report with fixes

アンチパターンの概要

#アンチパターン重大度検出内容
1Effect 内の派生状態WARNINGuseEffect + 他の状態や props に基づく setState
2Effect 内の高コストな計算WARNINGfilter/map/reduce を伴う useEffect + setState
3Effect による状態のリセットWARNINGprop の変更時に状態をリセットする useEffect
4Effect 内のイベント処理CRITICALuseEffect 内のユーザー操作ロジック
5Effect による親への通知WARNING親の onChange/onUpdate を呼び出す useEffect
6Effect の連鎖CRITICAL互いをトリガーする複数の useEffect
7fetch のクリーンアップ漏れCRITICALクリーンアップまたは AbortController を伴わない fetch の useEffect
8ストアの手動購読WARNINGuseEffect 内の addEventListener/subscribe
9Effect 内のアプリ初期化INFOuseEffect(fn, []) 内の一度だけ実行される初期化ロジック

重大度レベル

レベル意味対応
CRITICALバグ、競合状態、メモリリーク直ちに修正
WARNINGパフォーマンスの問題、不要な再レンダー同じセッション内に修正
INFO可読性、軽微な非効率性時間があれば修正

リファレンスガイド

スキルのリファレンス
リファレンス参照する場面
anti-patterns.md各アンチパターンの理解
detection-rules.mdスキャン用の grep パターン
fix-patterns-core.md修正例 #1-5
fix-patterns-advanced.md修正例 #6-9
report-format.md監査レポートの生成
SOLID との相互参照(必須)

この監査は、既存の SOLID スキルを補完します。必ず相互参照してください。

プロジェクトの種類SOLID スキル主なルール
Next.jsfuse-nextjs:solid-nextjsデータ取得に useEffect を使わず、Server Components を使う
Reactfuse-react:solid-reactデータ取得に useEffect を使わず、TanStack Query を使う

統合: Next.js または React プロジェクトを監査する際は、対応する SOLID スキルも読み込み、アーキテクチャレベルの違反(ファイルサイズ、インターフェースの分離、コンポーネント内のビジネスロジック)を確認してください。


クイックスタート

1. Glob **/*.{tsx,jsx} in target directory
2. Detect project type (next.config.* → Next.js, package.json → React)
3. Load corresponding SOLID skill references if applicable
4. For each detection rule in detection-rules.md:
   → Grep pattern across all files
   → Read flagged files for context analysis
   → Confirm or dismiss (false positive check)
5. For each confirmed finding:
   → Identify severity from anti-patterns.md
   → Propose fix from fix-patterns-core.md or fix-patterns-advanced.md
   → Cross-check with SOLID rules (SRP, file size, hooks separation)
6. Output report using report-format.md

React 19 以降での考慮事項

機能監査への影響
React Compiler自動的にメモ化します。useMemo の必要性は下がりますが、Effect のアンチパターンは引き続き該当します
useEffectEvent19.2 で安定版です。依存配列を追加せずに、Effect 内の古いクロージャの問題を解決します
Activity API条件付きレンダリングの代替手段です。マウント/アンマウント時の Effect を減らします
useSyncExternalStore手動購読の Effect(アンチパターン #8)に代わるものです
Server Components多くのデータ取得 Effect を完全に不要にします

禁止されている動作

  • 指摘事項を先に示さずに、自動修正しないでください
  • 外部システムと同期する Effect を指摘しないでください(正当な用途です)
  • 適切なクリーンアップが行われているデータ取得の Effect を指摘しないでください
  • コンテキストを無視しないでください。指摘事項を確定する前に、必ずファイルを読み込んでください

コメント