---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 120
  claims_with_evidence: 115
  claims_without_evidence: 5
confidence_derived: 0.96
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：115 / 120、根拠なし：5
- 優先レビュー（高）
  1. **UT-PLG-095**: enter_foreground のUnix固有の動作確認が必要
  2. **UT-PLG-118/119**: set_pgrp_from_enter_foreground のプラットフォーム依存動作
  3. **UT-PLG-017**: local-socketフィーチャーの動作確認が必要

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

- E-01: `crates/nu-plugin/src/lib.rs` - ライブラリのエントリーポイント、公開API定義
- E-02: `crates/nu-plugin/src/plugin/mod.rs` - Plugin トレイト、serve_plugin関数、ServePluginError
- E-03: `crates/nu-plugin/src/plugin/command.rs` - PluginCommand/SimplePluginCommand トレイト、create_plugin_signature
- E-04: `crates/nu-plugin/src/plugin/interface/mod.rs` - EngineInterface、EngineInterfaceManager、ForegroundGuard
- E-05: `crates/nu-plugin/src/plugin/interface/tests.rs` - 既存テストケース（約50テスト）
- E-06: `crates/nu-plugin/src/test_util.rs` - テストユーティリティ
- E-07: `crates/nu-plugin/Cargo.toml` - クレート依存関係、フィーチャー定義

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

### Plugin トレイト関連 (UT-PLG-001 - UT-PLG-012)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Plugin::version() が文字列を返す | E-02 (line 99-115) | ○ |
| C-02 | Plugin::commands() がコマンドリストを返す | E-02 (line 117-124) | ○ |
| C-03 | custom_value_to_base_value のデフォルト実装 | E-02 (line 126-140) | ○ |
| C-04 | custom_value_follow_path_int のデフォルト実装 | E-02 (line 142-158) | ○ |
| C-05 | custom_value_follow_path_string のデフォルト実装 | E-02 (line 160-183) | ○ |
| C-06 | custom_value_partial_cmp のデフォルト実装 | E-02 (line 185-201) | ○ |
| C-07 | custom_value_operation のデフォルト実装 | E-02 (line 203-218) | ○ |
| C-08 | custom_value_save のデフォルト実装 | E-02 (line 220-236) | ○ |
| C-09 | custom_value_dropped のデフォルト実装 | E-02 (line 238-257) | ○ |

### serve_plugin 関連 (UT-PLG-013 - UT-PLG-037)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-10 | serve_plugin がプラグインを起動する | E-02 (line 260-376) | ○ |
| C-11 | -h/--help でヘルプ表示 | E-02 (line 295-298) | ○ |
| C-12 | --stdio モード対応 | E-02 (line 301-303) | ○ |
| C-13 | --local-socket モード対応 | E-02 (line 304-313), E-07 (features) | ○ |
| C-14 | 無効引数でエラー終了 | E-02 (line 314-327) | ○ |
| C-15 | tell_nushell_encoding の動作 | E-02 (line 378-392) | ○ |
| C-16 | ServePluginError のエラー変換 | E-02 (line 394-425) | ○ |
| C-17 | serve_plugin_io のI/O処理 | E-02 (line 452-653) | ○ |
| C-18 | custom_value_op の各操作処理 | E-02 (line 655-732) | ○ |
| C-19 | print_help のヘルプ出力 | E-02 (line 734-818) | ○ |

### PluginCommand/SimplePluginCommand 関連 (UT-PLG-038 - UT-PLG-055)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-20 | PluginCommand トレイトメソッド | E-03 (line 75-176) | ○ |
| C-21 | SimplePluginCommand トレイトメソッド | E-03 (line 178-334) | ○ |
| C-22 | SimplePluginCommand の PluginCommand 実装 | E-03 (line 336-403) | ○ |
| C-23 | create_plugin_signature 関数 | E-03 (line 405-432) | ○ |
| C-24 | render_examples 関数 | E-03 (line 434-460) | ○ |

### EngineInterfaceManager 関連 (UT-PLG-056 - UT-PLG-080)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-25 | EngineInterfaceManager::new | E-04 (line 117-140) | ○ |
| C-26 | take_plugin_call_receiver | E-04 (line 142-148) | ○ |
| C-27 | is_finished の動作 | E-04 (line 204-208) | ○ |
| C-28 | consume_all の動作 | E-04 (line 210-234) | ○ |
| C-29 | InterfaceManager::consume の各ケース | E-04 (line 237-386) | ○ |
| C-30 | deserialize_call_args | E-04 (line 388-397) | ○ |
| C-31 | consume_all のエラー伝播 | E-05 (line 108-249) | ○ |

### EngineInterface 関連 (UT-PLG-081 - UT-PLG-117)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-32 | hello メソッド | E-04 (line 411-415) | ○ |
| C-33 | is_using_stdio | E-04 (line 558-560), E-05 (line 26-32) | ○ |
| C-34 | register_signal_handler | E-04 (line 562-566) | ○ |
| C-35 | get_config | E-04 (line 568-592), E-05 (line 881-894) | ○ |
| C-36 | get_plugin_config | E-04 (line 611-630), E-05 (line 896-918) | ○ |
| C-37 | get_env_var | E-04 (line 632-649), E-05 (line 920-942) | ○ |
| C-38 | get_current_dir | E-04 (line 651-672), E-05 (line 944-959) | ○ |
| C-39 | get_env_vars | E-04 (line 674-697), E-05 (line 961-982) | ○ |
| C-40 | add_env_var | E-04 (line 699-721), E-05 (line 984-996) | ○ |
| C-41 | get_help | E-04 (line 723-746), E-05 (line 998-1014) | ○ |
| C-42 | enter_foreground | E-04 (line 748-772) | ○ |
| C-43 | get_span_contents | E-04 (line 785-799), E-05 (line 1016-1032) | ○ |
| C-44 | eval_closure_with_stream | E-04 (line 801-874), E-05 (line 1034-1096) | ○ |
| C-45 | eval_closure | E-04 (line 876-929) | ○ |
| C-46 | find_decl | E-04 (line 931-946) | ○ |
| C-47 | get_block_ir | E-04 (line 948-974) | ○ |
| C-48 | call_decl | E-04 (line 976-1022) | ○ |
| C-49 | set_gc_disabled | E-04 (line 1024-1034) | ○ |
| C-50 | write_response | E-04 (line 440-465), E-05 (line 688-794) | ○ |
| C-51 | write_signature | E-04 (line 477-484), E-05 (line 796-818) | ○ |
| C-52 | Interface 実装 | E-04 (line 1051-1095) | ○ |
| C-53 | prepare_pipeline_data シリアライズ | E-05 (line 1098-1216) | ○ |

### ForegroundGuard 関連 (UT-PLG-116 - UT-PLG-119)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-54 | ForegroundGuard::leave | E-04 (line 1124-1129) | ○ |
| C-55 | ForegroundGuard::Drop | E-04 (line 1132-1136) | ○ |
| C-56 | set_pgrp_from_enter_foreground (Unix) | E-04 (line 1138-1154) | △ |
| C-57 | set_pgrp_from_enter_foreground (非Unix) | E-04 (line 1156-1161) | △ |

### テストユーティリティ (UT-PLG-120)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-58 | TestCaseExt::engine | E-06 (line 6-15) | ○ |

### 根拠不足の項目
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-56 | Unix固有のsetpgid動作 | E-04 (line 1138-1154) | △ |
| C-57 | 非Unix時のエラー返却 | E-04 (line 1156-1161) | △ |
| C-59 | local-socketフィーチャー無効時の動作 | E-07 | △ |
| C-60 | パニック発生時の動作確認 | E-02 (line 513-539) | △ |
| C-61 | スレッドスポーンエラー時の動作 | E-02 (line 507, 584, 621-624) | △ |

## 4) 不足情報（Unknown / Missing）
- **プラットフォーム固有の動作確認**
  - Unix以外のプラットフォームでのフォアグラウンド制御動作は実機テストが必要
  - 候補：macOS / Linux / Windows での実行確認

- **フィーチャーフラグの組み合わせテスト**
  - `local-socket` フィーチャー有効/無効時の動作差異
  - 候補：feature matrix でのビルドテスト

- **並行処理・スレッド関連のテスト**
  - パニック発生時の挙動、スレッドスポーン失敗時の挙動は既存テストでカバーされていない
  - 候補：統合テスト/E2Eテストでの確認

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: UT-PLG-001 - UT-PLG-055 (トレイトメソッド、基本機能)
  - ソースコードから直接導出され、既存テストでもカバーされている

- **1 (中リスク)**: UT-PLG-056 - UT-PLG-115 (インターフェース処理)
  - 複雑な状態管理、ストリーム処理を含むが、既存テストで多くがカバー済み

- **2 (高リスク)**: UT-PLG-116 - UT-PLG-119 (プラットフォーム依存コード)
  - Unix固有のAPI使用、プラットフォーム分岐があり、実機テストが推奨

## 6) レビュアーチェックリスト（最小）
- [ ] 既存テスト (E-05) でカバーされていないテストケースの優先度を確認
- [ ] プラットフォーム固有のテストケース (UT-PLG-118, 119) の実行可能性を検討
- [ ] 高優先度テストケースと既存テストの重複を確認し、必要に応じて統合
- [ ] local-socket フィーチャーのテストケース (UT-PLG-017) のフィーチャーフラグ条件を確認
- [ ] custom_value 関連テストケースの入力値の具体例を補完
