Issue Review
Issue番号を指定して、worktreeの編集内容を厳しくレビューする。
Workflow
Step 1: Issue情報の取得
bash
gh issue view {NUMBER} --json number,title,body
Step 2: ブランチ名の特定
bash
# worktreeからブランチ名を取得
REPO_NAME=$(basename $(git rev-parse --show-toplevel))
WORKTREE_PATH="../${REPO_NAME}-{NUMBER}"
# worktreeが存在するか確認
git worktree list | grep "${WORKTREE_PATH}"
Step 3: 差分の取得
bash
# worktreeディレクトリで差分を取得 cd "$WORKTREE_PATH" git diff main..HEAD git diff main..HEAD --stat
Step 4: レビュー実施
以下の観点で厳しくレビューする。問題がなくても「問題なし」で済ませず、改善の余地があれば指摘する。
Review Checklist
1. Issue要件との整合性 (MUST)
- • Issueで要求された機能がすべて実装されているか
- • Issueで要求されていないことを勝手に実装していないか(スコープクリープ)
- • 実装がIssueの意図を正しく理解しているか
- • タスクリスト(
- [ ])があれば全て完了しているか
2. コード品質
- • 命名は意図を正確に表しているか(略語の乱用、曖昧な名前)
- • 関数/メソッドの責務は単一か(SRP違反)
- • ネストが深すぎないか(early returnで改善可能か)
- • マジックナンバー/マジックストリングがないか
- • コピペコードがないか(DRY違反)
- • 不要なコメントアウトされたコードが残っていないか
3. エラーハンドリング
- • エラーを握りつぶしていないか(
_ = err) - • エラーメッセージは原因特定に十分な情報を含むか
- • リカバリ可能なエラーと致命的なエラーを区別しているか
- • panicの使用は適切か(ライブラリでpanicは基本NG)
4. テスト
- • 新機能/変更に対するテストが追加されているか
- • エッジケースがテストされているか(空、nil、境界値)
- • テストは実装の詳細ではなく振る舞いをテストしているか
- • テスト名は何をテストしているか明確か
5. セキュリティ
- • ユーザー入力のバリデーションは十分か
- • SQLインジェクション、コマンドインジェクションの可能性
- • 機密情報(APIキー、パスワード)がログに出力されていないか
- • 適切な権限チェックがあるか
6. パフォーマンス
- • N+1クエリの可能性
- • 不要なループ内でのメモリアロケーション
- • 適切なデータ構造の選択(mapが必要な場面でslice使用など)
- • 重い処理のキャッシュ検討
7. 並行性 (該当する場合)
- • 競合状態(race condition)の可能性
- • デッドロックの可能性
- • goroutineリーク(終了条件が不明確)
- • 共有状態へのアクセスは適切に保護されているか
8. 設計・アーキテクチャ
- • プロジェクトの既存パターンに従っているか
- • 依存関係の方向は適切か(循環依存、レイヤー違反)
- • インターフェースは適切に使われているか(過剰/不足)
- • 将来の変更に対して開いているか(OCP)
9. YAGNI / KISS
- • 今必要ないものを実装していないか
- • 過度な抽象化をしていないか
- • 「念のため」のコードがないか
- • シンプルな解決策で十分ではないか
10. 破壊的変更
- • 公開APIのシグネチャ変更
- • 設定ファイルのフォーマット変更
- • データベーススキーマの変更(マイグレーション必要)
- • 既存の動作を変える変更
11. ログ・可観測性
- • 適切なログレベル(debug/info/warn/error)
- • 構造化ログになっているか
- • トレーサビリティ(リクエストID等)
12. ドキュメント
- • 公開API/関数にはdocstringがあるか
- • 複雑なロジックにはコメントがあるか
- • READMEの更新が必要か
Output Format
markdown
# Review: Issue #{NUMBER} - {TITLE}
## Summary
[1-2文で全体の評価]
## Must Fix (マージブロッカー)
- [ ] [深刻な問題1]
- [ ] [深刻な問題2]
## Should Fix (強く推奨)
- [ ] [中程度の問題1]
- [ ] [中程度の問題2]
## Consider (検討事項)
- [ ] [軽微な改善案1]
- [ ] [軽微な改善案2]
## Good Points
- [良かった点1]
- [良かった点2]
## Verdict
[ ] **Approved** - マージ可能
[ ] **Request Changes** - 修正が必要
Notes
- •厳しくレビューする。褒めるだけのレビューは無意味。
- •問題がなければ「問題なし」ではなく「この実装で問題ない理由」を述べる
- •コードを読まずに推測でレビューしない。必ずdiffを確認する
- •「動けばいい」は許容しない。保守性・可読性も重視
- •指摘には具体的な改善案を添える