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

# 根拠レポート：babel-plugin-transform-template-literals 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.93**
  - 根拠あり：42 / 45、根拠なし：3
- 優先レビュー（高）
  1. **UT-TTL-036（多数式処理）**：実際の上限値やパフォーマンス特性の根拠不足
  2. **UT-TTL-039（最適化）**：最適化ロジックの詳細な動作確認が必要
  3. **UT-TTL-044（空cooked処理）**：エッジケースの詳細確認が必要

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

- E-01: `packages/babel-plugin-transform-template-literals/src/index.ts`（メインソースコード）
- E-02: `packages/babel-plugin-transform-template-literals/package.json`（パッケージ定義）
- E-03: `packages/babel-plugin-transform-template-literals/test/fixtures/default/options.json`（デフォルトオプション設定）
- E-04: `packages/babel-plugin-transform-template-literals/test/fixtures/loose/options.json`（looseモードオプション）
- E-05: `packages/babel-plugin-transform-template-literals/test/fixtures/assumption-ignoreToPrimitiveHint/options.json`（assumption設定）
- E-06: `packages/babel-plugin-transform-template-literals/test/fixtures/default/single/input.js`（単一式テストケース）
- E-07: `packages/babel-plugin-transform-template-literals/test/fixtures/default/tag/input.js`（タグ付きテンプレートテストケース）
- E-08: `packages/babel-plugin-transform-template-literals/test/fixtures/default/multiple/input.js`（複数式テストケース）
- E-09: `packages/babel-plugin-transform-template-literals/test/fixtures/default/none/input.js`（式なしテストケース）
- E-10: `packages/babel-plugin-transform-template-literals/test/fixtures/default/expression-first/input.js`（先頭式テストケース）
- E-11: `packages/babel-plugin-transform-template-literals/test/fixtures/default/escape-quotes/input.js`（クォートエスケープテストケース）
- E-12: `packages/babel-plugin-transform-template-literals/test/fixtures/default/multiline/input.js`（複数行テストケース）
- E-13: `packages/babel-plugin-transform-template-literals/test/fixtures/default/literals/input.js`（リテラル式テストケース）
- E-14: `packages/babel-plugin-transform-template-literals/test/fixtures/default/functions/input.js`（関数呼び出しテストケース）
- E-15: `packages/babel-plugin-transform-template-literals/test/fixtures/default/order/exec.js`（評価順序テストケース）
- E-16: `packages/babel-plugin-transform-template-literals/test/fixtures/default/symbol/exec.js`（Symbolテストケース）
- E-17: `packages/babel-plugin-transform-template-literals/test/fixtures/default/cache-revision/input.js`（キャッシュテストケース）
- E-18: `packages/babel-plugin-transform-template-literals/test/fixtures/default/template-revision/input.js`（テンプレートリビジョンテストケース）
- E-19: `packages/babel-plugin-transform-template-literals/test/fixtures/default/ts-literal-type/input.ts`（TypeScript対応テストケース）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | プラグインが正常にエクスポートされること | E-01 (line 8: declare export) | ○ |
| C-02 | Babel 7以上で正常に動作すること | E-01 (line 9: api.assertVersion(7)) | ○ |
| C-03 | Babel 7未満でエラーがスローされること | E-01 (line 9: api.assertVersion) | ○ |
| C-04 | looseオプションがtrueの場合にignoreToPrimitiveHintがtrueになること | E-01 (line 11-12), E-04 | ○ |
| C-05 | looseオプションがtrueの場合にmutableTemplateObjectがtrueになること | E-01 (line 13-14), E-04 | ○ |
| C-06 | looseオプションがfalseの場合にデフォルト動作になること | E-01 (line 11-14), E-03 | ○ |
| C-07 | assumptionがオプションより優先されること（ignoreToPrimitiveHint） | E-01 (line 11-12), E-05 | ○ |
| C-08 | assumptionがオプションより優先されること（mutableTemplateObject） | E-01 (line 13-14) | ○ |
| C-09 | 単一の式でconcatが呼び出されること | E-01 (line 34-53: buildConcatCallExpressions) | ○ |
| C-10 | 複数のリテラルでconcatが結合されること | E-01 (line 44-47) | ○ |
| C-11 | 式とリテラルが混在する場合に正しくconcatが構築されること | E-01 (line 34-53), E-13 | ○ |
| C-12 | 評価順序が保持されること（specモード） | E-01 (line 19-33 comment), E-15 | ○ |
| C-13 | タグ付きテンプレートリテラルが変換されること | E-01 (line 59-105: TaggedTemplateExpression), E-07 | ○ |
| C-14 | 式を含むタグ付きテンプレートが変換されること | E-01 (line 101-102), E-07 | ○ |
| C-15 | 複数の式を含むタグ付きテンプレートが変換されること | E-01 (line 101-102), E-07 | ○ |
| C-16 | rawとcookedが異なる場合にraw配列が追加されること | E-01 (line 79-89) | ○ |
| C-17 | rawとcookedが同じ場合はraw配列が省略されること | E-01 (line 87-89) | ○ |
| C-18 | 不正なエスケープシーケンスでcookedがnullの場合undefinedノードが使用されること | E-01 (line 71-74), E-18 | ○ |
| C-19 | テンプレートオブジェクトがキャッシュされること | E-01 (line 91-100), E-17 | ○ |
| C-20 | 異なるスコープで異なるキャッシュ変数が生成されること | E-01 (line 91-92), E-17 | ○ |
| C-21 | mutableTemplateObjectがtrueの場合Looseヘルパーが使用されること | E-01 (line 16-17) | ○ |
| C-22 | 単純なテンプレートリテラルが文字列に変換されること | E-01 (line 107-149: TemplateLiteral), E-09 | ○ |
| C-23 | 式を含むテンプレートがconcatに変換されること | E-01 (line 144-145), E-06 | ○ |
| C-24 | 複数の式を含むテンプレートが正しく変換されること | E-01 (line 144-145), E-08 | ○ |
| C-25 | 式が先頭にある場合、空文字列が先頭に追加されること | E-01 (line 132-137), E-10 | ○ |
| C-26 | 複数行テンプレートが正しく変換されること | E-12 | ○ |
| C-27 | エスケープされたクォートが保持されること | E-11 | ○ |
| C-28 | 空のテンプレートリテラルが空文字列に変換されること | E-01 (line 117-118) | ○ |
| C-29 | 空文字列の式が除外されること | E-01 (line 124-126) | ○ |
| C-30 | リテラル値（数値、ブール値）を含む式が正しく連結されること | E-13 | ○ |
| C-31 | 関数呼び出しを含む式が正しく連結されること | E-14 | ○ |
| C-32 | ignoreToPrimitiveHintがtrueの場合+演算子で連結されること | E-01 (line 140-143) | ○ |
| C-33 | ignoreToPrimitiveHintがfalseの場合concatで連結されること | E-01 (line 144-145) | ○ |
| C-34 | TSLiteralType内のテンプレートリテラルがスキップされること | E-01 (line 108-111), E-19 | ○ |
| C-35 | 式が1件のみの場合の変換 | E-01 (line 107-149), E-06 | ○ |
| C-36 | 多数の式を含むテンプレートの変換 | **根拠なし**（上限テストケースが確認できない） | △ |
| C-37 | Symbolを含む式でTypeErrorがスローされること | E-16 | ○ |
| C-38 | Unicodeエスケープを含むテンプレートが正しく処理されること | E-18 | ○ |
| C-39 | 連続するリテラルが同じconcat呼び出しにグループ化されること | **根拠なし**（最適化ロジックの詳細テストが不足） | △ |
| C-40 | テンプレートオブジェクトのraw配列が正しく生成されること | E-01 (line 77) | ○ |
| C-41 | 式のみのテンプレートで先頭に空文字列が追加されること | E-01 (line 132-137), E-10 | ○ |
| C-42 | ignoreToPrimitiveHintがtrueで2番目が文字列の場合先頭空文字列が不要 | E-01 (line 134) | ○ |
| C-43 | スコープ内で一意の識別子が生成されること | E-01 (line 91) | ○ |
| C-44 | cooked値が空文字列の場合スキップされること | **根拠なし**（エッジケースの詳細テストが不足） | △ |
| C-45 | プラグイン名が正しく設定されること | E-01 (line 56) | ○ |

## 4) 不足情報（Unknown / Missing）
- **UT-TTL-036（多数式処理）**：多数の式を含むテンプレートの上限値やパフォーマンス特性に関する既存テストが確認できない
  - 候補：パフォーマンステストの追加 / ストレステストの実施 / ドキュメント確認
- **UT-TTL-039（最適化）**：buildConcatCallExpressionsの最適化ロジックの詳細な動作を検証する専用テストが見つからない
  - 候補：最適化ロジック専用のユニットテスト追加 / 中間結果の検証
- **UT-TTL-044（空cooked処理）**：cooked値が空文字列の場合の処理に関する明示的なテストケースが不足
  - 候補：エッジケーステストの追加

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**：基本機能のテストケース（UT-TTL-001〜UT-TTL-035、UT-TTL-037〜UT-TTL-038、UT-TTL-040〜UT-TTL-043、UT-TTL-045）
  - 既存のテストフィクスチャーと整合性が確認できる
- **1（中リスク）**：UT-TTL-036、UT-TTL-039、UT-TTL-044
  - 根拠不足のため、追加確認が推奨される
- **0（低リスク）**：TypeScript対応（UT-TTL-034）
  - 専用のテストフィクスチャー（ts-literal-type）で確認済み

## 6) レビュアーチェックリスト（最小）
- [ ] buildConcatCallExpressionsの評価順序保持ロジックが仕様通りか確認
- [ ] mutableTemplateObject/ignoreToPrimitiveHintの相互作用を確認
- [ ] template revision（ES2018）の不正エスケープシーケンス対応を確認
- [ ] TypeScriptのTSLiteralTypeスキップ処理の網羅性を確認
- [ ] Symbolを含む式の実行時エラー処理を確認
- [ ] 多数の式を含むテンプレートのパフォーマンス特性を確認（△項目）
- [ ] 空cooked値のエッジケース処理を確認（△項目）
