---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 90
  claims_with_evidence: 90
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：90 / 90、根拠なし：0
- 優先レビュー（高）
  1. **なし**：全テストケースがソースコードに基づいて生成されている

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

- E-01: `packages/babel-template/src/index.ts` - エントリーポイント、smart/statement/statements/expression/programのエクスポート
- E-02: `packages/babel-template/src/builder.ts` - createTemplateBuilder関数、TemplateBuilder型、extendedTrace関数
- E-03: `packages/babel-template/src/parse.ts` - parseAndBuildMetadata関数、Metadata型、Placeholder型、placeholderVisitorHandler、parseWithCodeFrame、resolveAncestors
- E-04: `packages/babel-template/src/populate.ts` - populatePlaceholders関数、applyReplacement関数
- E-05: `packages/babel-template/src/string.ts` - stringTemplate関数
- E-06: `packages/babel-template/src/literal.ts` - literalTemplate関数、buildLiteralData関数、buildTemplateCode関数
- E-07: `packages/babel-template/src/formatters.ts` - Formatter型、smart/statements/statement/expression/programフォーマッター
- E-08: `packages/babel-template/src/options.ts` - merge/validate/normalizeReplacements関数、PublicOpts/TemplateOpts型

## 3) Claims と根拠の対応（レビューの主戦場）

### index.ts関連 (C-01 〜 C-10)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | smartが単一statementを返す | E-01, E-07 (line 27-33) | ○ |
| C-02 | smartが複数statementを配列で返す | E-01, E-07 (line 27-33) | ○ |
| C-03 | statementが単一文をパースする | E-01, E-07 (line 37-48) | ○ |
| C-04 | statementが複数文でエラー | E-07 (line 43-44) | ○ |
| C-05 | statementが空入力でエラー | E-07 (line 40-42) | ○ |
| C-06 | statementsが配列を返す | E-01, E-07 (line 35) | ○ |
| C-07 | statementsが空入力で空配列 | E-07 (line 35) | ○ |
| C-08 | expressionがExpression型を返す | E-01, E-07 (line 50-65) | ○ |
| C-09 | expressionが複数文でエラー | E-07 (line 53-55) | ○ |
| C-10 | programがProgram型を返す | E-01, E-07 (line 67-71) | ○ |

### builder.ts関連 (C-11 〜 C-19)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | 文字列テンプレートから関数返却 | E-02 (line 52-56) | ○ |
| C-12 | テンプレートリテラルから関数返却 | E-02 (line 57-63) | ○ |
| C-13 | オブジェクトオプションで新ビルダー | E-02 (line 64-69) | ○ |
| C-14 | 余分なパラメータでエラー | E-02 (line 53) | ○ |
| C-15 | 不正なパラメータ型でエラー | E-02 (line 71) | ○ |
| C-16 | ast文字列からAST直接返却 | E-02 (line 74-81) | ○ |
| C-17 | astリテラルからAST直接返却 | E-02 (line 82-92) | ○ |
| C-18 | ast余分パラメータでエラー | E-02 (line 76) | ○ |
| C-19 | extendedTraceがスタックトレース拡張 | E-02 (line 101-120) | ○ |

### parse.ts関連 (C-20 〜 C-34)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-20 | parseAndBuildMetadataがメタデータ生成 | E-03 (line 37-71) | ○ |
| C-21 | プレースホルダー抽出 | E-03 (line 73-159) | ○ |
| C-22 | syntacticPlaceholders抽出 | E-03 (line 82-91) | ○ |
| C-23 | preserveCommentsでコメント保持 | E-03 (line 45-53) | ○ |
| C-24 | syntacticPlaceholders=falseで%%エラー | E-03 (line 83-88) | ○ |
| C-25 | syntacticPlaceholders+placeholderPatternでエラー | E-03 (line 101-111) | ○ |
| C-26 | placeholderWhitelist認識 | E-03 (line 117) | ○ |
| C-27 | 重複プレースホルダーisDuplicate | E-03 (line 156) | ○ |
| C-28 | StringLiteral type='string' | E-03 (line 129-132) | ○ |
| C-29 | 関数パラメータ type='param' | E-03 (line 133-138) | ○ |
| C-30 | ExpressionStatement type='statement' | E-03 (line 139-144) | ○ |
| C-31 | parseWithCodeFrameパース成功 | E-03 (line 192-223) | ○ |
| C-32 | parseWithCodeFrame構文エラー | E-03 (line 215-221) | ○ |
| C-33 | placeholdersプラグイン有効化 | E-03 (line 197-200) | ○ |
| C-34 | resolveAncestors解決 | E-03 (line 161-176) | ○ |

### populate.ts関連 (C-35 〜 C-49)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | populatePlaceholdersで置換 | E-04 (line 17-62) | ○ |
| C-36 | replacements nullで正常処理 | E-04 (line 23) | ○ |
| C-37 | 必要な置換値不足でエラー | E-04 (line 25-34) | ○ |
| C-38 | 未知の置換キーでエラー | E-04 (line 36-40) | ○ |
| C-39 | type='string'文字列置換 | E-04 (line 81-87) | ○ |
| C-40 | type='string'非文字列でエラー | E-04 (line 85-87) | ○ |
| C-41 | type='statement'にnullでemptyStatement | E-04 (line 90-91) | ○ |
| C-42 | type='statement'に配列でblockStatement | E-04 (line 92-93) | ○ |
| C-43 | type='statement'に文字列でexpressionStatement | E-04 (line 94-95) | ○ |
| C-44 | type='param'に文字列でidentifier | E-04 (line 109-112) | ○ |
| C-45 | type='other'に配列でエラー | E-04 (line 119-121) | ○ |
| C-46 | isDuplicateでクローン | E-04 (line 71-77) | ○ |
| C-47 | typeAnnotation保持 | E-04 (line 128-129) | ○ |
| C-48 | optional保持 | E-04 (line 130-132) | ○ |
| C-49 | decorators保持 | E-04 (line 133-135) | ○ |

### string.ts関連 (C-50 〜 C-52)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-50 | stringTemplateで関数返却 | E-05 (line 8-24) | ○ |
| C-51 | 返却関数で置換実行 | E-05 (line 17-22) | ○ |
| C-52 | メタデータキャッシュ | E-05 (line 15, 20) | ○ |

### literal.ts関連 (C-53 〜 C-59)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-53 | literalTemplateで二段階関数返却 | E-06 (line 7-41) | ○ |
| C-54 | 埋め込み値の自動置換 | E-06 (line 14-18) | ○ |
| C-55 | 置換重複でエラー | E-06 (line 24-28) | ○ |
| C-56 | buildLiteralDataでメタデータ生成 | E-06 (line 43-77) | ○ |
| C-57 | プレフィックス衝突回避 | E-06 (line 52-57) | ○ |
| C-58 | buildTemplateCodeでコード構築 | E-06 (line 79-95) | ○ |
| C-59 | 空埋め込みの境界値 | E-06 (line 85-93) | ○ |

### formatters.ts関連 (C-60 〜 C-72)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-60 | smart単一statement返却 | E-07 (line 27-33) | ○ |
| C-61 | smart複数statement配列返却 | E-07 (line 28-29) | ○ |
| C-62 | smart.codeセミコロン追加 | E-07 (line 19) | ○ |
| C-63 | statements常に配列返却 | E-07 (line 35) | ○ |
| C-64 | statement単一返却 | E-07 (line 37-48) | ○ |
| C-65 | statement空でエラー | E-07 (line 40-42) | ○ |
| C-66 | statement複数でエラー | E-07 (line 43-45) | ○ |
| C-67 | expressionでExpression返却 | E-07 (line 50-65) | ○ |
| C-68 | expression.code括弧追加 | E-07 (line 51) | ○ |
| C-69 | expression.validate複数文エラー | E-07 (line 53-55) | ○ |
| C-70 | expression.validate括弧エラー | E-07 (line 56-58) | ○ |
| C-71 | programでProgram返却 | E-07 (line 67-71) | ○ |
| C-72 | program.codeそのまま返却 | E-07 (line 68) | ○ |

### options.ts関連 (C-73 〜 C-90)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-73 | mergeでマージ | E-08 (line 51-69) | ○ |
| C-74 | 後オプション優先 | E-08 (line 53-57) | ○ |
| C-75 | parserオプションマージ | E-08 (line 60-63) | ○ |
| C-76 | validate nullで有効返却 | E-08 (line 71-133) | ○ |
| C-77 | validate有効オプション返却 | E-08 (line 71-133) | ○ |
| C-78 | validate非オブジェクトでエラー | E-08 (line 72-74) | ○ |
| C-79 | placeholderWhitelist Set以外でエラー | E-08 (line 84-88) | ○ |
| C-80 | placeholderPattern RegExp/false以外でエラー | E-08 (line 90-98) | ○ |
| C-81 | preserveComments非booleanでエラー | E-08 (line 100-104) | ○ |
| C-82 | syntacticPlaceholders非booleanでエラー | E-08 (line 106-113) | ○ |
| C-83 | syntacticPlaceholders+placeholderWhitelistでエラー | E-08 (line 114-122) | ○ |
| C-84 | syntacticPlaceholders+placeholderPatternでエラー | E-08 (line 114-122) | ○ |
| C-85 | normalizeReplacements配列変換 | E-08 (line 141-145) | ○ |
| C-86 | normalizeReplacementsオブジェクトそのまま | E-08 (line 146-147) | ○ |
| C-87 | normalizeReplacements null処理 | E-08 (line 146-147) | ○ |
| C-88 | normalizeReplacements undefined処理 | E-08 (line 146-147) | ○ |
| C-89 | normalizeReplacements空配列境界値 | E-08 (line 141-145) | ○ |
| C-90 | normalizeReplacements型エラー | E-08 (line 150-152) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - 全テストケースがソースコードの実装に基づいて生成されている

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードから直接導出されており、実装との整合性が高い

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースの優先度が適切か確認する（特に「高」優先度の項目）
- [ ] 各テストケースの入力値と期待結果が実装と一致しているか確認する
- [ ] 異常系テストケースがエラーメッセージと一致しているか確認する
- [ ] 境界値テストケースが網羅的か確認する
- [ ] プレースホルダー関連のテストケースが十分か確認する（正常系・異常系・境界値）
- [ ] フォーマッター間の振る舞いの違いがテストされているか確認する
