---
generated_at: 2026-01-28 12:40:00
metrics:
  claims_total: 32
  claims_with_evidence: 31
  claims_without_evidence: 1
confidence_derived: 0.97
---

# 根拠レポート：33-GDPRリクエスト画面

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：31 / 32、根拠なし：1
- 優先レビュー（高）
  1. **HTMLビューの認証Cookie引き継ぎ**：外部ブラウザでの認証状態確認が必要
  2. **PDFファイル保存先パス**：DownloadFile実装の詳細確認が必要
  3. **リクエストステータスの全種類**：サーバー側で定義された全ステータス確認

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `lib/screens/gdpr/view/gdpr_screen.dart`（全362行）
- E-02: `lib/screens/gdpr/view/widget/create_request.dart`（全180行）
- E-03: `lib/screens/gdpr/bloc/gdpr_bloc.dart`（全93行）
- E-04: `lib/screens/gdpr/bloc/gdpr_event.dart`（全49行）
- E-05: `lib/screens/gdpr/bloc/gdpr_state.dart`（全131行）
- E-06: `lib/screens/gdpr/bloc/gdpr_repository.dart`（全77行）
- E-07: `lib/services/api_client.dart`（GDPR関連: 行1514-1591）
- E-08: `lib/services/mutation_query.dart`（GDPR関連: 行2100-2190）
- E-09: `lib/utils/app_navigation.dart`（行398-403）
- E-10: `lib/utils/route_constants.dart`（行44-45）
- E-11: `docs/code-to-docs/画面機能マッピング/画面機能マッピング.csv`（行85-88）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | 画面タイトルは「GDPR Data Requests」である | E-01（行38） | ○ |
| C-02 | PDFボタン押下でGdprPdfRequestイベントが発行される | E-01（行310-311） | ○ |
| C-03 | HTMLボタン押下で外部ブラウザが起動される | E-01（行313-314: launchUrl, LaunchMode.externalApplication） | ○ |
| C-04 | HTMLビューのURLはbaseDomain/customer/account/gdpr/html-view | E-01（行313） | ○ |
| C-05 | Create Requestボタン押下でCreateRequestModalが表示される | E-01（行143-149: showDialog, CreateRequestModal） | ○ |
| C-06 | GdprRequestTypeはDELETEとUPDATEの2種類 | E-02（行6-9） | ○ |
| C-07 | リクエスト作成時はタイプとメッセージが必須 | E-02（行25-37, 134-140） | ○ |
| C-08 | 検索は数値IDのみ受け付ける | E-01（行193-200: RegExp(r'^\d+$')） | ○ |
| C-09 | 検索が空の場合は全件再取得される | E-01（行189-190） | ○ |
| C-10 | REVOKEDステータスの場合Revokeボタンは操作不可 | E-01（行244-248, 254-258） | ○ |
| C-11 | Revokeボタンがグレーアウトされる | E-01（行254-259: backgroundColor条件分岐） | ○ |
| C-12 | BlocパターンでState管理を行っている | E-03, E-04, E-05 | ○ |
| C-13 | ルート名はgdprである | E-10（行44） | ○ |
| C-14 | GdprBlocがBlocProviderで提供される | E-09（行400-401） | ○ |
| C-15 | 関連機能No.63-66が対応 | E-11（行85-88） | ○ |
| C-16 | リクエスト一覧はListView.builderで表示 | E-01（行213-289） | ○ |
| C-17 | 各カードにID、Status、Type、Message、Dateが表示 | E-01（行230-238） | ○ |
| C-18 | 顧客IDはappStoragePref.getCustomerId()から取得 | E-08（行2103） | ○ |
| C-19 | 顧客メールはappStoragePref.getCustomerEmail()から取得 | E-01（行30） | ○ |
| C-20 | FetchGdprRequestsList成功時はgdprRequestsリストを更新 | E-01（行50-64） | ○ |
| C-21 | CreateGdprRequest成功時はSnackBarでメッセージ表示 | E-01（行91-93） | ○ |
| C-22 | リスト再取得はFetchGdprRequestsListを再送信 | E-01（行94, 108） | ○ |
| C-23 | RevokeGdprRequest成功時はサーバーメッセージを表示 | E-01（行105-106） | ○ |
| C-24 | PDFはBase64エンコードで返却される | E-01（行120-121: DownloadFile().saveBase64String） | ○ |
| C-25 | GdprSearchRequest成功時は検索結果を表示 | E-01（行66-79） | ○ |
| C-26 | ローディング中はCircularProgressIndicatorを表示 | E-01（行293-300） | ○ |
| C-27 | リポジトリパターンでデータアクセスを抽象化 | E-06（行7-14, 16-76） | ○ |
| C-28 | 5種類のAPIメソッドが存在する | E-06（行18-27, 30-39, 42-51, 54-63, 66-75） | ○ |
| C-29 | バリデーションエラー時はフォームエラーを表示 | E-02（行134-140） | ○ |
| C-30 | ステータスラベルは黄色背景で表示 | E-01（行232-234: MobiKulTheme.warningColor） | ○ |
| C-31 | initStateでFetchGdprRequestsListが自動実行 | E-01（行29） | ○ |
| C-32 | HTMLビューの認証Cookie引き継ぎ | **根拠なし**（外部ブラウザの仕様依存） | △ |

## 4) 不足情報（Unknown / Missing）
- 外部ブラウザでのCookie/認証状態の引き継ぎ仕様
  - 候補：url_launcherパッケージのドキュメント / 実機動作確認
- PDFファイルの保存先パスとファイル名
  - 候補：DownloadFile.saveBase64Stringの実装詳細
- GDPRリクエストの全ステータス種類（PENDING, REVOKED以外）
  - 候補：Bagistoバックエンドのステータス定義

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - UI表示関連の主張
- **0: 低リスク** - イベント/ステート管理
- **1: 中リスク** - APIエラーハンドリング
- **2: 高リスク** - HTMLビューの認証状態（外部ブラウザ起動時）
- **1: 中リスク** - PDFファイル保存処理

## 6) レビュアーチェックリスト（最小）
- [ ] HTMLビュー（外部ブラウザ）で正しく認証状態が維持されるか動作確認
- [ ] PDFダウンロードが正常に完了しファイルが開けるか確認
- [ ] REVOKEDステータスのRevokeボタンが正しくグレーアウトされるか確認
- [ ] リクエスト作成後にリストが自動更新されるか確認
- [ ] 検索で数値以外の入力時にエラーメッセージが表示されるか確認
- [ ] GDPR関連の法的要件（削除期限等）がサーバー側で実装されているか確認
