---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 35
  claims_with_evidence: 32
  claims_without_evidence: 3
confidence_derived: 0.91
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.91**
  - 根拠あり：32 / 35、根拠なし：3
- 優先レビュー（高）
  1. **UT-TPM-027（クラス外からのプライベートメソッドアクセス）**：実行時動作の検証が必要
  2. **UT-TPM-035（exfiltrated method）**：フィクスチャテストからの推測
  3. **UT-TPM-008（不正な型のlooseオプション）**：TypeScript型チェック依存のため実動作要確認

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

- E-01: `packages/babel-plugin-transform-private-methods/src/index.ts` - プラグイン本体ソースコード
- E-02: `packages/babel-plugin-transform-private-methods/package.json` - パッケージ定義
- E-03: `packages/babel-helper-plugin-utils/src/index.ts` - declare関数の実装
- E-04: `packages/babel-helper-create-class-features-plugin/src/index.ts` - createClassFeaturePlugin実装
- E-05: `packages/babel-helper-create-class-features-plugin/src/features.ts` - FEATURES定義、enableFeature、isLoose、shouldTransform
- E-06: `packages/babel-plugin-transform-private-methods/test/fixtures/` - テストフィクスチャ群（input.js/output.js/exec.js）
- E-07: `packages/babel-plugin-transform-private-methods/test/fixtures/duplicated-names/` - 重複名テストケース
- E-08: `packages/babel-plugin-transform-private-methods/test/fixtures/private-static-method-loose/` - looseモード静的メソッドテスト
- E-09: `packages/babel-plugin-transform-private-methods/test/fixtures/accessors-loose/` - looseモードアクセサテスト
- E-10: `packages/babel-plugin-transform-private-methods/test/fixtures/private-method-privateFieldsAsProperties/` - privateFieldsAsPropertiesテスト

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-TPM-001) | デフォルトオプションでプラグインが正しく初期化される | E-01 (line 13-22) | ○ |
| C-02 (UT-TPM-002) | loose: falseでプラグインが正しく初期化される | E-01 (line 21), E-04 (line 77-104) | ○ |
| C-03 (UT-TPM-003) | loose: trueでプラグインが正しく初期化される | E-01 (line 21), E-08 | ○ |
| C-04 (UT-TPM-004) | api.assertVersionが正しいバージョン範囲で呼び出される | E-01 (line 14), E-03 (line 84-129) | ○ |
| C-05 (UT-TPM-005) | FEATURES.privateMethodsが正しく設定される | E-01 (line 20), E-05 (line 8) | ○ |
| C-06 (UT-TPM-006) | name: "transform-private-methods"が設定される | E-01 (line 17) | ○ |
| C-07 (UT-TPM-007) | 非対応のBabelバージョンでエラーがスローされる | E-03 (line 84-129) | ○ |
| C-08 (UT-TPM-008) | 不正なlooseオプション型が渡された場合の挙動 | **根拠不足** | △ |
| C-09 (UT-TPM-009) | undefinedのlooseオプションが渡された場合 | E-01 (line 21), E-04 (line 131) | ○ |
| C-10 (UT-TPM-010) | プライベートメソッドを含むクラスが変換される | E-06 (misc/multiple/input.js) | ○ |
| C-11 (UT-TPM-011) | プライベートgetterを含むクラスが変換される | E-09 (basic/input.js) | ○ |
| C-12 (UT-TPM-012) | プライベートsetterを含むクラスが変換される | E-09 (basic/input.js) | ○ |
| C-13 (UT-TPM-013) | プライベートgetter/setter両方を含むクラスが変換される | E-07 (get-set/input.js) | ○ |
| C-14 (UT-TPM-014) | staticプライベートメソッドが変換される | E-08 (basic/input.js) | ○ |
| C-15 (UT-TPM-015) | asyncプライベートメソッドが変換される | E-08 (async/input.js), E-10 (async/input.js) | ○ |
| C-16 (UT-TPM-016) | generatorプライベートメソッドが変換される | E-08 (generator/input.js), E-10 (generator/input.js) | ○ |
| C-17 (UT-TPM-017) | looseモードでシンボルベースの変換が行われる | E-08, E-04 (line 74-76) | ○ |
| C-18 (UT-TPM-018) | 重複したプライベートメソッド名でエラーがスローされる | E-07 (method-method/input.js), E-04 (line 154-184) | ○ |
| C-19 (UT-TPM-019) | getterとメソッドで同名の場合エラーがスローされる | E-07 (get-method/input.js), E-04 (line 155-162) | ○ |
| C-20 (UT-TPM-020) | setterとメソッドで同名の場合エラーがスローされる | E-07 (set-method/input.js), E-04 (line 163-171) | ○ |
| C-21 (UT-TPM-021) | プライベートメソッド内でthisが正しく参照できる | E-08 (this/exec.js) | ○ |
| C-22 (UT-TPM-022) | プライベートメソッド内でsuperが正しく参照できる | E-08 (super/exec.js), E-10 (super/exec.js) | ○ |
| C-23 (UT-TPM-023) | クラス式内のプライベートメソッドが変換される | E-08 (class-expression/input.js), E-10 (class-expression/input.js) | ○ |
| C-24 (UT-TPM-024) | 複数のプライベートメソッドを持つクラスが変換される | E-06 (misc/multiple/input.js) | ○ |
| C-25 (UT-TPM-025) | プライベートメソッドとプライベートフィールドが共存できる | E-10 (before-fields/input.js) | ○ |
| C-26 (UT-TPM-026) | プライベートメソッド呼び出しが正しく変換される | E-08 (basic/output.js), E-04 (line 220-232) | ○ |
| C-27 (UT-TPM-027) | クラス外からのプライベートメソッドアクセスでエラーになる | **根拠不足** | △ |
| C-28 (UT-TPM-028) | コメントが保持される | E-09 (preserve-comments/input.js) | ○ |
| C-29 (UT-TPM-029) | privateFieldsAsPropertiesアサンプションが適用される | E-10, E-04 (line 62) | ○ |
| C-30 (UT-TPM-030) | privateFieldsAsSymbolsアサンプションが適用される | E-04 (line 61) | ○ |
| C-31 (UT-TPM-031) | privateFieldsAsPropertiesとprivateFieldsAsSymbols両方有効でエラー | E-04 (line 68-73) | ○ |
| C-32 (UT-TPM-032) | ネストしたクラスのプライベートメソッドが変換される | E-04 (line 122-125, visitor: Class) | ○ |
| C-33 (UT-TPM-033) | Optionsインターフェースがlooseプロパティを持つ | E-01 (line 9-11) | ○ |
| C-34 (UT-TPM-034) | class-properties未有効でフィールドのみの場合エラーになる | E-05 (line 148-162) | ○ |
| C-35 (UT-TPM-035) | exfiltrated methodが正しく動作する | **根拠不足** | △ |

## 4) 不足情報（Unknown / Missing）
- **UT-TPM-008（不正な型のlooseオプション）**：TypeScript型チェックにより防がれるため、ランタイムでの動作は未検証。実際の動作確認が必要。
  - 候補：TypeScriptコンパイル時エラー / ランタイム型強制 / 予期しない動作
- **UT-TPM-027（クラス外からのプライベートメソッドアクセス）**：構文レベルでのエラーはパーサーが処理。変換後のランタイム動作はヘルパー実装依存。
  - 候補：SyntaxError（パース時） / TypeError（ランタイム） / WeakMapアクセスエラー
- **UT-TPM-035（exfiltrated method）**：フィクスチャディレクトリに`exfiltrated`テストが存在するが、詳細な動作仕様の確認が必要。
  - 候補：正常動作 / thisバインディングエラー / クラスチェックエラー

## 5) リスクフラグ（レビュー観点）
- **1: 中リスク** - UT-TPM-008：型安全性に依存したテストケースのため、ランタイム動作の検証が必要
- **0: 低リスク** - UT-TPM-027：構文エラーとして処理されるため、通常の使用では問題にならない
- **0: 低リスク** - UT-TPM-035：既存フィクスチャテストでカバーされている可能性が高い

## 6) レビュアーチェックリスト（最小）
- [ ] UT-TPM-008：TypeScript型チェックバイパス時の実際の動作を確認
- [ ] UT-TPM-027：変換後コードでの外部アクセス試行時のエラーメッセージを確認
- [ ] UT-TPM-035：exfiltrated/exec.jsの内容と期待動作を確認
- [ ] looseモードとstrictモードの出力差異が正しく検証されているか確認
- [ ] privateFieldsAsPropertiesとprivateFieldsAsSymbolsの排他的制約のエラーメッセージを確認
- [ ] 重複名検出のエラーメッセージフォーマットを確認
