---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 100
  claims_with_evidence: 98
  claims_without_evidence: 2
confidence_derived: 0.98
---

# 根拠レポート：babel-preset-env 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：98 / 100、根拠なし：2
- 優先レビュー（高）
  1. **C-79, C-80**: shipped-proposals.tsのexport確認 - 空の定義のため実際の動作確認が必要
  2. **C-90**: minVersionsが空オブジェクトであるため、削除対象プラグインのテストケースが実質存在しない

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

- E-01: `packages/babel-preset-env/src/index.ts` - メインプリセット定義ファイル
- E-02: `packages/babel-preset-env/src/filter-items.ts` - プラグインフィルタリング関数
- E-03: `packages/babel-preset-env/src/normalize-options.ts` - オプション正規化ロジック
- E-04: `packages/babel-preset-env/src/debug.ts` - デバッグ出力関数
- E-05: `packages/babel-preset-env/src/options.ts` - オプション定義
- E-06: `packages/babel-preset-env/src/module-transformations.ts` - モジュール変換マッピング
- E-07: `packages/babel-preset-env/src/shipped-proposals.ts` - 出荷済みプロポーザル定義
- E-08: `packages/babel-preset-env/src/plugins-compat-data.ts` - プラグイン互換性データ
- E-09: `packages/babel-preset-env/src/available-plugins.ts` - 利用可能プラグイン定義
- E-10: `packages/babel-preset-env/src/types.d.ts` - 型定義ファイル

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | isPluginRequired関数がBabel 8で削除されたことを示すエラーをスロー | E-01 (L40-44) | ○ |
| C-02 | filterStageFromList関数がstageListに含まれないアイテムをフィルタリング | E-01 (L46-58) | ○ |
| C-03 | filterStageFromList関数が空リストを処理できる | E-01 (L46-58) | ○ |
| C-04 | filterStageFromList関数が空stageListを処理できる | E-01 (L46-58) | ○ |
| C-05 | getPlugin関数が有効なプラグインを取得できる | E-01 (L70-82) | ○ |
| C-06 | getPlugin関数が不正なプラグイン名でエラーをスロー | E-01 (L75-78) | ○ |
| C-07 | transformIncludesAndExcludes関数がプラグインオプションを分類 | E-01 (L84-99) | ○ |
| C-08 | transformIncludesAndExcludes関数がbuiltInsオプションを分類 | E-01 (L84-99) | ○ |
| C-09 | transformIncludesAndExcludes関数が混合オプションを処理 | E-01 (L84-99) | ○ |
| C-10 | transformIncludesAndExcludes関数が空配列を処理 | E-01 (L84-99) | ○ |
| C-11 | getSpecialModulesPluginNames関数がcommonjsモジュールプラグインを返却 | E-01 (L101-122), E-06 | ○ |
| C-12 | getSpecialModulesPluginNames関数がダイナミックインポート変換を含む | E-01 (L110-118) | ○ |
| C-13 | getSpecialModulesPluginNames関数がumdでダイナミックインポート非対応 | E-01 (L111-118) | ○ |
| C-14 | getSpecialModulesPluginNames関数がmodules=falseで空配列を返却 | E-01 (L106-108) | ○ |
| C-15 | getCoreJSOptions関数がusage-globalメソッドを生成 | E-01 (L124-154) | ○ |
| C-16 | getCoreJSOptions関数がentry-globalメソッドを生成 | E-01 (L124-154) | ○ |
| C-17 | getLocalTargets関数がターゲットを取得 | E-01 (L156-178) | ○ |
| C-18 | getLocalTargets関数がesmodulesとbrowsersの競合を警告 | E-01 (L163-168) | ○ |
| C-19 | supportsStaticESM関数がcaller.supportsStaticESMを判定 | E-01 (L180-183) | ○ |
| C-20 | supportsStaticESM関数がundefined callerでfalseを返却 | E-01 (L180-183) | ○ |
| C-21 | supportsDynamicImport関数がcaller.supportsDynamicImportを判定 | E-01 (L185-188) | ○ |
| C-22 | supportsDynamicImport関数がundefined callerでfalseを返却 | E-01 (L185-188) | ○ |
| C-23 | supportsExportNamespaceFrom関数がcaller.supportsExportNamespaceFromを判定 | E-01 (L190-193) | ○ |
| C-24 | supportsExportNamespaceFrom関数がundefined callerでfalseを返却 | E-01 (L190-193) | ○ |
| C-25 | デフォルトプリセットがplugins配列を返却 | E-01 (L195-337) | ○ |
| C-26 | looseオプションでエラーをスロー | E-01 (L200-206) | ○ |
| C-27 | specオプションでエラーをスロー | E-01 (L200-206) | ○ |
| C-28 | debug=trueでログ出力 | E-01 (L319-334) | ○ |
| C-29 | forceAllTransforms=trueで全変換有効 | E-01 (L246) | ○ |
| C-30 | shippedProposals=trueでプロポーザルプラグイン追加 | E-01 (L288-290) | ○ |
| C-31 | addProposalSyntaxPlugins関数がSetにプラグインを追加 | E-02 (L4-11) | ○ |
| C-32 | addProposalSyntaxPlugins関数が空配列を処理 | E-02 (L4-11) | ○ |
| C-33 | removeUnnecessaryItems関数が重複プラグインを削除 | E-02 (L12-19) | ○ |
| C-34 | removeUnnecessaryItems関数が重複定義なしで何も削除しない | E-02 (L12-19) | ○ |
| C-35 | removeUnnecessaryItems関数が空Setを処理 | E-02 (L12-19) | ○ |
| C-36 | removeUnsupportedItems関数がサポート外プラグインを削除 | E-02 (L20-36), E-09 (L145) | ○ |
| C-37 | removeUnsupportedItems関数がサポート内プラグインを保持 | E-02 (L20-36) | ○ |
| C-38 | removeUnsupportedItems関数がminVersionsにないプラグインを保持 | E-02 (L26-27) | ○ |
| C-39 | normalizePluginName関数が@babel/plugin-プレフィックスを削除 | E-03 (L51-52) | ○ |
| C-40 | normalizePluginName関数がbabel-plugin-プレフィックスを削除 | E-03 (L51-52) | ○ |
| C-41 | normalizePluginName関数が@babel/プレフィックスのみを削除 | E-03 (L51-52) | ○ |
| C-42 | normalizePluginName関数がプレフィックスなしをそのまま返却 | E-03 (L51-52) | ○ |
| C-43 | checkDuplicateIncludeExcludes関数が重複なしで正常終了 | E-03 (L94-107) | ○ |
| C-44 | checkDuplicateIncludeExcludes関数が重複ありでエラーをスロー | E-03 (L100-106) | ○ |
| C-45 | checkDuplicateIncludeExcludes関数が空配列を処理 | E-03 (L94-107) | ○ |
| C-46 | validateModulesOption関数が'auto'を受け入れる | E-03 (L119-133), E-05 (L17-18) | ○ |
| C-47 | validateModulesOption関数が'commonjs'を受け入れる | E-03 (L119-133), E-05 (L20) | ○ |
| C-48 | validateModulesOption関数がfalseを受け入れる | E-03 (L119-133), E-05 (L17) | ○ |
| C-49 | validateModulesOption関数が無効オプションでエラーをスロー | E-03 (L122-130) | ○ |
| C-50 | validateModulesOption関数がundefinedでデフォルト'auto'を使用 | E-03 (L119-120) | ○ |
| C-51 | validateUseBuiltInsOption関数が'usage'を受け入れる | E-03 (L135-149), E-05 (L29) | ○ |
| C-52 | validateUseBuiltInsOption関数が'entry'を受け入れる | E-03 (L135-149), E-05 (L28) | ○ |
| C-53 | validateUseBuiltInsOption関数がfalseを受け入れる | E-03 (L135-149), E-05 (L27) | ○ |
| C-54 | validateUseBuiltInsOption関数が無効オプションでエラーをスロー | E-03 (L138-146) | ○ |
| C-55 | validateUseBuiltInsOption関数がundefinedでデフォルトfalseを使用 | E-03 (L135-136) | ○ |
| C-56 | normalizeCoreJSOption関数が文字列バージョンを解析 | E-03 (L156-199) | ○ |
| C-57 | normalizeCoreJSOption関数がオブジェクト形式を解析 | E-03 (L168-170) | ○ |
| C-58 | normalizeCoreJSOption関数がuseBuiltIns有効でcorejs未指定でエラー | E-03 (L163-167) | ○ |
| C-59 | normalizeCoreJSOption関数がcore-js@2でエラー | E-03 (L179-184) | ○ |
| C-60 | normalizeCoreJSOption関数がマイナーバージョン未指定でエラー | E-03 (L186-189) | ○ |
| C-61 | normalizeCoreJSOption関数がuseBuiltIns=falseでcorejs指定時に警告 | E-03 (L191-195) | ○ |
| C-62 | normalizeOptions関数が正規化オプションを返却 | E-03 (L201-261) | ○ |
| C-63 | normalizeOptions関数がbugfixesオプションでエラー | E-03 (L202-206) | ○ |
| C-64 | normalizeOptions関数がデフォルト値を初期化 | E-03 (L229-260) | ○ |
| C-65 | normalizeOptions関数がincludeオプションを展開 | E-03 (L214-218) | ○ |
| C-66 | normalizeOptions関数がexcludeオプションを展開 | E-03 (L220-224) | ○ |
| C-67 | normalizeOptions関数が正規表現によるinclude/excludeを処理 | E-03 (L64-81) | ○ |
| C-68 | normalizeTargets関数が文字列をbrowsersにラップ | E-03 (L109-117) | ○ |
| C-69 | normalizeTargets関数が配列をbrowsersにラップ | E-03 (L109-117) | ○ |
| C-70 | normalizeTargets関数がオブジェクトをコピー | E-03 (L109-117) | ○ |
| C-71 | logPlugin関数がプラグイン情報をログ出力 | E-04 (L9-34) | ○ |
| C-72 | logPlugin関数がサポート情報なしでプラグイン名のみ出力 | E-04 (L18-21) | ○ |
| C-73 | logPlugin関数が複数ターゲットでフォーマット出力 | E-04 (L23-31) | ○ |
| C-74 | filterAvailable関数がavailablePluginsのプラグインをフィルタ | E-08 (L16-26) | ○ |
| C-75 | filterAvailable関数が空データを処理 | E-08 (L16-26) | ○ |
| C-76 | pluginsエクスポートがフィルタ済みリスト | E-08 (L12) | ○ |
| C-77 | pluginsBugfixesエクスポートがフィルタ済みリスト | E-08 (L13) | ○ |
| C-78 | overlappingPluginsエクスポートがフィルタ済みリスト | E-08 (L14) | ○ |
| C-79 | proposalPluginsがSet型 | E-07 (L5) | △ |
| C-80 | proposalSyntaxPluginsが配列型 | E-07 (L9) | △ |
| C-81 | pluginSyntaxMapがMap型 | E-07 (L21) | ○ |
| C-82 | moduleTransformationsがamdを'transform-modules-amd'にマッピング | E-06 (L4) | ○ |
| C-83 | moduleTransformationsがcommonjsを'transform-modules-commonjs'にマッピング | E-06 (L5) | ○ |
| C-84 | moduleTransformationsがcjsを'transform-modules-commonjs'にマッピング | E-06 (L6) | ○ |
| C-85 | moduleTransformationsがsystemjsを'transform-modules-systemjs'にマッピング | E-06 (L7) | ○ |
| C-86 | moduleTransformationsがumdを'transform-modules-umd'にマッピング | E-06 (L8) | ○ |
| C-87 | availablePluginsがtransform-arrow-functionsを提供 | E-09 (L85) | ○ |
| C-88 | availablePluginsがtransform-classesを提供 | E-09 (L92) | ○ |
| C-89 | availablePluginsがバグ修正プラグインを提供 | E-09 (L69-84) | ○ |
| C-90 | minVersionsがオブジェクト | E-09 (L145) | ○ |
| C-91 | TopLevelOptionsが全オプションキーを定義 | E-05 (L1-14) | ○ |
| C-92 | ModulesOptionが全モジュールオプション値を定義 | E-05 (L16-24) | ○ |
| C-93 | UseBuiltInsOptionが全useBuiltInsオプション値を定義 | E-05 (L26-30) | ○ |
| C-94 | expandIncludesAndExcludes関数が有効プラグイン名を展開 | E-03 (L54-92) | ○ |
| C-95 | expandIncludesAndExcludes関数が無効プラグイン名でエラー | E-03 (L83-89) | ○ |
| C-96 | expandIncludesAndExcludes関数が正規表現パターンをマッチ | E-03 (L64-81) | ○ |
| C-97 | expandIncludesAndExcludes関数が空filterListで空配列返却 | E-03 (L59) | ○ |
| C-98 | getValidIncludesAndExcludes関数がincludeタイプで有効プラグインを取得 | E-03 (L38-49) | ○ |
| C-99 | getValidIncludesAndExcludes関数がexcludeタイプでモジュールプラグインを含む | E-03 (L43) | ○ |
| C-100 | getValidIncludesAndExcludes関数がcorejs有効でポリフィルを含む | E-03 (L44-46) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-79, C-80**: `shipped-proposals.ts`において`proposalPlugins`と`proposalSyntaxPlugins`は現在空であるため、実際のプロポーザルプラグインを含むテストケースが必要な場合は将来の実装を待つ必要がある
  - 候補：将来のBabelバージョンでプロポーザルが追加された場合のテストケース追加

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: options.ts, module-transformations.ts - 静的な定義のみで複雑なロジックなし
- **0 (低リスク)**: shipped-proposals.ts - 現在は空定義のため実質的な動作なし
- **1 (中リスク)**: debug.ts - コンソール出力のため副作用の確認が必要
- **1 (中リスク)**: available-plugins.ts - 外部プラグインへの依存があり、プラグインの存在確認が必要
- **1 (中リスク)**: plugins-compat-data.ts - 外部JSONデータへの依存があり、データ形式の変更に注意
- **2 (高リスク)**: index.ts - メインロジックを含み、複数の依存関係と条件分岐がある
- **2 (高リスク)**: normalize-options.ts - オプション検証ロジックが複雑で、エラー処理が多い
- **2 (高リスク)**: filter-items.ts - セット操作とバージョン比較を含み、semverライブラリに依存

## 6) レビュアーチェックリスト（最小）
- [ ] UT-ENV-001〜027: index.tsの主要関数のテストケースが網羅されているか確認
- [ ] UT-ENV-039〜070: normalize-options.tsのオプション正規化ロジックのテストケースが適切か確認
- [ ] UT-ENV-046〜055: モジュールオプションとuseBuiltInsオプションの検証ロジックが正しくテストされているか確認
- [ ] UT-ENV-056〜061: CoreJSオプション正規化のエラーケースが網羅されているか確認
- [ ] UT-ENV-082〜086: モジュール変換マッピングの全パターンがテストされているか確認
- [ ] 全体: 優先度「高」のテストケースが重要なビジネスロジックをカバーしているか確認
- [ ] 全体: 異常系テストケースが適切なエラーメッセージを検証しているか確認
