---
generated_at: 2026-02-27 12:05:00
metrics:
  claims_total: 30
  claims_with_evidence: 29
  claims_without_evidence: 1
confidence_derived: 0.97
---

# 根拠レポート：72-フルビルド（vueパッケージ）

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：29 / 30、根拠なし：1
- 優先レビュー（高）
  1. **CSP制約への言及**：new Functionの使用がCSP環境で問題になることは一般的な知識だが、ソースコード内にCSPに関する明示的な記述はない

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

- E-01: `packages/vue/src/index.ts`（フルビルドエントリー、compileToFunction、registerRuntimeCompiler呼び出し）
- E-02: `packages/vue/src/runtime.ts`（ランタイムのみエントリー、compile警告関数）
- E-03: `packages/vue/src/dev.ts`（開発モード初期化、initDev関数）
- E-04: `packages/vue/package.json`（パッケージ設定、exports、buildOptions、依存関係、バージョン）
- E-05: `packages/vue/index.js`（CJSエントリー、NODE_ENV分岐）
- E-06: `packages/vue/index.mjs`（ESMエントリー、再エクスポート）
- E-07: `packages/vue/compiler-sfc/index.js`（@vue/compiler-sfcの再エクスポート）
- E-08: `packages/vue/compiler-sfc/register-ts.js`（TypeScript登録処理）
- E-09: `packages/vue/server-renderer/index.js`（@vue/server-rendererの再エクスポート）
- E-10: `packages/vue/jsx-runtime/index.js`（JSXランタイム実装）
- E-11: `packages/vue/jsx-runtime/index.d.ts`（JSX型定義）
- E-12: `rollup.config.js`（ビルド設定、フォーマット定義、環境フラグ）
- E-13: `packages/runtime-core/src/component.ts`（registerRuntimeCompiler定義、974行目）
- E-14: `docs/code-to-docs/機能一覧/機能一覧.csv`（機能No.72の定義）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | vueパッケージはランタイム+コンパイラを含むフルビルドを提供する | E-01 (1-2行目コメント), E-14 | ○ |
| C-02 | フルビルドのエントリーはsrc/index.ts、ランタイムのみはsrc/runtime.ts | E-01, E-02, E-12 (159行目) | ○ |
| C-03 | compileToFunctionはテンプレート文字列またはHTMLElementを受け付ける | E-01 (30-33行目) | ○ |
| C-04 | コンパイル結果はcompileCacheにキャッシュされる | E-01 (28行目, 44-47行目, 101行目) | ○ |
| C-05 | compileCacheはObject.create(null)で初期化される | E-01 (28行目) | ○ |
| C-06 | genCacheKeyでキャッシュキーを生成する | E-01 (43行目) | ○ |
| C-07 | HTMLElementの場合はinnerHTMLを取得する | E-01 (36行目) | ○ |
| C-08 | '#'で始まるテンプレートはCSSセレクタとして解決する | E-01 (49-58行目) | ○ |
| C-09 | __UNSAFE__コメントでセキュリティリスクが明示されている | E-01 (54-57行目) | ○ |
| C-10 | hoistStatic: trueがデフォルトで設定される | E-01 (63行目) | ○ |
| C-11 | customElements APIが利用可能な場合にisCustomElementを自動設定する | E-01 (70-72行目) | ○ |
| C-12 | グローバルビルドではnew Function(code)()でレンダリング関数を生成する | E-01 (95行目) | ○ |
| C-13 | 非グローバルビルドではnew Function('Vue', code)(runtimeDom)で生成する | E-01 (95行目) | ○ |
| C-14 | render._rc = trueでランタイムコンパイル済みマーカーを設定する | E-01 (99行目) | ○ |
| C-15 | registerRuntimeCompiler(compileToFunction)でコンパイラを登録する | E-01 (104行目) | ○ |
| C-16 | registerRuntimeCompilerはランタイムコアの内部compile変数を設定する | E-13 (974-975行目) | ○ |
| C-17 | ランタイムのみビルドのcompileは警告を表示するだけの関数 | E-02 (12-25行目) | ○ |
| C-18 | ランタイムのみビルドは環境フラグに応じた適切なビルドファイルを推奨する | E-02 (16-22行目) | ○ |
| C-19 | initDevはブラウザ環境かつ非バンドラービルドで情報メッセージを表示する | E-03 (4-10行目) | ○ |
| C-20 | initDevはinitCustomFormatter()を呼び出す | E-03 (12行目) | ○ |
| C-21 | CJSエントリーはNODE_ENVでdev/prodビルドを切り替える | E-05 (3-7行目) | ○ |
| C-22 | パッケージバージョンは3.5.27 | E-04 (3行目) | ○ |
| C-23 | TypeScriptはオプショナルなpeerDependency | E-04 (104-110行目) | ○ |
| C-24 | ビルドフォーマットは7種類 | E-04 (74-82行目), E-12 (58-88行目) | ○ |
| C-25 | compiler-sfcサブパスではTypeScript登録が自動実行される | E-07 (3行目), E-08 (1-3行目) | ○ |
| C-26 | JSXランタイムはh関数をラップしてjsx/jsxs/jsxDEVを提供する | E-10 (3-15行目) | ○ |
| C-27 | JSX名前空間でElement extends VNodeを定義 | E-11 (12行目) | ○ |
| C-28 | 依存パッケージは@vue/shared, @vue/compiler-dom, @vue/runtime-dom, @vue/compiler-sfc, @vue/server-renderer | E-04 (97-103行目) | ○ |
| C-29 | SWCによるミニファイがプロダクションビルドで適用される | E-12 (362-392行目) | ○ |
| C-30 | CSP環境ではnew Functionの使用が問題になる | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- C-30のCSP制約への言及について：`new Function()` の使用がContent Security Policyの `unsafe-eval` ディレクティブに抵触することは広く知られた事実だが、`packages/vue/src/index.ts` 内にCSPに関する明示的なコメントや警告は存在しない。Vue公式ドキュメントや外部リソースでは言及されている可能性があるが、本リポジトリのソースコードからは直接確認できない。
  - 候補：Vue公式ドキュメント / MDN Web Docs (CSP) / Vueのセキュリティガイド

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - フルビルドエントリー（index.ts）は108行と小規模で、ロジックが明確
- 0: 低リスク - ランタイムのみビルド（runtime.ts）は26行と非常に小規模
- 0: 低リスク - サブパスエクスポートは単純な再エクスポートで複雑性が低い
- 1: 中リスク - rollup.config.jsのビルドフラグ（__DEV__, __GLOBAL__等）の組み合わせが複雑で、すべてのパターンの網羅的検証が困難

## 6) レビュアーチェックリスト（最小）
- [ ] compileToFunctionの入力正規化（HTMLElement、#セレクタ、文字列）の説明が正確か確認
- [ ] キャッシュ機構（genCacheKey、Object.create(null)）の動作説明が正確か確認
- [ ] グローバルビルドと非グローバルビルドのnew Function呼び出し差異が正しく記述されているか確認
- [ ] ビルドフォーマット7種類がpackage.jsonのbuildOptions.formatsと一致するか確認
- [ ] CSP制約の記述が適切な範囲に留まっているか（過度に断定的でないか）確認
- [ ] registerRuntimeCompilerの動作がruntime-core/src/component.tsの実装と整合するか確認
