Agent skill
react-code-review
Review React/TypeScript code against established coding guidelines. Use when reviewing React components, performing code audits, checking for React best practices, anti-patterns, performance issues, or when the user asks to review React code, check code quality, or audit React implementation.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/react-code-review
SKILL.md
React Code Review Skill
Reactコーディングガイドラインに基づいて、React/TypeScriptコードを体系的にレビューします。
Instructions
ステップ1: ガイドラインの確認
プロジェクトのReactコーディングガイドラインを読み込みます。
REACT_CODING_GUIDELINES.mdまたは同様のガイドラインファイルを検索- ガイドラインが存在しない場合は、一般的なReactベストプラクティスを適用
ステップ2: レビュー対象の特定
以下のパターンでReact/TypeScriptファイルを検索:
**/*.tsx
**/*.ts
**/components/**/*.tsx
**/hooks/**/*.ts
**/pages/**/*.tsx
**/app/**/*.tsx
ステップ3: レビュー観点
各ファイルを以下の6つの観点でレビュー:
1. コンポーネント設計
- 単一責任の原則に従っているか
- Props の型定義は適切か
- コンポーネントの大きさは適切か(200行以内推奨)
- コンポーネント合成を活用しているか
2. Hooks の使用
-
useEffectの依存配列は正しいか - Custom Hook でロジックを分離しているか
-
useMemo/useCallbackの使用は適切か - Hooks のルールに違反していないか
3. パフォーマンス
- リストのキーは一意で安定しているか(
indexを避ける) - 不要な再レンダリングを防いでいるか
- インラインオブジェクト/関数の定義を避けているか
- 大量データの場合は仮想化を検討しているか
4. 型安全性
-
anyの使用はないか - Union Types やジェネリック型を活用しているか
- 型アサーションは最小限か
- Props の型定義は明示的か
5. 状態管理
- ローカル状態とグローバル状態を適切に分けているか
- 派生状態を不要に
useStateで管理していないか - Prop Drilling を避けているか
6. アンチパターン
- 直接の DOM 操作はないか
- ビジネスロジックと UI の分離は適切か
-
useEffectの誤用はないか(同期処理を非同期にしていないか)
ステップ4: 評価と報告
各ファイルごとに3段階で評価:
- ✅ Good: 良い点
- ⚠️ Warning: 改善の余地がある点
- ❌ Critical: 重大な問題
具体的なコード箇所を示して改善提案を提供します。
ステップ5: 優先度の決定
問題を優先度順に整理:
-
Critical(❌): すぐに修正すべき
anyの使用- リストキーに
index使用 - メモリリーク
- セキュリティ問題
-
Warning(⚠️): 改善が推奨される
- パフォーマンス最適化の余地
- コンポーネントサイズ
- コードの重複
-
Good(✅): 維持すべき良い実装
Examples
例1: コンポーネントのレビュー
tsx
// 対象ファイル: components/UserList.tsx
❌ Critical:
- 120行目: リストのキーに index を使用
現在: key={index}
改善: key={user.id}
⚠️ Warning:
- 50行目: handleClick がインライン定義
useCallback でメモ化すべき
- 80-95行目: データフェッチロジックがコンポーネント内
Custom Hook に分離すべき
✅ Good:
- Props の型定義が明確
- 適切なコンポーネント分割
例2: Hooks のレビュー
tsx
// 対象ファイル: hooks/useData.ts
❌ Critical:
- 15行目: useEffect の依存配列が不正確
現在: }, [])
改善: }, [userId, filter])
⚠️ Warning:
- useMemo を使用しているが、計算コストが低い
不要な最適化の可能性
✅ Good:
- ロジックが Custom Hook に分離されている
- エラーハンドリングが適切
例3: パフォーマンスレビュー
tsx
❌ Critical:
- インラインオブジェクトを props に渡している
現在: <Child style={{ margin: 10 }} />
改善: const style = { margin: 10 } を外部定義
⚠️ Warning:
- 1000件以上のリストを一度に描画
react-window での仮想化を検討
✅ Good:
- React.memo で不要な再レンダリングを防止
Output Format
レビュー結果は以下の形式で出力:
markdown
# React Code Review Report
## 概要
- レビュー対象: XX ファイル
- Critical 問題: X件
- Warning: Y件
- Good: Z件
## 重大な問題(Critical)
### 1. [ファイル名](path/to/file.tsx:line)
**問題**: 説明
**現在のコード**:
```tsx
// 問題のあるコード
改善案:
tsx
// 改善後のコード
改善の余地(Warning)
...
良い実装(Good)
...
推奨アクション
優先度順に修正すべき項目をリストアップ
## Reference Files
詳細なガイドラインについては以下を参照:
- [React Coding Guidelines](../../REACT_CODING_GUIDELINES.md)
- [Component Design Patterns](./patterns.md)
- [Performance Optimization Guide](./performance.md)
## Troubleshooting
### ガイドラインファイルが見つからない
1. プロジェクトルートで `*GUIDELINE*.md` を検索
2. 見つからない場合は一般的なReactベストプラクティスを適用
3. 必要に応じてガイドラインの作成を提案
### レビュー範囲が広すぎる
1. 特定のディレクトリやファイルに絞る
2. 優先度の高い問題から段階的にレビュー
3. コンポーネント、Hooks、ページなどカテゴリ別に分割
### 誤検知が多い
1. プロジェクト固有のパターンを考慮
2. ユーザーに確認を求める
3. 文脈を考慮した柔軟な判断
## Version History
- v1.0.0 (2025-01-02): Initial release
Didn't find tool you were looking for?