---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 108
  claims_with_evidence: 108
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `crates/nu-plugin-protocol/src/lib.rs` - メインモジュールファイル（733行）
- E-02: `crates/nu-plugin-protocol/src/evaluated_call.rs` - EvaluatedCall構造体と関連メソッド（534行）
- E-03: `crates/nu-plugin-protocol/src/protocol_info.rs` - ProtocolInfo、Protocol、Feature定義（114行）
- E-04: `crates/nu-plugin-protocol/src/plugin_custom_value/mod.rs` - PluginCustomValue実装（234行）
- E-05: `crates/nu-plugin-protocol/src/plugin_custom_value/tests.rs` - PluginCustomValueの既存テスト（266行）
- E-06: `crates/nu-plugin-protocol/src/tests.rs` - ProtocolInfoの既存テスト（53行）
- E-07: `crates/nu-plugin-protocol/src/test_util.rs` - テスト用ユーティリティ（44行）

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

### EvaluatedCall関連（UT-PPR-001 〜 UT-PPR-031）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | EvaluatedCall::new()の初期化テスト | E-02 L32-38 | ○ |
| C-02 | add_positional()の動作テスト | E-02 L51-54 | ○ |
| C-03 | add_positional()の境界値テスト | E-02 L51-54 | ○ |
| C-04 | add_named()の動作テスト | E-02 L67-70 | ○ |
| C-05 | add_flag()の動作テスト | E-02 L84-87 | ○ |
| C-06 | with_positional()ビルダーテスト | E-02 L90-93 | ○ |
| C-07 | with_named()ビルダーテスト | E-02 L96-99 | ○ |
| C-08 | with_flag()ビルダーテスト | E-02 L102-105 | ○ |
| C-09 | has_flag()正常系（存在） | E-02 L253-270, E-02 L173-188（doctest） | ○ |
| C-10 | has_flag()正常系（不在） | E-02 L253-270, E-02 L190-204（doctest） | ○ |
| C-11 | has_flag()正常系（値true） | E-02 L253-270, E-02 L206-220（doctest） | ○ |
| C-12 | has_flag()正常系（値false） | E-02 L253-270, E-02 L222-236（doctest） | ○ |
| C-13 | has_flag()異常系（不正な型） | E-02 L253-270, E-02 L238-252（doctest） | ○ |
| C-14 | get_flag_span()正常系（存在） | E-02 L275-280 | ○ |
| C-15 | get_flag_span()正常系（不在） | E-02 L275-280 | ○ |
| C-16 | get_flag_value()正常系（存在） | E-02 L323-331, E-02 L285-304（doctest） | ○ |
| C-17 | get_flag_value()正常系（不在） | E-02 L323-331, E-02 L306-322（doctest） | ○ |
| C-18 | nth()正常系（存在） | E-02 L359-361, E-02 L336-358（doctest） | ○ |
| C-19 | nth()境界値（範囲外） | E-02 L359-361, E-02 L356-358（doctest） | ○ |
| C-20 | nth()境界値（空リスト） | E-02 L359-361 | ○ |
| C-21 | get_flag()正常系 | E-02 L416-422, E-02 L366-381（doctest） | ○ |
| C-22 | get_flag()正常系（不在） | E-02 L416-422, E-02 L383-398（doctest） | ○ |
| C-23 | get_flag()異常系（型変換失敗） | E-02 L416-422, E-02 L400-415（doctest） | ○ |
| C-24 | rest()正常系 | E-02 L448-454, E-02 L427-447（doctest） | ○ |
| C-25 | rest()境界値（開始位置0） | E-02 L448-454 | ○ |
| C-26 | rest()境界値（範囲外開始位置） | E-02 L448-454 | ○ |
| C-27 | opt()正常系 | E-02 L461-467 | ○ |
| C-28 | opt()正常系（不在） | E-02 L461-467 | ○ |
| C-29 | req()正常系 | E-02 L474-485, E-02 L524-525（既存テスト） | ○ |
| C-30 | req()異常系（空リスト） | E-02 L477-478 | ○ |
| C-31 | req()異常系（範囲外） | E-02 L479-484 | ○ |

### ProtocolInfo関連（UT-PPR-032 〜 UT-PPR-040）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-32 | ProtocolInfo::default()テスト | E-03 L21-29 | ○ |
| C-33 | is_compatible_with()互換性あり | E-03 L33-62, E-06 L4-18（既存テスト） | ○ |
| C-34 | is_compatible_with()互換性なし | E-03 L33-62, E-06 L20-35（既存テスト） | ○ |
| C-35 | is_compatible_with()nightly互換 | E-03 L33-62, E-06 L37-52（既存テスト） | ○ |
| C-36 | is_compatible_with()パースエラー | E-03 L34-38 | ○ |
| C-37 | supports_feature()サポートあり | E-03 L65-67 | ○ |
| C-38 | supports_feature()サポートなし | E-03 L65-67 | ○ |
| C-39 | Feature::is_compatible_with()同一 | E-03 L101-103 | ○ |
| C-40 | Feature::is_compatible_with()異なる | E-03 L101-103 | ○ |

### PluginCustomValue関連（UT-PPR-041 〜 UT-PPR-060）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-41 | PluginCustomValue::new()初期化 | E-04 L116-122 | ○ |
| C-42 | into_value()変換 | E-04 L125-127 | ○ |
| C-43 | name()取得 | E-04 L130-132 | ○ |
| C-44 | data()取得 | E-04 L135-137 | ○ |
| C-45 | notify_on_drop()取得（true） | E-04 L140-142 | ○ |
| C-46 | notify_on_drop()取得（false） | E-04 L140-142 | ○ |
| C-47 | ref_count()取得 | E-04 L145-147 | ○ |
| C-48 | serialize_from_custom_value()正常系 | E-04 L151-163, E-05 L63-75（既存テスト） | ○ |
| C-49 | deserialize_to_custom_value()正常系 | E-04 L167-177, E-05 L63-75（既存テスト） | ○ |
| C-50 | deserialize_to_custom_value()異常系 | E-04 L171-176 | ○ |
| C-51 | serialize_custom_values_in()ルート | E-04 L180-197, E-05 L91-110（既存テスト） | ○ |
| C-52 | serialize_custom_values_in()レコード | E-04 L180-197, E-05 L112-133（既存テスト） | ○ |
| C-53 | serialize_custom_values_in()リスト | E-04 L180-197, E-05 L135-153（既存テスト） | ○ |
| C-54 | serialize_custom_values_in()クロージャ | E-04 L180-197, E-05 L155-179（既存テスト） | ○ |
| C-55 | serialize_custom_values_in()重複防止 | E-04 L185-187 | ○ |
| C-56 | deserialize_custom_values_in()ルート | E-04 L201-218, E-05 L181-196（既存テスト） | ○ |
| C-57 | deserialize_custom_values_in()レコード | E-04 L201-218, E-05 L198-219（既存テスト） | ○ |
| C-58 | deserialize_custom_values_in()リスト | E-04 L201-218, E-05 L221-239（既存テスト） | ○ |
| C-59 | deserialize_custom_values_in()クロージャ | E-04 L201-218, E-05 L241-265（既存テスト） | ○ |
| C-60 | render_to_base_value_in()変換 | E-04 L221-232 | ○ |

### PipelineDataHeader関連（UT-PPR-061 〜 UT-PPR-069）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-61 | stream_id()Empty | E-01 L139-140 | ○ |
| C-62 | stream_id()Value | E-01 L141 | ○ |
| C-63 | stream_id()ListStream | E-01 L142 | ○ |
| C-64 | stream_id()ByteStream | E-01 L143 | ○ |
| C-65 | value()コンストラクタ | E-01 L148-150 | ○ |
| C-66 | list_stream()コンストラクタ | E-01 L152-154 | ○ |
| C-67 | byte_stream()コンストラクタ | E-01 L156-158 | ○ |
| C-68 | ListStreamInfo::new()初期化 | E-01 L171-177 | ○ |
| C-69 | ByteStreamInfo::new()初期化 | E-01 L192-199 | ○ |

### CallInfo/PluginCall関連（UT-PPR-070 〜 UT-PPR-076）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-70 | CallInfo::map_data()正常系 | E-01 L106-115 | ○ |
| C-71 | CallInfo::map_data()異常系 | E-01 L106-115 | ○ |
| C-72 | PluginCall::map_data()Run | E-01 L215-228 | ○ |
| C-73 | PluginCall::map_data()Metadata | E-01 L219 | ○ |
| C-74 | PluginCall::span()Run | E-01 L232-239 | ○ |
| C-75 | PluginCall::span()Metadata | E-01 L233 | ○ |
| C-76 | CustomValueOp::name()各バリアント | E-01 L274-284 | ○ |

### StreamData関連（UT-PPR-077 〜 UT-PPR-086）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-77 | StreamData From<Value> | E-01 L345-349 | ○ |
| C-78 | StreamData From<Result> Ok | E-01 L351-355 | ○ |
| C-79 | StreamData From<Result> Err | E-01 L351-355 | ○ |
| C-80 | StreamData TryFrom for Value 正常系 | E-01 L363-374 | ○ |
| C-81 | StreamData TryFrom for Value 異常系 | E-01 L369-373 | ○ |
| C-82 | PluginInput TryFrom for StreamMessage 正常系 | E-01 L313-325 | ○ |
| C-83 | PluginInput TryFrom for StreamMessage 異常系 | E-01 L322-324 | ○ |
| C-84 | PluginInput From<StreamMessage> | E-01 L327-336 | ○ |
| C-85 | PluginOutput TryFrom for StreamMessage | E-01 L538-550 | ○ |
| C-86 | PluginOutput From<StreamMessage> | E-01 L552-561 | ○ |

### PluginCallResponse関連（UT-PPR-087 〜 UT-PPR-092）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-87 | PluginCallResponse::map_data()PipelineData | E-01 L427-442 | ○ |
| C-88 | PluginCallResponse::map_data()Error | E-01 L432 | ○ |
| C-89 | PluginCallResponse::value()nothing | E-01 L447-453 | ○ |
| C-90 | PluginCallResponse::value()通常 | E-01 L447-453 | ○ |
| C-91 | PluginCallResponse::has_stream()ListStream | E-01 L458-468 | ○ |
| C-92 | PluginCallResponse::has_stream()Empty | E-01 L460 | ○ |

### Ordering関連（UT-PPR-093 〜 UT-PPR-094）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-93 | Ordering From<std::cmp::Ordering> | E-01 L489-497 | ○ |
| C-94 | std::cmp::Ordering From<Ordering> | E-01 L499-507 | ○ |

### EngineCall関連（UT-PPR-095 〜 UT-PPR-101）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-95 | EngineCall::name()各バリアント | E-01 L624-641 | ○ |
| C-96 | EngineCall::map_data()EvalClosure | E-01 L645-689 | ○ |
| C-97 | EngineCall::map_data()GetConfig | E-01 L650 | ○ |
| C-98 | EngineCallResponse::map_data()PipelineData | E-01 L707-719 | ○ |
| C-99 | EngineCallResponse::map_data()Config | E-01 L714 | ○ |
| C-100 | EngineCallResponse::value() | E-01 L724-726 | ○ |
| C-101 | EngineCallResponse::empty() | E-01 L729-731 | ○ |

### GetCompletionArgType関連（UT-PPR-102 〜 UT-PPR-103）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-102 | GetCompletionArgType From Flag | E-01 L70-79 | ○ |
| C-103 | GetCompletionArgType From Positional | E-01 L70-79 | ○ |

### test_util関連（UT-PPR-104 〜 UT-PPR-108）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-104 | TestCustomValue::clone_value() | E-07 L11-13 | ○ |
| C-105 | TestCustomValue::type_name() | E-07 L15-17 | ○ |
| C-106 | TestCustomValue::to_base_value() | E-07 L19-21 | ○ |
| C-107 | test_plugin_custom_value() | E-07 L33-38 | ○ |
| C-108 | expected_test_custom_value() | E-07 L41-43 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - 全てのテストケースに対して、ソースコードおよび既存テストコードから根拠を確認済み

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードの実装に基づいており、多くは既存テストコードのパターンを参考にしている

## 6) レビュアーチェックリスト（最小）
- [ ] EvaluatedCallのメソッド（has_flag, get_flag, nth, req, opt, rest）のエラーケースが網羅されているか
- [ ] ProtocolInfoのバージョン互換性ロジックが正しくテストされているか
- [ ] PluginCustomValueのシリアライズ/デシリアライズが全てのValue型（record, list, closure）で検証されているか
- [ ] StreamDataの型変換エラーが適切にテストされているか
- [ ] EngineCallとPluginCallのmap_data関数が全バリアントでテストされているか
