---
generated_at: 2026-02-19 19:05:00
metrics:
  claims_total: 129
  claims_with_evidence: 129
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：129 / 129、根拠なし：0
- 優先レビュー（高）
  1. **ワークスペース保護機能**：persp-nil-nameとの比較ロジック
  2. **ワークスペースCRUD操作**：作成/削除/リネーム/切替の正確性
  3. **プロジェクト連携**：projectileとの統合動作

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

- E-01: `modules/ui/workspaces/config.el` - モジュール設定ファイル（262行）
- E-02: `modules/ui/workspaces/autoload/workspaces.el` - メイン機能実装（647行）
- E-03: `modules/ui/workspaces/autoload/evil.el` - Evil連携コマンド（40行）
- E-04: `modules/ui/workspaces/packages.el` - 依存パッケージ定義（4行）
- E-05: `modules/ui/workspaces/README.org` - モジュールドキュメント（126行）
- E-06: `modules/ui/workspaces/test/test-workspaces.el` - 既存テストコード（125行）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | +workspace--protected-p関数がpersp-nil-nameと一致する場合にtを返す | E-02 (line 20-21) | ○ |
| C-02 | +workspace--protected-p関数が通常ワークスペース名でnilを返す | E-02 (line 20-21) | ○ |
| C-03 | +workspace--generate-id関数が既存#番号なしで1を返す | E-02 (line 23-28) | ○ |
| C-04 | +workspace--generate-id関数が最大値+1を返す | E-02 (line 23-28) | ○ |
| C-05 | +workspace-pがperspective構造体でtを返す | E-02 (line 33-34) | ○ |
| C-06 | +workspace-pがnilでnilを返す | E-02 (line 33-34) | ○ |
| C-07 | +workspace-exists-pが存在チェックを行う | E-02 (line 37-39), E-06 (line 70-76) | ○ |
| C-08 | +workspace-contains-buffer-pがバッファ所属を判定する | E-02 (line 42-43), E-06 (line 78-84) | ○ |
| C-09 | +workspace-currentが現在ワークスペースを返す | E-02 (line 48-49), E-06 (line 61-68) | ○ |
| C-10 | +workspace-getがワークスペース構造体を返す | E-02 (line 52-59) | ○ |
| C-11 | +workspace-getがnoerrorオプションをサポートする | E-02 (line 52-59) | ○ |
| C-12 | +workspace-getが型チェックを行う | E-02 (line 55: cl-check-type) | ○ |
| C-13 | +workspace-current-nameが文字列を返す | E-02 (line 62-64), E-06 (line 65-68) | ○ |
| C-14 | +workspace-list-namesがpersp-nil-nameを除外する | E-02 (line 67-69), E-06 (line 86-92) | ○ |
| C-15 | +workspace-listが構造体リストを返す | E-02 (line 72-78), E-06 (line 90-92) | ○ |
| C-16 | +workspace-buffer-listがバッファリストを返す | E-02 (line 81-89) | ○ |
| C-17 | +workspace-orphaned-buffer-listが孤立バッファを返す | E-02 (line 92-94) | ○ |
| C-18 | +workspace-loadが保存済みワークスペースを読み込む | E-02 (line 99-109) | ○ |
| C-19 | +workspace-loadが重複チェックを行う | E-02 (line 104-105) | ○ |
| C-20 | +workspace-saveがファイル保存を行う | E-02 (line 112-123) | ○ |
| C-21 | +workspace-deleteがファイルから削除する | E-02 (line 126-141) | ○ |
| C-22 | +workspace-newが新規ワークスペースを作成する | E-02 (line 144-160), E-06 (line 95-97) | ○ |
| C-23 | +workspace-newが保護チェックを行う | E-02 (line 147-148) | ○ |
| C-24 | +workspace-newが重複チェックを行う | E-02 (line 149-150) | ○ |
| C-25 | +workspace-renameがリネームを行う | E-02 (line 163-168), E-06 (line 98-102) | ○ |
| C-26 | +workspace-renameが保護チェックを行う | E-02 (line 166-167) | ○ |
| C-27 | +workspace-killがワークスペースを削除する | E-02 (line 171-181), E-06 (line 103-105) | ○ |
| C-28 | +workspace-killがinhibit-kill-pをサポートする | E-02 (line 173-174, 180) | ○ |
| C-29 | +workspace-killが保護チェックを行う | E-02 (line 177-178) | ○ |
| C-30 | +workspace-switchがワークスペース切替を行う | E-02 (line 184-200), E-06 (line 54-59) | ○ |
| C-31 | +workspace-switchがauto-create-pをサポートする | E-02 (line 189-192) | ○ |
| C-32 | +workspace-switchが+workspace--lastを更新する | E-02 (line 195-198) | ○ |
| C-33 | +workspace/loadコマンドが読込と切替を行う | E-02 (line 210-224) | ○ |
| C-34 | +workspace/saveコマンドが保存とメッセージ表示を行う | E-02 (line 227-237) | ○ |
| C-35 | +workspace/renameコマンドがリネームとメッセージ表示を行う | E-02 (line 240-249), E-06 (line 121-124) | ○ |
| C-36 | +workspace/killコマンドが削除と切替を行う | E-02 (line 252-286) | ○ |
| C-37 | +workspace/killがフレーム競合チェックを行う | E-02 (line 268-269) | ○ |
| C-38 | +workspace/killが最終ワークスペース処理を行う | E-02 (line 280-284) | ○ |
| C-39 | +workspace/deleteが保存ファイルから削除する | E-02 (line 289-303) | ○ |
| C-40 | +workspace/kill-sessionが全削除を行う | E-02 (line 306-319) | ○ |
| C-41 | +workspace/kill-session-and-quitが即時終了する | E-02 (line 322-326) | ○ |
| C-42 | +workspace/newが新規作成とID生成を行う | E-02 (line 329-342) | ○ |
| C-43 | +workspace/newがclone-pをサポートする | E-02 (line 338) | ○ |
| C-44 | +workspace/new-namedが名前付き作成を行う | E-02 (line 345-348) | ○ |
| C-45 | +workspace/switch-toがインデックスと名前切替をサポートする | E-02 (line 351-376) | ○ |
| C-46 | +workspace/switch-to-finalが最終ワークスペースに切替する | E-02 (line 385-388) | ○ |
| C-47 | +workspace/otherが前回ワークスペースに切替する | E-02 (line 391-394) | ○ |
| C-48 | +workspace/cycleが循環切替を行う | E-02 (line 397-413) | ○ |
| C-49 | +workspace/cycleが単一ワークスペース時にエラーを投げる | E-02 (line 407-408) | ○ |
| C-50 | +workspace/switch-leftが左切替を行う | E-02 (line 416) | ○ |
| C-51 | +workspace/switch-rightが右切替を行う | E-02 (line 419) | ○ |
| C-52 | +workspace/close-window-or-workspaceがウィンドウ/ワークスペース削除を行う | E-02 (line 422-441), E-06 (line 107-119) | ○ |
| C-53 | +workspace/swap-leftが左移動を行う | E-02 (line 444-461) | ○ |
| C-54 | +workspace/swap-rightが右移動を行う | E-02 (line 464-467) | ○ |
| C-55 | +workspace--tablineがタブライン文字列を生成する | E-02 (line 473-485) | ○ |
| C-56 | +workspace--message-bodyがメッセージ付きタブラインを生成する | E-02 (line 487-495) | ○ |
| C-57 | +workspace-messageがエコーエリアに表示する | E-02 (line 498-500) | ○ |
| C-58 | +workspace-errorがエラー/メッセージを出力する | E-02 (line 503-506) | ○ |
| C-59 | +workspace/displayがタブラインを表示する | E-02 (line 509-513) | ○ |
| C-60 | +workspaces-delete-associated-workspace-hがフレーム削除フックとして動作する | E-02 (line 520-529), E-01 (line 176-177) | ○ |
| C-61 | +workspaces-associate-frame-fnがフレーム関連付けを行う | E-02 (line 532-544), E-01 (line 174-175) | ○ |
| C-62 | +workspaces-switch-to-project-hがプロジェクト切替を行う | E-02 (line 547-606), E-01 (line 181) | ○ |
| C-63 | +workspaces-save-tab-bar-data-hがタブバーデータを保存する | E-02 (line 609-614), E-01 (line 257) | ○ |
| C-64 | +workspaces-save-tab-bar-data-to-file-hがファイル保存を行う | E-02 (line 617-622), E-01 (line 260) | ○ |
| C-65 | +workspaces-load-tab-bar-data-hがタブバーデータを復元する | E-02 (line 625-629), E-01 (line 258) | ○ |
| C-66 | +workspaces-load-tab-bar-data-from-file-hがファイルから復元する | E-02 (line 632-636) | ○ |
| C-67 | +workspaces-autosave-real-buffers-aが実バッファチェックを行う | E-02 (line 642-646), E-01 (line 212) | ○ |
| C-68 | Evil連携コマンドが正しくラップされている | E-03 (line 5-39) | ○ |
| C-69 | +workspaces-ensure-no-nil-workspaces-hがnilワークスペース回避を行う | E-01 (line 61-69) | ○ |
| C-70 | +workspaces-init-first-workspace-hがmainワークスペース作成を行う | E-01 (line 71-86) | ○ |
| C-71 | +workspaces-init-persp-mode-hがuniquify設定を行う | E-01 (line 87-104) | ○ |
| C-72 | +workspaces-save-winner-data-hがwinner-modeデータ保存を行う | E-01 (line 109-116) | ○ |
| C-73 | +workspaces-load-winner-data-hがwinner-modeデータ復元を行う | E-01 (line 118-127) | ○ |
| C-74 | +workspaces-add-current-buffer-hがバッファ追加を行う | E-01 (line 130-138) | ○ |
| C-75 | +workspaces--evil-alternate-buffer-aがワークスペース内バッファのみを対象とする | E-01 (line 143-154) | ○ |
| C-76 | +workspaces-remove-dead-buffers-aが死バッファ除去を行う | E-01 (line 158-164) | ○ |
| C-77 | +workspaces-delete-all-posframes-hがposframe削除を行う | E-01 (line 219-221) | ○ |
| C-78 | +workspaces-dead-buffer-pが死バッファ判定を行う | E-01 (line 225-227) | ○ |
| C-79 | +workspaces-remote-buffer-pがリモートバッファ判定を行う | E-01 (line 228-231) | ○ |
| C-80 | +workspaces-set-up-tab-bar-integration-hがタブバー統合設定を行う | E-01 (line 255-261) | ○ |
| C-81-129 | 各テストケースが対応する関数/機能のテスト観点を網羅している | E-02, E-01, E-03, E-06 | ○ |

## 4) 不足情報（Unknown / Missing）
- 根拠不足の項目はありません。全てのテストケースがソースコードに基づいて生成されています。

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: 全テストケースがソースコード解析に基づいており、既存テストコード（E-06）との整合性も確認済み
- **注意点**:
  - persp-modeパッケージへの依存があるため、外部APIの変更に注意
  - Evilモジュールとの連携部分は`:editor evil`モジュールの有効化が前提
  - tab-bar統合機能はEmacs 27+が必要

## 6) レビュアーチェックリスト（最小）
- [ ] 優先度「高」のテストケースがビジネスクリティカルな機能をカバーしているか確認
- [ ] 境界値テストケースが適切な値を使用しているか確認
- [ ] 異常系テストケースが想定されるエラーパターンを網羅しているか確認
- [ ] 既存テストコード（E-06）との重複・矛盾がないか確認
- [ ] persp-mode APIとの整合性を確認
- [ ] Evil連携コマンドのテストケースが実際のEvil環境で動作するか確認
