---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 230
  claims_with_evidence: 230
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：230 / 230、根拠なし：0
- 優先レビュー（高）
  1. **トラバース基本機能（UT-TRV-001〜012）**：babel-traverseのコア機能
  2. **ビジター処理（UT-TRV-013〜024）**：AST走査の中核
  3. **スコープ管理（UT-TRV-176〜220）**：変数バインディング管理

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

- E-01: `packages/babel-traverse/src/index.ts` - メインエントリーポイント、traverse関数定義
- E-02: `packages/babel-traverse/src/visitors.ts` - ビジター処理（explode, verify, merge）
- E-03: `packages/babel-traverse/src/traverse-node.ts` - ノードトラバース実装
- E-04: `packages/babel-traverse/src/context.ts` - TraversalContextクラス
- E-05: `packages/babel-traverse/src/cache.ts` - キャッシュ管理
- E-06: `packages/babel-traverse/src/hub.ts` - Hubクラス、HubInterface
- E-07: `packages/babel-traverse/src/types.ts` - 型定義
- E-08: `packages/babel-traverse/src/path/index.ts` - NodePathクラス定義
- E-09: `packages/babel-traverse/src/path/context.ts` - パスコンテキスト管理
- E-10: `packages/babel-traverse/src/path/ancestry.ts` - 祖先パス関連メソッド
- E-11: `packages/babel-traverse/src/path/conversion.ts` - ノード変換メソッド
- E-12: `packages/babel-traverse/src/path/evaluation.ts` - 静的評価メソッド
- E-13: `packages/babel-traverse/src/path/introspection.ts` - イントロスペクションメソッド
- E-14: `packages/babel-traverse/src/path/removal.ts` - ノード削除メソッド
- E-15: `packages/babel-traverse/src/path/modification.ts` - ノード変更メソッド
- E-16: `packages/babel-traverse/src/path/replacement.ts` - ノード置換メソッド
- E-17: `packages/babel-traverse/src/path/family.ts` - 兄弟・子パス関連メソッド
- E-18: `packages/babel-traverse/src/path/comments.ts` - コメント関連メソッド
- E-19: `packages/babel-traverse/src/path/inference/index.ts` - 型推論メソッド
- E-20: `packages/babel-traverse/src/scope/index.ts` - Scopeクラス定義
- E-21: `packages/babel-traverse/src/scope/binding.ts` - Bindingクラス定義

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

### traverse関数関連（UT-TRV-001〜012）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | traverse関数がProgram/Fileノードをトラバースする | E-01 (L35-93) | ○ |
| C-02 | parentがnullの場合早期リターンする | E-01 (L62) | ○ |
| C-03 | noScopeがfalseかつscopeがない場合エラーをスローする | E-01 (L64-71) | ○ |
| C-04 | parentPathなしでvisitSelf=trueの場合エラーをスローする | E-01 (L74-76) | ○ |
| C-05 | VISITOR_KEYSに存在しないノードタイプは早期リターンする | E-01 (L78-80) | ○ |
| C-06 | traverse.cheapはtraverseFastを呼び出す | E-01 (L101-104) | ○ |
| C-07 | traverse.nodeはtraverseNodeを呼び出す | E-01 (L106-116) | ○ |
| C-08 | traverse.clearNodeはremovePropertiesを呼び出す | E-01 (L118-120) | ○ |
| C-09 | traverse.removePropertiesはツリー全体をクリアする | E-01 (L122-128) | ○ |
| C-10 | traverse.hasTypeは指定タイプの存在を検索する | E-01 (L130-149) | ○ |
| C-11 | denylistTypesにルートが含まれる場合falseを返す | E-01 (L136) | ○ |

### visitors関連（UT-TRV-013〜024）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-12 | explodeがビジターを正規化する | E-02 (L52-159) | ○ |
| C-13 | 既にexplodeされたビジターはそのまま返却 | E-02 (L53) | ○ |
| C-14 | パイプ区切りのノードタイプを分割する | E-02 (L58-71) | ○ |
| C-15 | verifyが有効なビジターを検証する | E-02 (L167-214) | ○ |
| C-16 | 関数が直接渡された場合エラー | E-02 (L172-177) | ○ |
| C-17 | 無効なノードタイプはエラー | E-02 (L186-190) | ○ |
| C-18 | mergeが複数ビジターをマージする | E-02 (L230-271) | ○ |
| C-19 | environmentVisitorを作成する | E-02 (L401-403) | ○ |
| C-20 | isExplodedVisitorが正規化状態を判定する | E-02 (L24-29) | ○ |

### traverseNode関連（UT-TRV-025〜028）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-21 | traverseNodeが子ノードをトラバースする | E-03 (L127-192) | ○ |
| C-22 | VISITOR_KEYSが空の場合falseを返す | E-03 (L136-137) | ○ |
| C-23 | visitSelf=trueで自身をビジットする | E-03 (L140-143) | ○ |
| C-24 | skipKeysで指定キーをスキップする | E-03 (L153) | ○ |

### TraversalContext関連（UT-TRV-029〜032）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-25 | TraversalContextコンストラクタ | E-04 (L5-14) | ○ |
| C-26 | maybeQueueがパスをキューに追加する | E-04 (L16-24) | ○ |

### cache関連（UT-TRV-033〜037）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-27 | clearがキャッシュをクリアする | E-05 (L9-12) | ○ |
| C-28 | clearPathがパスキャッシュをクリアする | E-05 (L14-16) | ○ |
| C-29 | clearScopeがスコープキャッシュをクリアする | E-05 (L18-20) | ○ |
| C-30 | getCachedPathsがキャッシュを取得する | E-05 (L22-25) | ○ |
| C-31 | getOrCreateCachedPathsがキャッシュを作成する | E-05 (L27-39) | ○ |

### Hub関連（UT-TRV-038〜043）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-32 | Hubクラスのメソッド | E-06 (L11-27) | ○ |
| C-33 | addHelperがエラーをスロー | E-06 (L16-18) | ○ |
| C-34 | buildErrorがエラーを構築する | E-06 (L20-26) | ○ |

### NodePath関連（UT-TRV-044〜072）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | NodePath.getが静的メソッド | E-08 (L93-131) | ○ |
| C-36 | parentがない場合エラー | E-08 (L112-114) | ○ |
| C-37 | getScopeがスコープを取得/作成 | E-08 (L133-135) | ○ |
| C-38 | setData/getDataがデータ管理 | E-08 (L137-151) | ○ |
| C-39 | hasNodeがノード存在を判定 | E-08 (L153-155) | ○ |
| C-40 | buildCodeFrameErrorがエラー構築 | E-08 (L157-162) | ○ |
| C-41 | traverseがパス配下をトラバース | E-08 (L164-168) | ○ |

### path/context関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-42 | _callがビジター関数を呼び出す | E-09 (L9-39) | ○ |
| C-43 | 非同期ビジターでエラー | E-09 (L19-26) | ○ |
| C-44 | skip/skipKey/stopメソッド | E-09 (L45-59) | ○ |
| C-45 | setContextがコンテキストを設定 | E-09 (L113-133) | ○ |
| C-46 | resyncがパスを再同期 | E-09 (L141-148) | ○ |
| C-47 | requeueがパスを再キュー | E-09 (L250-266) | ○ |

### path/ancestry関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-48 | findParentが親パスを検索 | E-10 (L14-23) | ○ |
| C-49 | findが自身を含めて検索 | E-10 (L31-40) | ○ |
| C-50 | getFunctionParentが関数親を取得 | E-10 (L46-50) | ○ |
| C-51 | getStatementParentがStatement親を取得 | E-10 (L56-79) | ○ |
| C-52 | getEarliestCommonAncestorFromが早期共通祖先を取得 | E-10 (L89-130) | ○ |
| C-53 | getDeepestCommonAncestorFromが深部共通祖先を取得 | E-10 (L138-202) | ○ |
| C-54 | getAncestryが祖先を取得 | E-10 (L210-217) | ○ |
| C-55 | isAncestor/isDescendantが祖先/子孫を判定 | E-10 (L222-231) | ○ |
| C-56 | inTypeがタイプ内存在を判定 | E-10 (L233-241) | ○ |

### path/conversion関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-57 | toComputedKeyがキーを取得 | E-11 (L49-65) | ○ |
| C-58 | ensureBlockがブロックを確保 | E-11 (L67-130) | ○ |
| C-59 | unwrapFunctionEnvironmentが環境を展開 | E-11 (L138-150) | ○ |
| C-60 | arrowFunctionToExpressionがArrow関数を変換 | E-11 (L162-234) | ○ |
| C-61 | splitExportDeclarationがエクスポートを分割 | E-11 (L822-899) | ○ |
| C-62 | ensureFunctionNameが関数名を付与 | E-11 (L921-1024) | ○ |

### path/evaluation関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-63 | evaluateTruthyが真偽を評価 | E-12 (L65-68) | ○ |
| C-64 | evaluateが式を静的評価 | E-12 (L554-572) | ○ |
| C-65 | リテラル/二項演算/論理演算の評価 | E-12 (L128-505) | ○ |

### path/introspection関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-66 | matchesPatternがパターンマッチ | E-13 (L24-30) | ○ |
| C-67 | isStaticが静的判定 | E-13 (L32-34) | ○ |
| C-68 | isNodeTypeがタイプ判定 | E-13 (L41-46) | ○ |
| C-69 | canHaveVariableDeclarationOrExpressionが変数宣言可能判定 | E-13 (L58-64) | ○ |
| C-70 | isCompletionRecordが完了レコード判定 | E-13 (L95-124) | ○ |
| C-71 | referencesImportがインポート参照判定 | E-13 (L146-202) | ○ |
| C-72 | resolveが参照解決 | E-13 (L500-582) | ○ |
| C-73 | isConstantExpressionが定数式判定 | E-13 (L584-641) | ○ |
| C-74 | isInStrictModeがstrictモード判定 | E-13 (L643-676) | ○ |

### path/removal関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-75 | removeがノードを削除 | E-14 (L12-29) | ○ |
| C-76 | 削除済みの場合エラー | E-14 (L63-68) | ○ |
| C-77 | _removeFromScopeがスコープから削除 | E-14 (L31-34) | ○ |

### path/modification関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-78 | insertBeforeが前に挿入 | E-15 (L37-90) | ○ |
| C-79 | insertAfterが後に挿入 | E-15 (L184-295) | ○ |
| C-80 | updateSiblingKeysが兄弟キー更新 | E-15 (L301-320) | ○ |
| C-81 | _verifyNodeListがノードリスト検証 | E-15 (L322-357) | ○ |
| C-82 | unshiftContainerが先頭追加 | E-15 (L363-384) | ○ |
| C-83 | pushContainerが末尾追加 | E-15 (L386-408) | ○ |

### path/replacement関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-84 | replaceWithMultipleが複数ノードで置換 | E-16 (L52-74) | ○ |
| C-85 | replaceWithSourceStringがソース文字列で置換 | E-16 (L84-114) | ○ |
| C-86 | replaceWithが単一ノードで置換 | E-16 (L119-212) | ○ |
| C-87 | replaceExpressionWithStatementsが式をステートメントで置換 | E-16 (L244-330) | ○ |
| C-88 | replaceInlineがインライン置換 | E-16 (L408-426) | ○ |

### path/family関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-89 | getOppositeが反対側を取得 | E-17 (L44-51) | ○ |
| C-90 | getCompletionRecordsが完了レコードを取得 | E-17 (L287-298) | ○ |
| C-91 | getSibling/getPrevSibling/getNextSiblingが兄弟を取得 | E-17 (L300-321) | ○ |
| C-92 | getAllNextSiblings/getAllPrevSiblingsが全兄弟を取得 | E-17 (L323-345) | ○ |
| C-93 | getが子パスを取得 | E-17 (L416-432) | ○ |
| C-94 | getBindingIdentifiers系メソッド | E-17 (L488-625) | ○ |

### path/comments関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-95 | shareCommentsWithSiblingsがコメントを共有 | E-18 (L13-47) | ○ |
| C-96 | addComment/addCommentsがコメントを追加 | E-18 (L57-76) | ○ |

### path/inference関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-97 | getTypeAnnotationが型注釈を取得 | E-19 (L31-44) | ○ |
| C-98 | isBaseTypeが基本型を判定 | E-19 (L110-144) | ○ |
| C-99 | couldBeBaseTypeが型可能性を判定 | E-19 (L146-160) | ○ |
| C-100 | isGenericTypeがジェネリック型を判定 | E-19 (L175-197) | ○ |

### Scope関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-101 | Scopeコンストラクタ | E-20 (L437-454) | ○ |
| C-102 | parentプロパティが親スコープを取得 | E-20 (L468-480) | ○ |
| C-103 | generateUid系メソッド | E-20 (L498-570) | ○ |
| C-104 | isStaticが静的判定 | E-20 (L582-597) | ○ |
| C-105 | maybeGenerateMemoisedがメモ化生成 | E-20 (L603-614) | ○ |
| C-106 | renameがバインディング名変更 | E-20 (L647-655) | ○ |
| C-107 | registerDeclaration/registerBindingが宣言/バインディング登録 | E-20 (L688-793) | ○ |
| C-108 | hasGlobal/hasReference/isPureがチェック | E-20 (L803-911) | ○ |
| C-109 | crawlがスコープをクロール | E-20 (L953-1026) | ○ |
| C-110 | pushが変数宣言を追加 | E-20 (L1028-1095) | ○ |
| C-111 | getProgramParent/getFunctionParent/getBlockParentがスコープ取得 | E-20 (L1101-1163) | ○ |
| C-112 | getAllBindings/getBinding/getOwnBindingがバインディング取得 | E-20 (L1169-1241) | ○ |
| C-113 | hasBinding/hasOwnBindingがバインディング存在チェック | E-20 (L1249-1281) | ○ |
| C-114 | moveBindingTo/removeOwnBinding/removeBindingがバインディング操作 | E-20 (L1294-1314) | ○ |
| C-115 | hoistVariablesが変数ホイスト | E-20 (L1326-1379) | ○ |

### Binding関連
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-116 | Bindingコンストラクタ | E-21 (L25-52) | ○ |
| C-117 | deoptValue/setValue/clearValueが値管理 | E-21 (L65-80) | ○ |
| C-118 | reassignが再代入登録 | E-21 (L86-92) | ○ |
| C-119 | reference/dereferenceが参照カウント | E-21 (L98-114) | ○ |

## 4) 不足情報（Unknown / Missing）
- 全てのテストケースはソースコードから直接導出されており、根拠なしの項目はありません。
- ただし、以下の点は追加検討が推奨されます：
  - 実際のテスト実行時のカバレッジ測定
  - エッジケースの追加（大規模ASTでのパフォーマンス）
  - プラグイン連携時の動作確認

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全テストケースがソースコードに基づいて生成されている
- 主要な公開API（traverse, NodePath, Scope, Binding）は網羅されている
- 内部ヘルパー関数の一部はテストケースから除外（_で始まる非公開関数）

## 6) レビュアーチェックリスト（最小）
- [ ] 高優先度テストケース（UT-TRV-001〜012）の入力値・期待結果が妥当か
- [ ] スコープ管理関連テスト（UT-TRV-176〜220）のバインディング操作が正確か
- [ ] NodePath操作（置換、削除、挿入）のテストケースが実際のAST操作を反映しているか
- [ ] 異常系テストケースのエラー条件が網羅されているか
- [ ] 境界値テストが適切に設定されているか（空配列、null、undefined等）
