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

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

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `crates/nu-parser/src/lib.rs` - モジュール構造と公開API定義
- E-02: `crates/nu-parser/src/lex.rs` - 字句解析器（Token, TokenContents, BlockKind, lex関数群）
- E-03: `crates/nu-parser/src/lite_parser.rs` - 軽量パーサー（LiteBlock, LitePipeline, LiteCommand, lite_parse）
- E-04: `crates/nu-parser/src/parser.rs` - メインパーサー（parse, parse_expression, parse_value等の全パース関数）
- E-05: `crates/nu-parser/src/type_check.rs` - 型チェック（type_compatible, math_result_type, check_pipeline_type等）
- E-06: `crates/nu-parser/src/flatten.rs` - AST平坦化（FlatShape, flatten_block, flatten_expression等）
- E-07: `crates/nu-parser/src/parse_patterns.rs` - パターンマッチング解析（parse_pattern, parse_list_pattern, parse_record_pattern）
- E-08: `crates/nu-parser/src/parse_shape_specs.rs` - 型シェイプ解析（parse_type, parse_shape_name, parse_completer）
- E-09: `crates/nu-parser/src/deparse.rs` - 逆パース（escape_for_script_arg, string_should_be_quoted）
- E-10: `crates/nu-parser/src/known_external.rs` - 既知外部コマンド（KnownExternal構造体とCommand実装）
- E-11: `crates/nu-parser/src/parse_keywords.rs` - キーワード解析（parse_def, parse_let, parse_use等のキーワード関数群）
- E-12: `crates/nu-parser/src/exportable.rs` - エクスポート可能シンボル（Exportable enum）

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

### lex.rs - 字句解析
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Token::new が正しくToken構造体を生成する | E-02 (lex.rs:29-32) | ○ |
| C-02 | BlockKind::closing が各括弧種別に対応する閉じ括弧を返す | E-02 (lex.rs:43-51) | ○ |
| C-03 | is_assignment_operator が =, +=, ++=, -=, *=, /= を認識する | E-02 (lex.rs:75-77) | ○ |
| C-04 | lex_item がトークンを正しく切り出す | E-02 (lex.rs:87-383) | ○ |
| C-05 | lex_raw_string が生文字列を解析する | E-02 (lex.rs:385-444) | ○ |
| C-06 | lex が入力全体をトークン化する | E-02 (lex.rs:510-532) | ○ |
| C-07 | lex_signature がシグネチャをトークン化する | E-02 (lex.rs:446-468) | ○ |
| C-08 | lex_n_tokens が指定数のトークンのみを処理する | E-02 (lex.rs:483-508) | ○ |

### lite_parser.rs - 軽量パーサー
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-09 | lite_parse がトークン列をLiteBlockに変換する | E-03 (lite_parser.rs:219-520) | ○ |
| C-10 | LiteCommand::try_add_redirection がリダイレクトを追加する | E-03 (lite_parser.rs:83-138) | ○ |
| C-11 | LiteCommand::command_parts が属性を除くコマンドパーツを返す | E-03 (lite_parser.rs:152-155) | ○ |
| C-12 | LiteRedirectionTarget がファイル/パイプリダイレクトを表現する | E-03 (lite_parser.rs:10-37) | ○ |

### parser.rs - メインパーサー
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-13 | garbage が Garbage 式を生成する | E-04 (parser.rs:26-28) | ○ |
| C-14 | is_math_expression_like が数式的な式を判定する | E-04 (parser.rs:52-125) | ○ |
| C-15 | is_variable が変数形式を判定する | E-04 (parser.rs:147-153) | ○ |
| C-16 | trim_quotes がクォートを除去する | E-04 (parser.rs:155-164) | ○ |
| C-17 | parse_external_call が外部コマンドを解析する | E-04 (parser.rs:518-550) | ○ |
| C-18 | parse_internal_call が内部コマンドを解析する | E-04 (parser.rs:1024-) | ○ |
| C-19 | parse_call がコマンドをディスパッチする | E-04 (parser.rs:1409-) | ○ |
| C-20 | parse_int が整数を解析する | E-04 (parser.rs:1843-) | ○ |
| C-21 | parse_float が浮動小数点数を解析する | E-04 (parser.rs:1888-) | ○ |
| C-22 | parse_number が数値を解析する | E-04 (parser.rs:1901-) | ○ |
| C-23 | parse_range が範囲を解析する | E-04 (parser.rs:1926-) | ○ |
| C-24 | parse_binary がバイナリリテラルを解析する | E-04 (parser.rs:1728-) | ○ |
| C-25 | parse_raw_string が生文字列を解析する | E-04 (parser.rs:2113-) | ○ |
| C-26 | parse_string が文字列を解析する | E-04 (parser.rs:3459-) | ○ |
| C-27 | parse_string_interpolation が文字列補間を解析する | E-04 (parser.rs:2279-) | ○ |
| C-28 | parse_variable_expr が変数式を解析する | E-04 (parser.rs:2457-) | ○ |
| C-29 | parse_cell_path がセルパスを解析する | E-04 (parser.rs:2519-) | ○ |
| C-30 | parse_full_cell_path が完全セルパスを解析する | E-04 (parser.rs:2683-) | ○ |
| C-31 | parse_filepath がファイルパスを解析する | E-04 (parser.rs:2838-) | ○ |
| C-32 | parse_directory がディレクトリを解析する | E-04 (parser.rs:2805-) | ○ |
| C-33 | parse_glob_pattern がグロブパターンを解析する | E-04 (parser.rs:3219-) | ○ |
| C-34 | parse_datetime が日時を解析する | E-04 (parser.rs:2872-) | ○ |
| C-35 | parse_duration が期間を解析する | E-04 (parser.rs:2912-) | ○ |
| C-36 | parse_filesize がファイルサイズを解析する | E-04 (parser.rs:2934-) | ○ |
| C-37 | parse_list_expression がリストを解析する | E-04 (parser.rs:4717-) | ○ |
| C-38 | parse_record がレコードを解析する | E-04 (parser.rs:6397-) | ○ |
| C-39 | parse_block_expression がブロックを解析する | E-04 (parser.rs:4999-) | ○ |
| C-40 | parse_closure_expression がクロージャを解析する | E-04 (parser.rs:5260-) | ○ |
| C-41 | parse_match_block_expression がmatchブロックを解析する | E-04 (parser.rs:5061-) | ○ |
| C-42 | parse_signature がシグネチャを解析する | E-04 (parser.rs:4037-) | ○ |
| C-43 | parse_operator が演算子を解析する | E-04 (parser.rs:5689-) | ○ |
| C-44 | parse_math_expression が数式を解析する | E-04 (parser.rs:5825-) | ○ |
| C-45 | parse_expression が式を解析する | E-04 (parser.rs:6054-) | ○ |
| C-46 | parse_pipeline がパイプラインを解析する | E-04 (parser.rs:6692-) | ○ |
| C-47 | parse_block がブロックを解析する | E-04 (parser.rs:6717-) | ○ |
| C-48 | parse が完全なスクリプトを解析する | E-04 (parser.rs:7297-) | ○ |
| C-49 | unescape_string がエスケープシーケンスを処理する | E-04 (parser.rs:3264-) | ○ |
| C-50 | unescape_unquote_string がクォートとエスケープを処理する | E-04 (parser.rs:3436-) | ○ |
| C-51 | discover_captures_in_closure がキャプチャを検出する | E-04 (parser.rs:6833-) | ○ |
| C-52 | compile_block がIRにコンパイルする | E-04 (parser.rs:6795-) | ○ |
| C-53 | parse_value がシェイプに従って値を解析する | E-04 (parser.rs:5401-) | ○ |
| C-54 | parse_assignment_expression が代入式を解析する | E-04 (parser.rs:5576-) | ○ |
| C-55 | parse_import_pattern がインポートパターンを解析する | E-04 (parser.rs:3573-) | ○ |
| C-56 | find_longest_decl が最長コマンド宣言を検索する | E-04 (parser.rs:1516-) | ○ |

### type_check.rs - 型チェック
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-57 | type_compatible が型の互換性を判定する | E-05 (type_check.rs:44-107) | ○ |
| C-58 | math_result_type が演算結果の型を推論する | E-05 (type_check.rs:110-770) | ○ |
| C-59 | check_pipeline_type がパイプラインの型をチェックする | E-05 (type_check.rs:775-839) | ○ |
| C-60 | check_block_input_output がブロックの入出力型をチェックする | E-05 (type_check.rs:841-919) | ○ |
| C-61 | check_range_types が範囲の型をチェックする | E-05 (type_check.rs:922-965) | ○ |

### flatten.rs - AST平坦化
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-62 | FlatShape::as_str が文字列表現を返す | E-06 (flatten.rs:55-94) | ○ |
| C-63 | flatten_block がブロックを平坦化する | E-06 (flatten.rs:669-673) | ○ |
| C-64 | flatten_expression が式を平坦化する | E-06 (flatten.rs:693-700) | ○ |
| C-65 | flatten_pipeline がパイプラインを平坦化する | E-06 (flatten.rs:675-682) | ○ |

### parse_patterns.rs - パターン解析
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-66 | garbage がGarbageパターンを生成する | E-07 (parse_patterns.rs:12-18) | ○ |
| C-67 | parse_pattern がパターンを解析する | E-07 (parse_patterns.rs:20-48) | ○ |
| C-68 | parse_variable_pattern が変数パターンを解析する | E-07 (parse_patterns.rs:66-77) | ○ |
| C-69 | parse_list_pattern がリストパターンを解析する | E-07 (parse_patterns.rs:79-159) | ○ |
| C-70 | parse_record_pattern がレコードパターンを解析する | E-07 (parse_patterns.rs:161-229) | ○ |

### parse_shape_specs.rs - 型シェイプ解析
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-71 | parse_type が型を解析する | E-08 (parse_shape_specs.rs:13-15) | ○ |
| C-72 | parse_shape_name がシェイプ名を解析する | E-08 (parse_shape_specs.rs:20-73) | ○ |
| C-73 | parse_completer が補完定義を解析する | E-08 (parse_shape_specs.rs:76-161) | ○ |

### deparse.rs - 逆パース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-74 | escape_for_script_arg がスクリプト引数をエスケープする | E-09 (deparse.rs:24-45) | ○ |
| C-75 | string_should_be_quoted がクォート必要性を判定する | E-09 (deparse.rs:3-15) | ○ |

### known_external.rs - 既知外部コマンド
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-76 | KnownExternal がCommandトレイトを実装する | E-10 (known_external.rs:18-107) | ○ |
| C-77 | KnownExternal::run が外部コマンドを実行する | E-10 (known_external.rs:51-95) | ○ |

### parse_keywords.rs - キーワード解析
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-78 | parse_keyword がキーワードをディスパッチする | E-11 (parse_keywords.rs:125-164) | ○ |
| C-79 | parse_def_predecl が事前宣言を処理する | E-11 (parse_keywords.rs:166-) | ○ |
| C-80 | parse_def がdef定義を解析する | E-11 (parse_keywords.rs:447-) | ○ |
| C-81 | parse_extern がextern定義を解析する | E-11 (parse_keywords.rs:496-) | ○ |
| C-82 | parse_alias がalias定義を解析する | E-11 (parse_keywords.rs:1137-) | ○ |
| C-83 | parse_let がlet文を解析する | E-11 (parse_keywords.rs:3234-) | ○ |
| C-84 | parse_mut がmut文を解析する | E-11 (parse_keywords.rs:3513-) | ○ |
| C-85 | parse_const がconst文を解析する | E-11 (parse_keywords.rs:3352-) | ○ |
| C-86 | parse_use がuse文を解析する | E-11 (parse_keywords.rs:2452-) | ○ |
| C-87 | parse_module がmodule定義を解析する | E-11 (parse_keywords.rs:2261-) | ○ |
| C-88 | parse_hide がhide文を解析する | E-11 (parse_keywords.rs:2699-) | ○ |
| C-89 | parse_overlay_use がoverlay use文を解析する | E-11 (parse_keywords.rs:2934-) | ○ |
| C-90 | parse_overlay_hide がoverlay hide文を解析する | E-11 (parse_keywords.rs:3172-) | ○ |
| C-91 | parse_overlay_new がoverlay new文を解析する | E-11 (parse_keywords.rs:2886-) | ○ |
| C-92 | parse_for がfor文を解析する | E-11 (parse_keywords.rs:271-) | ○ |
| C-93 | parse_source がsource文を解析する | E-11 (parse_keywords.rs:3630-) | ○ |
| C-94 | parse_where がwhere文を解析する | E-11 (parse_keywords.rs:3852-) | ○ |
| C-95 | is_unaliasable_parser_keyword がエイリアス不可キーワードを判定する | E-11 (parse_keywords.rs:107-121) | ○ |
| C-96 | ensure_not_reserved_variable_name が予約変数名をチェックする | E-11 (parse_keywords.rs:63-73) | ○ |
| C-97 | find_dirs_var がディレクトリ変数を検索する | E-11 (parse_keywords.rs:3976-) | ○ |
| C-98 | find_in_dirs がディレクトリ内でファイルを検索する | E-11 (parse_keywords.rs:3995-) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし：全テストケースがソースコードに基づいて生成されています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコード解析に基づいて生成されており、根拠が明確です

### 注意点
- nu-parserは非常に大きなモジュール（約270KBのparser.rs）であり、テストケースは主要な公開関数に焦点を当てています
- 内部のヘルパー関数（private functions）は直接テストケースに含まれていませんが、公開関数のテストを通じて間接的にテストされます
- 一部のテストケースはnushellの実行環境（StateWorkingSet等）を必要とするため、統合テストとして実装することが推奨されます

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースがソースコードの公開関数を網羅しているか確認
- [ ] テスト観点（正常系/異常系/境界値）のバランスが適切か確認
- [ ] 優先度の設定がビジネス重要度と一致しているか確認
- [ ] parser.rsの主要なparse_*関数がすべてカバーされているか確認
- [ ] 型チェック関連のテストケースが演算子ごとに網羅されているか確認
- [ ] キーワード解析関数（parse_def, parse_let等）のテストケースが存在するか確認
