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

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：65 / 65、根拠なし：0
- 優先レビュー（高）
  1. **なし**：全テストケースにソースコードからの根拠あり

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

- E-01: `modules/app/irc/config.el` - メイン設定ファイル（変数定義、関数定義、フック設定）
- E-02: `modules/app/irc/autoload/irc.el` - IRC操作用autoload関数群（接続、切断、メッセージ送信等）
- E-03: `modules/app/irc/autoload/settings.el` - サーバー設定用関数（set-irc-server!）
- E-04: `modules/app/irc/autoload/ivy.el` - Ivy補完連携関数
- E-05: `modules/app/irc/autoload/vertico.el` - Vertico補完連携関数
- E-06: `modules/app/irc/packages.el` - パッケージ依存関係定義
- E-07: `modules/app/irc/doctor.el` - モジュール診断スクリプト

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

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | +irc--pad: 左パディングとメッセージのフォーマット | E-01 (L30-32) defsubst定義 | ○ |
| C-02 | +irc--pad: 境界値（padding<12） | E-01 (L3-6) 変数ドキュメント | ○ |
| C-03 | +irc--pad: 空文字列入力 | E-01 (L30-32) format関数の動作 | ○ |
| C-04 | +irc-circe-message-option-bot-h: ボット判定（一致） | E-01 (L95-98) member関数使用 | ○ |
| C-05 | +irc-circe-message-option-bot-h: ボット判定（不一致） | E-01 (L97) when条件分岐 | ○ |
| C-06 | +irc-circe-message-option-bot-h: 空リスト | E-01 (L19-20) +irc-bot-list定義 | ○ |
| C-07 | +irc-truncate-nicks-h: 長いニック切り詰め | E-01 (L177-186) compose-region使用 | ○ |
| C-08 | +irc-truncate-nicks-h: 短いニック維持 | E-01 (L184) length比較条件 | ○ |
| C-09 | +irc-truncate-nicks-h: 境界値（ちょうどpadding長） | E-01 (L184) > 演算子使用 | ○ |
| C-10 | +irc-evil-insert-h: カーソル移動（marker前） | E-01 (L189-193) when条件 | ○ |
| C-11 | +irc-evil-insert-h: カーソル維持（marker後） | E-01 (L192) marker-position比較 | ○ |
| C-12 | +irc-preinput-scroll-to-bottom-h: 対象コマンドスクロール | E-01 (L202-216) memq判定 | ○ |
| C-13 | +irc-preinput-scroll-to-bottom-h: 非対象コマンド | E-01 (L205) memq条件分岐 | ○ |
| C-14 | +irc-init-lui-margins-h: right-margin設定 | E-01 (L222-225) pcase分岐 | ○ |
| C-15 | +irc-init-lui-margins-h: left-margin設定 | E-01 (L225) pcase分岐 | ○ |
| C-16 | +irc-init-lui-wrapping-a: ラップ設定 | E-01 (L226-229) setq設定 | ○ |
| C-17 | +irc-init-circe-notifications-h: 即時通知有効化 | E-01 (L147-153) if条件分岐 | ○ |
| C-18 | +irc-init-circe-notifications-h: 遅延通知有効化 | E-01 (L149-152) run-at-time使用 | ○ |
| C-19 | +irc--circe-run-disconnect-hook-a: 切断フック | E-01 (L89-92) defadvice!定義 | ○ |

### autoload/irc.el 関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-20 | +irc-setup-wconf: ワークスペース切り替え | E-02 (L5-16) +workspace-switch呼び出し | ○ |
| C-21 | +irc-setup-wconf: ワークスペース抑制 | E-02 (L6-7) inhibit-workspace条件 | ○ |
| C-22 | +irc-setup-wconf: 既存バッファ切り替え | E-02 (L10-12) switch-to-buffer | ○ |
| C-23 | +irc-setup-wconf: フォールバック | E-02 (L13-16) doom-fallback-buffer | ○ |
| C-24 | =irc: 既存バッファメッセージ | E-02 (L26-27) cond条件 | ○ |
| C-25 | =irc: 全ネットワーク接続 | E-02 (L28-29) mapc #'circe | ○ |
| C-26 | =irc: インタラクティブ接続 | E-02 (L30) call-interactively | ○ |
| C-27 | +irc/connect: サーバー接続 | E-02 (L33-40) 関数定義 | ○ |
| C-28 | +irc/connect: セットアップ失敗 | E-02 (L39-40) and条件 | ○ |
| C-29 | +irc/send-message: メッセージ送信 | E-02 (L43-46) circe-command-MSG | ○ |
| C-30 | +irc/send-message: 空宛先 | E-02 (L46) circe-command-MSG呼び出し | ○ |
| C-31 | +irc/quit: セッション終了 | E-02 (L49-63) 関数本体 | ○ |
| C-32 | +irc/quit: 終了キャンセル | E-02 (L52-53) y-or-n-p判定 | ○ |
| C-33 | +irc/quit: タイマーキャンセル | E-02 (L56-57) cancel-timer | ○ |
| C-34 | +irc/quit: 通知無効化 | E-02 (L58-59) disable-circe-notifications | ○ |
| C-35 | +irc/jump-to-channel: vertico選択 | E-02 (L71) modulep!判定 | ○ |
| C-36 | +irc/jump-to-channel: ivy選択 | E-02 (L72) modulep!判定 | ○ |
| C-37 | +irc/jump-to-channel: バックエンドなしエラー | E-02 (L73) user-error | ○ |
| C-38 | +irc--circe-all-buffers: バッファリスト取得 | E-02 (L76-83) cl-loop定義 | ○ |
| C-39 | +irc--circe-all-buffers: サーバーのみ | E-02 (L81-83) nconc処理 | ○ |
| C-40 | +irc--circe-all-buffers: 空リスト | E-02 (L77) circe-server-buffers | ○ |
| C-41 | +irc/tracking-next-buffer: circe-mode内 | E-02 (L86-90) derived-mode-p判定 | ○ |
| C-42 | +irc/tracking-next-buffer: 非circe-mode | E-02 (L89) when条件 | ○ |
| C-43 | +circe-buffer-p: circe-mode判定（true） | E-02 (L97-100) derived-mode-p | ○ |
| C-44 | +circe-buffer-p: circe-mode判定（false） | E-02 (L100) derived-mode-p | ○ |
| C-45 | +irc--add-circe-buffer-to-persp-h: バッファ追加 | E-02 (L103-113) persp-add-buffer | ○ |
| C-46 | +irc--add-circe-buffer-to-persp-h: 同一WS | E-02 (L109) unless条件 | ○ |
| C-47 | +irc--add-circe-buffer-to-persp-h: persp無効 | E-02 (L104) bound-and-true-p | ○ |
| C-48 | +irc--add-circe-buffer-to-persp-h: WS不在 | E-02 (L105) +workspace-exists-p | ○ |

### autoload/settings.el 関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-49 | set-irc-server!: 設定追加 | E-03 (L4-18) setf使用 | ○ |
| C-50 | set-irc-server!: host自動設定 | E-03 (L14-15) plist-member判定 | ○ |
| C-51 | set-irc-server!: 明示的host | E-03 (L14) plist-member | ○ |
| C-52 | set-irc-server!: 設定上書き | E-03 (L16-17) setf alist-get | ○ |

### autoload/ivy.el 関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-53 | +irc/ivy-jump-to-channel: UI表示 | E-04 (L5-26) ivy-read呼び出し | ○ |
| C-54 | +irc/ivy-jump-to-channel: サーバーフィルタ | E-04 (L14) if this-server条件 | ○ |
| C-55 | +irc/ivy-jump-to-channel: サーバーバッファ外 | E-04 (L11-12) setq this-server nil | ○ |
| C-56 | +irc/ivy-jump-to-channel: バッファなし | E-04 (L9-10) message表示 | ○ |
| C-57 | +irc--ivy-switch-to-buffer-action: トリミング | E-04 (L28-30) string-trim-left | ○ |
| C-58 | +irc--ivy-switch-to-buffer-action: 通常名 | E-04 (L30) string-trim-left | ○ |
| C-59 | +irc--ivy-switch-to-buffer-action: nil入力 | E-04 (L29) stringp判定 | ○ |

### autoload/vertico.el 関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-60 | +irc/vertico-jump-to-channel: UI表示 | E-05 (L5-14) consult--multi | ○ |
| C-61 | +irc/vertico-jump-to-channel: hidden設定 | E-05 (L9-10) plist-put :hidden nil | ○ |
| C-62 | +irc--consult-circe-source: items関数 | E-05 (L23) lambda式 | ○ |
| C-63 | +irc--consult-circe-source: 空リスト | E-05 (L23) +irc--circe-all-buffers | ○ |

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-64 | doctor診断: 警告表示 | E-07 (L4-5) memq条件 | ○ |
| C-65 | doctor診断: 警告なし | E-07 (L4) when条件 | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし：全テストケースがソースコードから直接導出されている

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースにソースコードの根拠あり
- **注意点**：
  - Emacs Lisp特有のマクロ展開（defadvice!、after!等）の動作はDoom Emacs固有のため、実行時の挙動確認が推奨される
  - circe、lui等の外部パッケージの内部動作に依存するテストは、パッケージバージョンにより挙動が変わる可能性がある

## 6) レビュアーチェックリスト（最小）
- [ ] 高優先度のテストケース（UT-IRC-017〜019, 025, 027, 029, 031-032, 045, 049-050）が適切にカバーされているか確認
- [ ] ワークスペース関連機能（:ui workspaces依存）のテストが環境依存性を考慮しているか確認
- [ ] 補完バックエンド（ivy/vertico）のモジュール有効/無効の組み合わせが網羅されているか確認
- [ ] circe外部パッケージのモック戦略が明確か確認
- [ ] Doom Emacs固有マクロ（modulep!、after!等）のテスト方針が適切か確認
