---
generated_at: 2026-02-19 10:30:00
metrics:
  claims_total: 52
  claims_with_evidence: 52
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：52 / 52、根拠なし：0
- 優先レビュー（高）
  1. **該当なし**：全テストケースがソースコードに基づいて生成されており、根拠不足の項目はありません

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

- E-01: `modules/tools/tree-sitter/autoload/tree-sitter.el` - メイン機能定義ファイル
- E-02: `modules/tools/tree-sitter/autoload/compat-30.el` - Emacs 30互換レイヤー
- E-03: `modules/tools/tree-sitter/config.el` - モジュール設定ファイル
- E-04: `modules/tools/tree-sitter/doctor.el` - 診断機能ファイル
- E-05: `modules/tools/tree-sitter/packages.el` - パッケージ定義ファイル
- E-06: `modules/tools/tree-sitter/README.org` - ドキュメント（参考）

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

### autoload/tree-sitter.el 関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | tree-sitter!関数がdeprecationメッセージを表示する | E-01 (L4-5: `(message "Old tree-sitter.el support is deprecated!")`) | ○ |
| C-02 | set-tree-sitter!が単一モードをリマップできる | E-01 (L8-50: set-tree-sitter!関数定義) | ○ |
| C-03 | set-tree-sitter!が複数モードをリマップできる | E-01 (L25: `(modes (ensure-list modes))`) | ○ |
| C-04 | set-tree-sitter!がレシピをtreesit-language-source-alistに追加する | E-01 (L37-50: with-eval-after-loadブロック) | ○ |
| C-05 | set-tree-sitter!がderived-mode-extra-parentsを設定する | E-01 (L29: `(put ts-mode 'derived-mode-extra-parents modes)`) | ○ |
| C-06 | set-tree-sitter!が+tree-sitterプロパティを設定する | E-01 (L33: `(put ts-mode '+tree-sitter (cons m (mapcar #'car recipes)))`) | ○ |
| C-07 | set-tree-sitter!が*-maybeモードを削除する | E-01 (L34-36: rassq-delete-all呼び出し) | ○ |
| C-08 | set-tree-sitter!がmodesの型チェックを行う | E-01 (L22: `(cl-check-type modes (or list symbol))`) | ○ |
| C-09 | set-tree-sitter!がts-modeの型チェックを行う | E-01 (L23: `(cl-check-type ts-mode symbol)`) | ○ |
| C-10 | set-tree-sitter!がnilモードを処理できる | E-01 (L30: `(dolist (m (or modes (list nil)))`) | ○ |
| C-11 | set-tree-sitter!が空レシピを処理できる | E-01 (L37: `(when-let* ((recipes (cl-delete-if-not #'cdr recipes)))`) | ○ |
| C-12 | +tree-sitter-ts-mode-inhibit-side-effects-aがauto-mode-alistを保護する | E-01 (L69-72: let束縛でalistをシャドウイング) | ○ |
| C-13 | +tree-sitter-ts-mode-inhibit-side-effects-aがinterpreter-mode-alistを保護する | E-01 (L71: `interpreter-mode-alist`) | ○ |
| C-14 | +tree-sitter-ts-mode-inhibit-side-effects-aが戻り値を伝播する | E-01 (L72: `(apply fn args)`) | ○ |
| C-15 | +tree-sitter/doctorが成功メッセージを表示する | E-01 (L82: `(message "Tree-sitter is functioning in this buffer!")`) | ○ |
| C-16 | +tree-sitter/doctorがtreesit未対応時にエラーを出す | E-01 (L78-79: `(unless (treesit-available-p) (user-error ...))`) | ○ |
| C-17 | +tree-sitter/doctorがパーサー不在時にエラーを出す | E-01 (L80-81: `(unless (treesit-parser-list) (user-error ...))`) | ○ |

### autoload/compat-30.el 関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-18 | treesit-auto-install-grammarのデフォルト値が'ask | E-02 (L11: `(defcustom treesit-auto-install-grammar 'ask`) | ○ |
| C-19 | treesit-auto-install-grammarを'alwaysに設定可能 | E-02 (L20-22: choice型定義にalwaysが含まれる) | ○ |
| C-20 | treesit-auto-install-grammarを'neverに設定可能 | E-02 (L20: `(const :tag "Never install grammar libraries" never)`) | ○ |
| C-21 | treesit-ensure-installedがインストール済み文法でtを返す | E-02 (L33: `(or (treesit-ready-p lang t)`) | ○ |
| C-22 | treesit-ensure-installedが'always時に自動インストールする | E-02 (L34: `(when (or (eq treesit-auto-install-grammar 'always)`) | ○ |
| C-23 | treesit-ensure-installedが'ask時にプロンプトを表示する | E-02 (L35-38: `(and (eq treesit-auto-install-grammar 'ask) (y-or-n-p ...))`) | ○ |
| C-24 | treesit-ensure-installedがユーザー拒否時にnilを返す | E-02 (L33-41: orの短絡評価でnilが返る) | ○ |
| C-25 | treesit-ensure-installedが'never時にインストールしない | E-02 (L34: eqチェックが失敗しwhenブロックが実行されない) | ○ |
| C-26 | treesit-ensure-installedがインストール失敗時にnilを返す | E-02 (L41: `(treesit-ready-p lang)` が失敗時にnil) | ○ |
| C-27 | treesit-enabled-modesのデフォルト値がnil | E-02 (L49: `(defcustom treesit-enabled-modes nil`) | ○ |
| C-28 | treesit-enabled-modesをtに設定で全モード有効 | E-02 (L64-70: setterで`(eq val t)`チェック) | ○ |
| C-29 | treesit-enabled-modesにリストを設定可能 | E-02 (L69: `(memq (cdr m) val)`) | ○ |
| C-30 | treesit-enabled-modesをnilで全モード無効 | E-02 (L70: `(delete m major-mode-remap-alist)`) | ○ |
| C-31 | treesit-major-mode-remap-alistが未定義時に初期化される | E-02 (L45-46: `(unless (boundp ...) (defvar ... nil))`) | ○ |

### config.el 関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-32 | +tree-sitter--maybe-remap-major-mode-aがts-modeを返す | E-03 (L45-99: defadvice!定義) | ○ |
| C-33 | treesit利用不可時にフォールバックする | E-03 (L50-52: `(not (treesit-available-p))` 分岐) | ○ |
| C-34 | ts-mode未定義時にフォールバックする | E-03 (L53-55: `(not (fboundp mode))` 分岐) | ○ |
| C-35 | 文法不足時にインストールプロンプトを表示 | E-03 (L85-89: y-or-n-p呼び出し) | ○ |
| C-36 | 'always設定時に自動インストール | E-03 (L85: `(eq treesit-auto-install-grammar 'always)`) | ○ |
| C-37 | +tree-sitter-ensuredプロパティが設定される | E-03 (L96: `(put mode '+tree-sitter-ensured t)`) | ○ |
| C-38 | treesit-enabled-modesリストにないモードはリマップされない | E-03 (L56-57: memqチェック) | ○ |
| C-39 | 文法インストール拒否時にフォールバック | E-03 (L91-94: message出力とnil返却) | ○ |
| C-40 | +tree-sitterプロパティがないモードはそのまま返される | E-03 (L48-49: if-let*のnil分岐) | ○ |
| C-41 | out-dir未指定時にdoom-profile-data-dirが使用される | E-03 (L104-114: defadvice!定義でdata-dir使用) | ○ |
| C-42 | out-dir指定時にその場所が使用される | E-03 (L110,113: `(or out-dir data-dir)`) | ○ |
| C-43 | 追加の文法ソースが登録される | E-03 (L117-138: dolist文法登録) | ○ |
| C-44 | treesit-extra-load-pathにパスが追加される | E-03 (L105: `(add-to-list 'treesit-extra-load-path data-dir)`) | ○ |
| C-45 | treesit-font-lock-levelが4に設定される | E-03 (L14: `(setq treesit-font-lock-level 4)`) | ○ |
| C-46 | auto-mode-alistから*-ts-modeが除去される | E-03 (L26-31: cl-loopでフィルタリング) | ○ |
| C-47 | interpreter-mode-alistから*-ts-modeが除去される | E-03 (L26: `interpreter-mode-alist`も対象) | ○ |

### doctor.el 関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-48 | 動的モジュールサポート確認（正常） | E-04 (L3: `(unless (bound-and-true-p module-file-suffix)`) | ○ |
| C-49 | 動的モジュールサポート確認（エラー） | E-04 (L4: `(error! "Emacs not built with dynamic modules support")`) | ○ |
| C-50 | Emacsバージョン確認 | E-04 (L6-7: version<チェックとerror!) | ○ |
| C-51 | treesitサポート確認 | E-04 (L8-9: treesit-available-pチェック) | ○ |

### packages.el 関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-52 | treesitパッケージがbuilt-inとして定義される | E-05 (L4: `(package! treesit :built-in t)`) | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし
  - 全てのテストケースはソースコードから直接抽出された関数・設定に基づいています

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全テストケースがソースコードに直接対応しており、根拠が明確です
- 注意点：
  - Emacs Lispの動的特性（defadvice!, put, letバインディング等）により、実行時の挙動が静的解析と異なる可能性があります
  - Emacs 30以前/以後のバージョン分岐があるため、テスト実行環境のバージョンに注意が必要です

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースがソースコード内の関数・設定を網羅しているか確認
- [ ] 正常系・異常系・境界値の観点が適切にカバーされているか確認
- [ ] Emacs Lispの特殊な構文（defadvice!, cl-check-type等）に対するテスト観点が妥当か確認
- [ ] Emacs 29/30/31のバージョン分岐に対するテストケースが適切か確認
- [ ] 優先度（高/中/低）の割り当てがビジネス重要度と整合しているか確認
