---
generated_at: 2026-01-29 20:10:00
metrics:
  claims_total: 45
  claims_with_evidence: 42
  claims_without_evidence: 3
confidence_derived: 0.93
---

# 根拠レポート：アーキテクチャ設計書

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.93**
  - 根拠あり：42 / 45、根拠なし：3
- 優先レビュー（高）
  1. **キャッシュTTL設定**：設定により可変と記載したが、具体的なデフォルト値の根拠が不足
  2. **トランザクション分離レベルのデフォルト値**：DB依存と記載したがコード上の明示的なデフォルト確認が不足
  3. **パフォーマンス関連の具体数値**：ワーカー数等のデフォルト値は設定ファイルから取得したが、運用推奨値の根拠が不足

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

- E-01: `src/backend/InvenTree/InvenTree/settings.py` - Django設定ファイル
- E-02: `src/backend/InvenTree/InvenTree/urls.py` - URLルーティング設定
- E-03: `src/backend/InvenTree/InvenTree/middleware.py` - カスタムミドルウェア
- E-04: `src/backend/InvenTree/config_template.yaml` - 設定テンプレート
- E-05: `src/frontend/package.json` - フロントエンド依存関係
- E-06: `src/frontend/src/router.tsx` - フロントエンドルーティング
- E-07: `README.md` - プロジェクト概要
- E-08: `pyproject.toml` - Pythonプロジェクト設定
- E-09: `src/backend/InvenTree/InvenTree/tasks.py` - バックグラウンドタスク
- E-10: `src/backend/InvenTree/plugin/` - プラグインシステム
- E-11: `src/backend/InvenTree/` - バックエンドディレクトリ構造
- E-12: `src/frontend/src/` - フロントエンドディレクトリ構造

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | InvenTreeはPython/Djangoバックエンドを使用 | E-01, E-07, E-08 | ○ |
| C-02 | フロントエンドはReact/TypeScriptで構築 | E-05, E-06 | ○ |
| C-03 | REST APIを提供（Django REST Framework使用） | E-01, E-02 | ○ |
| C-04 | プラグインシステムによる機能拡張が可能 | E-01, E-10 | ○ |
| C-05 | PostgreSQL/MySQL/SQLiteをサポート | E-01, E-04 | ○ |
| C-06 | Redisをキャッシュ・ブローカーとして使用 | E-01, E-04 | ○ |
| C-07 | django-allauthによるSSO認証サポート | E-01 | ○ |
| C-08 | LDAPによる認証サポート | E-01 | ○ |
| C-09 | Sentryによるエラートラッキング | E-01 | ○ |
| C-10 | OpenTelemetryによるトレーシング | E-01, E-04 | ○ |
| C-11 | S3互換ストレージサポート | E-01, E-04 | ○ |
| C-12 | レイヤードアーキテクチャを採用 | E-01, E-02, E-11 | ○ |
| C-13 | Django MVTパターンをベース | E-01, E-11 | ○ |
| C-14 | フロントエンドはSPAとして分離 | E-05, E-06 | ○ |
| C-15 | Django-Qによるバックグラウンドタスク処理 | E-01, E-09 | ○ |
| C-16 | part/stock/order/build等のドメイン分割 | E-11 | ○ |
| C-17 | Mantineを UIコンポーネントライブラリとして使用 | E-05 | ○ |
| C-18 | Zustandを状態管理に使用 | E-05 | ○ |
| C-19 | TanStack Queryをサーバー状態管理に使用 | E-05 | ○ |
| C-20 | MIDDLEWARE設定にセキュリティ関連ミドルウェアを含む | E-01 | ○ |
| C-21 | AuthRequiredMiddlewareで認証チェック | E-03 | ○ |
| C-22 | Check2FAMiddlewareでMFA強制チェック | E-03 | ○ |
| C-23 | セッション認証/トークン認証/OAuth2認証をサポート | E-01 | ○ |
| C-24 | ApiTokenAuthenticationでAPI認証 | E-01 | ○ |
| C-25 | MFA/2FAサポート（django-otp, allauth.mfa） | E-01 | ○ |
| C-26 | Gunicornを本番WSGIサーバーとして使用 | E-01, E-04 | ○ |
| C-27 | WhiteNoiseで静的ファイル配信 | E-01 | ○ |
| C-28 | django-cors-headersでCORS対応 | E-01 | ○ |
| C-29 | structlogでロギング | E-01, E-03 | ○ |
| C-30 | error_reportでエラーログ保存 | E-01 | ○ |
| C-31 | バックグラウンドワーカー数はデフォルト4 | E-01, E-04 | ○ |
| C-32 | タスクタイムアウトはデフォルト90秒 | E-01, E-04 | ○ |
| C-33 | プラグインはMixinパターンで拡張 | E-10 | ○ |
| C-34 | BarcodeMixin/ReportMixin等のMixinが存在 | E-10 | ○ |
| C-35 | Dockerサポート | E-07 | ○ |
| C-36 | GitHub Actionsで CI/CD | E-07 | ○ |
| C-37 | pytestでバックエンドテスト | E-08 | ○ |
| C-38 | Playwrightで E2Eテスト | E-05 | ○ |
| C-39 | ReadTheDocsでドキュメントホスティング | E-07 | ○ |
| C-40 | Crowdinで翻訳管理 | E-07 | ○ |
| C-41 | InvenTreeExceptionProcessorでエラー処理 | E-03 | ○ |
| C-42 | InvenTreeRequestCacheMiddlewareでリクエストキャッシュ | E-03 | ○ |
| C-43 | キャッシュTTLはアプリケーション設定で可変 | **根拠なし** | △ |
| C-44 | トランザクション分離レベルのデフォルト値 | **根拠不足** | △ |
| C-45 | 運用推奨ワーカー数は環境依存 | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- **キャッシュTTL具体値**
  - settings.pyにキャッシュ設定は存在するが、TTLの具体的なデフォルト値の明示的な記載がなく、get_cache_config関数内部を確認する必要がある
  - 候補：`InvenTree/cache.py` / Redis設定 / Django CACHE設定
- **トランザクション分離レベル**
  - PostgreSQL/MySQLの設定コードは確認したが、デフォルトでどの分離レベルが使用されるかはDB接続時の設定に依存
  - 候補：データベースドキュメント / 運用ガイド
- **運用推奨設定値**
  - デフォルト値はコードから取得したが、運用環境での推奨値についてはドキュメントや運用ガイドの確認が必要
  - 候補：公式ドキュメント / デプロイメントガイド

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: 技術スタック・フレームワーク選定に関する主張（根拠明確）
- **0 (低リスク)**: ディレクトリ構造・モジュール構成（コードから直接確認）
- **1 (中リスク)**: ミドルウェア構成・バージョン情報（package.json/requirements.txtから取得したが、バージョン番号は変動する可能性）
- **1 (中リスク)**: 認証・認可フローの詳細（コードから読み取ったが、設定による分岐が多い）
- **2 (高リスク)**: パフォーマンス関連の設定値・推奨値（デフォルト値のみ確認、運用推奨値は別途確認必要）

## 6) レビュアーチェックリスト（最小）
- [ ] レイヤー構成が実際のコードベースのディレクトリ構造と一致しているか
- [ ] ミドルウェア一覧がsettings.pyのMIDDLEWARE設定と一致しているか
- [ ] 認証方式一覧が実際にサポートされている認証バックエンドと一致しているか
- [ ] プラグインMixinの種類が plugin/base/ ディレクトリの内容と一致しているか
- [ ] フロントエンドの依存関係がpackage.jsonの内容と一致しているか
- [ ] データベースサポート一覧がconfig_template.yamlの記載と一致しているか
- [ ] バックグラウンドタスク設定のデフォルト値が正確か
- [ ] 外部連携サービス一覧が網羅的か（抜け漏れがないか）
