---
generated_at: 2026-02-19 10:30:00
metrics:
  claims_total: 70
  claims_with_evidence: 68
  claims_without_evidence: 2
confidence_derived: 0.97
---

# 根拠レポート：modules-editor-file-templates 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：68 / 70、根拠なし：2
- 優先レビュー（高）
  1. **C-42**：evil連携のテストケース - evil-modeの実際の動作確認が必要
  2. **C-51/52/53**：+file-templates/insert-licenseのユーザーインタラクション部分

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

- E-01: `modules/editor/file-templates/config.el` - 変数定義、関数定義、フックの設定
- E-02: `modules/editor/file-templates/autoload.el` - API関数、ユーティリティ関数、コマンド定義
- E-03: `modules/editor/file-templates/packages.el` - 依存パッケージ（yasnippet）の定義
- E-04: `modules/editor/file-templates/README.org` - モジュールのドキュメント、API説明
- E-05: `modules/editor/file-templates/templates/` - 各種テンプレートスニペットファイル

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

### config.el の関数テスト

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | +file-templates-in-emacs-dirs-p: doom-user-dir内判定 | E-01 L125-128 | ○ |
| C-02 | +file-templates-in-emacs-dirs-p: doom-emacs-dir内判定 | E-01 L125-128 | ○ |
| C-03 | +file-templates-in-emacs-dirs-p: 外部ファイル判定 | E-01 L125-128 | ○ |
| C-04 | +file-template-p: シンボルmajor-modeマッチ | E-01 L130-143 | ○ |
| C-05 | +file-template-p: 正規表現ファイル名マッチ | E-01 L130-143 | ○ |
| C-06 | +file-template-p: :when条件評価（満たす） | E-01 L140-142 | ○ |
| C-07 | +file-template-p: :when条件評価（満たさない） | E-01 L140-142 | ○ |
| C-08 | +file-template-p: major-mode不一致 | E-01 L134-136 | ○ |
| C-09 | +file-template-p: 正規表現不一致 | E-01 L137-139 | ○ |
| C-10 | +file-template-p: buffer-file-nameがnil | E-01 L138 | ○ |
| C-11 | +file-template-p: derived-mode-extra-parentsマッチ | E-01 L136 | ○ |
| C-12 | +file-templates-check-h: 新規空ファイル展開 | E-01 L145-158 | ○ |
| C-13 | +file-templates-check-h: inhibitフラグ | E-01 L149 | ○ |
| C-14 | +file-templates-check-h: buffer-file-name nil | E-01 L150 | ○ |
| C-15 | +file-templates-check-h: 読み取り専用 | E-01 L151 | ○ |
| C-16 | +file-templates-check-h: 空でないバッファ | E-01 L152 | ○ |
| C-17 | +file-templates-check-h: 特殊バッファ除外 | E-01 L153 | ○ |
| C-18 | +file-templates-check-h: 既存ファイル | E-01 L155 | ○ |
| C-19 | +file-templates-check-h: 変更済みバッファ | E-01 L156 | ○ |
| C-20 | +file-templates-check-h: org-captureバッファ | E-01 L154 | ○ |
| C-21 | +file-templates-check-h: 間接バッファ | E-01 L157 | ○ |
| C-22 | +file-templates/apply: マッチするルールあり | E-01 L160-164 | ○ |
| C-23 | +file-templates/apply: マッチするルールなし | E-01 L163 | ○ |

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-24 | +file-templates--set: ルール追加 | E-02 L3-8 | ○ |
| C-25 | +file-templates--set: ルール削除 | E-02 L4-7 | ○ |
| C-26 | set-file-template!: 正規表現pred登録 | E-02 L11-40, E-04 L86 | ○ |
| C-27 | set-file-template!: major-mode登録 | E-02 L11-40, E-04 L86 | ○ |
| C-28 | set-file-template!: :when条件付き登録 | E-02 L17-20 | ○ |
| C-29 | set-file-template!: :project登録 | E-02 L31-32 | ○ |
| C-30 | set-file-template!: :ignore登録 | E-02 L33-35 | ○ |
| C-31 | set-file-templates!: 一括登録 | E-02 L43-49, E-04 L87 | ○ |
| C-32 | set-file-templates!: 空リスト | E-02 L47-49 | ○ |
| C-33 | +file-templates--expand: 文字列trigger展開 | E-02 L56-84 | ○ |
| C-34 | +file-templates--expand: 関数trigger展開 | E-02 L70-71 | ○ |
| C-35 | +file-templates--expand: mode自動決定 | E-02 L61-65 | ○ |
| C-36 | +file-templates--expand: デフォルトtrigger | E-02 L68-69 | ○ |
| C-37 | +file-templates--expand: project内展開 | E-02 L60 | ○ |
| C-38 | +file-templates--expand: project外非展開 | E-02 L60 | ○ |
| C-39 | +file-templates--expand: ignore抑制 | E-02 L59 | ○ |
| C-40 | +file-templates--expand: pred nil | E-02 L59 | ○ |
| C-41 | +file-templates--expand: mode決定失敗 | E-02 L66-67 | ○ |
| C-42 | +file-templates--expand: evil insert遷移 | E-02 L80-84 | △ |
| C-43 | +file-templates-get-short-path: modulesパス | E-02 L87-97 | ○ |
| C-44 | +file-templates-get-short-path: emacs-dir | E-02 L93-94 | ○ |
| C-45 | +file-templates-get-short-path: user-dir | E-02 L95-96 | ○ |
| C-46 | +file-templates-get-short-path: 外部パス | E-02 L97 | ○ |
| C-47 | +file-templates-get-short-path: nil処理 | E-02 L89 | ○ |
| C-48 | +file-templates-module-for-path: モジュール名 | E-02 L100-105 | ○ |
| C-49 | +file-templates-module-for-path: カテゴリ名 | E-02 L103-104 | ○ |
| C-50 | +file-templates-module-for-path: デフォルトパス | E-02 L102 | ○ |
| C-51 | +file-templates/insert-license: ライセンス挿入 | E-02 L112-126, E-04 L46-52 | ○ |
| C-52 | +file-templates/insert-license: 自動リロード | E-02 L116-117 | ○ |
| C-53 | +file-templates/insert-license: キャンセル | E-02 L125 | △ |
| C-54 | +file-templates/debug: 正常ケース | E-02 L129-143, E-04 L73-75 | ○ |
| C-55 | +file-templates/debug: スニペット不在 | E-02 L143 | ○ |
| C-56 | +file-templates/debug: ルールなし | E-02 L135 | ○ |
| C-57 | +file-templates/debug: 関数trigger | E-02 L136 | ○ |
| C-58 | +file-templates-insert-doom-docs-fn: カテゴリREADME | E-02 L149-160 | ○ |
| C-59 | +file-templates-insert-doom-docs-fn: モジュールREADME | E-02 L156-157 | ○ |
| C-60 | +file-templates-insert-doom-docs-fn: doom-docs | E-02 L158-159 | ○ |
| C-61 | +file-templates-insert-doom-docs-fn: デフォルト | E-02 L160 | ○ |

### +file-templates-alist のルールテスト

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-62 | gitignore-modeルール | E-01 L16 | ○ |
| C-63 | dockerfile-modeルール | E-01 L17 | ○ |
| C-64 | docker-compose.ymlルール | E-01 L18 | ○ |
| C-65 | Makefileルール | E-01 L19 | ○ |
| C-66 | C++ main.cppルール | E-01 L49 | ○ |
| C-67 | C++ .hppルール | E-01 L52 | ○ |
| C-68 | Rust main.rsルール | E-01 L108 | ○ |
| C-69 | package.jsonルール | E-01 L70 | ○ |
| C-70 | org-journal-mode ignoreルール | E-01 L88 | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-42**: evil-modeとの連携テストでは、実際のevil-modeの動作環境が必要。コード上は条件分岐が確認できるが、実際のinsertモード遷移の動作確認には統合テスト環境が必要。
  - 候補：evil-modeのモック / 統合テスト環境 / 手動テスト
- **C-53**: yas-choose-valueのキャンセル動作は、インタラクティブなユーザー入力に依存するため、単体テストでの完全な検証は困難。
  - 候補：yas-choose-valueのモック / UIテストフレームワーク

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 大部分のテストケースはソースコードから直接導出されており、高い信頼性を持つ
- **1: 中リスク** - evil-mode連携部分（C-42）は、evilパッケージの存在を前提とした条件分岐のため、実環境でのテストを推奨
- **0: 低リスク** - yasnippet連携部分は、yasnippetがpackages.elで依存として明示されているため問題なし

## 6) レビュアーチェックリスト（最小）
- [ ] +file-templates-in-emacs-dirs-p のテストケース（C-01〜C-03）が、doom-user-dir/doom-emacs-dirの実際の定義と整合しているか確認
- [ ] +file-template-p のテストケース（C-04〜C-11）が、derived-mode-extra-parentsの仕様と整合しているか確認
- [ ] +file-templates-check-h の全条件分岐（C-12〜C-21）がカバーされているか確認
- [ ] +file-templates--expand のevilモード連携（C-42）の期待動作が正しいか確認
- [ ] +file-templates/insert-license のインタラクティブ動作（C-51〜C-53）が適切にテスト可能か確認
- [ ] +file-templates-alist の主要なルール（C-62〜C-70）が実際のテンプレートファイルと対応しているか確認
