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

# 根拠レポート：nu_plugin_example 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `crates/nu_plugin_example/src/lib.rs` - Pluginトレイト実装、コマンド登録
- E-02: `crates/nu_plugin_example/src/main.rs` - エントリポイント、serve_plugin呼び出し
- E-03: `crates/nu_plugin_example/src/example.rs` - ExamplePlugin構造体、print_valuesメソッド
- E-04: `crates/nu_plugin_example/src/commands/mod.rs` - コマンドモジュール構成
- E-05: `crates/nu_plugin_example/src/commands/main.rs` - Mainコマンド実装
- E-06: `crates/nu_plugin_example/src/commands/one.rs` - Oneコマンド実装（テスト例あり）
- E-07: `crates/nu_plugin_example/src/commands/two.rs` - Twoコマンド実装、IntoValue使用
- E-08: `crates/nu_plugin_example/src/commands/three.rs` - Threeコマンド実装、LabeledError返却
- E-09: `crates/nu_plugin_example/src/commands/config.rs` - Configコマンド、FromValue使用
- E-10: `crates/nu_plugin_example/src/commands/env.rs` - Envコマンド、環境変数操作
- E-11: `crates/nu_plugin_example/src/commands/view_span.rs` - ViewSpanコマンド（テスト例あり）
- E-12: `crates/nu_plugin_example/src/commands/disable_gc.rs` - DisableGcコマンド
- E-13: `crates/nu_plugin_example/src/commands/ctrlc.rs` - Ctrlcコマンド、シグナルハンドラ
- E-14: `crates/nu_plugin_example/src/commands/call_decl.rs` - CallDeclコマンド
- E-15: `crates/nu_plugin_example/src/commands/collect_bytes.rs` - CollectBytesコマンド（テスト例あり）
- E-16: `crates/nu_plugin_example/src/commands/echo.rs` - Echoコマンド（テスト例あり）
- E-17: `crates/nu_plugin_example/src/commands/for_each.rs` - ForEachコマンド（テスト例あり）
- E-18: `crates/nu_plugin_example/src/commands/generate.rs` - Generateコマンド（テスト例あり）
- E-19: `crates/nu_plugin_example/src/commands/seq.rs` - Seqコマンド（テスト例あり）
- E-20: `crates/nu_plugin_example/src/commands/sum.rs` - Sumコマンド、IntOrFloat enum（テスト例あり）
- E-21: `crates/nu_plugin_example/src/commands/arg_completion.rs` - ArgCompletionコマンド、動的補完

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

### ExamplePlugin基盤（C-01〜C-10）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | version()がCARGO_PKG_VERSIONを返す | E-01 (lib.rs:10-12) | ○ |
| C-02 | commands()が17個のコマンドを返す | E-01 (lib.rs:14-42) | ○ |
| C-03 | 各コマンドがPluginCommand実装 | E-01, E-04 | ○ |
| C-04 | print_valuesが必須引数を抽出 | E-03 (example.rs:26-27) | ○ |
| C-05 | print_valuesがオプショナル引数を抽出 | E-03 (example.rs:29) | ○ |
| C-06 | print_valuesがフラグを検出 | E-03 (example.rs:28) | ○ |
| C-07 | print_valuesが名前付き引数を抽出 | E-03 (example.rs:30) | ○ |
| C-08 | print_valuesがrest引数を抽出 | E-03 (example.rs:31) | ○ |
| C-09 | 必須引数a欠落時エラー | E-03 (call.req::<i64>(0)?) | ○ |
| C-10 | 必須引数b欠落時エラー | E-03 (call.req::<String>(1)?) | ○ |

### Mainコマンド（C-11〜C-14）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | name()が"example"を返す | E-05 (main.rs:11-13) | ○ |
| C-12 | description()が正しい説明を返す | E-05 (main.rs:15-17) | ○ |
| C-13 | signature()がCategory::Experimentalを含む | E-05 (main.rs:30-32) | ○ |
| C-14 | run()がヘルプ文字列を返す | E-05 (main.rs:44-45) | ○ |

### Oneコマンド（C-15〜C-18）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-15 | name()が"example one"を返す | E-06 (one.rs:11-13) | ○ |
| C-16 | signature()に全引数が定義 | E-06 (one.rs:23-34) | ○ |
| C-17 | run()がValue::Nothingを返す | E-06 (one.rs:57) | ○ |
| C-18 | run()がprint_valuesを呼び出す | E-06 (one.rs:55) | ○ |

### Twoコマンド（C-19〜C-21）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-19 | name()が"example two"を返す | E-07 (two.rs:11-13) | ○ |
| C-20 | run()が10個のレコードリストを返す | E-07 (two.rs:49-60) | ○ |
| C-21 | 各レコードの計算結果が正しい | E-07 (two.rs:51-55) | ○ |

### Threeコマンド（C-22〜C-24）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-22 | name()が"example three"を返す | E-08 (three.rs:11-13) | ○ |
| C-23 | run()がLabeledErrorを返す | E-08 (three.rs:41-42) | ○ |
| C-24 | エラーにラベルが付与される | E-08 (three.rs:42) | ○ |

### Configコマンド（C-25〜C-29）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-25 | name()が"example config"を返す | E-09 (config.rs:38-40) | ○ |
| C-26 | 設定存在時に値を返す | E-09 (config.rs:69-72) | ○ |
| C-27 | 設定なし時にエラーを返す | E-09 (config.rs:74-77) | ○ |
| C-28 | PluginConfigがFromValueでパースされる | E-09 (config.rs:22-26, 70) | ○ |
| C-29 | Optionフィールドが省略可能 | E-09 (config.rs:24-25) | ○ |

### Envコマンド（C-30〜C-36）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-30 | name()が"example env"を返す | E-10 (env.rs:11-13) | ○ |
| C-31 | --cwdで作業ディレクトリを返す | E-10 (env.rs:52-56) | ○ |
| C-32 | --cwdと--setの同時指定でエラー | E-10 (env.rs:58-59) | ○ |
| C-33 | --setで環境変数を設定 | E-10 (env.rs:61-65) | ○ |
| C-34 | 環境変数名指定で値を返す | E-10 (env.rs:66-70) | ○ |
| C-35 | 存在しない環境変数でNothingを返す | E-10 (env.rs:69-70) | ○ |
| C-36 | 引数なしで全環境変数をrecordで返す | E-10 (env.rs:71-76) | ○ |

### ViewSpanコマンド（C-37〜C-39）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-37 | name()が"example view span"を返す | E-11 (view_span.rs:13-15) | ○ |
| C-38 | spanの内容を文字列で返す | E-11 (view_span.rs:49-50) | ○ |
| C-39 | 複合式のspanが正しく取得できる | E-11 (view_span.rs:36-39, Example) | ○ |

### DisableGcコマンド（C-40〜C-42）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | name()が"example disable-gc"を返す | E-12 (disable_gc.rs:13-15) | ○ |
| C-41 | GCが無効化される | E-12 (disable_gc.rs:48-49) | ○ |
| C-42 | --resetでGCが有効化される | E-12 (disable_gc.rs:48, 53) | ○ |

### Ctrlcコマンド（C-43〜C-45）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-43 | name()が"example ctrlc"を返す | E-13 (ctrlc.rs:14-16) | ○ |
| C-44 | シグナルハンドラが登録される | E-13 (ctrlc.rs:38-40) | ○ |
| C-45 | Ctrl+Cで処理が終了する | E-13 (ctrlc.rs:44-48) | ○ |

### CallDeclコマンド（C-46〜C-50）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-46 | name()が"example call-decl"を返す | E-14 (call_decl.rs:13-15) | ○ |
| C-47 | 指定コマンドが呼び出される | E-14 (call_decl.rs:74) | ○ |
| C-48 | 存在しないコマンドでエラー | E-14 (call_decl.rs:59-62) | ○ |
| C-49 | 名前付き引数が正しく渡される | E-14 (call_decl.rs:66-68) | ○ |
| C-50 | 位置引数が正しく渡される | E-14 (call_decl.rs:70-72) | ○ |

### CollectBytesコマンド（C-51〜C-54）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-51 | name()が"example collect-bytes"を返す | E-15 (collect_bytes.rs:16-18) | ○ |
| C-52 | 文字列リストがバイトストリームに変換 | E-15 (collect_bytes.rs:51-58) | ○ |
| C-53 | バイナリリストがバイトストリームに変換 | E-15 (collect_bytes.rs:51-58) | ○ |
| C-54 | 空リストで空バイトストリーム | E-15 (collect_bytes.rs:51-58) | ○ |

### Echoコマンド（C-55〜C-57）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-55 | name()が"example echo"を返す | E-16 (echo.rs:13-15) | ○ |
| C-56 | 入力がそのまま出力される | E-16 (echo.rs:47) | ○ |
| C-57 | 空入力で空が返却される | E-16 (echo.rs:47) | ○ |

### ForEachコマンド（C-58〜C-61）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-58 | name()が"example for-each"を返す | E-17 (for_each.rs:13-15) | ○ |
| C-59 | 各要素にクロージャが実行される | E-17 (for_each.rs:52-54) | ○ |
| C-60 | PipelineData::emptyが返却される | E-17 (for_each.rs:56) | ○ |
| C-61 | 空リストでクロージャが実行されない | E-17 (for_each.rs:52) | ○ |

### Generateコマンド（C-62〜C-66）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-62 | name()が"example generate"を返す | E-18 (generate.rs:15-17) | ○ |
| C-63 | クロージャで生成されたシーケンスが返却 | E-18 (generate.rs:70-88) | ○ |
| C-64 | Nothingで生成が終了 | E-18 (generate.rs:76-77) | ○ |
| C-65 | initialがNothingで空シーケンス | E-18 (generate.rs:68) | ○ |
| C-66 | outのみでも動作する | E-18 (generate.rs:80-81) | ○ |

### Seqコマンド（C-67〜C-71）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-67 | name()が"example seq"を返す | E-19 (seq.rs:15-17) | ○ |
| C-68 | firstからlastまでのシーケンス生成 | E-19 (seq.rs:57) | ○ |
| C-69 | first==lastで1要素 | E-19 (seq.rs:57) | ○ |
| C-70 | first>lastで空リスト | E-19 (seq.rs:57) | ○ |
| C-71 | 負の値が正しく処理される | E-19 (seq.rs:57) | ○ |

### Sumコマンド（C-72〜C-77）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-72 | name()が"example sum"を返す | E-20 (sum.rs:15-17) | ○ |
| C-73 | 整数リストの合計が返却される | E-20 (sum.rs:49-50) | ○ |
| C-74 | 浮動小数点リストの合計が返却される | E-20 (sum.rs:51-52) | ○ |
| C-75 | 混合リストが浮動小数点で返却される | E-20 (sum.rs:49-52) | ○ |
| C-76 | 空リストで0が返却される | E-20 (sum.rs:48, 60) | ○ |
| C-77 | 数値以外でエラー | E-20 (sum.rs:54-57) | ○ |

### IntOrFloat enum（C-78〜C-83）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-78 | Int状態で整数が加算される | E-20 (sum.rs:73-76) | ○ |
| C-79 | Float状態で整数が浮動小数点として加算 | E-20 (sum.rs:77-79) | ○ |
| C-80 | Float状態で浮動小数点が加算される | E-20 (sum.rs:89-91) | ○ |
| C-81 | Int状態からFloat状態に変換される | E-20 (sum.rs:85-87) | ○ |
| C-82 | Int状態でValue::intが返却される | E-20 (sum.rs:97) | ○ |
| C-83 | Float状態でValue::floatが返却される | E-20 (sum.rs:98) | ○ |

### ArgCompletionコマンド（C-84〜C-90）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-84 | name()が"example arg-completion"を返す | E-21 (arg_completion.rs:17-19) | ○ |
| C-85 | run()が空のPipelineDataを返す | E-21 (arg_completion.rs:52) | ○ |
| C-86 | future-timestampフラグの補完候補が返却 | E-21 (arg_completion.rs:72-80) | ○ |
| C-87 | 未知フラグでNoneが返却される | E-21 (arg_completion.rs:81) | ○ |
| C-88 | 位置引数0の補完候補が返却される | E-21 (arg_completion.rs:93-107) | ○ |
| C-89 | 位置引数1の補完候補が返却される | E-21 (arg_completion.rs:108-116) | ○ |
| C-90 | 位置引数2以上でNoneが返却される | E-21 (arg_completion.rs:117-118) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - 全てのテストケースはソースコードから直接導出されています。

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードに基づいており、信頼性が高い

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースがソースコードのロジックを正しく反映しているか確認
- [ ] 境界値テスト（C-54, C-57, C-61, C-65, C-69, C-70, C-71, C-76）の入力値・期待結果が妥当か確認
- [ ] 異常系テスト（C-09, C-10, C-27, C-32, C-48, C-77）のエラーメッセージが実装と一致するか確認
- [ ] IntOrFloat enumのテスト（C-78〜C-83）の状態遷移が正しいか確認
- [ ] 動的補完テスト（C-86〜C-90）のタイムスタンプ生成ロジックが時刻依存であることを考慮
