---
generated_at: 2026-02-27 12: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. **稼働率・RTO・RPO等の可用性指標が直接適用されないという主張**：フレームワーク特性に基づく推論であり、明示的な根拠なし
  2. **レートリミットがコードベースに存在しないという主張**：全ファイル網羅的な検索に基づくが、プライベートパッケージの完全な検証は未実施
  3. **Suspense の timeout プロパティによるフォールバック制御の詳細動作**：型定義は確認済みだが実装の全容は未精査

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

- E-01: `packages/runtime-core/src/apiAsyncComponent.ts` - defineAsyncComponent 実装（delay=200, timeout, retry機構）
- E-02: `packages/runtime-core/src/hydrationStrategies.ts` - 遅延ハイドレーション戦略（hydrateOnIdle timeout=10000）
- E-03: `packages/runtime-core/src/devtools.ts` - DevTools 統合（バッファ 3000ms クリア、イベント種別）
- E-04: `packages/runtime-dom/src/modules/events.ts` - イベントハンドリング（cachedNow, sanitizeEventValue）
- E-05: `packages/runtime-core/src/scheduler.ts` - スケジューラ（RECURSION_LIMIT=100）
- E-06: `packages/compiler-sfc/src/cache.ts` - LRU キャッシュ（max=500）
- E-07: `packages/runtime-core/src/components/KeepAlive.ts` - KeepAlive キャッシュ（max プロパティ、LRU方式）
- E-08: `packages/compiler-dom/src/transforms/stringifyStatic.ts` - 静的ノード文字列化閾値（ELEMENT_WITH_BINDING_COUNT=5, NODE_COUNT=20）
- E-09: `packages/runtime-core/src/apiCreateApp.ts` - アプリケーション設定（WeakMap キャッシュ、プラグイン、エラーハンドラ）
- E-10: `packages/reactivity/src/reactive.ts` - リアクティブオブジェクトマップ（WeakMap）
- E-11: `packages/runtime-core/src/errorHandling.ts` - エラーハンドリング（errorCaptured 伝播、logError 環境分岐）
- E-12: `packages/shared/src/escapeHtml.ts` - HTML エスケープ関数
- E-13: `packages/server-renderer/src/helpers/ssrInterpolate.ts` - SSR 補間エスケープ
- E-14: `packages/runtime-dom/src/nodeOps.ts` - Trusted Types ポリシー、insertStaticContent
- E-15: `SECURITY.md` - セキュリティ報告フロー、XSS ポリシー
- E-16: `packages/runtime-core/src/warning.ts` - 警告システム（warnHandler、コンポーネントトレース）
- E-17: `packages/runtime-core/src/profiling.ts` - パフォーマンス計測（Performance API 連携）
- E-18: `tsconfig.json` - TypeScript 設定（strict, isolatedDeclarations）
- E-19: `package.json` - ビルド・テスト・lint 設定、engines フィールド
- E-20: `vitest.config.ts` - テスト設定（プロジェクト構成、カバレッジ、Feature Flags）
- E-21: `rollup.config.js` - ビルド設定（複数出力フォーマット）
- E-22: `packages/reactivity/src/effect.ts` - リアクティビティデバッグ（onTrack/onTrigger）
- E-23: `packages/reactivity/__tests__/gc.spec.ts` - ガベージコレクションテスト
- E-24: `packages/runtime-core/src/components/Suspense.ts` - Suspense 実装（timeout プロパティ）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | 非同期コンポーネント delay デフォルト 200ms | E-01 | ○ |
| C-02 | 非同期コンポーネント timeout デフォルト undefined | E-01 | ○ |
| C-03 | hydrateOnIdle タイムアウト デフォルト 10,000ms | E-02 | ○ |
| C-04 | DevTools バッファ 3,000ms 後クリア | E-03 | ○ |
| C-05 | イベントタイムスタンプ同一 tick 内キャッシュ | E-04 | ○ |
| C-06 | スケジューラ再帰制限 100 回 | E-05 | ○ |
| C-07 | SFC パースキャッシュ LRU 最大 500 エントリ | E-06 | ○ |
| C-08 | KeepAlive キャッシュ max プロパティ制御・LRU 方式 | E-07 | ○ |
| C-09 | 静的ノード文字列化閾値（要素5以上、ノード20以上） | E-08 | ○ |
| C-10 | コンポーネントオプション/Props/Emits キャッシュは WeakMap | E-09 | ○ |
| C-11 | リアクティブオブジェクトマップは WeakMap | E-10 | ○ |
| C-12 | 本番環境でエラー時 console.error で継続 | E-11 | ○ |
| C-13 | 開発環境でエラー時 throw | E-11 | ○ |
| C-14 | throwUnhandledErrorInProduction オプション | E-09, E-11 | ○ |
| C-15 | 非同期コンポーネントの onError リトライ機構 | E-01 | ○ |
| C-16 | errorCaptured によるエラー境界 | E-11 | ○ |
| C-17 | app.config.errorHandler によるグローバルエラーハンドリング | E-09, E-11 | ○ |
| C-18 | スケジューラ再帰更新検出・エラー報告 | E-05 | ○ |
| C-19 | Suspense の timeout プロパティ | E-24 | ○ |
| C-20 | escapeHtml による HTML エスケープ（5文字対象） | E-12 | ○ |
| C-21 | escapeHtmlComment による危険パターン除去 | E-12 | ○ |
| C-22 | getEscapedCssVarName による CSS 変数名エスケープ | E-12 | ○ |
| C-23 | sanitizeEventValue によるイベントハンドラバリデーション | E-04 | ○ |
| C-24 | Trusted Types ポリシー対応 | E-14 | ○ |
| C-25 | insertStaticContent の innerHTML は信頼テンプレートのみ | E-14 | ○ |
| C-26 | セキュリティ脆弱性報告フロー | E-15 | ○ |
| C-27 | app.use() プラグインシステム・WeakSet 重複防止 | E-09 | ○ |
| C-28 | app.onUnmount() クリーンアップ機構 | E-09 | ○ |
| C-29 | 4種類の遅延ハイドレーション戦略 | E-02 | ○ |
| C-30 | 複数出力フォーマット（ESM, CJS, IIFE等） | E-21 | ○ |
| C-31 | Feature Flag による条件付きコンパイル | E-20, E-21 | ○ |
| C-32 | TypeScript strict モード + isolatedDeclarations | E-18 | ○ |
| C-33 | ESLint + Prettier + pre-commit フック | E-19 | ○ |
| C-34 | Vitest 複数プロジェクト構成テスト | E-20 | ○ |
| C-35 | V8 コードカバレッジ計測 | E-20 | ○ |
| C-36 | GC テスト（WeakRef ベース） | E-23 | ○ |
| C-37 | Performance API 連携計測 | E-17 | ○ |
| C-38 | DevTools イベント一覧（8種類） | E-03 | ○ |
| C-39 | onTrack/onTrigger デバッグコールバック | E-22 | ○ |
| C-40 | 稼働率・RTO・RPO 等が直接適用されないという主張 | **根拠なし** | △ |
| C-41 | レートリミット設定がコードベースに存在しないという主張 | **根拠なし** | △ |
| C-42 | Suspense timeout によるフォールバック表示制御の詳細動作 | E-24 | △ |

## 4) 不足情報（Unknown / Missing）
- C-40: 稼働率・RTO・RPO の非適用について、Vue.js がクライアントサイドフレームワークであることは自明だが、サーバーサイドレンダリング（SSR）利用時にはサーバー側の可用性要件が関与する可能性がある。これはフレームワーク自体の責務範囲外であるが、利用者への注意喚起として補足が望ましい。
  - 候補：SSR デプロイ構成ドキュメント / Vue.js 公式ドキュメント SSR セクション / Nuxt.js 等メタフレームワークのドキュメント
- C-41: コードベース全体の `grep` 検索で `rate.?limit|throttle|debounce` を調査し、テストコード（`markdown.spec.ts` 内の lodash debounce 参照）以外にフレームワーク本体でのレートリミット実装は確認されなかった。ただし `packages-private` 内の完全な検証は未実施。
  - 候補：packages-private 内の詳細調査 / Vue Router 等周辺ライブラリの設定
- C-42: Suspense の `timeout` プロパティは型定義（`SuspenseProps`）で確認できるが、実際のフォールバック制御ロジックの全容は約700行の Suspense 実装の一部のみを確認したため、詳細動作の正確性は要精査。
  - 候補：`packages/runtime-core/src/components/Suspense.ts` の全文精読

## 5) リスクフラグ（レビュー観点）
- 0: キャッシュ設定値（LRU max=500, RECURSION_LIMIT=100 等）はコードから直接読み取った定数値であり、低リスク
- 0: セキュリティ関連（escapeHtml, Trusted Types）はコード実装を直接確認しており、低リスク
- 1: 可用性要件のうち「本番環境でのエラー回復」動作はコードで確認済みだが、実際のアプリケーション挙動は利用者の設定次第であるため、中リスク
- 1: Suspense の timeout 動作詳細は型定義のみで判断している部分があり、中リスク
- 0: ビルド形式・テスト構成は設定ファイルから直接確認しており、低リスク

## 6) レビュアーチェックリスト（最小）
- [ ] C-40: SSR 利用時の可用性要件について、備考セクションの記述が適切か確認
- [ ] C-41: レートリミット非存在の主張について、packages-private を含む追加検証が必要か判断
- [ ] C-42: Suspense の timeout フォールバック動作が正確に記述されているか、Suspense.ts の全文で検証
- [ ] 性能要件の数値（delay=200ms, timeout=10000ms, RECURSION_LIMIT=100, LRU max=500）がコードの値と一致するか確認
- [ ] セキュリティ要件の escapeHtml 対象文字（5文字）が正確に列挙されているか確認
- [ ] Feature Flag の一覧が最新のコードベースと一致するか確認
- [ ] DevTools イベント一覧（8種類）がコードの enum 定義と一致するか確認
