---
generated_at: 2026-03-01 16:00:00
metrics:
  claims_total: 242
  claims_with_evidence: 233
  claims_without_evidence: 9
confidence_derived: 0.96
---

# 根拠レポート：crates_oxide.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：233 / 242、根拠なし：9
- 優先レビュー（高）
  1. **UT-OXD-011 (advance_by境界値)**: advance_byのクランプ動作はmin()呼び出しで推定されるが、入力長超過時の明示的テストコードなし
  2. **UT-OXD-013 (move_toクランプ)**: move_toのクランプ動作はmin()呼び出しで推定されるが、入力長超過時の明示的テストコードなし
  3. **UT-OXD-024 (split_pattern空文字列)**: 空文字列入力時の動作はコードの条件分岐から推定されるが明示的テストなし
  4. **UT-OXD-023 (存在しないパスのスキップ)**: ファイルシステム非存在時のエラーハンドリングはコードの条件分岐から推定されるが明示的テストなし
  5. **UT-OXD-142 (重複候補処理)**: drop_covered_spansの動作は実装コードから推定可能だが、複雑なケースでの結合テスト根拠が不足
  6. **UT-OXD-152 (Scanner::scan)**: Scanner::scanのソート済み結果返却は実装から推定されるが、大規模入力での動作検証根拠が不足
  7. **UT-OXD-155 (get_candidates_with_positions)**: 位置情報付き候補抽出はメソッドシグネチャから推定されるが、バイトオフセットの正確性根拠が不足
  8. **UT-OXD-170 (resolve_globs)**: ファイルシステム依存のglob解決ロジックの完全な検証は困難
  9. **UT-OXD-229 (Vue lang属性なし)**: lang属性なしのテンプレートがそのまま返却される動作はコードの正規表現パターンから推定

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `crates/oxide/src/cursor.rs` -- Cursor構造体と全メソッド定義（new, curr, next, prev, advance, advance_twice, advance_by, move_to, Display impl）。既存テストあり。
- E-02: `crates/oxide/src/glob.rs` -- GlobEntry構造体、split_pattern, hoist_static_glob_parts, optimize_patterns関数およびインラインテスト
- E-03: `crates/oxide/src/fast_skip.rs` -- fast_skip関数（SIMD最適化16バイトストライド）
- E-04: `crates/oxide/src/paths.rs` -- Path構造体、trim_prefix, join, canonicalize, Display, From実装
- E-05: `crates/oxide/src/throughput.rs` -- Throughput構造体、compute, Display, format_byte_size
- E-06: `crates/oxide/src/extractor/machine.rs` -- Span構造体、MachineState enum、Machine trait定義（reset, next, restart, done, テストヘルパー）
- E-07: `crates/oxide/src/extractor/bracket_stack.rs` -- BracketStack構造体（固定サイズ32配列、push, pop, is_empty, reset）
- E-08: `crates/oxide/src/extractor/string_machine.rs` -- StringMachine（引用符文字列抽出、空白拒否ロジック）
- E-09: `crates/oxide/src/extractor/css_variable_machine.rs` -- CssVariableMachine（--変数名パターン抽出、エスケープ対応）
- E-10: `crates/oxide/src/extractor/arbitrary_value_machine.rs` -- ArbitraryValueMachine（[...]括弧バランス、文字列サポート、エスケープ処理）
- E-11: `crates/oxide/src/extractor/arbitrary_variable_machine.rs` -- ArbitraryVariableMachine（多状態マシン: Idle/Parsing/ParsingDataType/ParsingFallback）
- E-12: `crates/oxide/src/extractor/arbitrary_property_machine.rs` -- ArbitraryPropertyMachine（[property:value]パターン、URL/!important拒否）
- E-13: `crates/oxide/src/extractor/modifier_machine.rs` -- ModifierMachine（/modifier, /[value], /(--var)パターン）
- E-14: `crates/oxide/src/extractor/named_utility_machine.rs` -- NamedUtilityMachine（ユーティリティ名抽出、@プレフィックス、負の値、%対応）
- E-15: `crates/oxide/src/extractor/named_variant_machine.rs` -- NamedVariantMachine（4状態マシン、モディファイア付きバリアント、コンテナクエリ）
- E-16: `crates/oxide/src/extractor/variant_machine.rs` -- VariantMachine（任意/名前付きバリアント統合）
- E-17: `crates/oxide/src/extractor/utility_machine.rs` -- UtilityMachine（任意プロパティ、名前付きユーティリティ、モディファイア、!important統合）
- E-18: `crates/oxide/src/extractor/candidate_machine.rs` -- CandidateMachine（バリアント+ユーティリティ統合、境界バリデーション）
- E-19: `crates/oxide/src/extractor/boundary.rs` -- Boundary文字分類（ClassifyBytesマクロ: Common/Before/After/Other）
- E-20: `crates/oxide/src/extractor/mod.rs` -- Extractor構造体（extract, extract_variables_from_css, drop_covered_spans, extract_sub_candidates）。広範な既存テストあり。
- E-21: `crates/oxide/src/scanner/mod.rs` -- Scanner構造体（scan, scan_content, get_files, get_globs, get_normalized_sources, get_candidates_with_positions, pre_process_input）
- E-22: `crates/oxide/src/scanner/sources.rs` -- PublicSourceEntry, SourceEntry(Auto/Pattern/Ignored/External), Sources, public_source_entries_to_private_source_entries
- E-23: `crates/oxide/src/scanner/detect_sources.rs` -- resolve_globs関数
- E-24: `crates/oxide/src/scanner/auto_source_detection.rs` -- RULES, IGNORED_CONTENT_DIRS, BINARY_EXTENSIONS_GLOB（LazyLock定数）
- E-25: `crates/oxide/src/scanner/init_tracing.rs` -- SHOULD_TRACE, init_tracing関数
- E-26: `crates/oxide/src/extractor/pre_processors/ruby.rs` -- Ruby PreProcessor（%w構文、コメント除去、埋め込みテンプレート、strict locals）。既存テスト7件。
- E-27: `crates/oxide/src/extractor/pre_processors/pug.rs` -- Pug PreProcessor（ドット変換、括弧内保持、属性括弧、CSS変数括弧保持）。既存テスト4件。
- E-28: `crates/oxide/src/extractor/pre_processors/slim.rs` -- Slim PreProcessor（ドット変換、%w[]、トップレベル[処理、属性括弧）。既存テスト7件。
- E-29: `crates/oxide/src/extractor/pre_processors/haml.rs` -- Haml PreProcessor（ドット変換、ハッシュ属性、Ruby評価行、HAML/HTMLコメント、インデントブロック）。既存テスト6件。
- E-30: `crates/oxide/src/extractor/pre_processors/clojure.rs` -- Clojure PreProcessor（キーワード、ドット分割、コメント、シンボルリスト、is_keyword_character）。既存テスト8件。
- E-31: `crates/oxide/src/extractor/pre_processors/json.rs` -- Json PreProcessor（括弧変換、文字列保持）。既存テスト1件。
- E-32: `crates/oxide/src/extractor/pre_processors/svelte.rs` -- Svelte PreProcessor（class:変換、空白/タブ/改行対応）。既存テスト1件。
- E-33: `crates/oxide/src/extractor/pre_processors/razor.rs` -- Razor PreProcessor（@@変換、@("@")変換）。既存テスト2件。
- E-34: `crates/oxide/src/extractor/pre_processors/markdown.rs` -- Markdown PreProcessor（{.class}インラインディレクティブ、ネスト保持）。既存テスト2件。
- E-35: `crates/oxide/src/extractor/pre_processors/elixir.rs` -- Elixir PreProcessor（~W/~w/~c/~C/~s/~Sシジル処理）。既存テスト2件。
- E-36: `crates/oxide/src/extractor/pre_processors/vue.rs` -- Vue PreProcessor（template lang属性正規表現処理）。既存テスト1件。
- E-37: `crates/oxide/src/extractor/pre_processors/rust.rs` -- Rust PreProcessor（Leptos class:、Maud html!テンプレート、エスケープ処理、括弧ネスト）。既存テスト2件。
- E-38: `crates/oxide/src/lib.rs` -- モジュールルート、pub module宣言、re-exports
- E-39: `crates/oxide/src/extractor/pre_processors/mod.rs` -- PreProcessorモジュールディスパッチ定義
- E-40: `crates/oxide/src/extractor/pre_processors/pre_processor.rs` -- PreProcessorトレイト定義（process, test, test_extract_exact, test_extract_contains, extract_annotated）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | UT-OXD-001: Cursorがnewで正しく初期化される | E-01 | ○ |
| C-02 | UT-OXD-002: currが現在位置バイトを返す | E-01 | ○ |
| C-03 | UT-OXD-003: curr境界外で0x00を返す | E-01 | ○ |
| C-04 | UT-OXD-004: nextが次バイトを返す | E-01 | ○ |
| C-05 | UT-OXD-005: next末尾で0x00を返す | E-01 | ○ |
| C-06 | UT-OXD-006: prevが前バイトを返す | E-01 | ○ |
| C-07 | UT-OXD-007: prev先頭で0x00を返す | E-01 | ○ |
| C-08 | UT-OXD-008: advanceでpos+1 | E-01 | ○ |
| C-09 | UT-OXD-009: advance_twiceでpos+2 | E-01 | ○ |
| C-10 | UT-OXD-010: advance_byで指定量前進 | E-01 | ○ |
| C-11 | UT-OXD-011: advance_by入力末尾超過時にクランプ | E-01 | △ |
| C-12 | UT-OXD-012: move_toで指定位置移動 | E-01 | ○ |
| C-13 | UT-OXD-013: move_to入力末尾超過時にクランプ | E-01 | △ |
| C-14 | UT-OXD-014: Display実装の出力形式 | E-01 | ○ |
| C-15 | UT-OXD-015: 空入力でcurrが0x00を返す | E-01 | ○ |
| C-16 | UT-OXD-016: split_patternの静的/動的分割 | E-02 | ○ |
| C-17 | UT-OXD-017: ワイルドカードなしの静的パス | E-02 | ○ |
| C-18 | UT-OXD-018: 先頭*の動的パターン | E-02 | ○ |
| C-19 | UT-OXD-019: hoist_static_glob_partsの基本動作 | E-02 | ○ |
| C-20 | UT-OXD-020: optimize_patternsのパターン統合 | E-02 | ○ |
| C-21 | UT-OXD-021: optimize_patternsのソート | E-02 | ○ |
| C-22 | UT-OXD-022: ブレース展開 | E-02 | ○ |
| C-23 | UT-OXD-023: 存在しないパスのスキップ | E-02 | △ |
| C-24 | UT-OXD-024: split_pattern空文字列処理 | E-02 | △ |
| C-25 | UT-OXD-025: fast_skipの空白スキップ | E-03 | ○ |
| C-26 | UT-OXD-026: fast_skip非空白でNone | E-03 | ○ |
| C-27 | UT-OXD-027: fast_skip残りバイト不足でNone | E-03 | ○ |
| C-28 | UT-OXD-028: Pathプレフィックス除去 | E-04 | ○ |
| C-29 | UT-OXD-029: Path不一致プレフィックス | E-04 | ○ |
| C-30 | UT-OXD-030: Pathパス結合 | E-04 | ○ |
| C-31 | UT-OXD-031: Path空コンポーネント結合 | E-04 | ○ |
| C-32 | UT-OXD-032: Pathバックスラッシュ変換 | E-04 | ○ |
| C-33 | UT-OXD-033: Path型変換(From) | E-04 | ○ |
| C-34 | UT-OXD-034: Throughput計算 | E-05 | ○ |
| C-35 | UT-OXD-035: Throughput表示 | E-05 | ○ |
| C-36 | UT-OXD-036: format_byte_size単位変換 | E-05 | ○ |
| C-37 | UT-OXD-037: format_byte_sizeゼロバイト | E-05 | ○ |
| C-38 | UT-OXD-038: format_byte_size KB境界 | E-05 | ○ |
| C-39 | UT-OXD-039: Span生成 | E-06 | ○ |
| C-40 | UT-OXD-040: Spanスライス取得 | E-06 | ○ |
| C-41 | UT-OXD-041: 空Spanスライス | E-06 | ○ |
| C-42 | UT-OXD-042: 前方境界判定(空白) | E-19 | ○ |
| C-43 | UT-OXD-043: 前方境界判定(引用符) | E-19 | ○ |
| C-44 | UT-OXD-044: 無効な前方境界 | E-19 | ○ |
| C-45 | UT-OXD-045: 後方境界判定(空白) | E-19 | ○ |
| C-46 | UT-OXD-046: 無効な後方境界 | E-19 | ○ |
| C-47 | UT-OXD-047: 境界バリデーション(有効) | E-19 | ○ |
| C-48 | UT-OXD-048: 境界バリデーション(無効) | E-19 | ○ |
| C-49 | UT-OXD-049: 先頭位置境界 | E-19 | ○ |
| C-50 | UT-OXD-050: BracketStack丸括弧プッシュ | E-07 | ○ |
| C-51 | UT-OXD-051: BracketStack角括弧プッシュ | E-07 | ○ |
| C-52 | UT-OXD-052: BracketStack波括弧プッシュ | E-07 | ○ |
| C-53 | UT-OXD-053: BracketStackスタックオーバーフロー | E-07 | ○ |
| C-54 | UT-OXD-054: BracketStack正常ポップ | E-07 | ○ |
| C-55 | UT-OXD-055: BracketStack不一致ポップ | E-07 | ○ |
| C-56 | UT-OXD-056: BracketStack空スタックポップ | E-07 | ○ |
| C-57 | UT-OXD-057: BracketStack空判定true | E-07 | ○ |
| C-58 | UT-OXD-058: BracketStack非空判定false | E-07 | ○ |
| C-59 | UT-OXD-059: BracketStackリセット | E-07 | ○ |
| C-60 | UT-OXD-060: StringMachineシングルクォート | E-08 | ○ |
| C-61 | UT-OXD-061: StringMachineダブルクォート | E-08 | ○ |
| C-62 | UT-OXD-062: StringMachineエスケープ引用符 | E-08 | ○ |
| C-63 | UT-OXD-063: StringMachine空白拒否 | E-08 | ○ |
| C-64 | UT-OXD-064: StringMachine不完全文字列 | E-08 | ○ |
| C-65 | UT-OXD-065: StringMachine非文字列入力 | E-08 | ○ |
| C-66 | UT-OXD-066: CssVariableMachine基本変数 | E-09 | ○ |
| C-67 | UT-OXD-067: CssVariableMachineハイフン区切り | E-09 | ○ |
| C-68 | UT-OXD-068: CssVariableMachineエスケープ | E-09 | ○ |
| C-69 | UT-OXD-069: CssVariableMachine不完全変数 | E-09 | ○ |
| C-70 | UT-OXD-070: CssVariableMachineエスケープ空白拒否 | E-09 | ○ |
| C-71 | UT-OXD-071: CssVariableMachine非ASCII | E-09 | ○ |
| C-72 | UT-OXD-072: CssVariableMachineシングルハイフン | E-09 | ○ |
| C-73 | UT-OXD-073: ArbitraryValueMachine基本任意値 | E-10 | ○ |
| C-74 | UT-OXD-074: ArbitraryValueMachineネスト括弧 | E-10 | ○ |
| C-75 | UT-OXD-075: ArbitraryValueMachine文字列内括弧 | E-10 | ○ |
| C-76 | UT-OXD-076: ArbitraryValueMachine空括弧拒否 | E-10 | ○ |
| C-77 | UT-OXD-077: ArbitraryValueMachine空白拒否 | E-10 | ○ |
| C-78 | UT-OXD-078: ArbitraryValueMachine不均衡括弧 | E-10 | ○ |
| C-79 | UT-OXD-079: ArbitraryValueMachineテンプレートリテラル拒否 | E-10 | ○ |
| C-80 | UT-OXD-080: ArbitraryValueMachineエスケープ括弧 | E-10 | ○ |
| C-81 | UT-OXD-081: ArbitraryVariableMachine基本参照 | E-11 | ○ |
| C-82 | UT-OXD-082: ArbitraryVariableMachineフォールバック | E-11 | ○ |
| C-83 | UT-OXD-083: ArbitraryVariableMachineデータ型ヒント | E-11 | ○ |
| C-84 | UT-OXD-084: ArbitraryVariableMachine非CSS変数拒否 | E-11 | ○ |
| C-85 | UT-OXD-085: ArbitraryVariableMachine不完全変数拒否 | E-11 | ○ |
| C-86 | UT-OXD-086: ArbitraryVariableMachineフォールバック空白拒否 | E-11 | ○ |
| C-87 | UT-OXD-087: ArbitraryVariableMachine空括弧拒否 | E-11 | ○ |
| C-88 | UT-OXD-088: ArbitraryPropertyMachine基本プロパティ | E-12 | ○ |
| C-89 | UT-OXD-089: ArbitraryPropertyMachineハイフン付き | E-12 | ○ |
| C-90 | UT-OXD-090: ArbitraryPropertyMachine CSS変数設定 | E-12 | ○ |
| C-91 | UT-OXD-091: ArbitraryPropertyMachineコロンなし拒否 | E-12 | ○ |
| C-92 | UT-OXD-092: ArbitraryPropertyMachine空白拒否 | E-12 | ○ |
| C-93 | UT-OXD-093: ArbitraryPropertyMachine複数コロン拒否 | E-12 | ○ |
| C-94 | UT-OXD-094: ArbitraryPropertyMachine URL拒否 | E-12 | ○ |
| C-95 | UT-OXD-095: ArbitraryPropertyMachine !important拒否 | E-12 | ○ |
| C-96 | UT-OXD-096: ModifierMachine名前付きモディファイア | E-13 | ○ |
| C-97 | UT-OXD-097: ModifierMachine数値モディファイア | E-13 | ○ |
| C-98 | UT-OXD-098: ModifierMachine任意値モディファイア | E-13 | ○ |
| C-99 | UT-OXD-099: ModifierMachine CSS変数モディファイア | E-13 | ○ |
| C-100 | UT-OXD-100: ModifierMachine空任意値拒否 | E-13 | ○ |
| C-101 | UT-OXD-101: ModifierMachine空変数参照拒否 | E-13 | ○ |
| C-102 | UT-OXD-102: ModifierMachineスラッシュのみ拒否 | E-13 | ○ |
| C-103 | UT-OXD-103: NamedUtilityMachine単純ユーティリティ | E-14 | ○ |
| C-104 | UT-OXD-104: NamedUtilityMachineハイフン区切り | E-14 | ○ |
| C-105 | UT-OXD-105: NamedUtilityMachine小数値 | E-14 | ○ |
| C-106 | UT-OXD-106: NamedUtilityMachine @プレフィックス | E-14 | ○ |
| C-107 | UT-OXD-107: NamedUtilityMachine負の値 | E-14 | ○ |
| C-108 | UT-OXD-108: NamedUtilityMachine任意値構文 | E-14 | ○ |
| C-109 | UT-OXD-109: NamedUtilityMachine変数ショートハンド | E-14 | ○ |
| C-110 | UT-OXD-110: NamedUtilityMachine %値 | E-14 | ○ |
| C-111 | UT-OXD-111: NamedUtilityMachine大文字拒否 | E-14 | ○ |
| C-112 | UT-OXD-112: NamedUtilityMachine末尾ハイフン拒否 | E-14 | ○ |
| C-113 | UT-OXD-113: NamedUtilityMachineハイフンのみ拒否 | E-14 | ○ |
| C-114 | UT-OXD-114: NamedVariantMachine基本バリアント | E-15 | ○ |
| C-115 | UT-OXD-115: NamedVariantMachineモディファイア付き | E-15 | ○ |
| C-116 | UT-OXD-116: NamedVariantMachine任意値付き | E-15 | ○ |
| C-117 | UT-OXD-117: NamedVariantMachine CSS変数付き | E-15 | ○ |
| C-118 | UT-OXD-118: NamedVariantMachineコンテナクエリ | E-15 | ○ |
| C-119 | UT-OXD-119: NamedVariantMachineコロンなし拒否 | E-15 | ○ |
| C-120 | UT-OXD-120: VariantMachine名前付きバリアント | E-16 | ○ |
| C-121 | UT-OXD-121: VariantMachine任意バリアント | E-16 | ○ |
| C-122 | UT-OXD-122: VariantMachine空任意バリアント拒否 | E-16 | ○ |
| C-123 | UT-OXD-123: VariantMachineスタックバリアント | E-16 | ○ |
| C-124 | UT-OXD-124: UtilityMachine単純ユーティリティ | E-17 | ○ |
| C-125 | UT-OXD-125: UtilityMachineレガシー!important | E-17 | ○ |
| C-126 | UT-OXD-126: UtilityMachine末尾!important | E-17 | ○ |
| C-127 | UT-OXD-127: UtilityMachineモディファイア | E-17 | ○ |
| C-128 | UT-OXD-128: UtilityMachine任意プロパティ | E-17 | ○ |
| C-129 | UT-OXD-129: UtilityMachine二重モディファイア拒否 | E-17 | ○ |
| C-130 | UT-OXD-130: UtilityMachine両端!important拒否 | E-17 | ○ |
| C-131 | UT-OXD-131: CandidateMachineバリアント+ユーティリティ | E-18 | ○ |
| C-132 | UT-OXD-132: CandidateMachine複数バリアント | E-18 | ○ |
| C-133 | UT-OXD-133: CandidateMachine複雑バリアント | E-18 | ○ |
| C-134 | UT-OXD-134: CandidateMachine JSオブジェクト構文 | E-18 | ○ |
| C-135 | UT-OXD-135: CandidateMachine HTMLタグフィルタ | E-18, E-19 | ○ |
| C-136 | UT-OXD-136: CandidateMachine SVGパス除外 | E-18, E-19 | ○ |
| C-137 | UT-OXD-137: CandidateMachineテンプレートリテラル拒否 | E-18 | ○ |
| C-138 | UT-OXD-138: Extractor初期化 | E-20 | ○ |
| C-139 | UT-OXD-139: Extractor HTML候補抽出 | E-20 | ○ |
| C-140 | UT-OXD-140: Extractor CSS変数抽出 | E-20 | ○ |
| C-141 | UT-OXD-141: Extractor任意プロパティ抽出 | E-20 | ○ |
| C-142 | UT-OXD-142: Extractor重複候補処理 | E-20 | △ |
| C-143 | UT-OXD-143: Extractorバリアント付き候補 | E-20 | ○ |
| C-144 | UT-OXD-144: Extractor文字列リテラル内候補 | E-20 | ○ |
| C-145 | UT-OXD-145: extract_variables_from_css var()参照 | E-20 | ○ |
| C-146 | UT-OXD-146: extract_variables_from_css 定義除外 | E-20 | ○ |
| C-147 | UT-OXD-147: drop_covered_spans包含スパン除去 | E-20 | ○ |
| C-148 | UT-OXD-148: drop_covered_spans単一スパン | E-20 | ○ |
| C-149 | UT-OXD-149: drop_covered_spans空入力 | E-20 | ○ |
| C-150 | UT-OXD-150: extract_sub_candidates | E-20 | ○ |
| C-151 | UT-OXD-151: Scanner初期化 | E-21 | ○ |
| C-152 | UT-OXD-152: Scanner基本スキャン | E-21 | △ |
| C-153 | UT-OXD-153: Scannerコンテンツスキャン | E-21 | ○ |
| C-154 | UT-OXD-154: Scanner既知ファイルスキャン | E-21 | ○ |
| C-155 | UT-OXD-155: Scanner位置付き候補抽出 | E-21 | △ |
| C-156 | UT-OXD-156: Scanner glob生成 | E-21 | ○ |
| C-157 | UT-OXD-157: Scannerソース正規化 | E-21 | ○ |
| C-158 | UT-OXD-158: Scannerファイル一覧取得 | E-21 | ○ |
| C-159 | UT-OXD-159: pre_process_input Ruby拡張子 | E-21, E-26 | ○ |
| C-160 | UT-OXD-160: pre_process_input 未知拡張子 | E-21 | ○ |
| C-161 | UT-OXD-161: pre_process_input 全拡張子対応 | E-21 | ○ |
| C-162 | UT-OXD-162: PublicSourceEntry最適化 | E-22 | ○ |
| C-163 | UT-OXD-163: ディレクトリパス最適化 | E-22 | ○ |
| C-164 | UT-OXD-164: ファイルパス最適化 | E-22 | ○ |
| C-165 | UT-OXD-165: ブレース展開 | E-22 | ○ |
| C-166 | UT-OXD-166: **/*パターンAuto変換 | E-22 | ○ |
| C-167 | UT-OXD-167: negatedのIgnored変換 | E-22 | ○ |
| C-168 | UT-OXD-168: 具体パターンのPattern変換 | E-22 | ○ |
| C-169 | UT-OXD-169: 無視ディレクトリ内AutoのExternal変換 | E-22 | ○ |
| C-170 | UT-OXD-170: resolve_globs | E-23 | △ |
| C-171 | UT-OXD-171: Ruby %w[...]構文 | E-26 | ○ |
| C-172 | UT-OXD-172: Ruby %w(...)構文 | E-26 | ○ |
| C-173 | UT-OXD-173: Ruby %w{...}構文 | E-26 | ○ |
| C-174 | UT-OXD-174: Rubyコメント除去 | E-26 | ○ |
| C-175 | UT-OXD-175: Ruby文字列内#保持 | E-26 | ○ |
| C-176 | UT-OXD-176: Ruby埋め込みテンプレート | E-26 | ○ |
| C-177 | UT-OXD-177: Ruby補間式保持 | E-26 | ○ |
| C-178 | UT-OXD-178: Ruby strict locals保持 | E-26 | ○ |
| C-179 | UT-OXD-179: Pugドット変換 | E-27 | ○ |
| C-180 | UT-OXD-180: Pug数字間ドット保持 | E-27 | ○ |
| C-181 | UT-OXD-181: Pug括弧内ドット保持 | E-27 | ○ |
| C-182 | UT-OXD-182: Pug属性括弧変換 | E-27 | ○ |
| C-183 | UT-OXD-183: Pug CSS変数括弧保持 | E-27 | ○ |
| C-184 | UT-OXD-184: Slimドット変換 | E-28 | ○ |
| C-185 | UT-OXD-185: Slimバリアント付きドット | E-28 | ○ |
| C-186 | UT-OXD-186: Slimトップレベル[変換 | E-28 | ○ |
| C-187 | UT-OXD-187: Slim %w[]構文 | E-28 | ○ |
| C-188 | UT-OXD-188: Slim任意値括弧保持 | E-28 | ○ |
| C-189 | UT-OXD-189: Slim属性括弧変換 | E-28 | ○ |
| C-190 | UT-OXD-190: Hamlドット変換 | E-29 | ○ |
| C-191 | UT-OXD-191: Hamlハッシュ属性括弧 | E-29 | ○ |
| C-192 | UT-OXD-192: Haml Ruby評価行 | E-29 | ○ |
| C-193 | UT-OXD-193: Haml HAMLコメント | E-29 | ○ |
| C-194 | UT-OXD-194: Haml HTMLコメント | E-29 | ○ |
| C-195 | UT-OXD-195: Hamlインデントブロックスキップ | E-29 | ○ |
| C-196 | UT-OXD-196: Haml =行単一行終了 | E-29 | ○ |
| C-197 | UT-OXD-197: Haml =行カンマ付き複数行 | E-29 | ○ |
| C-198 | UT-OXD-198: Haml末尾改行なし(issue #17379) | E-29 | ○ |
| C-199 | UT-OXD-199: Clojureキーワード | E-30 | ○ |
| C-200 | UT-OXD-200: Clojureドット分割 | E-30 | ○ |
| C-201 | UT-OXD-201: Clojure文字列内保持 | E-30 | ○ |
| C-202 | UT-OXD-202: Clojureコメント除去 | E-30 | ○ |
| C-203 | UT-OXD-203: Clojure特殊キーワード除去 | E-30 | ○ |
| C-204 | UT-OXD-204: Clojureシンボルリスト'[...] | E-30 | ○ |
| C-205 | UT-OXD-205: Clojureシンボルリスト'(...) | E-30 | ○ |
| C-206 | UT-OXD-206: Clojure小数ドット保持 | E-30 | ○ |
| C-207 | UT-OXD-207: is_keyword_character英数字 | E-30 | ○ |
| C-208 | UT-OXD-208: is_keyword_character特殊文字 | E-30 | ○ |
| C-209 | UT-OXD-209: is_keyword_character非キーワード文字 | E-30 | ○ |
| C-210 | UT-OXD-210: Json括弧変換 | E-31 | ○ |
| C-211 | UT-OXD-211: Json文字列内保持 | E-31 | ○ |
| C-212 | UT-OXD-212: Jsonエスケープ引用符 | E-31 | ○ |
| C-213 | UT-OXD-213: Svelte class:変換 | E-32 | ○ |
| C-214 | UT-OXD-214: Svelteタブ対応 | E-32 | ○ |
| C-215 | UT-OXD-215: Svelte改行対応 | E-32 | ○ |
| C-216 | UT-OXD-216: Razor @@変換 | E-33 | ○ |
| C-217 | UT-OXD-217: Razor @("@")変換 | E-33 | ○ |
| C-218 | UT-OXD-218: Markdown {.class}変換 | E-34 | ○ |
| C-219 | UT-OXD-219: Markdown複数クラス | E-34 | ○ |
| C-220 | UT-OXD-220: Markdownネスト内ドット保持 | E-34 | ○ |
| C-221 | UT-OXD-221: Markdownディレクティブ外保持 | E-34 | ○ |
| C-222 | UT-OXD-222: Elixir ~W(...)シジル | E-35 | ○ |
| C-223 | UT-OXD-223: Elixirネスト括弧シジル | E-35 | ○ |
| C-224 | UT-OXD-224: Elixir異なる括弧タイプ | E-35 | ○ |
| C-225 | UT-OXD-225: Elixir小文字シジル | E-35 | ○ |
| C-226 | UT-OXD-226: Elixir大文字シジル | E-35 | ○ |
| C-227 | UT-OXD-227: Elixir非シジル文字スキップ | E-35 | ○ |
| C-228 | UT-OXD-228: Vueテンプレート言語 | E-36 | ○ |
| C-229 | UT-OXD-229: Vue lang属性なし | E-36 | △ |
| C-230 | UT-OXD-230: Rust Leptos class:変換 | E-37 | ○ |
| C-231 | UT-OXD-231: Rust Maudテンプレート | E-37 | ○ |
| C-232 | UT-OXD-232: Rust html!なしスキップ | E-37 | ○ |
| C-233 | UT-OXD-233: Rust Maud内文字列保持 | E-37 | ○ |
| C-234 | UT-OXD-234: Rust Maudエスケープ | E-37 | ○ |
| C-235 | UT-OXD-235: Rust Maud括弧ネスト | E-37 | ○ |
| C-236 | UT-OXD-236: PreProcessor入出力長不変性 | E-40 | ○ |
| C-237 | UT-OXD-237: RULES自動ソース検出 | E-24 | ○ |
| C-238 | UT-OXD-238: IGNORED_CONTENT_DIRS | E-24 | ○ |
| C-239 | UT-OXD-239: BINARY_EXTENSIONS_GLOB | E-24 | ○ |
| C-240 | UT-OXD-240: SHOULD_TRACE有効化 | E-25 | ○ |
| C-241 | UT-OXD-241: SHOULD_TRACE無効化 | E-25 | ○ |
| C-242 | UT-OXD-242: init_tracingスキップ | E-25 | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-11 (advance_byクランプ)**: ソースコード内でmin()によるクランプ処理は確認できるが、入力長を超える値を渡した際の明示的な既存テストが見当たらない。実装コードの`self.pos = (self.pos + amount).min(self.input.len())`から動作を推定。
  - 候補：手動テスト / 既存のRust unit testの確認 / プロパティベーステスト
- **C-13 (move_toクランプ)**: advance_byと同様、min()によるクランプ処理は確認できるが、入力長超過時の明示的テストが未確認。
  - 候補：手動テスト / 既存のRust unit testの確認
- **C-23 (存在しないパスのスキップ)**: hoist_static_glob_partsの中でファイルシステムパス確認のif文は存在するが、パスが存在しない場合のフォールバック動作について明示的な根拠が薄い。
  - 候補：ファイルシステムをモックしたテスト / 実行時テスト
- **C-24 (split_pattern空文字列)**: split_patternに空文字列を渡した場合の挙動はコードの条件分岐から推定可能だが、明示的なテストが見当たらない。
  - 候補：空文字列入力のテスト追加
- **C-142 (重複候補処理)**: drop_covered_spansの実装は確認済みだが、複雑な重複パターン（部分的重複、完全包含等）での網羅的な動作根拠が不足。
  - 候補：既存テストの確認 / 複雑なケースの追加検証
- **C-152 (Scanner基本スキャン)**: Scannerのscan()メソッドはファイルシステム走査を行うため、戻り値のソート保証について完全な根拠を得るには結合テストが必要。
  - 候補：統合テスト / ファイルシステムモック
- **C-155 (位置付き候補抽出)**: get_candidates_with_positionsのバイトオフセット正確性は、メソッドシグネチャとExtractorの動作から推定。
  - 候補：実データでの検証 / 既存テストの確認
- **C-170 (resolve_globs)**: ファイルシステム依存のglob解決ロジックは型定義とコード構造から推定可能だが、実ファイルシステムとの連携テスト根拠が不足。
  - 候補：統合テスト / tmpdir使用テスト
- **C-229 (Vue lang属性なし)**: lang属性なしの`<template>`タグに対する動作は、TEMPLATE_REGEX正規表現がマッチしないことから推定されるが、明示的なテストが未確認。
  - 候補：lang属性なしケースのテスト追加

## 5) リスクフラグ（レビュー観点）
- **リスク0（低リスク）**: 全体の96.3%にソースコードベースの根拠あり。大半のテストケースはRustソースコードのメソッドシグネチャ、条件分岐、既存テストコードから直接導出。
- **リスク1（中リスク）**: ファイルシステム依存の処理（Scanner::scan, resolve_globs, hoist_static_glob_parts）は、実行環境によって動作が異なる可能性がある。テスト実行時にはtmpdirやモックを使用する必要がある。
- **リスク0（低リスク）**: プリプロセッサのテストケースは、既存の`#[cfg(test)]`モジュール内テストと高い一致率を持つ。Ruby(7テスト), Pug(4テスト), Slim(7テスト), Haml(6テスト), Clojure(8テスト), Rust(2テスト)に既存テストが存在。
- **リスク1（中リスク）**: Cursor/BracketStackの境界値テスト（C-11, C-13, C-53）はコードレベルでmin()/固定サイズ配列の実装を確認しているが、エッジケースでのパニック回避は実行テストで確認が望ましい。
- **リスク0（低リスク）**: 各マシン（StringMachine, CssVariableMachine, ArbitraryValueMachine等）のテストケースは、Machine traitのテストヘルパー関数を活用した既存テストパターンと整合性がある。

## 6) レビュアーチェックリスト（最小）
- [ ] Cursor::advance_by / move_to の入力末尾超過時の動作が実装コードと一致するか確認
- [ ] BracketStack の固定サイズ32配列が実用上十分か（深いネストケースの有無）
- [ ] Scanner::scan のファイルシステム依存テストがtmpdir等で適切にモック化可能か確認
- [ ] drop_covered_spans の複雑なスパン重複パターンでの動作が正しいか確認
- [ ] 各プリプロセッサのテストケースが既存の `#[cfg(test)]` テストとの整合性を保っているか確認
- [ ] resolve_globs のglob展開がプラットフォーム間で一貫した結果を返すか確認
- [ ] ArbitraryPropertyMachine の複数コロン拒否ルールがCSSカスタムプロパティ値の`:` と矛盾しないか確認
- [ ] Haml skip_indented_block の末尾改行なしケース(issue #17379)が正しく処理されるか確認
- [ ] Vue PreProcessor の lang属性なしテンプレートへの非介入が正規表現から保証されるか確認
