---
generated_at: 2026-02-22 12:00:00
metrics:
  claims_total: 42
  claims_with_evidence: 42
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：API設計書

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：42 / 42、根拠なし：0
- 優先レビュー（高）
  - なし（全項目に根拠あり）

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

- E-01: `include/mruby.h` — メインヘッダーファイル。VM管理、クラス定義、メソッド定義、引数取得、関数呼出、値生成、シンボル、メモリ管理、GC、例外処理、Fiber、型変換、ユーティリティの各API関数宣言
- E-02: `include/mruby/string.h` — 文字列操作API（mrb_str_new, mrb_str_concat, mrb_str_cat, mrb_str_plus, mrb_str_substr等）の関数宣言
- E-03: `include/mruby/array.h` — 配列操作API（mrb_ary_new, mrb_ary_push, mrb_ary_pop, mrb_ary_entry等）の関数宣言
- E-04: `include/mruby/hash.h` — ハッシュ操作API（mrb_hash_new, mrb_hash_set, mrb_hash_get等）の関数宣言
- E-05: `include/mruby/data.h` — カスタムデータ型API（mrb_data_object_alloc, mrb_data_get_ptr等）の関数宣言
- E-06: `include/mruby/compile.h` — コンパイル・実行API（mrb_load_string, mrb_load_file, mrb_ccontext_new等）の関数宣言
- E-07: `include/mruby/value.h` — 値型定義、型判定マクロ、値生成インライン関数（mrb_fixnum_value, mrb_nil_value等）
- E-08: `include/mruby/gc.h` — GC構造体定義、mrb_object_dead_p関数宣言
- E-09: `include/mruby/class.h` — クラス構造体定義、mrb_define_method_raw, mrb_method_search等の関数宣言
- E-10: `include/mruby/error.h` — 例外処理API（mrb_protect_error, mrb_protect, mrb_ensure, mrb_rescue等）の関数宣言
- E-11: `include/mruby/variable.h` — 変数操作API（mrb_iv_get, mrb_iv_set, mrb_gv_get, mrb_gv_set, mrb_cv_get, mrb_const_get等）の関数宣言
- E-12: `include/mruby/numeric.h` — 数値演算API（mrb_num_add, mrb_num_sub, mrb_num_mul, mrb_integer_to_str）の関数宣言
- E-13: `include/mruby/range.h` — Range操作API（mrb_range_new, mrb_range_ptr, mrb_range_beg_len）の関数宣言
- E-14: `include/mruby/proc.h` — Proc構造体定義、mrb_proc_new_cfunc等の関数宣言
- E-15: `include/mruby/dump.h` — バイナリIREP API（mrb_read_irep, mrb_read_irep_buf, mrb_load_irep_file）の関数宣言

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | mrb_open()はmruby VMを新規作成しmrb_state*を返す | E-01 (L1257) | ○ |
| C-02 | mrb_open_core()はコアのみのmruby VMを作成する | E-01 (L1271) | ○ |
| C-03 | mrb_close()はmruby VMを終了し全リソースを解放する | E-01 (L1279) | ○ |
| C-04 | mrb_top_run()はVMに入りプロシージャを実行する | E-01 (L1347) | ○ |
| C-05 | mrb_define_class()は新しいRubyクラスを定義する | E-01 (L363) | ○ |
| C-06 | mrb_define_module()は新しいRubyモジュールを定義する | E-01 (L373) | ○ |
| C-07 | mrb_define_class_under()はモジュール配下にクラスを定義する | E-01 (L881) | ○ |
| C-08 | mrb_include_module()はモジュールをクラスにインクルードする | E-01 (L401) | ○ |
| C-09 | mrb_define_method()はインスタンスメソッドを定義する | E-01 (L441) | ○ |
| C-10 | mrb_define_class_method()はクラスメソッドを定義する | E-01 (L471) | ○ |
| C-11 | mrb_define_module_function()はモジュール関数を定義する | E-01 (L507) | ○ |
| C-12 | mrb_define_const()はクラス/モジュールに定数を定義する | E-01 (L536) | ○ |
| C-13 | mrb_get_args()はフォーマット文字列に従い引数を取得する | E-01 (L1048) | ○ |
| C-14 | mrb_get_argsのフォーマット指定子一覧（o,C,S,A,H,s,z,a,c,f,i,b,n,d,&,*,\|,?,: ）| E-01 (L942-978) | ○ |
| C-15 | mrb_funcall()は可変長引数でRuby関数を呼び出す | E-01 (L1129) | ○ |
| C-16 | mrb_funcall_argv()は配列引数でRuby関数を呼び出す | E-01 (L1159) | ○ |
| C-17 | mrb_funcall_with_block()はブロック付きでRuby関数を呼び出す | E-01 (L1163) | ○ |
| C-18 | mrb_str_new()は指定サイズでRuby文字列を作成する | E-01 (L1224) | ○ |
| C-19 | mrb_str_new_cstr()はC文字列からRuby文字列を作成する | E-01 (L1229) | ○ |
| C-20 | mrb_str_concat()は文字列を破壊的に結合する | E-02 (L167) | ○ |
| C-21 | mrb_str_cat()はRuby文字列にCバイト列を追加する | E-02 (L379) | ○ |
| C-22 | mrb_str_substr()は部分文字列を取得する | E-02 (L319) | ○ |
| C-23 | mrb_ary_new()は空のRuby配列を作成する | E-03 (L103) | ○ |
| C-24 | mrb_ary_push()は配列末尾に要素を追加する | E-03 (L167) | ○ |
| C-25 | mrb_ary_entry()は配列の指定位置の要素を取得する | E-03 (L232) | ○ |
| C-26 | mrb_hash_new()は空のRubyハッシュを作成する | E-04 (L50) | ○ |
| C-27 | mrb_hash_set()はハッシュにキーと値を設定する | E-04 (L65) | ○ |
| C-28 | mrb_hash_get()はハッシュからキーに対応する値を取得する | E-04 (L80) | ○ |
| C-29 | mrb_data_object_alloc()はCデータをラップするRubyオブジェクトを作成する | E-05 (L37) | ○ |
| C-30 | mrb_data_get_ptr()はRubyオブジェクトからCデータポインタを型チェック付きで取得する | E-05 (L53) | ○ |
| C-31 | mrb_load_string()はRuby文字列をコンパイルして実行する | E-06 (L179) | ○ |
| C-32 | mrb_load_file()はRubyファイルをコンパイルして実行する（MRB_NO_STDIO未定義時のみ）| E-06 (L175) | ○ |
| C-33 | mrb_raise()は指定した例外クラスで例外を発生させる（noreturn）| E-01 (L1441) | ○ |
| C-34 | mrb_protect_error()は例外を捕捉しながら関数を実行する | E-10 (L96) | ○ |
| C-35 | mrb_garbage_collect()はGCを実行する | E-01 (L1396) | ○ |
| C-36 | mrb_gc_protect()はオブジェクトをアリーナに追加して保護する | E-01 (L1490) | ○ |
| C-37 | mrb_iv_get/mrb_iv_setはインスタンス変数の取得/設定を行う | E-11 (L33-34) | ○ |
| C-38 | mrb_gv_get/mrb_gv_setはグローバル変数の取得/設定を行う | E-11 (L58,78) | ○ |
| C-39 | mrb_fiber_new()はプロシージャからFiberを作成する | E-01 (L1540) | ○ |
| C-40 | mrb_fiber_resume()はFiberを再開して実行する | E-01 (L1549) | ○ |
| C-41 | mrb_malloc/mrb_calloc/mrb_realloc/mrb_freeはメモリ管理関数である | E-01 (L1205-1211) | ○ |
| C-42 | mrb_range_new()は新しいRangeを作成する | E-13 (L65) | ○ |

## 4) 不足情報（Unknown / Missing）
- 全項目にソースコード上の根拠が確認されたため、不足情報はありません。

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク — 全APIがヘッダーファイルの公開宣言（`MRB_API`マーカー付き）から抽出されており、実在性に疑いはない
- 0: 低リスク — mrubyはHTTPベースのAPIではなくC言語のライブラリAPIであるため、テンプレートの一部項目（ベースURL、認証方式、HTTPステータスコード等）は適用外であり、C言語のAPI設計に適合した形式に適宜変更して記載している

## 6) レビュアーチェックリスト（最小）
- [ ] 各API関数のシグネチャがヘッダーファイルの宣言と一致しているか確認
- [ ] mrb_get_argsのフォーマット指定子が最新のmrubyソースコードと整合しているか確認
- [ ] 条件コンパイルフラグ（MRB_NO_FLOAT, MRB_NO_STDIO等）の影響範囲が正しく記載されているか確認
- [ ] C言語APIとして適切な記載形式になっているか（HTTP APIテンプレートからの逸脱が適切か）確認
