---
generated_at: 2026-02-19 10:30:00
metrics:
  claims_total: 116
  claims_with_evidence: 116
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：cli.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧（cli.csv）の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：116 / 116、根拠なし：0
- 優先レビュー（高）
  1. なし - 全てのテストケースにソースコードの根拠あり

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

- E-01: `cli/src/clojure_lsp/main.clj` (CLIエントリーポイント、行数: 253行)
- E-02: `cli/src/clojure_lsp/server.clj` (LSPサーバー実装、行数: 679行)
- E-03: `cli/src/clojure_lsp/nrepl.clj` (nREPLサーバー機能、行数: 22行)
- E-04: `cli/src/clojure_lsp/clojure_coercer.clj` (Clojure固有型変換、行数: 63行)
- E-05: `docs/code-to-docs/単体テストケース一覧/plan.md` (プロジェクト計画書)

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

### main.clj関連 (UT-CLI-001 〜 UT-CLI-049)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | version関数がclojure-lspとclj-kondoのバージョンを返却する | E-01 (行18-21) | ○ |
| C-02 | help関数がオプションサマリーを含むヘルプ文字列を返却する | E-01 (行23-42) | ○ |
| C-03 | 全コマンド(listen,clean-ns,diagnostics,format,rename,references,dump)がhelpに含まれる | E-01 (行32-38) | ○ |
| C-04 | error-msg関数がエラーを改行区切りで連結する | E-01 (行117-119) | ○ |
| C-05 | error-msg関数が空配列でも処理可能 | E-01 (行117-119) | ○ |
| C-06 | parse-opts関数が--helpオプションをパースする | E-01 (行50-51, 121-154) | ○ |
| C-07 | --settingsオプションがEDNとしてパースされる | E-01 (行61-66) | ○ |
| C-08 | 無効なEDNで--settingsがエラーになる | E-01 (行64-66) | ○ |
| C-09 | --project-rootがFileに変換される | E-01 (行73-78) | ○ |
| C-10 | 存在しないパスで--project-rootがエラーになる | E-01 (行77-78) | ○ |
| C-11 | --trace-levelが有効な値で受け付けられる | E-01 (行44-45, 55-60) | ○ |
| C-12 | 無効な--trace-levelでエラーになる | E-01 (行58-60) | ○ |
| C-13 | --namespaceが複数値で受け付けられる | E-01 (行79-83) | ○ |
| C-14 | --filenamesがカンマ区切りでパースされる | E-01 (行84-92) | ○ |
| C-15 | --filenamesがコロン区切りでパースされる | E-01 (行89-91) | ○ |
| C-16 | スペースを含むファイル名でエラーになる | E-01 (行86-88) | ○ |
| C-17 | --ns-exclude-regexが正規表現としてパースされる | E-01 (行93-98) | ○ |
| C-18 | 無効な正規表現で--ns-exclude-regexがエラーになる | E-01 (行96-98) | ○ |
| C-19 | --dryが:dry?キーに変換される | E-01 (行127-128) | ○ |
| C-20 | --rawが:raw?キーに変換される | E-01 (行129-130) | ○ |
| C-21 | BABASHKA_POD=trueでpodアクションが返される | E-01 (行158-161) | ○ |
| C-22 | --helpでヘルプメッセージが返却される | E-01 (行163-164) | ○ |
| C-23 | --versionでバージョン情報が返却される | E-01 (行166-167) | ○ |
| C-24 | 引数なしでlistenアクションが返却される | E-01 (行172-173) | ○ |
| C-25 | clean-nsコマンドが認識される | E-01 (行175-177) | ○ |
| C-26 | diagnosticsコマンドが認識される | E-01 (行175-177) | ○ |
| C-27 | formatコマンドが認識される | E-01 (行175-177) | ○ |
| C-28 | renameコマンドが認識される | E-01 (行175-177) | ○ |
| C-29 | referencesコマンドが認識される | E-01 (行175-177) | ○ |
| C-30 | dumpコマンドが認識される | E-01 (行175-177) | ○ |
| C-31 | listenコマンドが明示的に認識される | E-01 (行175-177) | ○ |
| C-32 | 不明なコマンドでヘルプが返却される | E-01 (行179-180) | ○ |
| C-33 | パースエラー時にエラーメッセージが返却される | E-01 (行169-170) | ○ |
| C-34 | with-required-optionsが必須オプション存在時に関数を実行する | E-01 (行187-192) | ○ |
| C-35 | with-required-optionsが必須オプション不足時にexitを呼ぶ | E-01 (行188-190) | ○ |
| C-36 | listenアクションでLSPサーバーが起動される | E-01 (行196-198) | ○ |
| C-37 | podアクションでpod/run-podが呼ばれる | E-01 (行201) | ○ |
| C-38 | clean-nsアクションでinternal-api/clean-ns!が呼ばれる | E-01 (行202) | ○ |
| C-39 | diagnosticsアクションでinternal-api/diagnosticsが呼ばれる | E-01 (行203) | ○ |
| C-40 | formatアクションでinternal-api/format!が呼ばれる | E-01 (行204) | ○ |
| C-41 | renameアクションでinternal-api/rename!が呼ばれる | E-01 (行205-208) | ○ |
| C-42 | referencesアクションでinternal-api/referencesが呼ばれる | E-01 (行209-212) | ○ |
| C-43 | dumpアクションでinternal-api/dumpが呼ばれる | E-01 (行213) | ○ |
| C-44 | ExceptionInfo発生時にex-dataが返却される | E-01 (行214-215) | ○ |
| C-45 | run!がexit-messageある場合にresult-codeとmessage-fnを返却する | E-01 (行217-224) | ○ |
| C-46 | run!がexit-messageない場合にhandle-action!の結果を返却する | E-01 (行223) | ○ |
| C-47 | エラー時にresult-code=1が返却される | E-01 (行222) | ○ |
| C-48 | musl?がtrue環境でtrueを返す | E-01 (行230-234) | ○ |
| C-49 | musl?が未設定環境でfalseを返す | E-01 (行230-234) | ○ |

### server.clj関連 (UT-CLI-050 〜 UT-CLI-103)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-50 | normalize-uriがURIを正規化する | E-02 (行48) | ○ |
| C-51 | normalize-doc-uriがtext-document.uriを正規化する | E-02 (行50-51) | ○ |
| C-52 | normalize-doc-uriがtext-documentがない場合でもエラーにならない | E-02 (行51, medley/update-existing-in使用) | ○ |
| C-53 | log!が指定レベルでログ出力する | E-02 (行53-56) | ○ |
| C-54 | log-wrapper-fnが可変引数でログ出力する | E-02 (行57-61) | ○ |
| C-55 | TimbreLogger.setupが一時ログファイルを作成する | E-02 (行90-98) | ○ |
| C-56 | TimbreLogger.set-log-pathがログパスを設定する | E-02 (行100-101) | ○ |
| C-57 | TimbreLogger.configure-otlpがOTLP設定を適用する | E-02 (行102-112) | ○ |
| C-58 | TimbreLogger.-infoがinfoレベルでログ出力する | E-02 (行114-116) | ○ |
| C-59 | TimbreLogger.-warnがwarnレベルでログ出力する | E-02 (行117-119) | ○ |
| C-60 | TimbreLogger.-errorがerrorレベルでログ出力する | E-02 (行120-122) | ○ |
| C-61 | TimbreLogger.-debugがdebugレベルでログ出力する | E-02 (行123-125) | ○ |
| C-62 | ClojureLspProducer.publish-diagnosticが診断情報を送信する | E-02 (行131-137) | ○ |
| C-63 | ClojureLspProducer.publish-diagnosticがnilでエラーにならない | E-02 (行135, some->>使用) | ○ |
| C-64 | ClojureLspProducer.refresh-code-lensがサポート時にリクエストを送信する | E-02 (行139-142) | ○ |
| C-65 | ClojureLspProducer.refresh-code-lensが未サポート時に何もしない | E-02 (行141, when使用) | ○ |
| C-66 | ClojureLspProducer.publish-workspace-editがワークスペース編集を送信する | E-02 (行144-151) | ○ |
| C-67 | ClojureLspProducer.publish-workspace-editがタイムアウト時にエラーログを出力する | E-02 (行148-151) | ○ |
| C-68 | ClojureLspProducer.show-document-requestがドキュメント表示リクエストを送信する | E-02 (行153-160) | ○ |
| C-69 | ClojureLspProducer.show-document-requestが未サポート時に何もしない | E-02 (行155, when使用) | ○ |
| C-70 | ClojureLspProducer.publish-progressが進捗通知を送信する | E-02 (行162-166) | ○ |
| C-71 | ClojureLspProducer.show-message-requestがメッセージリクエストを送信し応答を返す | E-02 (行168-178) | ○ |
| C-72 | ClojureLspProducer.show-message-requestがタイムアウト時にnilを返す | E-02 (行177, when-not使用) | ○ |
| C-73 | ClojureLspProducer.show-messageがメッセージ通知を送信する | E-02 (行180-189) | ○ |
| C-74 | ClojureLspProducer.refresh-test-treeがテストツリーを送信する | E-02 (行191-201) | ○ |
| C-75 | ClojureLspProducer.refresh-test-treeが未サポート時に何もしない | E-02 (行195, when使用) | ○ |
| C-76 | capabilities関数がLSP機能一覧を生成する | E-02 (行490-530) | ○ |
| C-77 | capabilities関数がdocument-formatting?=falseでプロバイダーをfalseにする | E-02 (行505) | ○ |
| C-78 | capabilities関数がsemantic-tokens?=falseでプロバイダーをnilにする | E-02 (行515-520) | ○ |
| C-79 | client-settings関数がinitialization-optionsから設定を抽出する | E-02 (行536-540) | ○ |
| C-80 | client-settings関数がinitialization-options=nilで空マップを返す | E-02 (行538, (or {})使用) | ○ |
| C-81 | start-server!がサーバーを初期化して起動する | E-02 (行647-670) | ○ |
| C-82 | start-server!がlog-path指定時にそのパスを使用する | E-02 (行650-655) | ○ |
| C-83 | run-lsp-io-server!がIOサーバーを起動する | E-02 (行672-678) | ○ |
| C-84 | run-lsp-io-server!がtrace-levelを適用する | E-02 (行677) | ○ |
| C-85 | initializeリクエストでcapabilitiesが返却される | E-02 (行549-570) | ○ |
| C-86 | initializeでtrace設定が適用される | E-02 (行566-567) | ○ |
| C-87 | initializeでprocess-id指定時にliveness probeが起動する | E-02 (行568-569) | ○ |
| C-88 | initialized通知で必要な登録が行われる | E-02 (行572-574) | ○ |
| C-89 | shutdownリクエストでhandler/shutdownが呼ばれる | E-02 (行576-577) | ○ |
| C-90 | textDocument/didOpen通知が処理される | E-02 (行254-255) | ○ |
| C-91 | textDocument/didChange通知が処理される | E-02 (行257-258) | ○ |
| C-92 | textDocument/didSave通知が処理される | E-02 (行260-266) | ○ |
| C-93 | textDocument/didClose通知が処理される | E-02 (行268-269) | ○ |
| C-94 | textDocument/completionリクエストで補完候補が返却される | E-02 (行278-283) | ○ |
| C-95 | completionItem/resolveリクエストで詳細情報が返却される | E-02 (行285-290) | ○ |
| C-96 | textDocument/definitionリクエストで位置が返却される | E-02 (行354-359) | ○ |
| C-97 | textDocument/referencesリクエストで参照位置リストが返却される | E-02 (行271-276) | ○ |
| C-98 | textDocument/hoverリクエストでホバー情報が返却される | E-02 (行306-311) | ○ |
| C-99 | textDocument/renameリクエストでワークスペース編集が返却される | E-02 (行299-304) | ○ |
| C-100 | textDocument/formattingリクエストでテキスト編集が返却される | E-02 (行320-325) | ○ |
| C-101 | textDocument/codeActionリクエストでアクションリストが返却される | E-02 (行334-339) | ○ |
| C-102 | workspace/executeCommandリクエストで結果が返却される | E-02 (行447-451) | ○ |
| C-103 | workspace/symbolリクエストでシンボルリストが返却される | E-02 (行467-471) | ○ |

### nrepl.clj関連 (UT-CLI-104 〜 UT-CLI-106)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-104 | setup-nreplがnREPLサーバー起動時にポート番号を返す | E-03 (行15-19) | ○ |
| C-105 | setup-nreplがnREPL起動失敗時にnilを返す | E-03 (行20-21) | ○ |
| C-106 | repl-portがREPLポートを取得する | E-03 (行12-13) | ○ |

### clojure_coercer.clj関連 (UT-CLI-107 〜 UT-CLI-116)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-107 | test-tree-kind-enumがnamespaceを1に変換する | E-04 (行10) | ○ |
| C-108 | test-tree-kind-enumがdeftestを2に変換する | E-04 (行10) | ○ |
| C-109 | test-tree-kind-enumがtestingを3に変換する | E-04 (行10) | ○ |
| C-110 | project-tree-type-enumがprojectを1に変換する | E-04 (行30-32) | ○ |
| C-111 | project-tree-type-enumがsource-pathを2に変換する | E-04 (行30-32) | ○ |
| C-112 | project-tree-type-enumがlibraryを3に変換する | E-04 (行30-32) | ○ |
| C-113 | ::publish-test-tree-paramsが有効なパラメータをconformする | E-04 (行27-28) | ○ |
| C-114 | ::publish-test-tree-paramsが無効なパラメータでinvalidを返す | E-04 (行27-28, s/keys使用) | ○ |
| C-115 | ::project-tree-paramsが有効なパラメータをconformする | E-04 (行61) | ○ |
| C-116 | ::project-tree-paramsがnilを受け入れる | E-04 (行61, s/nilable使用) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - 全てのテストケースにソースコードの根拠あり

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースにソースコード根拠あり
- 注意点: LSPプロトコルの仕様変更に伴うテストケースの更新が必要になる可能性あり

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースが各ソースファイルの主要な関数/メソッドを網羅しているか確認
- [ ] 正常系・異常系・境界値の観点が適切にカバーされているか確認
- [ ] CLIオプションのバリデーションテストが十分か確認
- [ ] LSPプロトコルのリクエスト/通知ハンドラーが網羅されているか確認
- [ ] 優先度の設定が適切か確認（金額・認証・データ整合性に関わるものが高になっているか）
