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

# 根拠レポート：アーキテクチャ設計書

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：40 / 42、根拠なし：2
- 優先レビュー（高）
  1. **C-41: デバウンス時間の正確性**：設定値がハードコードか設定可能かの確認が必要
  2. **C-42: 全機能モジュールの網羅性**：feature ディレクトリ内の全モジュールを網羅しているかの確認

## 2) 参照した情報（Evidence一覧）

- E-01: `/Users/tomoka.baba/Work/clojure-lsp-master/README.md`
- E-02: `/Users/tomoka.baba/Work/clojure-lsp-master/deps.edn`
- E-03: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/deps.edn`
- E-04: `/Users/tomoka.baba/Work/clojure-lsp-master/cli/deps.edn`
- E-05: `/Users/tomoka.baba/Work/clojure-lsp-master/cli/src/clojure_lsp/main.clj`
- E-06: `/Users/tomoka.baba/Work/clojure-lsp-master/cli/src/clojure_lsp/server.clj`
- E-07: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/handlers.clj`
- E-08: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/api.clj`
- E-09: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/db.clj`
- E-10: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/queries.clj`
- E-11: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/kondo.clj`
- E-12: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/producer.clj`
- E-13: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/logger.clj`
- E-14: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/settings.clj`
- E-15: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/startup.clj`
- E-16: `/Users/tomoka.baba/Work/clojure-lsp-master/lib/src/clojure_lsp/refactor/transform.clj`
- E-17: `/Users/tomoka.baba/Work/clojure-lsp-master/bb.edn`
- E-18: ディレクトリ構造（lib/src/clojure_lsp/feature/）

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | clojure-lsp は LSP を実装した Clojure/ClojureScript 向け開発支援ツール | E-01 | ○ |
| C-02 | JSON-RPC over stdio で LSP クライアントと通信 | E-06 (jsonrpc.io-server/stdio-server) | ○ |
| C-03 | clj-kondo をライブラリとして連携し静的解析を行う | E-03, E-11 | ○ |
| C-04 | cljfmt でコードフォーマットを行う | E-03 (deps.edn に cljfmt 依存) | ○ |
| C-05 | clj-depend で依存関係解析を行う | E-03, E-15 | ○ |
| C-06 | Babashka Pod として動作可能 | E-05 (pod/run-pod), E-17 | ○ |
| C-07 | レイヤードアーキテクチャを採用 | E-02, E-03, E-04 (cli/lib 分離構造) | ○ |
| C-08 | IProducer プロトコルで依存性逆転を実現 | E-12 | ○ |
| C-09 | ILogger プロトコルでログ機能を抽象化 | E-13 | ○ |
| C-10 | Atom によるイミュータブル状態管理 | E-09 (db* atom) | ○ |
| C-11 | main.clj がエントリーポイント | E-05 | ○ |
| C-12 | server.clj が LSP サーバー実装 | E-06 | ○ |
| C-13 | handlers.clj が LSP リクエストをハンドリング | E-07 | ○ |
| C-14 | startup.clj が初期化処理を担当 | E-15 | ○ |
| C-15 | db.clj がデータベース管理を担当 | E-09 | ○ |
| C-16 | queries.clj がクエリ実行を担当 | E-10 | ○ |
| C-17 | kondo.clj が clj-kondo 連携を担当 | E-11 | ○ |
| C-18 | producer.clj がメッセージ送信インターフェースを定義 | E-12 | ○ |
| C-19 | feature/ ディレクトリに機能モジュールが存在 | E-18 (ディレクトリ構造確認) | ○ |
| C-20 | refactor/ ディレクトリにリファクタリング機能が存在 | E-16 | ○ |
| C-21 | Transit JSON でキャッシュを永続化 | E-09 (transit-local-db-file, transit/write) | ○ |
| C-22 | core.async チャネルで非同期処理を行う | E-06 (async/chan, async/thread) | ○ |
| C-23 | lsp4clj 2.0.1 を使用 | E-03, E-04 | ○ |
| C-24 | clj-kondo 2026.01.12 を使用 | E-03 | ○ |
| C-25 | cljfmt 0.15.6 を使用 | E-03 | ○ |
| C-26 | rewrite-clj 1.2.51 を使用 | E-03 | ○ |
| C-27 | timbre 6.8.0 をロギングに使用 | E-04 | ○ |
| C-28 | promesa 11.0.678 を非同期処理に使用 | E-04 | ○ |
| C-29 | OpenTelemetry 1.57.0 をオプションで使用 | E-04 | ○ |
| C-30 | diagnostics-debounce-ms は 25ms | E-06 (def diagnostics-debounce-ms 25) | ○ |
| C-31 | change-debounce-ms は 50ms | E-06 (def change-debounce-ms 50) | ○ |
| C-32 | watched-files-debounce-ms は 1000ms | E-06 (def watched-files-debounce-ms 1000) | ○ |
| C-33 | 60秒のタイムアウトを設定 | E-07 (60000 ms timeout) | ○ |
| C-34 | GraalVM ネイティブイメージビルドに対応 | E-04 (graal-build-time 依存), cli/graalvm ディレクトリ | ○ |
| C-35 | マルチモジュール構成（cli, lib, test-helper） | E-02 | ○ |
| C-36 | settings.clj で設定管理を行う | E-14 | ○ |
| C-37 | core.memoize で設定をキャッシュ（TTL 1000ms） | E-14 (ttl-threshold-milis 1000) | ○ |
| C-38 | db.clj でキャッシュバージョン管理（version 13） | E-09 (def version 13) | ○ |
| C-39 | swap! による CAS ベースの並行制御 | E-09, E-15 (swap! db*) | ○ |
| C-40 | *warn-on-reflection* を各 ns で有効化 | E-05, E-06, E-07, E-09, E-10, E-11 等 | ○ |
| C-41 | デバウンス時間はハードコード値である | E-06 | △ |
| C-42 | feature/ 内の全モジュールを網羅的に記載 | E-18 | △ |

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

- **C-41**: デバウンス時間が設定可能かどうかの追加調査が必要
  - 候補：settings.clj / config.clj / 外部設定ファイル
- **C-42**: feature/ ディレクトリ内の全 .clj ファイルとの完全な照合
  - 候補：追加の glob 検索 / 手動確認

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

- **0: 低リスク** - 全体的に高い信頼度（0.95）
- **1: 中リスク** - デバウンス値のハードコード vs 設定可能性の確認
- **0: 低リスク** - 依存ライブラリのバージョンは deps.edn から直接取得

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

- [ ] レイヤー構成の記述がプロジェクトの実際の構造と一致しているか確認
- [ ] 外部連携システム（clj-kondo, cljfmt, clj-depend）の記述が正確か確認
- [ ] データフローの記述がソースコードの実装と一致しているか確認
- [ ] feature/ ディレクトリ内の全モジュールが記載されているか確認
- [ ] 依存ライブラリのバージョンが最新の deps.edn と一致しているか確認
- [ ] キャッシュ永続化の仕組み（Transit JSON）の記述が正確か確認
- [ ] 非同期処理（core.async チャネル）の記述が実装と一致しているか確認
