---
generated_at: 2026-01-28 12:30:00
metrics:
  claims_total: 28
  claims_with_evidence: 26
  claims_without_evidence: 2
confidence_derived: 0.93
---

# 根拠レポート：アーキテクチャ設計書

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.93**
  - 根拠あり：26 / 28、根拠なし：2
- 優先レビュー（高）
  1. **トランザクション管理の分離レベル**：バックエンド仕様の確認が必要
  2. **検索エンジンの詳細**：バックエンド側の実装確認が必要

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

- E-01: `pubspec.yaml` - 依存パッケージとバージョン情報
- E-02: `lib/main.dart` - アプリケーションエントリポイント、初期化処理
- E-03: `lib/services/api_client.dart` - GraphQL APIクライアント実装
- E-04: `lib/services/graph_ql.dart` - GraphQLクライアント設定、認証リンク
- E-05: `lib/services/mutation_query.dart` - GraphQLクエリ・ミューテーション定義
- E-06: `lib/screens/home_page/bloc/home_page_bloc.dart` - BLoCパターン実装例
- E-07: `lib/screens/home_page/bloc/home_page_repository.dart` - Repository抽象・実装例
- E-08: `lib/utils/app_global_data.dart` - グローバルデータ管理
- E-09: `lib/utils/shared_preference_helper.dart` - ローカルストレージ管理
- E-10: `lib/utils/app_navigation.dart` - ルーティング・BlocProvider設定
- E-11: `lib/utils/server_configuration.dart` - サーバー設定、定数定義
- E-12: `lib/utils/push_notifications_manager.dart` - プッシュ通知実装
- E-13: `lib/data_model/graphql_base_model.dart` - 基底モデル定義
- E-14: `lib/widgets/` ディレクトリ - 共通ウィジェット群
- E-15: `README.md` - プロジェクト概要、設定手順
- E-16: `lib/screens/` ディレクトリ構造 - 画面別モジュール構成

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Flutterフレームワークによるクロスプラットフォームモバイルアプリ | E-01, E-15 | ○ |
| C-02 | BagistoバックエンドとGraphQL APIで通信 | E-03, E-04, E-11 | ○ |
| C-03 | BLoCパターンを採用 | E-01, E-06, E-10 | ○ |
| C-04 | Repositoryパターンを採用 | E-07 | ○ |
| C-05 | firebase_messaging ^15.2.5でプッシュ通知 | E-01, E-12 | ○ |
| C-06 | PayPal SDKによる決済処理 | E-01 | ○ |
| C-07 | Google Maps SDKによる地図表示 | E-01 | ○ |
| C-08 | Presentation層はscreens/*/view/とwidgets/に配置 | E-10, E-16 | ○ |
| C-09 | BLoC層はscreens/*/bloc/に配置 | E-06, E-16 | ○ |
| C-10 | Hive ^2.2.3をGraphQLキャッシュストレージに使用 | E-01, E-02, E-04 | ○ |
| C-11 | GetStorage ^2.0.3をユーザー設定永続化に使用 | E-01, E-09 | ○ |
| C-12 | graphql_flutter ^5.1.1をGraphQLクライアントに使用 | E-01, E-03, E-04 | ○ |
| C-13 | flutter_bloc ^9.1.0を状態管理に使用 | E-01, E-06 | ○ |
| C-14 | JWTトークン認証をAuthLinkで実装 | E-04 | ○ |
| C-15 | Cookie認証をHttpLinkヘッダーで実装 | E-04 | ○ |
| C-16 | LoggerLinkでGraphQLログ出力 | E-04 | ○ |
| C-17 | ApiClient.handleResponse()でエラーハンドリング | E-03 | ○ |
| C-18 | BlocProviderでBLoCを画面に注入 | E-10 | ○ |
| C-19 | SharedPreferenceHelperで認証トークン保存 | E-09 | ○ |
| C-20 | 画面別にbloc/, view/, widget/, data_model/構成 | E-16 | ○ |
| C-21 | Firebase Cloud Messagingでプッシュ通知受信 | E-02, E-12 | ○ |
| C-22 | flutter_local_notificationsでローカル通知表示 | E-01, E-12 | ○ |
| C-23 | Bagisto v2.3.6以降との互換性 | E-15 | ○ |
| C-24 | Flutter SDK 3.32.5、Dart 3.8.1での動作確認 | E-15 | ○ |
| C-25 | iOS 16以降、Android API 22以降をサポート | E-15 | ○ |
| C-26 | flutter_lintsパッケージでリント | E-01 | ○ |
| C-27 | トランザクション管理はサーバー側で実施、分離レベルはバックエンド依存 | **根拠なし** | △ |
| C-28 | 商品検索はバックエンドの検索エンジンに依存 | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- **トランザクション管理の詳細**: クライアント側コードからはバックエンドのトランザクション分離レベルを確認できない
  - 候補：Bagisto Backend ドキュメント / Laravel設定ファイル / データベース設定
- **検索エンジンの詳細**: 商品検索機能がElasticsearchなど専用エンジンを使用しているかはバックエンド側の確認が必要
  - 候補：Bagisto Headless API ドキュメント / バックエンド設定ファイル

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - アーキテクチャスタイル（BLoC + Repository）: ソースコードで明確に確認可能
- **0: 低リスク** - 依存パッケージ情報: pubspec.yamlで全て確認可能
- **0: 低リスク** - レイヤー構成: ディレクトリ構造とコードから明確
- **1: 中リスク** - 外部連携の詳細仕様: SDKバージョンは確認済みだが、APIエンドポイントの詳細はバックエンド依存
- **1: 中リスク** - トランザクション管理: クライアント側では確認困難

## 6) レビュアーチェックリスト（最小）
- [ ] BLoCパターンの実装が各画面で一貫しているか確認（任意の画面のbloc/を抽出検証）
- [ ] Repositoryの抽象化が適切か（インターフェースと実装の分離）
- [ ] GraphQLエラーハンドリングがApiClient.handleResponse()で適切に行われているか
- [ ] 認証トークンの保存・取得がSecureに行われているか（GetStorageの暗号化有無確認）
- [ ] プッシュ通知の権限リクエストがiOS/Androidで適切に行われているか
- [ ] バックエンドのトランザクション管理・検索エンジン仕様を別途確認
