---
generated_at: 2026-01-29 20:15:00
metrics:
  claims_total: 173
  claims_with_evidence: 173
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：report.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：173 / 173、根拠なし：0
- 優先レビュー（高）
  1. **レポート印刷機能（UT-RPT-036〜043）**：ReportTemplate.printメソッドの複雑なロジック
  2. **ラベル印刷機能（UT-RPT-050〜054）**：LabelTemplate.printメソッドのプラグイン連携
  3. **バーコード生成機能（UT-RPT-102〜112）**：templatetags/barcode.pyのQR/バーコード生成

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

- E-01: `src/backend/InvenTree/report/models.py` - メインモデル定義（TemplateUploadMixin, ReportTemplateBase, ReportTemplate, LabelTemplate, ReportSnippet, ReportAsset）
- E-02: `src/backend/InvenTree/report/api.py` - APIエンドポイント（ReportPrint, LabelPrint, テンプレートCRUD）
- E-03: `src/backend/InvenTree/report/serializers.py` - シリアライザ定義（ReportTemplateSerializer, LabelTemplateSerializer等）
- E-04: `src/backend/InvenTree/report/helpers.py` - ヘルパー関数（report_model_types, page_size, encode_image_base64等）
- E-05: `src/backend/InvenTree/report/validators.py` - バリデータ（validate_report_model_type, validate_filters）
- E-06: `src/backend/InvenTree/report/tasks.py` - バックグラウンドタスク（print_reports, print_labels）
- E-07: `src/backend/InvenTree/report/mixins.py` - ミックスインクラス（InvenTreeReportMixin）
- E-08: `src/backend/InvenTree/report/templatetags/barcode.py` - バーコードテンプレートタグ（qrcode, barcode, datamatrix）
- E-09: `src/backend/InvenTree/report/templatetags/report.py` - レポートテンプレートタグ（各種ヘルパー関数）

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

### モデル層（TemplateUploadMixin）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-RPT-001) | template_nameプロパティがファイルパスを返却 | E-01 (L100-108) | ○ |
| C-02 (UT-RPT-002) | パス区切り文字のOS依存変換 | E-01 (L103-104) | ○ |
| C-03 (UT-RPT-003) | extensionプロパティが拡張子を返却 | E-01 (L110-113) | ○ |
| C-04 (UT-RPT-004) | 拡張子の小文字正規化 | E-01 (L113) `.lower()` | ○ |
| C-05 (UT-RPT-005) | get_upload_pathがパス生成 | E-01 (L115-118) | ○ |
| C-06 (UT-RPT-006〜008) | check_existing_fileの重複チェック | E-01 (L120-131) | ○ |
| C-07 (UT-RPT-009) | validate_uniqueの一意性検証 | E-01 (L133-137) | ○ |

### モデル層（ReportTemplateBase）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-08 (UT-RPT-010) | saveでリビジョンインクリメント | E-01 (L206-211) `self.revision += 1` | ○ |
| C-09 (UT-RPT-011〜012) | generate_filenameのテンプレート処理 | E-01 (L241-245) | ○ |
| C-10 (UT-RPT-013〜014) | render_as_stringのHTMLレンダリング | E-01 (L247-261) | ○ |
| C-11 (UT-RPT-015) | renderのPDF生成 | E-01 (L263-277) weasyprint使用 | ○ |
| C-12 (UT-RPT-016〜017) | cleanのバリデーション | E-01 (L297-305) | ○ |
| C-13 (UT-RPT-018〜019) | get_modelのモデル取得 | E-01 (L307-309) | ○ |
| C-14 (UT-RPT-020) | get_filtersのフィルタ辞書取得 | E-01 (L319-321) | ○ |
| C-15 (UT-RPT-021〜022) | base_contextの基本コンテキスト生成 | E-01 (L323-334) | ○ |
| C-16 (UT-RPT-023) | get_contextのコンテキストマージ | E-01 (L336-349) | ○ |

### モデル層（ReportTemplate）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-17 (UT-RPT-024) | get_api_urlのURL返却 | E-01 (L358-361) | ○ |
| C-18 (UT-RPT-025〜027) | get_report_sizeのページサイズ取得 | E-01 (L397-411) | ○ |
| C-19 (UT-RPT-028) | get_report_contextのコンテキスト生成 | E-01 (L413-421) | ○ |
| C-20 (UT-RPT-029〜031) | get_plugin_contextのプラグイン連携 | E-01 (L434-442) | ○ |
| C-21 (UT-RPT-032〜034) | handle_attachmentの添付ファイル処理 | E-01 (L444-453) | ○ |
| C-22 (UT-RPT-035) | notify_pluginsのプラグイン通知 | E-01 (L455-463) | ○ |
| C-23 (UT-RPT-036〜043) | printのレポート印刷処理 | E-01 (L465-653) | ○ |

### モデル層（LabelTemplate）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-24 (UT-RPT-044) | get_api_urlのURL返却 | E-01 (L662-665) | ○ |
| C-25 (UT-RPT-045〜046) | generate_page_styleのCSS生成 | E-01 (L688-702) | ○ |
| C-26 (UT-RPT-047〜049) | get_contextのラベルコンテキスト | E-01 (L704-728) | ○ |
| C-27 (UT-RPT-050〜054) | printのラベル印刷処理 | E-01 (L730-794) | ○ |

### モデル層（ReportSnippet, ReportAsset）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-28 (UT-RPT-055〜056) | ReportSnippetのファイル保存 | E-01 (L797-817) | ○ |
| C-29 (UT-RPT-057) | ReportAssetのファイル保存 | E-01 (L820-843) | ○ |

### ヘルパー関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-30 (UT-RPT-058〜059) | rename_templateのパス生成と既存ファイル削除 | E-01 (L60-76) | ○ |
| C-31 (UT-RPT-060〜061) | log_report_errorの条件付きログ | E-01 (L49-57) | ○ |
| C-32 (UT-RPT-062〜066) | report_model_types/from_name/options | E-04 (L14-37) | ○ |
| C-33 (UT-RPT-067〜072) | page_size関連関数 | E-04 (L40-78) | ○ |
| C-34 (UT-RPT-073〜074) | encode_image_base64 | E-04 (L81-98) | ○ |

### バリデータ
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 (UT-RPT-075〜076) | validate_report_model_type | E-05 (L8-13) | ○ |
| C-36 (UT-RPT-077〜078) | validate_filters | E-05 (L16-20) | ○ |

### バックグラウンドタスク
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-37 (UT-RPT-079〜081) | print_reportsタスク | E-06 (L12-41) | ○ |
| C-38 (UT-RPT-082〜084) | print_labelsタスク | E-06 (L44-86) | ○ |

### ミックスイン
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-39 (UT-RPT-085) | InvenTreeReportMixin.report_context | E-07 (L35-59) | ○ |

### API
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 (UT-RPT-086〜087) | ReportFilterBase.filter_items | E-02 (L46-72) | ○ |
| C-41 (UT-RPT-088〜093) | LabelPrint.get_plugin_class/serializer | E-02 (L102-154) | ○ |
| C-42 (UT-RPT-094〜096) | LabelPrint.post | E-02 (L156-185) | ○ |
| C-43 (UT-RPT-097〜099) | ReportPrint.post/print | E-02 (L252-300) | ○ |

### シリアライザ
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-44 (UT-RPT-100) | ReportSerializerBase.__init__ | E-03 (L19-28) | ○ |
| C-45 (UT-RPT-101) | LabelPrintSerializer.__init__ | E-03 (L118-128) | ○ |

### テンプレートタグ（barcode.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-46 (UT-RPT-102〜104) | qrcode関数 | E-08 (L49-95) | ○ |
| C-47 (UT-RPT-105〜107) | barcode関数 | E-08 (L98-133) | ○ |
| C-48 (UT-RPT-108〜110) | datamatrix関数 | E-08 (L136-199) | ○ |
| C-49 (UT-RPT-111〜112) | clean_barcode関数 | E-08 (L32-46) | ○ |

### テンプレートタグ（report.py）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-50 (UT-RPT-113〜114) | order_queryset | E-09 (L40-56) | ○ |
| C-51 (UT-RPT-115) | filter_queryset | E-09 (L59-74) | ○ |
| C-52 (UT-RPT-116〜117) | filter_db_model | E-09 (L77-105) | ○ |
| C-53 (UT-RPT-118〜120) | getindex | E-09 (L108-126) | ○ |
| C-54 (UT-RPT-121〜123) | getkey | E-09 (L129-145) | ○ |
| C-55 (UT-RPT-124〜126) | asset | E-09 (L148-173) | ○ |
| C-56 (UT-RPT-127〜131) | uploaded_image | E-09 (L176-281) | ○ |
| C-57 (UT-RPT-132〜133) | encode_svg_image | E-09 (L284-311) | ○ |
| C-58 (UT-RPT-134〜135) | part_image | E-09 (L314-330) | ○ |
| C-59 (UT-RPT-136〜137) | company_image | E-09 (L370-387) | ○ |
| C-60 (UT-RPT-138〜140) | parameter | E-09 (L333-357) | ○ |
| C-61 (UT-RPT-141) | logo_image | E-09 (L390-400) | ○ |
| C-62 (UT-RPT-142〜143) | internal_link | E-09 (L403-421) | ○ |
| C-63 (UT-RPT-144〜147) | add | E-09 (L475-495) | ○ |
| C-64 (UT-RPT-148) | subtract | E-09 (L498-519) | ○ |
| C-65 (UT-RPT-149) | multiply | E-09 (L522-543) | ○ |
| C-66 (UT-RPT-150〜151) | divide | E-09 (L546-571) | ○ |
| C-67 (UT-RPT-152〜153) | modulo | E-09 (L574-599) | ○ |
| C-68 (UT-RPT-154) | render_currency | E-09 (L602-605) | ○ |
| C-69 (UT-RPT-155〜157) | create_currency | E-09 (L608-635) | ○ |
| C-70 (UT-RPT-158〜160) | convert_currency | E-09 (L638-669) | ○ |
| C-71 (UT-RPT-161〜162) | render_html_text | E-09 (L672-696) | ○ |
| C-72 (UT-RPT-163〜165) | format_number | E-09 (L699-765) | ○ |
| C-73 (UT-RPT-166〜167) | format_datetime | E-09 (L768-786) | ○ |
| C-74 (UT-RPT-168) | format_date | E-09 (L789-808) | ○ |
| C-75 (UT-RPT-169〜171) | icon | E-09 (L811-832) | ○ |
| C-76 (UT-RPT-172〜173) | include_icon_fonts | E-09 (L835-869) | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし：全てのテストケースに対してソースコードによる根拠が確認できました。

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全テストケースがソースコードに基づいて生成されており、根拠が明確です。
- **注意点**:
  - ReportTemplate.printメソッド（UT-RPT-036〜043）は複雑なロジックを含むため、統合テストでの検証を推奨
  - バーコード/QRコード生成（UT-RPT-102〜112）は外部ライブラリ依存のため、モック化が必要
  - 通貨変換機能（UT-RPT-158〜160）は為替レート設定に依存するため、テスト環境のセットアップに注意

## 6) レビュアーチェックリスト（最小）
- [ ] 高優先度テストケース（UT-RPT-036〜043, UT-RPT-050〜054）のロジックが正しく理解されているか
- [ ] 境界値テストケースが適切な値でテストされているか
- [ ] 異常系テストケースで適切な例外がスローされることが検証されているか
- [ ] プラグイン連携テストケースがモック化の観点で適切か
- [ ] テンプレートタグの入力値バリデーションが十分にカバーされているか
