---
generated_at: 2026-03-01 21:00:00
metrics:
  claims_total: 42
  claims_with_evidence: 39
  claims_without_evidence: 3
confidence_derived: 0.93
---

# 根拠レポート：コードリーディングガイドライン

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.93**
  - 根拠あり：39 / 42、根拠なし：3
- 優先レビュー（高）
  1. **C-38: 入力フローの詳細ステップ**：ControlInteractivity→ControlCoreの呼び出しチェーンは推定
  2. **C-40: 外部参考資料のURL有効性**：外部リンクの現在の有効性は未検証
  3. **C-41: Quake Windowの定義**：ユーザー向け機能説明でありコードからの直接根拠が限定的

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

- E-01: `src/cascadia/WindowsTerminal/main.cpp` — wWinMain エントリーポイント（行85-125）
- E-02: `src/cascadia/WindowsTerminal/WindowEmperor.h` — WindowEmperor クラス定義（全体）
- E-03: `src/cascadia/WindowsTerminal/AppHost.h` — AppHost クラス定義（全体）
- E-04: `src/cascadia/TerminalCore/Terminal.hpp` — Terminal クラス定義（行54-100）
- E-05: `src/inc/til.h` — TIL ルートヘッダー（行55-97）
- E-06: `src/cascadia/TerminalApp/AppLogic.h` — AppLogic 実装（行27-70）
- E-07: `src/cascadia/TerminalControl/ControlCore.h` — ControlCore 定義（行43-80）
- E-08: `src/cascadia/TerminalSettingsModel/CascadiaSettings.h` — 設定コンテナ（行1-80）
- E-09: `src/cascadia/inc/cppwinrt_utils.h` — safe_void_coroutine, TYPED_EVENT（行20-80）
- E-10: `src/cascadia/TerminalConnection/ConptyConnection.h` — ConptyConnection（行13-50）
- E-11: `src/cascadia/TerminalApp/TerminalPage.h` — TerminalPage（行1-70）
- E-12: `src/cascadia/TerminalApp/Pane.h` — Pane クラス定義（行1-70）
- E-13: `vcpkg.json` — 依存関係マニフェスト
- E-14: `README.md` — プロジェクト概要（行1-80）
- E-15: `src/common.build.pre.props` — ビルド設定（C++20, vcpkg等）
- E-16: `src/features.xml` — 機能フラグ定義
- E-17: `src/cppwinrt.build.pre.props` — C++/WinRT ビルド設定
- E-18: `Directory.Build.props` — MSBuildキャッシュ設定
- E-19: `.clang-format` — コードフォーマット設定
- E-20: `src/cascadia/TerminalSettingsModel/IInheritable.h` — 設定継承（探索結果より）
- E-21: `src/inc/til/` ディレクトリ — TIL各ヘッダー群（探索結果より）
- E-22: `src/cascadia/WindowsTerminal/WindowEmperor.h:88-96` — `_assertIsMainThread` 定義
- E-23: `src/cascadia/TerminalControl/ControlCore.h:43-55` — RUNTIME_SETTING マクロ

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | C++20で記述されたWindowsデスクトップアプリケーション | E-15 (stdcpp20設定) | ○ |
| C-02 | エントリーポイントは wWinMain | E-01 (main.cpp:85) | ○ |
| C-03 | WindowEmperorがアプリケーション全体のライフサイクルを管理 | E-01, E-02 | ○ |
| C-04 | STA初期化が必要 | E-01 (main.cpp:121) | ○ |
| C-05 | til::property, til::color 等の型定義 | E-05, E-21 | ○ |
| C-06 | WILエラーハンドリングマクロ（THROW_IF_WIN32_BOOL_FALSE等） | E-01 (main.cpp:66) | ○ |
| C-07 | pch.h はcascadia系、precomp.h はconhost系のプリコンパイル済みヘッダー | E-01, E-15 (探索結果) | ○ |
| C-08 | safe_void_coroutine は fire_and_forget の安全版 | E-09 (cppwinrt_utils.h:20-66) | ○ |
| C-09 | C++/WinRTはCRTPパターンで実装 | E-06 (AppLogic.h:27) | ○ |
| C-10 | TYPED_EVENT マクロの定義 | E-09 (cppwinrt_utils.h:74) | ○ |
| C-11 | WINRT_PROPERTY マクロの使用 | E-08 (CascadiaSettings.h:59-60) | ○ |
| C-12 | TIL = Terminal Implementation Library | E-05 (til.h:55) | ○ |
| C-13 | IInheritable による設定継承 | E-20 | ○ |
| C-14 | Feature Flags は features.xml で定義 | E-16 | ○ |
| C-15 | PascalCase のパブリックメソッド命名 | E-02, E-03, E-06 | ○ |
| C-16 | _プレフィックスのプライベートメンバー/メソッド | E-02 (WindowEmperor.h), E-03 (AppHost.h) | ○ |
| C-17 | g_ プレフィックスのグローバル変数 | E-01 (main.cpp:18-23) | ○ |
| C-18 | .g.h ファイルはC++/WinRT自動生成 | E-06 (AppLogic.g.h include) | ○ |
| C-19 | ディレクトリ構造の説明 | E-14 (README.md), 探索結果 | ○ |
| C-20 | src/cascadia/WindowsTerminal/ がEXEエントリ | E-01, E-02, E-03 | ○ |
| C-21 | src/cascadia/TerminalApp/ がXAML UIロジック | E-06, E-11, E-12 | ○ |
| C-22 | src/cascadia/TerminalCore/ がVTエミュレータ本体 | E-04 (Terminal.hpp:54-57) | ○ |
| C-23 | src/cascadia/TerminalConnection/ が接続層 | E-10 | ○ |
| C-24 | レイヤードアーキテクチャの採用 | E-01, E-02, E-03, E-04, E-06, E-07 | ○ |
| C-25 | 入力フロー: キー入力 → TermControl → Terminal → ConPTY | E-03, E-04, E-07, E-10 | ○ |
| C-26 | 出力フロー: ConPTY → Terminal → Renderer | E-04, E-07, E-10 | ○ |
| C-27 | Terminal が ITerminalApi, ITerminalInput, IRenderData を実装 | E-04 (Terminal.hpp:54-57) | ○ |
| C-28 | ConptyConnection が Start, WriteInput, Resize, Close を提供 | E-10 (ConptyConnection.h:23-27) | ○ |
| C-29 | Pane は二分木構造 | E-12 (Pane.h:62-70, SplitState enum) | ○ |
| C-30 | Revokerパターンによるイベント自動解除 | E-03 (AppHost.h:138-163) | ○ |
| C-31 | RUNTIME_SETTING マクロの仕組み | E-23 (ControlCore.h:43-55) | ○ |
| C-32 | WindowEmperorが複数ウィンドウを管理 | E-02 (WindowEmperor.h:74) | ○ |
| C-33 | vcpkg依存関係: fmt, ms-gsl, jsoncpp, cli11, cmark | E-13 (vcpkg.json) | ○ |
| C-34 | ビルド構成: Debug, Release, AuditMode, Fuzzing | E-15 (common.build.pre.props) | ○ |
| C-35 | _assertIsMainThread によるスレッド検証 | E-22 (WindowEmperor.h:88-96) | ○ |
| C-36 | TraceLogging によるETWテレメトリ | E-01 (main.cpp:18-23, 87-95) | ○ |
| C-37 | アプリケーション起動フローの説明 | E-01, E-02, E-03, E-06 | ○ |
| C-38 | 入力フローの詳細ステップ（ControlInteractivity経由） | E-07 | △ |
| C-39 | defaults.json → userDefaults.json → ユーザー設定の順で解決 | E-08, E-20 | ○ |
| C-40 | 外部参考資料URLの有効性 | **根拠なし** | △ |
| C-41 | Quake Windowの説明（キー一押しでスライドダウン） | E-03 (AppHost.h:88-89に参照あり) | △ |
| C-42 | conhost.exe がConPTY経由でWT内部でも使用される | E-14 (README.md), E-10 | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-38: 入力フローの詳細**: ControlInteractivity → ControlCore の具体的な呼び出しチェーンは `ControlInteractivity.cpp` の読み取りに基づく推定。実装の変更により乖離の可能性あり
  - 候補: `src/cascadia/TerminalControl/ControlInteractivity.cpp` / `ControlCore.cpp` の直接確認
- **C-40: 外部URL**: 参考資料セクションのURLは既知の公式ドキュメントサイトだが、現時点でのリンク有効性は未確認
  - 候補: 各URLへのアクセス確認 / ドキュメント移行の有無確認
- **C-41: Quake Window定義**: コード内に `IsQuakeWindowChanged` イベントは存在するが、ユーザー向け挙動の詳細説明はコード根拠が限定的
  - 候補: `doc/specs/` 内のQuake Window仕様書 / `IsQuakeWindowChanged` の実装詳細

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: プロジェクト構造、ディレクトリ説明、命名規則 — ソースコードから直接確認可能
- **0 (低リスク)**: アーキテクチャ概要 — 複数のヘッダーファイルから裏付けあり
- **1 (中リスク)**: データフローの詳細手順 — 実装の変更により乖離する可能性あり。定期的な検証を推奨
- **0 (低リスク)**: 外部リンク — 公式ドキュメントのため大きなリスクなし。リンク切れの可能性は低い

## 6) レビュアーチェックリスト（最小）
- [ ] セクション1-2の言語基礎・フレームワーク説明が、実際のコードパターンと一致しているか
- [ ] セクション4のディレクトリ構造が、現在のリポジトリ構成と一致しているか
- [ ] セクション5のアーキテクチャ図（Mermaid）が、実際のコンポーネント依存関係を正確に反映しているか
- [ ] セクション8の業務フロー追跡が、実際のコード呼び出しチェーンと一致しているか
- [ ] △マーク（C-38, C-40, C-41）の3項目を重点確認
