---
generated_at: 2026-02-23 10:30:00
metrics:
  claims_total: 180
  claims_with_evidence: 180
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：widget-root.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：180 / 180、根拠なし：0
- 優先レビュー（高）
  1. **UT-WRT-005〜009**: 添付ファイルのアップロード・削除処理（重要なファイル操作）
  2. **UT-WRT-061〜068**: フィールドバリデーション（QuantityField, StringField）
  3. **UT-WRT-164〜165**: 検索API切り替えロジック

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

- E-01: `lib/widget/attachment_widget.dart` - AttachmentWidget, _AttachmentWidgetState, ShowAttachmentsItem
- E-02: `lib/widget/back.dart` - backButton関数
- E-03: `lib/widget/dialogs.dart` - choiceDialog, confirmationDialog, showErrorDialog, showServerError, showStatusCodeError, statusCodeToString, showTimeoutError
- E-04: `lib/widget/drawer.dart` - ThemeSelectionDialog, InvenTreeDrawer
- E-05: `lib/widget/fields.dart` - FilePickerDialog, CheckBoxField, StringField, QuantityField
- E-06: `lib/widget/home.dart` - InvenTreeHomePage, _InvenTreeHomePageState
- E-07: `lib/widget/link_icon.dart` - LargeText, LinkIcon
- E-08: `lib/widget/notes_widget.dart` - NotesWidget, _NotesState
- E-09: `lib/widget/notifications.dart` - NotificationWidget, _NotificationState
- E-10: `lib/widget/paginator.dart` - PaginatedSearchWidget, PaginatedSearchState, NoResultsWidget
- E-11: `lib/widget/parameter_widget.dart` - ParameterWidget, _ParameterWidgetState, PaginatedParameterList, _PaginatedParameterState, ShowParametersItem
- E-12: `lib/widget/progress.dart` - ProgressBar, ProgressText, progressIndicator, showLoadingOverlay, hideLoadingOverlay
- E-13: `lib/widget/refreshable_state.dart` - BaseWidgetProperties mixin, RefreshableState
- E-14: `lib/widget/search.dart` - SearchWidget, _SearchDisplayState
- E-15: `lib/widget/snacks.dart` - showSnackIcon関数
- E-16: `lib/widget/spinner.dart` - Spinner, _SpinnerState

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

### attachment_widget.dart (UT-WRT-001〜015)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | AttachmentWidgetコンストラクタは4つのパラメータを受け取る | E-01 (23-29行目) | ○ |
| C-02 | getAppBarTitleはL10().attachmentsを返却 | E-01 (46行目) | ○ |
| C-03 | appBarActionsはアップロード権限に応じてアイコンを返却 | E-01 (49-78行目) | ○ |
| C-04 | upload関数はnullチェックを行い、成功/失敗メッセージを表示 | E-01 (80-100行目) | ○ |
| C-05 | deleteAttachment関数は削除結果に応じてメッセージを表示 | E-01 (114-126行目) | ○ |
| C-06 | request関数はmodel_typeとmodel_idでフィルタリング | E-01 (168-189行目) | ○ |
| C-07 | getTilesは添付タイプに応じてListTileを生成 | E-01 (192-240行目) | ○ |
| C-08 | ShowAttachmentsItemはAPI対応チェックを行う | E-01 (254-256行目) | ○ |

### back.dart (UT-WRT-016〜018)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-09 | backButtonはcanPopをチェックしてpopを呼び出す | E-02 (14-19行目) | ○ |
| C-10 | 長押しでopenDrawerを呼び出す | E-02 (10-12行目) | ○ |

### dialogs.dart (UT-WRT-019〜037)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | choiceDialogはhasContextチェックを行う | E-03 (36-38行目) | ○ |
| C-12 | choiceDialogは選択時にonSelectedを呼び出す | E-03 (27-29行目) | ○ |
| C-13 | confirmationDialogはonAccept/onRejectコールバックを処理 | E-03 (88-108行目) | ○ |
| C-14 | showErrorDialogはstatusCodeに応じたエラー表示を行う | E-03 (136-183行目) | ○ |
| C-15 | showServerErrorはnotifications URLを除外 | E-03 (217-218行目) | ○ |
| C-16 | statusCodeToStringは各ステータスコードを変換 | E-03 (272-301行目) | ○ |

### drawer.dart (UT-WRT-038〜049)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-17 | ThemeSelectionDialogは現在のテーマモードを表示 | E-04 (31行目) | ○ |
| C-18 | _getThemeModeIconはモードに応じたアイコンを返却 | E-04 (197-206行目) | ○ |
| C-19 | drawerTilesは権限に応じたタイルを生成 | E-04 (226-265行目) | ○ |
| C-20 | _checkConnectionはAPI接続状態を返却 | E-04 (107-109行目) | ○ |

### fields.dart (UT-WRT-050〜068)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-21 | FilePickerDialogは3つの静的メソッドを提供 | E-05 (13-49行目) | ○ |
| C-22 | pickFileはダイアログを表示しonPickedを呼び出す | E-05 (52-127行目) | ○ |
| C-23 | StringFieldのvalidatorは空文字チェックを行う | E-05 (174-184行目) | ○ |
| C-24 | QuantityFieldのvalidatorは数値検証を行う | E-05 (204-215行目) | ○ |

### home.dart (UT-WRT-069〜081)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-25 | _loadSettingsは設定値を読み込む | E-06 (173-204行目) | ○ |
| C-26 | _loadProfileはプロファイルをロードし接続を試行 | E-06 (207-223行目) | ○ |
| C-27 | _listTileは権限チェックを行いUIを構築 | E-06 (225-272行目) | ○ |
| C-28 | getListTilesは権限に応じたタイルリストを返却 | E-06 (277-407行目) | ○ |
| C-29 | _connectionStatusWidgetは接続状態に応じたUIを返却 | E-06 (413-453行目) | ○ |

### link_icon.dart (UT-WRT-082〜086)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-30 | LargeTextはスタイル付きTextを返却 | E-07 (10-25行目) | ○ |
| C-31 | LinkIconはexternalフラグに応じたアイコンを表示 | E-07 (27-44行目) | ○ |

### notes_widget.dart (UT-WRT-087〜091)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-32 | NotesWidgetはInvenTreeModelを受け取る | E-08 (16行目) | ○ |
| C-33 | appBarActionsは編集権限に応じてボタンを返却 | E-08 (39-64行目) | ○ |
| C-34 | getBodyはMarkdownウィジェットを返却 | E-08 (67-69行目) | ○ |

### notifications.dart (UT-WRT-092〜096)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | requestは通知一覧を取得 | E-09 (26-36行目) | ○ |
| C-36 | dismissNotificationは通知を既読にする | E-09 (41-62行目) | ○ |
| C-37 | getTilesは通知数に応じたUIを生成 | E-09 (68-100行目) | ○ |

### paginator.dart (UT-WRT-097〜113)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-38 | getFilterValueは設定からフィルタ値を取得 | E-10 (52-73行目) | ○ |
| C-39 | setFilterValueはフィルタ値を保存 | E-10 (76-84行目) | ○ |
| C-40 | orderingFieldはソートフィールドを取得 | E-10 (108-126行目) | ○ |
| C-41 | orderingStringはソート文字列を構築 | E-10 (139-149行目) | ○ |
| C-42 | updateSearchTermはデバウンス処理を行う | E-10 (386-415行目) | ○ |
| C-43 | NoResultsWidgetは結果なしメッセージを表示 | E-10 (557-568行目) | ○ |

### parameter_widget.dart (UT-WRT-114〜123)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-44 | ParameterWidgetは3つのパラメータを受け取る | E-11 (18行目) | ○ |
| C-45 | requestPageはパラメータをページネーション取得 | E-11 (88-100行目) | ○ |
| C-46 | editParameterはチェックボックス以外で編集フォームを表示 | E-11 (102-115行目) | ○ |
| C-47 | ShowParametersItemはパラメータ数とAPI対応をチェック | E-11 (160-192行目) | ○ |

### progress.dart (UT-WRT-124〜137)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-48 | ProgressBarは値に応じた色で進捗バーを表示 | E-12 (14-28行目) | ○ |
| C-49 | ProgressTextは進捗テキストをフォーマット | E-12 (30-37行目) | ○ |
| C-50 | showLoadingOverlayはテスト環境チェックを行う | E-12 (46-64行目) | ○ |
| C-51 | hideLoadingOverlayは表示状態をチェックして非表示にする | E-12 (66-70行目) | ○ |

### refreshable_state.dart (UT-WRT-138〜154)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-52 | BaseWidgetPropertiesはデフォルト実装を提供 | E-13 (16-187行目) | ○ |
| C-53 | buildSpeedDialはアクションに応じてSpeedDialを構築 | E-13 (146-183行目) | ○ |
| C-54 | RefreshableStateはrefresh処理を提供 | E-13 (228-248行目) | ○ |
| C-55 | buildはタブの有無に応じたScaffoldを構築 | E-13 (251-287行目) | ○ |

### search.dart (UT-WRT-155〜170)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-56 | isSearchingは検索状態を判定 | E-14 (78-84行目) | ○ |
| C-57 | resetSearchResultsは全カウントをリセット | E-14 (102-121行目) | ○ |
| C-58 | onSearchTextChangedはデバウンス処理を行う | E-14 (125-137行目) | ○ |
| C-59 | getSearchResultCountは結果マップからカウントを取得 | E-14 (148-162行目) | ○ |
| C-60 | searchはAPI対応に応じた検索を実行 | E-14 (236-295行目) | ○ |

### snacks.dart (UT-WRT-171〜176)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-61 | showSnackIconはコンテキストチェックを行う | E-15 (21-24行目) | ○ |
| C-62 | success値に応じた背景色を設定 | E-15 (34-48行目) | ○ |
| C-63 | onActionがある場合にSnackBarActionを表示 | E-15 (68-77行目) | ○ |

### spinner.dart (UT-WRT-177〜180)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-64 | Spinnerはicon, duration, colorパラメータを受け取る | E-16 (5-10行目) | ○ |
| C-65 | initStateでAnimationControllerを初期化 | E-16 (25-32行目) | ○ |
| C-66 | disposeでAnimationControllerを破棄 | E-16 (35-38行目) | ○ |
| C-67 | buildはRotationTransitionを返却 | E-16 (41-43行目) | ○ |

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

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全てのテストケースはソースコード解析に基づいて生成
- 1: 中リスク - 一部のモック/スタブが必要なテストケース（API呼び出し、ファイルピッカー）
  - UT-WRT-050〜055: カメラ・ギャラリー・ファイルピッカーのテストにはプラットフォームモックが必要
  - UT-WRT-093〜094: 通知APIのモックが必要
  - UT-WRT-164〜165: APIバージョン判定のモックが必要

## 6) レビュアーチェックリスト（最小）
- [ ] バリデーションテスト（UT-WRT-060〜068）が全ての境界値をカバーしているか
- [ ] エラーハンドリングテスト（UT-WRT-027〜031）がすべてのHTTPステータスコードをカバーしているか
- [ ] 権限チェックテスト（UT-WRT-044〜046, UT-WRT-076）が正しい権限モデルを反映しているか
- [ ] UI状態テスト（接続中、未接続、接続済み）が適切にカバーされているか
- [ ] コールバック/非同期処理テストがアンマウント時の安全性を考慮しているか
