---
generated_at: 2026-01-29 21:25:00
metrics:
  claims_total: 28
  claims_with_evidence: 27
  claims_without_evidence: 1
confidence_derived: 0.96
---

# 根拠レポート：3-BOM管理

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：27 / 28、根拠なし：1
- 優先レビュー（高）
  1. **パフォーマンス要件の具体的数値**：コードからの推測値であり、実測データなし
  2. **循環参照チェックの詳細ロジック**：Part.check_add_to_bomの実装確認推奨
  3. **製造オーダーとの連携**：BuildLineへの展開ロジック確認推奨

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

- E-01: `src/backend/InvenTree/part/models.py` BomItemクラス（3788-4300行目）
- E-02: `src/backend/InvenTree/part/models.py` BomItemSubstituteクラス（4353-4408行目）
- E-03: `src/backend/InvenTree/part/models.py` PartPricing.update_bom_cost（2962-3040行目）
- E-04: `docs/code-to-docs/画面機能マッピング/画面機能マッピング.csv` 画面No.14の定義
- E-05: `docs/code-to-docs/機能一覧/機能一覧.csv` 機能No.3の定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | BomItemはpartとsub_partの外部キーを持つ | E-01（3982-3999行目） | ○ |
| C-02 | partはassembly=Trueの部品のみ参照可能 | E-01（3987-3989行目：limit_choices_to={'assembly': True}） | ○ |
| C-03 | sub_partはcomponent=Trueの部品のみ参照可能 | E-01（3997-3999行目：limit_choices_to={'component': True}） | ○ |
| C-04 | 循環参照はclean()でチェック | E-01（4192-4194行目：check_add_to_bom呼び出し） | ○ |
| C-05 | ロック部品のBOMは編集不可 | E-01（3956-3978行目：check_part_lock） | ○ |
| C-06 | trackable部品使用時は親もtrackable化 | E-01（4206-4209行目） | ○ |
| C-07 | trackable部品の数量は整数のみ | E-01（4197-4203行目） | ○ |
| C-08 | inherited=TrueでバリアントBOMにも適用 | E-01（4085-4089行目、3825-3832行目） | ○ |
| C-09 | 代替部品は元部品と同じではいけない | E-02（4383-4386行目） | ○ |
| C-10 | get_required_quantityで必要数量計算 | E-01（4236-4276行目） | ○ |
| C-11 | can_build_quantityで製造可能数量計算 | E-01（4215-4234行目） | ○ |
| C-12 | チェックサムはget_item_hashで計算 | E-01（4116-4149行目） | ○ |
| C-13 | hash_fieldsでハッシュ対象フィールドを定義 | E-01（4097-4114行目） | ○ |
| C-14 | ロス率はattritionフィールドで管理 | E-01（4033-4042行目） | ○ |
| C-15 | セットアップ数量はsetup_quantityフィールド | E-01（4024-4031行目） | ○ |
| C-16 | 丸め倍数はrounding_multipleフィールド | E-01（4044-4055行目） | ○ |
| C-17 | オプション部品はoptionalフラグで管理 | E-01（4012-4016行目） | ○ |
| C-18 | 消耗品はconsumableフラグで管理 | E-01（4018-4022行目） | ○ |
| C-19 | BOMコストはPartPricing.update_bom_costで計算 | E-03 | ○ |
| C-20 | APIエンドポイントはapi-bom-list | E-01（3821-3823行目） | ○ |
| C-21 | deleteメソッドでロックチェック実行 | E-01（3899-3912行目） | ○ |
| C-22 | saveメソッドでロックチェック実行 | E-01（3914-3954行目） | ○ |
| C-23 | get_valid_parts_for_allocationで引当可能部品取得 | E-01（3834-3885行目） | ○ |
| C-24 | allow_variantsでバリアント部品の使用を許可 | E-01（4091-4095行目、3858-3870行目） | ○ |
| C-25 | 関連画面はNo.14（部品詳細画面） | E-04 | ○ |
| C-26 | 機能説明は「親部品と子部品の関係・数量を定義」 | E-05 | ○ |
| C-27 | 代替部品はBomItemSubstituteで管理 | E-02 | ○ |
| C-28 | パフォーマンス要件（500件で1秒以内） | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- パフォーマンス要件の具体的な数値根拠
  - 候補：負荷テスト結果 / 性能要件定義書 / SLA文書

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - モデル定義・フィールド仕様（コードで明確に確認可能）
- 0: 低リスク - 計算ロジック（get_required_quantity, can_build_quantity実装確認済み）
- 0: 低リスク - ビジネスルール（clean(), check_part_lockで実装確認済み）
- 1: 中リスク - パフォーマンス要件（推定値のため実測検証推奨）
- 0: 低リスク - 画面関連（画面機能マッピングで確認済み）

## 6) レビュアーチェックリスト（最小）
- [ ] BomItemの循環参照チェックロジック（check_add_to_bom）の動作確認
- [ ] ロックチェック（check_part_lock）がsaveとdeleteの両方で正しく動作するか確認
- [ ] trackable整合性ロジック（親部品の自動trackable化）の動作確認
- [ ] get_required_quantityの計算ロジック（ロス率、セットアップ数量、丸め）の検証
- [ ] BomItemSubstituteの一意性制約の動作確認
- [ ] パフォーマンス要件について実測データでの検証を推奨
