code-review について
Sentry プロジェクト向けのコードレビュー用スキルです。正確性、セキュリティ、性能、設計、テスト範囲、長期的な影響の評価を支援し、具体的で配慮あるフィードバックとリスクに基づく承認を重視します。
主な機能
- 01ランタイムエラーと性能リスクの確認
- 02副作用と API 互換性のレビュー
- 03セキュリティ脆弱性の特定
- 04設計とプロジェクト規約の評価
- 05テストと境界条件の確認
- 06シニアエンジニアのレビューが必要な変更の指摘
活用シーン
- 01Sentry のプルリクエストの不具合確認
- 02変更に伴うセキュリティと性能リスクの評価
- 03テスト範囲と互換性への影響の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ getsentry/ skills --skill code-reviewインストール後、Claude Code で/code-reviewを入力して読み込まれたか確認します。
詳細
Sentry コードレビュー
Sentry のプロジェクトのコードをレビューする際は、以下のガイドラインに従ってください。
レビューチェックリスト
問題の特定
コード変更で以下の問題がないか確認してください:
- ランタイムエラー: 例外の発生可能性、null ポインター問題、範囲外アクセス
- パフォーマンス: 制限のない O(n²) 操作、N+1 クエリ、不要なメモリ割り当て
- 副作用: 他のコンポーネントに影響する意図しない動作の変更
- 後方互換性: 移行パスのない破壊的な API 変更
- ORM クエリ: 予期しないクエリパフォーマンスを引き起こす複雑な Django ORM
- セキュリティ脆弱性: インジェクション、XSS、アクセス制御の不備、シークレットの漏洩
設計評価
- コンポーネント間の相互作用は論理的に妥当か?
- 変更は既存のプロジェクトアーキテクチャと整合しているか?
- 現在の要件や目標と矛盾はないか?
テストカバレッジ
すべての PR には適切なテストカバレッジが必要です:
- ビジネスロジックに対する機能テスト
- コンポーネント間の相互作用に対する統合テスト
- 重要なユーザーパスに対するエンドツーエンドテスト
テストが実際の要件とエッジケースをカバーしているか確認してください。テストコードでは過度な分岐やループを避けてください。
長期的な影響
以下を含む変更は、シニアエンジニアによるレビューを依頼してください:
- データベーススキーマの変更
- API コントラクトの変更
- 新しいフレームワークやライブラリの採用
- パフォーマンスが重要なコードパス
- セキュリティに関わる機能
フィードバックのガイドライン
トーン
- 丁寧で共感的であること
- 曖昧な批判ではなく、実行可能な提案を行うこと
- 確信が持てない場合は質問の形で伝えること: 「...を検討されましたか?」
承認
- 残っている問題が軽微な場合は承認すること
- スタイルの好みを理由に PR をブロックしないこと
- 目標はリスクの低減であり、完璧なコードではないことを忘れないこと
指摘すべき一般的なパターン
Python/Django
# Bad: N+1 query
for user in users:
print(user.profile.name) # Separate query per user
# Good: Prefetch related
users = User.objects.prefetch_related('profile')
TypeScript/React
// Bad: Missing dependency in useEffect
useEffect(() => {
fetchData(userId);
}, []); // userId not in deps
// Good: Include all dependencies
useEffect(() => {
fetchData(userId);
}, [userId]);
セキュリティ
# Bad: SQL injection risk
cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")
# Good: Parameterized query
cursor.execute("SELECT * FROM users WHERE id = %s", [user_id])
参考資料
コメント
Markdown 対応