---
generated_at: 2026-03-01 06:15:00
metrics:
  claims_total: 50
  claims_with_evidence: 48
  claims_without_evidence: 2
confidence_derived: 0.96
---

# 根拠レポート：babel-plugin-bugfix-safari-class-field-initializer-scope 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：48 / 50、根拠なし：2
- 優先レビュー（高）
  1. **UT-SCI-033（nullノードの挙動）**：コード上明示的なnullチェックはないが、`node: t.Node | null`の型定義と動作推測
  2. **UT-SCI-042（バージョンチェックエラー）**：`REQUIRED_VERSION`マクロの展開結果の確認が必要

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

- E-01: `packages/babel-plugin-bugfix-safari-class-field-initializer-scope/src/index.ts` - メインソースコード
- E-02: `packages/babel-plugin-bugfix-safari-class-field-initializer-scope/package.json` - パッケージ定義
- E-03: `packages/babel-plugin-bugfix-safari-class-field-initializer-scope/README.md` - プラグイン説明
- E-04: `packages/babel-plugin-bugfix-safari-class-field-initializer-scope/test/fixtures/basic/basic/input.mjs` - テスト入力サンプル
- E-05: `packages/babel-plugin-bugfix-safari-class-field-initializer-scope/test/fixtures/basic/basic/output.mjs` - テスト出力サンプル

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

### needsWrapping関数のテストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-SCI-001) | nullリテラルでfalseを返す | E-01 (L6-8: `t.isLiteral(node)`) | ○ |
| C-02 (UT-SCI-002) | 数値リテラルでfalseを返す | E-01 (L6-8: `t.isLiteral(node)`), E-04, E-05 | ○ |
| C-03 (UT-SCI-003) | 文字列リテラルでfalseを返す | E-01 (L6-8: `t.isLiteral(node)`), E-04, E-05 | ○ |
| C-04 (UT-SCI-004) | 真偽値リテラルでfalseを返す | E-01 (L6-8: `t.isLiteral(node)`), E-04, E-05 | ○ |
| C-05 (UT-SCI-005) | 単純テンプレートリテラルでfalseを返す | E-01 (L18-20), E-04, E-05 | ○ |
| C-06 (UT-SCI-006) | 識別子補間テンプレートでtrueを返す | E-01 (L18-20), E-04, E-05 | ○ |
| C-07 (UT-SCI-007) | CallExpression(関数式callee)でfalseを返す | E-01 (L10-16), E-04, E-05 | ○ |
| C-08 (UT-SCI-008) | CallExpression(識別子callee)でtrueを返す | E-01 (L10-16, L69) | ○ |
| C-09 (UT-SCI-009) | CallExpression(識別子引数)でtrueを返す | E-01 (L10-16) | ○ |
| C-10 (UT-SCI-010) | OptionalCallExpression(識別子callee)でtrueを返す | E-01 (L10-16) | ○ |
| C-11 (UT-SCI-011) | NewExpression(識別子callee)でtrueを返す | E-01 (L10-16) | ○ |
| C-12 (UT-SCI-012) | TaggedTemplateExpression(thisタグ)でfalseを返す | E-01 (L22-24), E-04, E-05 | ○ |
| C-13 (UT-SCI-013) | TaggedTemplateExpression(識別子タグ)でtrueを返す | E-01 (L22-24) | ○ |
| C-14 (UT-SCI-014) | 空ArrayExpressionでfalseを返す | E-01 (L26-28), E-04, E-05 | ○ |
| C-15 (UT-SCI-015) | リテラル配列でfalseを返す | E-01 (L26-28), E-04, E-05 | ○ |
| C-16 (UT-SCI-016) | 識別子配列でtrueを返す | E-01 (L26-28), E-04, E-05 | ○ |
| C-17 (UT-SCI-017) | 空ObjectExpressionでfalseを返す | E-01 (L30-43), E-04, E-05 | ○ |
| C-18 (UT-SCI-018) | リテラル値オブジェクトでfalseを返す | E-01 (L30-43), E-04, E-05 | ○ |
| C-19 (UT-SCI-019) | 識別子値オブジェクトでtrueを返す | E-01 (L30-43), E-04, E-05 | ○ |
| C-20 (UT-SCI-020) | computed識別子キーオブジェクトでtrueを返す | E-01 (L35: `prop.computed && needsWrapping(prop.key)`) | ○ |
| C-21 (UT-SCI-021) | ObjectMethodでfalseを返す | E-01 (L38-40) | ○ |
| C-22 (UT-SCI-022) | MemberExpression(this.foo)でfalseを返す | E-01 (L45-50, L60-62), E-04, E-05 | ○ |
| C-23 (UT-SCI-023) | MemberExpression(obj.foo)でtrueを返す | E-01 (L45-50) | ○ |
| C-24 (UT-SCI-024) | computed MemberExpression(this[var])でtrueを返す | E-01 (L48), E-04, E-05 | ○ |
| C-25 (UT-SCI-025) | OptionalMemberExpression(this?.foo)でfalseを返す | E-01 (L45-50), E-04, E-05 | ○ |
| C-26 (UT-SCI-026) | FunctionExpressionでfalseを返す | E-01 (L52-58), E-04, E-05 | ○ |
| C-27 (UT-SCI-027) | ArrowFunctionExpressionでfalseを返す | E-01 (L52-58), E-04, E-05 | ○ |
| C-28 (UT-SCI-028) | ClassExpressionでfalseを返す | E-01 (L52-58), E-04, E-05 | ○ |
| C-29 (UT-SCI-029) | ThisExpressionでfalseを返す | E-01 (L60-62) | ○ |
| C-30 (UT-SCI-030) | リテラルSequenceExpressionでfalseを返す | E-01 (L64-66), E-04, E-05 | ○ |
| C-31 (UT-SCI-031) | 識別子SequenceExpressionでtrueを返す | E-01 (L64-66), E-04, E-05 | ○ |
| C-32 (UT-SCI-032) | Identifierでtrueを返す | E-01 (L69), E-04, E-05 | ○ |
| C-33 (UT-SCI-033) | nullノードでtrueを返す | E-01 (L5: 型定義`node: t.Node | null`) | △ |
| C-34 (UT-SCI-034) | BinaryExpressionでtrueを返す | E-01 (L69: デフォルトcase) | ○ |

### wrapInitializer関数のテストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 (UT-SCI-035) | ラップ必要時IIFEでラップ | E-01 (L72-83), E-04, E-05 | ○ |
| C-36 (UT-SCI-036) | ラップ不要時変更なし | E-01 (L77: `if (value && needsWrapping(value))`), E-04, E-05 | ○ |
| C-37 (UT-SCI-037) | value=nullで変更なし | E-01 (L77: `if (value && ...`) | ○ |
| C-38 (UT-SCI-038) | value=undefinedで変更なし | E-01 (L77: `if (value && ...`) | ○ |
| C-39 (UT-SCI-039) | ClassPrivatePropertyも同様にラップ | E-01 (L95-97) | ○ |

### プラグインのテストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 (UT-SCI-040) | ClassPropertyでwrapInitializer呼び出し | E-01 (L92-94) | ○ |
| C-41 (UT-SCI-041) | ClassPrivatePropertyでwrapInitializer呼び出し | E-01 (L95-97) | ○ |
| C-42 (UT-SCI-042) | 非対応バージョンでエラー | E-01 (L86: `REQUIRED_VERSION`) | △ |
| C-43 (UT-SCI-043) | バージョン7.16.0で正常動作 | E-01 (L86: `"^7.16.0 || ^8.0.0"`) | ○ |
| C-44 (UT-SCI-044) | バージョン8.0.0で正常動作 | E-01 (L86: `"^7.16.0 || ^8.0.0"`) | ○ |
| C-45 (UT-SCI-045) | プラグイン名が正しい | E-01 (L89) | ○ |

### ネスト構造のテストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-46 (UT-SCI-046) | ネストオブジェクト(リテラル)でfalse | E-01 (L30-43: 再帰呼び出し) | ○ |
| C-47 (UT-SCI-047) | ネストオブジェクト(識別子)でtrue | E-01 (L30-43: 再帰呼び出し) | ○ |
| C-48 (UT-SCI-048) | ネスト配列(リテラル)でfalse | E-01 (L26-28: `elements.some(needsWrapping)`) | ○ |
| C-49 (UT-SCI-049) | ネスト配列(識別子)でtrue | E-01 (L26-28: `elements.some(needsWrapping)`) | ○ |
| C-50 (UT-SCI-050) | 複数ClassPropertyすべて処理 | E-01 (L92-94: visitorパターン) | ○ |

## 4) 不足情報（Unknown / Missing）

- **UT-SCI-033（nullノードの挙動）**: 関数の型定義では`node: t.Node | null`となっているが、コード内にnullに対する明示的な処理分岐がない。`t.isLiteral(null)`等の挙動はBabel typesの内部実装に依存。
  - 候補：Babel types (`@babel/types`) のソースコード確認 / 実際のテスト実行
- **UT-SCI-042（バージョンエラー）**: `REQUIRED_VERSION`はビルド時マクロで、展開後の実際の挙動確認が必要。
  - 候補：ビルド成果物の確認 / `@babel/helper-plugin-utils`のソースコード確認

## 5) リスクフラグ（レビュー観点）

- **0: 低リスク** - このプラグインは比較的シンプルで、テストケースも網羅的
- **1: 中リスク** - `REQUIRED_VERSION`マクロの展開確認が必要
- **0: 低リスク** - 既存のテストフィクスチャ（E-04, E-05）で主要な動作が確認済み

## 6) レビュアーチェックリスト（最小）

- [ ] `needsWrapping`関数の各ノードタイプ判定ロジックがテストケースと整合しているか確認
- [ ] テストフィクスチャ（input.mjs/output.mjs）の変換パターンがテストケースに反映されているか確認
- [ ] `REQUIRED_VERSION`マクロの展開後のバージョン文字列を確認
- [ ] プライベートプロパティ（`#prop`）のテストケースが存在するか確認（既存フィクスチャには含まれていない可能性）
- [ ] SpreadElementを含む配列・オブジェクトの挙動を追加検討
