# コードレビュー観点 v1.0.11+21

## 1. Phase D6設計整合性 ⭐⭐⭐⭐⭐

### 1-1. filteredByModeProvider経由の確認
- [ ] `rawSakeListItemsProvider`が不適切に使用されていない
- [ ] 例外: 空状態判定で`filteredByModeProvider`を使用

### 1-2. Personal/Business Mode判定
- [ ] `userProfile.isBusinessMode`で判定
- [ ] または`.select((p) => p.isBusinessMode)`でパフォーマンス最適化

---

## 2. 非同期処理の安全性 ⭐⭐⭐⭐⭐

### 2-1. BuildContextキャプチャパターン
- [ ] async gap前に`final navigator = Navigator.of(context);`
- [ ] async gap前に`final messenger = ScaffoldMessenger.of(context);`
- [ ] async gap後は`navigator.pop()`を使用

### 2-2. mountedチェック
- [ ] すべてのasync gap後に`if (!mounted) return;`

### 2-3. Linter警告
- [ ] `use_build_context_synchronously`警告がゼロ

---

## 3. パフォーマンス ⭐⭐⭐⭐

### 3-1. Provider最適化
- [ ] `.select()`による部分監視
- [ ] 不要な`ref.watch()`がない

### 3-2. リスト最適化
- [ ] `ListView.builder`使用（大量データ対応）
- [ ] 画像キャッシュが適切

---

## 4. 保守性 ⭐⭐⭐⭐

### 4-1. マジックナンバー
- [ ] `AppConstants`クラスに定義済み
- [ ] ハードコードされた数値がない

### 4-2. コメント
- [ ] 意図的な設計判断にコメント
- [ ] 複雑なロジックに説明コメント

### 4-3. ドキュメント
- [ ] CURSOR_HANDOFF_FINAL_v1.0.10+20.md参照
- [ ] 将来的検討事項が文書化

---

## 5. 意図的なハードコーディング（保護） ⭐⭐⭐⭐⭐

参照: `SAFE_FIXES_REPORT.md`

### 5-1. 変更してはいけない箇所
- [ ] `lib/widgets/home/sake_grid_item.dart`:102 `Colors.black54`
- [ ] `lib/screens/home_screen.dart`:86-88 `Colors.white`
- [ ] SpeedDialオーバーレイ

### 5-2. 変更理由の確認
- [ ] 視認性確保のため（画像オーバーレイ）
- [ ] AppBar常にダーク背景のため（検索フィールド）

---

## レビュー実施記録

**レビュアー**: ___________  
**レビュー日時**: ___________  
**結果**: Approved / Changes Requested  
**コメント**: ___________
