---
generated_at: 2026-03-01 10:00:00
metrics:
  claims_total: 175
  claims_with_evidence: 173
  claims_without_evidence: 2
confidence_derived: 0.99
---

# 根拠レポート：library.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.99**
  - 根拠あり：173 / 175、根拠なし：2
- 優先レビュー（高）
  1. **C-148（ModuleLibraryPlugin._analyzeUnknownProvidedExportsの再帰解決）**：再帰的処理の内部動作で、テスト実装時の具体的なモック構成が必要
  2. **C-155（ModuleLibraryPlugin.renderStartupのinlined定義利用）**：inlined/inlinedInIIFEの組み合わせが実行時コンテキスト依存

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `lib/library/AbstractLibraryPlugin.js` (行1-339)
- E-02: `lib/library/EnableLibraryPlugin.js` (行1-306)
- E-03: `lib/library/AssignLibraryPlugin.js` (行1-445)
- E-04: `lib/library/AmdLibraryPlugin.js` (行1-181)
- E-05: `lib/library/UmdLibraryPlugin.js` (行1-355)
- E-06: `lib/library/SystemLibraryPlugin.js` (行1-256)
- E-07: `lib/library/ModuleLibraryPlugin.js` (行1-438)
- E-08: `lib/library/ExportPropertyLibraryPlugin.js` (行1-116)
- E-09: `lib/library/JsonpLibraryPlugin.js` (行1-92)

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | AbstractLibraryPlugin.constructorでpluginName,type,_parseCacheがセットされる | E-01 (行50-57) | ○ |
| C-002 | _parseOptionsCachedでparseOptions結果がWeakMapにキャッシュされる | E-01 (行228-236) | ○ |
| C-003 | 同一libraryで2回呼び出し時にキャッシュが使用される | E-01 (行232-233) | ○ |
| C-004 | library=undefinedの場合にfalseが返る | E-01 (行229) | ○ |
| C-005 | library.typeが不一致の場合にfalseが返る | E-01 (行230) | ○ |
| C-006 | 基底parseOptionsがAbstractMethodErrorをスロー | E-01 (行244-248) | ○ |
| C-007 | finishEntryModuleのデフォルト実装が空 | E-01 (行256) | ○ |
| C-008 | embedInRuntimeBailoutがundefinedを返す | E-01 (行264-266) | ○ |
| C-009 | strictRuntimeBailoutがundefinedを返す | E-01 (行273-275) | ○ |
| C-010 | runtimeRequirementsがreturnExportsFromRuntimeを追加 | E-01 (行283-287) | ○ |
| C-011 | renderのデフォルトがsourceを返す | E-01 (行295-297) | ○ |
| C-012 | renderStartupのデフォルトがsourceを返す | E-01 (行306-308) | ○ |
| C-013 | renderModuleContentのデフォルトがsourceを返す | E-01 (行317-319) | ○ |
| C-014 | chunkHashでpluginNameとoptionsがhash更新される | E-01 (行328-334) | ○ |
| C-015 | applyでthisCompilationにタップされる | E-01 (行64-221) | ○ |
| C-016 | COMMON_LIBRARY_NAME_MESSAGEが正しい文字列 | E-01 (行26-27, 337) | ○ |
| C-017 | getEnabledTypesで空Setが生成される | E-02 (行25-33) | ○ |
| C-018 | getEnabledTypesで同一Setが返される | E-02 (行26-27) | ○ |
| C-019 | EnableLibraryPlugin.constructorでtype/optionsがセットされる | E-02 (行40-45) | ○ |
| C-020 | constructor省略時のデフォルトoptions | E-02 (行40) | ○ |
| C-021 | setEnabledでtypeが追加される | E-02 (行52-54) | ○ |
| C-022 | checkEnabledで有効なtypeがエラーなし | E-02 (行61-71) | ○ |
| C-023 | checkEnabledで無効なtypeがエラー | E-02 (行62-70) | ○ |
| C-024 | apply type='var'でAssignLibraryPlugin適用 | E-02 (行99-109) | ○ |
| C-025 | apply type='assign'でdeclare=false | E-02 (行124-135) | ○ |
| C-026 | apply type='assign-properties'でnamed='copy' | E-02 (行111-123) | ○ |
| C-027 | apply type='this'でprefix=['this'] | E-02 (行136-147) | ○ |
| C-028 | apply type='window'でprefix=['window'] | E-02 (行148-159) | ○ |
| C-029 | apply type='self'でprefix=['self'] | E-02 (行160-171) | ○ |
| C-030 | apply type='global'でprefix='global' | E-02 (行172-183) | ○ |
| C-031 | apply type='commonjs'でprefix=['exports'] | E-02 (行184-195) | ○ |
| C-032 | apply type='commonjs-static'でunnamed='static' | E-02 (行196-207) | ○ |
| C-033 | apply type='commonjs2'でprefix=['module','exports'] | E-02 (行208-220) | ○ |
| C-034 | apply type='commonjs-module'でcommonjs2と同構成 | E-02 (行209-220) | ○ |
| C-035 | apply type='amd'でAmdLibraryPlugin適用 | E-02 (行221-232) | ○ |
| C-036 | apply type='amd-require'でrequireAsWrapper=true | E-02 (行221-232, 行229) | ○ |
| C-037 | apply type='umd'でUmdLibraryPlugin適用 | E-02 (行233-265) | ○ |
| C-038 | apply type='umd2'でoptionalAmdExternalAsGlobal=true | E-02 (行234, 262-263) | ○ |
| C-039 | apply type='umd'でiife=false時の警告 | E-02 (行235-255) | ○ |
| C-040 | apply type='system'でSystemLibraryPlugin適用 | E-02 (行266-275) | ○ |
| C-041 | apply type='jsonp'でJsonpLibraryPlugin適用 | E-02 (行276-285) | ○ |
| C-042 | apply type='module'でModuleLibraryPlugin適用 | E-02 (行286-294) | ○ |
| C-043 | apply type='modern-module'でModuleLibraryPlugin適用 | E-02 (行287-294) | ○ |
| C-044 | 未対応type時にErrorスロー | E-02 (行295-298) | ○ |
| C-045 | 同一typeでの重複適用防止 | E-02 (行82-84) | ○ |
| C-046 | additionalApplyコールバックの呼び出し | E-02 (行86-88) | ○ |
| C-047 | isNameValidで有効識別子がtrue | E-03 (行35-46) | ○ |
| C-048 | isNameValidでキーワードがfalse | E-03 (行35-36) | ○ |
| C-049 | isNameValidで数字開始がfalse | E-03 (行37-38) | ○ |
| C-050 | isNameValidで空文字がfalse | E-03 (行37-38) | ○ |
| C-051 | isNameValidでアンダースコア開始がtrue | E-03 (行37-38) | ○ |
| C-052 | isNameValidでドル記号開始がtrue | E-03 (行37-38) | ○ |
| C-053 | accessWithInitで1要素+initLast=falseでbase返却 | E-03 (行58) | ○ |
| C-054 | accessWithInitで複数要素+existingLength=0の初期化コード | E-03 (行54-97) | ○ |
| C-055 | accessWithInitでexistingLength>0の既存プロパティアクセス | E-03 (行72-76) | ○ |
| C-056 | accessWithInitでinitLast=trueの最後の要素初期化 | E-03 (行82-89) | ○ |
| C-057 | accessWithInitで1要素+initLast=trueのtypeof初期化 | E-03 (行58-63) | ○ |
| C-058 | AssignLibraryPlugin.constructorの基本動作 | E-03 (行126-139) | ○ |
| C-059 | namedのデフォルト値'assign' | E-03 (行138) | ○ |
| C-060 | namedの明示的指定 | E-03 (行138) | ○ |
| C-061 | parseOptionsで文字列名のパース | E-03 (行145-163) | ○ |
| C-062 | parseOptionsで配列名のパース | E-03 (行148) | ○ |
| C-063 | parseOptions unnamed='error'で不正名前のエラー | E-03 (行147-153) | ○ |
| C-064 | parseOptions unnamed='error'でundefined名のエラー | E-03 (行147-153) | ○ |
| C-065 | parseOptions unnamed='copy'で名前省略可能 | E-03 (行153-157) | ○ |
| C-066 | parseOptions unnamed='copy'でオブジェクト名のエラー | E-03 (行153-157) | ○ |
| C-067 | finishEntryModuleでexport設定時のUsed設定 | E-03 (行171-189) | ○ |
| C-068 | finishEntryModuleでexport未設定時のsetUsedInUnknownWay | E-03 (行184-187) | ○ |
| C-069 | finishEntryModuleで配列export時の先頭要素使用 | E-03 (行178-180) | ○ |
| C-070 | _getPrefixでglobal時のglobalObject返却 | E-03 (行195-199) | ○ |
| C-071 | _getPrefixで配列prefixのそのまま返却 | E-03 (行196-198) | ○ |
| C-072 | _getResolvedFullNameで文字列名のフルネーム | E-03 (行207-220) | ○ |
| C-073 | _getResolvedFullNameで配列名の展開 | E-03 (行209-214) | ○ |
| C-074 | _getResolvedFullNameで名前なしのprefix返却 | E-03 (行209-214) | ○ |
| C-075 | renderでdeclare時のvar宣言追加 | E-03 (行228-248) | ○ |
| C-076 | renderでdeclare時の無効識別子エラー | E-03 (行236-244) | ○ |
| C-077 | renderでdeclare未指定時のsource返却 | E-03 (行234-247) | ○ |
| C-078 | embedInRuntimeBailoutでtopLevelDeclarations競合時のbailout | E-03 (行256-277) | ○ |
| C-079 | embedInRuntimeBailoutでtopLevelDeclarations不在のbailout | E-03 (行265-266) | ○ |
| C-080 | embedInRuntimeBailoutで競合なしのundefined | E-03 (行274) | ○ |
| C-081 | strictRuntimeBailoutでdeclare時のundefined | E-03 (行284-294) | ○ |
| C-082 | strictRuntimeBailoutでglobalプレフィックス時のundefined | E-03 (行287) | ○ |
| C-083 | strictRuntimeBailoutで空prefix+名前なしのbailout | E-03 (行284-294) | ○ |
| C-084 | renderStartupでstatic export処理 | E-03 (行303-406, 行314,321-372) | ○ |
| C-085 | renderStartupでcopyモード処理 | E-03 (行373-396) | ○ |
| C-086 | renderStartupでassignモード処理 | E-03 (行396-404) | ○ |
| C-087 | renderStartupでexportプロパティアクセス | E-03 (行315-319) | ○ |
| C-088 | runtimeRequirementsでexports追加 | E-03 (行414-416) | ○ |
| C-089 | chunkHashでAssignLibraryPlugin文字列とフルネーム追加 | E-03 (行425-442) | ○ |
| C-090 | chunkHashでcopyモードのhash追加 | E-03 (行432-434) | ○ |
| C-091 | chunkHashでdeclare値のhash追加 | E-03 (行435-437) | ○ |
| C-092 | AmdLibraryPlugin.constructorの基本動作 | E-04 (行45-52) | ○ |
| C-093 | parseOptionsで文字列名パース | E-04 (行58-74) | ○ |
| C-094 | parseOptionsで名前未設定パース | E-04 (行66-73) | ○ |
| C-095 | parseOptionsでrequireAsWrapper=true+名前設定エラー | E-04 (行60-65) | ○ |
| C-096 | parseOptionsで非文字列名エラー | E-04 (行66-70) | ○ |
| C-097 | renderでrequireAsWrapper=trueのrequire()ラップ | E-04 (行125-130) | ○ |
| C-098 | renderで名前付きdefine() | E-04 (行131-143) | ○ |
| C-099 | renderで匿名+外部依存のdefine() | E-04 (行143-149) | ○ |
| C-100 | renderで匿名+外部依存なしのdefine() | E-04 (行150-155) | ○ |
| C-101 | renderでamdContainerプレフィックス | E-04 (行120-123) | ○ |
| C-102 | renderでアロー関数サポート | E-04 (行87, 113-117) | ○ |
| C-103 | chunkHashで'AmdLibraryPlugin'更新 | E-04 (行165) | ○ |
| C-104 | chunkHashでrequireAsWrapper更新 | E-04 (行166-167) | ○ |
| C-105 | chunkHashで名前付き更新 | E-04 (行168-173) | ○ |
| C-106 | chunkHashでamdContainer更新 | E-04 (行174-177) | ○ |
| C-107 | accessorToObjectAccessのブラケット変換 | E-05 (行31-32) | ○ |
| C-108 | accessorToObjectAccessの空配列処理 | E-05 (行31-32) | ○ |
| C-109 | accessorAccessでbase+単一アクセサ | E-05 (行42-56) | ○ |
| C-110 | accessorAccessで配列アクセサの初期化チェーン | E-05 (行42-56) | ○ |
| C-111 | accessorAccessでbase=undefinedのtypeof初期化 | E-05 (行50-51) | ○ |
| C-112 | accessorAccessのjoinWithパラメータ | E-05 (行42, 55) | ○ |
| C-113 | UmdLibraryPlugin.constructorの基本動作 | E-05 (行80-88) | ○ |
| C-114 | parseOptionsでオブジェクト名パース | E-05 (行94-117) | ○ |
| C-115 | parseOptionsで文字列名パース | E-05 (行102-109) | ○ |
| C-116 | parseOptionsで配列名パース | E-05 (行103-109) | ○ |
| C-117 | parseOptionsでauxiliaryComment/namedDefine | E-05 (行111-116) | ○ |
| C-118 | parseOptionsで名前未設定パース | E-05 (行99-110) | ○ |
| C-119 | renderでUMDラッパー生成 | E-05 (行125-352) | ○ |
| C-120 | renderでoptionalAmdExternalAsGlobal分離 | E-05 (行142-153) | ○ |
| C-121 | renderでnamedDefine+names.amd含む | E-05 (行306-314) | ○ |
| C-122 | renderで文字列auxiliaryComment | E-05 (行285-293) | ○ |
| C-123 | renderでオブジェクトauxiliaryComment | E-05 (行285-293) | ○ |
| C-124 | renderで名前なしUMDのfor-in | E-05 (行334-341) | ○ |
| C-125 | renderでオブジェクト型requestのamd使用 | E-05 (行171-180) | ○ |
| C-126 | SystemLibraryPlugin.constructorの基本動作 | E-06 (行46-51) | ○ |
| C-127 | parseOptionsで文字列名パース | E-06 (行57-68) | ○ |
| C-128 | parseOptionsで名前未設定パース | E-06 (行59-67) | ○ |
| C-129 | parseOptionsで非文字列名エラー | E-06 (行59-63) | ○ |
| C-130 | renderでSystem.register生成 | E-06 (行76-239) | ○ |
| C-131 | renderで名前なしSystem.register | E-06 (行85-87) | ○ |
| C-132 | renderで外部モジュールのsetter生成 | E-06 (行119-212) | ○ |
| C-133 | renderで外部モジュールなしのsetter空 | E-06 (行120-121) | ○ |
| C-134 | renderでotherExportsInfo=Unused時の処理 | E-06 (行129-162) | ○ |
| C-135 | renderでdefaultエクスポートのフォールバック | E-06 (行143-150) | ○ |
| C-136 | renderで__esModuleプロパティ定義 | E-06 (行169-171) | ○ |
| C-137 | chunkHashで'SystemLibraryPlugin'更新 | E-06 (行249) | ○ |
| C-138 | chunkHashで名前付きhash更新 | E-06 (行250-252) | ○ |
| C-139 | ModuleLibraryPlugin.constructorの基本動作 | E-07 (行60-65) | ○ |
| C-140 | parseOptionsで名前未設定+export返却 | E-07 (行146-158) | ○ |
| C-141 | parseOptionsで名前設定時エラー | E-07 (行148-152) | ○ |
| C-142 | applyでonDemandExportsGenerationフック登録 | E-07 (行72-104) | ○ |
| C-143 | finishEntryModuleでexport設定時のUsed設定 | E-07 (行112-140) | ○ |
| C-144 | finishEntryModuleでcommonJsモジュール処理 | E-07 (行128-134) | ○ |
| C-145 | finishEntryModuleで_otherExportsInfo.provided=null処理 | E-07 (行132) | ○ |
| C-146 | finishEntryModuleで既知エクスポート処理 | E-07 (行135-137) | ○ |
| C-147 | _analyzeUnknownProvidedExportsでdynamic-reexportのexport * | E-07 (行169-246) | ○ |
| C-148 | _analyzeUnknownProvidedExportsの再帰的解決 | E-07 (行209) | △ |
| C-149 | _analyzeUnknownProvidedExportsでレンダリング済みスキップ | E-07 (行223) | ○ |
| C-150 | renderStartupでexport文生成 | E-07 (行255-409) | ○ |
| C-151 | renderStartupで指定エクスポートのみ出力 | E-07 (行269-276) | ○ |
| C-152 | renderStartupで非同期モジュールのawait追加 | E-07 (行302-305) | ○ |
| C-153 | renderStartupでcommonJs処理 | E-07 (行298-300, 385-387) | ○ |
| C-154 | renderStartupで複合finalNameの処理 | E-07 (行350-373) | ○ |
| C-155 | renderStartupでinlined時のdefinitions利用 | E-07 (行286-287) | △ |
| C-156 | renderModuleContentでfactory+exportsSource追加 | E-07 (行418-435) | ○ |
| C-157 | renderModuleContentでinlinedInIIFE+exportsSource追加 | E-07 (行431) | ○ |
| C-158 | renderModuleContentでfactory/inlinedInIIFE=false時のsource返却 | E-07 (行433-434) | ○ |
| C-159 | ExportPropertyLibraryPlugin.constructorの基本動作 | E-08 (行45-49) | ○ |
| C-160 | parseOptionsでexport返却 | E-08 (行56-60) | ○ |
| C-161 | parseOptionsでexport未設定のundefined返却 | E-08 (行56-60) | ○ |
| C-162 | finishEntryModuleでexport設定時のUsed設定 | E-08 (行68-86) | ○ |
| C-163 | finishEntryModuleでexport未設定時のsetUsedInUnknownWay | E-08 (行81-84) | ○ |
| C-164 | finishEntryModuleで配列exportの先頭要素使用 | E-08 (行75-77) | ○ |
| C-165 | runtimeRequirementsでexports追加 | E-08 (行94-96) | ○ |
| C-166 | renderStartupでexport設定時のプロパティ代入 | E-08 (行105-113) | ○ |
| C-167 | renderStartupで配列exportのネストアクセス | E-08 (行109-110) | ○ |
| C-168 | renderStartupでexport未設定時のsource返却 | E-08 (行106) | ○ |
| C-169 | JsonpLibraryPlugin.constructorの基本動作 | E-09 (行43-47) | ○ |
| C-170 | parseOptionsで文字列名パース | E-09 (行53-64) | ○ |
| C-171 | parseOptionsで非文字列名エラー | E-09 (行55-59) | ○ |
| C-172 | parseOptionsでundefined名エラー | E-09 (行55-59) | ○ |
| C-173 | renderでJSONP関数呼び出しラップ | E-09 (行72-77) | ○ |
| C-174 | renderでcompilation.getPathによる名前解決 | E-09 (行73-75) | ○ |
| C-175 | chunkHashで'JsonpLibraryPlugin'と名前の更新 | E-09 (行86-89) | ○ |

## 4) 不足情報（Unknown / Missing）
- C-148: `_analyzeUnknownProvidedExports`の再帰的処理は、非外部モジュールへのdynamic-reexportを再帰的にたどる挙動であり、ソースコード行209に実装が存在するが、テスト時に複雑なモジュールグラフのモック構成が必要で、実装の詳細な振る舞いの確認が困難
  - 候補：webpack統合テストの参照 / 実際のモジュールグラフ構築テスト / E2Eテスト
- C-155: `renderStartup`のinlinedかつinlinedInIIFEでない場合のdefinitions利用は、実行時コンテキスト（ConcatenatedModuleのコンパイルフック経由）に依存するため、単体テストでのモック構成が必要
  - 候補：ConcatenatedModuleの統合テスト / buildMetaのモック検証

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - AbstractLibraryPlugin, ExportPropertyLibraryPlugin, JsonpLibraryPluginの各テストケースはソースコードから直接導出されており信頼性が高い
- 0: 低リスク - EnableLibraryPluginの各library typeスイッチ分岐は、ソースコードのswitch文から1:1で対応
- 1: 中リスク - UmdLibraryPlugin.renderの複雑な条件分岐（optionalAmdExternalAsGlobal, namedDefine, auxiliaryComment等）は、組み合わせテストの網羅性確認が推奨される
- 1: 中リスク - ModuleLibraryPlugin.renderStartupの多分岐処理（isAsync, treatAsCommonJs, inlined, definition有無等）は組み合わせが多く、追加テストケースの検討を推奨
- 1: 中リスク - SystemLibraryPlugin.renderのsetter生成ロジックは外部モジュール構成に強く依存し、テスト時のモック設計が重要

## 6) レビュアーチェックリスト（最小）
- [ ] AbstractLibraryPluginの抽象メソッドパターン（parseOptions）が各サブクラスで正しくオーバーライドされているか確認
- [ ] EnableLibraryPluginの全library type（var, assign, assign-properties, this, window, self, global, commonjs, commonjs-static, commonjs2, commonjs-module, amd, amd-require, umd, umd2, system, jsonp, module, modern-module）に対応するテストケースが存在するか確認
- [ ] AssignLibraryPlugin.renderStartupの3つのモード（static, copy, assign）が網羅されているか確認
- [ ] UmdLibraryPlugin.renderの条件分岐（optionalAmdExternalAsGlobal有無, names設定有無, namedDefine有無, auxiliaryComment有無）の組み合わせが十分か確認
- [ ] ModuleLibraryPlugin._analyzeUnknownProvidedExportsの再帰解決テストが十分なモック構成で実装可能か確認
- [ ] 各parseOptionsの異常系テストで、エラーメッセージの文字列一致を確認しているか確認
- [ ] 各chunkHashテストで、hash.updateの呼び出し順序が正しいか確認
