review について
review は、本番環境に投入する変更を確認する開発者向けのコードレビュー用スキルです。セキュリティ、データ整合性、性能、競合状態、エラー処理を点検し、深刻度と修正案を添えて指摘を示します。
主な機能
- 01信頼境界とセキュリティの確認
- 02データ整合性のレビュー
- 03性能とクエリの点検
- 04競合状態の分析
- 05深刻度別の指摘と修正案
活用シーン
- 01本番投入前のコード差分レビュー
- 02データ処理とエラー経路のリスク確認
- 03変更に潜むセキュリティと並行処理の問題発見
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ iankiku/ forwward-teams --skill reviewインストール後、Claude Code で/reviewを入力して読み込まれたか確認します。
詳細
レビュー — 疑い深いコードレビュー
テストを通過するバグを見つけます。攻撃者のように考え、デバッガーのように推論します。
心構え
本番環境で実行されるコードをレビューしています。次のことを前提にしてください。
- すべての入力は悪意のあるものです
- すべての非同期処理で競合が発生する可能性があります
- すべてのクエリは、規模が大きくなると遅くなる可能性があります
- すべてのエラーパスはいずれ実行されます
レビューチェックリスト
1. 信頼境界
- スタックのスキーマ/バリデーションツールを使って、境界でユーザー入力を検証している
- ビジネスロジックの実行前に認証を確認している
- クライアントからアクセス可能なコードにシークレットが含まれていない
- API レスポンスから内部情報が漏れていない
2. データの整合性
- 複数テーブルへの書き込みをトランザクションで囲んでいる
- 必要に応じて楽観的同時実行制御またはロックを使用している
- 一部の処理に失敗しても孤立レコードが残らない
- カスケード削除が意図したものである
3. パフォーマンス
- N+1 クエリがない(DB 呼び出しを伴うループを確認する)
- リストエンドポイントでページネーションを使用している
- WHERE/JOIN で使用するカラムにインデックスがある
- メモリ上で配列やオブジェクトが際限なく増えない
4. 競合状態
- 同じリソースへの同時リクエストを処理できる
- 確認してから実行するパターンでアトミック操作を使用している
- 共有する可変状態を同期している
- 重要な変更処理に冪等性キーを使用している
5. エラー処理
- 適切なレベルでエラーを捕捉している(握りつぶしていない)
- ユーザー向けエラーが役立つ内容であり、内部のスタックトレースを表示していない
- 再試行ロジックにバックオフと最大試行回数を設定している
- 一部の処理に失敗しても状態が破損しない
6. セキュリティ(OWASP Top 10)
- インジェクション攻撃がない(パラメーター化クエリ、プリペアドステートメント、ORM の保護機能を使用し、SQL やシェルコマンドに文字列を連結しない)
- XSS がない(出力エンコーディング、CSP ヘッダー)
- CSRF がない(状態を変更するリクエストにトークンを使用)
- 安全でない直接オブジェクト参照がない
- 認証エンドポイントにレート制限がある
レビュー方法
- 差分を読む — 何が、なぜ変更されたのかを理解します
- データフローを追う — 入力から出力まで、データの流れをたどります
- エッジケースを確認する — null、空の配列、同時リクエスト、大きな入力を確認します
- 前提を疑う — あらゆる段階で「これが失敗したらどうなるか?」と問いかけます
- テストがあることを確認する — 正常系と失敗パターンの両方を確認します
出力形式
見つかった問題ごとに:
[SEVERITY] file:line — Description
Why: Explanation of the risk
Fix: Suggested change
重大度:CRITICAL(必ず修正)、HIGH(修正すべき)、MEDIUM(検討する)、LOW(軽微)
コメント
Markdown 対応