---
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-plugin-transform-class-properties 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：98 / 100、根拠なし：2
- 優先レビュー（高）
  1. **C-094**：コメント保持テストはfixtureテストで確認されるが、ユニットテストレベルでの検証方法が不明確
  2. **C-085**：delete this変換は稀なエッジケースで、実際のユースケースでの検証が限定的

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

- E-01: `packages/babel-plugin-transform-class-properties/src/index.ts`（プラグインエントリポイント）
- E-02: `packages/babel-helper-create-class-features-plugin/src/index.ts`（createClassFeaturePlugin関数）
- E-03: `packages/babel-helper-create-class-features-plugin/src/features.ts`（機能フラグ管理）
- E-04: `packages/babel-helper-create-class-features-plugin/src/fields.ts`（フィールド変換ロジック）
- E-05: `packages/babel-helper-create-class-features-plugin/src/misc.ts`（初期化注入・計算キー抽出）
- E-06: `packages/babel-helper-create-class-features-plugin/src/typescript.ts`（TypeScript検証）
- E-07: `packages/babel-plugin-transform-class-properties/test/fixtures/`（Fixtureテスト群）
- E-08: `packages/babel-plugin-transform-class-properties/package.json`（依存関係・設定）

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | プラグインが正常にエクスポートされる | E-01 (line 13-23) | ○ |
| C-002 | api.assertVersionが正しく呼び出される | E-01 (line 14) | ○ |
| C-003 | looseオプションがfalseで正常動作 | E-01 (line 21), E-02 | ○ |
| C-004 | looseオプションがtrueで正常動作 | E-01 (line 21), E-02 | ○ |
| C-005 | looseオプション未指定時undefined | E-01 (line 21) | ○ |
| C-006 | プラグイン名がtransform-class-properties | E-01 (line 17) | ○ |
| C-007 | FEATURES.fieldsが渡される | E-01 (line 20), E-03 (line 7) | ○ |
| C-008 | Classビジターが定義される | E-02 (line 121-286) | ○ |
| C-009 | preフックでenableFeature呼び出し | E-02 (line 111-112) | ○ |
| C-010 | バージョンキーが設定される | E-02 (line 114-119) | ○ |
| C-011 | クラス宣言が正しく変換される | E-02 (line 122-285), E-07 | ○ |
| C-012 | クラス式が正しく変換される | E-02 (line 201-203), E-07 | ○ |
| C-013 | 静的プロパティが正しく変換される | E-02 (line 274-276), E-04 | ○ |
| C-014 | インスタンスプロパティが正しく変換される | E-02 (line 256-269), E-05 | ○ |
| C-015 | 計算プロパティ名が正しく処理される | E-02 (line 234), E-05 (line 169-205) | ○ |
| C-016 | 派生クラスのプロパティ変換 | E-05 (line 98-118) | ○ |
| C-017 | プロパティがない場合スキップ | E-02 (line 197) | ○ |
| C-018 | shouldTransformがfalseでスキップ | E-02 (line 125) | ○ |
| C-019 | 重複プライベートフィールドでエラー | E-02 (line 172-181) | ○ |
| C-020 | 重複プライベートメソッドでエラー | E-02 (line 154-171) | ○ |
| C-021 | 両assumptionが有効でエラー | E-02 (line 68-73) | ○ |
| C-022 | looseモード使用時に警告 | E-02 (line 77-103) | ○ |
| C-023 | enableFeatureで機能有効化 | E-03 (line 30-61) | ○ |
| C-024 | 既に有効な機能は再設定されない | E-03 (line 38-41) | ○ |
| C-025 | looseモード不一致でエラー | E-03 (line 44-60) | ○ |
| C-026 | isLooseで状態取得 | E-03 (line 81-83) | ○ |
| C-027 | publicフィールドでtrue | E-03 (line 104-106, 176-181) | ○ |
| C-028 | privateフィールドでtrue | E-03 (line 107-109, 176-181) | ○ |
| C-029 | フィールドがなくてfalse | E-03 (line 183) | ○ |
| C-030 | デコレータ+privateでエラー | E-03 (line 118-122) | ○ |
| C-031 | デコレータ未有効でエラー | E-03 (line 129-139) | ○ |
| C-032 | privateMethodsが未有効でエラー | E-03 (line 141-146) | ○ |
| C-033 | プライベートフィールドマップ構築 | E-04 (line 32-116) | ○ |
| C-034 | プライベートメソッドマップ構築 | E-04 (line 108-110) | ○ |
| C-035 | getterマップ構築 | E-04 (line 66-84) | ○ |
| C-036 | setterマップ構築 | E-04 (line 85-107) | ○ |
| C-037 | 静的プライベートフィールドマップ | E-04 (line 45) | ○ |
| C-038 | WeakMap初期化ノード生成 | E-04 (line 154-157) | ○ |
| C-039 | WeakSet初期化ノード生成 | E-04 (line 154-157) | ○ |
| C-040 | looseモードでlooseKeyヘルパー | E-04 (line 144-147) | ○ |
| C-041 | privateFieldsAsSymbolsでSymbol | E-04 (line 148-149) | ○ |
| C-042 | プライベート名使用箇所変換 | E-04 (line 771-811) | ○ |
| C-043 | privateNamesMap空で早期リターン | E-04 (line 788) | ○ |
| C-044 | inRHSIsObjectでrhsそのまま | E-04 (line 281-288) | ○ |
| C-045 | checkInRHSヘルパー呼び出し | E-04 (line 287) | ○ |
| C-046 | 静的ノード生成 | E-04 (line 1283, 1525) | ○ |
| C-047 | インスタンスノード生成 | E-04 (line 1284, 1526) | ○ |
| C-048 | pureStaticNodes生成 | E-04 (line 1287, 1528) | ○ |
| C-049 | wrapClass関数返却 | E-04 (line 1530-1567) | ○ |
| C-050 | setPublicClassFieldsでassignment | E-04 (line 962-978) | ○ |
| C-051 | defineProperty使用 | E-04 (line 981-998) | ○ |
| C-052 | spec getハンドラ | E-04 (line 411-519) | ○ |
| C-053 | spec setハンドラ | E-04 (line 530-616) | ○ |
| C-054 | 静的spec getハンドラ | E-04 (line 434-490) | ○ |
| C-055 | 静的spec setハンドラ | E-04 (line 549-592) | ○ |
| C-056 | getterハンドラ | E-04 (line 461-470, 500-505) | ○ |
| C-057 | setterハンドラ | E-04 (line 567-577, 595-602) | ○ |
| C-058 | 読み取り専用エラー | E-04 (line 354-358, 554-565) | ○ |
| C-059 | 書き込み専用エラー | E-04 (line 360-364, 493-499) | ○ |
| C-060 | メソッド呼び出し変換 | E-04 (line 703-708) | ○ |
| C-061 | delete演算子エラー | E-04 (line 716-720) | ○ |
| C-062 | loose getハンドラ | E-04 (line 723-734) | ○ |
| C-063 | loose callハンドラ | E-04 (line 756-758) | ○ |
| C-064 | loose set未実装 | E-04 (line 736-739) | ○ |
| C-065 | 初期化コードがコンストラクタに挿入 | E-05 (line 65-122) | ○ |
| C-066 | コンストラクタがない場合に生成 | E-05 (line 76-92) | ○ |
| C-067 | 派生クラスでsuper()後に挿入 | E-05 (line 98-118) | ○ |
| C-068 | 派生クラスコンストラクタ生成 | E-05 (line 84-87) | ○ |
| C-069 | nodesが空で早期リターン | E-05 (line 72) | ○ |
| C-070 | 計算キー抽出 | E-05 (line 169-205) | ○ |
| C-071 | 定数式最適化 | E-05 (line 191) | ○ |
| C-072 | キーメモ化 | E-05 (line 138-166) | ○ |
| C-073 | UIDリファレンスでundefined | E-05 (line 143-146) | ○ |
| C-074 | TDZチェック | E-05 (line 34-49, 180-186) | ○ |
| C-075 | declareフィールドでエラー | E-06 (line 3-17) | ○ |
| C-076 | definiteフィールドでエラー | E-06 (line 6) | ○ |
| C-077 | 通常フィールドでエラーなし | E-06 (line 6) | ○ |
| C-078 | privateNameVisitorFactory生成 | E-04 (line 179-229) | ○ |
| C-079 | ネストクラス処理 | E-04 (line 191-226) | ○ |
| C-080 | in演算子変換 | E-04 (line 290-345) | ○ |
| C-081 | 静的in演算子変換 | E-04 (line 328-335) | ○ |
| C-082 | loose in演算子 | E-04 (line 315-324) | ○ |
| C-083 | thisコンテキスト変換 | E-04 (line 1137-1165, 1153-1155) | ○ |
| C-084 | new.target変換 | E-04 (line 1157-1164) | ○ |
| C-085 | delete this変換 | E-04 (line 1143-1150) | △ |
| C-086 | 静的ブロック変換 | E-04 (line 1356-1369), E-02 | ○ |
| C-087 | 静的ブロック最適化 | E-04 (line 1360-1361) | ○ |
| C-088 | 分割代入変換 | E-04 (line 618-702) | ○ |
| C-089 | バインドメソッド変換 | E-04 (line 521-528) | ○ |
| C-090 | オプショナル呼び出し変換 | E-04 (line 710-714) | ○ |
| C-091 | クラス名推論 | E-02 (line 202) | ○ |
| C-092 | super処理 | E-04 (line 1319-1336), E-02 | ○ |
| C-093 | name/lengthプロパティ処理 | E-04 (line 1212-1220, 1393-1402) | ○ |
| C-094 | コメント保持 | E-04 (line 1233-1237) | △ |
| C-095 | シャドウ解消 | E-04 (line 263-279) | ○ |
| C-096 | メソッド宣言生成 | E-04 (line 1045-1126) | ○ |
| C-097 | アクセサ変換 | E-04 (line 1072-1093) | ○ |
| C-098 | arguments変換 | E-04 (line 1081-1090) | ○ |
| C-099 | 重複宣言防止 | E-04 (line 1064-1070) | ○ |
| C-100 | クラスバインディング | E-04 (line 1514-1522), E-02 (line 282-284) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-085 (delete this変換)**: この変換は非常に稀なエッジケースで、テストフィクスチャでの検証は存在するが（E-07: test/fixtures/public/delete-this/）、実際のユースケースでの必要性についての根拠が限定的
  - 候補：実際のユーザーからの要望・Issue / ECMAScript仕様書での動作定義

- **C-094 (コメント保持)**: `inheritPropComments`関数の実装は確認できるが、全てのケースでコメントが正しく保持されることの包括的な検証方法が不明確
  - 候補：コメント保持専用のテストフィクスチャ / 変換前後の比較テスト

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: 基本機能（C-001〜C-020）- ソースコードと1対1で対応
- **0 (低リスク)**: ヘルパー関数（C-023〜C-045）- 独立したユニットとしてテスト可能
- **0 (低リスク)**: エラー処理（C-019〜C-032）- 明確なエラー条件がコードに記載
- **1 (中リスク)**: 複合変換（C-079, C-083, C-092）- 複数のコンポーネント連携が必要
- **1 (中リスク)**: エッジケース（C-085, C-093, C-094）- 稀なケースで検証が限定的

## 6) レビュアーチェックリスト（最小）
- [ ] テストID命名規則（UT-TCP-xxx）が一貫していること
- [ ] 対象ファイルパスが実在すること
- [ ] テスト観点（正常系/異常系/境界値）が適切に分類されていること
- [ ] 優先度（高/中/低）がビジネスインパクトに応じて設定されていること
- [ ] 各テストケースの入力値と期待結果が具体的であること
- [ ] privateフィールド/メソッドの変換に関するテストケースが網羅されていること
- [ ] looseモードとspecモードの両方に対するテストケースが含まれていること
- [ ] 派生クラス（extends使用）に対するテストケースが含まれていること
- [ ] TypeScript関連の検証（declare/definite）が含まれていること
- [ ] エラーケース（重複フィールド、未有効機能）が適切にカバーされていること
