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

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：100 / 100、根拠なし：0
- 優先レビュー（高）
  1. **なし**：全てのテストケースにソースコードの根拠あり

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

- E-01: `packages/babel-plugin-transform-react-jsx/src/index.ts` - メインエントリポイント
- E-02: `packages/babel-plugin-transform-react-jsx/src/development.ts` - 開発モードエントリポイント
- E-03: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts` - プラグイン実装本体（842行）
- E-04: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:22-27` - DEFAULTオプション定義
- E-05: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:29-34` - コメントアノテーション正規表現
- E-06: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:41-48` - hasProto関数
- E-07: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:50-58` - Options型定義
- E-08: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:59-107` - createPlugin関数とオプション検証
- E-09: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:114-127` - JSXNamespacedName/JSXSpreadChildビジター
- E-10: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:129-323` - Program.enterビジター
- E-11: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:213-247` - isThisAllowed関数
- E-12: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:250-267` - makeSource関数
- E-13: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:269-289` - makeTrace関数
- E-14: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:326-337` - JSXFragment.exitビジター
- E-15: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:339-353` - JSXElement.exitビジター
- E-16: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:355-359` - JSXAttributeビジター
- E-17: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:363-371` - call関数
- E-18: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:378-396` - shouldUseCreateElement関数
- E-19: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:398-427` - convertJSXIdentifier関数
- E-20: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:429-437` - convertAttributeValue関数
- E-21: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:439-449` - processComments関数
- E-22: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:451-514` - accumulateAttribute関数
- E-23: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:516-527` - buildChildrenProperty関数
- E-24: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:532-610` - buildJSXElementCall関数
- E-25: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:614-628` - buildJSXOpeningElementAttributes関数
- E-26: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:633-663` - buildJSXFragmentCall関数
- E-27: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:667-678` - buildCreateElementFragmentCall関数
- E-28: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:683-699` - buildCreateElementCall関数
- E-29: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:701-719` - getTag関数
- E-30: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:727-771` - buildCreateElementOpeningElementAttributes関数
- E-31: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:774-786` - getSource関数
- E-32: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:788-821` - createImportLazily関数
- E-33: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:824-833` - toMemberExpression関数
- E-34: `packages/babel-plugin-transform-react-jsx/src/create-plugin.ts:835-841` - sourceSelfError関数

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | createPlugin: 自動ランタイムでプラグインが正しく作成される | E-01, E-08 | ○ |
| C-02 | createPlugin: 開発モードでプラグインが正しく作成される | E-02, E-08 | ○ |
| C-03 | createPlugin: useSpreadオプション指定時にエラー | E-08 (L81-85) | ○ |
| C-04 | createPlugin: useBuiltInsオプション指定時にエラー | E-08 (L87-100) | ○ |
| C-05 | createPlugin: automaticランタイムでfilterオプション指定時にエラー | E-08 (L102-106) | ○ |
| C-06 | createPlugin: classicランタイムでfilterオプションが使用可能 | E-08, E-27 | ○ |
| C-07 | hasProto: __proto__プロパティを持つオブジェクトでtrue | E-06 | ○ |
| C-08 | hasProto: __proto__プロパティを持たないオブジェクトでfalse | E-06 | ○ |
| C-09 | hasProto: 空のオブジェクトでfalse | E-06 | ○ |
| C-10 | JSXNamespacedName: throwIfNamespace=trueでエラー | E-09 (L114-121) | ○ |
| C-11 | JSXNamespacedName: throwIfNamespace=falseで許可 | E-09, E-19 (L417-423) | ○ |
| C-12 | JSXSpreadChild: スプレッド子要素でエラー | E-09 (L123-127) | ○ |
| C-13 | Program.enter: @jsxImportSourceコメント解析 | E-10 (L144-150), E-05 | ○ |
| C-14 | Program.enter: @jsxRuntimeコメント解析 | E-10 (L152-157), E-05 | ○ |
| C-15 | Program.enter: @jsxコメント解析 | E-10 (L159-163), E-05 | ○ |
| C-16 | Program.enter: @jsxFragコメント解析 | E-10 (L164-170), E-05 | ○ |
| C-17 | Program.enter: classicランタイムでimportSource設定エラー | E-10 (L175-180) | ○ |
| C-18 | Program.enter: automaticランタイムでpragma設定エラー | E-10 (L189-194) | ○ |
| C-19 | Program.enter: 無効なランタイム値でエラー | E-10 (L205-209) | ○ |
| C-20 | isDerivedClass: スーパークラスありでtrue | E-10 (L213-215) | ○ |
| C-21 | isDerivedClass: スーパークラスなしでfalse | E-10 (L213-215) | ○ |
| C-22 | isThisAllowed: 通常の関数内でtrue | E-11 (L228-231) | ○ |
| C-23 | isThisAllowed: メソッド内でtrue | E-11 (L233-235) | ○ |
| C-24 | isThisAllowed: 派生クラスのコンストラクタ内でfalse | E-11 (L237-238) | ○ |
| C-25 | isThisAllowed: アロー関数で親スコープ依存 | E-11 (L221-222) | ○ |
| C-26 | isThisAllowed: TSModuleBlock内でfalse | E-11 (L240-243) | ○ |
| C-27 | makeSource: 位置情報ありでソース情報生成 | E-12 | ○ |
| C-28 | makeSource: 位置情報なしでundefined | E-12 (L252-255) | ○ |
| C-29 | makeTrace: 行番号と列番号が正しく設定される | E-13 | ○ |
| C-30 | makeTrace: 行番号nullでnullLiteral | E-13 (L274-277) | ○ |
| C-31 | JSXFragment.exit: classicランタイムでcreateElement | E-14 (L329-330) | ○ |
| C-32 | JSXFragment.exit: automaticランタイムでjsx | E-14 (L331-332) | ○ |
| C-33 | JSXFragment.exit: 子要素を持つフラグメント | E-26 | ○ |
| C-34 | JSXElement.exit: classicランタイムでcreateElement | E-15 (L342-346) | ○ |
| C-35 | JSXElement.exit: automaticランタイムでjsx | E-15 (L347-348) | ○ |
| C-36 | JSXElement.exit: スプレッド後のkeyでcreateElement | E-15 (L343-345), E-18 | ○ |
| C-37 | JSXElement.exit: スプレッド前のkeyでjsx | E-18 | ○ |
| C-38 | JSXAttribute: JSX要素の属性値をラップ | E-16 | ○ |
| C-39 | shouldUseCreateElement: スプレッド後にkeyでtrue | E-18 (L383-394) | ○ |
| C-40 | shouldUseCreateElement: スプレッド前にkeyでfalse | E-18 | ○ |
| C-41 | shouldUseCreateElement: スプレッドなしでfalse | E-18 | ○ |
| C-42 | shouldUseCreateElement: 属性が空でfalse | E-18 | ○ |
| C-43 | convertJSXIdentifier: thisキーワード変換 | E-19 (L402-404) | ○ |
| C-44 | convertJSXIdentifier: 有効な識別子変換 | E-19 (L405-408) | ○ |
| C-45 | convertJSXIdentifier: 無効な識別子変換 | E-19 (L409-411) | ○ |
| C-46 | convertJSXIdentifier: JSXMemberExpression変換 | E-19 (L412-416) | ○ |
| C-47 | convertJSXIdentifier: JSXNamespacedName変換 | E-19 (L417-423) | ○ |
| C-48 | convertAttributeValue: JSXExpressionContainer抽出 | E-20 (L432-434) | ○ |
| C-49 | convertAttributeValue: その他の値をそのまま返す | E-20 (L435-436) | ○ |
| C-50 | processComments: スプレッド属性からコメント抽出 | E-21 | ○ |
| C-51 | processComments: 通常属性でnull | E-21 (L442) | ○ |
| C-52 | accumulateAttribute: スプレッド属性をspreadElementとして追加 | E-22 (L455-462) | ○ |
| C-53 | accumulateAttribute: オブジェクトプロパティ展開 | E-22 (L457-459) | ○ |
| C-54 | accumulateAttribute: __proto__を持つオブジェクトは展開しない | E-22 (L458), E-06 | ○ |
| C-55 | accumulateAttribute: 値なしのkey属性でエラー | E-22 (L472-476) | ○ |
| C-56 | accumulateAttribute: 値なしの通常属性がtrueに変換 | E-22 (L468) | ○ |
| C-57 | accumulateAttribute: 文字列値の改行を空白に置換 | E-22 (L482) | ○ |
| C-58 | accumulateAttribute: 名前空間付き属性名をStringLiteralに変換 | E-22 (L488-494) | ○ |
| C-59 | buildChildrenProperty: 単一の子要素 | E-23 (L518-519) | ○ |
| C-60 | buildChildrenProperty: 複数の子要素で配列 | E-23 (L520-521) | ○ |
| C-61 | buildChildrenProperty: 子要素0件でundefined | E-23 (L522-523) | ○ |
| C-62 | buildJSXElementCall: タグ、属性、子要素の変換 | E-24 | ○ |
| C-63 | buildJSXElementCall: keyが別引数 | E-24 (L605-607) | ○ |
| C-64 | buildJSXElementCall: 開発モードで__sourceと__self追加 | E-24 (L591-604) | ○ |
| C-65 | buildJSXElementCall: 重複__sourceでエラー | E-24 (L549) | ○ |
| C-66 | buildJSXElementCall: 重複__selfでエラー | E-24 (L549) | ○ |
| C-67 | buildJSXElementCall: 複数の子要素でjsxs | E-24 (L609) | ○ |
| C-68 | buildJSXOpeningElementAttributes: 属性と子要素をオブジェクトに | E-25 | ○ |
| C-69 | buildJSXFragmentCall: 空のフラグメント | E-26 (L641-653) | ○ |
| C-70 | buildJSXFragmentCall: 子要素を持つフラグメント | E-26 (L643-650) | ○ |
| C-71 | buildJSXFragmentCall: 開発モードでisStaticChildren追加 | E-26 (L655-659) | ○ |
| C-72 | buildCreateElementFragmentCall: classicランタイム変換 | E-27 | ○ |
| C-73 | buildCreateElementFragmentCall: filterがfalseで変換スキップ | E-27 (L671) | ○ |
| C-74 | buildCreateElementCall: 要素をcreateElementに変換 | E-28 | ○ |
| C-75 | buildCreateElementCall: 子要素が引数として渡される | E-28 (L697) | ○ |
| C-76 | getTag: 小文字タグをStringLiteralに変換 | E-29 (L714-715) | ○ |
| C-77 | getTag: 大文字タグをIdentifierとして保持 | E-29 (L716-717) | ○ |
| C-78 | getTag: メンバー式タグをMemberExpressionに変換 | E-29, E-19 | ○ |
| C-79 | buildCreateElementOpeningElementAttributes: 属性をオブジェクト式に変換 | E-30 | ○ |
| C-80 | buildCreateElementOpeningElementAttributes: 単一スプレッド属性の最適化 | E-30 (L756-763) | ○ |
| C-81 | buildCreateElementOpeningElementAttributes: 属性なしでnullLiteral | E-30 (L766) | ○ |
| C-82 | buildCreateElementOpeningElementAttributes: 重複__sourceでエラー | E-30 (L745-751) | ○ |
| C-83 | getSource: Fragmentでjsx-runtime | E-31 (L776-777) | ○ |
| C-84 | getSource: jsxDEVでjsx-dev-runtime | E-31 (L778-779) | ○ |
| C-85 | getSource: createElementでベースソース | E-31 (L783-784) | ○ |
| C-86 | createImportLazily: ESモジュールで名前付きインポート | E-32 (L796-806) | ○ |
| C-87 | createImportLazily: CommonJSでrequire + メンバーアクセス | E-32 (L807-818) | ○ |
| C-88 | createImportLazily: 同じインポートの再利用 | E-32 (L797-798, L808-810) | ○ |
| C-89 | toMemberExpression: ドット区切り文字列変換 | E-33 | ○ |
| C-90 | toMemberExpression: 単一識別子変換 | E-33 | ○ |
| C-91 | toMemberExpression: 深いネストのMemberExpressionチェーン | E-33 | ○ |
| C-92 | sourceSelfError: __sourceの重複エラーメッセージ | E-34 | ○ |
| C-93 | sourceSelfError: __selfの重複エラーメッセージ | E-34 | ○ |
| C-94 | call: PURE_ANNOTATIONでpure注釈追加 | E-17 (L369) | ○ |
| C-95 | call: デフォルトReactでdefaultPureがtrue | E-17 (L369), E-10 (L188, L204) | ○ |
| C-96 | index.ts: 本番用プラグインのエクスポート | E-01 | ○ |
| C-97 | development.ts: 開発用プラグインのエクスポート | E-02 | ○ |
| C-98 | JSXElement.exit: コンポーネントがIdentifierとして渡される | E-15, E-29 | ○ |
| C-99 | buildJSXElementCall: key=undefinedが正しく処理される | E-24 (L596) | ○ |
| C-100 | accumulateAttribute: JSXNamespacedName属性をStringLiteralに変換 | E-22 (L488-494) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - 全てのテストケースはソースコード解析に基づいて生成されています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードに直接対応する根拠を持っています

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースがソースコードの主要な関数・メソッドを網羅しているか確認
- [ ] 正常系・異常系・境界値のテストケースがバランスよく含まれているか確認
- [ ] 優先度の設定が適切か確認（セキュリティ、エラー処理、主要機能が高優先度か）
- [ ] 入力値と期待結果の記述が具体的で検証可能か確認
- [ ] Babelプラグイン固有のテスト観点（AST変換、ビジター、オプション検証）が網羅されているか確認
