---
generated_at: 2026-03-01 18:30: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. **キー入力フローの詳細追跡**: 具体的なメソッド呼び出しチェーンの確認が必要
  2. **パフォーマンスに関する主張**: 公式ベンチマーク結果の確認が必要
  3. **Kitty keyboard protocolのサポート範囲**: 実装の完全性確認が必要

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

- E-01: `README.md` - プロジェクト概要、機能説明
- E-02: `HACKING.md` - 開発者向けガイド、ビルド方法
- E-03: `build.zig` - ビルドスクリプト、依存関係
- E-04: `src/main.zig` - エントリーポイント定義
- E-05: `src/main_ghostty.zig` - メインアプリケーション起動ロジック
- E-06: `src/App.zig` - Appクラス定義、Surface管理
- E-07: `src/Surface.zig` - Surfaceクラス定義、ドキュメンテーションコメント
- E-08: `src/apprt.zig` - アプリケーションランタイム定義
- E-09: `src/renderer.zig` - レンダラー抽象化
- E-10: `src/renderer/generic.zig` - 汎用レンダラー実装、アーキテクチャコメント
- E-11: `src/terminal/Terminal.zig` - ターミナルエミュレーション実装
- E-12: `src/terminal/Parser.zig` - VTパーサー実装
- E-13: `src/terminal/main.zig` - terminalパッケージエクスポート
- E-14: `src/termio.zig` - termioパッケージ定義
- E-15: `src/config.zig` - 設定パッケージ定義
- E-16: `src/input.zig` - 入力パッケージ定義
- E-17: `src/cli.zig` - CLIパッケージ定義
- E-18: `src/lib_vt.zig` - libghostty-vt公開API
- E-19: `src/font/` - フォント関連ディレクトリ構造
- E-20: `macos/` - macOSアプリディレクトリ構造
- E-21: `pkg/` - 依存パッケージディレクトリ構造

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | GhosttyはZigとSwiftで実装されている | E-01, E-03, E-20 | ○ |
| C-02 | macOSではMetalレンダラーを使用 | E-01, E-09 | ○ |
| C-03 | LinuxではOpenGLレンダラーを使用 | E-01, E-09 | ○ |
| C-04 | Surfaceはターミナルの描画領域を表す | E-07 | ○ |
| C-05 | Appは複数のSurfaceを管理する | E-06 | ○ |
| C-06 | main.zigがエントリーポイント | E-04 | ○ |
| C-07 | build_configでエントリーポイントが選択される | E-04, E-05 | ○ |
| C-08 | apprtはプラットフォーム抽象化レイヤー | E-08 | ○ |
| C-09 | GTK、embedded、browser、noneのランタイムがある | E-08 | ○ |
| C-10 | Terminalがターミナル状態を管理 | E-11 | ○ |
| C-11 | ParserはVT100ステートマシンを実装 | E-12 | ○ |
| C-12 | termioはPTY通信を担当 | E-14 | ○ |
| C-13 | レンダラーはGenericRendererで抽象化されている | E-09, E-10 | ○ |
| C-14 | packed structでメモリ最適化している | E-11 | ○ |
| C-15 | コンパイル時多態性をswitchで実現 | E-08, E-09 | ○ |
| C-16 | errdeferでエラー時リソース解放 | E-06 | ○ |
| C-17 | src/terminal/ディレクトリにターミナルエミュレーション | E-13 | ○ |
| C-18 | src/renderer/ディレクトリにGPU描画 | E-09, E-10 | ○ |
| C-19 | src/font/ディレクトリにフォント管理 | E-19 | ○ |
| C-20 | src/config/ディレクトリに設定管理 | E-15 | ○ |
| C-21 | src/input/ディレクトリに入力処理 | E-16 | ○ |
| C-22 | src/cli/ディレクトリにCLIコマンド | E-17 | ○ |
| C-23 | PascalCase.zigは構造体定義ファイル | E-04, E-06, E-07, E-11 | ○ |
| C-24 | snake_case.zigはモジュール/ユーティリティ | E-08, E-09, E-14 | ○ |
| C-25 | libghostty-vtはターミナルエミュレーション部分のライブラリ | E-18 | ○ |
| C-26 | macOSアプリはSwiftUIで実装 | E-01, E-20 | ○ |
| C-27 | macOSアプリはlibghosttyのC APIを使用 | E-01, E-18 | ○ |
| C-28 | GHOSTTY_LOG環境変数でログを制御 | E-02 | ○ |
| C-29 | zig build run-valgrindでメモリリークチェック | E-02 | ○ |
| C-30 | ParserにはState enum（ground, escape等）がある | E-12 | ○ |
| C-31 | Terminal.flagsはpacked structである | E-11 | ○ |
| C-32 | fontパッケージにAtlas.zig等がある | E-19 | ○ |
| C-33 | pkgディレクトリに依存ライブラリビルド設定がある | E-21 | ○ |
| C-34 | freetype, harfbuzz, fontconfigが依存 | E-21 | ○ |
| C-35 | App.createでアプリケーション生成 | E-06 | ○ |
| C-36 | App.initで初期化 | E-06 | ○ |
| C-37 | App.deinit/destroyで解放 | E-06 | ○ |
| C-38 | testブロックでテストを記述 | E-05 | ○ |
| C-39 | 高速なIO処理により他ターミナルより速い | **根拠なし** | △ |
| C-40 | キー入力フローの具体的なメソッド呼び出しチェーン | **根拠不足** | △ |
| C-41 | Kitty keyboard protocolの完全サポート | **根拠不足** | △ |
| C-42 | 60fpsでのレンダリング維持 | E-01 | ○ |

## 4) 不足情報（Unknown / Missing）

- **C-39: パフォーマンス比較の根拠**
  - README.mdに一般的な記述はあるが、具体的なベンチマーク結果へのリンクがない
  - 候補: 公式ベンチマーク / 外部比較記事 / テストスクリプト

- **C-40: キー入力フローの詳細**
  - Surface.zigとinput/の接続部分のコード詳細が未確認
  - 候補: `src/Surface.zig`の該当メソッド / `src/input/Binding.zig`の呼び出し元

- **C-41: Kitty keyboard protocolサポート範囲**
  - 基本的なサポートは確認できるが、プロトコル全機能のカバー率は未確認
  - 候補: `src/input/kitty.zig` / `src/input/key_encode.zig`の詳細分析

## 5) リスクフラグ（レビュー観点）

| フラグ | レベル | 対象 | 説明 |
|-------|-------|------|------|
| パフォーマンス主張 | 1: 中リスク | C-39, C-42 | 公式ベンチマークの確認推奨 |
| フロー図の正確性 | 0: 低リスク | セクション5, 8 | ソースコードから推定、概ね正確 |
| 命名規則 | 0: 低リスク | セクション3 | 実際のファイル構造から抽出 |
| アーキテクチャ図 | 0: 低リスク | セクション5.1 | ソースコードの構造から推定 |

## 6) レビュアーチェックリスト（最小）

- [ ] プロジェクト概要（セクション「はじめに」）が正確か
- [ ] Zig言語の基礎説明（セクション1）が正確か
- [ ] ディレクトリ構造（セクション4）が最新か
- [ ] アーキテクチャ図（セクション5.1）がコードと一致するか
- [ ] 主要コンポーネントの説明（セクション6）が正確か
- [ ] パターン説明（セクション7）のコード例が正しいか
- [ ] フロー追跡例（セクション8）が実際の処理と一致するか
- [ ] 用語集（付録A）の定義が正確か
