---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 26
  claims_with_evidence: 24
  claims_without_evidence: 2
confidence_derived: 0.92
---

# 根拠レポート：babel-plugin-transform-proto-to-assign 単体テストケース一覧

## 本レポートについて

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

### チェック方法
以下の観点でテストケースの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各テストケースに対して、ソースコード・既存テストフィクスチャなどの根拠（Evidence）が存在するか
2. **根拠との整合性**：テストケースの内容が根拠と矛盾していないか
3. **網羅性**：対象モジュールの関数・メソッドを適切にカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.92**
  - 根拠あり：24 / 26、根拠なし：2
- 優先レビュー（高）
  1. **UT-PTA-023**：SpreadElementとの共存テストは既存フィクスチャに無い
  2. **UT-PTA-026**：Babel 6環境でのエラー動作は推測に基づく

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

- E-01: `packages/babel-plugin-transform-proto-to-assign/src/index.ts` - メインソースファイル
- E-02: `packages/babel-plugin-transform-proto-to-assign/test/fixtures/proto-to-assign/assignment-expression/input.js` - 代入式テストフィクスチャ入力
- E-03: `packages/babel-plugin-transform-proto-to-assign/test/fixtures/proto-to-assign/assignment-expression/output.js` - 代入式テストフィクスチャ出力
- E-04: `packages/babel-plugin-transform-proto-to-assign/test/fixtures/proto-to-assign/assignment-statement/input.js` - 代入文テストフィクスチャ入力
- E-05: `packages/babel-plugin-transform-proto-to-assign/test/fixtures/proto-to-assign/assignment-statement/output.js` - 代入文テストフィクスチャ出力
- E-06: `packages/babel-plugin-transform-proto-to-assign/test/fixtures/proto-to-assign/object-literal/input.js` - オブジェクトリテラルテストフィクスチャ入力
- E-07: `packages/babel-plugin-transform-proto-to-assign/test/fixtures/proto-to-assign/object-literal/output.js` - オブジェクトリテラルテストフィクスチャ出力

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | isProtoKeyが__proto__キーを検出する | E-01 (L7-14) | ○ |
| C-02 | isProtoKeyがcomputed keyを検出する | E-01 (L10) | ○ |
| C-03 | isProtoKeyが通常のキーでfalseを返す | E-01 (L7-14) | ○ |
| C-04 | isProtoKeyがSpreadElementでfalseを返す | E-01 (L9) | ○ |
| C-05 | isProtoAssignmentExpressionが__proto__代入を検出 | E-01 (L16-26) | ○ |
| C-06 | isProtoAssignmentExpressionがcomputed propertyを検出 | E-01 (L22-23) | ○ |
| C-07 | isProtoAssignmentExpressionが通常プロパティでfalseを返す | E-01 (L16-26) | ○ |
| C-08 | isProtoAssignmentExpressionがMemberExpression以外でfalse | E-01 (L21) | ○ |
| C-09 | buildDefaultsCallExpressionがdefaults helperを生成 | E-01 (L28-40) | ○ |
| C-10 | buildDefaultsCallExpressionの引数が正しい | E-01 (L34-38) | ○ |
| C-11 | AssignmentExpression visitorが__proto__代入を変換 | E-01 (L46-75), E-02, E-03 | ○ |
| C-12 | ネストしたオブジェクトの変換 | E-02 (L3), E-03 (L3) | ○ |
| C-13 | 関数呼び出し結果への代入の変換 | E-02 (L5), E-03 (L4) | ○ |
| C-14 | 非__proto__代入式は変換しない | E-01 (L47) | ○ |
| C-15 | ExpressionStatementでの__proto__代入変換 | E-01 (L77-85), E-04, E-05 | ○ |
| C-16 | =以外の演算子は変換しない | E-01 (L79) | ○ |
| C-17 | 非AssignmentExpressionは変換しない | E-01 (L79) | ○ |
| C-18 | ObjectExpressionの__proto__キー変換 | E-01 (L88-108), E-06, E-07 | ○ |
| C-19 | __proto__と他プロパティの変換 | E-06 (L5-8), E-07 (L2-4) | ○ |
| C-20 | __proto__が先頭にある場合の変換 | E-06 (L10-13), E-07 (L5-7) | ○ |
| C-21 | __proto__なしオブジェクトは変換しない | E-01 (L103) | ○ |
| C-22 | 空オブジェクトは変換しない | E-01 (L103) | ○ |
| C-23 | SpreadElementとの共存 | **根拠なし** | △ |
| C-24 | プラグイン名が正しい | E-01 (L43) | ○ |
| C-25 | Babel 7で動作する | E-01 (L5) | ○ |
| C-26 | Babel 7未満でエラー | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- **SpreadElementを含むオブジェクトでの__proto__検出**（UT-PTA-023）
  - ソースコード上はSpreadElementをスキップするロジックが存在（L9）
  - しかし、SpreadElementと__proto__が混在するケースのテストフィクスチャがない
  - 候補：手動テスト / 追加フィクスチャ作成

- **Babel 6環境でのエラー動作**（UT-PTA-026）
  - `api.assertVersion(REQUIRED_VERSION(7))` の動作は@babel/helper-plugin-utilsに依存
  - Babel 6環境での実際のエラーメッセージは未確認
  - 候補：@babel/helper-plugin-utilsのドキュメント確認

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 本プラグインは単純な構文変換を行うのみで、セキュリティ上の影響は限定的
- **1: 中リスク** - __proto__プロパティの変換はプロトタイプチェーンに影響を与えるため、変換後のコードの動作に注意が必要
- **注意点**: babelHelpers.defaults および babelHelpers.extends の実装に依存するため、ヘルパー関数の挙動も確認が必要

## 6) レビュアーチェックリスト（最小）
- [ ] isProtoKey関数のテストケース（UT-PTA-001〜004）が関数の全分岐をカバーしているか確認
- [ ] isProtoAssignmentExpression関数のテストケース（UT-PTA-005〜008）が関数の全分岐をカバーしているか確認
- [ ] 既存フィクスチャ（assignment-expression, assignment-statement, object-literal）の変換パターンが網羅されているか確認
- [ ] SpreadElementとの共存テスト（UT-PTA-023）の必要性を判断
- [ ] computed key（`["__proto__"]`形式）のテストが十分か確認
