---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 42
  claims_with_evidence: 38
  claims_without_evidence: 4
confidence_derived: 0.90
---

# 根拠レポート：非機能要件定義書

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.90**
  - 根拠あり：38 / 42、根拠なし：4
- 優先レビュー（高）
  1. **C-36 テキストバッファのUTF-8格納能力**：コード上のコメントに基づくが、実装詳細の確認が必要
  2. **C-39 Azure DevOps CI/CD パイプライン使用**：READMEのバッジからの推測であり、パイプライン定義ファイルは未確認
  3. **C-40 DEFAULT_HISTORY_SIZE の具体的な値**：マクロ参照のみで具体的数値が未確認
  4. **C-41 静的解析ルールセットの内容**：ファイル存在は確認したが詳細内容は未確認

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

- E-01: `src/renderer/base/renderer.cpp` - レンダリングリトライ・バックオフロジック
- E-02: `src/renderer/atlas/AtlasEngine.r.cpp` - Atlas Engine の Present 処理、デバイスロスト復旧
- E-03: `src/cascadia/TerminalConnection/ConptyConnection.cpp` - ConPTY 接続管理、テレメトリ
- E-04: `src/cascadia/TerminalConnection/AzureConnection.cpp` - Azure Cloud Shell 接続、認証情報管理
- E-05: `src/host/tracing.hpp` - Tracing クラス定義
- E-06: `src/host/tracing.cpp` - ETW トレーシング実装、TraceKeywords 定義
- E-07: `src/cascadia/TerminalCore/tracing.hpp` - Terminal Core トレーシングプロバイダ
- E-08: `src/host/settings.hpp` - コンソールホスト設定（MSAA遅延、UIA遅延等）
- E-09: `src/cascadia/TerminalSettingsModel/MTSMSettings.h` - Terminal Settings Model 設定定義
- E-10: `src/features.xml` - フィーチャーフラグ定義
- E-11: `src/host/exe/conhost.exe.manifest` - conhost マニフェスト（実行権限レベル）
- E-12: `src/cascadia/ElevateShim/elevate-shim.cpp` - 権限昇格シム
- E-13: `src/renderer/base/renderer.hpp` - Renderer クラス定義
- E-14: `src/host/globals.h` - グローバル変数定義
- E-15: `src/buffer/out/Row.hpp` - ROW クラス（メモリ最適化コメント）
- E-16: `src/buffer/out/textBuffer.hpp` - TextBuffer クラス定義
- E-17: `src/cascadia/TerminalApp/TerminalSettingsCache.h` - 設定キャッシュ
- E-18: `src/cascadia/TerminalSettingsModel/GlobalAppSettings.h` - グローバル設定クラス
- E-19: `src/cascadia/TerminalControl/ControlInteractivity.cpp` - コントロールインタラクティビティ
- E-20: `src/cascadia/TerminalControl/ControlCore.cpp` - コントロールコア（レンダリングAPI選択）
- E-21: `src/cascadia/WindowsTerminal/IslandWindow.cpp` - ウィンドウメッセージタイムアウト
- E-22: `README.md` - プロジェクト概要、動作要件、配布チャネル
- E-23: `src/cascadia/TerminalApp/ShortcutActionDispatch.cpp` - アクション実行テレメトリ
- E-24: `src/cascadia/TerminalApp/CommandPalette.cpp` - コマンドパレットテレメトリ
- E-25: `src/cascadia/TerminalControl/Resources/` - 多言語リソースディレクトリ
- E-26: `src/cascadia/TerminalConnection/AzureConnection.h` - Azure 接続ヘッダ（トークン管理）
- E-27: `doc/STYLE.md` - コーディング規約（ファイル存在確認）
- E-28: `doc/ORGANIZATION.md` - コード構成（ファイル存在確認）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | レンダリングフレーム描画に最大5回リトライ、指数バックオフ(100～1600ms) | E-01 | ○ |
| C-02 | SwapChain フレーム待機タイムアウト100ms | E-02 | ○ |
| C-03 | ConPTY出力スレッド終了待機1000ms | E-03 | ○ |
| C-04 | ウィンドウメッセージ送信タイムアウト1000ms | E-21 | ○ |
| C-05 | MSAA遅延デフォルト100ms | E-08 | ○ |
| C-06 | UIA遅延デフォルト25ms | E-08 | ○ |
| C-07 | 初期ターミナルサイズ 80x30 | E-09 | ○ |
| C-08 | ROWバッファ16バイトアライメントで約40%スクロール性能向上 | E-15 | ○ |
| C-09 | 最大5.8%のメモリ増加を許容 | E-15 | ○ |
| C-10 | 複数レンダリングバックエンド(Atlas/D2D/GDI/WDDM) | E-02, E-20 | ○ |
| C-11 | レンダリングエラー時は5回リトライ後にレンダリング無効化 | E-01 | ○ |
| C-12 | DXGIデバイスロスト時のアダプタ自動再作成 | E-02 | ○ |
| C-13 | Feature_AtlasEnginePresentFallback がRelease/WindowsInboxで有効 | E-10 | ○ |
| C-14 | ConPTY接続の3つの終了シナリオ管理 | E-03 | ○ |
| C-15 | Azure Cloud Shell WebSocket接続の安全な終了 | E-04 | ○ |
| C-16 | Feature_ReceiveIncomingHandoff = AlwaysEnabled | E-10 | ○ |
| C-17 | conhost.exeの実行レベルがasInvoker | E-11 | ○ |
| C-18 | ElevateShimによるrunas動詞を使った権限昇格 | E-12 | ○ |
| C-19 | Elevateプロファイル設定（デフォルト: false） | E-09 | ○ |
| C-20 | ShowAdminShield設定（デフォルト: true） | E-09 | ○ |
| C-21 | Azure Cloud ShellのPasswordVault使用 | E-04, E-26 | ○ |
| C-22 | 資格情報バージョン管理 CurrentCredentialVersion = 2 | E-04 | ○ |
| C-23 | FilterOnPaste設定の存在 | E-08 | ○ |
| C-24 | WarnAboutLargePaste設定（デフォルト: true） | E-09 | ○ |
| C-25 | AllowVtClipboardWrite設定（デフォルト: true） | E-09 | ○ |
| C-26 | AllowVtChecksumReport設定（デフォルト: false） | E-09 | ○ |
| C-27 | IRenderEngineインターフェースによるレンダリングエンジン差し替え | E-13 | ○ |
| C-28 | IDynamicProfileGenerator による動的プロファイル生成 | E-09 | ○ |
| C-29 | features.xmlによるフィーチャーフラグ管理 | E-10 | ○ |
| C-30 | JSONベースの設定（defaults.json + ユーザー設定のレイヤリング） | E-18 | ○ |
| C-31 | IInheritableインターフェースによる設定継承 | E-18 | ○ |
| C-32 | WpfTerminalControlの存在 | E-19 | ○ |
| C-33 | ETWベースのトレーシング実装 | E-06, E-07 | ○ |
| C-34 | TraceKeywords列挙体によるカテゴリ別トレーシング | E-06 | ○ |
| C-35 | 16言語のリソースファイル提供 | E-25 | ○ |
| C-36 | テキストバッファがUTF-16とUTF-8の両方を格納可能 | **根拠不足** | △ |
| C-37 | DebugFeaturesEnabledのデフォルト値（ビルド依存） | E-18 | ○ |
| C-38 | Windows 10 2004 (build 19041) 以降が動作要件 | E-22 | ○ |
| C-39 | Azure DevOps パイプラインによるCI/CD | **根拠不足** | △ |
| C-40 | DEFAULT_HISTORY_SIZE の具体的な値 | **根拠不足** | △ |
| C-41 | StaticAnalysis.rulesetによる静的解析ルール適用 | **根拠不足** | △ |
| C-42 | 初回バイト受信時間のテレメトリ計測 | E-03 | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-36**: README.md のプロジェクト概要にて「a text buffer capable of storing both UTF-16 and UTF-8」と記載があるが、実装コードレベルでの検証が不十分。TextBuffer のソースコードの詳細な確認が必要
  - 候補：`src/buffer/out/textBuffer.cpp` / `src/buffer/out/Row.cpp` の詳細解析
- **C-39**: README.md 内の Azure DevOps ステータスバッジから Azure DevOps の使用を推測しているが、パイプライン定義ファイル（YAML等）は直接確認していない
  - 候補：`build/` ディレクトリ / `.azure-pipelines/` / `azure-pipelines.yml`
- **C-40**: `MTSMSettings.h` にて `DEFAULT_HISTORY_SIZE` マクロが参照されているが、その定義箇所（具体的な数値）を確認していない
  - 候補：`src/inc/DefaultSettings.h` / `src/cascadia/inc/DefaultSettings.h`
- **C-41**: `src/StaticAnalysis.ruleset` ファイルの存在はディレクトリ一覧で確認したが、ルールセットの具体的な内容は読み取っていない
  - 候補：`src/StaticAnalysis.ruleset` の内容確認

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: 性能関連の具体的数値（タイムアウト値、リトライ回数）-- コードから直接抽出しており信頼性が高い
- **0 (低リスク)**: セキュリティ設定のデフォルト値 -- MTSMSettings.h から直接読み取り
- **0 (低リスク)**: フィーチャーフラグの状態 -- features.xml から直接読み取り
- **1 (中リスク)**: テキストバッファの UTF-8 対応能力 -- README の記述に基づく推測を含む
- **1 (中リスク)**: CI/CD パイプライン構成 -- バッジの存在からの推測
- **0 (低リスク)**: テレメトリイベントの種類と内容 -- ソースコードから直接抽出

## 6) レビュアーチェックリスト（最小）
- [ ] 性能要件のタイムアウト値がソースコード（renderer.cpp, AtlasEngine.r.cpp, ConptyConnection.cpp）と一致しているか
- [ ] セキュリティ設定のデフォルト値が MTSMSettings.h の記述と一致しているか
- [ ] フィーチャーフラグの有効/無効状態が features.xml と一致しているか
- [ ] DEFAULT_HISTORY_SIZE の具体的数値を確認し、ドキュメントに追記が必要か判断
- [ ] TextBuffer の UTF-8 格納能力について、実装コードレベルで確認
- [ ] CI/CD パイプラインの構成について、build ディレクトリ配下のファイルで確認
- [ ] 本プロジェクト固有の可用性要件（デスクトップアプリとしての RTO/RPO は N/A）が適切か
- [ ] 多言語対応の言語リストが Resources ディレクトリの実態と一致しているか
