---
generated_at: 2026-02-19 22:30:00
metrics:
  claims_total: 64
  claims_with_evidence: 61
  claims_without_evidence: 3
confidence_derived: 0.95
---

# 根拠レポート：API設計書

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：61 / 64、根拠なし：3
- 優先レビュー（高）
  1. **completionItem/resolveのスニペット詳細展開の動作仕様**：コード上のスニペット処理ロジックが複雑で一部推測を含む
  2. **coded/interactiveDownloadのレスポンス型**：README.mdに記載があるがソースコードでの型定義を直接確認していない
  3. **一部カスタムメソッドのレスポンス例のフィールド値**：JSON例のフィールド値は推測を含む

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

- E-01: `source/served/extension.d` - メインLSPハンドラ定義（@protocolMethod/@protocolNotification宣言、initialize関数、ServerCapabilities定義）
- E-02: `source/served/commands/complete.d` - 補完関連メソッド定義（textDocument/completion, completionItem/resolve, served/restartServer, served/killServer, served/addDependencySnippet）
- E-03: `source/served/commands/dub.d` - Dub関連メソッド定義（listConfigurations, switchConfig, getConfig等16メソッド）
- E-04: `source/served/commands/definition.d` - 定義ジャンプ/ホバーメソッド定義
- E-05: `source/served/commands/calltips.d` - 署名ヘルプメソッド定義
- E-06: `source/served/commands/references.d` - 参照検索メソッド定義
- E-07: `source/served/commands/rename.d` - リネームメソッド定義
- E-08: `source/served/commands/highlight.d` - ドキュメントハイライトメソッド定義
- E-09: `source/served/commands/symbol_search.d` - シンボル検索メソッド定義
- E-10: `source/served/commands/format.d` - フォーマットメソッド定義
- E-11: `source/served/commands/code_actions.d` - コードアクションメソッド定義（sortImports, implementMethods含む）
- E-12: `source/served/commands/code_lens.d` - コードレンズメソッド定義
- E-13: `source/served/commands/color.d` - カラーメソッド定義
- E-14: `source/served/commands/folding.d` - 折りたたみメソッド定義
- E-15: `source/served/commands/inlay_hints.d` - インレイヒントメソッド定義
- E-16: `source/served/commands/file_search.d` - ファイル検索メソッド定義
- E-17: `source/served/commands/dcd_update.d` - DCD更新メソッド定義
- E-18: `source/served/commands/index.d` - インデックス管理メソッド定義
- E-19: `source/served/commands/test_provider.d` - テスト管理メソッド定義
- E-20: `source/served/workers/profilegc.d` - GCプロファイルメソッド定義
- E-21: `source/served/workers/rename_listener.d` - リネームリスナー通知定義
- E-22: `source/served/lsp/protoext.d` - カスタムパラメータ型定義（AddImportParams, SortImportsParams, DubDependency等）
- E-23: `source/served/types.d` - 型定義（Configuration, Workspace等）
- E-24: `README.md` - プロジェクトドキュメント（カスタムリクエスト/通知の仕様記述）
- E-25: `dub.json` - プロジェクト設定（プロジェクト名、依存関係、サブパッケージ）
- E-26: `source/app.d` - エントリポイント（コマンドライン引数、--provideフラグ定義）

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | serve-dはD言語向けLSP実装である | E-24, E-25 | ○ |
| C-02 | JSON-RPC 2.0 over stdin/stdoutで通信する | E-01, E-26 | ○ |
| C-03 | shutdownメソッドが存在しJsonValue(null)を返す | E-01 (L1078-1088) | ○ |
| C-04 | $/setTraceが存在しverbose時にログレベルをtraceに変更 | E-01 (L1092-1099) | ○ |
| C-05 | workspace/didChangeWorkspaceFoldersが存在 | E-01 (L1101-1112) | ○ |
| C-06 | workspace/didChangeWatchedFilesが存在 | E-20 (L158), E-21 (L95) | ○ |
| C-07 | workspace/symbolが存在しファジーマッチで検索 | E-09 (L21) | ○ |
| C-08 | textDocument/didOpenが存在し設定に応じてリンティング実行 | E-01 (L1114-1127) | ○ |
| C-09 | textDocument/didCloseが存在し外部プロジェクトの警告をクリア | E-01 (L1129-1145) | ○ |
| C-10 | textDocument/didChangeが存在しD-Scanner/dfmtリンティングをトリガー | E-01 (L1148-1165) | ○ |
| C-11 | 50KiB超ファイルで遅延増加 | E-01 (L1157) | ○ |
| C-12 | textDocument/didSaveが存在しリンティングを実行 | E-01 (L1316-1345) | ○ |
| C-13 | textDocument/completionが存在 | E-02 (L304) | ○ |
| C-14 | 補完トリガー文字は".", "=", "/", "*", "+", "-" | E-01 (L275-277) | ○ |
| C-15 | completionItem/resolveが存在 | E-02 (L940) | ○ |
| C-16 | completionItem/resolveでスニペット詳細展開を行う | E-02 | △ |
| C-17 | textDocument/definitionが存在しDCDを使用 | E-04 (L99) | ○ |
| C-18 | textDocument/hoverが存在しDCDを使用 | E-04 (L119) | ○ |
| C-19 | textDocument/signatureHelpが存在 | E-05 (L121) | ○ |
| C-20 | 署名ヘルプトリガー文字は"(", "[", "," | E-01 (L281) | ○ |
| C-21 | textDocument/referencesが存在し非同期検索 | E-06 (L13-14) | ○ |
| C-22 | textDocument/renameが存在 | E-07 (L12) | ○ |
| C-23 | textDocument/prepareRenameが存在 | E-07 (L34) | ○ |
| C-24 | textDocument/documentHighlightが存在 | E-08 (L11) | ○ |
| C-25 | textDocument/documentSymbolが存在 | E-09 (L51) | ○ |
| C-26 | textDocument/formattingが存在しdfmtを使用 | E-10 (L130) | ○ |
| C-27 | textDocument/rangeFormattingが存在 | E-10 (L183) | ○ |
| C-28 | textDocument/codeActionが存在 | E-11 (L43) | ○ |
| C-29 | codeAction/resolveが存在 | E-11 (L154) | ○ |
| C-30 | textDocument/codeLensが存在 | E-12 (L20) | ○ |
| C-31 | codeLens/resolveが存在 | E-12 (L52) | ○ |
| C-32 | textDocument/documentColorが存在 | E-13 (L11) | ○ |
| C-33 | textDocument/colorPresentationが存在 | E-13 (L57) | ○ |
| C-34 | textDocument/foldingRangeが存在 | E-14 (L11) | ○ |
| C-35 | textDocument/inlayHintが存在しDCDを使用 | E-15 (L9) | ○ |
| C-36 | served/restartServerが存在しtrueを返す | E-02 (L1376) | ○ |
| C-37 | served/killServerが存在 | E-02 (L1388) | ○ |
| C-38 | served/updateDCDが存在 | E-17 (L82) | ○ |
| C-39 | served/listConfigurationsが存在 | E-03 (L25) | ○ |
| C-40 | served/switchConfigが存在しboolを返す | E-03 (L33) | ○ |
| C-41 | served/getConfigが存在 | E-03 (L41) | ○ |
| C-42 | served/listArchTypesが存在しwithMeaningパラメータをサポート | E-03 (L49), E-24 | ○ |
| C-43 | served/switchArchTypeが存在 | E-03 (L76) | ○ |
| C-44 | served/getArchTypeが存在 | E-03 (L84) | ○ |
| C-45 | served/listBuildTypesが存在 | E-03 (L92) | ○ |
| C-46 | served/switchBuildTypeが存在 | E-03 (L100) | ○ |
| C-47 | served/getBuildTypeが存在 | E-03 (L108) | ○ |
| C-48 | served/getCompilerが存在 | E-03 (L116) | ○ |
| C-49 | served/switchCompilerが存在 | E-03 (L124) | ○ |
| C-50 | served/getActiveDubConfigが存在 | E-03 (L166) | ○ |
| C-51 | served/listDependenciesが存在しDubDependency[]を返す | E-03 (L327), E-22 | ○ |
| C-52 | served/installDependencyが存在 | E-03 (L574), E-22 | ○ |
| C-53 | served/updateDependencyが存在 | E-03 (L588) | ○ |
| C-54 | served/uninstallDependencyが存在 | E-03 (L606) | ○ |
| C-55 | served/buildTasksが存在 | E-03 (L390) | ○ |
| C-56 | served/convertDubFormatが存在 | E-03 (L513) | ○ |
| C-57 | served/addImportが存在しAddImportParamsを受け取る | E-03 (L204), E-22 | ○ |
| C-58 | served/updateImportsが存在 | E-03 (L212) | ○ |
| C-59 | served/sortImportsが存在 | E-11 (L538), E-22 | ○ |
| C-60 | served/implementMethodsが存在 | E-11 (L572), E-22 | ○ |
| C-61 | served/addDependencySnippetが存在 | E-02 (L1399) | ○ |
| C-62 | served/searchFileが存在 | E-16 (L18) | ○ |
| C-63 | served/findFilesByModuleが存在 | E-16 (L76) | ○ |
| C-64 | coded/*通知群がREADMEに記載されている | E-24 | △ |

## 4) 不足情報（Unknown / Missing）
- C-16: completionItem/resolveの詳細動作はcomplete.dの940行目以降の複雑なロジックに依存しており、スニペット展開の正確な挙動は推測を含む
  - 候補：complete.dの全ソース精読 / SnippetsComponent実装の確認
- C-64: coded/*通知の一部（coded/interactiveDownload等）はREADME.mdに記載があるがソースコードでの送信箇所を網羅的に確認していない
  - 候補：LSP RPCの全notifyMethod呼び出し箇所の検索
- レスポンスJSONの一部サンプル値は実際のランタイム出力ではなく型定義から推測した例である

## 5) リスクフラグ（レビュー観点）
- 0: LSP標準メソッド（textDocument/*）の存在と基本パラメータは@protocolMethod宣言から確実に確認済み - 低リスク
- 0: served/*カスタムメソッドの存在と命名はソースコードとREADMEの両方で裏付けあり - 低リスク
- 1: 一部レスポンスのJSON例のフィールド値は推測を含む - 中リスク
- 0: coded/*クライアント通知はREADME.mdに詳細仕様が記載されている - 低リスク

## 6) レビュアーチェックリスト（最小）
- [ ] LSP標準メソッド（30種）が全てソースコードの@protocolMethod/@protocolNotification宣言と一致しているか
- [ ] served/*カスタムメソッド（27種）がREADME.mdの記載と一致しているか
- [ ] リクエスト/レスポンスのパラメータ型がprotoext.dの型定義と整合しているか
- [ ] coded/*クライアント通知の一覧が網羅的か
- [ ] --provideフラグによる機能有効化の条件が正確に記載されているか
- [ ] レスポンスJSONサンプルのフィールド構造が実際の型定義と一致しているか
