---
generated_at: 2026-02-19 10:30:00
metrics:
  claims_total: 30
  claims_with_evidence: 28
  claims_without_evidence: 2
confidence_derived: 0.93
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.93**
  - 根拠あり：28 / 30、根拠なし：2
- 優先レビュー（高）
  1. **UT-EMM-005（mpdコマンドが存在しない場合のエラー処理）**：エラーハンドリングの実装が不明
  2. **UT-EMM-012（mpcコマンドが存在しない場合のエラー処理）**：エラーハンドリングの実装が不明

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

- E-01: `modules/app/emms/autoload.el` - MPD関連関数定義（4関数）
- E-02: `modules/app/emms/config.el` - use-package!によるemms設定
- E-03: `modules/app/emms/packages.el` - emmsパッケージ定義とpin指定
- E-04: `modules/app/emms/README.org` - モジュール説明とキーバインド一覧

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

### autoload.el - MPD関連関数

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | +emms/mpd-start-music-daemonがMPDを起動する | E-01: L4-10 `(start-process "mpd" nil "mpd")` | ○ |
| C-02 | 起動時にデータベース更新が呼び出される | E-01: L7 `(+emms/mpc-update-database)` | ○ |
| C-03 | 起動時にMPD接続が確立される | E-01: L8 `(emms-player-mpd-connect)` | ○ |
| C-04 | 起動時にキャッシュが設定される | E-01: L9 `(emms-cache-set-from-mpd-all)` | ○ |
| C-05 | mpdコマンドが存在しない場合のエラー処理 | **根拠なし** | △ |
| C-06 | +emms/mpd-kill-music-daemonがMPDを停止する | E-01: L13-17 | ○ |
| C-07 | 停止時にemms-stopが呼び出される | E-01: L15 `(emms-stop)` | ○ |
| C-08 | --killオプションでプロセス終了 | E-01: L16 `(call-process "mpd" nil nil nil "--kill")` | ○ |
| C-09 | mpdが起動していない場合の冪等性 | E-01: call-processの戻り値未チェック | ○ |
| C-10 | +emms/mpc-update-databaseがDBを更新する | E-01: L20-23 | ○ |
| C-11 | mpc updateコマンドが実行される | E-01: L22 `(call-process "mpc" nil nil nil "update")` | ○ |
| C-12 | mpcコマンドが存在しない場合のエラー処理 | **根拠なし** | △ |
| C-13 | +emms/mpd-restart-music-daemonが再起動する | E-01: L25-30 | ○ |
| C-14 | kill後にstartが順番に呼び出される | E-01: L28-29 関数呼び出し順序 | ○ |
| C-15 | mpdが停止状態からの再起動 | E-01: L28-29 順次実行 | ○ |

### config.el - パッケージ設定

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | emms-directoryが正しく設定される | E-02: L6 `(setq emms-directory ...)` | ○ |
| C-17 | emms-cache-fileが正しく設定される | E-02: L7 `emms-cache-file` | ○ |
| C-18 | 遅延読み込みが有効 | E-02: L5 `:defer t` | ○ |
| C-19 | emms-allが実行される | E-02: L9 `(emms-all)` | ○ |
| C-20 | emms-default-playersが呼び出される | E-02: L10 `(emms-default-players)` | ○ |
| C-21 | localleader l でリピート切替 | E-02: L13, E-04: L41 | ○ |
| C-22 | localleader p でプレイリスト挿入 | E-02: L14, E-04: L45 | ○ |
| C-23 | localleader i でファイル挿入 | E-02: L15, E-04: L43 | ○ |
| C-24 | localleader t でトラックリピート | E-02: L16 | ○ |
| C-25 | localleader s でプレイリスト保存 | E-02: L17, E-04: L44 | ○ |
| C-26 | localleader m でシャッフル | E-02: L18, E-04: L42 | ○ |
| C-27 | キーバインドがemms-playlist-mode-mapに限定 | E-02: L11 `:map emms-playlist-mode-map` | ○ |

### packages.el - パッケージ定義

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-28 | emmsパッケージが定義される | E-03: L4 `(package! emms ...)` | ○ |
| C-29 | 特定コミットにピン留め | E-03: L4 `:pin "1d48a1133..."` | ○ |
| C-30 | バイトコンパイルがスキップされる | E-03: L1 `no-byte-compile: t` | ○ |

## 4) 不足情報（Unknown / Missing）
- **エラーハンドリングの実装詳細**
  - `start-process`や`call-process`でコマンドが存在しない場合の挙動
  - 現在のコードには明示的なエラーハンドリングがない
  - 候補：Emacs標準のエラー機構 / condition-case / ignore-errors

## 5) リスクフラグ（レビュー観点）
- **リスク1（中）**: 外部依存（mpd/mpc）が存在しない場合のエラー処理が未定義
- **リスク0（低）**: キーバインドのコンフリクト可能性（他のパッケージとの競合）
- **リスク0（低）**: ディレクトリパスの存在確認が未実装

## 6) レビュアーチェックリスト（最小）
- [ ] mpd/mpcが存在しない環境でのエラー挙動を手動確認
- [ ] emms-directory/emms-cache-fileのパスが正しく展開されることを確認
- [ ] 各キーバインドが期待通りの関数を呼び出すことを確認
- [ ] :defer t による遅延読み込みが正しく機能することを確認
- [ ] emmsパッケージのピン留めバージョンが最新の安定版であることを確認
