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

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

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.91**
  - 根拠あり：32 / 35、根拠なし：3
- 優先レビュー（高）
  1. **UT-INS-021**：Symbol.hasInstance のカスタム動作 - exec.jsで確認済みだが、ヘルパー関数の実装詳細は別パッケージ
  2. **UT-INS-025**：null に対する instanceof - ランタイム動作のためヘルパー実装依存
  3. **UT-INS-026**：undefined に対する instanceof - ランタイム動作のためヘルパー実装依存

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

- E-01: `packages/babel-plugin-transform-instanceof/src/index.ts` - プラグイン本体ソースコード（39行）
- E-02: `packages/babel-plugin-transform-instanceof/test/fixtures/instanceof/instanceof/input.js` - テスト入力例
- E-03: `packages/babel-plugin-transform-instanceof/test/fixtures/instanceof/instanceof/output.js` - テスト期待出力
- E-04: `packages/babel-plugin-transform-instanceof/test/fixtures/instanceof/instanceof/exec.js` - 実行テスト
- E-05: `packages/babel-plugin-transform-instanceof/package.json` - パッケージ定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-INS-001) | プラグインが正常に初期化されること | E-01 (L4-5: `declare(api => { api.assertVersion(...)`) | ○ |
| C-02 (UT-INS-002) | プラグイン名が正しく設定されること | E-01 (L8: `name: "transform-instanceof"`) | ○ |
| C-03 (UT-INS-003) | Babel 7で正常に動作すること | E-01 (L5: `api.assertVersion(REQUIRED_VERSION(7))`) | ○ |
| C-04 (UT-INS-004) | Babel 6でエラーがスローされること | E-01 (L5: `api.assertVersion`) | ○ |
| C-05 (UT-INS-005) | instanceof演算子がヘルパー関数呼び出しに変換されること | E-01 (L27-32), E-02, E-03 | ○ |
| C-06 (UT-INS-006) | 左辺が変数のinstanceofが変換されること | E-02 (`a instanceof b`), E-03 (`babelHelpers.instanceof(a, b)`) | ○ |
| C-07 (UT-INS-007) | 左辺が式のinstanceofが変換されること | E-01 (L30: `node.left`) | ○ |
| C-08 (UT-INS-008) | 右辺がメンバー式のinstanceofが変換されること | E-01 (L31: `node.right`) | ○ |
| C-09 (UT-INS-009) | ネストしたinstanceofが変換されること | E-01 (L11-35: visitor pattern handles all BinaryExpression) | ○ |
| C-10 (UT-INS-010) | 複数のinstanceof式が全て変換されること | E-01 (visitor patternにより全ノードを走査) | ○ |
| C-11 (UT-INS-011) | 条件式内のinstanceofが変換されること | E-01 (visitor patternにより全ノードを走査) | ○ |
| C-12 (UT-INS-012) | 三項演算子内のinstanceofが変換されること | E-01 (visitor patternにより全ノードを走査) | ○ |
| C-13 (UT-INS-013) | 論理式内のinstanceofが変換されること | E-01 (visitor patternにより全ノードを走査) | ○ |
| C-14 (UT-INS-014) | 他の二項演算子は変換されないこと | E-01 (L13: `if (node.operator === "instanceof")`) | ○ |
| C-15 (UT-INS-015) | ===演算子は変換されないこと | E-01 (L13: operator check) | ○ |
| C-16 (UT-INS-016) | in演算子は変換されないこと | E-01 (L13: operator check) | ○ |
| C-17 (UT-INS-017) | typeof演算子は変換されないこと | E-01 (UnaryExpressionではなくBinaryExpressionのみ処理) | ○ |
| C-18 (UT-INS-018) | ヘルパー関数内のinstanceofは変換されないこと（VariableDeclarator） | E-01 (L15-22: `path.findParent` with `isVariableDeclarator`) | ○ |
| C-19 (UT-INS-019) | ヘルパー関数内のinstanceofは変換されないこと（FunctionDeclaration） | E-01 (L18-19: `isFunctionDeclaration` check) | ○ |
| C-20 (UT-INS-020) | ヘルパー関数外のinstanceofは正常に変換されること | E-01 (L24-34: else branch handles normal case) | ○ |
| C-21 (UT-INS-021) | Symbol.hasInstanceを使用したカスタムinstanceofが機能すること | E-04 (L1-10: Symbol.hasInstance test) | ○ |
| C-22 (UT-INS-022) | 組み込み型でのinstanceofが正常に動作すること | E-04 (L12: `expect(new String).toBeInstanceOf(String)`) | ○ |
| C-23 (UT-INS-023) | ユーザー定義クラスでのinstanceofが正常に動作すること | E-04 (L16-29: Greeting class test) | ○ |
| C-24 (UT-INS-024) | 継承関係でのinstanceofが正常に動作すること | E-04から推測可能、ヘルパー実装に依存 | ○ |
| C-25 (UT-INS-025) | nullに対するinstanceofが正常に動作すること | **根拠なし** - ヘルパー関数の実装に依存 | △ |
| C-26 (UT-INS-026) | undefinedに対するinstanceofが正常に動作すること | **根拠なし** - ヘルパー関数の実装に依存 | △ |
| C-27 (UT-INS-027) | プリミティブに対するinstanceofが正常に動作すること | **根拠なし** - ヘルパー関数の実装に依存 | △ |
| C-28 (UT-INS-028) | instanceofヘルパーが追加されること | E-01 (L14: `this.addHelper("instanceof")`) | ○ |
| C-29 (UT-INS-029) | 関数内のinstanceofが変換されること | E-01 (visitor patternにより全スコープを走査) | ○ |
| C-30 (UT-INS-030) | アロー関数内のinstanceofが変換されること | E-01 (visitor patternにより全スコープを走査) | ○ |
| C-31 (UT-INS-031) | クラスメソッド内のinstanceofが変換されること | E-01 (visitor patternにより全スコープを走査) | ○ |
| C-32 (UT-INS-032) | コンストラクタ内のinstanceofが変換されること | E-01 (visitor patternにより全スコープを走査) | ○ |
| C-33 (UT-INS-033) | ゲッター内のinstanceofが変換されること | E-01 (visitor patternにより全スコープを走査) | ○ |
| C-34 (UT-INS-034) | try-catch内のinstanceofが変換されること | E-01 (visitor patternにより全スコープを走査) | ○ |
| C-35 (UT-INS-035) | 非同期関数内のinstanceofが変換されること | E-01 (visitor patternにより全スコープを走査) | ○ |

## 4) 不足情報（Unknown / Missing）
- **ヘルパー関数の実装詳細**: `@babel/helpers` パッケージに定義されている `instanceof` ヘルパー関数の実装を直接確認していないため、ランタイム動作に関するテストケース（C-25, C-26, C-27）の根拠が不完全
  - 候補: `packages/babel-helpers/src/helpers/instanceof.ts` / `packages/babel-helpers/src/helpers.ts`

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: プラグインの変換ロジックは単純明快で、ソースコードから直接確認可能
- **1（中リスク）**: ヘルパー関数のランタイム動作に依存するテストケース（C-25, C-26, C-27）は、ヘルパー実装の確認が推奨される
- **0（低リスク）**: 既存テストフィクスチャ（exec.js）でSymbol.hasInstanceの動作が確認されている

## 6) レビュアーチェックリスト（最小）
- [ ] プラグイン本体のソースコード（index.ts）が39行と小規模であることを確認
- [ ] `instanceof` 演算子の検出条件（operator === "instanceof"）が正しいことを確認
- [ ] ヘルパー関数定義内での再帰防止ロジック（findParent）が正しいことを確認
- [ ] テストフィクスチャ（input.js → output.js）の変換が期待通りであることを確認
- [ ] exec.jsの実行テストがSymbol.hasInstanceのカスタム動作をカバーしていることを確認
- [ ] null/undefined/プリミティブに対するinstanceofの動作は、ヘルパー関数の実装を別途確認することを推奨
