---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 145
  claims_with_evidence: 145
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：nu-engine.csv

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `crates/nu-engine/src/env.rs` - 環境変数変換・管理機能
- E-02: `crates/nu-engine/src/closure_eval.rs` - クロージャ評価機能（ClosureEval, ClosureEvalOnce）
- E-03: `crates/nu-engine/src/eval_ir.rs` - IR（中間表現）ブロック評価エンジン
- E-04: `crates/nu-engine/src/eval.rs` - 式・ブロック評価機能
- E-05: `crates/nu-engine/src/column.rs` - カラム取得ユーティリティ
- E-06: `crates/nu-engine/src/scope.rs` - スコープデータ管理（ScopeData）
- E-07: `crates/nu-engine/src/documentation.rs` - ヘルプ・ドキュメント生成
- E-08: `crates/nu-engine/src/glob_from.rs` - グロブパターン展開
- E-09: `crates/nu-engine/src/call_ext.rs` - Call拡張トレイト（CallExt）
- E-10: `crates/nu-engine/src/exit.rs` - プロセス終了・クリーンアップ
- E-11: `crates/nu-engine/src/compile/mod.rs` - IRコンパイラメインモジュール
- E-12: `crates/nu-engine/src/compile/builder.rs` - IRブロックビルダー
- E-13: `crates/nu-engine/src/compile/call.rs` - コール命令コンパイル
- E-14: `crates/nu-engine/src/compile/expression.rs` - 式コンパイル
- E-15: `crates/nu-engine/src/eval_helpers.rs` - 評価ヘルパー関数
- E-16: `crates/nu-engine/src/lib.rs` - モジュールエクスポート定義

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

### env.rs（環境変数管理）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | convert_env_vars: 環境変数が正常に変換されること | E-01 (L28-59) | ○ |
| C-02 | convert_env_vars: from_stringキー不在でエラー | E-01 (L44-47) | ○ |
| C-03 | convert_env_vars: 空レコードの処理 | E-01 (L34) | ○ |
| C-04 | convert_env_values: 環境変数値がValueに変換 | E-01 (L67-119) | ○ |
| C-05 | convert_env_values: オーバーレイ未発見エラー | E-01 (L97-112) | ○ |
| C-06 | env_to_string: 環境変数がStringに変換 | E-01 (L124-167) | ○ |
| C-07 | env_to_string: 変換不可値でエラー | E-01 (L133-166) | ○ |
| C-08 | env_to_string: PATH特殊処理 | E-01 (L136-157) | ○ |
| C-09 | env_to_strings: 全環境変数変換 | E-01 (L170-187) | ○ |
| C-10 | env_to_strings: 空環境変数 | E-01 (L174-175) | ○ |
| C-11 | path_str: PATH取得 | E-01 (L190-211) | ○ |
| C-12 | path_str: PATH未設定エラー | E-01 (L195-205) | ○ |
| C-13 | get_dirs_var_from_call: VarId取得 | E-01 (L214-223) | ○ |
| C-14 | get_dirs_var_from_call: 未設定時None | E-01 (L215-222) | ○ |
| C-15 | find_in_dirs_env: NU_LIB_DIRSから検索 | E-01 (L236-297) | ○ |
| C-16 | find_in_dirs_env: 相対パスエラー | E-01 (L248-258) | ○ |
| C-17 | find_in_dirs_env: ファイル未発見でNone | E-01 (L296) | ○ |
| C-18 | ensure_path: PATH正規化 | E-01 (L325-376) | ○ |
| C-19 | ensure_path: 不正な型でエラー | E-01 (L358-370) | ○ |

### closure_eval.rs（クロージャ評価）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-20 | ClosureEval::new: 初期化 | E-02 (L73-90) | ○ |
| C-21 | ClosureEval::new_preserve_out_dest | E-02 (L92-113) | ○ |
| C-22 | ClosureEval::debug | E-02 (L118-121) | ○ |
| C-23 | ClosureEval::add_arg | E-02 (L139-142) | ○ |
| C-24 | ClosureEval::add_arg: 引数過多 | E-02 (L123-133) | ○ |
| C-25 | ClosureEval::run_with_input | E-02 (L147-151) | ○ |
| C-26 | ClosureEval::run_with_value | E-02 (L157-160) | ○ |
| C-27 | ClosureEvalOnce::new | E-02 (L204-214) | ○ |
| C-28 | ClosureEvalOnce::run_with_input | E-02 (L264-266) | ○ |

### eval_ir.rs（IR評価）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-29 | eval_ir_block: 正常評価 | E-03 (L26-97) | ○ |
| C-30 | eval_ir_block: 再帰制限 | E-03 (L36-42) | ○ |
| C-31 | eval_ir_block: IRブロック未コンパイル | E-03 (L87-96) | ○ |
| C-32 | EvalContext::put_reg | E-03 (L127-129) | ○ |
| C-33 | EvalContext::take_reg | E-03 (L140-146) | ○ |
| C-34 | EvalContext::clone_reg | E-03 (L149-161) | ○ |
| C-35 | EvalContext::clone_reg: ストリームエラー | E-03 (L155-159) | ○ |
| C-36 | EvalContext::collect_reg | E-03 (L173-185) | ○ |
| C-37 | EvalContext::get_str | E-03 (L188-193) | ○ |
| C-38 | EvalContext::get_str: UTF-8エラー | E-03 (L189-192) | ○ |
| C-39 | LoadLiteral命令 | E-03 (L349, L962-983) | ○ |
| C-40 | Move命令 | E-03 (L357-361) | ○ |
| C-41 | Clone命令 | E-03 (L362-366) | ○ |
| C-42 | Collect命令 | E-03 (L367-372) | ○ |
| C-43 | Drop命令 | E-03 (L379-382) | ○ |
| C-44 | Drain命令 | E-03 (L383-386) | ○ |
| C-45 | LoadVariable命令 | E-03 (L393-400) | ○ |
| C-46 | StoreVariable命令 | E-03 (L401-412) | ○ |
| C-47 | LoadEnv命令 | E-03 (L417-432) | ○ |
| C-48 | LoadEnv: 未発見エラー | E-03 (L424-431) | ○ |
| C-49 | StoreEnv命令 | E-03 (L444-469) | ○ |
| C-50 | StoreEnv: 自動変数エラー | E-03 (L463-468) | ○ |
| C-51 | Call命令 | E-03 (L611-650) | ○ |
| C-52 | BinaryOp命令 | E-03 (L780, L1065-1146) | ○ |
| C-53 | Not命令 | E-03 (L771-779) | ○ |
| C-54 | Jump命令 | E-03 (L846) | ○ |
| C-55 | BranchIf命令（真） | E-03 (L847-867) | ○ |
| C-56 | BranchIf命令（偽） | E-03 (L864-866) | ○ |
| C-57 | Match命令（成功） | E-03 (L880-898) | ○ |
| C-58 | Match命令（失敗） | E-03 (L893-897) | ○ |
| C-59 | Iterate命令 | E-03 (L909-913, L1750-1780) | ○ |
| C-60 | Iterate命令（空） | E-03 (L1763-1766) | ○ |
| C-61 | OnError命令 | E-03 (L914-919) | ○ |
| C-62 | Return命令 | E-03 (L957) | ○ |
| C-63 | 等価比較 | E-03 (L1089) | ○ |
| C-64 | 小なり比較 | E-03 (L1091) | ○ |
| C-65 | 加算 | E-03 (L1111) | ○ |
| C-66 | 除算 | E-03 (L1114) | ○ |
| C-67 | 論理積 | E-03 (L1123) | ○ |
| C-68 | check_type: 成功 | E-03 (L1424-1435) | ○ |
| C-69 | check_type: 失敗 | E-03 (L1428-1434) | ○ |
| C-70 | redirect_env | E-03 (L1784-1804) | ○ |

### eval.rs（式・ブロック評価）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-71 | eval_call: カスタムコマンド | E-04 (L15-166) | ○ |
| C-72 | eval_call: --helpフラグ | E-04 (L24-26) | ○ |
| C-73 | eval_call: 再帰制限 | E-04 (L37-45) | ○ |
| C-74 | eval_expression | E-04 (L219-226) | ○ |
| C-75 | eval_expression_with_input | E-04 (L234-301) | ○ |
| C-76 | eval_block | E-04 (L303-317) | ○ |
| C-77 | eval_block_with_early_return | E-04 (L319-332) | ○ |
| C-78 | eval_variable: $nu | E-04 (L378-386) | ○ |
| C-79 | eval_variable: $env | E-04 (L388-401) | ○ |
| C-80 | eval_variable: 未定義 | E-04 (L402) | ○ |
| C-81 | is_automatic_env_var: PWD | E-04 (L653-661) | ○ |
| C-82 | is_automatic_env_var: FILE_PWD | E-04 (L654) | ○ |
| C-83 | is_automatic_env_var: 通常 | E-04 (L655-660) | ○ |

### column.rs（カラムユーティリティ）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-84 | get_columns | E-05 (L4-20) | ○ |
| C-85 | get_columns: 空リスト | E-05 (L7) | ○ |
| C-86 | get_columns: 非レコード | E-05 (L8-10) | ○ |
| C-87 | nonexistent_column: 検出 | E-05 (L23-36) | ○ |
| C-88 | nonexistent_column: 全存在 | E-05 (L35) | ○ |

### scope.rs（スコープデータ）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-89 | ScopeData::new | E-06 (L19-28) | ○ |
| C-90 | ScopeData::populate_vars | E-06 (L30-34) | ○ |
| C-91 | ScopeData::populate_decls | E-06 (L37-42) | ○ |
| C-92 | ScopeData::collect_vars | E-06 (L50-91) | ○ |
| C-93 | ScopeData::collect_commands | E-06 (L93-160) | ○ |
| C-94 | ScopeData::collect_aliases | E-06 (L394-429) | ○ |
| C-95 | ScopeData::collect_modules | E-06 (L543-552) | ○ |

### documentation.rs（ドキュメント生成）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-96 | get_full_help | E-07 (L29-99) | ○ |
| C-97 | get_full_help: エイリアス | E-07 (L64-72) | ○ |
| C-98 | HelpStyle::update_from_config | E-07 (L649-668) | ○ |
| C-99 | highlight_code | E-07 (L202-225) | ○ |

### glob_from.rs（グロブ展開）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-100 | glob_from | E-08 (L17-128) | ○ |
| C-101 | glob_from: パス未存在 | E-08 (L86-93) | ○ |
| C-102 | glob_from: エスケープ | E-08 (L55-57) | ○ |

### call_ext.rs（Call拡張）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-103 | has_flag: 存在 | E-09 (L68-96) | ○ |
| C-104 | has_flag: 不在 | E-09 (L95) | ○ |
| C-105 | has_flag: --flag=false | E-09 (L77-88) | ○ |
| C-106 | get_flag | E-09 (L98-111) | ○ |
| C-107 | get_flag: 未設定 | E-09 (L108-110) | ○ |
| C-108 | rest | E-09 (L117-130) | ○ |
| C-109 | opt | E-09 (L132-145) | ○ |
| C-110 | opt: 位置超過 | E-09 (L142-144) | ○ |
| C-111 | req | E-09 (L160-178) | ○ |
| C-112 | req: 引数不足 | E-09 (L170-177) | ○ |

### exit.rs（終了処理）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-113 | cleanup_exit | E-10 (L12-18) | ○ |
| C-114 | cleanup_exit: ジョブ警告 | E-10 (L29-44) | ○ |
| C-115 | cleanup: ジョブkill | E-10 (L46-49) | ○ |

### compile/mod.rs（コンパイラ）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-116 | compile | E-11 (L25-43) | ○ |
| C-117 | compile_block | E-11 (L48-94) | ○ |
| C-118 | compile_pipeline | E-11 (L96-208) | ○ |

### compile/builder.rs（ビルダー）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-119 | BlockBuilder::new | E-12 (L33-46) | ○ |
| C-120 | BlockBuilder::next_register | E-12 (L49-72) | ○ |
| C-121 | BlockBuilder::next_register: オーバーフロー | E-12 (L67-71) | ○ |
| C-122 | BlockBuilder::free_register | E-12 (L98-115) | ○ |
| C-123 | BlockBuilder::free_register: 未初期化 | E-12 (L109-114) | ○ |
| C-124 | BlockBuilder::label | E-12 (L119-123) | ○ |
| C-125 | BlockBuilder::set_label | E-12 (L126-139) | ○ |
| C-126 | BlockBuilder::push | E-12 (L144-313) | ○ |
| C-127 | BlockBuilder::finish | E-12 (L541-590) | ○ |
| C-128 | BlockBuilder::finish: 未定義ラベル | E-12 (L556-563) | ○ |
| C-129 | BlockBuilder::begin_loop | E-12 (L478-485) | ○ |
| C-130 | BlockBuilder::push_break | E-12 (L493-502) | ○ |
| C-131 | BlockBuilder::push_break: ループ外 | E-12 (L496-500) | ○ |

### compile/call.rs（コールコンパイル）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-132 | compile_call | E-13 (L12-319) | ○ |
| C-133 | compile_call: --help | E-13 (L23-48) | ○ |
| C-134 | compile_unlet | E-13 (L391-471) | ○ |
| C-135 | compile_unlet: 組み込み変数 | E-13 (L436-453) | ○ |

### compile/expression.rs（式コンパイル）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-136 | compile_expression: Int | E-14 (L84) | ○ |
| C-137 | compile_expression: String | E-14 (L474-477) | ○ |
| C-138 | compile_expression: List | E-14 (L246-292) | ○ |
| C-139 | compile_expression: Record | E-14 (L366-427) | ○ |
| C-140 | compile_expression: BinaryOp | E-14 (L198-217) | ○ |
| C-141 | compile_expression: Garbage | E-14 (L581) | ○ |

### eval_helpers.rs（評価ヘルパー）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-142 | get_eval_block: 非デバッグ | E-15 (L37-43) | ○ |
| C-143 | get_eval_block: デバッグ | E-15 (L38-39) | ○ |
| C-144 | get_eval_expression | E-15 (L67-73) | ○ |
| C-145 | get_eval_subexpression | E-15 (L87-93) | ○ |

## 4) 不足情報（Unknown / Missing）
- 全テストケースにソースコード根拠があり、不足情報はありません。

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: 全テストケースがソースコードから直接導出されています。
- 考慮事項:
  - 実際のテスト実行環境ではEngineStateやStackのモック化が必要
  - 一部の異常系テストはエラー条件の再現が複雑な場合あり

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースがソースコードの主要な公開関数をカバーしているか
- [ ] 正常系・異常系・境界値のバランスが適切か
- [ ] 優先度（高/中/低）の割り当てが妥当か
- [ ] テストケースの入力値と期待結果が明確か
- [ ] モジュール間の依存関係を考慮したテスト順序が適切か
