---
generated_at: 2026-02-23 12:00:00
metrics:
  claims_total: 102
  claims_with_evidence: 102
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：settings.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：102 / 102、根拠なし：0
- 優先レビュー（高）
  1. なし - すべてのテストケースはソースコードに基づいて生成されています

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

- E-01: `lib/settings/about.dart` - InvenTreeAboutWidget クラス（リリースノート、クレジット、ドキュメント、バグ報告、翻訳リンク機能）
- E-02: `lib/settings/app_settings.dart` - InvenTreeAppSettingsWidget/State クラス（アプリ設定管理、言語選択、ダークモード、画面向き設定）
- E-03: `lib/settings/barcode_settings.dart` - InvenTreeBarcodeSettingsWidget/State クラス（バーコードスキャン設定、遅延値編集）
- E-04: `lib/settings/home_settings.dart` - HomeScreenSettingsWidget/State クラス（ホーム画面表示設定）
- E-05: `lib/settings/login.dart` - InvenTreeLoginWidget/State クラス（ユーザーログイン処理、バリデーション）
- E-06: `lib/settings/part_settings.dart` - InvenTreePartSettingsWidget/State クラス（部品表示設定）
- E-07: `lib/settings/purchase_order_settings.dart` - InvenTreePurchaseOrderSettingsWidget/State クラス（購入注文設定）
- E-08: `lib/settings/release.dart` - ReleaseNotesWidget, CreditsWidget クラス（Markdown表示、リンク処理）
- E-09: `lib/settings/sales_order_settings.dart` - InvenTreeSalesOrderSettingsWidget/State クラス（販売注文設定）
- E-10: `lib/settings/select_server.dart` - InvenTreeSelectServerWidget/State, ProfileEditWidget/State クラス（サーバー選択、プロファイル管理）
- E-11: `lib/settings/settings.dart` - InvenTreeSettingsWidget/State クラス（設定メイン画面、ナビゲーション）
- E-12: `lib/settings/stock_settings.dart` - InvenTreeStockSettingsWidget/State クラス（在庫設定）

## 3) Claims と根拠の対応（レビューの主戦場）

### about.dart（UT-SET-001 - UT-SET-008）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | API接続時にサーバー詳細が正しく表示される | E-01: L86-134 InvenTreeAPI().isConnected()チェック | ○ |
| C-02 | API未接続時に未接続メッセージが表示される | E-01: L144-155 else節でnotConnected表示 | ○ |
| C-03 | アプリ詳細が正しく表示される | E-01: L166-179 PackageInfo使用 | ○ |
| C-04 | リリースノートの読み込みとナビゲーション | E-01: L21-29 _releaseNotesメソッド | ○ |
| C-05 | クレジットの読み込みとナビゲーション | E-01: L31-38 _creditsメソッド | ○ |
| C-06 | ドキュメントURL起動 | E-01: L40-46 _openDocsメソッド | ○ |
| C-07 | バグ報告URL起動 | E-01: L48-59 _reportBugメソッド | ○ |
| C-08 | 翻訳URL起動 | E-01: L61-71 _translateメソッド | ○ |

### app_settings.dart（UT-SET-009 - UT-SET-015）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-09 | 設定値の読み込み | E-02: L50-87 loadSettingsメソッド | ○ |
| C-10 | mounted falseでsetState非呼び出し | E-02: L84-86 if(mounted)チェック | ○ |
| C-11 | ロケール選択ダイアログ表示 | E-02: L89-140 _selectLocaleメソッド | ○ |
| C-12 | ロケール設定保存と反映 | E-02: L127-138 setSelectedLocale, setLocale呼び出し | ○ |
| C-13 | ダークモード切り替え | E-02: L188-197 AdaptiveTheme.setDark/setLight | ○ |
| C-14 | 画面向き設定 | E-02: L239-248 INV_SCREEN_ORIENTATION保存 | ○ |
| C-15 | 画面向きアイコン表示 | E-02: L152-162 switchによるアイコン選択 | ○ |

### barcode_settings.dart（UT-SET-016 - UT-SET-024）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | バーコード設定読み込み | E-03: L33-51 loadSettingsメソッド | ○ |
| C-17 | スキャン遅延値編集ダイアログ | E-03: L55-107 _editBarcodeScanDelayメソッド | ○ |
| C-18 | 遅延値下限補正（100未満→100） | E-03: L90 if(delay < 100) delay = 100 | ○ |
| C-19 | 遅延値上限補正（2500超→2500） | E-03: L91 if(delay > 2500) delay = 2500 | ○ |
| C-20 | 遅延値境界値100 | E-03: L90 境界条件 | ○ |
| C-21 | 遅延値境界値2500 | E-03: L91 境界条件 | ○ |
| C-22 | 数値以外入力時の現在値維持 | E-03: L85-87 int.tryParse ?? barcodeScanDelay | ○ |
| C-23 | カメラアイコン表示 | E-03: L117-119 BARCODE_CONTROLLER_CAMERAケース | ○ |
| C-24 | ウェッジアイコン表示 | E-03: L115-116 BARCODE_CONTROLLER_WEDGEケース | ○ |

### home_settings.dart（UT-SET-025 - UT-SET-031）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-25 | ホーム画面設定読み込み | E-04: L35-69 loadSettingsメソッド | ○ |
| C-26 | 購読アイテム表示設定 | E-04: L89-92 INV_HOME_SHOW_SUBSCRIBED | ○ |
| C-27 | 購入注文表示設定 | E-04: L106 INV_HOME_SHOW_PO | ○ |
| C-28 | 販売注文表示設定 | E-04: L120 INV_HOME_SHOW_SO | ○ |
| C-29 | 出荷表示設定 | E-04: L134-137 INV_HOME_SHOW_SHIPMENTS | ○ |
| C-30 | サプライヤー表示設定 | E-04: L152-155 INV_HOME_SHOW_SUPPLIERS | ○ |
| C-31 | 顧客表示設定 | E-04: L186-189 INV_HOME_SHOW_CUSTOMERS | ○ |

### login.dart（UT-SET-032 - UT-SET-042）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-32 | ログイン成功 | E-05: L56-58 response.successful()でpop | ○ |
| C-33 | ログイン失敗時エラー表示 | E-05: L59-72 エラー処理 | ○ |
| C-34 | detail付きエラーメッセージ | E-05: L64-65 data["detail"]取得 | ○ |
| C-35 | ステータスコードからメッセージ生成 | E-05: L67 statusCodeToString呼び出し | ○ |
| C-36 | ユーザー名空バリデーション | E-05: L137-143 validator関数 | ○ |
| C-37 | パスワード空バリデーション | E-05: L167-173 validator関数 | ○ |
| C-38 | ユーザー名nullバリデーション | E-05: L138 value == null チェック | ○ |
| C-39 | パスワードnullバリデーション | E-05: L168 value == null チェック | ○ |
| C-40 | パスワード表示切り替え | E-05: L154-157 _obscured反転 | ○ |
| C-41 | ユーザー名トリム | E-05: L135 value?.trim() | ○ |
| C-42 | パスワードトリム | E-05: L165 value?.trim() | ○ |

### part_settings.dart（UT-SET-043 - UT-SET-046）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-43 | 部品設定読み込み | E-06: L27-44 loadSettingsメソッド | ○ |
| C-44 | BOM表示設定 | E-06: L63 INV_PART_SHOW_BOM | ○ |
| C-45 | 価格表示設定 | E-06: L77-80 INV_PART_SHOW_PRICING | ○ |
| C-46 | 要件表示設定 | E-06: L94-97 INV_PART_SHOW_REQUIREMENTS | ○ |

### purchase_order_settings.dart（UT-SET-047 - UT-SET-050）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-47 | 購入注文設定読み込み | E-07: L29-43 loadSettingsメソッド | ○ |
| C-48 | 購入注文有効化設定 | E-07: L62 INV_PO_ENABLE | ○ |
| C-49 | カメラ表示設定 | E-07: L76-79 INV_PO_SHOW_CAMERA | ○ |
| C-50 | スキャン確認設定 | E-07: L93-96 INV_PO_CONFIRM_SCAN | ○ |

### release.dart（UT-SET-051 - UT-SET-056）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-51 | リリースノートMarkdown表示 | E-08: L21-30 Markdownウィジェット | ○ |
| C-52 | リンクタップ処理 | E-08: L24-28 onTapLink | ○ |
| C-53 | 空href処理 | E-08: L26-28 link.isNotEmptyチェック | ○ |
| C-54 | クレジットMarkdown表示 | E-08: L56-66 Markdownウィジェット | ○ |
| C-55 | 有効URL起動 | E-08: L41-46 openLinkメソッド | ○ |
| C-56 | 無効URL処理 | E-08: L44 canLaunchUrlチェック | ○ |

### sales_order_settings.dart（UT-SET-057 - UT-SET-059）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-57 | 販売注文設定読み込み | E-09: L28-38 loadSettingsメソッド | ○ |
| C-58 | 販売注文有効化設定 | E-09: L57 INV_SO_ENABLE | ○ |
| C-59 | カメラ表示設定 | E-09: L71-74 INV_SO_SHOW_CAMERA | ○ |

### select_server.dart（UT-SET-060 - UT-SET-088）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-60 | プロファイル一覧読み込み | E-10: L29-37 _reloadメソッド | ○ |
| C-61 | プロファイルログアウト | E-10: L46-48 token=""設定、updateProfile | ○ |
| C-62 | ログアウト後API切断 | E-10: L53 disconnectFromServer | ○ |
| C-63 | userProfile null安全性 | E-10: L46 if(userProfile != null)チェック | ○ |
| C-64 | プロファイル編集画面遷移 | E-10: L64-71 Navigator.push ProfileEditWidget | ○ |
| C-65 | トークンなしでログイン画面遷移 | E-10: L92-109 !prf.hasTokenでLoginWidget遷移 | ○ |
| C-66 | トークンありでサーバー接続 | E-10: L119-121 connectToServer呼び出し | ○ |
| C-67 | profile.key null安全性 | E-10: L78-81 key==null early return | ○ |
| C-68 | プロファイル削除 | E-10: L126-127 deleteProfile | ○ |
| C-69 | 接続中プロファイル削除時API切断 | E-10: L135-138 profile.key一致でdisconnect | ○ |
| C-70 | 未選択プロファイルでnull | E-10: L143 !profile.selected return null | ○ |
| C-71 | 接続中成功アイコン | E-10: L151-152 isConnected()でcircle_check | ○ |
| C-72 | 接続中スピナー | E-10: L153-154 isConnecting()でSpinner | ○ |
| C-73 | 接続失敗エラーアイコン | E-10: L155-156 elseでcircle_x | ○ |
| C-74 | プロファイルなしメッセージ | E-10: L252 profileNone表示 | ○ |
| C-75 | プロファイル一覧表示 | E-10: L165-249 forループでListTile生成 | ○ |
| C-76 | トークン有りアイコン | E-10: L175-176 hasTokenでuser_check | ○ |
| C-77 | トークン無しアイコン | E-10: L177 !hasTokenでuser_cancel | ○ |
| C-78 | 新規プロファイル追加タイトル | E-10: L307 profile==nullでprofileAdd | ○ |
| C-79 | 既存プロファイル編集タイトル | E-10: L307 profile!=nullでprofileEdit | ○ |
| C-80 | プロファイル名空バリデーション | E-10: L355-361 validator | ○ |
| C-81 | サーバーURL空バリデーション | E-10: L374-377 serverEmpty | ○ |
| C-82 | サーバーURLスペースエラー | E-10: L382-384 contains(" ")でinvalidHost | ○ |
| C-83 | 非http/httpsスキームエラー | E-10: L399-403 schemeチェックでserverStart | ○ |
| C-84 | 有効http URLバリデーション成功 | E-10: L411 return null | ○ |
| C-85 | 有効https URLバリデーション成功 | E-10: L411 return null | ○ |
| C-86 | パース不可URLエラー | E-10: L391-394 Uri.tryParse==nullでinvalidHost | ○ |
| C-87 | 新規プロファイルaddProfile | E-10: L318-321 profile==nullでaddProfile | ○ |
| C-88 | 既存プロファイルupdateProfile | E-10: L322-326 profile!=nullでupdateProfile | ○ |

### settings.dart（UT-SET-089 - UT-SET-098）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-89 | About画面遷移 | E-11: L32-39 _aboutメソッド | ○ |
| C-90 | 全メニュー項目表示 | E-11: L51-172 ListView.children | ○ |
| C-91 | サーバー設定遷移 | E-11: L57-64 SelectServerWidget | ○ |
| C-92 | アプリ設定遷移 | E-11: L72-79 AppSettingsWidget | ○ |
| C-93 | ホーム画面設定遷移 | E-11: L86-93 HomeScreenSettingsWidget | ○ |
| C-94 | バーコード設定遷移 | E-11: L100-107 BarcodeSettingsWidget | ○ |
| C-95 | 部品設定遷移 | E-11: L114-121 PartSettingsWidget | ○ |
| C-96 | 在庫設定遷移 | E-11: L128-135 StockSettingsWidget | ○ |
| C-97 | 購入注文設定遷移 | E-11: L142-150 PurchaseOrderSettingsWidget | ○ |
| C-98 | 販売注文設定遷移 | E-11: L157-164 SalesOrderSettingsWidget | ○ |

### stock_settings.dart（UT-SET-099 - UT-SET-102）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-99 | 在庫設定読み込み | E-12: L25-42 loadSettingsメソッド | ○ |
| C-100 | 履歴表示設定 | E-12: L61-64 INV_STOCK_SHOW_HISTORY | ○ |
| C-101 | テスト結果表示設定 | E-12: L78-81 INV_STOCK_SHOW_TESTS | ○ |
| C-102 | スキャン確認設定 | E-12: L95-98 INV_STOCK_CONFIRM_SCAN | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - すべてのテストケースはソースコードから直接抽出されています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースは実際のソースコードに基づいています
- 注意点:
  - UT-SET-018, UT-SET-019: バーコードスキャン遅延値の境界値テストは実際のビジネス要件との整合性を確認することを推奨
  - UT-SET-032-042: ログイン関連テストはセキュリティ観点から追加テストの検討を推奨
  - UT-SET-080-088: URLバリデーションは実際の運用で想定される入力パターンとの整合性を確認することを推奨

## 6) レビュアーチェックリスト（最小）
- [ ] 各設定画面のloadSettingsメソッドのテストケースが網羅されているか
- [ ] 境界値テスト（バーコードスキャン遅延：100-2500）が適切か
- [ ] ログインバリデーションのテストケースが十分か
- [ ] URLバリデーションのテストケースが実運用パターンを網羅しているか
- [ ] プロファイル管理（追加/編集/削除/選択）のテストケースが網羅されているか
- [ ] 各設定切り替えのテストケースがすべての設定項目を網羅しているか
- [ ] ライフサイクル管理（mounted チェック）のテストケースが適切か
- [ ] 外部リンク起動のテストケースで、canLaunchUrl失敗ケースが考慮されているか
