---
generated_at: 2026-03-01 06:30:00
metrics:
  claims_total: 60
  claims_with_evidence: 58
  claims_without_evidence: 2
confidence_derived: 0.97
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：58 / 60、根拠なし：2
- 優先レビュー（高）
  1. **UT-TPL-038**：メソッド定義の変換動作はソースコードから直接読み取れないため、ObjectMethodとObjectPropertyの区別の確認が必要
  2. **UT-TPL-052**：バージョンエラーの詳細な挙動は@babel/helper-plugin-utilsの実装に依存

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

- E-01: `packages/babel-plugin-transform-property-literals/src/index.ts` - プラグインのメインソースコード
- E-02: `packages/babel-plugin-transform-property-literals/test/fixtures/property-literals/property-literals/input.js` - テスト入力ファイル
- E-03: `packages/babel-plugin-transform-property-literals/test/fixtures/property-literals/property-literals/output.js` - テスト期待出力ファイル
- E-04: `packages/babel-plugin-transform-property-literals/package.json` - パッケージ定義
- E-05: `packages/babel-plugin-transform-property-literals/README.md` - プラグイン説明文書
- E-06: `packages/babel-types/src/validators/isValidES3Identifier.ts` - ES3識別子検証関数
- E-07: `packages/babel-types/src/validators/isValidIdentifier.ts` - 識別子検証関数

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | プラグインが正しく初期化されること | E-01 (L4-5: `declare(api => { api.assertVersion(...)`) | ○ |
| C-02 | プラグイン名が正しく設定されること | E-01 (L8: `name: "transform-property-literals"`) | ○ |
| C-03 | ES3予約語defaultが変換されること | E-01 (L14-20), E-06 (ES3予約語リスト) | ○ |
| C-04 | ES3予約語abstractが変換されること | E-06 (L4: `"abstract"`) | ○ |
| C-05 | ES3予約語booleanが変換されること | E-06 (L5: `"boolean"`) | ○ |
| C-06 | ES3予約語byteが変換されること | E-06 (L6: `"byte"`) | ○ |
| C-07 | ES3予約語charが変換されること | E-06 (L7: `"char"`) | ○ |
| C-08 | ES3予約語doubleが変換されること | E-06 (L8: `"double"`) | ○ |
| C-09 | ES3予約語enumが変換されること | E-06 (L9: `"enum"`) | ○ |
| C-10 | ES3予約語finalが変換されること | E-06 (L10: `"final"`) | ○ |
| C-11 | ES3予約語floatが変換されること | E-06 (L11: `"float"`) | ○ |
| C-12 | ES3予約語gotoが変換されること | E-06 (L12: `"goto"`) | ○ |
| C-13 | ES3予約語implementsが変換されること | E-06 (L13: `"implements"`) | ○ |
| C-14 | ES3予約語intが変換されること | E-06 (L14: `"int"`) | ○ |
| C-15 | ES3予約語interfaceが変換されること | E-06 (L15: `"interface"`) | ○ |
| C-16 | ES3予約語longが変換されること | E-06 (L16: `"long"`) | ○ |
| C-17 | ES3予約語nativeが変換されること | E-06 (L17: `"native"`) | ○ |
| C-18 | ES3予約語packageが変換されること | E-06 (L18: `"package"`) | ○ |
| C-19 | ES3予約語privateが変換されること | E-06 (L19: `"private"`) | ○ |
| C-20 | ES3予約語protectedが変換されること | E-06 (L20: `"protected"`) | ○ |
| C-21 | ES3予約語publicが変換されること | E-06 (L21: `"public"`) | ○ |
| C-22 | ES3予約語shortが変換されること | E-06 (L22: `"short"`) | ○ |
| C-23 | ES3予約語staticが変換されること | E-06 (L23: `"static"`) | ○ |
| C-24 | ES3予約語synchronizedが変換されること | E-06 (L24: `"synchronized"`) | ○ |
| C-25 | ES3予約語throwsが変換されること | E-06 (L25: `"throws"`) | ○ |
| C-26 | ES3予約語transientが変換されること | E-06 (L26: `"transient"`) | ○ |
| C-27 | ES3予約語volatileが変換されること | E-06 (L27: `"volatile"`) | ○ |
| C-28 | 数字で始まるプロパティキーが変換されること | E-01 (L17: `!t.isValidES3Identifier(key.name)`), E-07 (isIdentifierName使用) | ○ |
| C-29 | 特殊文字を含むプロパティキーが変換されること | E-01 (L17), E-07 | ○ |
| C-30 | 通常の識別子は変換されないこと | E-02, E-03 (fooBarが変換されていない) | ○ |
| C-31 | アンダースコアで始まる識別子は変換されないこと | E-07 (isIdentifierNameの仕様) | ○ |
| C-32 | ドル記号で始まる識別子は変換されないこと | E-07 (isIdentifierNameの仕様) | ○ |
| C-33 | 既に文字列リテラルのキーは変換されないこと | E-01 (L16: `t.isIdentifier(key)`) | ○ |
| C-34 | computed propertyは変換されないこと | E-01 (L15: `!node.computed`) | ○ |
| C-35 | 数値リテラルのキーは変換されないこと | E-01 (L16: `t.isIdentifier(key)`) | ○ |
| C-36 | 複数プロパティで該当するもののみ変換されること | E-01 (visitor構造), E-02, E-03 | ○ |
| C-37 | ネストしたオブジェクトでも変換されること | E-01 (visitor.ObjectPropertyがすべてのObjectPropertyを訪問) | ○ |
| C-38 | メソッド定義のプロパティキーが変換されること | **根拠なし** - ObjectMethodとObjectPropertyの区別の確認が必要 | △ |
| C-39 | ゲッターのプロパティキーが変換されること | E-01 (ObjectPropertyのみを対象) | ○ |
| C-40 | セッターのプロパティキーが変換されること | E-01 (ObjectPropertyのみを対象) | ○ |
| C-41 | ショートハンドプロパティで予約語が変換されること | E-01 (L17: key.nameを使用) | ○ |
| C-42 | ES5予約語classが変換されること | E-07 (isKeyword関数で判定) | ○ |
| C-43 | ES5予約語letが変換されること | E-07 (isStrictReservedWord関数で判定) | ○ |
| C-44 | ES5予約語constが変換されること | E-07 (isKeyword関数で判定) | ○ |
| C-45 | ES5予約語yieldが変換されること | E-07 (isStrictReservedWord関数で判定) | ○ |
| C-46 | ES5予約語awaitが変換されること | E-07 (L18-19: awaitは常に予約語扱い) | ○ |
| C-47 | 空のオブジェクトは何も変換されないこと | E-01 (ObjectPropertyがない場合は訪問されない) | ○ |
| C-48 | 1文字の有効な識別子は変換されないこと | E-07 (isIdentifierName) | ○ |
| C-49 | アンダースコアのみは変換されないこと | E-07 (isIdentifierName) | ○ |
| C-50 | ドル記号のみは変換されないこと | E-07 (isIdentifierName) | ○ |
| C-51 | Unicode識別子は変換されないこと | E-07 (isIdentifierName - Unicode対応) | ○ |
| C-52 | Babel 7未満でエラーが発生すること | **根拠不足** - assertVersionの実装詳細は@babel/helper-plugin-utilsに依存 | △ |
| C-53 | スプレッドプロパティは影響を受けないこと | E-01 (SpreadElementは別ノードタイプ) | ○ |
| C-54 | nullを値として持つプロパティが変換されること | E-01 (値の型は判定に影響しない) | ○ |
| C-55 | undefinedを値として持つプロパティが変換されること | E-01 (値の型は判定に影響しない) | ○ |
| C-56 | オブジェクトを値として持つプロパティが変換されること | E-01 (値の型は判定に影響しない) | ○ |
| C-57 | 配列を値として持つプロパティが変換されること | E-01 (値の型は判定に影響しない) | ○ |
| C-58 | 関数を値として持つプロパティが変換されること | E-01 (値の型は判定に影響しない) | ○ |
| C-59 | アロー関数を値として持つプロパティが変換されること | E-01 (値の型は判定に影響しない) | ○ |
| C-60 | テンプレートリテラルを値として持つプロパティが変換されること | E-01 (値の型は判定に影響しない) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-38（メソッド定義）**: BabelのASTでは、メソッド定義（`{ foo() {} }`）は`ObjectMethod`として扱われるため、`ObjectProperty`のvisitorでは処理されない可能性がある。実際の動作はBabelのパーサー実装に依存するため、実行時テストで確認が必要。
  - 候補：`@babel/parser`のドキュメント / AST Explorer での確認 / 実行時テスト
- **C-52（バージョンエラー）**: `assertVersion`の正確なエラーメッセージと挙動は`@babel/helper-plugin-utils`の実装に依存。
  - 候補：`packages/babel-helper-plugin-utils/src/index.ts` の確認

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - プラグインの機能は非常にシンプルで、ソースコードが26行のみ
- **0: 低リスク** - 既存のfixtureテストが存在し、基本的な変換動作は確認済み
- **1: 中リスク** - ObjectMethodとObjectPropertyの区別について、ASTの詳細な理解が必要

## 6) レビュアーチェックリスト（最小）
- [ ] ES3予約語（28個）がすべて網羅されているか確認
- [ ] テストフィクスチャ（input.js / output.js）の内容と生成されたテストケースの整合性を確認
- [ ] ObjectMethodとObjectPropertyの区別について、実際のBabelの動作を確認
- [ ] 既存のテストケースでカバーされていない境界値ケースの妥当性を確認
- [ ] @babel/helper-plugin-utilsのassertVersionの動作を確認（C-52）
