---
generated_at: 2026-02-19 15:30:00
metrics:
  claims_total: 91
  claims_with_evidence: 89
  claims_without_evidence: 2
confidence_derived: 0.98
---

# 根拠レポート：modules-tools-eval 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：89 / 91、根拠なし：2
- 優先レビュー（高）
  1. **UT-EVL-054**: evil-modeでappend-lineが呼ばれること - 動作確認が必要
  2. **UT-EVL-065**: evil-modeで送信後append-lineが呼ばれること - 条件の正確性要確認

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

- E-01: `modules/tools/eval/autoload/eval.el` - 評価関連の主要関数定義
- E-02: `modules/tools/eval/autoload/repl.el` - REPL関連の関数定義
- E-03: `modules/tools/eval/autoload/evil.el` - Evil演算子定義
- E-04: `modules/tools/eval/autoload/settings.el` - ハンドラ設定関数定義
- E-05: `modules/tools/eval/config.el` - 設定とアドバイス定義
- E-06: `modules/tools/eval/packages.el` - 依存パッケージ定義
- E-07: `modules/tools/eval/README.org` - モジュールドキュメント

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

### autoload/eval.el 関連（UT-EVL-001 〜 UT-EVL-030）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | +eval-display-results-in-popupは*doom eval*バッファを作成する | E-01 (L6-7) | ○ |
| C-02 | ウィンドウサイズがフレームの半分以下に調整される | E-01 (L17-18) | ○ |
| C-03 | select-windowで元のウィンドウにフォーカスが戻る | E-01 (L20) | ○ |
| C-04 | +eval-display-results-in-overlayはerosを使用する | E-01 (L26) | ○ |
| C-05 | 複数行出力はhard-newlineで結合される | E-01 (L48) | ○ |
| C-06 | +eval-display-resultsは出力長で表示方法を決定する | E-01 (L58-72) | ○ |
| C-07 | +eval-popup-min-lines以上でポップアップ表示 | E-01 (L61-62), E-05 (L3-5) | ○ |
| C-08 | erosがロードできない場合ポップアップにフォールバック | E-01 (L69) | ○ |
| C-09 | +eval-region-as-major-modeはREPL/quickrunを選択する | E-01 (L76-105) | ○ |
| C-10 | +eval/bufferはバッファ全体を評価する | E-01 (L113-132) | ○ |
| C-11 | +eval/regionは指定領域を評価する | E-01 (L135-138) | ○ |
| C-12 | +eval/line-or-regionはリージョン有無で動作を変える | E-01 (L141-146) | ○ |
| C-13 | +eval/buffer-or-regionはリージョン有無で動作を変える | E-01 (L149-158) | ○ |
| C-14 | +eval/region-and-replaceは評価結果で領域を置換する | E-01 (L161-179) | ○ |
| C-15 | 無効な式でエラーメッセージが表示される | E-01 (L173-177) | ○ |

### autoload/repl.el 関連（UT-EVL-031 〜 UT-EVL-065）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | +eval-repl-modeはマイナーモードとして定義される | E-02 (L8-9) | ○ |
| C-17 | +eval--ensure-in-repl-bufferは既存バッファを返す | E-02 (L11-49) | ○ |
| C-18 | 死んだバッファはハッシュから削除される | E-02 (L12-15) | ○ |
| C-19 | fnがnilを返すとエラーがスローされる | E-02 (L32) | ○ |
| C-20 | fnがバッファを返さないとエラーがスローされる | E-02 (L33-34) | ○ |
| C-21 | comint-modeでプロンプト位置にカーソルが移動する | E-02 (L43-48) | ○ |
| C-22 | +eval-repl-known-replsは登録済みREPLを返す | E-02 (L51-55) | ○ |
| C-23 | +doom-pretty-mode-nameはモード名を人間可読形式に変換する | E-02 (L57-64) | ○ |
| C-24 | +eval-repl-found-replsはシンボルリストを検索する | E-02 (L66-73) | ○ |
| C-25 | +eval-pretty-mode-name-from-fnは関数名からモード名を抽出する | E-02 (L75-83) | ○ |
| C-26 | +eval-repl-promptはcompleting-readを使用する | E-02 (L85-95) | ○ |
| C-27 | +eval-repl-from-major-modeは現在モードのREPLを返す | E-02 (L97-101) | ○ |
| C-28 | +eval-open-replはREPLを開いてtを返す | E-02 (L103-119) | ○ |
| C-29 | evil-modeでevil-append-lineが呼ばれる | E-02 (L115-116) | △ |
| C-30 | +eval/open-repl-same-windowはswitch-to-bufferを使用する | E-02 (L125-131) | ○ |
| C-31 | +eval/open-repl-other-windowはpop-to-bufferを使用する | E-02 (L134-139) | ○ |
| C-32 | +eval/send-region-to-replは領域をREPLに送信する | E-02 (L142-181) | ○ |
| C-33 | 先頭の空白がskip-chars-forwardで除去される | E-02 (L156-157) | ○ |
| C-34 | indent-rigidlyでインデントが調整される | E-02 (L158-159) | ○ |
| C-35 | 各行が順次送信される | E-02 (L163-178) | ○ |
| C-36 | REPLがない場合エラーがスローされる | E-02 (L149-150) | ○ |
| C-37 | evil-modeで送信後append-lineが呼ばれる | E-02 (L179-181) | △ |

### autoload/evil.el 関連（UT-EVL-066 〜 UT-EVL-069）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-38 | +eval:regionはevil演算子として定義される | E-03 (L5-9) | ○ |
| C-39 | :move-point nilでカーソル位置が維持される | E-03 (L7) | ○ |
| C-40 | +eval:replace-regionは置換演算子として定義される | E-03 (L12-16) | ○ |
| C-41 | +eval:replはREPLを開く演算子として定義される | E-03 (L19-23) | ○ |

### autoload/settings.el 関連（UT-EVL-070 〜 UT-EVL-078）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-42 | set-repl-handler!はREPLハンドラを登録する | E-04 (L11-36) | ○ |
| C-43 | 複数モードに同時登録できる | E-04 (L34) | ○ |
| C-44 | PLISTオプションが保存される | E-04 (L35-36) | ○ |
| C-45 | set-eval-handler!はコード評価ハンドラを登録する | E-04 (L47-76) | ○ |
| C-46 | シンボルコマンドは+eval-runnersに登録される | E-04 (L63-64) | ○ |
| C-47 | 文字列コマンドはquickrun-alistに登録される | E-04 (L65-70) | ○ |
| C-48 | リストコマンドはquickrun-add-commandを呼ぶ | E-04 (L71-76) | ○ |

### config.el 関連（UT-EVL-079 〜 UT-EVL-091）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-49 | +eval-popup-min-linesのデフォルト値は4 | E-05 (L3-5) | ○ |
| C-50 | REPLバッファにポップアップルールが設定される | E-05 (L15-25) | ○ |
| C-51 | :persistがnilの場合プロセスが終了される | E-05 (L20-24) | ○ |
| C-52 | +eval--quickrun-fix-evil-visual-region-aはEvil選択を認識する | E-05 (L33-47) | ○ |
| C-53 | +eval--quickrun-auto-close-aは既存ウィンドウを閉じる | E-05 (L49-56) | ○ |
| C-54 | +eval-quickrun-shrink-window-hはウィンドウを縮小する | E-05 (L59-64) | ○ |
| C-55 | +eval-quickrun-scroll-to-bof-hは先頭にスクロールする | E-05 (L65-69) | ○ |
| C-56 | +overlayモードで出力がオーバーレイ表示される | E-05 (L74-83) | ○ |
| C-57 | +eval--inhibit-quickrun-popup-aはポップアップを抑制する | E-05 (L86-92) | ○ |

## 4) 不足情報（Unknown / Missing）
- **Evil統合の動作確認**：evil-modeが有効な場合の`evil-append-line`呼び出しタイミングについて、実行時の状態依存が大きく、ユニットテストでのモック化が必要
  - 候補：evil-modeのモック / 実環境でのインテグレーションテスト / 手動テスト

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 大部分のテストケースはソースコードから直接導出可能
- **1: 中リスク** - Evil統合関連のテストケース（UT-EVL-054, UT-EVL-065）は環境依存性が高い
- **0: 低リスク** - 設定・オプション関連のテストケースはドキュメントと整合

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースがモジュール内の全ての公開関数をカバーしているか
- [ ] 正常系・異常系・境界値の観点が各関数に適切に適用されているか
- [ ] Evil統合関連のテストケース（UT-EVL-054, UT-EVL-065, UT-EVL-066-069）の前提条件が現実的か
- [ ] quickrunパッケージとの連携テストケースの期待結果が正確か
- [ ] erosパッケージ依存のテストケース（UT-EVL-005-008, UT-EVL-012）がパッケージ未インストール時の動作も考慮しているか
- [ ] 優先度の割り当てがビジネスクリティカル度と整合しているか
