---
generated_at: 2026-02-20 12:00:00
metrics:
  claims_total: 30
  claims_with_evidence: 26
  claims_without_evidence: 4
confidence_derived: 0.87
---

# 根拠レポート：インフラ設計書

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.87**
  - 根拠あり：26 / 30、根拠なし：4
- 優先レビュー（高）
  1. **エディタ側の自動再起動機能**：根拠不足（serve-dリポジトリ内にはcode-d側の再起動ロジックは含まれない）
  2. **nightlyリリースの上書き動作**：根拠不足（deploy-nightlyアクションの挙動はアクション側の実装に依存）
  3. **DUB Registryへの接続方式**：根拠不足（DUBパッケージマネージャーの内部通信の詳細はserve-d側のコードには含まれない）
  4. **GitHub Actionsキャッシュの保持ポリシー**：根拠不足（GitHub側のポリシーに依存）

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

- E-01: `.github/workflows/nightly.yml` - ナイトリービルドワークフロー定義
- E-02: `.github/workflows/releases.yml` - 安定版リリースワークフロー定義
- E-03: `.github/workflows/unittest.yml` - ユニットテストワークフロー定義
- E-04: `dub.json` - メインパッケージ定義（依存関係・サブパッケージ・ビルド設定）
- E-05: `dub.selections.json` - 依存関係のバージョン固定ファイル
- E-06: `source/app.d` - アプリケーションエントリーポイント
- E-07: `serverbase/source/served/serverbase.d` - LSPサーバー基盤（stdin/stdout RPC、Fiber管理、GC設定）
- E-08: `lsp/source/served/lsp/jsonrpc.d` - JSON-RPC通信実装
- E-09: `http/source/served/http.d` - HTTPダウンロード実装（WinHTTP/requestsライブラリ）
- E-10: `ci/build.sh` - Linux/macOSビルドスクリプト
- E-11: `ci/build.bat` - Windowsビルドスクリプト
- E-12: `README.md` - プロジェクト概要・使用方法・カスタムリクエスト仕様
- E-13: `release.sh` - ローカルリリースビルドスクリプト
- E-14: `workspace-d/.env.fish` - 開発用環境設定

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | serve-dはローカルプロセスとして動作するLSPサーバーである | E-06, E-07, E-12 | ○ |
| C-02 | stdin/stdoutを介したJSON-RPC通信でLSPを実装 | E-07, E-08 | ○ |
| C-03 | GitHub Actionsでマルチプラットフォームビルドを自動化 | E-01, E-02, E-03 | ○ |
| C-04 | CI/CDランナーはubuntu-22.04、macos-latest、windows-latestを使用 | E-01, E-02, E-03 | ○ |
| C-05 | macOS arm64向けはクロスコンパイルで対応 | E-01 (cross: "1") | ○ |
| C-06 | WindowsではWinHTTP APIでHTTP通信を行う | E-09 (version(Windows) pragma(lib, "wininet")) | ○ |
| C-07 | 非WindowsOSではrequestsライブラリでHTTP通信を行う | E-09, E-05 (requests: "2.2.0") | ○ |
| C-08 | LDC latestをリリースビルドに使用 | E-01, E-02 (compiler: ldc-latest) | ○ |
| C-09 | DMD latestをユニットテストに使用 | E-03 (dc: [dmd-latest, ldc-latest]) | ○ |
| C-10 | DUB 1.40.0を依存関係管理に使用 | E-05 (dub: "1.40.0") | ○ |
| C-11 | DCD 0.16.2をコード補完に使用 | E-05 (dcd: "0.16.2") | ○ |
| C-12 | D-Scanner 0.16.0-beta.5を静的解析に使用 | E-05 (dscanner: "0.16.0-beta.5") | ○ |
| C-13 | dfmt 0.15.2をコードフォーマットに使用 | E-05 (dfmt: "0.15.2") | ○ |
| C-14 | Windows向けビルドでSSL関連DLLを同梱 | E-11 (7z a serve-d.zip serve-d.exe libcurl.dll libeay32.dll ssleay32.dll) | ○ |
| C-15 | Linux向けビルドでstripによるデバッグシンボル除去を実施 | E-10 (strip serve-d) | ○ |
| C-16 | macOS向けビルドでMACOSX_DEPLOYMENT_TARGET=10.12を設定 | E-01, E-02, E-03 | ○ |
| C-17 | ナイトリービルドはcron '0 2 * * *'で実行 | E-01 (schedule: cron: '0 2 * * *') | ○ |
| C-18 | workflow_dispatchによる手動実行が可能 | E-01 (workflow_dispatch) | ○ |
| C-19 | fail-fast: falseにより1プラットフォーム失敗時も他は継続 | E-01, E-02, E-03 (fail-fast: false) | ○ |
| C-20 | Fiberベースの並行処理を実装 | E-07 (FiberManager, pushFiber) | ○ |
| C-21 | ページサイズ4096バイト、デフォルトページ数20 | E-07 (defaultPages = 20, fiberPageSize = 4096) | ○ |
| C-22 | 30秒ごとのGC.collect、5回に1回のGC.minimize | E-07 (gcCollectSeconds = 30, gcMinimizeTimes = 5) | ○ |
| C-23 | 致命的エラー時もエラーメッセージ通知しつつ動作継続する設計 | E-07 (gotRequest/gotNotifyのThrowable catch) | ○ |
| C-24 | エディタ側（code-d等）がserve-dの異常終了を検知し自動再起動する | **根拠なし** | △ |
| C-25 | ナイトリーリリースは上書き方式（最新のみ保持） | **根拠なし** | △ |
| C-26 | --logfileオプションでファイルログ出力可能 | E-06 (setLogFile関数) | ○ |
| C-27 | served/getInfoリクエストでランタイム診断情報を取得可能 | E-12 (served/getInfo記載) | ○ |
| C-28 | DUB Registryへの接続はHTTPS | **根拠なし** | △ |
| C-29 | GitHub Actionsキャッシュの保持はGitHubポリシーに依存 | **根拠なし** | △ |
| C-30 | リリースビルド時にci/validate_version.dでバージョン検証を実行 | E-02 (./ci/build.sh && rdmd ci/validate_version.d) | ○ |

## 4) 不足情報（Unknown / Missing）
- C-24: エディタ側の自動再起動機能はcode-dリポジトリ側の実装であり、serve-dリポジトリ内にはその実装コードは含まれない。
  - 候補：code-dリポジトリのソースコード / VS Code LSPクライアントのドキュメント / code-d package.json
- C-25: deploy-nightlyアクション（WebFreak001/deploy-nightly@master）の具体的な動作（上書き/追記）はアクション側の実装に依存する。リリースIDが固定されている点から上書き動作と推測。
  - 候補：WebFreak001/deploy-nightlyリポジトリのREADME / ソースコード
- C-28: DUBパッケージマネージャーがレジストリとHTTPS通信する点はDUBの一般的な仕様であるが、serve-dのコード内には直接的な根拠がない。
  - 候補：DUBドキュメント / DUBソースコード
- C-29: GitHub Actionsキャッシュのポリシーはserve-dリポジトリ外の情報であり、GitHub Actionsのドキュメントに依存する。
  - 候補：GitHub Actionsドキュメント / WebFreak001/dub-upgradeアクションのドキュメント

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 本プロジェクトはローカル実行型アプリケーションであり、サーバーインフラが存在しないため、インフラ設計書としてはCI/CD中心の構成となっている。この点をレビュアーが認識していれば問題ない。
- 1: 中リスク - ナイトリーリリースのリリースID（20717582）がハードコーディングされている。このIDが変更された場合のナイトリー配布への影響を確認すべき。
- 1: 中リスク - Windows向けビルドで同梱されるSSL関連DLL（libeay32.dll, ssleay32.dll）はOpenSSL 1.x系の古いライブラリ名であり、セキュリティ上の懸念がある可能性がある。

## 6) レビュアーチェックリスト（最小）
- [ ] serve-dがローカルプロセスとして動作し、サーバーインフラを持たないという前提が、プロジェクトの実態と一致しているか確認する
- [ ] CI/CDワークフロー（nightly.yml, releases.yml, unittest.yml）の内容が最新のリポジトリ状態と一致しているか確認する
- [ ] 依存パッケージのバージョン（dub.selections.json記載）が最新の状態を反映しているか確認する
- [ ] ナイトリーリリースの配布先リリースID（20717582）が現在も有効であることを確認する
- [ ] macOS arm64向けクロスコンパイルの設定が正しく機能しているか確認する
- [ ] Windows向けビルドに同梱されるSSL DLLのバージョンとセキュリティ状況を確認する
- [ ] code-d側のserve-dプロセス再起動機能の有無を確認する（C-24）
