---
generated_at: 2026-02-19 18:25:00
metrics:
  claims_total: 62
  claims_with_evidence: 62
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：modules-editor-whitespace.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：62 / 62、根拠なし：0
- 優先レビュー（高）
  1. **UT-WTS-009〜010**：インデントハイライトの正常系テスト（コア機能）
  2. **UT-WTS-019、022、028-029**：インデント推測機能の条件分岐テスト
  3. **UT-WTS-034**：SMIEモードでのエラーハンドリング

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

- E-01: `modules/editor/whitespace/config.el` - メイン設定ファイル（151行）
- E-02: `modules/editor/whitespace/packages.el` - パッケージ定義ファイル（17行）
- E-03: `modules/editor/whitespace/README.org` - モジュールドキュメント（69行）

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

### 変数定義に関するテストケース（C-01〜C-08）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | +whitespace-guess-excluded-modesにpascal-modeが含まれる | E-01: L3-15 `defvar +whitespace-guess-excluded-modes` | ○ |
| C-02 | 除外リストにemacs-lisp-modeが含まれる | E-01: L8 `emacs-lisp-mode` | ○ |
| C-03 | 除外リストにorg-modeが含まれる | E-01: L14 `org-mode` | ○ |
| C-04 | 除外リストにcoq-modeが含まれる | E-01: L11 `coq-mode` | ○ |
| C-05 | +whitespace-guess-in-projectsのデフォルト値がnil | E-01: L17 `defvar +whitespace-guess-in-projects nil` | ○ |
| C-06 | +whitespace-guess-in-projectsをtに設定可能 | E-01: L17-24 変数定義 | ○ |
| C-07 | +whitespace-guess-inhibitがバッファローカル変数 | E-01: L26 `defvar-local +whitespace-guess-inhibit` | ○ |
| C-08 | +whitespace-guess-inhibitのデフォルト値がnil | E-01: L26 `defvar-local +whitespace-guess-inhibit nil` | ○ |

### +whitespace-highlight-incorrect-indentation-hに関するテストケース（C-09〜C-15）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-09 | indent-tabs-mode=nilでタブがハイライトされる | E-01: L55-57 `(if indent-tabs-mode '(indentation) '(tabs tab-mark))` | ○ |
| C-10 | indent-tabs-mode=tでスペースインデントがハイライトされる | E-01: L55-56 `(if indent-tabs-mode '(indentation)` | ○ |
| C-11 | fundamental-modeでは何もしない | E-01: L49 `(eq major-mode 'fundamental-mode)` | ○ |
| C-12 | global-whitespace-mode有効時は何もしない | E-01: L50 `(bound-and-true-p global-whitespace-mode)` | ○ |
| C-13 | ファイル非訪問バッファでは何もしない | E-01: L51 `(null buffer-file-name)` | ○ |
| C-14 | 読み取り専用バッファでは何もしない | E-01: L52 `buffer-read-only` | ○ |
| C-15 | whitespace-styleの先頭にfaceが追加される | E-01: L60 `(cl-pushnew 'face whitespace-style)` | ○ |

### +whitespace-highlight-incorrect-indentation-again-hに関するテストケース（C-16〜C-18）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | editorconfigでindent_style設定時にハイライト更新 | E-01: L67-69 `(gethash 'indent_style props)` | ○ |
| C-17 | whitespace-mode無効時は何もしない | E-01: L67 `(bound-and-true-p whitespace-mode)` | ○ |
| C-18 | indent_styleがpropsにない場合は何もしない | E-01: L68 `(gethash 'indent_style props)` | ○ |

### +whitespace-guess-indentation-hに関するテストケース（C-19〜C-30）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-19 | 通常バッファでdtrt-indent-modeが有効化される | E-01: L95-107 関数定義 | ○ |
| C-20 | after-init-time=nilでは何もしない | E-01: L96 `(not after-init-time)` | ○ |
| C-21 | 大きなファイルでは何もしない | E-01: L97 `doom-large-file-p` | ○ |
| C-22 | +whitespace-guess-inhibit=tでは何もしない | E-01: L98 `+whitespace-guess-inhibit` | ○ |
| C-23 | fundamental-modeでは何もしない | E-01: L99 `(eq major-mode 'fundamental-mode)` | ○ |
| C-24 | スペースで始まるバッファ名では何もしない | E-01: L100 `(member (substring (buffer-name) 0 1) '(" " "*"))` | ○ |
| C-25 | アスタリスクで始まるバッファ名では何もしない | E-01: L100 `'(" " "*")` | ○ |
| C-26 | 除外リストのモードでは何もしない | E-01: L101 `(apply #'derived-mode-p +whitespace-guess-excluded-modes)` | ○ |
| C-27 | 読み取り専用バッファでは何もしない | E-01: L102 `buffer-read-only` | ○ |
| C-28 | プロジェクト内かつ+whitespace-guess-in-projects=nilでは何もしない | E-01: L103-104 `(and (not +whitespace-guess-in-projects) (doom-project-root))` | ○ |
| C-29 | プロジェクト内かつ+whitespace-guess-in-projects=tでは有効化 | E-01: L103 条件の逆 | ○ |
| C-30 | init-file-debug=nilでメッセージ抑制 | E-01: L106 `(let ((inhibit-message (not init-file-debug)))` | ○ |

### +whitespace--in-parent-frame-pに関するテストケース（C-31〜C-32）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-31 | 親フレームがない場合にtを返す | E-01: L83 `(null (frame-parameter nil 'parent-frame))` | ○ |
| C-32 | 親フレームがある場合にnilを返す | E-01: L83 nullの逆 | ○ |

### +whitespace--guess-smie-modes-aに関するテストケース（C-33〜C-36）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-33 | 正常なSMIEモードでdtrt-indent-modeが成功する | E-01: L124-137 アドバイス定義 | ○ |
| C-34 | SMIEモードでエラー発生時もEmacsが壊れない | E-01: L132 `(condition-case e (funcall smie-config-guess)` | ○ |
| C-35 | smie-config-guessエラー時にdtrt-indent-run-after-smie=t | E-01: L133 `(setq dtrt-indent-run-after-smie t)` | ○ |
| C-36 | symbol-config--guessのend引数が10000を超えない | E-01: L130 `(min end 10000)` | ○ |

### whitespace設定に関するテストケース（C-37〜C-41）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-37 | whitespace-line-column=nil | E-01: L72 `(setq whitespace-line-column nil` | ○ |
| C-38 | whitespace-styleに必要な要素が含まれる | E-01: L73-75 whitespace-style設定 | ○ |
| C-39 | タブが「›」で表示される | E-01: L77 `(tab-mark ?\t [?› ?\t])` | ○ |
| C-40 | 改行が「¬」で表示される | E-01: L78 `(newline-mark ?\n [?¬ ?\n])` | ○ |
| C-41 | スペースが「·」で表示される | E-01: L79 `(space-mark ?\  [?·] [?.])` | ○ |

### dtrt-indent設定に関するテストケース（C-42〜C-47）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-42 | dtrt-indent-run-after-smie=t | E-01: L111 `(setq dtrt-indent-run-after-smie t)` | ○ |
| C-43 | dtrt-indent-max-lines=2000 | E-01: L113 `(setq dtrt-indent-max-lines 2000)` | ○ |
| C-44 | tab-widthがマッピングリストに含まれる | E-01: L116 `(add-to-list 'dtrt-indent-hook-generic-mapping-list '(t tab-width))` | ○ |
| C-45 | gdscript-modeのマッピングが存在 | E-01: L120 `'(gdscript-mode default gdscript-indent-offset)` | ○ |
| C-46 | graphviz-modeのマッピングが存在 | E-01: L121 `'(graphviz-mode graphviz-dot-indent-width)` | ○ |
| C-47 | janet-modeのマッピングが存在 | E-01: L122 `'(janet-mode janet janet-indent)` | ○ |

### ws-butler設定に関するテストケース（C-48〜C-53）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-48 | doom-first-bufferフックでws-butler-global-modeが有効化 | E-01: L143 `:hook (doom-first-buffer . ws-butler-global-mode)` | ○ |
| C-49 | special-modeが除外リストに含まれる | E-01: L145 `'special-mode` | ○ |
| C-50 | comint-modeが除外リストに含まれる | E-01: L146 `'comint-mode` | ○ |
| C-51 | term-modeが除外リストに含まれる | E-01: L147 `'term-mode` | ○ |
| C-52 | eshell-modeが除外リストに含まれる | E-01: L148 `'eshell-mode` | ○ |
| C-53 | diff-modeが除外リストに含まれる | E-01: L149 `'diff-mode` | ○ |

### パッケージ定義に関するテストケース（C-54〜C-57）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-54 | +guessフラグ有効時にdtrt-indentが定義される | E-02: L4-5 `(when (modulep! +guess) (package! dtrt-indent` | ○ |
| C-55 | +guessフラグ無効時にdtrt-indentが定義されない | E-02: L4 `(when (modulep! +guess)` | ○ |
| C-56 | +trimフラグ有効時にws-butlerが定義される | E-02: L7-16 `(when (modulep! +trim) (package! ws-butler` | ○ |
| C-57 | +trimフラグ無効時にws-butlerが定義されない | E-02: L7 `(when (modulep! +trim)` | ○ |

### フック・アドバイス登録に関するテストケース（C-58〜C-62）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-58 | +whitespace-highlight-incorrect-indentation-hがafter-change-major-mode-hookに登録 | E-01: L38 `(add-hook! 'after-change-major-mode-hook :append` | ○ |
| C-59 | +whitespace-highlight-incorrect-indentation-again-hがeditorconfig-after-apply-functionsに登録 | E-01: L65 `(add-hook! 'editorconfig-after-apply-functions :append` | ○ |
| C-60 | +whitespace-guess-indentation-hがchange-major-mode-after-bodyに登録 | E-01: L93 `:hook ((change-major-mode-after-body read-only-mode)` | ○ |
| C-61 | +whitespace-guess-indentation-hがread-only-modeに登録 | E-01: L93 `read-only-mode)` | ○ |
| C-62 | +whitespace--in-parent-frame-pがwhitespace-enable-predicateにアドバイス追加 | E-01: L84 `(add-function :before-while whitespace-enable-predicate` | ○ |

## 4) 不足情報（Unknown / Missing）
- なし（すべてのテストケースに対して根拠が確認できました）

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - すべてのテストケースがソースコードから直接導出されており、根拠が明確です

### 注意点
- Emacs Lispのテストには`ert`フレームワークを使用することを推奨
- フック・アドバイスのテストには適切なモック/スタブが必要
- バッファ状態に依存するテストは適切なテスト環境のセットアップが必要

## 6) レビュアーチェックリスト（最小）
- [ ] 高優先度テストケース（UT-WTS-009, 010, 016, 019, 022, 028, 029, 034, 048）の網羅性を確認
- [ ] 異常系テストケースの境界条件が適切か確認
- [ ] フラグ（+guess, +trim）の条件付き機能が正しくテストされているか確認
- [ ] editorconfigとの連携テストが実際の動作と整合しているか確認
- [ ] ws-butlerの除外モードリストが最新の設定と一致しているか確認
