---
generated_at: 2026-03-01 14: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. **Vite HMR のインクリメンタルビルド詳細動作**：Vite プラグインのコード全体を精査する必要あり（ファイルが大きく一部のみ確認）
  2. **@tailwindcss/standalone の Bun バンドル詳細**：ビルドスクリプトの詳細を未確認
  3. **Rust extractor ステートマシンの内部動作詳細**：各 machine.rs ファイルの内部ロジックは未精査

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

- E-01: `package.json`（ルート）-- プロジェクト名、スクリプト、devDependencies
- E-02: `Cargo.toml`（ルート）-- Rust ワークスペース定義
- E-03: `pnpm-workspace.yaml` -- pnpm ワークスペース定義、catalog
- E-04: `turbo.json` -- Turbo タスク定義
- E-05: `packages/tailwindcss/package.json` -- コアパッケージ定義、依存関係
- E-06: `packages/tailwindcss/src/index.ts` -- メインエントリ、compile/compileAst/parseCss
- E-07: `packages/tailwindcss/src/compile.ts` -- compileCandidates、compileAstNodes
- E-08: `packages/tailwindcss/src/design-system.ts` -- DesignSystem 型定義、buildDesignSystem
- E-09: `packages/tailwindcss/src/ast.ts` -- AstNode 型定義（StyleRule, AtRule, Declaration 等）
- E-10: `packages/tailwindcss/src/theme.ts` -- Theme クラス、ThemeOptions enum
- E-11: `packages/tailwindcss/src/css-parser.ts` -- CSS パーサー実装
- E-12: `packages/tailwindcss/src/candidate.ts` -- 候補パーサー型定義
- E-13: `packages/tailwindcss/src/utilities.ts` -- ユーティリティ定義
- E-14: `packages/tailwindcss/src/variants.ts` -- Variants クラス、バリアント登録
- E-15: `packages/tailwindcss/src/walk.ts` -- walk 関数、WalkAction
- E-16: `packages/tailwindcss/src/css-functions.ts` -- CSS 関数解決
- E-17: `packages/tailwindcss/src/apply.ts` -- @apply 処理
- E-18: `packages/tailwindcss/src/at-import.ts` -- @import 処理
- E-19: `packages/tailwindcss/src/intellisense.ts` -- IntelliSense API
- E-20: `packages/tailwindcss/src/compat/apply-compat-hooks.ts` -- 互換性フック
- E-21: `packages/@tailwindcss-node/src/index.ts` -- Node アダプタエントリ
- E-22: `packages/@tailwindcss-node/src/compile.ts` -- Node 向けコンパイララッパー
- E-23: `packages/@tailwindcss-node/src/optimize.ts` -- Lightning CSS 最適化
- E-24: `packages/@tailwindcss-vite/src/index.ts` -- Vite プラグイン実装
- E-25: `packages/@tailwindcss-postcss/src/index.ts` -- PostCSS プラグイン実装
- E-26: `packages/@tailwindcss-cli/src/index.ts` -- CLI エントリ
- E-27: `packages/@tailwindcss-webpack/package.json` -- webpack パッケージ定義
- E-28: `packages/@tailwindcss-browser/package.json` -- ブラウザパッケージ定義
- E-29: `packages/@tailwindcss-standalone/package.json` -- スタンドアロンパッケージ定義
- E-30: `packages/@tailwindcss-upgrade/package.json` -- アップグレードツール定義
- E-31: `crates/oxide/src/lib.rs` -- Oxide クレートエントリ
- E-32: `crates/oxide/Cargo.toml` -- Oxide 依存関係
- E-33: `crates/node/src/lib.rs` -- N-API バインディング
- E-34: `crates/oxide/src/scanner/mod.rs` -- Scanner 構造体
- E-35: `vitest.config.ts` -- テスト設定
- E-36: `rust-toolchain.toml` -- Rust ツールチェーン指定
- E-37: `packages/tailwindcss/src/compat/` ディレクトリ構成

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Tailwind CSS v4.2.1 である | E-05 (`"version": "4.2.1"`) | ○ |
| C-02 | TypeScript と Rust のハイブリッド構成 | E-01, E-02, E-05, E-31 | ○ |
| C-03 | pnpm ワークスペースと Cargo ワークスペースの併用 | E-02, E-03 | ○ |
| C-04 | Vite Plugin として統合される | E-24 (Vite Plugin API 使用) | ○ |
| C-05 | PostCSS Plugin として統合される | E-25 (`postcssPlugin: '@tailwindcss/postcss'`) | ○ |
| C-06 | webpack Loader として統合される | E-27 (peerDependency: webpack ^5) | ○ |
| C-07 | Lightning CSS による CSS 最適化 | E-23 (`import { transform } from 'lightningcss'`) | ○ |
| C-08 | N-API (napi-rs) による Rust/Node.js 間 FFI | E-33 (`#[macro_use] extern crate napi_derive`) | ○ |
| C-09 | jiti による TypeScript プラグインの動的インポート | E-22 (`import { createJiti } from 'jiti'`) | ○ |
| C-10 | パイプライン型アーキテクチャ | E-06 (parseCss -> compileCandidates -> optimizeAst -> toCss) | ○ |
| C-11 | Integration Layer のパッケージ一覧 | E-24, E-25, E-26, E-27, E-28, E-29 | ○ |
| C-12 | @tailwindcss/node が Node.js 固有のファイル解決を提供 | E-22 (enhanced-resolve 使用, loadModule/loadStylesheet) | ○ |
| C-13 | Core Engine Layer の主要コンポーネント | E-06, E-07, E-08, E-09, E-12, E-13, E-14 | ○ |
| C-14 | Scanner Layer が Rust で実装されている | E-31, E-32, E-34 | ○ |
| C-15 | 互換性層が v3 プラグイン/設定との後方互換を提供 | E-20, E-37 | ○ |
| C-16 | Integration Layer -> Node Adapter Layer -> Core Engine Layer の依存方向 | E-24, E-25 (import from '@tailwindcss/node'), E-22 (import from 'tailwindcss') | ○ |
| C-17 | Scanner Layer からコアエンジンへの依存禁止 | E-31, E-32 (Rust crate に tailwindcss TS への依存なし) | ○ |
| C-18 | CSS パーサーが6種のノード型を持つ | E-09 (StyleRule, AtRule, Declaration, Comment, Context, AtRoot) | ○ |
| C-19 | DesignSystem が Theme, Utilities, Variants を持つ | E-08 (`theme: Theme`, `utilities: Utilities`, `variants: Variants`) | ○ |
| C-20 | @import の再帰深度制限が100 | E-18 (`if (recurseCount > 100)`) | ○ |
| C-21 | PostCSS プラグインの LRU キャッシュが最大50エントリ | E-25 (`new QuickLRU({ maxSize: 50 })`) | ○ |
| C-22 | DefaultMap によるメモ化パターン | E-08 (parsedVariants, parsedCandidates, compiledAstNodes) | ○ |
| C-23 | enhanced-resolve CachedInputFileSystem が 4000ms TTL | E-22 (`new EnhancedResolve.CachedInputFileSystem(fs, 4000)`) | ○ |
| C-24 | Lightning CSS の2パス最適化 | E-23 (optimize 関数を2回呼び出し) | ○ |
| C-25 | ブラウザターゲット（Safari 16.4, Firefox 128, Chrome 111） | E-23 (`safari: (16 << 16) | (4 << 8)`, etc.) | ○ |
| C-26 | Prettier 設定（semi: false, singleQuote: true, printWidth: 100） | E-01 (prettier 設定) | ○ |
| C-27 | pnpm 9.6.0 | E-01 (`"packageManager": "pnpm@9.6.0"`) | ○ |
| C-28 | Rust 1.85.0 | E-36 (`channel = "1.85.0"`) | ○ |
| C-29 | LTO 有効（リリースプロファイル） | E-02 (`lto = true`) | ○ |
| C-30 | ビットフラグパターンによる Features/Polyfills/ThemeOptions 管理 | E-06 (`enum Features`), E-10 (`enum ThemeOptions`) | ○ |
| C-31 | WalkAction による AST 走査制御 | E-15 (Continue, Skip, Stop, Replace 等) | ○ |
| C-32 | invalidCandidates セットによる無効候補追跡 | E-06, E-08 (`invalidCandidates: Set<string>`) | ○ |
| C-33 | CssSyntaxError にソース位置情報が含まれる | E-11 (`loc: SourceLocation`) | ○ |
| C-34 | Lightning CSS の errorRecovery: true で警告に降格 | E-23 (`errorRecovery: true`) | ○ |
| C-35 | Vitest によるテスト、Playwright による UI テスト | E-35, E-01 (`"test": "cargo test && vitest run"`) | ○ |
| C-36 | テストファイルはソースと同ディレクトリに配置 | E-06 周辺のディレクトリ構成（*.test.ts がsrc/ 直下に存在） | ○ |
| C-37 | @tailwindcss/browser がブラウザ上で直接実行可能 | E-28 (`"main": "./dist/index.global.js"`) | ○ |
| C-38 | @tailwindcss/upgrade が tree-sitter を使用 | E-30 (`"tree-sitter": "^0.22.4"`) | ○ |
| C-39 | @tailwindcss/standalone が Bun でバンドルされる | E-29 (`"build": "bun ./scripts/build.ts"`) | ○ |
| C-40 | Vite HMR でのインクリメンタルリビルドの詳細動作 | E-24 (冒頭100行のみ確認) | △ |
| C-41 | Rust extractor のステートマシン構成の詳細 | ディレクトリ一覧のみ確認、各ファイル内容は未精査 | △ |
| C-42 | Standalone CLI が Node.js なしで実行可能 | E-29 (Bun ビルド設定は確認、実行時動作は未検証) | △ |

## 4) 不足情報（Unknown / Missing）
- Vite プラグインの HMR 処理詳細（`@tailwindcss/vite/src/index.ts` が大きく100行のみ確認）
  - 候補：Vite プラグインの全ソースコード精査 / Vite HMR API ドキュメント
- Rust extractor 各ステートマシンの内部ロジック（ファイル名の一覧のみ確認）
  - 候補：`crates/oxide/src/extractor/mod.rs` / 各 `*_machine.rs` ファイルの精査
- @tailwindcss/standalone の実行時挙動（Bun バンドル設定は確認済み）
  - 候補：`packages/@tailwindcss-standalone/scripts/build.ts` の精査 / 実行テスト

## 5) リスクフラグ（レビュー観点）
- 0（低リスク）：レイヤー構成・依存関係の記載 -- package.json の依存関係から直接確認可能
- 0（低リスク）：コアコンパイルパイプラインの記載 -- `index.ts` の `parseCss` 関数から直接読み取り可能
- 1（中リスク）：Vite HMR インクリメンタルビルドの詳細 -- プラグインコードの一部のみ確認
- 0（低リスク）：Rust Scanner/Extractor の概要 -- `lib.rs`, `mod.rs`, ディレクトリ構成から確認
- 1（中リスク）：Extractor ステートマシンの詳細 -- 各ファイルの内容は未精査
- 0（低リスク）：ミドルウェア構成 -- 各 package.json の依存関係から確認
- 0（低リスク）：エラーハンドリングの記載 -- ソースコード中の throw 文から直接確認

## 6) レビュアーチェックリスト（最小）
- [ ] レイヤー構成の定義が実際のコード構造と一致しているか確認
- [ ] パッケージ依存関係図が各 package.json の dependencies と整合しているか確認
- [ ] CSS コンパイルパイプラインの順序が `index.ts` の `parseCss` 関数の実装と一致しているか確認
- [ ] Rust クレート構成がディレクトリ構造と Cargo.toml の記載と一致しているか確認
- [ ] Vite プラグインの HMR 動作に関する記載（C-40）を実コードで検証
- [ ] Rust extractor のステートマシン構成（C-41）を実コードで検証
- [ ] 互換性層の記載が `compat/` ディレクトリの実装と整合しているか確認
