d48cda4081
CI / Test (ubuntu-latest, Node 18.x, bun) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, npm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, pnpm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, yarn) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 20.x, bun) (push) Failing after 17m13s
CI / Test (ubuntu-latest, Node 20.x, npm) (push) Failing after 18m42s
CI / Test (ubuntu-latest, Node 20.x, pnpm) (push) Failing after 15m0s
CI / Test (ubuntu-latest, Node 20.x, yarn) (push) Failing after 49m44s
CI / Test (ubuntu-latest, Node 22.x, bun) (push) Failing after 51m55s
CI / Test (ubuntu-latest, Node 22.x, pnpm) (push) Failing after 21m57s
CI / Test (ubuntu-latest, Node 22.x, npm) (push) Failing after 37m39s
CI / Test (ubuntu-latest, Node 22.x, yarn) (push) Failing after 34m7s
CI / Validate Components (push) Failing after 37m15s
CI / Python Tests (push) Failing after 10m1s
CI / Security Scan (push) Failing after 10m1s
CI / Lint (push) Failing after 17m12s
CI / Coverage (push) Failing after 20m19s
CI / Test (macos-latest, Node 18.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, yarn) (push) Has been cancelled
125 lines
4.6 KiB
Markdown
125 lines
4.6 KiB
Markdown
# コードレビュー基準
|
|
|
|
## 目的
|
|
|
|
コードレビューは、コードがマージされる前に品質、セキュリティ、保守性を確保します。このルールは、コードレビューの実施タイミングと方法を定義します。
|
|
|
|
## レビューのタイミング
|
|
|
|
**必須レビュートリガー:**
|
|
|
|
- コードの作成または修正後
|
|
- 共有ブランチへのコミット前
|
|
- セキュリティに関わるコードが変更された場合(認証、決済、ユーザーデータ)
|
|
- アーキテクチャの変更時
|
|
- プルリクエストのマージ前
|
|
|
|
**レビュー前の要件:**
|
|
|
|
レビューを依頼する前に、以下を確認してください:
|
|
|
|
- すべての自動チェック(CI/CD)が通過している
|
|
- マージコンフリクトが解決されている
|
|
- ブランチがターゲットブランチと最新状態である
|
|
|
|
## レビューチェックリスト
|
|
|
|
コードを完了とマークする前に:
|
|
|
|
- [ ] コードが読みやすく、適切に命名されている
|
|
- [ ] 関数が焦点を絞っている(50行未満)
|
|
- [ ] ファイルが凝集している(800行未満)
|
|
- [ ] 深いネストがない(4レベル以上)
|
|
- [ ] エラーが明示的に処理されている
|
|
- [ ] ハードコードされたシークレットや認証情報がない
|
|
- [ ] console.logやデバッグ文がない
|
|
- [ ] 新機能にテストが存在する
|
|
- [ ] テストカバレッジが最低80%を満たしている
|
|
|
|
## セキュリティレビュートリガー
|
|
|
|
**以下の場合はsecurity-reviewerエージェントを使用してください:**
|
|
|
|
- 認証または認可コード
|
|
- ユーザー入力の処理
|
|
- データベースクエリ
|
|
- ファイルシステム操作
|
|
- 外部APIコール
|
|
- 暗号化操作
|
|
- 決済または金融コード
|
|
|
|
## レビュー重大度レベル
|
|
|
|
| レベル | 意味 | アクション |
|
|
|--------|------|------------|
|
|
| CRITICAL | セキュリティ脆弱性またはデータ損失リスク | **BLOCK** - マージ前に修正必須 |
|
|
| HIGH | バグまたは重大な品質問題 | **WARN** - マージ前に修正すべき |
|
|
| MEDIUM | 保守性の懸念 | **INFO** - 修正を検討 |
|
|
| LOW | スタイルまたは軽微な提案 | **NOTE** - 任意 |
|
|
|
|
## エージェントの使用
|
|
|
|
コードレビューには以下のエージェントを使用してください:
|
|
|
|
| エージェント | 目的 |
|
|
|-------------|------|
|
|
| **code-reviewer** | 一般的なコード品質、パターン、ベストプラクティス |
|
|
| **security-reviewer** | セキュリティ脆弱性、OWASP Top 10 |
|
|
| **typescript-reviewer** | TypeScript/JavaScript固有の問題 |
|
|
| **python-reviewer** | Python固有の問題 |
|
|
| **go-reviewer** | Go固有の問題 |
|
|
| **rust-reviewer** | Rust固有の問題 |
|
|
|
|
## レビューワークフロー
|
|
|
|
```
|
|
1. git diffを実行して変更を理解する
|
|
2. セキュリティチェックリストを最初に確認する
|
|
3. コード品質チェックリストをレビューする
|
|
4. 関連するテストを実行する
|
|
5. カバレッジ >= 80%を検証する
|
|
6. 詳細レビューに適切なエージェントを使用する
|
|
```
|
|
|
|
## よくある問題の検出
|
|
|
|
### セキュリティ
|
|
|
|
- ハードコードされた認証情報(APIキー、パスワード、トークン)
|
|
- SQLインジェクション(クエリでの文字列連結)
|
|
- XSS脆弱性(エスケープされていないユーザー入力)
|
|
- パストラバーサル(未サニタイズのファイルパス)
|
|
- CSRF保護の欠如
|
|
- 認証バイパス
|
|
|
|
### コード品質
|
|
|
|
- 大きな関数(50行超)- より小さく分割
|
|
- 大きなファイル(800行超)- モジュールを抽出
|
|
- 深いネスト(4レベル超)- 早期リターンを使用
|
|
- エラー処理の欠如 - 明示的に処理
|
|
- ミューテーションパターン - イミュータブルな操作を優先
|
|
- テストの欠如 - テストカバレッジを追加
|
|
|
|
### パフォーマンス
|
|
|
|
- N+1クエリ - JOINまたはバッチングを使用
|
|
- ページネーションの欠如 - クエリにLIMITを追加
|
|
- 制約のないクエリ - 制約を追加
|
|
- キャッシュの欠如 - 高コスト操作をキャッシュ
|
|
|
|
## 承認基準
|
|
|
|
- **承認**: CRITICALまたはHIGHの問題なし
|
|
- **警告**: HIGHの問題のみ(注意してマージ)
|
|
- **ブロック**: CRITICALの問題が検出
|
|
|
|
## 他のルールとの統合
|
|
|
|
このルールは以下と連携します:
|
|
|
|
- [testing.md](testing.md) - テストカバレッジ要件
|
|
- [security.md](security.md) - セキュリティチェックリスト
|
|
- [git-workflow.md](git-workflow.md) - コミット規約
|
|
- [agents.md](agents.md) - エージェント委任
|