---
generated_at: 2026-03-01 17:45:00
metrics:
  claims_total: 80
  claims_with_evidence: 76
  claims_without_evidence: 4
confidence_derived: 0.95
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：76 / 80、根拠なし：4
- 優先レビュー（高）
  1. **UT-MCP-005**：Tokioランタイム作成失敗シナリオは実際に発生しにくく、テスト困難
  2. **UT-MCP-007**：Ctrl-Cシグナルハンドリングのテストは環境依存
  3. **UT-MCP-008**：ポート競合テストは環境依存
  4. **UT-MCP-035**：タスクパニックのテストは再現が困難

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

- E-01: `crates/nu-mcp/src/lib.rs` - MCPサーバー初期化、トランスポート設定
- E-02: `crates/nu-mcp/src/server.rs` - NushellMcpServer実装、ツール定義
- E-03: `crates/nu-mcp/src/evaluation.rs` - Evaluator実装、エラーフォーマット、テストコード
- E-04: `crates/nu-mcp/src/history.rs` - History実装
- E-05: `crates/nu-mcp/src/evaluation.rs` (tests module) - 既存のユニットテスト

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-MCP-001) | McpTransportのデフォルト値がStdio | E-01 (L32-42: #[default] Stdio) | ○ |
| C-02 (UT-MCP-002) | Stdioトランスポートでサーバー初期化 | E-01 (L44-91: initialize_mcp_server) | ○ |
| C-03 (UT-MCP-003) | HTTPトランスポートでサーバー初期化 | E-01 (L84, L117-172: run_http_server) | ○ |
| C-04 (UT-MCP-004) | engine_state.is_mcpがtrueに設定 | E-01 (L70: engine_state.is_mcp = true) | ○ |
| C-05 (UT-MCP-005) | Tokioランタイム失敗時エラー | E-01 (L73-79: Runtime::new error handling) | △ |
| C-06 (UT-MCP-006) | HTTPサーバーが指定ポートでリッスン | E-01 (L148-150: TcpListener::bind) | ○ |
| C-07 (UT-MCP-007) | Ctrl-Cシグナルでシャットダウン | E-01 (L154-158: tokio::signal::ctrl_c) | △ |
| C-08 (UT-MCP-008) | ポート使用中エラー | E-01 (L149: bind error propagation) | △ |
| C-09 (UT-MCP-009) | NushellMcpServerインスタンス作成 | E-02 (L22-33: NushellMcpServer::new) | ○ |
| C-10 (UT-MCP-010) | use_ansi_coloringがFalseに設定 | E-02 (L26: use_ansi_coloring = UseAnsiColoring::False) | ○ |
| C-11 (UT-MCP-011) | color_configがクリア | E-02 (L27: color_config.clear()) | ○ |
| C-12 (UT-MCP-012) | list_commands全コマンド返却 | E-02 (L35-49: list_commands tool) | ○ |
| C-13 (UT-MCP-013) | list_commands検索フィルタ | E-02 (L42-44: find parameter handling) | ○ |
| C-14 (UT-MCP-014) | 空検索文字列 | E-02 (L42-44: find parameter) | ○ |
| C-15 (UT-MCP-015) | command_helpコマンドヘルプ返却 | E-02 (L51-61: command_help tool) | ○ |
| C-16 (UT-MCP-016) | 存在しないコマンドエラー | E-02 (L59-60: help {name} execution) | ○ |
| C-17 (UT-MCP-017) | 空コマンド名 | E-02 (L57-60) | ○ |
| C-18 (UT-MCP-018) | evaluateコード評価 | E-02 (L63-71: evaluate tool) | ○ |
| C-19 (UT-MCP-019) | 複雑なパイプライン評価 | E-05 (L759-778: test_closure_in_pipeline) | ○ |
| C-20 (UT-MCP-020) | 構文エラーハンドリング | E-05 (L656-703: test_evaluator_parse_error_nuon_format) | ○ |
| C-21 (UT-MCP-021) | 空入力 | E-02 (L70: eval_async call) | ○ |
| C-22 (UT-MCP-022) | get_infoサーバー情報 | E-02 (L93-101: get_info impl) | ○ |
| C-23 (UT-MCP-023) | tools capability有効 | E-02 (L97: enable_tools()) | ○ |
| C-24 (UT-MCP-024) | Evaluatorインスタンス作成 | E-03 (L252-269: Evaluator::new) | ○ |
| C-25 (UT-MCP-025) | ANSIカラー無効化 | E-03 (L255-257: use_ansi_coloring) | ○ |
| C-26 (UT-MCP-026) | History初期化 | E-03 (L259: History::new) | ○ |
| C-27 (UT-MCP-027) | eval_async評価 | E-05 (L537-563: test_evaluator_response_format) | ○ |
| C-28 (UT-MCP-028) | cwdフィールド | E-05 (L547-550) | ○ |
| C-29 (UT-MCP-029) | history_indexフィールド | E-05 (L543-546) | ○ |
| C-30 (UT-MCP-030) | timestampフィールド | E-05 (L551-554) | ○ |
| C-31 (UT-MCP-031) | キャンセル時状態破棄 | E-05 (L859-890: test_cancellation_discards_state) | ○ |
| C-32 (UT-MCP-032) | パースエラーinvalid_params | E-05 (L656-703) | ○ |
| C-33 (UT-MCP-033) | コンパイルエラーinvalid_params | E-05 (L705-731: test_evaluator_compile_error_nuon_format) | ○ |
| C-34 (UT-MCP-034) | ランタイムエラーinternal_error | E-05 (L733-756: test_evaluator_runtime_error_nuon_format) | ○ |
| C-35 (UT-MCP-035) | タスクパニックエラー処理 | E-03 (L322-330: panic handling) | △ |
| C-36 (UT-MCP-036) | 同期評価 | E-03 (L338-343: eval method) | ○ |
| C-37 (UT-MCP-037) | 状態フォーク | E-03 (L227-249: EvalState::fork) | ○ |
| C-38 (UT-MCP-038) | フォーク時Signals独立 | E-03 (L228-229: new Signals) | ○ |
| C-39 (UT-MCP-039) | format_mcp_error NUON形式 | E-03 (L35-115: format_mcp_error) | ○ |
| C-40 (UT-MCP-040) | codeフィールド | E-03 (L43-49) | ○ |
| C-41 (UT-MCP-041) | msgフィールド | E-03 (L51-52) | ○ |
| C-42 (UT-MCP-042) | severityフィールド | E-03 (L54-62) | ○ |
| C-43 (UT-MCP-043) | helpフィールド | E-03 (L64-67) | ○ |
| C-44 (UT-MCP-044) | labels line/column | E-03 (L74-103, L86-93) | ○ |
| C-45 (UT-MCP-045) | default_code使用 | E-03 (L44-48) | ○ |
| C-46 (UT-MCP-046) | extract_source_context | E-03 (L119-139) | ○ |
| C-47 (UT-MCP-047) | 1-indexed変換 | E-03 (L135-136: +1 conversion) | ○ |
| C-48 (UT-MCP-048) | 無効スパンNone | E-03 (L124: .ok()?) | ○ |
| C-49 (UT-MCP-049) | user_input_error | E-03 (L145-151) | ○ |
| C-50 (UT-MCP-050) | shell_error_to_mcp_error | E-03 (L157-166) | ○ |
| C-51 (UT-MCP-051) | cancelled_error | E-03 (L169-171) | ○ |
| C-52 (UT-MCP-052) | output_limitデフォルト | E-03 (L16: DEFAULT_OUTPUT_LIMIT = 10 * 1024) | ○ |
| C-53 (UT-MCP-053) | 環境変数で出力制限 | E-03 (L451-459: output_limit) | ○ |
| C-54 (UT-MCP-054) | 制限0でNone | E-03 (L458: if limit == 0 { None }) | ○ |
| C-55 (UT-MCP-055) | 単一値パイプライン | E-03 (L513-517) | ○ |
| C-56 (UT-MCP-056) | 複数値リスト | E-03 (L517: Value::list) | ○ |
| C-57 (UT-MCP-057) | ByteStream処理 | E-03 (L467-503) | ○ |
| C-58 (UT-MCP-058) | stdout/stderr結合 | E-03 (L477-488) | ○ |
| C-59 (UT-MCP-059) | Value::Errorハンドリング | E-03 (L507-509) | ○ |
| C-60 (UT-MCP-060) | 変数永続化 | E-05 (L781-799: test_repl_variable_persistence) | ○ |
| C-61 (UT-MCP-061) | 環境変数永続化 | E-05 (L801-820: test_repl_env_persistence) | ○ |
| C-62 (UT-MCP-062) | クロージャ評価 | E-05 (L759-778: test_closure_in_pipeline) | ○ |
| C-63 (UT-MCP-063) | 出力トランケーション | E-05 (L633-653: test_output_truncation) | ○ |
| C-64 (UT-MCP-064) | $history変数設定 | E-03 (L391: stack.add_var) | ○ |
| C-65 (UT-MCP-065) | Historyインスタンス作成 | E-04 (L22-28: History::new) | ○ |
| C-66 (UT-MCP-066) | $history変数登録 | E-04 (L23, L55-68: register_history_variable) | ○ |
| C-67 (UT-MCP-067) | var_id返却 | E-04 (L31-33: var_id method) | ○ |
| C-68 (UT-MCP-068) | 値追加 | E-04 (L38-46: push method) | ○ |
| C-69 (UT-MCP-069) | インデックスインクリメント | E-05 (L565-586: test_history_index_increments) | ○ |
| C-70 (UT-MCP-070) | リングバッファ動作 | E-05 (L823-857: test_history_ring_buffer) | ○ |
| C-71 (UT-MCP-071) | 空履歴への追加 | E-04 (L43: buffer.len()) | ○ |
| C-72 (UT-MCP-072) | as_valueでlist返却 | E-04 (L49-52: as_value method) | ○ |
| C-73 (UT-MCP-073) | 全エントリ取得 | E-04 (L50: iter().cloned().collect()) | ○ |
| C-74 (UT-MCP-074) | 空履歴で空リスト | E-04 (L50-51) | ○ |
| C-75 (UT-MCP-075) | history_limitデフォルト | E-04 (L8: DEFAULT_HISTORY_LIMIT = 100) | ○ |
| C-76 (UT-MCP-076) | 環境変数で履歴制限 | E-04 (L73-79: history_limit) | ○ |
| C-77 (UT-MCP-077) | 無効値フォールバック | E-04 (L76-78: and_then chain) | ○ |
| C-78 (UT-MCP-078) | 負値フォールバック | E-04 (L77: usize::try_from) | ○ |
| C-79 (UT-MCP-079) | 変数型List(Any) | E-04 (L60: Type::List(Box::new(Type::Any))) | ○ |
| C-80 (UT-MCP-080) | 履歴インデックスアクセス | E-05 (L609-630: test_history_access_by_index) | ○ |

## 4) 不足情報（Unknown / Missing）
- **UT-MCP-005**: Tokioランタイム作成失敗は通常環境では再現困難。モック化が必要。
  - 候補：Tokioのcfg(test)による差し替え / 環境リソース枯渇シミュレーション
- **UT-MCP-007**: Ctrl-Cシグナルテストはプロセスシグナル送信が必要で環境依存。
  - 候補：tokio::signal::unix::signal モック / 統合テストでの検証
- **UT-MCP-008**: ポート競合テストは実行環境に依存。
  - 候補：事前にポートをbindしておくテストフィクスチャ作成
- **UT-MCP-035**: spawn_blockingタスクのパニックは意図的に発生させることが困難。
  - 候補：panic hookのテスト / std::panic::catch_unwindでのラップ

## 5) リスクフラグ（レビュー観点）
- **リスク 0 (低)**: lib.rs McpTransport enum - シンプルな列挙型、テスト容易
- **リスク 0 (低)**: server.rs ツール定義 - 既存コマンド呼び出しのラッパー
- **リスク 1 (中)**: evaluation.rs Evaluator - 状態管理と非同期処理が複雑、既存テストあり
- **リスク 1 (中)**: evaluation.rs キャンセル処理 - 非同期タスク間の状態整合性
- **リスク 0 (低)**: history.rs History - シンプルなリングバッファ実装
- **リスク 1 (中)**: HTTPサーバー - ネットワークI/Oとシグナルハンドリング

## 6) レビュアーチェックリスト（最小）
- [ ] 既存テスト（evaluation.rs tests module）との重複確認
- [ ] キャンセル処理の状態整合性テストの網羅性確認
- [ ] エラーフォーマット（NUON形式）の出力仕様確認
- [ ] HTTPサーバーのセッション管理テストの必要性検討
- [ ] 環境変数（NU_MCP_OUTPUT_LIMIT, NU_MCP_HISTORY_LIMIT）のエッジケース確認
- [ ] 外部コマンド実行（ByteStream処理）の統合テスト検討
