---
generated_at: 2026-03-01 18:45:00
metrics:
  claims_total: 42
  claims_with_evidence: 40
  claims_without_evidence: 2
confidence_derived: 0.95
---

# 根拠レポート：アーキテクチャ設計書

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：40 / 42、根拠なし：2
- 優先レビュー（高）
  1. **Windows対応状況**：READMEでは「開発中」と記載されているが、コード上の詳細な進捗は未確認
  2. **WASM/Browser対応**：browser.zigは存在するが、実験的機能の詳細は未確認

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

- E-01: `src/main.zig` - エントリーポイント
- E-02: `src/App.zig` - アプリケーション管理
- E-03: `src/Surface.zig` - ターミナルサーフェス
- E-04: `src/apprt.zig` - アプリケーションランタイム抽象化
- E-05: `src/apprt/gtk/` - GTK実装
- E-06: `src/apprt/embedded.zig` - libghostty組み込みモード
- E-07: `src/renderer.zig` - レンダラー選択
- E-08: `src/renderer/Metal.zig` - Metalレンダラー
- E-09: `src/renderer/OpenGL.zig` - OpenGLレンダラー
- E-10: `src/terminal/main.zig` - ターミナルモジュール
- E-11: `src/terminal/Terminal.zig` - ターミナル状態機械
- E-12: `src/terminal/Parser.zig` - エスケープシーケンスパーサー
- E-13: `src/terminal/Screen.zig` - 画面バッファ
- E-14: `src/termio.zig` - ターミナルI/O
- E-15: `src/termio/Termio.zig` - I/O管理
- E-16: `src/pty.zig` - PTY管理
- E-17: `src/font/` - フォントモジュール
- E-18: `src/config/Config.zig` - 設定
- E-19: `src/input/Binding.zig` - キーバインディング
- E-20: `src/global.zig` - グローバル状態
- E-21: `src/crash/main.zig` - クラッシュレポート
- E-22: `README.md` - プロジェクト概要
- E-23: `HACKING.md` - 開発ドキュメント
- E-24: `build.zig` - ビルドシステム
- E-25: `src/build_config.zig` - ビルド設定
- E-26: `macos/Sources/` - macOS Swift実装
- E-27: `pkg/` - 外部依存関係
- E-28: `src/unicode/` - Unicode処理
- E-29: `src/simd/` - SIMD最適化
- E-30: `src/renderer/Thread.zig` - レンダースレッド

## 3) Claims と根拠の対応（レビューの主戦場）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | GhosttyはZig言語で実装されたコアライブラリを持つ | E-01, E-02, E-22 | ○ |
| C-02 | macOSアプリはSwift/SwiftUIで実装されている | E-26, E-22 | ○ |
| C-03 | LinuxアプリはGTK4で実装されている | E-05, E-22 | ○ |
| C-04 | apprtがプラットフォーム抽象化を提供する | E-04 | ○ |
| C-05 | build_config.zigでコンパイル時にランタイムを選択 | E-25, E-04 | ○ |
| C-06 | Surfaceがターミナル描画領域を管理する | E-03 | ○ |
| C-07 | MetalレンダラーがmacOSで使用される | E-08, E-07 | ○ |
| C-08 | OpenGLレンダラーがLinuxで使用される | E-09, E-07 | ○ |
| C-09 | terminal/Terminal.zigがターミナル状態を管理する | E-11 | ○ |
| C-10 | Parser.zigがエスケープシーケンスをパースする | E-12 | ○ |
| C-11 | Screen.zigが画面バッファを管理する | E-13 | ○ |
| C-12 | termio/がPTYとのI/Oを管理する | E-14, E-15 | ○ |
| C-13 | pty.zigがPOSIX/Windows PTYを抽象化する | E-16 | ○ |
| C-14 | font/がフォント処理を担当する | E-17 | ○ |
| C-15 | config/Config.zigが設定を管理する | E-18 | ○ |
| C-16 | input/Binding.zigがキーバインディングを管理する | E-19 | ○ |
| C-17 | global.zigがC API用グローバル状態を保持する | E-20 | ○ |
| C-18 | crash/がクラッシュレポートを管理する | E-21 | ○ |
| C-19 | Sentryでクラッシュレポートを保存する | E-21, E-22 | ○ |
| C-20 | libxevがイベントループを提供する | E-20 | ○ |
| C-21 | マルチスレッドアーキテクチャを採用している | E-15, E-30, E-03 | ○ |
| C-22 | メインスレッド、IOスレッド、レンダースレッドに分離 | E-15, E-30 | ○ |
| C-23 | BlockingQueueでスレッド間通信を行う | E-02 | ○ |
| C-24 | Mailboxパターンを使用している | E-02, E-15 | ○ |
| C-25 | FreeTypeがフォントレンダリングに使用される | E-27 | ○ |
| C-26 | HarfBuzzがテキストシェイピングに使用される | E-27, E-20 | ○ |
| C-27 | Fontconfigがフォント検出に使用される（Linux） | E-27, E-20 | ○ |
| C-28 | CoreTextがフォント検出に使用される（macOS） | E-17 | ○ |
| C-29 | Onigurumaが正規表現に使用される | E-20, E-27 | ○ |
| C-30 | glslangがシェーダーコンパイルに使用される | E-20, E-27 | ○ |
| C-31 | 設定ファイルはホットリロード対応 | E-18 | ○ |
| C-32 | std.logでロギングを行う | E-20 | ○ |
| C-33 | GHOSTTY_LOG環境変数でログ出力を制御 | E-20, E-23 | ○ |
| C-34 | macOS unified logに対応している | E-20, E-23 | ○ |
| C-35 | Zigのエラーユニオン型でエラーハンドリング | E-01からE-21全般 | ○ |
| C-36 | unicode/でUnicode処理を行う | E-28 | ○ |
| C-37 | simd/でSIMD最適化を行う | E-29 | ○ |
| C-38 | libghosttyとしてC互換ライブラリを提供 | E-06, E-22 | ○ |
| C-39 | libghostty-vtがVTパーサー専用ライブラリ | E-24, E-22 | ○ |
| C-40 | WASMモジュールとしてビルド可能 | E-24, E-04 | ○ |
| C-41 | Windowsサポートは開発中 | E-22 | △ |
| C-42 | WASM/Browserは実験的 | E-04, E-22 | △ |

## 4) 不足情報（Unknown / Missing）
- **C-41（Windowsサポート）**：READMEのロードマップでは「開発中」と記載されているが、pty.zigにWindowsPtyの実装があるものの、apprt側のWindows対応は未確認
  - 候補：src/os/windows.zig / apprt/windows/（存在しない可能性）
- **C-42（WASM/Browser）**：browser.zigとWebGL.zigが存在するが、実験的機能の完成度・制限事項の詳細は未確認
  - 候補：WASM関連ドキュメント / テストケース

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**：コアアーキテクチャの記述 - コード直接参照により高い信頼性
- **0（低リスク）**：レイヤー構成 - ディレクトリ構造とモジュール定義から明確
- **0（低リスク）**：外部依存関係 - pkg/ディレクトリとbuild.zigから確認
- **1（中リスク）**：データフローの詳細 - コード読解に基づくが、実行時の動作確認は未実施
- **1（中リスク）**：パフォーマンス最適化の詳細 - コード存在は確認済みだが効果は未検証
- **2（高リスク）**：Windows/WASM対応状況 - 開発進行中のため変更の可能性が高い

## 6) レビュアーチェックリスト（最小）
- [ ] レイヤー構成がコードの実際のディレクトリ構造と一致しているか確認
- [ ] apprtの各ランタイム実装（gtk, embedded, browser）の責務が正確に記述されているか確認
- [ ] マルチスレッドアーキテクチャの説明が実際のThread実装と一致しているか確認
- [ ] 外部依存関係のバージョン情報が必要な場合はpkg/を確認
- [ ] Windows対応の最新状況をREADMEまたはGitHub Issuesで確認
- [ ] 設定ファイルの仕様詳細が必要な場合はconfig/Config.zigを参照
- [ ] パフォーマンス関連の主張はベンチマーク実行により検証
