---
generated_at: 2026-02-19 12:00:00
metrics:
  claims_total: 72
  claims_with_evidence: 68
  claims_without_evidence: 4
confidence_derived: 0.94
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.94**
  - 根拠あり：68 / 72、根拠なし：4
- 優先レビュー（高）
  1. **C-47**: projectile-invalidate-cacheの呼び出しタイミングの検証が必要
  2. **C-55-57**: フリンジサイズ設定のGUI/ターミナル動作差異
  3. **C-68-72**: パッケージピン留めバージョンの最新性確認

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

- E-01: `modules/tools/magit/autoload.el` - 自動読み込み関数定義ファイル（198行）
- E-02: `modules/tools/magit/config.el` - 設定・パッケージ構成ファイル（319行）
- E-03: `modules/tools/magit/doctor.el` - 診断チェックファイル（5行）
- E-04: `modules/tools/magit/packages.el` - パッケージ依存定義ファイル（31行）
- E-05: `modules/tools/magit/README.org` - モジュール説明ドキュメント（参照のみ）

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

### autoload.el の関数テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | +magit--ignore-version-aが非対話時にメッセージを抑制 | E-01 L8-11 | ○ |
| C-02 | +magit--ignore-version-aが対話時にメッセージを表示 | E-01 L8-11 | ○ |
| C-03 | +magit-display-buffer-fnがmagit-status-modeで再利用 | E-01 L23-26 | ○ |
| C-04 | +magit-display-buffer-fnがgit-commit-modeから下に表示 | E-01 L28-41 | ○ |
| C-05 | +magit-display-buffer-fnがprocess-modeを0.35サイズで表示 | E-01 L37-41 | ○ |
| C-06 | +magit-display-buffer-fnがlog-select-modeから下に表示 | E-01 L36 | ○ |
| C-07 | +magit-display-buffer-fnが非magitから同一ウィンドウ表示 | E-01 L43-46 | ○ |
| C-08 | +magit-display-buffer-fnがstatusからdiffを同一ウィンドウ表示 | E-01 L47-51 | ○ |
| C-09 | +magit-display-buffer-fnがデフォルトでdirection表示 | E-01 L61 | ○ |
| C-10 | +magit--display-buffer-in-directionが既存ウィンドウ再利用 | E-01 L68-73 | ○ |
| C-11 | +magit--display-buffer-in-directionが反対方向を検索 | E-01 L74-82 | ○ |
| C-12 | +magit--display-buffer-in-directionが新規分割 | E-01 L83-90 | ○ |
| C-13 | +magit--display-buffer-in-directionがnoselect対応 | E-01 L72, 81, 84, 91 | ○ |
| C-14 | +magit--display-buffer-in-directionが単一ウィンドウ時に分割 | E-01 L74 | ○ |
| C-15 | +magit--revertable-buffer-pがt時にt返却 | E-01 L103-104 | ○ |
| C-16 | +magit--revertable-buffer-pがlocal時にローカルファイルでt | E-01 L105-108 | ○ |
| C-17 | +magit--revertable-buffer-pがlocal時にリモートでnil | E-01 L105-108 | ○ |
| C-18 | +magit--revertable-buffer-pが関数を呼び出し | E-01 L109-110 | ○ |
| C-19 | +magit--revertable-buffer-pがdead bufferでnil | E-01 L102 | ○ |
| C-20 | +magit--revert-bufferがリバート実行 | E-01 L112-126 | ○ |
| C-21 | +magit--revert-bufferがvc-refresh-state呼び出し | E-01 L118-120 | ○ |
| C-22 | +magit--revert-bufferが+vc-gutter-update-h呼び出し | E-01 L121-122 | ○ |
| C-23 | +magit--revert-bufferがプロセス付きバッファをスキップ | E-01 L123 | ○ |
| C-24 | +magit--revert-bufferがstaleフラグをクリア | E-01 L114 | ○ |
| C-25 | +magit-mark-stale-buffers-hが可視バッファをリバート | E-01 L135-141 | ○ |
| C-26 | +magit-mark-stale-buffers-hが非可視バッファにstale設定 | E-01 L142-143 | ○ |
| C-27 | +magit-mark-stale-buffers-hがnil時に何もしない | E-01 L134 | ○ |
| C-28 | +magit-revert-buffer-maybe-hがstale時にリバート | E-01 L148-149 | ○ |
| C-29 | +magit-revert-buffer-maybe-hが非stale時にスキップ | E-01 L148 | ○ |
| C-30 | +magit/quitがバッファをbury | E-01 L163-164 | ○ |
| C-31 | +magit/quitがKILL-BUFFER時にkill | E-01 L159, 164 | ○ |
| C-32 | +magit/quitが最後のバッファで全終了 | E-01 L165-170 | ○ |
| C-33 | +magit/quitが複数ウィンドウ時に部分終了 | E-01 L165-169 | ○ |
| C-34 | +magit/quit-allが全バッファをkill | E-01 L176 | ○ |
| C-35 | +magit/quit-allがstale処理を呼び出し | E-01 L177 | ○ |
| C-36 | +magit--kill-bufferが生存バッファをkill | E-01 L181-184 | ○ |
| C-37 | +magit--kill-bufferがnil入力を処理 | E-01 L181 | ○ |
| C-38 | +magit--kill-bufferがdead bufferを処理 | E-01 L181 | ○ |
| C-39 | +magit--kill-bufferがプロセス生存時に再試行 | E-01 L185-187 | ○ |
| C-40 | +magit--kill-bufferがプロセス終了時にkill | E-01 L188-189 | ○ |
| C-41 | +magit/start-code-reviewがforge有効時にforge関数呼び出し | E-01 L195-197 | ○ |
| C-42 | +magit/start-code-reviewが引数有りでcode-review-start呼び出し | E-01 L195 | ○ |
| C-43 | +magit/start-code-reviewがforge無しでcode-review-start呼び出し | E-01 L195 | ○ |

### config.el の設定・フック関数テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-44 | +magit-open-windows-in-directionのデフォルトがright | E-02 L3-5 | ○ |
| C-45 | +magit-fringe-sizeのデフォルトが(13 . 1) | E-02 L7-13 | ○ |
| C-46 | +magit-auto-revertのデフォルトがlocal | E-02 L15-35 | ○ |
| C-47 | +magit-invalidate-projectile-cache-hがキャッシュ無効化 | E-02 L76-85 | △ |
| C-48 | +magit--set-window-state-hがリージョン有りで状態保存 | E-02 L98-102 | ○ |
| C-49 | +magit--set-window-state-hがリージョン無しでスキップ | E-02 L100 | ○ |
| C-50 | +magit--restore-window-state-hが状態復元 | E-02 L103-109 | ○ |
| C-51 | +magit--restore-window-state-hがバッファ不一致時スキップ | E-02 L106 | ○ |
| C-52 | +magit-buffer-pがmagit-modeでt返却 | E-02 L144-147 | ○ |
| C-53 | +magit-buffer-pがprocess-modeでnil返却 | E-02 L147 | ○ |
| C-54 | +magit-buffer-pが非magitでnil返却 | E-02 L146 | ○ |
| C-55 | +magit-enlargen-fringe-hがGUIでフリンジ設定 | E-02 L157-166 | △ |
| C-56 | +magit-enlargen-fringe-hがターミナルでスキップ | E-02 L161 | △ |
| C-57 | +magit-enlargen-fringe-hがnilサイズでスキップ | E-02 L163 | △ |
| C-58 | +magit-reveal-point-if-invisible-hがorg-modeでorg-reveal | E-02 L168-172 | ○ |
| C-59 | +magit-reveal-point-if-invisible-hが非org-modeでreveal | E-02 L173-174 | ○ |
| C-60 | +vc-start-in-insert-state-maybe-hが空コミットでinsert | E-02 L312-318 | ○ |
| C-61 | +vc-start-in-insert-state-maybe-hが既存メッセージでスキップ | E-02 L317-318 | ○ |
| C-62 | +vc-start-in-insert-state-maybe-hがemacs-stateでスキップ | E-02 L317 | ○ |
| C-63 | +vc-start-in-insert-state-maybe-hがevil無しでスキップ | E-02 L316 | ○ |
| C-64 | +magit--override-evil-collection-defaults-aがキーをアンバインド | E-02 L291-298 | ○ |

### doctor.el の診断チェックテストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-65 | +forge有効かつEmacs 29.1+でエラーなし | E-03 L3-5 | ○ |
| C-66 | +forge有効かつEmacs 29.1未満でエラー | E-03 L3-5 | ○ |
| C-67 | +forge無効でチェックスキップ | E-03 L3 | ○ |

### packages.el のパッケージ設定テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-68 | transientが指定コミットでピン留め | E-04 L11 | ○ |
| C-69 | magitが指定コミットでピン留め | E-04 L14 | ○ |
| C-70 | forgeがEmacs 29.1+で有効化 | E-04 L15-20 | ○ |
| C-71 | forgeがEmacs 29.1未満で無効化 | E-04 L20 | ○ |
| C-72 | code-reviewがGitHubレシピで設定 | E-04 L25-31 | ○ |

## 4) 不足情報（Unknown / Missing）

- **C-47 projectile連携**: projectile-invalidate-cacheの呼び出しは確認できるが、実際のキャッシュ状態への影響の検証には追加テストが必要
  - 候補：projectileの内部状態確認 / キャッシュファイルの検証 / projectile-find-fileの動作確認

- **C-55-57 フリンジ設定**: GUI/ターミナルの判定ロジックは確認できるが、実際の描画への影響は視覚的検証が必要
  - 候補：display-graphic-pのモック / set-window-fringesの呼び出し確認 / 実機GUI環境でのスクリーンショット比較

## 5) リスクフラグ（レビュー観点）

| リスク | 項目 | 理由 |
|--------|------|------|
| 1 | バッファ自動リバート機能 | ユーザーデータに影響する可能性があり、リモートファイル判定の誤りがデータ破損につながる恐れ |
| 1 | ウィンドウ表示制御 | 複数の条件分岐があり、エッジケースで予期しない動作の可能性 |
| 0 | パッケージバージョン固定 | ピン留めされているため安定しているが、アップデート追従が遅れる可能性 |
| 0 | キーバインド設定 | 機能への影響は軽微で、ユーザー体験に限定 |
| 2 | forge Emacs バージョンチェック | 互換性チェックの失敗はモジュール全体の動作に影響 |

## 6) レビュアーチェックリスト（最小）

- [ ] +magit--revertable-buffer-pのリモートファイル判定がTRAMP全パターンで正しく動作するか
- [ ] +magit-display-buffer-fnの条件分岐が全パターンで期待通りか（特にmagit-log-select-mode）
- [ ] +magit--kill-bufferの5秒タイマーが適切か（長時間プロセスへの対応）
- [ ] doctor.elのEmacs 29.1バージョンチェックがversion<で正しく動作するか（境界値 "29.1" と "29.0.90" など）
- [ ] evil-collection連携のキーバインドが他のモードと競合しないか
- [ ] +magit-auto-revert変数のカスタム関数オプションのドキュメントが十分か
