---
generated_at: 2026-02-19 10:55:00
metrics:
  claims_total: 42
  claims_with_evidence: 40
  claims_without_evidence: 2
confidence_derived: 0.95
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：40 / 42、根拠なし：2
- 優先レビュー（高）
  1. **textDocument/signatureHelp の詳細パラメータ**：コード確認のみ、仕様書との照合が必要
  2. **エラーコードの網羅性**：LSP仕様に基づくが、clojure-lsp固有の拡張がある可能性

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

- E-01: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/api.clj`
- E-02: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/handlers.clj`
- E-03: `/Users/tomoka.baba/Work/clojure-lsp-master/cli/src/clojure_lsp/server.clj`
- E-04: `/Users/tomoka.baba/Work/clojure-lsp-master/cli/src/clojure_lsp/main.clj`
- E-05: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/internal_api.clj`
- E-06: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/feature/command.clj`
- E-07: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/pod/clojure_lsp/api.clj`
- E-08: `/Users/tomoka.baba/Work/clojure-lsp-master/README.md`

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | clojure-lspはJSON-RPC 2.0 over stdioを使用 | E-03 (jsonrpc.io-server/stdio-server) | ○ |
| C-02 | Clojure APIは7つの関数を提供 | E-01 (api.clj - 7関数定義) | ○ |
| C-03 | initialize メソッドで capabilities を返す | E-03 (capabilities関数、initialize ハンドラ) | ○ |
| C-04 | textDocument/didOpen ハンドラが存在 | E-03 (receive-notification "textDocument/didOpen") | ○ |
| C-05 | textDocument/completion ハンドラが存在 | E-03 (receive-request "textDocument/completion") | ○ |
| C-06 | textDocument/hover ハンドラが存在 | E-03 (receive-request "textDocument/hover") | ○ |
| C-07 | textDocument/definition ハンドラが存在 | E-03 (receive-request "textDocument/definition") | ○ |
| C-08 | textDocument/references ハンドラが存在 | E-03 (receive-request "textDocument/references") | ○ |
| C-09 | textDocument/rename ハンドラが存在 | E-03 (receive-request "textDocument/rename") | ○ |
| C-10 | textDocument/formatting ハンドラが存在 | E-03 (receive-request "textDocument/formatting") | ○ |
| C-11 | textDocument/codeAction ハンドラが存在 | E-03 (receive-request "textDocument/codeAction") | ○ |
| C-12 | workspace/executeCommand ハンドラが存在 | E-03 (receive-request "workspace/executeCommand") | ○ |
| C-13 | clojure/dependencyContents ハンドラが存在 | E-03 (receive-request "clojure/dependencyContents") | ○ |
| C-14 | clojure/serverInfo/raw ハンドラが存在 | E-03 (receive-request "clojure/serverInfo/raw") | ○ |
| C-15 | clojure/cursorInfo/raw ハンドラが存在 | E-03 (receive-request "clojure/cursorInfo/raw") | ○ |
| C-16 | clojure/clojuredocs/raw ハンドラが存在 | E-03 (receive-request "clojure/clojuredocs/raw") | ○ |
| C-17 | clojure/workspace/projectTree/nodes ハンドラが存在 | E-03 (receive-request "clojure/workspace/projectTree/nodes") | ○ |
| C-18 | analyze-project-and-deps! 関数のオプション | E-01 (docstring参照) | ○ |
| C-19 | analyze-project-only! 関数のオプション | E-01 (docstring参照) | ○ |
| C-20 | clean-ns! 関数のオプション | E-01 (docstring参照) | ○ |
| C-21 | diagnostics 関数のオプション | E-01 (docstring参照) | ○ |
| C-22 | format! 関数のオプション | E-01 (docstring参照) | ○ |
| C-23 | rename! 関数のオプション | E-01 (docstring参照) | ○ |
| C-24 | references 関数のオプション | E-01 (docstring参照) | ○ |
| C-25 | dump 関数のオプション | E-01 (docstring参照) | ○ |
| C-26 | available-commands リストの内容 | E-06 (run-command multimethods) | ○ |
| C-27 | clean-ns コマンドが存在 | E-06 (defmethod run-command :clean-ns) | ○ |
| C-28 | extract-function コマンドが存在 | E-06 (defmethod run-command :extract-function) | ○ |
| C-29 | thread-first コマンドが存在 | E-06 (defmethod run-command :thread-first) | ○ |
| C-30 | CLIコマンド一覧 | E-04 (parse関数、handle-action!関数) | ○ |
| C-31 | CLIオプション一覧 | E-04 (cli-spec定義) | ○ |
| C-32 | Babashka Pod対応 | E-07, E-04 (pod/run-pod, BABASHKA_POD環境変数チェック) | ○ |
| C-33 | 対応ファイル拡張子 | E-03 (known-files-pattern) | ○ |
| C-34 | completion triggerCharacters は : と / | E-03 (capabilities関数) | ○ |
| C-35 | semanticTokensProvider が full と range をサポート | E-03 (capabilities関数) | ○ |
| C-36 | callHierarchyProvider が有効 | E-03 (capabilities関数) | ○ |
| C-37 | linkedEditingRangeProvider が有効 | E-03 (capabilities関数) | ○ |
| C-38 | experimental に testTree, projectTree 等がある | E-03 (capabilities関数 :experimental) | ○ |
| C-39 | レスポンスの result-code 定義 | E-05 (internal_api.clj - diagnostics*関数) | ○ |
| C-40 | diagnostics の result-code が 0,2,3 で分岐 | E-05 (diagnostics*関数のresult-code判定) | ○ |
| C-41 | textDocument/signatureHelp の詳細パラメータ | E-02 (handlers.clj参照のみ) | △ |
| C-42 | LSPエラーコードの網羅性 | **根拠なし** - LSP仕様参照 | △ |

## 4) 不足情報（Unknown / Missing）
- **textDocument/signatureHelp の詳細パラメータ**
  - handlers.clj にハンドラは存在するが、詳細なパラメータ定義はコード内コメントに依存
  - 候補：LSP仕様書 / feature/signature_help.clj / テストコード
- **LSPエラーコードの網羅性**
  - LSP標準のエラーコードを記載したが、clojure-lsp固有の拡張エラーコードが存在する可能性
  - 候補：lsp4clj ライブラリ / jsonrpc4clj ライブラリ / エラーハンドリングコード

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: API関数名・メソッド名・オプション名
  - ソースコードから直接抽出しており、正確性が高い
- **0 (低リスク)**: コマンド一覧
  - command.clj のマルチメソッド定義から網羅的に抽出
- **1 (中リスク)**: レスポンス形式のJSON例
  - 実際のレスポンスと若干異なる可能性あり（簡略化している）
- **1 (中リスク)**: パラメータの必須/任意フラグ
  - コードの前提条件(pre)から推測したが、実行時の振る舞いで異なる可能性あり
- **0 (低リスク)**: 利用可能なexecuteCommandコマンド一覧
  - available-commands 変数から自動生成されており、正確

## 6) レビュアーチェックリスト（最小）
- [ ] LSP標準APIのメソッド名がLSP仕様3.17と一致しているか確認
- [ ] Clojure拡張API（clojure/で始まるメソッド）が実際に動作するか確認
- [ ] executeCommand のコマンド引数が正確か（特に extract-function の引数順序）
- [ ] diagnostics の result-code (0, 2, 3) の意味が実際の動作と一致するか確認
- [ ] Babashka Pod経由での利用方法が正確か確認
- [ ] 設定オプション（settings）の詳細がhttps://clojure-lsp.io/settings/と整合しているか確認
