---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 181
  claims_with_evidence: 172
  claims_without_evidence: 9
confidence_derived: 0.95
---

# 根拠レポート：cascadia-TerminalApp 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：172 / 181、根拠なし：9
- 優先レビュー（高）
  1. **C-105, C-106 (AppLogic::Current)**: XAML環境依存のシングルトン取得のためテスト条件の前提が不明確
  2. **C-107, C-108 (AppLogic::IsRunningElevated)**: 権限チェックの実装詳細が外部ライブラリ(wil)依存
  3. **C-135, C-136 (Toast::Open)**: UIタイマーの動作確認にはXAML DispatcherTimerが必要で単体テストが困難

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `src/cascadia/TerminalApp/Commandline.h` - Commandlineクラス定義
- E-02: `src/cascadia/TerminalApp/Commandline.cpp` - Commandlineクラス実装（AddArg, Argc, Args）
- E-03: `src/cascadia/TerminalApp/AppCommandlineArgs.h` - AppCommandlineArgsクラス定義
- E-04: `src/cascadia/TerminalApp/AppCommandlineArgs.cpp` - AppCommandlineArgs実装（ParseCommand, ParseArgs, BuildCommands等）
- E-05: `src/cascadia/TerminalApp/FilteredCommand.h` - FilteredCommandクラス定義
- E-06: `src/cascadia/TerminalApp/FilteredCommand.cpp` - FilteredCommand実装（UpdateFilter, Compare, HasSubtitle）
- E-07: `src/cascadia/TerminalApp/TaskbarState.h` - TaskbarStateクラス定義
- E-08: `src/cascadia/TerminalApp/TaskbarState.cpp` - TaskbarState実装（Priority, ComparePriority）
- E-09: `src/cascadia/TerminalApp/ShortcutActionDispatch.h` - ShortcutActionDispatchクラス定義
- E-10: `src/cascadia/TerminalApp/ShortcutActionDispatch.cpp` - ShortcutActionDispatch実装（DoAction）
- E-11: `src/cascadia/TerminalApp/AppKeyBindings.cpp` - AppKeyBindings実装（TryKeyChord, IsKeyChordExplicitlyUnbound等）
- E-12: `src/cascadia/TerminalApp/ContentManager.h` - ContentManagerクラス定義
- E-13: `src/cascadia/TerminalApp/ContentManager.cpp` - ContentManager実装（CreateCore, TryLookupCore, Detach）
- E-14: `src/cascadia/TerminalApp/Pane.h` - Paneクラス定義（publicメソッド一覧、DirectionMatchesSplit等）
- E-15: `src/cascadia/TerminalApp/Pane.cpp` - Pane実装（コンストラクタ、BuildStartupActions等）
- E-16: `src/cascadia/TerminalApp/Pane.LayoutSizeNode.cpp` - LayoutSizeNode実装
- E-17: `src/cascadia/TerminalApp/AppLogic.h` - AppLogicクラス定義
- E-18: `src/cascadia/TerminalApp/AppLogic.cpp` - AppLogic実装（Current, _GetErrorText等）
- E-19: `src/cascadia/TerminalApp/TerminalWindow.h` - TerminalWindow/WindowPropertiesクラス定義
- E-20: `src/cascadia/TerminalApp/TerminalPage.h` - TerminalPageクラス定義
- E-21: `src/cascadia/TerminalApp/Remoting.h` - CommandlineArgs, RequestReceiveContentArgs, SummonWindowBehavior定義
- E-22: `src/cascadia/TerminalApp/HighlightedTextControl.h` - HighlightedTextControlクラス定義
- E-23: `src/cascadia/TerminalApp/HighlightedTextControl.cpp` - HighlightedTextControl実装
- E-24: `src/cascadia/TerminalApp/Toast.cpp` - Toast実装
- E-25: `src/cascadia/TerminalApp/DebugTapConnection.h` - DebugTapConnectionクラス定義
- E-26: `src/cascadia/TerminalApp/TerminalSettingsCache.h` - TerminalSettingsCache/TerminalSettingsPairクラス定義
- E-27: `src/cascadia/TerminalApp/TerminalPaneContent.h` - TerminalPaneContentクラス定義
- E-28: `src/cascadia/TerminalApp/SettingsPaneContent.h` - SettingsPaneContentクラス定義
- E-29: `src/cascadia/TerminalApp/ScratchpadContent.h` - ScratchpadContentクラス定義
- E-30: `src/cascadia/TerminalApp/SnippetsPaneContent.h` - SnippetsPaneContent/FilteredTaskクラス定義
- E-31: `src/cascadia/TerminalApp/MarkdownPaneContent.h` - MarkdownPaneContentクラス定義
- E-32: `src/cascadia/TerminalApp/TerminalTabStatus.h` - TerminalTabStatusクラス定義
- E-33: `src/cascadia/TerminalApp/Tab.cpp` - Tab実装
- E-34: `src/cascadia/TerminalApp/Jumplist.h` - Jumplistクラス定義
- E-35: `src/cascadia/TerminalApp/Jumplist.cpp` - Jumplist実装（UpdateJumplist, _createShellLink）
- E-36: `src/cascadia/TerminalApp/Tab.idl` - Tab IDL定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | Commandline::AddArg 通常の引数追加 | E-02 | ○ |
| C-002 | Commandline::AddArg エスケープデリミタ変換 | E-02 | ○ |
| C-003 | Commandline::AddArg 空文字列処理 | E-02 | ○ |
| C-004 | Commandline::AddArg 複数エスケープ処理 | E-02 | ○ |
| C-005 | Commandline::Argc カウント | E-02 | ○ |
| C-006 | Commandline::Argc 空の場合 | E-02 | ○ |
| C-007 | Commandline::Args 取得 | E-02 | ○ |
| C-008 | AppCommandlineArgs::ParseCommand new-tabパース | E-04 | ○ |
| C-009 | AppCommandlineArgs::ParseCommand split-paneパース | E-04 | ○ |
| C-010 | AppCommandlineArgs::ParseCommand focus-tabパース | E-04 | ○ |
| C-011 | AppCommandlineArgs::ParseCommand 不正コマンド | E-04 | ○ |
| C-012 | AppCommandlineArgs::ParseCommand デフォルトnew-tab | E-04 | ○ |
| C-013 | AppCommandlineArgs::ParseArgs 複数コマンド | E-04 | ○ |
| C-014 | AppCommandlineArgs::ParseArgs ヘルプフラグ | E-03, E-04 | ○ |
| C-015 | AppCommandlineArgs::BuildCommands セミコロン分割 | E-04 | ○ |
| C-016 | AppCommandlineArgs::BuildCommands エスケープセミコロン | E-04 | ○ |
| C-017 | AppCommandlineArgs::BuildCommands 空引数 | E-04 | ○ |
| C-018 | AppCommandlineArgs::ValidateStartupCommands 正常系 | E-03, E-04 | ○ |
| C-019 | AppCommandlineArgs::GetExitMessage | E-03 | ○ |
| C-020 | AppCommandlineArgs::ShouldExitEarly ヘルプ時true | E-03 | ○ |
| C-021 | AppCommandlineArgs::ShouldExitEarly 通常時false | E-03 | ○ |
| C-022 | AppCommandlineArgs::GetPersistedLayoutIdx 取得 | E-03 | ○ |
| C-023 | AppCommandlineArgs::GetPersistedLayoutIdx nullopt | E-03 | ○ |
| C-024 | AppCommandlineArgs::FullResetState | E-03 | ○ |
| C-025 | AppCommandlineArgs::GetTargetWindow | E-03 | ○ |
| C-026 | AppCommandlineArgs::GetLaunchMode | E-03 | ○ |
| C-027 | FilteredCommand コンストラクタ | E-05, E-06 | ○ |
| C-028 | FilteredCommand::UpdateFilter マッチ時 | E-06 | ○ |
| C-029 | FilteredCommand::UpdateFilter 不一致時 | E-06 | ○ |
| C-030 | FilteredCommand::UpdateFilter 同一パターン | E-06 | ○ |
| C-031 | FilteredCommand::UpdateFilter 空パターン | E-06 | ○ |
| C-032 | FilteredCommand::Compare Weight順 | E-06 | ○ |
| C-033 | FilteredCommand::Compare 名前順 | E-06 | ○ |
| C-034 | FilteredCommand::HasSubtitle true | E-06 | ○ |
| C-035 | FilteredCommand::HasSubtitle false | E-06 | ○ |
| C-036 | TaskbarState デフォルトコンストラクタ | E-08 | ○ |
| C-037 | TaskbarState パラメータ付きコンストラクタ | E-08 | ○ |
| C-038 | TaskbarState::Priority Clear | E-08 | ○ |
| C-039 | TaskbarState::Priority Set | E-08 | ○ |
| C-040 | TaskbarState::Priority Error | E-08 | ○ |
| C-041 | TaskbarState::Priority Indeterminate | E-08 | ○ |
| C-042 | TaskbarState::Priority Paused | E-08 | ○ |
| C-043 | TaskbarState::Priority 不正値 | E-08 | ○ |
| C-044 | TaskbarState::ComparePriority | E-08 | ○ |
| C-045 | TaskbarState::ComparePriority 同一 | E-08 | ○ |
| C-046 | ShortcutActionDispatch::DoAction 正常系 | E-10 | ○ |
| C-047 | ShortcutActionDispatch::DoAction nullptr | E-10 | ○ |
| C-048 | ShortcutActionDispatch::DoAction 不正アクション | E-10 | ○ |
| C-049 | ShortcutActionDispatch::DoAction オーバーロード | E-10 | ○ |
| C-050 | AppKeyBindings::TryKeyChord 登録済み | E-11 | ○ |
| C-051 | AppKeyBindings::TryKeyChord 未登録 | E-11 | ○ |
| C-052 | AppKeyBindings::IsKeyChordExplicitlyUnbound true | E-11 | ○ |
| C-053 | AppKeyBindings::IsKeyChordExplicitlyUnbound false | E-11 | ○ |
| C-054 | AppKeyBindings::SetDispatch | E-11 | ○ |
| C-055 | AppKeyBindings::SetActionMap | E-11 | ○ |
| C-056 | ContentManager::CreateCore | E-13 | ○ |
| C-057 | ContentManager::TryLookupCore 存在 | E-13 | ○ |
| C-058 | ContentManager::TryLookupCore 不存在 | E-13 | ○ |
| C-059 | ContentManager::Detach 正常 | E-13 | ○ |
| C-060 | ContentManager::Detach 不正ID | E-13 | ○ |
| C-061 | ContentManager::_closedHandler | E-13 | ○ |
| C-062 | Pane リーフコンストラクタ | E-14, E-15 | ○ |
| C-063 | Pane 分割コンストラクタ | E-14, E-15 | ○ |
| C-064 | Pane::GetActivePane 正常 | E-14 | ○ |
| C-065 | Pane::GetActivePane null | E-14 | ○ |
| C-066 | Pane::GetProfile リーフ | E-14 | ○ |
| C-067 | Pane::GetProfile ブランチ | E-14 | ○ |
| C-068 | Pane::GetContent リーフ | E-14 | ○ |
| C-069 | Pane::GetContent ブランチ | E-14 | ○ |
| C-070 | Pane::WasLastFocused true | E-14 | ○ |
| C-071 | Pane::WasLastFocused false | E-14 | ○ |
| C-072 | Pane::Id 設定済み | E-14 | ○ |
| C-073 | Pane::Id 未設定 | E-14 | ○ |
| C-074 | Pane::FindPane 存在 | E-14 | ○ |
| C-075 | Pane::FindPane 不存在 | E-14 | ○ |
| C-076 | Pane::GetLeafPaneCount 複数 | E-14 | ○ |
| C-077 | Pane::GetLeafPaneCount 単一 | E-14 | ○ |
| C-078 | Pane::ResizePane 成功 | E-14 | ○ |
| C-079 | Pane::ResizePane リーフ失敗 | E-14 | ○ |
| C-080 | Pane::Split | E-14 | ○ |
| C-081 | Pane::ToggleSplitOrientation 成功 | E-14 | ○ |
| C-082 | Pane::ToggleSplitOrientation リーフ失敗 | E-14 | ○ |
| C-083 | Pane::SwapPanes 成功 | E-14 | ○ |
| C-084 | Pane::SwapPanes 同一ペイン | E-14 | ○ |
| C-085 | Pane::NavigateDirection 成功 | E-14 | ○ |
| C-086 | Pane::NavigateDirection 端 | E-14 | ○ |
| C-087 | Pane::NextPane | E-14 | ○ |
| C-088 | Pane::PreviousPane | E-14 | ○ |
| C-089 | Pane::FocusPane(uint32_t) 成功 | E-14 | ○ |
| C-090 | Pane::FocusPane(uint32_t) 失敗 | E-14 | ○ |
| C-091 | Pane::ContainsReadOnly true | E-14 | ○ |
| C-092 | Pane::ContainsReadOnly false | E-14 | ○ |
| C-093 | Pane::AttachPane | E-14 | ○ |
| C-094 | Pane::DetachPane | E-14 | ○ |
| C-095 | Pane::BuildStartupActions リーフ | E-15 | ○ |
| C-096 | Pane::BuildStartupActions 分割 | E-15 | ○ |
| C-097 | Pane::CalcSnappedDimension | E-14 | ○ |
| C-098 | Pane::DirectionMatchesSplit Horizontal/Up | E-14 | ○ |
| C-099 | Pane::DirectionMatchesSplit Vertical/Left | E-14 | ○ |
| C-100 | Pane::DirectionMatchesSplit 不一致 | E-14 | ○ |
| C-101 | Pane::DirectionMatchesSplit None | E-14 | ○ |
| C-102 | LayoutSizeNode コンストラクタ | E-16 | ○ |
| C-103 | LayoutSizeNode コピーコンストラクタ | E-16 | ○ |
| C-104 | LayoutSizeNode operator= | E-16 | ○ |
| C-105 | AppLogic::Current 正常 | E-18 | △ |
| C-106 | AppLogic::Current 未起動 | E-18 | △ |
| C-107 | AppLogic::IsRunningElevated 管理者 | E-17 | △ |
| C-108 | AppLogic::IsRunningElevated 通常 | E-17 | △ |
| C-109 | AppLogic::CanDragDrop | E-17 | ○ |
| C-110 | AppLogic::HasSettingsStartupActions | E-17 | ○ |
| C-111 | WindowProperties::WindowName | E-19 | ○ |
| C-112 | WindowProperties::WindowId | E-19 | ○ |
| C-113 | WindowProperties::WindowIdForDisplay | E-19 | ○ |
| C-114 | WindowProperties::WindowNameForDisplay | E-19 | ○ |
| C-115 | WindowProperties::IsQuakeWindow true | E-19 | ○ |
| C-116 | WindowProperties::IsQuakeWindow false | E-19 | ○ |
| C-117 | TerminalWindow::HasCommandlineArguments | E-19 | ○ |
| C-118 | TerminalWindow::FocusMode | E-19 | ○ |
| C-119 | TerminalWindow::Fullscreen | E-19 | ○ |
| C-120 | TerminalWindow::AlwaysOnTop | E-19 | ○ |
| C-121 | TerminalPage::ConvertExecuteCommandlineToActions | E-20 | ○ |
| C-122 | TerminalPage::_ComputeScrollDelta Down | E-20 | ○ |
| C-123 | TerminalPage::_ComputeScrollDelta Up | E-20 | ○ |
| C-124 | TerminalPage::NumberOfTabs 複数 | E-20 | ○ |
| C-125 | TerminalPage::NumberOfTabs 空 | E-20 | ○ |
| C-126 | CommandlineArgs::ExitCode | E-21 | ○ |
| C-127 | CommandlineArgs::ExitMessage | E-21 | ○ |
| C-128 | CommandlineArgs::TargetWindow | E-21 | ○ |
| C-129 | RequestReceiveContentArgs コンストラクタ | E-21 | ○ |
| C-130 | SummonWindowBehavior デフォルト | E-21 | ○ |
| C-131 | SummonWindowBehavior コピー | E-21 | ○ |
| C-132 | HighlightedTextControl ハイライト表示 | E-23 | ○ |
| C-133 | HighlightedTextControl 空テキスト | E-23 | ○ |
| C-134 | HighlightedTextControl ハイライトなし | E-23 | ○ |
| C-135 | Toast::Open 表示 | E-24 | △ |
| C-136 | Toast::Open 自動非表示 | E-24 | △ |
| C-137 | DebugTapConnection コンストラクタ | E-25 | ○ |
| C-138 | DebugTapConnection::WriteInput | E-25 | △ |
| C-139 | DebugTapConnection::State | E-25 | ○ |
| C-140 | TerminalSettingsCache::TryLookup 存在 | E-26 | ○ |
| C-141 | TerminalSettingsCache::TryLookup 不存在 | E-26 | ○ |
| C-142 | TerminalSettingsCache::Reset | E-26 | ○ |
| C-143 | TerminalSettingsPair::DefaultSettings | E-26 | ○ |
| C-144 | TerminalSettingsPair::UnfocusedSettings | E-26 | ○ |
| C-145 | TerminalPaneContent::Title | E-27 | ○ |
| C-146 | TerminalPaneContent::TaskbarState | E-27 | ○ |
| C-147 | TerminalPaneContent::ReadOnly | E-27 | ○ |
| C-148 | SettingsPaneContent::Title | E-28 | ○ |
| C-149 | SettingsPaneContent::ReadOnly | E-28 | ○ |
| C-150 | ScratchpadContent::Title | E-29 | ○ |
| C-151 | SnippetsPaneContent::HasSnippets true | E-30 | ○ |
| C-152 | SnippetsPaneContent::HasSnippets false | E-30 | ○ |
| C-153 | FilteredTask コンストラクタ | E-30 | ○ |
| C-154 | FilteredTask::Input SendInput | E-30 | ○ |
| C-155 | FilteredTask::Input 非SendInput | E-30 | ○ |
| C-156 | FilteredTask::HasChildren true | E-30 | ○ |
| C-157 | FilteredTask::HasChildren false | E-30 | ○ |
| C-158 | FilteredTask::Row 子あり | E-30 | ○ |
| C-159 | FilteredTask::Row 子なし | E-30 | ○ |
| C-160 | FilteredTask::Visibility フィルタなし | E-30 | ○ |
| C-161 | FilteredTask::Visibility マッチ | E-30 | ○ |
| C-162 | FilteredTask::Visibility 不一致 | E-30 | ○ |
| C-163 | MarkdownPaneContent デフォルトコンストラクタ | E-31 | ○ |
| C-164 | MarkdownPaneContent ファイルパスコンストラクタ | E-31 | ○ |
| C-165 | MarkdownPaneContent::Title | E-31 | ○ |
| C-166 | MarkdownPaneContent::MinimumSize | E-31 | ○ |
| C-167 | TerminalTabStatus::IsConnectionClosed | E-32 | ○ |
| C-168 | TerminalTabStatus::IsPaneZoomed | E-32 | ○ |
| C-169 | TerminalTabStatus::IsProgressRingActive | E-32 | ○ |
| C-170 | TerminalTabStatus::BellIndicator | E-32 | ○ |
| C-171 | TerminalTabStatus::IsReadOnlyActive | E-32 | ○ |
| C-172 | TerminalTabStatus::ProgressValue | E-32 | ○ |
| C-173 | TerminalTabStatus::IsInputBroadcastActive | E-32 | ○ |
| C-174 | Pane::Maximize | E-14 | ○ |
| C-175 | Pane::Restore | E-14 | ○ |
| C-176 | Pane::EnableBroadcast | E-14 | ○ |
| C-177 | Pane::CollectTaskbarStates | E-14 | ○ |
| C-178 | Jumplist::UpdateJumplist 正常 | E-35 | ○ |
| C-179 | Jumplist::UpdateJumplist null設定 | E-35 | ○ |
| C-180 | Jumplist::_createShellLink 正常 | E-35 | ○ |
| C-181 | Jumplist::_createShellLink 間接アイコン | E-35 | ○ |

## 4) 不足情報（Unknown / Missing）
- **AppLogic::Current (C-105, C-106)**: XAMLアプリケーション環境が必要で、単体テストでのモック化が困難。実装はtry_asによる動的キャストで安全だが、テスト前提条件の設定方法が不明確。
  - 候補：インテグレーションテスト / XAMLホスト付きテスト / モックフレームワーク
- **AppLogic::IsRunningElevated (C-107, C-108)**: wil::token_helpersに依存した権限チェック。_isElevatedフィールドの初期化ロジックの詳細実装が未確認。
  - 候補：AppLogic.cppの完全読み込み / コンストラクタの詳細分析
- **Toast::Open (C-135, C-136)**: DispatcherTimerのTickイベントに依存しており、UIスレッド外での単体テストが困難。
  - 候補：UIスレッド付きテスト / タイマーのモック化
- **DebugTapConnection::WriteInput (C-138)**: _PrintInputの実装詳細が未読み込みのため、出力形式の正確な期待結果が不明。
  - 候補：DebugTapConnection.cppの読み込み

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - Commandline, FilteredCommand, TaskbarState, LayoutSizeNodeなどの純粋ロジッククラスは根拠が明確
- 1: 中リスク - Pane操作系（Split, Navigate, Swap等）のテストは実際にはXAML UIコンポーネント依存があり、モック化が必要
- 1: 中リスク - AppKeyBindings, ShortcutActionDispatchのテストはActionMapやWinRTイベント系に依存
- 2: 高リスク - AppLogic::Current, Toast::Open等はXAMLアプリケーションコンテキストが必須で、単体テスト環境構築に注意が必要

## 6) レビュアーチェックリスト（最小）
- [ ] Commandline/AppCommandlineArgsのテストケースが既存のCommandlineTest単体テストと整合しているか
- [ ] Pane操作系テストの前提条件が現実的か（UIコンポーネントのモック化が可能か）
- [ ] TaskbarState::Priorityの優先度マッピングがMicrosoft公式ドキュメントと一致しているか
- [ ] FilteredCommand::Compareの比較ロジックが実際のfzfライブラリの動作と整合しているか
- [ ] AppLogic, TerminalWindowなどXAML依存クラスのテストが実行可能な環境条件が定義されているか
- [ ] TerminalTabStatusのプロパティ変更通知（PropertyChanged）の発火テストが必要か検討
- [ ] SnippetsPaneContent::FilteredTaskのVisibility判定ロジックが子要素のWeight集計を正しく反映しているか
