---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 50
  claims_with_evidence: 46
  claims_without_evidence: 4
confidence_derived: 0.92
---

# 根拠レポート：結合テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.92**
  - 根拠あり：46 / 50、根拠なし：4
- 優先レビュー（高）
  1. **IT-030 Module Federation連携**：コンテナプラグインの内部動作フローの詳細が未検証
  2. **IT-022 HMRアップデート生成**：HMRマニフェスト生成の具体的なファイル形式の根拠が不足
  3. **IT-037 Worker処理**：WorkerPluginの具体的なチャンク分離ロジックの検証が不足
  4. **IT-028 CSSモジュール**：experiments.cssの実験的機能の仕様変更リスク

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

- E-01: `lib/webpack.js` - webpack関数の実装（createCompiler, createMultiCompiler）
- E-02: `lib/Compiler.js` (1,413行) - Compilerクラスのフック定義・run/watch/compile メソッド
- E-03: `lib/Compilation.js` (5,876行) - Compilationクラスのフック・addEntry/seal/codeGeneration メソッド
- E-04: `lib/NormalModuleFactory.js` (1,455行) - モジュール解決・生成のファクトリ実装
- E-05: `lib/NormalModule.js` (1,798行) - NormalModule.build()によるローダー実行・パース処理
- E-06: `lib/javascript/JavascriptParser.js` (165,733行) - JavaScript AST解析・依存関係抽出
- E-07: `lib/buildChunkGraph.js` (1,392行) - チャンクグラフ構築アルゴリズム
- E-08: `lib/ChunkGraph.js` (1,968行) - チャンク-モジュールマッピング
- E-09: `lib/ModuleGraph.js` (1,024行) - モジュール間依存関係グラフ
- E-10: `lib/dependencies/HarmonyModulesPlugin.js` - ES6モジュール依存関係プラグイン
- E-11: `lib/dependencies/CommonJsPlugin.js` - CommonJSモジュール依存関係プラグイン
- E-12: `lib/dependencies/ImportPlugin.js` - 動的import()依存関係プラグイン
- E-13: `lib/optimize/SplitChunksPlugin.js` - コード分割最適化
- E-14: `lib/optimize/ModuleConcatenationPlugin.js` (29,915行) - モジュール連結最適化
- E-15: `lib/FlagDependencyUsagePlugin.js` - エクスポート使用状況追跡
- E-16: `lib/optimize/SideEffectsFlagPlugin.js` - 副作用フラグ処理
- E-17: `lib/javascript/JavascriptGenerator.js` (8,820行) - JavaScriptコード生成
- E-18: `lib/RuntimeTemplate.js` (1,288行) - ランタイムテンプレート
- E-19: `lib/RuntimePlugin.js` - ランタイムモジュール注入
- E-20: `lib/runtime/` ディレクトリ (33+ファイル) - ランタイムモジュール群
- E-21: `lib/cache/MemoryCachePlugin.js` - インメモリキャッシュ
- E-22: `lib/cache/IdleFileCachePlugin.js` - ファイルシステムキャッシュ
- E-23: `lib/cache/PackFileCacheStrategy.js` (46,421行) - パックファイルシリアライゼーション
- E-24: `lib/Watching.js` (531行) - ファイル監視・再ビルドロジック
- E-25: `lib/FileSystemInfo.js` (4,131行) - ファイルシステムスナップショット
- E-26: `lib/HotModuleReplacementPlugin.js` (930行) - HMRプラグイン
- E-27: `lib/MultiCompiler.js` - マルチコンパイラ
- E-28: `lib/stats/DefaultStatsFactoryPlugin.js` - Stats生成
- E-29: `lib/ModuleNotFoundError.js` - モジュール未発見エラー
- E-30: `lib/ModuleBuildError.js` - モジュールビルドエラー
- E-31: `lib/asset/AssetModulesPlugin.js` - アセットモジュール
- E-32: `lib/css/CssModulesPlugin.js` - CSSモジュール
- E-33: `lib/ExternalsPlugin.js` / `lib/ExternalModule.js` - 外部モジュール
- E-34: `lib/container/ModuleFederationPlugin.js` - Module Federation
- E-35: `lib/SourceMapDevToolPlugin.js` - ソースマップ生成
- E-36: `lib/config/normalization.js` / `lib/config/defaults.js` - 設定正規化
- E-37: `lib/ContextModuleFactory.js` (514行) / `lib/ContextModule.js` (1,411行) - コンテキストモジュール
- E-38: `lib/cache/ResolverCachePlugin.js` - リゾルバーキャッシュ
- E-39: `lib/dependencies/WorkerPlugin.js` - Workerプラグイン
- E-40: `lib/library/LibraryPlugin.js` - ライブラリ出力
- E-41: `lib/javascript/EnableChunkLoadingPlugin.js` (3,671行) - チャンクローディング
- E-42: `lib/dependencies/AMDPlugin.js` - AMDモジュール
- E-43: `lib/ProgressPlugin.js` - 進捗報告
- E-44: `lib/BannerPlugin.js` - バナー挿入
- E-45: `lib/json/JsonModulesPlugin.js` - JSONモジュール
- E-46: `lib/CleanPlugin.js` - 出力クリーン
- E-47: `lib/WebpackOptionsApply.js` (941行) - 102+ビルトインプラグイン適用
- E-48: `lib/optimize/RealContentHashPlugin.js` - コンテンツハッシュ
- E-49: `lib/ids/DeterministicModuleIdsPlugin.js` / `lib/ids/DeterministicChunkIdsPlugin.js` - 決定論的ID
- E-50: `schemas/WebpackOptions.json` - 設定スキーマ
- E-51: `test/Compiler.test.js` - Compiler結合テスト（既存）
- E-52: `test/Compiler-caching.test.js` - キャッシュテスト（既存）
- E-53: `test/Compiler-filesystem-caching.test.js` - ファイルシステムキャッシュテスト（既存）
- E-54: `test/Watch.test.js` / `test/WatchSuspend.test.js` - Watchモードテスト（既存）
- E-55: `test/MultiCompiler.test.js` - MultiCompilerテスト（既存）
- E-56: `test/Errors.test.js` - エラーハンドリングテスト（既存）
- E-57: `test/configCases/` (93カテゴリ) - 設定別テストケース群
- E-58: `test/cases/` (27カテゴリ) - 基本テストケース群
- E-59: `package.json` - プロジェクト依存関係定義（tapable, enhanced-resolve, loader-runner等）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | IT-001: webpack関数がCompilerインスタンスを正しく生成する | E-01, E-02, E-47 | ○ |
| C-02 | IT-002: Compiler.run()のフックチェーンが正しい順序で実行される | E-02, E-51 | ○ |
| C-03 | IT-003: Compiler.compile()がCompilationとModuleFactory群を生成する | E-02, E-03, E-04 | ○ |
| C-04 | IT-004: addEntry()がModuleGraphにモジュールを登録する | E-03, E-04, E-09 | ○ |
| C-05 | IT-005: NormalModuleFactoryがenhanced-resolveを通じてモジュールパスを解決する | E-04, E-59 | ○ |
| C-06 | IT-006: NormalModule.build()がローダー→パーサー→依存関係抽出のパイプラインを実行する | E-05, E-06, E-59 | ○ |
| C-07 | IT-007: buildChunkGraph()がモジュールをチャンクに正しく割り当てる | E-07, E-08 | ○ |
| C-08 | IT-008: HarmonyModulesPluginがES6 import/exportを正しく解析する | E-06, E-10, E-09 | ○ |
| C-09 | IT-009: CommonJsPluginがrequire/exportsを正しく解析する | E-06, E-11, E-09 | ○ |
| C-10 | IT-010: ImportPluginがimport()を非同期チャンクとして分離する | E-12, E-03, E-07 | ○ |
| C-11 | IT-011: SplitChunksPluginが共有モジュールを別チャンクに抽出する | E-13, E-03, E-08, E-57 | ○ |
| C-12 | IT-012: ModuleConcatenationPluginがES6モジュールを単一スコープに連結する | E-14, E-03 | ○ |
| C-13 | IT-013: ツリーシェイキングで未使用エクスポートが除去される | E-15, E-16, E-17, E-58 | ○ |
| C-14 | IT-014: SideEffectsFlagPluginが副作用なしモジュールを正しく判定する | E-16, E-03, E-09 | ○ |
| C-15 | IT-015: JavascriptGeneratorがDependencyTemplate・RuntimeTemplateを通じてコードを生成する | E-17, E-18 | ○ |
| C-16 | IT-016: RuntimePluginが各チャンクに必要なランタイムモジュールを注入する | E-19, E-20, E-08 | ○ |
| C-17 | IT-017: Compiler.emitAssets()がアセットをoutputFileSystemに書き出す | E-02, E-03 | ○ |
| C-18 | IT-018: RealContentHashPluginがアセット内容に基づくハッシュを生成する | E-48, E-03 | ○ |
| C-19 | IT-019: MemoryCachePluginが2回目のビルドで再ビルドをスキップする | E-21, E-03, E-52 | ○ |
| C-20 | IT-020: IdleFileCachePluginがプロセス再起動後もキャッシュを永続化する | E-22, E-23, E-53 | ○ |
| C-21 | IT-021: Watching クラスがファイル変更を検知しインクリメンタル再ビルドを実行する | E-24, E-02, E-25, E-54 | ○ |
| C-22 | IT-022: HotModuleReplacementPluginがHMRマニフェストとアップデートチャンクを生成する | E-26, E-03 | △ |
| C-23 | IT-023: MultiCompilerが複数設定を独立してビルドしMultiStatsを返す | E-27, E-02, E-55 | ○ |
| C-24 | IT-024: StatsFactoryがCompilationからJSON・文字列形式の統計を生成する | E-28, E-57 | ○ |
| C-25 | IT-025: モジュール未発見エラーがNormalModuleFactory→Compilation→Statsまで伝播する | E-04, E-29, E-03, E-56 | ○ |
| C-26 | IT-026: ローダーエラーがModuleBuildErrorとしてCompilationに報告される | E-05, E-30, E-03 | ○ |
| C-27 | IT-027: AssetModulesPluginがサイズ閾値に基づきリソース出力/インライン化を切替える | E-31, E-57 | ○ |
| C-28 | IT-028: CssModulesPluginがCSSを独立アセットとして出力する | E-32 | △ |
| C-29 | IT-029: ExternalsPluginが外部モジュールをバンドルせず参照コードを生成する | E-33, E-57 | ○ |
| C-30 | IT-030: ModuleFederationPluginがモジュールの公開・共有を実現する | E-34 | △ |
| C-31 | IT-031: SourceMapDevToolPluginが正確なソースマップを生成する | E-35, E-03, E-57 | ○ |
| C-32 | IT-032: 省略記法の設定が内部形式に正しく正規化される | E-36, E-01 | ○ |
| C-33 | IT-033: tapableフックを通じたプラグインの登録・実行が正しく動作する | E-02, E-03, E-59 | ○ |
| C-34 | IT-034: ContextModuleFactoryがrequire.context()を正しく処理する | E-37, E-58 | ○ |
| C-35 | IT-035: FileSystemInfoがファイル変更を正しく検出する | E-25, E-24 | ○ |
| C-36 | IT-036: ResolverCachePluginがモジュール解決結果をキャッシュする | E-38, E-59 | ○ |
| C-37 | IT-037: WorkerPluginがWeb Workerを別チャンクとしてバンドルする | E-39 | △ |
| C-38 | IT-038: LibraryPluginが指定形式でモジュールをエクスポートする | E-40, E-57 | ○ |
| C-39 | IT-039: EnableChunkLoadingPluginがターゲットに適したチャンクローディングを生成する | E-41, E-20 | ○ |
| C-40 | IT-040: AMDPluginがdefine/require構文を正しく処理する | E-42, E-06, E-58 | ○ |
| C-41 | IT-041: ProgressPluginが各フェーズで進捗を報告する | E-43, E-02, E-03 | ○ |
| C-42 | IT-042: BannerPluginが出力アセットにバナーを挿入する | E-44, E-03 | ○ |
| C-43 | IT-043: JsonModulesPluginがJSONファイルをモジュールとして処理する | E-45, E-58 | ○ |
| C-44 | IT-044: buildDependencies変更時にキャッシュが正しく無効化される | E-22, E-25, E-53 | ○ |
| C-45 | IT-045: Watchモードでキャッシュが効率的にインクリメンタル更新される | E-24, E-21, E-25 | ○ |
| C-46 | IT-046: ターゲット設定に応じた適切なランタイムが生成される | E-36, E-47 | ○ |
| C-47 | IT-047: DeterministicModuleIdsPluginが決定論的IDを生成する | E-49, E-03 | ○ |
| C-48 | IT-048: DeterministicChunkIdsPluginが決定論的IDを生成する | E-49, E-03 | ○ |
| C-49 | IT-049: 不正な設定がJSONスキーマ検証でエラーとなる | E-50, E-01, E-59 | ○ |
| C-50 | IT-050: CleanPluginが不要な出力ファイルを削除する | E-46, E-02 | ○ |

## 4) 不足情報（Unknown / Missing）
- **IT-022 (HMRアップデート生成)**：HotModuleReplacementPluginの実装は確認したが、HMRマニフェストJSONの具体的なスキーマやアップデートチャンクの命名規則の詳細根拠が不足
  - 候補：lib/hmr/HotModuleReplacement.runtime.js / HMR公式ドキュメント / test/hotCases/の具体的テスト内容
- **IT-028 (CSSモジュール)**：CssModulesPluginの実装は確認したが、experiments.cssは実験的機能であり仕様が安定していない可能性がある
  - 候補：webpack公式ドキュメントのexperiments.css記述 / CHANGELOG.md
- **IT-030 (Module Federation)**：ModuleFederationPlugin・ContainerPlugin・SharePluginの存在は確認したが、コンテナ間通信の内部プロトコル詳細が未検証
  - 候補：lib/container/ContainerEntryModule.js / lib/sharing/ConsumeSharedPlugin.js の詳細解析
- **IT-037 (Worker処理)**：WorkerPluginの存在は確認したが、Worker用チャンクの具体的な分離メカニズムとランタイムコードの詳細が未検証
  - 候補：lib/dependencies/WorkerDependency.js / test/configCases/ のWorker関連テスト

## 5) リスクフラグ（レビュー観点）
- **リスク 1（高リスク）**：IT-020（ファイルシステムキャッシュ）- PackFileCacheStrategy (46,421行) は非常に複雑であり、テスト手順がキャッシュの完全な動作を網羅できていない可能性がある
- **リスク 1（中リスク）**：IT-028（CSSモジュール）- experiments.cssは実験的機能であり、webpack バージョンアップで動作が変更される可能性がある
- **リスク 1（中リスク）**：IT-030（Module Federation）- ModuleFederationPlugin は複数のサブプラグインから構成されており、結合パターンが複雑
- **リスク 0（低リスク）**：IT-040〜IT-050 - 低優先度テストケースは基本的に安定したAPIに基づいている

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースの粒度が適切か（1テスト = 1結合ポイント）
- [ ] 前提条件が実際のテスト環境で再現可能か
- [ ] テスト手順が自動テストとして実装可能な具体性を持っているか
- [ ] 期待結果が曖昧でなく、テストコードのassertionとして記述可能か
- [ ] 優先度の設定がプロジェクトのリスクプロファイルと一致しているか
- [ ] △（根拠不足）のテストケースについて、追加調査の要否を判断したか
- [ ] コアフロー（IT-001〜IT-007）のテストケースが既存テスト（test/Compiler.test.js等）と整合しているか
- [ ] 最適化関連テスト（IT-011〜IT-014）が既存のconfigCasesテストと重複していないか
- [ ] キャッシュ関連テスト（IT-019, IT-020, IT-044, IT-045）の前提条件（キャッシュ状態）が明確か
- [ ] Watch・HMR関連テスト（IT-021, IT-022）のタイムアウト設定を考慮しているか
