ponshu-room-lite/docs/archive/CURSOR_PROPOSAL_FINAL_REVIE...

240 lines
6.4 KiB
Markdown
Raw Permalink Normal View History

# Cursor提案の最終判断レポート
## 📅 作成日時
2026年2月3日
## 🎯 結論
**Cursorの提案5箇所のうち、2箇所のみ修正を推奨します。**
---
## ✅ 修正すべき箇所2箇所
### 1. lib/widgets/home/sake_filter_chips.dart:27行目
**現在**:
```dart
final rawListAsync = ref.watch(rawSakeListItemsProvider);
```
**修正後**:
```dart
final filteredAsync = ref.watch(allSakeItemsProvider);
```
**理由**:
- セット商品は「ビジネスモードのお品書き作成でしか使わない」
- 個人モードのタグフィルター選択肢にセット商品のタグを含める必要がない
- Phase D6の設計意図個人モードでセット商品除外を完全実現
**影響範囲**:
- 個人モードのタグフィルターチップ選択肢
- セット商品のタグが除外されるが、問題なし
**デグレリスク**: ❌ なし
---
### 2. lib/widgets/prefecture_filter_sheet.dart:21行目
**現在**:
```dart
final rawListAsync = ref.read(rawSakeListItemsProvider);
```
**修正後**:
```dart
final filteredAsync = ref.read(allSakeItemsProvider);
```
**理由**:
- セット商品の都道府県を個人モードの選択肢に含める必要がない
- ビジネスモードに切り替えると選択肢が増える→**これは正しい仕様**
- ビジネスモードではセット商品も表示されるため、選択肢が増えるのは自然
**影響範囲**:
- 個人モードの都道府県フィルター選択肢
- セット商品の都道府県が除外される
**デグレリスク**: ❌ なし
---
## ❌ 修正してはいけない箇所3箇所
### 3. lib/screens/home_screen.dart:176行目
**現在**:
```dart
final isListActuallyEmpty = ref.watch(rawSakeListItemsProvider).asData?.value.isEmpty ?? true;
```
**修正不可の理由**:
```dart
if (displayList.isEmpty) {
if (isListActuallyEmpty) {
return HomeEmptyState(); // 「まだ1件も登録していません」
} else {
return SakeNoMatchState(); // 「フィルタ条件に一致する日本酒がありません」
}
}
```
**意図的な設計**:
- 「完全に空」vs「フィルタで0件」を区別するため
- 個人モードでセット商品のみ登録している場合:
- `allSakeItemsProvider`は0件セット商品除外済み
- `rawSakeListItemsProvider`は1件以上セット商品あり
- → 「フィルタ条件に一致しません」と正しく表示
**修正した場合の問題**:
- セット商品のみ登録している状態で「まだ登録していません」と誤表示
- ユーザーが混乱する
**判定**: ❌ **修正不可**
---
### 4. lib/screens/menu_creation_screen.dart:134行目
**現在**:
```dart
final isListActuallyEmpty = ref.watch(rawSakeListItemsProvider).asData?.value.isEmpty ?? true;
```
**修正不可の理由**: home_screen.dart:176と同じロジック
**判定**: ❌ **修正不可**
---
### 5. lib/screens/dev_menu_screen.dart:189行目
**現在**:
```dart
final allItems = ref.read(rawSakeListItemsProvider).asData?.value ?? [];
```
**修正不要の理由**:
- 開発者メニューは**デバッグ用**
- セット商品も含めて**全データを解析**したい
- 一般ユーザーには非表示(開発者のみアクセス)
**判定**: ⚠️ **任意**(修正しても問題ないが、現状維持を推奨)
---
## 📊 修正優先度
| 優先度 | 項目 | 実装時間 | デグレリスク |
|--------|------|----------|--------------|
| 🟡 HIGH | sake_filter_chips.dart:27 | 2分 | なし |
| 🟡 HIGH | prefecture_filter_sheet.dart:21 | 2分 | なし |
**合計実装時間**: **4分**
---
## 🔍 UI/UX改善提案の判断
### 提案1: ダークモードのみAppBar背景色統一
**Cursorの提案**:
```dart
// lib/theme/app_theme.dart:134
backgroundColor: (brightness == Brightness.dark) ? const Color(0xFF1E1E1E) : null,
```
**判定**: ✅ **実施推奨**
**理由**:
- デグレリスクゼロ
- 視覚的統一感向上
- 実装時間2分
---
### 提案2: ライトモードもAppBar背景色統一
**Cursorの提案**:
```dart
backgroundColor: (brightness == Brightness.dark)
? const Color(0xFF1E1E1E)
: Colors.white,
```
**判定**: ⚠️ **要慎重検討**
**理由**:
- 検索フィールドの白テキストを黒に変更必要
- Material Design 3の標準動作から外れる
- デグレリスク中程度
**推奨**: **実施前にユーザーと相談**
---
## 🎯 最終的な実行計画
### Step 1: Phase D6完全性修正4分
1. ✅ sake_filter_chips.dart:27修正
2. ✅ prefecture_filter_sheet.dart:21修正
### Step 2: UI/UX改善2分
3. ✅ AppBar背景色統一ダークモードのみ← ユーザー判断
### Step 3: 最終検証5分
4. flutter analyze実行
5. Android APKビルド
---
## ✅ Cursorへの返答推奨文言
```markdown
## レビュー結果
詳細な調査ありがとうございます。批判的レビューの結果、以下の判断としました。
### 修正する箇所2箇所のみ
1. ✅ lib/widgets/home/sake_filter_chips.dart:27 → `allSakeItemsProvider`に変更
2. ✅ lib/widgets/prefecture_filter_sheet.dart:21 → `allSakeItemsProvider`に変更
### 修正しない箇所3箇所
1. ❌ lib/screens/home_screen.dart:176 → **空状態判定に必須**(現状維持)
2. ❌ lib/screens/menu_creation_screen.dart:134 → **同上**(現状維持)
3. ⚠️ lib/screens/dev_menu_screen.dart:189 → **開発者メニュー**(現状維持)
理由: セット商品のみ登録している場合に「完全に空」と「フィルタで0件」を区別する必要があるため。
### UI/UX改善提案
- **提案1ダークモード統一**: 実施します
- **提案2ライトモード統一**: 見送ります
以上の方針でお願いします。
```
---
## 📝 他AI相談用プロンプト
**AI_CONSULTATION_PROMPT.md** を作成済み
このプロンプトを使用して、他のAIGemini、GPT-4などにセット商品の設計判断を相談できます。
---
## 🎊 期待される成果
### 修正実施後
- ✅ Phase D6の設計意図完全実現
- ✅ 個人モードでセット商品が完全除外
- ✅ タグ・都道府県フィルターの一貫性確保
- ✅ デグレリスクゼロ
---
**作成者**: Claude (Sonnet 4.5)
**作成日時**: 2026年2月3日