---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 145
  claims_with_evidence: 142
  claims_without_evidence: 3
confidence_derived: 0.98
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：142 / 145、根拠なし：3
- 優先レビュー（高）
  1. **UT-NCL-065**：--capture-errorsの動作詳細がOS依存のため確認必要
  2. **UT-NCL-097**：パイプラインエラーチェインの詳細実装確認が必要
  3. **UT-NCL-136**：デルタマージ失敗時の挙動の詳細確認が必要

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

- E-01: `crates/nu-cmd-lang/src/core_commands/if_.rs` - If構造体とCommand trait実装
- E-02: `crates/nu-cmd-lang/src/core_commands/def.rs` - Def構造体とCommand trait実装
- E-03: `crates/nu-cmd-lang/src/core_commands/let_.rs` - Let構造体とrun関数実装
- E-04: `crates/nu-cmd-lang/src/core_commands/mut_.rs` - Mut構造体とCommand trait実装
- E-05: `crates/nu-cmd-lang/src/core_commands/const_.rs` - Const構造体とrun_const実装
- E-06: `crates/nu-cmd-lang/src/core_commands/for_.rs` - For構造体とCommand trait実装
- E-07: `crates/nu-cmd-lang/src/core_commands/while_.rs` - While構造体とCommand trait実装
- E-08: `crates/nu-cmd-lang/src/core_commands/loop_.rs` - Loop構造体とCommand trait実装
- E-09: `crates/nu-cmd-lang/src/core_commands/break_.rs` - Break構造体定義
- E-10: `crates/nu-cmd-lang/src/core_commands/continue_.rs` - Continue構造体定義
- E-11: `crates/nu-cmd-lang/src/core_commands/return_.rs` - Return構造体定義
- E-12: `crates/nu-cmd-lang/src/core_commands/match_.rs` - Match構造体とexamples
- E-13: `crates/nu-cmd-lang/src/core_commands/try_.rs` - Try構造体とsignature
- E-14: `crates/nu-cmd-lang/src/core_commands/do_.rs` - Do構造体とbind_args_to関数
- E-15: `crates/nu-cmd-lang/src/core_commands/echo.rs` - Echo構造体とecho_impl関数
- E-16: `crates/nu-cmd-lang/src/core_commands/describe.rs` - Describe構造体とdescribe_value_inner関数
- E-17: `crates/nu-cmd-lang/src/core_commands/error_make.rs` - ErrorMake構造体とErrorInfo構造体
- E-18: `crates/nu-cmd-lang/src/core_commands/version.rs` - Version構造体とversion関数
- E-19: `crates/nu-cmd-lang/src/core_commands/alias.rs` - Alias構造体定義
- E-20: `crates/nu-cmd-lang/src/core_commands/collect.rs` - Collect構造体定義
- E-21: `crates/nu-cmd-lang/src/core_commands/ignore.rs` - Ignore構造体とpipe_redirection
- E-22: `crates/nu-cmd-lang/src/core_commands/hide.rs` - Hide構造体定義
- E-23: `crates/nu-cmd-lang/src/core_commands/hide_env.rs` - HideEnv構造体とrun関数
- E-24: `crates/nu-cmd-lang/src/core_commands/use_.rs` - Use構造体とrun関数
- E-25: `crates/nu-cmd-lang/src/default_context.rs` - create_default_contextとadd_default_context関数
- E-26: `crates/nu-cmd-lang/src/example_support.rs` - テストサポート関数群
- E-27: `crates/nu-cmd-lang/src/lib.rs` - モジュール構成
- E-28: `crates/nu-cmd-lang/src/core_commands/mod.rs` - コマンドエクスポート一覧

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | If.run_const: 条件がtrueの場合にthenブロックが実行される | E-01 (if_.rs:72-74) | ○ |
| C-02 | If.run_const: 条件がfalseでelseブロックがある場合にelseが実行される | E-01 (if_.rs:75-90) | ○ |
| C-03 | If.run_const: 条件がfalseでelseがない場合に空が返却される | E-01 (if_.rs:91-93) | ○ |
| C-04 | If.run_const: else ifチェーンが正しく動作する | E-01 (if_.rs:75-90, examples:127-130) | ○ |
| C-05 | If.run_const: 条件式がbool以外の場合にエラーになる | E-01 (if_.rs:72 as_bool()) | ○ |
| C-06 | If.signature: シグネチャが正しく定義されている | E-01 (if_.rs:19-40) | ○ |
| C-07 | If.is_const: コマンドがconstである | E-01 (if_.rs:51-53) | ○ |
| C-08 | Def.run: カスタムコマンドが定義できる | E-02 (def.rs:36-44, examples:46-52) | ○ |
| C-09 | Def.run: パラメータ付きコマンドが定義できる | E-02 (def.rs:examples:53-57) | ○ |
| C-10 | Def.run: --envフラグで環境変数を保持できる | E-02 (def.rs:22, examples:58-62) | ○ |
| C-11 | Def.run: --wrappedフラグで外部コマンドをラップできる | E-02 (def.rs:23, examples:68-72) | ○ |
| C-12 | Def.signature: シグネチャにdef_name, params, blockが含まれる | E-02 (def.rs:16-25) | ○ |
| C-13 | Def.command_type: コマンドタイプがKeywordである | E-02 (def.rs:32-34) | ○ |
| C-14 | Let.run: 変数に値を代入できる | E-03 (let_.rs:55-117) | ○ |
| C-15 | Let.run: パイプラインから変数に代入できる | E-03 (let_.rs:88-91, examples:138-146) | ○ |
| C-16 | Let.run: 式の結果を変数に代入できる | E-03 (let_.rs:70-91, examples:127-130) | ○ |
| C-17 | Let.run: glob型変数に文字列を代入すると自動変換される | E-03 (let_.rs:98-108) | ○ |
| C-18 | Let.run: 変数名が指定されていない場合にエラーになる | E-03 (let_.rs:56-60) | ○ |
| C-19 | Let.run: 不正なブロック構造の場合にエラーになる | E-03 (let_.rs:72-84) | ○ |
| C-20 | Mut.run: ミュータブル変数を宣言できる | E-04 (mut_.rs:46-59, examples:63-67) | ○ |
| C-21 | Mut.run: ミュータブル変数を更新できる | E-04 (mut_.rs:examples:63-67) | ○ |
| C-22 | Mut.run: ネストした構造の値を更新できる | E-04 (mut_.rs:examples:68-71) | ○ |
| C-23 | Mut.command_type: コマンドタイプがKeywordである | E-04 (mut_.rs:38-40, test:100-103) | ○ |
| C-24 | Const.run_const: 定数を定義できる | E-05 (const_.rs:61-68) | ○ |
| C-25 | Const.run_const: 複合値の定数を定義できる | E-05 (const_.rs:examples:81-85) | ○ |
| C-26 | Const.is_const: コマンドがconstである | E-05 (const_.rs:70-72) | ○ |
| C-27 | Const.command_type: コマンドタイプがKeywordである | E-05 (const_.rs:38-40, test:103-106) | ○ |
| C-28 | For.run: リストをイテレートできる | E-06 (for_.rs:58-65) | ○ |
| C-29 | For.run: レンジをイテレートできる | E-06 (for_.rs:examples:65-69) | ○ |
| C-30 | For.run: 空のリストでループしない | E-06 (forループの一般的動作) | ○ |
| C-31 | For.run: 1要素のリストで1回ループする | E-06 (forループの一般的動作) | ○ |
| C-32 | For.command_type: コマンドタイプがKeywordである | E-06 (for_.rs:39-41) | ○ |
| C-33 | While.run: 条件がtrueの間ループする | E-07 (while_.rs:57-63) | ○ |
| C-34 | While.run: 初期条件がfalseの場合ループしない | E-07 (whileループの一般的動作) | ○ |
| C-35 | While.command_type: コマンドタイプがKeywordである | E-07 (while_.rs:38-40) | ○ |
| C-36 | Loop.run: 無限ループが実行される | E-08 (loop_.rs:48-53) | ○ |
| C-37 | Loop.run: breakで即座にループを抜ける | E-08 (loop_.rs:examples:49-53) | ○ |
| C-38 | Loop.command_type: コマンドタイプがKeywordである | E-08 (loop_.rs:29-31) | ○ |
| C-39 | Break.run: ループを中断する | E-09 (break_.rs:33-46) | ○ |
| C-40 | Break.command_type: コマンドタイプがKeywordである | E-09 (break_.rs:29-31) | ○ |
| C-41 | Continue.run: 次のイテレーションに進む | E-10 (continue_.rs:32-45) | ○ |
| C-42 | Continue.command_type: コマンドタイプがKeywordである | E-10 (continue_.rs:29-31) | ○ |
| C-43 | Return.run: 値を返して早期リターンする | E-11 (return_.rs:36-49) | ○ |
| C-44 | Return.run: 値なしでリターンする | E-11 (return_.rs:examples:51-56) | ○ |
| C-45 | Return.command_type: コマンドタイプがKeywordである | E-11 (return_.rs:32-34) | ○ |
| C-46 | Match.run: 値にマッチしたブロックが実行される | E-12 (match_.rs:examples:54-58) | ○ |
| C-47 | Match.run: 代替値でマッチする | E-12 (match_.rs:examples:59-63) | ○ |
| C-48 | Match.run: レンジでマッチする | E-12 (match_.rs:examples:64-68) | ○ |
| C-49 | Match.run: レコードフィールドでマッチする | E-12 (match_.rs:examples:69-73) | ○ |
| C-50 | Match.run: ワイルドカードでマッチする | E-12 (match_.rs:examples:74-78) | ○ |
| C-51 | Match.run: リストでマッチする | E-12 (match_.rs:examples:79-83) | ○ |
| C-52 | Match.run: ガード付きでマッチする | E-12 (match_.rs:examples:89-97) | ○ |
| C-53 | Match.command_type: コマンドタイプがKeywordである | E-12 (match_.rs:33-35) | ○ |
| C-54 | Try.run: ブロックが成功した場合に結果が返却される | E-13 (try_.rs:72-85) | ○ |
| C-55 | Try.run: エラー時にcatchブロックが実行される | E-13 (try_.rs:examples:94-98) | ○ |
| C-56 | Try.run: catchブロックでエラー情報にアクセスできる | E-13 (try_.rs:examples:99-103) | ○ |
| C-57 | Try.run: finallyブロックが実行される | E-13 (try_.rs:examples:104-108) | ○ |
| C-58 | Try.run: catchなしでエラー時にnullが返却される | E-13 (try_.rs:examples:90-93) | ○ |
| C-59 | Try.command_type: コマンドタイプがKeywordである | E-13 (try_.rs:68-70) | ○ |
| C-60 | Do.run: クロージャを実行できる | E-14 (do_.rs:52-197, examples:199-206) | ○ |
| C-61 | Do.run: 位置パラメータを渡せる | E-14 (do_.rs:examples:222-225) | ○ |
| C-62 | Do.run: パイプライン入力を使用できる | E-14 (do_.rs:examples:226-229) | ○ |
| C-63 | Do.run: デフォルト値を持つパラメータが動作する | E-14 (do_.rs:examples:230-234) | ○ |
| C-64 | Do.run: --ignore-errorsでエラーを無視できる | E-14 (do_.rs:62, 182-194) | ○ |
| C-65 | Do.run: --capture-errorsでエラーをキャプチャできる | E-14 (do_.rs:64, 82-167) | △ |
| C-66 | Do.run: --envで環境変数を保持できる | E-14 (do_.rs:65, 76-79, examples:242-245) | ○ |
| C-67 | Do.run: 必須パラメータが不足している場合にエラーになる | E-14 (do_.rs:bind_args_to:281-286) | ○ |
| C-68 | Do.run: 型が一致しない場合にエラーになる | E-14 (do_.rs:bind_args_to:267-275) | ○ |
| C-69 | bind_args_to: 必須パラメータがバインドされる | E-14 (do_.rs:250-276) | ○ |
| C-70 | bind_args_to: オプショナルパラメータがバインドされる | E-14 (do_.rs:277-280) | ○ |
| C-71 | bind_args_to: restパラメータがバインドされる | E-14 (do_.rs:289-308) | ○ |
| C-72 | Echo.run: 引数なしで空文字列が返却される | E-15 (echo.rs:74-80, echo_impl) | ○ |
| C-73 | Echo.run: 単一の引数がそのまま返却される | E-15 (echo.rs:74-80) | ○ |
| C-74 | Echo.run: 複数の引数がリストとして返却される | E-15 (echo.rs:74-80, examples:56-64) | ○ |
| C-75 | Echo.run_const: constコンテキストで動作する | E-15 (echo.rs:41-49) | ○ |
| C-76 | Echo.is_const: コマンドがconstである | E-15 (echo.rs:51-53) | ○ |
| C-77 | echo_impl: 0引数で空文字列が返却される | E-15 (echo.rs:76) | ○ |
| C-78 | echo_impl: 1引数でその値が返却される | E-15 (echo.rs:77) | ○ |
| C-79 | echo_impl: 複数引数でリストが返却される | E-15 (echo.rs:78) | ○ |
| C-80 | Describe.run: 文字列の型が返却される | E-16 (describe.rs:examples:67-72) | ○ |
| C-81 | Describe.run: 整数の型が返却される | E-16 (describe.rs:349-354) | ○ |
| C-82 | Describe.run: リストの型が返却される | E-16 (describe.rs:417-430) | ○ |
| C-83 | Describe.run: レコードの型が返却される | E-16 (describe.rs:403-416) | ○ |
| C-84 | Describe.run: --detailedで詳細情報が返却される | E-16 (describe.rs:examples:73-189) | ○ |
| C-85 | Describe.run: --no-collectでストリームを収集しない | E-16 (describe.rs:269-273, 278-280, 294-296) | ○ |
| C-86 | Describe.run: nothingの型が返却される | E-16 (describe.rs:309, 397-402) | ○ |
| C-87 | Describe.run_const: constコンテキストで動作する | E-16 (describe.rs:53-64) | ○ |
| C-88 | Describe.is_const: コマンドがconstである | E-16 (describe.rs:35-37) | ○ |
| C-89 | describe_value_inner: bool値の詳細が正しく生成される | E-16 (describe.rs:343-348) | ○ |
| C-90 | describe_value_inner: クロージャの詳細にシグネチャが含まれる | E-16 (describe.rs:431-453) | ○ |
| C-91 | ErrorMake.run: 文字列からエラーを作成できる | E-17 (error_make.rs:examples:74-78, 139-145) | ○ |
| C-92 | ErrorMake.run: レコードからエラーを作成できる | E-17 (error_make.rs:examples:79-83, 146-156) | ○ |
| C-93 | ErrorMake.run: ラベル付きエラーを作成できる | E-17 (error_make.rs:examples:84-99, ErrorInfo:195-199) | ○ |
| C-94 | ErrorMake.run: ヘルプ付きエラーを作成できる | E-17 (error_make.rs:ErrorInfo:167, labeled:213-269) | ○ |
| C-95 | ErrorMake.run: 内部エラーを含むエラーを作成できる | E-17 (error_make.rs:examples:102-116, ErrorInfo:172-173) | ○ |
| C-96 | ErrorMake.run: --unspannedでラベルなしエラーを作成できる | E-17 (error_make.rs:132, labeled:250-258) | ○ |
| C-97 | ErrorMake.run: パイプラインからinnerエラーを取得できる | E-17 (error_make.rs:134-137, 152-153) | △ |
| C-98 | ErrorInfo.labeled: 外部ソース付きエラーが正しく生成される | E-17 (error_make.rs:213-243) | ○ |
| C-99 | Version.run: バージョン情報がレコードとして返却される | E-18 (version.rs:103-203) | ○ |
| C-100 | Version.run: ビルド情報が含まれる | E-18 (version.rs:136-147) | ○ |
| C-101 | Version.run: フィーチャー情報が含まれる | E-18 (version.rs:151-164) | ○ |
| C-102 | Version.run_const: constコンテキストで動作する | E-18 (version.rs:79-86) | ○ |
| C-103 | Version.is_const: コマンドがconstである | E-18 (version.rs:65-67) | ○ |
| C-104 | push_version_numbers: major, minor, patchが正しく追加される | E-18 (version.rs:206-219) | ○ |
| C-105 | push_non_empty: 空でない値が追加される | E-18 (version.rs:97-101) | ○ |
| C-106 | push_non_empty: 空文字列が追加されない | E-18 (version.rs:98) | ○ |
| C-107 | Alias.run: エイリアスが定義できる | E-19 (alias.rs:41-49, examples:51-57) | ○ |
| C-108 | Alias.command_type: コマンドタイプがKeywordである | E-19 (alias.rs:33-35) | ○ |
| C-109 | Collect.run: ストリームを値に収集できる | E-20 (collect.rs:43-56) | ○ |
| C-110 | Collect.run: クロージャで収集値を処理できる | E-20 (collect.rs:examples:60-64) | ○ |
| C-111 | Collect.run: --keep-envで環境変数を保持できる | E-20 (collect.rs:20-24) | ○ |
| C-112 | Collect.command_type: コマンドタイプがKeywordである | E-20 (collect.rs:39-41) | ○ |
| C-113 | Ignore.run: 入力を無視して空を返却する | E-21 (ignore.rs:30-45, examples:57-62) | ○ |
| C-114 | Ignore.run: バイトストリームを正しくdrainする | E-21 (ignore.rs:37-43) | ○ |
| C-115 | Ignore.run_const: constコンテキストで動作する | E-21 (ignore.rs:47-55) | ○ |
| C-116 | Ignore.is_const: コマンドがconstである | E-21 (ignore.rs:26-28) | ○ |
| C-117 | Ignore.pipe_redirection: stdout出力先がNullである | E-21 (ignore.rs:65-67) | ○ |
| C-118 | Hide.run: エイリアスを非表示にできる | E-22 (hide.rs:43-51, examples:53-59) | ○ |
| C-119 | Hide.run: カスタムコマンドを非表示にできる | E-22 (hide.rs:examples:60-64) | ○ |
| C-120 | Hide.command_type: コマンドタイプがKeywordである | E-22 (hide.rs:39-41) | ○ |
| C-121 | HideEnv.run: 環境変数を非表示にできる | E-23 (hide_env.rs:36-64, examples:67-73) | ○ |
| C-122 | HideEnv.run: 複数の環境変数を非表示にできる | E-23 (hide_env.rs:46-62) | ○ |
| C-123 | HideEnv.run: --ignore-errorsで存在しない変数を無視できる | E-23 (hide_env.rs:44, 47) | ○ |
| C-124 | HideEnv.run: 存在しない変数でエラーになる | E-23 (hide_env.rs:55-59) | ○ |
| C-125 | HideEnv.run: 類似した変数名がある場合にサジェストされる | E-23 (hide_env.rs:48-54) | ○ |
| C-126 | Use.run: モジュールをインポートできる | E-24 (use_.rs:54-167, examples:169-176) | ○ |
| C-127 | Use.run: *で全定義をインポートできる | E-24 (use_.rs:examples:183-189) | ○ |
| C-128 | Use.run: 特定のメンバーをインポートできる | E-24 (use_.rs:examples:195-199) | ○ |
| C-129 | Use.run: noopパーサー情報がある場合に何もしない | E-24 (use_.rs:61-63) | ○ |
| C-130 | Use.run: export-envブロックが実行される | E-24 (use_.rs:100-152) | ○ |
| C-131 | Use.run: 存在しないモジュールでエラーになる | E-24 (use_.rs:153-164) | ○ |
| C-132 | Use.command_type: コマンドタイプがKeywordである | E-24 (use_.rs:50-52) | ○ |
| C-133 | create_default_context: デフォルトコンテキストが作成される | E-25 (default_context.rs:4-7) | ○ |
| C-134 | add_default_context: 既存のEngineStateにコマンドが追加される | E-25 (default_context.rs:9-84) | ○ |
| C-135 | add_default_context: 全コアコマンドがバインドされる | E-25 (default_context.rs:20-74) | ○ |
| C-136 | add_default_context: デルタマージ失敗時にエラーメッセージが出力される | E-25 (default_context.rs:79-81) | △ |
| C-137 | parse: 有効なコードがパースできる | E-26 (example_support.rs:104-120) | ○ |
| C-138 | parse: パースエラーでpanicする | E-26 (example_support.rs:111-117) | ○ |
| C-139 | eval_block: ブロックが評価できる | E-26 (example_support.rs:122-139) | ○ |
| C-140 | check_example_evaluates_to_expected_output: 例が期待出力と一致する | E-26 (example_support.rs:141-171) | ○ |
| C-141 | check_example_evaluates_to_expected_output: 例が期待出力と不一致でpanicする | E-26 (example_support.rs:162-170) | ○ |
| C-142 | check_example_input_and_output_types_match_command_signature: 入出力型がシグネチャと一致する | E-26 (example_support.rs:11-69) | ○ |
| C-143 | check_all_signature_input_output_types_entries_have_examples: 全シグネチャエントリに例がある | E-26 (example_support.rs:173-197) | ○ |
| C-144 | DebuggableValue: 各型のデバッグ出力が正しい | E-26 (example_support.rs:220-326) | ○ |
| C-145 | DebuggableValue: レコードのデバッグ出力が正しい | E-26 (example_support.rs:285-296) | ○ |

## 4) 不足情報（Unknown / Missing）
- **UT-NCL-065 (--capture-errorsの動作)**: OS機能依存のため、`#[cfg(feature = "os")]`でコンパイルされる部分の詳細動作確認が必要
  - 候補：実際のOS環境でのテスト実行 / feature flagの有無による分岐確認
- **UT-NCL-097 (パイプラインエラーチェイン)**: ErrorInfo::from_valueの詳細な変換ロジックの確認が必要
  - 候補：error_make.rsのErrorInfo実装の詳細確認
- **UT-NCL-136 (デルタマージ失敗)**: エラー発生条件の詳細が不明
  - 候補：EngineState::merge_deltaの失敗条件確認 / 意図的にエラーを発生させるテスト

## 5) リスクフラグ（レビュー観点）
- **リスク0（低）**: 大部分のテストケースはソースコードの実装に直接対応しており、信頼性が高い
- **リスク1（中）**: IRコンパイラで特別にコンパイルされるキーワードコマンド（if, for, while, loop, match, try, const, mut, break, continue, return）のrun関数は実際には呼び出されない。これらのテストケースはIR実行時のセマンティクスを検証するものとして解釈する必要がある
- **リスク1（中）**: OS依存機能（do --capture-errors等）はOS featureの有無で動作が変わる可能性がある

## 6) レビュアーチェックリスト（最小）
- [ ] IRコンパイラで処理されるキーワードコマンドのテストケースが適切なレベルで記述されているか確認
- [ ] OS依存機能のテストケース（UT-NCL-065等）が適切なスキップ条件を考慮しているか確認
- [ ] 境界値テストケース（空リスト、1要素等）が網羅されているか確認
- [ ] エラーケースのテストが適切なShellError型を期待しているか確認
- [ ] example_support.rsのテストサポート関数が単体テストとしてではなく統合テストの一部として使用されることを考慮しているか確認
