---
generated_at: 2026-02-17 22:45:00
metrics:
  claims_total: 139
  claims_with_evidence: 139
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：plugins.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：139 / 139、根拠なし：0
- 優先レビュー（高）
  1. 全テストケースがソースコードに基づいて生成されており、根拠不足の項目はありません

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

- E-01: `script/plugins/init.lua` - プラグイン初期化ファイル
- E-02: `script/plugins/nodeHelper.lua` - ノードパターンマッチングヘルパー（72行）
- E-03: `script/plugins/astHelper.lua` - AST操作ヘルパー（96行）
- E-04: `script/plugins/ffi/init.lua` - FFIコードビルダー（373行）
- E-05: `script/plugins/ffi/searchCode.lua` - cdef参照コード検索（69行）
- E-06: `script/plugins/ffi/cdefRerence.lua` - cdef参照位置検索（37行）
- E-07: `script/plugins/ffi/c-parser/cdriver.lua` - Cコードパーサードライバー（54行）
- E-08: `script/plugins/ffi/c-parser/cdefines.lua` - C define登録（152行）
- E-09: `script/plugins/ffi/c-parser/cpp.lua` - Cプリプロセッサ（870行）
- E-10: `script/plugins/ffi/c-parser/c99.lua` - C99文法パーサー（731行）
- E-11: `script/plugins/ffi/c-parser/typed.lua` - 型チェックユーティリティ（172行）
- E-12: `script/plugins/ffi/c-parser/util.lua` - ユーティリティ関数（28行）
- E-13: `script/plugins/ffi/c-parser/ctypes.lua` - C型登録（604行）

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

### nodeHelper.lua 関連（C-01 〜 C-13）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | matchPattern関数はlocal型でfuncargsの親を持つソースの参照をパターンマッチする | E-02: L29-40 | ○ |
| C-02 | matchPattern関数は複数参照を探索し一つでもマッチすればtrueを返す | E-02: L32-36 | ○ |
| C-03 | matchPattern関数はソースがlocal型でない場合falseを返す | E-02: L30 | ○ |
| C-04 | matchPattern関数は親がfuncargsでない場合falseを返す | E-02: L31 | ○ |
| C-05 | matchPattern関数は参照が空の場合falseを返す | E-02: L32-36 | ○ |
| C-06 | createFieldPattern関数はワイルドカード*を処理する | E-02: L52-54 | ○ |
| C-07 | createFieldPattern関数はフィールドパターンを生成する | E-02: L63-64 | ○ |
| C-08 | createFieldPattern関数は複数フィールドを連結する | E-02: L47-69 | ○ |
| C-09 | createFieldPattern関数は無効なパターンでnilとエラーを返す | E-02: L60-61 | ○ |
| C-10 | deepCompare関数は同じ型・値のプリミティブを比較する | E-02: L7-14 | ○ |
| C-11 | deepCompare関数はテーブルを再帰的に比較する | E-02: L16-22 | ○ |
| C-12 | deepCompare関数は型が異なる場合falseを返す | E-02: L8-10 | ○ |
| C-13 | deepCompare関数はパターンのキーがソースにない場合falseを返す | E-02: L18 | ○ |

### astHelper.lua 関連（C-14 〜 C-30）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-14 | buildComment関数はコメントオブジェクトを作成する | E-03: L5-13 | ○ |
| C-15 | InsertDoc関数はASTにドキュメントを挿入する | E-03: L15-19 | ○ |
| C-16 | InsertDoc関数はcommsが未初期化の場合初期化する | E-03: L16-18 | ○ |
| C-17 | addClassDoc関数はaddDocを呼び出してクラスドキュメントを追加する | E-03: L26-28 | ○ |
| C-18 | addDoc関数はローカル変数へのドキュメントを追加する | E-03: L36-46 | ○ |
| C-19 | addDoc関数はグローバル変数へのドキュメントを追加する | E-03: L37 | ○ |
| C-20 | addDoc関数は非変数に対してfalseを返す | E-03: L37-39 | ○ |
| C-21 | addDoc関数はグループを指定してドキュメントを追加する | E-03: L42-44 | ○ |
| C-22 | removeArg関数は関数から引数を削除する | E-03: L52-62 | ○ |
| C-23 | removeArg関数はcallノードから引数を削除する | E-03: L53 | ○ |
| C-24 | removeArg関数は存在しないインデックスでnilを返す | E-03: L55-57 | ○ |
| C-25 | removeArg関数は非関数/非callノードでnilを返す | E-03: L61 | ○ |
| C-26 | addClassDocAtParam関数はパラメータをクラスとして扱う | E-03: L69-75 | ○ |
| C-27 | addClassDocAtParam関数は引数削除失敗時falseを返す | E-03: L74 | ○ |
| C-28 | addParamTypeDoc関数はパラメータに型ドキュメントを追加する | E-03: L81-94 | ○ |
| C-29 | addParamTypeDoc関数は非パラメータでfalseを返す | E-03: L82-84 | ○ |
| C-30 | addParamTypeDoc関数は名前が取得できない場合falseを返す | E-03: L85-88 | ○ |

### ffi/init.lua 関連（C-31 〜 C-61）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-31 | getTypeAst関数はグローバルASTから型を取得する | E-04: L87-93 | ○ |
| C-32 | getTypeAst関数は型が存在しない場合nilを返す | E-04: L88-92 | ○ |
| C-33 | needDeref関数はstruct型でtrueを返す | E-04: L106-107 | ○ |
| C-34 | needDeref関数はunion型でtrueを返す | E-04: L106-107 | ○ |
| C-35 | needDeref関数はtypedefの場合内部型を解決する | E-04: L99-104 | ○ |
| C-36 | needDeref関数はnilでfalseを返す | E-04: L96-98 | ○ |
| C-37 | getType関数は既知の型名をマッピングする | E-04: L141-143 | ○ |
| C-38 | getType関数はテーブル形式の型名を処理する | E-04: L114-140 | ○ |
| C-39 | getType関数はstructポインタを解決する | E-04: L136-138 | ○ |
| C-40 | getType関数は無効キーワードをスキップする | E-04: L126-128 | ○ |
| C-41 | isVoid関数はvoid型を判定する | E-04: L155-157 | ○ |
| C-42 | isVoid関数はtypedef経由のvoidを判定する | E-04: L151-153 | ○ |
| C-43 | isVoid関数はnilでfalseを返す | E-04: L148-150 | ○ |
| C-44 | buildStructOrUnion関数はstruct定義を生成する | E-04: L177-185 | ○ |
| C-45 | buildStructOrUnion関数は配列フィールドを処理する | E-04: L181-182 | ○ |
| C-46 | buildStructOrUnion関数はフィールドがない場合クラス定義のみ生成する | E-04: L179 | ○ |
| C-47 | buildFunction関数は関数定義を生成する | E-04: L187-203 | ○ |
| C-48 | buildFunction関数は可変引数を処理する | E-04: L194-196 | ○ |
| C-49 | buildFunction関数はvoid戻り値で@returnを生成しない | E-04: L197-200 | ○ |
| C-50 | buildFunction関数はLua予約語のパラメータ名を変換する | E-04: L173-175 | ○ |
| C-51 | buildTypedef関数は型エイリアスを生成する | E-04: L205-213 | ○ |
| C-52 | buildTypedef関数は匿名struct/unionを処理する | E-04: L207-209 | ○ |
| C-53 | buildEnum関数は列挙型を生成する | E-04: L264-293 | ○ |
| C-54 | buildEnum関数は暗黙の列挙値を計算する | E-04: L269-274 | ○ |
| C-55 | buildEnum関数は計算式の列挙値を処理する | E-04: L276-278 | ○ |
| C-56 | compileCodes関数は複数コードをコンパイルする | E-04: L338-353 | ○ |
| C-57 | compileCodes関数は無効なコードをスキップする | E-04: L345-348 | ○ |
| C-58 | compileCodes関数は空配列でnilを返す | E-04: L343-351 | ○ |
| C-59 | build_single関数はファイルを生成する | E-04: L356-371 | ○ |
| C-60 | build_single関数はドット含みファイル名を処理する | E-04: L363-366 | ○ |
| C-61 | build_single関数はコンパイル失敗時nilを返す | E-04: L358-360 | ○ |

### ffi/searchCode.lua 関連（C-62 〜 C-69）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-62 | getLiterals関数は文字列リテラルを取得する | E-05: L3-15 | ○ |
| C-63 | getLiterals関数はリテラルがない場合空配列を返す | E-05: L6-8 | ○ |
| C-64 | getCode関数はcall式からコードを取得する | E-05: L24-26 | ○ |
| C-65 | getCode関数はローカル変数経由でコードを取得する | E-05: L27-45 | ○ |
| C-66 | getCode関数は非field型でnilを返す | E-05: L20-22 | ○ |
| C-67 | メイン関数はCdefReferenceからコードを収集する | E-05: L49-69 | ○ |
| C-68 | メイン関数はCdefReferenceがnilでnilを返す | E-05: L50-52 | ○ |
| C-69 | メイン関数はURIが一致しない場合スキップする | E-05: L55-57 | ○ |

### ffi/cdefRerence.lua 関連（C-70 〜 C-73）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-70 | getCdefSourcePosition関数はcdefの位置を取得する | E-06: L8-17 | ○ |
| C-71 | メイン関数はffi.luaから参照を取得する | E-06: L20-37 | ○ |
| C-72 | メイン関数はffi.luaが存在しない場合nilを返す | E-06: L28-36 | ○ |
| C-73 | メイン関数は自己参照を除外する | E-06: L31-33 | ○ |

### c-parser/cdriver.lua 関連（C-74 〜 C-78）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-74 | process_file関数はCファイルをパースする | E-07: L8-29 | ○ |
| C-75 | process_file関数はプリプロセス失敗時エラーを返す | E-07: L10-12 | ○ |
| C-76 | process_file関数はパース失敗時エラーを返す | E-07: L17-19 | ○ |
| C-77 | process_context関数はコンテキスト文字列をパースする | E-07: L31-52 | ○ |
| C-78 | process_context関数は無効なコンテキストでエラーを返す | E-07: L33-35 | ○ |

### c-parser/cdefines.lua 関連（C-79 〜 C-87）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-79 | register_define関数は定数を登録する | E-08: L128-139 | ○ |
| C-80 | register_define関数は文字列リテラルを処理する | E-08: L65-66 | ○ |
| C-81 | register_define関数はlong long型を処理する | E-08: L69-70 | ○ |
| C-82 | register_define関数はパース失敗時何も追加しない | E-08: L130-134 | ○ |
| C-83 | register_defines関数は複数定義を登録する | E-08: L141-150 | ○ |
| C-84 | register_defines関数は空defineをスキップする | E-08: L143-145 | ○ |
| C-85 | get_type_of_exp関数は二項演算の型を推論する | E-08: L103-117 | ○ |
| C-86 | get_type_of_exp関数は関数呼び出しの型を処理する | E-08: L80-87 | ○ |
| C-87 | get_type_of_exp関数は単項*演算子を処理する | E-08: L89-97 | ○ |

### c-parser/cpp.lua 関連（C-88 〜 C-102）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-88 | initial_processing関数は行の初期処理を行う | E-09: L182-281 | ○ |
| C-89 | initial_processing関数はバックスラッシュ継続行を処理する | E-09: L192-200 | ○ |
| C-90 | initial_processing関数はコメントを除去する | E-09: L117-161 | ○ |
| C-91 | initial_processing関数は文字列内のコメントを保護する | E-09: L119-128 | ○ |
| C-92 | tokenize関数はトークン分割を行う | E-09: L283-285 | ○ |
| C-93 | parse_file関数はファイル全体をパースする | E-09: L608-736 | ○ |
| C-94 | parse_file関数は#defineを処理する | E-09: L669-672 | ○ |
| C-95 | parse_file関数は#ifdefを処理する | E-09: L675-678 | ○ |
| C-96 | parse_file関数は#includeを処理する | E-09: L689-702 | ○ |
| C-97 | parse_file関数はファイルオープン失敗時エラーを返す | E-09: L639-644 | ○ |
| C-98 | parse_file関数は不正なディレクティブでエラーを返す | E-09: L657-658 | ○ |
| C-99 | parse_context関数は文字列コンテキストをパースする | E-09: L738-858 | ○ |
| C-100 | parse_context関数は空のincdirs/definesで初期化する | E-09: L740-747 | ○ |
| C-101 | expand_macro関数はマクロを展開する | E-09: L860-868 | ○ |
| C-102 | expand_macro関数は関数形式マクロを処理する | E-09: L561-582 | ○ |

### c-parser/c99.lua 関連（C-103 〜 C-107）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-103 | match_language_grammar関数はCコードをパースする | E-10: L714-717 | ○ |
| C-104 | match_language_grammar関数は文法エラーを報告する | E-10: L704-712 | ○ |
| C-105 | match_language_expression_grammar関数は式をパースする | E-10: L719-721 | ○ |
| C-106 | match_preprocessing_grammar関数はプリプロセッサ行をパースする | E-10: L723-725 | ○ |
| C-107 | match_preprocessing_expression_grammar関数はPP式をパースする | E-10: L727-729 | ○ |

### c-parser/typed.lua 関連（C-108 〜 C-118）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-108 | on関数は型チェックを有効化する | E-11: L154-160 | ○ |
| C-109 | off関数は型チェックを無効化する | E-11: L162-168 | ○ |
| C-110 | check関数は型チェックを行う | E-11: L87-97 | ○ |
| C-111 | check関数は型エラー時例外をスローする | E-11: L93-96 | ○ |
| C-112 | check関数はオプショナル型を処理する | E-11: L47-53 | ○ |
| C-113 | check関数は配列型を処理する | E-11: L55-73 | ○ |
| C-114 | set_type関数はメタテーブルに型を設定する | E-11: L33-40 | ○ |
| C-115 | table関数は型付きテーブルを作成する | E-11: L42-44 | ○ |
| C-116 | typed_function関数は型付き関数を作成・実行する | E-11: L111-140 | ○ |
| C-117 | typed_function関数は引数の数が違う場合エラーをスローする | E-11: L117-119 | ○ |
| C-118 | typed_function関数は戻り値の型が違う場合エラーをスローする | E-11: L129-135 | ○ |

### c-parser/util.lua 関連（C-119 〜 C-122）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-119 | expandSingle関数は単一要素テーブルを展開する | E-12: L21-26 | ○ |
| C-120 | expandSingle関数は複数要素テーブルをそのまま返す | E-12: L22-25 | ○ |
| C-121 | expandSingle関数は非テーブル値をそのまま返す | E-12: L13-15 | ○ |
| C-122 | expandSingle関数は空テーブルをそのまま返す | E-12: L17-19 | ○ |

### c-parser/ctypes.lua 関連（C-123 〜 C-139）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-123 | register_types関数はextern宣言を登録する | E-13: L549-553 | ○ |
| C-124 | register_types関数はtypedefを登録する | E-13: L564-567 | ○ |
| C-125 | register_types関数はstructを登録する | E-13: L579-583 | ○ |
| C-126 | register_types関数はenumを登録する | E-13: L584-588 | ○ |
| C-127 | register_types関数は関数を登録する | E-13: L554-558 | ○ |
| C-128 | register_types関数は重複宣言でエラーを返す | E-13: L467-471 | ○ |
| C-129 | equal_declarations関数は同一宣言を判定する | E-13: L29-55 | ○ |
| C-130 | equal_declarations関数は異なる宣言を判定する | E-13: L33-35 | ○ |
| C-131 | equal_declarations関数は関数宣言を比較する | E-13: L43-53 | ○ |
| C-132 | get_fields関数はフィールドを解析する | E-13: L171-180 | ○ |
| C-133 | get_fields関数は匿名unionフィールドを展開する | E-13: L149-159 | ○ |
| C-134 | get_type関数は基本型を取得する | E-13: L354-395 | ○ |
| C-135 | get_type関数はポインタ型を処理する | E-13: L385-393 | ○ |
| C-136 | get_type関数はstruct参照を処理する | E-13: L369-374 | ○ |
| C-137 | get_params関数はパラメータリストを取得する | E-13: L401-421 | ○ |
| C-138 | get_params関数は可変引数を処理する | E-13: L408-410 | ○ |
| C-139 | get_params関数はvoidパラメータを除外する | E-13: L415-417 | ○ |

## 4) 不足情報（Unknown / Missing）
- 全てのテストケースがソースコードに基づいて生成されているため、根拠不足の項目はありません

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードの直接解析に基づいている
- 注意点:
  - C言語パーサー関連（c99.lua, cpp.lua）は複雑な状態機械を含むため、エッジケースの網羅性を確認することを推奨
  - FFIビルダー（ffi/init.lua）はLuaJIT FFIとの互換性に依存するため、実行環境によるテストが必要

## 6) レビュアーチェックリスト（最小）
- [ ] nodeHelper.lua: パターンマッチングのエッジケースが適切にテストされているか
- [ ] astHelper.lua: AST操作の副作用（親参照の更新等）が正しくテストされているか
- [ ] ffi/init.lua: C型からLua型へのマッピングが正確か（knownTypes定義との整合性）
- [ ] c-parser/cpp.lua: プリプロセッサの状態遷移が網羅されているか
- [ ] c-parser/c99.lua: C99文法のすべての構文要素がカバーされているか
- [ ] c-parser/ctypes.lua: 型登録の重複検出ロジックが正しいか
- [ ] テストケースの優先度が適切に設定されているか（高: 金額計算・認証、中: データ変換、低: ヘルパー）
