---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 20
  claims_with_evidence: 18
  claims_without_evidence: 2
confidence_derived: 0.90
---

# 根拠レポート：babel-helper-check-duplicate-nodes 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.90**
  - 根拠あり：18 / 20、根拠なし：2
- 優先レビュー（高）
  1. **UT-CDN-017**：深いネストのスタックオーバーフロー耐性は実装から推測（明示的テストなし）
  2. **UT-CDN-020**：TypeScriptノード対応は一般的推測（明示的検証なし）

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

- E-01: `packages/babel-helper-check-duplicate-nodes/src/index.ts` - メインソースコード
- E-02: `packages/babel-helper-check-duplicate-nodes/test/index.js` - 既存テストコード
- E-03: ソースコード行9-11 - 引数数チェック (`arguments.length !== 1`)
- E-04: ソースコード行32-40 - 重複ノード検出ロジック (`parentsMap.has(node)`)
- E-05: ソースコード行15-20 - hidePrivateProperties関数 (プライベートプロパティ隠蔽)
- E-06: ソースコード行48-54 - 子ノード走査ロジック (配列/オブジェクト分岐)
- E-07: ソースコード行27 - nullノードスキップ (`if (!node) continue`)
- E-08: ソースコード行29-30 - VISITOR_KEYSチェック (`if (!keys) continue`)
- E-09: テストコード行7-28 - 同一親内重複テスト
- E-10: テストコード行29-53 - 異なる親間重複テスト
- E-11: テストコード行54-58 - 引数数超過テスト

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-CDN-001) | 重複ノードがない正常なASTで正常終了 | E-01, E-04 | ○ |
| C-02 (UT-CDN-002) | ネストされたASTで正常終了 | E-01, E-06 | ○ |
| C-03 (UT-CDN-003) | 配列型子ノード走査 | E-06 (行48-51) | ○ |
| C-04 (UT-CDN-004) | 同一親内重複でエラー | E-04, E-09 | ○ |
| C-05 (UT-CDN-005) | 異なる親間重複でエラー | E-04, E-10 | ○ |
| C-06 (UT-CDN-006) | 引数2つ以上でエラー | E-03, E-11 | ○ |
| C-07 (UT-CDN-007) | 引数0個でエラー | E-03 | ○ |
| C-08 (UT-CDN-008) | 空body配列で正常終了 | E-06, E-07 | ○ |
| C-09 (UT-CDN-009) | 単一ノードで正常終了 | E-01 | ○ |
| C-10 (UT-CDN-010) | null入力で正常終了 | E-07 | ○ |
| C-11 (UT-CDN-011) | undefined入力の挙動 | E-07 | ○ |
| C-12 (UT-CDN-012) | 空オブジェクト入力 | E-08 | ○ |
| C-13 (UT-CDN-013) | 未知ノードタイプ | E-08 | ○ |
| C-14 (UT-CDN-014) | プライベートプロパティ隠蔽 | E-05 | ○ |
| C-15 (UT-CDN-015) | オブジェクト型子ノード走査 | E-06 (行52-54) | ○ |
| C-16 (UT-CDN-016) | null子ノードスキップ | E-06 (行52: `subNode !== null`) | ○ |
| C-17 (UT-CDN-017) | 深いネストでスタックオーバーフローしない | **推測** | △ |
| C-18 (UT-CDN-018) | エラーメッセージ形式 | E-04 (行34-39) | ○ |
| C-19 (UT-CDN-019) | JSXノード走査 | E-01 (VISITOR_KEYS依存) | ○ |
| C-20 (UT-CDN-020) | TypeScriptノード走査 | **推測** | △ |

## 4) 不足情報（Unknown / Missing）
- **UT-CDN-017（深いネスト耐性）**: 実装がスタック（配列）ベースの反復処理を使用しているため再帰によるスタックオーバーフローは発生しないと推測されるが、明示的なテストやドキュメントはない
  - 候補：パフォーマンステスト / ストレステスト / 設計ドキュメント
- **UT-CDN-020（TypeScript対応）**: VISITOR_KEYSが@babel/typesから提供されTypeScript ASTノードを含むと想定されるが、このモジュール単体での明示的な検証はない
  - 候補：@babel/types のVISITOR_KEYS定義確認 / TypeScript固有のテストケース追加

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: 引数バリデーション（UT-CDN-006, 007）- 既存テストでカバー済み
- **0（低リスク）**: 重複検出基本機能（UT-CDN-004, 005）- 既存テストでカバー済み
- **1（中リスク）**: hidePrivateProperties（UT-CDN-014）- 機能は実装されているがエラー発生時のみ動作確認可能
- **1（中リスク）**: エッジケース入力（UT-CDN-010, 011, 012, 013）- 実装上は処理されるが明示的テストなし

## 6) レビュアーチェックリスト（最小）
- [ ] 既存テストコード（test/index.js）との重複・整合性を確認
- [ ] VISITOR_KEYSの挙動と対応ノードタイプを@babel/typesで確認
- [ ] null/undefined入力時の実際の挙動を手動テストで確認
- [ ] 深いネスト（100レベル以上）での実行テストを検討
- [ ] エラーメッセージ内のJSON形式が期待通りか確認（hidePrivatePropertiesの動作含む）
