---
generated_at: 2026-02-19 18:48:00
metrics:
  claims_total: 116
  claims_with_evidence: 116
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：116 / 116、根拠なし：0
- 優先レビュー（高）
  1. **ワークスペース統合テスト（C-64～C-67）**：persp-modeとの統合は実環境依存
  2. **evil統合テスト（C-76～C-80）**：:editor evilモジュールが必要
  3. **company統合テスト（C-81～C-88）**：:completion companyモジュールが必要

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

- E-01: `modules/term/eshell/config.el` - メイン設定ファイル（321行）
- E-02: `modules/term/eshell/packages.el` - パッケージ定義（14行）
- E-03: `modules/term/eshell/autoload/eshell.el` - コア機能（342行）
- E-04: `modules/term/eshell/autoload/prompts.el` - プロンプト機能（40行）
- E-05: `modules/term/eshell/autoload/evil.el` - evil統合（35行）
- E-06: `modules/term/eshell/autoload/company.el` - company統合（61行）
- E-07: `modules/term/eshell/autoload/commands.el` - eshellコマンド（34行）
- E-08: `modules/term/eshell/autoload/settings.el` - 設定関数（27行）
- E-09: `modules/term/eshell/autoload/backport.el` - 後方互換性（146行）

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

### autoload/eshell.el - ヘルパー関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | +eshell--add-bufferがバッファをリングに追加 | E-03 L15-16 ring-remove+insert+extend | ○ |
| C-02 | 空リングへの追加が正常動作 | E-03 L15-16 'grow引数で自動拡張 | ○ |
| C-03 | +eshell--remove-bufferがバッファを削除 | E-03 L18-21 ring-member, ring-remove | ○ |
| C-04 | 存在しないバッファ削除でnil返却 | E-03 L19 when-let条件 | ○ |
| C-05 | +eshell--bury-bufferがバッファを埋める | E-03 L23-32 switch-to-prev-buffer | ○ |
| C-06 | dedicated-p引数でウィンドウ専用化 | E-03 L31 set-window-dedicated-p | ○ |
| C-07 | +eshell-enable-new-shell-on-splitで新シェル | E-03 L29-31 条件分岐 | ○ |
| C-08 | +eshell--setup-windowがパラメータ設定 | E-03 L34-37 set-window-parameter | ○ |
| C-09 | 無効ウィンドウで何もしない | E-03 L35 window-live-p条件 | ○ |
| C-10 | +eshell--unused-bufferが未使用バッファ返却 | E-03 L39-45 cl-loop | ○ |
| C-11 | new-p=tで新規バッファ生成 | E-03 L40 unless new-p条件 | ○ |
| C-12 | 利用可能バッファなしで新規生成 | E-03 L45 generate-new-buffer | ○ |

### autoload/eshell.el - 公開関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-13 | +eshell-last-bufferが最後のバッファ返却 | E-03 L48-53 cl-find-if | ○ |
| C-14 | バッファなしでuser-error | E-03 L53 user-error | ○ |
| C-15 | noerror=tでnil返却 | E-03 L52 noerror条件分岐 | ○ |
| C-16 | +eshell-buffersがリスト返却 | E-03 L56-58 ring-elements | ○ |
| C-17 | 空リングで空リスト | E-03 L58 ring-elements | ○ |
| C-18 | +eshell-run-commandがコマンド実行 | E-03 L61-76 eshell-send-input | ○ |
| C-19 | バッファnilでuser-error | E-03 L69 user-error | ○ |
| C-20 | deadバッファでuser-error | E-03 L71 buffer-live-p, user-error | ○ |
| C-21 | バッファ省略で現在バッファ使用 | E-03 L65-66 major-mode確認 | ○ |
| C-22 | +eshell-lookup-documentationがエイリアスヘルプ | E-03 L82-83 eshell-find-alias-function | ○ |
| C-23 | 外部コマンドのmanページ表示 | E-03 L84-88 manual-program | ○ |
| C-24 | elisp関数のhelpful表示 | E-03 L89-90 functionp, helpful-callable | ○ |
| C-25 | ドキュメントなしでuser-error | E-03 L91 user-error | ○ |

### autoload/eshell.el - インタラクティブコマンド
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-26 | +eshell/toggleがポップアップ表示 | E-03 L98-127 pop-to-buffer | ○ |
| C-27 | 表示中ポップアップが閉じる | E-03 L117-119 delete-window, kill-buffer | ○ |
| C-28 | arg=tでバッファリセット | E-03 L109-115 erase-buffer | ○ |
| C-29 | commandでコマンド実行 | E-03 L125-126 +eshell-run-command | ○ |
| C-30 | persp-mode有効時のバッファ名 | E-03 L104-106 safe-persp-name | ○ |
| C-31 | +eshell/hereが現在ウィンドウで開く | E-03 L130-142 switch-to-buffer | ○ |
| C-32 | commandでコマンド実行 | E-03 L140-141 +eshell-run-command | ○ |
| C-33 | fringe/margin設定 | E-03 L138-139 set-window-fringes, margins | ○ |
| C-34 | +eshell/frameが専用フレーム | E-03 L145-158 delete-other-windows | ○ |
| C-35 | ウィンドウ設定保存 | E-03 L151-152 set-frame-parameter saved-wconf | ○ |
| C-36 | commandでコマンド実行 | E-03 L156-157 +eshell-run-command | ○ |

### autoload/eshell.el - 履歴・補完
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-37 | ivy使用時の履歴検索 | E-03 L168-182 modulep! :completion ivy | ○ |
| C-38 | helm使用時の履歴検索 | E-03 L183-184 helm-eshell-history | ○ |
| C-39 | vertico使用時の履歴検索 | E-03 L185-187 consult-history | ○ |
| C-40 | フォールバックでeshell-list-history | E-03 L188 eshell-list-history | ○ |
| C-41 | +eshell/pcompleteがpcomplete実行 | E-03 L191-202 pcomplete-std-complete | ○ |
| C-42 | company-mode時company-pcomplete | E-03 L196-201 company-pcomplete | ○ |

### autoload/eshell.el - キーバインド関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-43 | +eshell/quit-or-delete-charがquit | E-03 L209-210 eshell-life-is-too-much | ○ |
| C-44 | 文字列ありでdelete-char | E-03 L211 delete-char | ○ |
| C-45 | +eshell/split-belowが下分割 | E-03 L214-222 split-window-vertically | ○ |
| C-46 | dedicated状態維持 | E-03 L218 window-dedicated-p | ○ |
| C-47 | +eshell/split-rightが右分割 | E-03 L225-233 split-window-horizontally | ○ |
| C-48 | dedicated状態維持 | E-03 L229 window-dedicated-p | ○ |
| C-49 | +eshell/switch-to-nextが次バッファ | E-03 L236-241 ring-next | ○ |
| C-50 | バッファなしでuser-error | E-03 L239-240 ring-empty-p, user-error | ○ |
| C-51 | +eshell/switch-to-previousが前バッファ | E-03 L244-249 ring-previous | ○ |
| C-52 | バッファなしでuser-error | E-03 L247-248 ring-empty-p, user-error | ○ |
| C-53 | +eshell/switch-to-lastが最後バッファ | E-03 L252-258 +eshell--last-buffer | ○ |
| C-54 | 無効バッファでuser-error | E-03 L255-257 buffer-live-p, user-error | ○ |
| C-55 | +eshell/switch-toが指定バッファ切替 | E-03 L261-278 switch-to-buffer | ○ |
| C-56 | ウィンドウ表示中でselect-window | E-03 L276-277 get-buffer-window | ○ |
| C-57 | +eshell/kill-and-closeがkill | E-03 L281-287 kill-current-buffer | ○ |
| C-58 | 非eshell-modeでuser-error | E-03 L284-285 user-error | ○ |

### autoload/eshell.el - フック関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-59 | +eshell-init-hが初期化 | E-03 L294-302 +eshell--add-buffer | ○ |
| C-60 | deadバッファ削除 | E-03 L297-299 buffer-live-p確認 | ○ |
| C-61 | +eshell-cleanup-hがクリーンアップ | E-03 L305-329 +eshell--remove-buffer | ○ |
| C-62 | saved-wconf復元 | E-03 L312-314 set-window-configuration | ○ |
| C-63 | dedicatedウィンドウ削除 | E-03 L319-328 delete-window | ○ |
| C-64 | +eshell-switch-workspace-fnがワークスペース切替 | E-03 L332-336 persp-parameter | ○ |
| C-65 | type非frameで何もしない | E-03 L333 eq type 'frame条件 | ○ |
| C-66 | +eshell-save-workspace-fnが保存 | E-03 L339-341 set-persp-parameter | ○ |
| C-67 | 非frameで何もしない | E-03 L340 framep条件 | ○ |

### autoload/prompts.el
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-68 | +eshell--current-git-branchがブランチ名 | E-04 L14-24 git symbolic-ref | ○ |
| C-69 | 非gitで空文字 | E-04 L23-24 status確認、空文字返却 | ○ |
| C-70 | detached HEADでdescribe | E-04 L20-23 git describe | ○ |
| C-71 | +eshell-default-prompt-fnがプロンプト生成 | E-04 L27-39 concat pwd branch lambda | ○ |
| C-72 | ホームで~ | E-04 L32-34 equal pwd "~"条件 | ○ |
| C-73 | 成功時successフェイス | E-04 L38 zerop, 'success | ○ |
| C-74 | 失敗時errorフェイス | E-04 L38 zerop, 'error | ○ |
| C-75 | bobpで改行省略 | E-04 L30 bobp条件 | ○ |

### autoload/evil.el
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-76 | +eshell:runがコマンド実行 | E-05 L5-14 evil-define-command | ○ |
| C-77 | bang=tで新規eshell | E-05 L13-14 +eshell/open | ○ |
| C-78 | +eshell-goto-prompt-on-insert-aがプロンプト移動 | E-05 L17-26 goto-char | ○ |
| C-79 | appendでpoint-max | E-05 L24-25 evil-append条件 | ○ |
| C-80 | +eshell/goto-end-of-promptが末尾移動 | E-05 L29-34 point-max, evil-append | ○ |

### autoload/company.el
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-81 | company-pcomplete--prefixがprefix返却 | E-06 L8-18 pcomplete-begin, point | ○ |
| C-82 | company-pcomplete--candidatesが候補返却 | E-06 L20-37 all-completions | ○ |
| C-83 | 候補なしで空リスト | E-06 L31 all-completions空の場合 | ○ |
| C-84 | company-pcomplete-availableがt返却 | E-06 L40-49 setq t | ○ |
| C-85 | エラー時nil返却 | E-06 L46-47 error条件、nil設定 | ○ |
| C-86 | interactiveでbackend開始 | E-06 L56 company-begin-backend | ○ |
| C-87 | prefixでprefix返却 | E-06 L57-58 company-pcomplete--prefix | ○ |
| C-88 | candidatesで候補返却 | E-06 L59 company-pcomplete--candidates | ○ |

### autoload/commands.el
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-89 | eshell/emacsがファイルオープン | E-07 L4-11 mapc find-file | ○ |
| C-90 | 複数ファイル対応 | E-07 L8-10 mapc, mapcar | ○ |
| C-91 | ファイルなしでbury-buffer | E-07 L11 bury-buffer | ○ |
| C-92 | eshell/cd-to-projectがプロジェクトroot移動 | E-07 L16-18 doom-project-root | ○ |
| C-93 | プロジェクト外処理 | E-07 L18 doom-project-root結果使用 | ○ |
| C-94 | eshell/quit-and-closeが終了 | E-07 L21-24 throw eshell-terminal | ○ |
| C-95 | eshell/mkdir-and-cdがディレクトリ作成・移動 | E-07 L27-30 make-directory, eshell/cd | ○ |
| C-96 | ネストディレクトリ作成 | E-07 L29 make-directory t | ○ |

### autoload/settings.el
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-97 | set-eshell-alias!がエイリアス追加 | E-08 L4-26 push | ○ |
| C-98 | 既存エイリアス上書き | E-08 L18-19 setcdr | ○ |
| C-99 | 複数エイリアス追加 | E-08 L15-20 while pop処理 | ○ |
| C-100 | 奇数引数でエラー | E-08 L12-13 cl-evenp, signal | ○ |
| C-101 | eshell-command-aliases-list更新 | E-08 L21-26 setq | ○ |

### config.el
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-102 | +eshell-config-dirが設定ディレクトリ | E-01 L10-13 expand-file-name | ○ |
| C-103 | eshell-directory-nameがデータディレクトリ | E-01 L15-17 file-name-concat | ○ |
| C-104 | +eshell-aliasesにデフォルトエイリアス | E-01 L26-44 alist定義 | ○ |
| C-105 | +eshell--enable-undo-hがundo有効化 | E-01 L93-95 buffer-enable-undo | ○ |
| C-106 | +eshell-protect-input-in-visual-modes-hが入力保護 | E-01 L102-108 add-text-properties read-only | ○ |
| C-107 | +eshell-protect-output-in-visual-modes-hが出力保護 | E-01 L109-115 add-text-properties read-only | ○ |
| C-108 | +eshell-enable-text-wrapping-hがvisual-line有効 | E-01 L126-129 visual-line-mode | ○ |
| C-109 | +eshell-esh-help-eldoc-man-minibuffer-string-aがman説明 | E-01 L256-270 esh-help-man-string | ○ |
| C-110 | キャッシュ使用 | E-01 L260-262 gethash | ○ |
| C-111 | manなしでnilとキャッシュ | E-01 L265 puthash 'none | ○ |
| C-112 | +eshell--fix-eshell-did-you-mean-aがall-completions | E-01 L281-285 all-completions | ○ |
| C-113 | +eshell-filter-history-from-highlighting-aが抑制 | E-01 L291-296 memq this-command | ○ |
| C-114 | +eshell-syntax-highlight-maybe-hがハイライト復元 | E-01 L298-304 memq last-command | ○ |

### autoload/backport.el
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-115 | eshell-mode-mapが定義 | E-09 L15-22 make-sparse-keymap | ○ |
| C-116 | eshell-command-mapが定義 | E-09 L24-40 define-prefix-command | ○ |

## 4) 不足情報（Unknown / Missing）
- 全テストケースがソースコードの実装に基づいており、根拠なしの項目はありません。

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: 大部分のテストケース - ソースコードから直接導出
- **1（中リスク）**: ワークスペース統合テスト（C-64～C-67）- persp-modeの存在が前提
- **1（中リスク）**: evil統合テスト（C-76～C-80）- :editor evilモジュールの有効化が前提
- **1（中リスク）**: company統合テスト（C-81～C-88）- :completion companyモジュールの有効化が前提
- **1（中リスク）**: 後方互換性テスト（C-115～C-116）- Emacs 27環境でのみ有効

## 6) レビュアーチェックリスト（最小）
- [ ] バッファ管理関数（+eshell--add-buffer, +eshell--remove-buffer）のリング操作が正しいか
- [ ] エラーハンドリング（user-error発生条件）が網羅されているか
- [ ] 各補完システム（ivy/helm/vertico）との統合テストが適切か
- [ ] ウィンドウ分割時のdedicated状態維持が正しく検証されているか
- [ ] プロンプト表示のフェイス切り替え（success/error）が正しいか
- [ ] set-eshell-alias!の引数検証（偶数チェック）が適切か
- [ ] persp-mode統合のワークスペース切り替え処理が正しいか
