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

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：156 / 156、根拠なし：0
- 優先レビュー（高）
  1. **在庫調整機能（add/remove/count/transfer）**：ビジネスクリティカルな機能のため重点確認推奨
  2. **削除機能（_deleteItem）**：データ整合性に影響するため確認推奨
  3. **テスト結果マージロジック（getTestResults）**：複雑なロジックのため確認推奨

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

- E-01: `lib/widget/stock/location_display.dart` - ロケーション表示ウィジェット（389行）
- E-02: `lib/widget/stock/location_list.dart` - ロケーションリストウィジェット（102行）
- E-03: `lib/widget/stock/stock_detail.dart` - 在庫詳細ウィジェット（857行）
- E-04: `lib/widget/stock/stock_item_history.dart` - 在庫履歴ウィジェット（102行）
- E-05: `lib/widget/stock/stock_item_test_results.dart` - 在庫テスト結果ウィジェット（259行）
- E-06: `lib/widget/stock/stock_list.dart` - 在庫リストウィジェット（150行）
- E-07: `docs/code-to-docs/単体テストケース一覧/plan.md` - テスト計画書

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

### location_display.dart (UT-STK-001 〜 UT-STK-028)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | LocationDisplayWidgetのコンストラクタがlocationを受け取る | E-01 L26 | ○ |
| C-02 | locationがnull許容である | E-01 L28 `final InvenTreeStockLocation? location` | ○ |
| C-03 | getAppBarTitleがL10().stockLocationを返す | E-01 L44-46 | ○ |
| C-04 | appBarActionsでlocate mixinサポート確認 | E-01 L53 `api.supportsMixin("locate")` | ○ |
| C-05 | appBarActionsで編集権限確認 | E-01 L66 `InvenTreeStockLocation().canEdit` | ○ |
| C-06 | barcodeButtonsでlocation nullチェック | E-01 L85 | ○ |
| C-07 | actionButtonsで作成権限確認 | E-01 L157, L170 | ○ |
| C-08 | _editLocationDialogでnullチェック | E-01 L205-207 | ○ |
| C-09 | requestでreload失敗時にpop | E-01 L230-232 | ○ |
| C-10 | _newLocationでparent設定ロジック | E-01 L242, L247 | ○ |
| C-11 | _newStockItemでserialフィールド削除 | E-01 L266 | ○ |
| C-12 | locationDescriptionCardでnull時の分岐 | E-01 L291-300 | ○ |
| C-13 | detailTilesでフィルタ設定 | E-01 L361-367 | ○ |
| C-14 | stockTilesでlocationフィルタ設定 | E-01 L382-384 | ○ |

### location_list.dart (UT-STK-029 〜 UT-STK-043)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-15 | StockLocationListのコンストラクタ | E-02 L12 | ○ |
| C-16 | getAppBarTitleの戻り値 | E-02 L26 | ○ |
| C-17 | PaginatedStockLocationListのsearchTitle | E-02 L41 | ○ |
| C-18 | orderingOptionsの内容 | E-02 L53-58 | ○ |
| C-19 | defaultOrderingの値 | E-02 L61 | ○ |
| C-20 | filterOptionsのcascade設定 | E-02 L64-70 | ○ |
| C-21 | requestPageの実装 | E-02 L73-85 | ○ |
| C-22 | buildItemの実装 | E-02 L88-100 | ○ |

### stock_detail.dart (UT-STK-044 〜 UT-STK-098)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-23 | StockDetailWidgetのコンストラクタ | E-03 L33 | ○ |
| C-24 | appBarActionsのlocate確認 | E-03 L61 | ○ |
| C-25 | appBarActionsのedit確認 | E-03 L73 | ○ |
| C-26 | actionButtonsのシリアライズ確認 | E-03 L94 `!widget.item.isSerialized()` | ○ |
| C-27 | countStock、removeStock、addStockボタン | E-03 L95-117 | ○ |
| C-28 | transferボタンの常時表示 | E-03 L121-129 | ○ |
| C-29 | ラベル印刷ボタンの条件 | E-03 L132 | ○ |
| C-30 | 削除ボタンの条件 | E-03 L144 | ○ |
| C-31 | barcodeButtonsの権限確認 | E-03 L163 | ○ |
| C-32 | requestのデータ取得フロー | E-03 L206-317 | ○ |
| C-33 | _deleteItemの確認ダイアログ | E-03 L321-337 | ○ |
| C-34 | _editStockItemのフィールド削除 | E-03 L344-351 | ○ |
| C-35 | _addStockDialogの実装 | E-03 L367-391 | ○ |
| C-36 | _removeStockDialogの実装 | E-03 L402-426 | ○ |
| C-37 | _countStockDialogの実装 | E-03 L428-456 | ○ |
| C-38 | _transferStockDialogの実装 | E-03 L461-476 | ○ |
| C-39 | headerTileの条件分岐 | E-03 L481-488 | ○ |
| C-40 | getTilesの各タイル生成ロジック | E-03 L517-855 | ○ |

### stock_item_history.dart (UT-STK-099 〜 UT-STK-114)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-41 | StockItemHistoryWidgetのコンストラクタ | E-04 L12 | ○ |
| C-42 | getAppBarTitleの戻り値 | E-04 L28 | ○ |
| C-43 | appBarActionsが空リスト | E-04 L31 | ○ |
| C-44 | getBodyのフィルタ設定 | E-04 L35 | ○ |
| C-45 | prefixの値 | E-04 L63 | ○ |
| C-46 | requestPageの実装 | E-04 L74-88 | ○ |
| C-47 | buildItemの実装 | E-04 L91-100 | ○ |

### stock_item_test_results.dart (UT-STK-115 〜 UT-STK-139)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-48 | StockItemTestResultsWidgetのコンストラクタ | E-05 L17 | ○ |
| C-49 | actionButtonsの権限確認 | E-05 L40 | ○ |
| C-50 | requestの実装 | E-05 L56-59 | ○ |
| C-51 | addTestResultの実装 | E-05 L63-93 | ○ |
| C-52 | getTestResultsのマージロジック | E-05 L96-140 | ○ |
| C-53 | getTilesのヘッダー表示 | E-05 L146-154 | ○ |
| C-54 | getTilesのローディング表示 | E-05 L165-168 | ○ |
| C-55 | getTilesの結果なし表示 | E-05 L172-181 | ○ |
| C-56 | getTilesのアイコン分岐 | E-05 L216-222 | ○ |
| C-57 | getTilesのスタイル分岐 | E-05 L228-231 | ○ |

### stock_list.dart (UT-STK-140 〜 UT-STK-156)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-58 | StockItemListのコンストラクタ | E-06 L12 | ○ |
| C-59 | getAppBarTitleの戻り値 | E-06 L26 | ○ |
| C-60 | prefixの値 | E-06 L50 | ○ |
| C-61 | orderingOptionsの内容 | E-06 L53-61 | ○ |
| C-62 | filterOptionsの内容 | E-06 L64-111 | ○ |
| C-63 | statusフィルタの条件付き削除 | E-06 L106-108 | ○ |
| C-64 | requestPageの実装 | E-06 L114-129 | ○ |
| C-65 | buildItemの実装 | E-06 L132-148 | ○ |

## 4) 不足情報（Unknown / Missing）
- 全てのテストケースはソースコードから直接抽出されており、根拠なしの項目はありません。

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク**: UI表示系のテストケース（getAppBarTitle、getTiles等）
- **1: 中リスク**: 権限チェック、フィルタ設定のテストケース
- **2: 高リスク**: 在庫調整（add/remove/count/transfer）、削除機能、データ取得（request）のテストケース

### 高リスク項目の詳細
| テストID範囲 | 機能 | リスク理由 |
|-------------|------|-----------|
| UT-STK-049〜051 | 在庫調整ボタン表示 | 在庫数量に影響する機能 |
| UT-STK-061〜062 | 在庫アイテム削除 | データ整合性に影響 |
| UT-STK-065〜069 | 在庫追加/削減/棚卸/移動ダイアログ | 在庫数量の直接変更 |
| UT-STK-123〜128 | テスト結果マージロジック | 複雑なアルゴリズム |

## 6) レビュアーチェックリスト（最小）
- [ ] 在庫調整機能（_addStockDialog、_removeStockDialog、_countStockDialog、_transferStockDialog）のテストケースが十分か確認
- [ ] 削除機能（_deleteItem）の成功/失敗両方のケースがカバーされているか確認
- [ ] 権限チェック（canEdit、canCreate、canDelete）の各パターンがテストされているか確認
- [ ] null/空値の境界値テストが適切にカバーされているか確認
- [ ] ページネーション機能（requestPage）のエラーハンドリングが確認されているか
- [ ] getTestResultsのマージロジックの全パターンがテストされているか確認
- [ ] シリアライズ品と非シリアライズ品の区別が適切にテストされているか確認
