---
generated_at: 2026-03-01 10:00:00
metrics:
  claims_total: 42
  claims_with_evidence: 38
  claims_without_evidence: 4
confidence_derived: 0.90
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.90**
  - 根拠あり：38 / 42、根拠なし：4
- 優先レビュー（高）
  1. **UT-CSB-032（空のstatic block）**：テストフィクスチャに明示的なテストケースなし
  2. **UT-CSB-036（バージョン非互換エラー）**：実行時のエラーテストなし
  3. **UT-CSB-040（静的フィールド終端検出）**：内部ロジックの推論に基づく

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

- E-01: `packages/babel-plugin-transform-class-static-block/src/index.ts` - メインソースコード（243行）
- E-02: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/class-declaration/input.js` - クラス宣言テスト
- E-03: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/class-declaration/output.js` - クラス宣言出力
- E-04: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/class-expression/exec.js` - クラス式テスト
- E-05: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/multiple-static-initializers/input.js` - 複数静的初期化子テスト
- E-06: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/multiple-static-initializers/output.js` - 複数静的初期化子出力
- E-07: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/name-conflict/input.js` - 名前衝突テスト
- E-08: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/name-conflict/output.js` - 名前衝突出力
- E-09: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/class-binding/input.js` - クラスバインディングテスト
- E-10: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/super-property/exec.js` - superプロパティテスト
- E-11: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/private-elements-access/exec.js` - プライベート要素アクセステスト
- E-12: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/in-class-heritage/input.js` - 継承チェーンテスト
- E-13: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/var-scope/input.js` - varスコープテスト
- E-14: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/new-target/input.js` - new.targetテスト
- E-15: `packages/babel-plugin-transform-class-static-block/test/fixtures/class-static-block/preserve-comments/input.js` - コメント保持テスト
- E-16: `packages/babel-plugin-transform-class-static-block/test/plugin-ordering.test.js` - プラグイン順序テスト
- E-17: `packages/babel-plugin-transform-class-static-block/test/fixtures/integration/private-methods-access/exec.js` - プライベートメソッドアクセステスト
- E-18: `packages/babel-plugin-transform-class-static-block/test/fixtures/integration/private-in/exec.js` - #in演算子テスト

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | generateUid関数がdenyListに含まれないuidを生成する | E-01 (L17-27) | ○ |
| C-02 | generateUidでdenyListに'_'が含まれる場合'_2'を生成 | E-01 (L17-27) | ○ |
| C-03 | generateUidで連続した名前衝突を回避 | E-01 (L17-27) | ○ |
| C-04 | generateUidで空のdenyListを処理 | E-01 (L17-27) | ○ |
| C-05 | mapLast関数が配列最後の要素に関数を適用 | E-01 (L29-32) | ○ |
| C-06 | mapLastで空配列を処理 | E-01 (L30) | ○ |
| C-07 | mapLastで1要素配列を処理 | E-01 (L29-32) | ○ |
| C-08 | maybeSequenceExpressionで単一式をそのまま返す | E-01 (L72-80) | ○ |
| C-09 | maybeSequenceExpressionで複数式をSequenceExpressionに変換 | E-01 (L72-80) | ○ |
| C-10 | blocksToExpressionsで単一ExpressionStatementを最適化 | E-01 (L82-97) | ○ |
| C-11 | blocksToExpressionsで複数StatementをIIFEに変換 | E-01 (L82-97), E-06 | ○ |
| C-12 | blocksToExpressionsでコメントを継承 | E-01 (L88-95), E-15 | ○ |
| C-13 | prependToInitializerで既存値の前に式を追加 | E-01 (L99-108) | ○ |
| C-14 | prependToInitializerでnull値をvoid式でラップ | E-01 (L99-108) | ○ |
| C-15 | prependToInitializerで複数式をSequenceExpressionに変換 | E-01 (L99-108) | ○ |
| C-16 | pre()でstaticBlocks機能を有効化 | E-01 (L113-117) | ○ |
| C-17 | ClassBody visitorでstatic blockを変換 | E-01 (L119-239), E-02, E-03 | ○ |
| C-18 | static blockの後のstatic fieldに統合 | E-01 (L158-167), E-05, E-06 | ○ |
| C-19 | 複数のstatic blockを正しく処理 | E-01 (L142-169), E-05, E-06 | ○ |
| C-20 | クラス式でstatic blockを変換 | E-01 (L223-232), E-04 | ○ |
| C-21 | static blockからプライベートフィールドにアクセス | E-01, E-11 | ○ |
| C-22 | static block内でthisがクラスを参照 | E-01, E-02, E-04 | ○ |
| C-23 | static block内でsuper.propertyが正しく解決 | E-01, E-10 | ○ |
| C-24 | static block内でクラス名を参照 | E-01, E-09 | ○ |
| C-25 | プライベート名衝突を回避 | E-01 (L207-219), E-07, E-08 | ○ |
| C-26 | 継承チェーン内のstatic blockを処理 | E-01, E-12 | ○ |
| C-27 | static fieldがない場合にプライベートプロパティを追加 | E-01 (L201-219), E-03 | ○ |
| C-28 | コメントを保持 | E-01 (L88-95), E-15 | ○ |
| C-29 | varスコープをIIFE内に閉じ込め | E-01, E-13 | ○ |
| C-30 | static block実行順序を維持 | E-01 (L148-169), E-05, E-06 | ○ |
| C-31 | static blockのみのクラスを処理 | E-01 (L171-238), E-03 | ○ |
| C-32 | 空のstatic blockを処理 | E-01 (推論) | △ |
| C-33 | new.targetを正しく処理 | E-01, E-14 | ○ |
| C-34 | クラス式の完了値を維持 | E-01 (L180-196, L223-232) | ○ |
| C-35 | 互換性のあるBabelバージョンでエラーなし | E-01 (L35) | ○ |
| C-36 | 互換性のないBabelバージョンでエラー | E-01 (L35, 推論) | △ |
| C-37 | プライベートメソッドにアクセス | E-01, E-17 | ○ |
| C-38 | プラグイン順序の互換性 | E-16 | ○ |
| C-39 | rawNamedEvaluationVisitorでstatic block検出 | E-01 (L37-53) | ○ |
| C-40 | rawNamedEvaluationVisitorでstatic field終端検出 | E-01 (L45-52, 推論) | △ |
| C-41 | setFunctionNameでクラス名設定 | E-01 (L54-65) | ○ |
| C-42 | #in演算子を正しく処理 | E-01, E-18 | △ |

## 4) 不足情報（Unknown / Missing）
- **空のstatic blockのテスト（C-32）**：テストフィクスチャに空のstatic blockの明示的なテストケースが見つからない
  - 候補：`test/fixtures/class-static-block/empty-block/` の追加 / 手動テストの実施
- **バージョン非互換エラーテスト（C-36）**：assertVersionの失敗ケースの明示的なテストなし
  - 候補：Jest単体テストでのバージョンモック / 統合テストでの確認
- **静的フィールド終端検出（C-40）**：コード内のロジックからの推論に基づく
  - 候補：rawNamedEvaluationVisitorの単体テスト追加
- **#in演算子の処理（C-42）**：integration/private-inに存在するが、詳細な検証が必要
  - 候補：private-inテストフィクスチャの詳細確認

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: generateUid, mapLast, maybeSequenceExpression - シンプルなユーティリティ関数
- **1（中リスク）**: blocksToExpressions, prependToInitializer - AST変換ロジック、エッジケースの検証が必要
- **2（高リスク）**: ClassBody visitor - 複雑な変換ロジック、複数のパターンの組み合わせテストが重要

## 6) レビュアーチェックリスト（最小）
- [ ] generateUid関数のdenyListロジックが正しいか確認（L17-27）
- [ ] mapLast関数の空配列処理が安全か確認（L30）
- [ ] blocksToExpressionsのIIFE変換がすべてのケースで正しいか確認
- [ ] prependToInitializerのvoid式ラップが意図通りか確認
- [ ] ClassBody visitorの複数static block処理順序が正しいか確認
- [ ] クラス式でのSequenceExpression置換が完了値を正しく返すか確認
- [ ] プライベート名生成の衝突回避ロジックが十分か確認
- [ ] 空のstatic blockの動作を手動で確認
- [ ] テストカバレッジが十分か（特に境界値テスト）確認
