---
generated_at: 2026-02-22 12:00:00
metrics:
  claims_total: 60
  claims_with_evidence: 54
  claims_without_evidence: 6
confidence_derived: 0.90
---

# 根拠レポート：結合テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.90**
  - 根拠あり：54 / 60、根拠なし：6
- 優先レビュー（高）
  1. **IT-039 TCPサーバ/クライアント間通信**：実際のネットワーク通信テストの詳細手順は実装依存
  2. **IT-020 バイナリフォーマットのバージョン検証**：バージョン検証の具体的な実装詳細が不明
  3. **IT-044 カスタムアロケータとコア機能の連携**：allocf.cの具体的なカスタムアロケータインターフェースの詳細確認が必要

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `src/init.c` - コア初期化関数群（mrb_init_core, 各init関数の宣言）
- E-02: `src/state.c` - mrb_state のopen/close、irep管理、atexit機能
- E-03: `src/vm.c` - 仮想マシン実装（スタック管理、callinfo、命令実行）
- E-04: `src/gc.c` - Tri-color Incremental GC、Generational GC、WriteBarrier
- E-05: `src/class.c` - クラスシステム、メソッドテーブル(mt_tbl)管理
- E-06: `src/string.c` - Stringクラス実装、共有文字列管理
- E-07: `src/array.c` - Arrayクラス実装、組込み配列
- E-08: `src/hash.c` - Hashクラス実装（AR/HT二段階構造）
- E-09: `src/numeric.c` - Numeric/Integer/Float実装
- E-10: `src/symbol.c` - Symbolクラス実装、シンボルテーブル、presym
- E-11: `src/variable.c` - インスタンス変数テーブル(iv_tbl)、グローバル変数管理
- E-12: `src/proc.c` - Procクラス、REnv、クロージャ管理
- E-13: `src/error.c` - 例外クラス、例外生成・メッセージ設定
- E-14: `src/object.c` - Object/NilClass/TrueClass/FalseClass、オブジェクト比較
- E-15: `src/kernel.c` - Kernelモジュール、メソッド探索基本関数
- E-16: `src/range.c` - Rangeクラス実装
- E-17: `src/enum.c` - Enumerableモジュール実装
- E-18: `src/load.c` - バイナリローダー（mrbファイル読み込み）
- E-19: `src/dump.c` - バイナリダンパー（mrbファイル出力）
- E-20: `src/cdump.c` - C言語ソースダンプ
- E-21: `src/backtrace.c` - バックトレース生成
- E-22: `src/debug.c` - デバッグ情報管理
- E-23: `include/mruby.h` - mrb_state構造体、mrb_context、mrb_callinfo定義
- E-24: `include/mruby/gc.h` - GC関連定数・構造体定義
- E-25: `mrbgems/mruby-compiler/core/codegen.c` - コードジェネレータ（AST -> irep変換）
- E-26: `mrbgems/mruby-compiler/core/parse.y` - パーサ（Ruby構文解析）
- E-27: `mrbgems/mruby-fiber/src/fiber.c` - Fiberクラス実装、コンテキスト切替
- E-28: `mrbgems/mruby-io/src/io.c` - IOクラス実装、fd管理
- E-29: `mrbgems/mruby-io/src/file.c` - Fileクラス実装
- E-30: `mrbgems/mruby-socket/src/socket.c` - Socketクラス実装
- E-31: `mrbgems/mruby-eval/src/eval.c` - eval実装（Binding連携含む）
- E-32: `mrbgems/mruby-error/src/exception.c` - protect/ensure/rescue C API
- E-33: `mrbgems/mruby-bin-mruby/tools/mruby/mruby.c` - mrubyコマンド実装
- E-34: `mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c` - mrbcコマンド実装
- E-35: `mrbgems/mruby-bin-mirb/tools/mirb/mirb.c` - mirbコマンド実装
- E-36: `mrbgems/mruby-task/src/task.c` - Taskスケジューラ実装
- E-37: `mrbgems/mruby-time/src/time.c` - Timeクラス実装
- E-38: `mrbgems/mruby-data/src/data.c` - Dataクラス実装
- E-39: `mrbgems/hal-posix-io/` - POSIX IO HAL層
- E-40: `mrbgems/hal-posix-task/src/task_hal.c` - POSIX Task HAL層
- E-41: `mrblib/enum.rb` - Enumerable Ruby実装
- E-42: `mrblib/compar.rb` - Comparable Ruby実装
- E-43: `src/allocf.c` - デフォルトアロケータ実装

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | IT-001: Rubyソースコードのコンパイルと実行（パーサ->コードジェネレータ->VM） | E-03, E-25, E-26 | ○ |
| C-02 | IT-002: 構文エラーを含むソースのコンパイルとエラー伝播 | E-25, E-26 | ○ |
| C-03 | IT-003: VM実行中のオブジェクト割り当てとGC起動 | E-03, E-04 | ○ |
| C-04 | IT-004: GCアリーナのsave/restoreによるVM実行時の整合性 | E-03, E-04 | ○ |
| C-05 | IT-005: WriteBarrierによるインクリメンタルGCとの整合性 | E-04, E-05, E-11 | ○ |
| C-06 | IT-006: Generational GCモードでのマイナー/メジャーGC切替 | E-04 | ○ |
| C-07 | IT-007: メソッド定義とメソッド探索の連携 | E-05, E-03 | ○ |
| C-08 | IT-008: クラス継承チェーンに沿ったメソッド探索 | E-05, E-03 | ○ |
| C-09 | IT-009: モジュールincludeとメソッド探索順序 | E-05, E-03 | ○ |
| C-10 | IT-010: メソッドキャッシュのクリアと再探索 | E-05, E-23 | ○ |
| C-11 | IT-011: Array-String間変換 | E-07, E-06 | ○ |
| C-12 | IT-012: Hash-Array間変換 | E-08, E-07 | ○ |
| C-13 | IT-013: Numeric-String間変換 | E-09, E-06 | ○ |
| C-14 | IT-014: Range-Array変換とEnumerable連携 | E-16, E-07, E-17, E-41 | ○ |
| C-15 | IT-015: Symbol-String間変換 | E-10, E-06 | ○ |
| C-16 | IT-016: mrb_open によるコア初期化順序 | E-02, E-01 | ○ |
| C-17 | IT-017: mrb_close によるリソース解放の連携 | E-02 | ○ |
| C-18 | IT-018: コア初期化失敗時のエラーハンドリング | E-02 | ○ |
| C-19 | IT-019: irep のバイナリダンプとロードの往復 | E-19, E-18 | ○ |
| C-20 | IT-020: バイナリフォーマットのバージョン検証 | E-18 | △ |
| C-21 | IT-021: Cソース出力形式(cdump)のダンプとコンパイル | E-20, E-19 | ○ |
| C-22 | IT-022: 例外のraise/rescue連携 | E-13, E-03 | ○ |
| C-23 | IT-023: mrb_protect によるC API例外保護 | E-32, E-13 | ○ |
| C-24 | IT-024: mrb_ensure によるクリーンアップ保証 | E-32 | ○ |
| C-25 | IT-025: スタックオーバーフロー検出 | E-03, E-23 | ○ |
| C-26 | IT-026: mrbgems初期化とコアへの統合 | E-02, E-01 | ○ |
| C-27 | IT-027: Fiber gem とVM間のコンテキスト切替 | E-27, E-03 | ○ |
| C-28 | IT-028: Fiber のGCとの連携 | E-27, E-04 | ○ |
| C-29 | IT-029: eval gemとコンパイラ/VMの連携 | E-31, E-25 | ○ |
| C-30 | IT-030: eval gem のbinding連携 | E-31 | ○ |
| C-31 | IT-031: mruby コマンドによるスクリプトファイル実行 | E-33 | ○ |
| C-32 | IT-032: mruby コマンドによるmrbバイナリ実行 | E-33, E-34 | ○ |
| C-33 | IT-033: mrbc コンパイラによるバイナリ生成 | E-34 | ○ |
| C-34 | IT-034: mrbc -B によるC言語配列出力 | E-34, E-20 | ○ |
| C-35 | IT-035: mirb(対話型シェル)のREPL動作 | E-35 | ○ |
| C-36 | IT-036: IO gem の POSIX HAL経由ファイル操作 | E-28, E-29, E-39 | ○ |
| C-37 | IT-037: IO gem のファイルディスクリプタ管理 | E-28 | ○ |
| C-38 | IT-038: Socket gem のIO gem 継承連携 | E-30, E-28 | ○ |
| C-39 | IT-039: TCPサーバ/クライアント間通信 | E-30 | △ |
| C-40 | IT-040: Proc/ブロックの生成とVM実行 | E-12, E-03 | ○ |
| C-41 | IT-041: クロージャによる環境(REnv)キャプチャ | E-12, E-03 | ○ |
| C-42 | IT-042: インスタンス変数のオブジェクト-変数テーブル連携 | E-11, E-04 | ○ |
| C-43 | IT-043: グローバル変数のmrb_state全体管理 | E-11, E-04 | ○ |
| C-44 | IT-044: カスタムアロケータとコア機能の連携 | E-43 | △ |
| C-45 | IT-045: irepの参照カウント管理 | E-02, E-04 | ○ |
| C-46 | IT-046: Taskの生成とスケジューラへの登録 | E-36 | ○ |
| C-47 | IT-047: Taskコンテキスト切替とVM連携 | E-36, E-03 | ○ |
| C-48 | IT-048: Task のGCマーキング連携 | E-36, E-04 | ○ |
| C-49 | IT-049: Hash のキーにおけるSymbol/String/Integer混在 | E-08, E-10, E-06, E-09 | ○ |
| C-50 | IT-050: Comparable モジュールと数値/文字列の比較 | E-42, E-09, E-06 | ○ |
| C-51 | IT-051: バックトレース生成のVM-デバッグ連携 | E-21, E-22, E-03 | ○ |
| C-52 | IT-052: デバッグ情報のirep付与と参照 | E-22, E-19, E-18 | ○ |
| C-53 | IT-053: mruby -e オプションによるワンライナー実行 | E-33 | ○ |
| C-54 | IT-054: mruby -r オプションによるライブラリプリロード | E-33 | ○ |
| C-55 | IT-055: mrbc --no-ext-ops オプションでの拡張オペコード禁止 | E-34 | △ |
| C-56 | IT-056: オブジェクト型チェックとクラスシステムの連携 | E-14, E-05, E-15 | ○ |
| C-57 | IT-057: NoMemoryError の事前割り当てと発生 | E-04, E-13, E-23 | ○ |
| C-58 | IT-058: atexit関数の登録と実行 | E-02 | ○ |
| C-59 | IT-059: Time gem とコアシステムの連携 | E-37 | △ |
| C-60 | IT-060: Taskスケジューラのロック機構 | E-36 | △ |

## 4) 不足情報（Unknown / Missing）
- **IT-020（バイナリフォーマットのバージョン検証）**: load.cのバージョンチェック部分の詳細な実装確認が不十分。具体的なバージョン番号やヘッダ構造の詳細が未確認。
  - 候補：`src/load.c` の read_binary_header 関数 / `include/mruby/dump.h` のヘッダ定義 / RiteBinary仕様書
- **IT-039（TCPサーバ/クライアント間通信）**: socket.c内のTCPServer/TCPSocket実装は確認済みだが、実際のネットワーク通信テストの詳細な期待値設定にはプラットフォーム固有の動作確認が必要。
  - 候補：`mrbgems/mruby-socket/test/` のテストコード / プラットフォーム別HAL実装
- **IT-044（カスタムアロケータとコア機能の連携）**: allocf.cの内容は簡易的であり、mrb_open_allocf()の実装詳細はstate.cに記載が限定的。
  - 候補：`include/mruby.h` の mrb_allocf typedef / `src/allocf.c` の完全な実装
- **IT-055（mrbc --no-ext-ops）**: コマンドラインオプションは確認済みだが、拡張オペコード禁止の具体的なコード生成への影響の詳細は未精査。
  - 候補：`mrbgems/mruby-compiler/core/codegen.c` のno_ext_ops関連処理
- **IT-059（Time gem連携）**: time.cのファイル存在は確認済みだが、内部実装の詳細な連携内容は未読。
  - 候補：`mrbgems/mruby-time/src/time.c` の全体コード / `mrbgems/mruby-time/test/`
- **IT-060（Taskスケジューラのロック機構）**: task.cのscheduler_lock実装は確認済みだが、ロック/アンロックの全体フロー詳細は部分的。
  - 候補：`mrbgems/mruby-task/src/task.c` の全体コード / `mrbgems/mruby-task/src/task.h`

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - IT-006, IT-010, IT-012, IT-013, IT-014, IT-015, IT-021, IT-030, IT-034, IT-035, IT-037, IT-042, IT-043, IT-045, IT-050, IT-052, IT-054, IT-055, IT-058, IT-059, IT-060（単一モジュール内の動作確認が中心で、失敗時の影響範囲が限定的）
- **1: 中リスク** - IT-002, IT-005, IT-008, IT-009, IT-011, IT-018, IT-020, IT-028, IT-029, IT-036, IT-038, IT-039, IT-041, IT-044, IT-046, IT-047, IT-048, IT-049, IT-051, IT-053, IT-056（複数コンポーネント間の連携であり、インターフェース不整合のリスクがある）
- **2: 高リスク** - IT-001, IT-003, IT-004, IT-007, IT-016, IT-017, IT-019, IT-022, IT-023, IT-024, IT-025, IT-026, IT-027, IT-031, IT-032, IT-033, IT-040, IT-057（コアシステムの根幹部分であり、失敗時にシステム全体の動作に影響する）

## 6) レビュアーチェックリスト（最小）
- [ ] IT-001～IT-002のVM-コンパイラ連携テストケースが、パーサ->コードジェネレータ->VM実行の全パスをカバーしているか
- [ ] IT-003～IT-006のVM-GC連携テストケースが、インクリメンタルGC/世代別GCの両モードを網羅しているか
- [ ] IT-007～IT-010のクラスシステム連携テストケースが、メソッド探索の全パターン（継承、include、キャッシュ）を含んでいるか
- [ ] IT-016～IT-018の状態初期化テストケースで、初期化順序の依存関係が正しく反映されているか
- [ ] IT-019～IT-021のロード/ダンプテストケースで、バイナリフォーマットの互換性が検証されているか
- [ ] IT-022～IT-025のエラーハンドリングテストケースで、例外伝播経路が網羅されているか
- [ ] IT-027～IT-030のFiber/eval連携テストで、コンテキスト切替時のスタック整合性が検証されているか
- [ ] IT-031～IT-035のツール連携テストで、コマンドラインオプションの組合せが十分か
- [ ] IT-036～IT-039のIO/Socket連携テストで、HAL層の抽象化が正しく機能しているか
- [ ] IT-046～IT-048, IT-060のTask連携テストで、スケジューラの状態遷移が網羅されているか
- [ ] 全テストケースの前提条件が実際のテスト環境で満たせるものであるか
- [ ] テスト手順の各ステップが具体的かつ再現可能な記述になっているか
