---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 80
  claims_with_evidence: 76
  claims_without_evidence: 4
confidence_derived: 0.95
---

# 根拠レポート：esm.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：76 / 80、根拠なし：4
- 優先レビュー（高）
  1. **C-18 (_generateBaseUri 空文字列境界値)**：rootOutputDirが空文字列の場合の挙動はコードから推測可能だが、明示的なテストケースや仕様記述なし
  2. **C-37 (getRelativePath 共通パスなし)**：共通パスが存在しない場合のgetUndoPathの挙動はgetUndoPathの実装に依存
  3. **C-44 (getChunkNamedImport 大きなインデックス)**：大きなインデックスの制限はコードに明示されていない
  4. **C-80 (renderStartup 依存チャンクなし・モジュール空)**：withDependentChunksがundefinedを返す場合とmodules.size()=0の組み合わせの挙動推測

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

- E-01: `lib/esm/ExportWebpackRequireRuntimeModule.js` - ExportWebpackRequireRuntimeModuleクラス定義（31行）
- E-02: `lib/esm/ModuleChunkLoadingRuntimeModule.js` - ModuleChunkLoadingRuntimeModuleクラス定義（427行）
- E-03: `lib/esm/ModuleChunkFormatPlugin.js` - ModuleChunkFormatPluginクラスおよびヘルパー関数定義（273行）
- E-04: `lib/esm/ModuleChunkLoadingPlugin.js` - ModuleChunkLoadingPluginクラス定義（143行）
- E-05: `lib/RuntimeModule.js` - RuntimeModule基底クラス（STAGE_ATTACH定数の定義元）
- E-06: `lib/RuntimeGlobals.js` - ランタイムグローバル変数名の定義
- E-07: `lib/Compilation.js` - Compilationクラスの定義（instanceof チェックの対象）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | ExportWebpackRequireRuntimeModuleのコンストラクタが'export webpack runtime'とSTAGE_ATTACHで初期化 | E-01 (11-13行) | ○ |
| C-02 | shouldIsolateがfalseを返す | E-01 (18-20行) | ○ |
| C-03 | generateがexport文を生成する | E-01 (25-27行) | ○ |
| C-04 | generateの戻り値がstring型 | E-01 (25-27行) | ○ |
| C-05 | getCompilationHooksがフックオブジェクトを返す | E-02 (41-56行) | ○ |
| C-06 | 同一Compilationに対して同一フックが返る（WeakMapキャッシュ） | E-02 (47-55行) | ○ |
| C-07 | 異なるCompilationに対して異なるフックが返る | E-02 (41-56行) | ○ |
| C-08 | Compilationインスタンス以外でTypeErrorがスローされる | E-02 (42-46行) | ○ |
| C-09 | nullでTypeErrorがスローされる | E-02 (42-46行) | ○ |
| C-10 | undefinedでTypeErrorがスローされる | E-02 (42-46行) | ○ |
| C-11 | linkPreloadがSyncWaterfallHookインスタンス | E-02 (50行) | ○ |
| C-12 | linkPrefetchがSyncWaterfallHookインスタンス | E-02 (51行) | ○ |
| C-13 | ModuleChunkLoadingRuntimeModuleのコンストラクタが'import chunk loading'とSTAGE_ATTACHで初期化 | E-02 (62行) | ○ |
| C-14 | _runtimeRequirementsが保持される | E-02 (64行) | ○ |
| C-15 | baseUriオプションありの場合にJSON.stringifyされたbaseUriが返る | E-02 (73-85行) | ○ |
| C-16 | baseUriオプションなしの場合にimport.meta.urlベースのコードが返る | E-02 (78-85行) | ○ |
| C-17 | エントリオプションがnullの場合にimport.meta.urlベースのコードが返る | E-02 (74-75行) | ○ |
| C-18 | rootOutputDirが空文字列の場合の挙動 | E-02 (82-84行) | △ |
| C-19 | baseURI要件ありの場合にbaseURIコードが含まれる | E-02 (100, 149-151行) | ○ |
| C-20 | baseURI要件なしの場合に'// no baseURI'が含まれる | E-02 (149-151行) | ○ |
| C-21 | ensureChunkHandlers要件ありの場合にチャンクロードコードが含まれる | E-02 (104-106, 202-254行) | ○ |
| C-22 | ensureChunkHandlers要件なしの場合に'// no chunk on demand loading'が含まれる | E-02 (255行) | ○ |
| C-23 | HMR要件ありの場合にHMRコードが含まれる | E-02 (110-112, 358-403行) | ○ |
| C-24 | HMR要件なしの場合に'// no HMR'が含まれる | E-02 (404行) | ○ |
| C-25 | HMRマニフェスト要件ありの場合にマニフェストダウンロードコードが含まれる | E-02 (113-115, 406-419行) | ○ |
| C-26 | HMRマニフェスト要件なしの場合に'// no HMR manifest'が含まれる | E-02 (421行) | ○ |
| C-27 | externalInstallChunk要件ありの場合にinstallChunk関数が含まれる | E-02 (101-103, 166-200行) | ○ |
| C-28 | externalInstallChunk要件なしの場合に'// no external install chunk'が含まれる | E-02 (348行) | ○ |
| C-29 | onChunksLoaded要件ありの場合にonChunksLoadedコードが含まれる | E-02 (107-109, 350-357行) | ○ |
| C-30 | onChunksLoaded要件なしの場合に'// no on chunks loaded'が含まれる | E-02 (357行) | ○ |
| C-31 | generate結果がnullでない文字列であること | E-02 (90-423行) | ○ |
| C-32 | installedChunksオブジェクトの初期化コードが含まれること | E-02 (156-164行) | ○ |
| C-33 | HMR要件ありの場合にstateExpressionが使用されること | E-02 (144-147行) | ○ |
| C-34 | getRelativePathが同一ディレクトリで正しい相対パスを返す | E-03 (37-69行) | ○ |
| C-35 | getRelativePathが異なるディレクトリで正しい相対パスを返す | E-03 (37-69行) | ○ |
| C-36 | チャンクパスの先頭スラッシュが除去される | E-03 (46-47, 54-55行) | ○ |
| C-37 | 共通パスが存在しない場合のgetRelativePathの挙動 | E-03 (58-65行) | △ |
| C-38 | namedImport指定時にnamespace importが生成される | E-03 (78-82行) | ○ |
| C-39 | namedImport未指定時にnamed importが生成される | E-03 (78-82行) | ○ |
| C-40 | runtimeChunk指定時にそのチャンクに対する相対パスが使用される | E-03 (80行) | ○ |
| C-41 | runtimeChunk未指定時にchunk自身に対する相対パスが使用される | E-03 (80行) | ○ |
| C-42 | getChunkNamedImportがインデックスに応じた名前を返す | E-03 (88-90行) | ○ |
| C-43 | getChunkNamedImportがインデックス0で正しい名前を返す | E-03 (88-90行) | ○ |
| C-44 | getChunkNamedImportが大きなインデックスで正しい名前を返す | E-03 (88-90行) | △ |
| C-45 | ModuleChunkFormatPlugin.applyがthisCompilationフックを登録する | E-03 (101行) | ○ |
| C-46 | runtimeチャンクでないエントリモジュールを持つチャンクにrequireとexternalInstallChunkが追加される | E-03 (102-111行) | ○ |
| C-47 | runtimeチャンクの場合はランタイム要件が追加されない | E-03 (105行) | ○ |
| C-48 | renderChunkフックでチャンクIDとモジュールがexportされる | E-03 (176-188行) | ○ |
| C-49 | runtimeModulesが存在する場合にランタイムコードがエクスポートされる | E-03 (189-195行) | ○ |
| C-50 | runtimeModulesが0件の場合にランタイムエクスポートが含まれない | E-03 (190行) | ○ |
| C-51 | HotUpdateChunkの場合はエントリ処理がスキップされる | E-03 (178, 196-198行) | ○ |
| C-52 | renderStartupフックでエントリモジュールありかつruntimeチャンクの場合に依存チャンクがインポートされる | E-03 (146-175行) | ○ |
| C-53 | renderStartupフックでエントリモジュールがない場合にmodulesがそのまま返却される | E-03 (151-153, 173行) | ○ |
| C-54 | chunkHashフックが登録される | E-03 (268行) | ○ |
| C-55 | runtimeChunkが存在する場合にエントリソースにランタイムインポートが追加される | E-03 (199-265行) | ○ |
| C-56 | ModuleChunkLoadingPlugin.applyがthisCompilationフックを登録する | E-04 (25行) | ○ |
| C-57 | chunkLoadingが'import'の場合にisEnabledForChunkがtrueを返す | E-04 (31-38行) | ○ |
| C-58 | chunkLoadingが'import'でない場合にisEnabledForChunkがfalseを返す | E-04 (31-38行) | ○ |
| C-59 | entryOptionsでchunkLoadingが'import'にオーバーライドされた場合にtrueを返す | E-04 (32-37行) | ○ |
| C-60 | entryOptionsでchunkLoadingが'jsonp'にオーバーライドされた場合にfalseを返す | E-04 (32-37行) | ○ |
| C-61 | entryOptionsでchunkLoadingがundefinedの場合にグローバル設定が使用される | E-04 (34-35行) | ○ |
| C-62 | 有効なチャンクに対してModuleChunkLoadingRuntimeModuleが追加される | E-04 (51-54行) | ○ |
| C-63 | moduleFactoriesAddOnlyがランタイム要件に追加される | E-04 (49行) | ○ |
| C-64 | hasOwnPropertyがランタイム要件に追加される | E-04 (50行) | ○ |
| C-65 | 無効なチャンクの場合はランタイムモジュールが追加されない | E-04 (48行) | ○ |
| C-66 | 同一チャンクに対してhandlerが2回呼ばれた場合に2回目はスキップされる | E-04 (46-47行) | ○ |
| C-67 | ensureChunkHandlers用のフックが登録される | E-04 (56-58行) | ○ |
| C-68 | baseURI用のフックが登録される | E-04 (59-61行) | ○ |
| C-69 | externalInstallChunk要件時にExportWebpackRequireRuntimeModuleが追加される | E-04 (74-82行) | ○ |
| C-70 | externalInstallChunk要件時にチャンクが無効ならスキップされる | E-04 (77行) | ○ |
| C-71 | prefetchChunkHandlers要件時にpublicPathが追加される | E-04 (85-90行) | ○ |
| C-72 | preloadChunkHandlers要件時にpublicPathが追加される | E-04 (92-97行) | ○ |
| C-73 | ensureChunkHandlers要件時にpublicPathが'auto'でない場合publicPathが追加される | E-04 (99-109行) | ○ |
| C-74 | ensureChunkHandlers要件時にpublicPathが'auto'の場合publicPathが追加されない | E-04 (104行) | ○ |
| C-75 | ensureChunkHandlers要件時にgetChunkScriptFilenameが追加される | E-04 (108行) | ○ |
| C-76 | hmrDownloadUpdateHandlers要件時に関連するランタイム要件がすべて追加される | E-04 (111-121行) | ○ |
| C-77 | hmrDownloadManifest要件時にpublicPathとgetUpdateManifestFilenameが追加される | E-04 (123-129行) | ○ |
| C-78 | additionalTreeRuntimeRequirementsフックでエントリ依存チャンクがある場合にexternalInstallChunkが追加される | E-04 (131-138行) | ○ |
| C-79 | additionalTreeRuntimeRequirementsフックでエントリ依存チャンクがない場合にスキップされる | E-04 (134行) | ○ |
| C-80 | renderStartupフックで依存チャンクなし・モジュール空の場合 | E-03 (146-175行) | △ |

## 4) 不足情報（Unknown / Missing）
- C-18: `_generateBaseUri`に空文字列を渡した場合の挙動はコード上から推測可能だが、意図された動作かどうかの仕様記述がない
  - 候補：webpack公式ドキュメント / テストケース / 開発者コメント
- C-37: `getRelativePath`で共通パスが存在しない場合の`getUndoPath`関数の挙動は外部依存（`lib/util/identifier.js`）であり、esmモジュール内では検証不可
  - 候補：`lib/util/identifier.js` のソースコード / テストケース
- C-44: `getChunkNamedImport`に大きなインデックスを渡した場合の制限は明示されていないが、JavaScriptの文字列連結として機能するため問題は生じにくい
  - 候補：JavaScript言語仕様 / パフォーマンステスト
- C-80: `withDependentChunks`がundefinedを返す場合と`modules.size()=0`の組み合わせはコードパスとして存在するが、明示的な仕様記述がない
  - 候補：E-03のrenderStartupフック実装 / 統合テスト

## 5) リスクフラグ（レビュー観点）
- 0: ExportWebpackRequireRuntimeModule（単純なクラスであり、ロジックが限定的）
- 0: getChunkNamedImport（単純な文字列連結）
- 1: ModuleChunkLoadingRuntimeModule.generate（多数の条件分岐を含み、組み合わせテストの網羅性に注意が必要）
- 1: ModuleChunkFormatPlugin.apply（renderChunk/renderStartupフック内の複雑なロジック。モックの設定が複雑になる可能性あり）
- 1: ModuleChunkLoadingPlugin.apply（多数のフック登録があり、テスト時にモック設定の漏れに注意）
- 0: getRelativePath（パス解決ロジックは外部関数getUndoPathに依存するため、esmモジュール単体テストとしては境界が明確）

## 6) レビュアーチェックリスト（最小）
- [ ] ModuleChunkLoadingRuntimeModule.generateの条件分岐の組み合わせ（prefetch/preload/HMR/externalInstallChunk等）が十分にカバーされているか
- [ ] ModuleChunkFormatPlugin.applyのrenderChunkフック内のHotUpdateChunk判定と通常チャンクのパスが正しく分離されているか
- [ ] ModuleChunkLoadingPlugin.applyの各runtimeRequirementInTreeフックが適切なランタイム要件を追加しているかの網羅性
- [ ] getRelativePathのパス解決ロジックが外部依存(getUndoPath)と整合しているか
- [ ] テストのモック設計がwebpackの内部APIと整合しているか（Compilation, ChunkGraph, runtimeTemplate等）
