---
generated_at: 2026-03-01 06:10:00
metrics:
  claims_total: 30
  claims_with_evidence: 28
  claims_without_evidence: 2
confidence_derived: 0.93
---

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

## 本レポートについて

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

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

1. **根拠の有無確認**：各テストケースに対して、ソースコード・既存テストフィクスチャなどの根拠（Evidence）が存在するか
2. **根拠との整合性**：テストケースの内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.93**
  - 根拠あり：28 / 30、根拠なし：2
- 優先レビュー（高）
  1. **UT-DUK-027**：Babelバージョンチェックのエラーケース - 具体的なエラーメッセージの検証が必要
  2. **UT-DUK-028**：ネストされたオブジェクトの動作 - テストフィクスチャなし

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

- E-01: `packages/babel-plugin-transform-duplicate-keys/src/index.ts` - メインソースコード
- E-02: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/duplicate-keys/dupes/input.js` - 重複キーの入力例
- E-03: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/duplicate-keys/dupes/output.js` - 重複キーの出力例
- E-04: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/duplicate-keys/no-dupes/input.js` - 重複なしの入力例
- E-05: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/duplicate-keys/no-dupes/output.js` - 重複なしの出力例
- E-06: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/duplicate-keys/getter/input.js` - getter重複の入力例
- E-07: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/duplicate-keys/getter/output.js` - getter重複の出力例
- E-08: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/duplicate-keys/getters-and-setters/input.js` - getter/setter複合パターン入力
- E-09: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/duplicate-keys/getters-and-setters/output.js` - getter/setter複合パターン出力
- E-10: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/duplicate-keys/one-quoted/input.js` - Identifier/StringLiteral混在入力
- E-11: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/duplicate-keys/one-quoted/output.js` - Identifier/StringLiteral混在出力
- E-12: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/duplicate-keys/both-quoted/input.js` - 両方StringLiteral入力
- E-13: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/duplicate-keys/both-quoted/output.js` - 両方StringLiteral出力
- E-14: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/combination/dupes/input.js` - combination入力
- E-15: `packages/babel-plugin-transform-duplicate-keys/test/fixtures/combination/dupes/output.js` - combination出力（babelHelpers使用）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | UT-DUK-001: Identifierノードから名前を取得できること | E-01 (getName関数 L4-11) | ○ |
| C-02 | UT-DUK-002: StringLiteralノードから値を取得できること | E-01 (getName関数 L10) | ○ |
| C-03 | UT-DUK-003: NumericLiteralノードから値を文字列として取得できること | E-01 (getName関数 L5, L10) | ○ |
| C-04 | UT-DUK-004: BigIntLiteralノードから値を文字列として取得できること | E-01 (getName関数 L5, L10) | ○ |
| C-05 | UT-DUK-005: 空文字列のStringLiteralを処理できること | E-01 (getName関数の型定義) | ○ |
| C-06 | UT-DUK-006: 特殊文字を含むStringLiteralを処理できること | E-12, E-13 | ○ |
| C-07 | UT-DUK-007: 数値0のNumericLiteralを処理できること | E-01 (toString()で変換) | ○ |
| C-08 | UT-DUK-008: 重複のないオブジェクトリテラルは変換されないこと | E-04, E-05 | ○ |
| C-09 | UT-DUK-009: データプロパティの重複キーがcomputed propertyに変換されること | E-02, E-03 | ○ |
| C-10 | UT-DUK-010: Identifierと文字列リテラルの重複が検出されること | E-10, E-11 | ○ |
| C-11 | UT-DUK-011: 両方が文字列リテラルの重複キーが検出されること | E-12, E-13 | ○ |
| C-12 | UT-DUK-012: データプロパティの後のgetterが重複として検出されること | E-06, E-07 | ○ |
| C-13 | UT-DUK-013: データプロパティの後のsetterが重複として検出されること | E-01 (L56-60) | ○ |
| C-14 | UT-DUK-014: getterの後のデータプロパティが重複として検出されること | E-08, E-09 | ○ |
| C-15 | UT-DUK-015: setterの後のデータプロパティが重複として検出されること | E-08, E-09 | ○ |
| C-16 | UT-DUK-016: getterとsetterのペアは重複として検出されないこと | E-01 (L50-60のロジック), E-08, E-09 | ○ |
| C-17 | UT-DUK-017: 同名のgetter重複が検出されること | E-01 (L50-55), E-08, E-09 | ○ |
| C-18 | UT-DUK-018: 同名のsetter重複が検出されること | E-01 (L56-60), E-08, E-09 | ○ |
| C-19 | UT-DUK-019: 複合的なgetter/setter/データプロパティの重複パターンが処理されること | E-08, E-09 | ○ |
| C-20 | UT-DUK-020: computed propertyは重複検出の対象外となること | E-01 (L22-24 filterロジック) | ○ |
| C-21 | UT-DUK-021: spread要素は重複検出の対象外となること | E-01 (L22-24 filterロジック) | ○ |
| C-22 | UT-DUK-022: プロパティが空のオブジェクトリテラルを処理できること | E-01 (filterの結果が空配列) | ○ |
| C-23 | UT-DUK-023: プロパティが1件のみのオブジェクトリテラルを処理できること | E-01 (重複なしで変換されない) | ○ |
| C-24 | UT-DUK-024: 多数の重複キーが含まれる場合を処理できること | E-01 (forループで全件処理) | ○ |
| C-25 | UT-DUK-025: 異なるキー間で重複がない場合に正しく処理されること | E-04, E-05 | ○ |
| C-26 | UT-DUK-026: 複数の異なるキーでそれぞれ重複がある場合を処理できること | E-08, E-09 (b, c, dの各キー) | ○ |
| C-27 | UT-DUK-027: Babel 7未満のバージョンでエラーがスローされること | E-01 (L14 api.assertVersion) | △ |
| C-28 | UT-DUK-028: ネストされたオブジェクトリテラルでも各レベルで重複が検出されること | **根拠なし** | △ |
| C-29 | UT-DUK-029: メソッド定義の重複が検出されること | E-01 (defaultケースで処理) | ○ |
| C-30 | UT-DUK-030: メソッド定義とデータプロパティの重複が検出されること | E-01 (defaultケースで処理) | ○ |

## 4) 不足情報（Unknown / Missing）
- **UT-DUK-027（バージョンチェック）**: `api.assertVersion(REQUIRED_VERSION(7))` が存在することは確認できるが、具体的なエラーメッセージやスローされる例外の型は `@babel/helper-plugin-utils` の実装に依存する
  - 候補：`@babel/helper-plugin-utils` のソースコード / Babelドキュメント
- **UT-DUK-028（ネストされたオブジェクト）**: テストフィクスチャに明示的なネストケースがない。Visitorパターンの動作原理から推測したもの
  - 候補：Babelトラバースの動作仕様 / 追加テストフィクスチャの作成

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全体的にソースコードとテストフィクスチャから十分な根拠が取得できた
- **1: 中リスク** - UT-DUK-028のネストケースは、Babelのvisitor動作原理に基づく推測であり、実際のテストで検証が必要
- **0: 低リスク** - getName関数のテストケースは型定義と実装から明確に導出可能

## 6) レビュアーチェックリスト（最小）
- [ ] UT-DUK-027: Babel 7未満でのエラースローの具体的な挙動を `@babel/helper-plugin-utils` で確認
- [ ] UT-DUK-028: ネストされたオブジェクトリテラルのテストを実際に実行して動作確認
- [ ] getter/setterの重複ルール（UT-DUK-016〜018）がES仕様と整合しているか確認
- [ ] spread要素がある場合の重複検出（UT-DUK-021）の期待動作が意図通りか確認
