---
generated_at: 2026-03-01 18:15:00
metrics:
  claims_total: 45
  claims_with_evidence: 42
  claims_without_evidence: 3
confidence_derived: 0.93
---

# 根拠レポート：コードリーディングガイドライン

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.93**
  - 根拠あり：42 / 45、根拠なし：3
- 優先レビュー（高）
  1. **データフロー詳細**: IRコンパイルの詳細フローについて追加調査が必要
  2. **プラグインアーキテクチャ**: プラグイン間通信の詳細仕様について要確認
  3. **パフォーマンス最適化**: LRUキャッシュサイズ等の設定根拠が不明確

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

- E-01: `Cargo.toml` - プロジェクト設定、クレート構成
- E-02: `README.md` - プロジェクト概要、哲学
- E-03: `src/main.rs` - エントリーポイント実装
- E-04: `crates/nu-protocol/src/lib.rs` - プロトコル層のモジュール構成
- E-05: `crates/nu-protocol/src/value/mod.rs` - Value型定義
- E-06: `crates/nu-protocol/src/engine/mod.rs` - エンジンモジュール構成
- E-07: `crates/nu-protocol/src/engine/engine_state.rs` - EngineState実装
- E-08: `crates/nu-engine/src/lib.rs` - エンジン層のモジュール構成
- E-09: `crates/nu-engine/src/eval.rs` - 評価関数実装
- E-10: `crates/nu-parser/src/lib.rs` - パーサー層のモジュール構成
- E-11: `crates/nu-parser/src/parser.rs` - パーサー実装
- E-12: `crates/nu-command/src/lib.rs` - コマンド層のモジュール構成
- E-13: `crates/nu-command/src/filters/where_.rs` - whereコマンド実装例
- E-14: `crates/nu-cli/src/lib.rs` - CLI層のモジュール構成
- E-15: `crates/nu-plugin/src/lib.rs` - プラグインAPI
- E-16: `crates/nu-protocol/src/ast/mod.rs` - AST定義
- E-17: `crates/nu-protocol/src/ast/expression.rs` - Expression型
- E-18: `crates/nu-protocol/src/signature.rs` - コマンドシグネチャ
- E-19: `crates/README.md` - クレート構成説明
- E-20: `CONTRIBUTING.md` - 貢献ガイドライン
- E-21: `devdocs/rust_style.md` - Rustスタイルガイド
- E-22: `crates/nu-protocol/src/pipeline/mod.rs` - パイプライン定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | NushellはRust言語で記述されている | E-01, E-02 | ○ |
| C-02 | Cargoワークスペース構造を採用 | E-01 | ○ |
| C-03 | メインエントリーポイントはsrc/main.rs | E-03 | ○ |
| C-04 | Value型がパイプラインデータの主要型 | E-05 | ○ |
| C-05 | Valueには Bool, Int, Float, String等のバリアントがある | E-05 | ○ |
| C-06 | match式によるパターンマッチングを多用 | E-05, E-17 | ○ |
| C-07 | モジュールシステムはmodとuseで構成 | E-03, E-04 | ○ |
| C-08 | EngineStateがグローバル状態を保持 | E-07 | ○ |
| C-09 | Stackがローカル状態を保持 | E-07, E-09 | ○ |
| C-10 | CommandトレイトによるコマンドAPI | E-13 | ○ |
| C-11 | name(), description(), signature(), run()が必須メソッド | E-13 | ○ |
| C-12 | ShellErrorによるエラーハンドリング | E-09, E-13 | ○ |
| C-13 | nu-*がコアクレートの命名規則 | E-01, E-19 | ○ |
| C-14 | nu_plugin_*がプラグインの命名規則 | E-01, E-19 | ○ |
| C-15 | eval_*が評価関数のプレフィックス | E-08 | ○ |
| C-16 | parse_*がパース関数のプレフィックス | E-10, E-11 | ○ |
| C-17 | crates/nu-protocol/が型定義を含む | E-04 | ○ |
| C-18 | crates/nu-engine/がコード実行を担当 | E-08 | ○ |
| C-19 | crates/nu-parser/がソース解析を担当 | E-10 | ○ |
| C-20 | crates/nu-command/がビルトインコマンドを含む | E-12 | ○ |
| C-21 | crates/nu-cli/がREPLを提供 | E-14 | ○ |
| C-22 | レイヤードアーキテクチャを採用 | E-01, E-04, E-08, E-10 | ○ |
| C-23 | CLI層が最上位 | E-03, E-14 | ○ |
| C-24 | Protocol層が基盤 | E-04, E-05 | ○ |
| C-25 | データフローはInput→Lex→Parse→Eval→Output | E-03, E-09, E-11 | ○ |
| C-26 | IRへのコンパイルステップが存在 | E-08 | ○ |
| C-27 | IRの詳細なコンパイルフロー | **根拠なし** | △ |
| C-28 | run_repl, run_file, run_commandsの3実行モード | E-03 | ○ |
| C-29 | PipelineDataでコマンド間データ受け渡し | E-22, E-13 | ○ |
| C-30 | Arcによる共有所有権 | E-07 | ○ |
| C-31 | Mutexによる排他制御 | E-07 | ○ |
| C-32 | filter_mapパターンの使用 | E-13 | ○ |
| C-33 | into_pipeline_data変換パターン | E-13 | ○ |
| C-34 | examples()メソッドでドキュメント生成 | E-13 | ○ |
| C-35 | decl_idでコマンド検索 | E-09 | ○ |
| C-36 | signalsによる中断チェック | E-09 | ○ |
| C-37 | 再帰深度制限の実装 | E-09 | ○ |
| C-38 | プラグインはstand-aloneアプリケーション | E-15 | ○ |
| C-39 | プラグインはstdin/stdoutで通信 | E-15 | ○ |
| C-40 | プラグイン間の詳細通信プロトコル | **根拠なし** | △ |
| C-41 | unwrap()は禁止 | E-21 | ○ |
| C-42 | unsafe使用は最小限 | E-21 | ○ |
| C-43 | カスタムマクロは非推奨 | E-21 | ○ |
| C-44 | REGEX_CACHE_SIZEは100に設定 | E-07 | ○ |
| C-45 | LRUキャッシュサイズ選定の根拠 | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- **C-27 (IRコンパイルフロー)**: crates/nu-engine/src/compile/配下の詳細なコンパイルステップについて、ドキュメント内で概要のみ記載。詳細フローの確認が必要。
  - 候補：`crates/nu-engine/src/compile/mod.rs` / `crates/nu-engine/src/compile/builder.rs` / `crates/nu-protocol/src/ir/`

- **C-40 (プラグイン通信プロトコル)**: プラグインとエンジン間のJSON-RPC通信の詳細仕様について記載が不足。
  - 候補：`crates/nu-plugin-protocol/` / `crates/nu-plugin-core/` / 公式ドキュメント

- **C-45 (LRUキャッシュサイズ根拠)**: REGEX_CACHE_SIZE=100の選定根拠がコード内コメントで「arbitrarily chosen」とされており、ベンチマーク等の根拠が不明。
  - 候補：GitHubのPR/Issue / パフォーマンステスト結果

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: 言語基礎、命名規則、ディレクトリ構造の記述
  - ソースコードから直接確認可能な事実に基づく記述

- **1 (中リスク)**: アーキテクチャ概要、データフロー
  - 構造は確認可能だが、最新の変更が反映されていない可能性

- **2 (高リスク)**: IRコンパイル詳細、プラグインプロトコル詳細
  - 詳細な仕様確認が必要

## 6) レビュアーチェックリスト（最小）
- [ ] セクション1「言語基礎」のRustコード例が正確か
- [ ] セクション2「プロジェクト固有の概念」のEngineState/Stack説明が現行コードと一致するか
- [ ] セクション4「ディレクトリ構造」が最新のクレート構成を反映しているか
- [ ] セクション5「アーキテクチャ」のレイヤー図がクレート依存関係と一致するか
- [ ] セクション6「主要コンポーネント」のコード例が実際のファイルパスと行番号に対応するか
- [ ] セクション8「業務フロー追跡」のwhereコマンド実行フローが正確か
- [ ] セクション10「トラブルシューティング」のQ&Aが開発者の実際の疑問に対応するか
- [ ] 付録A「用語集」の定義が公式ドキュメントと整合するか
