---
generated_at: 2026-02-19 15:30:00
metrics:
  claims_total: 28
  claims_with_evidence: 25
  claims_without_evidence: 3
confidence_derived: 0.89
---

# 根拠レポート：セキュリティ設計書

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.89**
  - 根拠あり：25 / 28、根拠なし：3
- 優先レビュー（高）
  1. **C-26: ログ保持期間「セッション中」**：ログローテーション設定の明示的な実装が未確認
  2. **C-27: PATHハイジャックリスク**：対策の有無を明示的に確認する実装が未発見
  3. **C-28: 推奨セキュリティプラクティス**：ベストプラクティスは設計者の推奨であり、コードから導出されたものではない

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

- E-01: `cli/src/clojure_lsp/server.clj` (lines 549-570) - initialize ハンドラ
- E-02: `cli/src/clojure_lsp/server.clj` (lines 567-569) - 親プロセスID監視
- E-03: `cli/src/clojure_lsp/server.clj` (lines 63-73) - conform-or-log マクロ
- E-04: `cli/src/clojure_lsp/server.clj` (lines 75-86) - ログデータ拡張
- E-05: `cli/src/clojure_lsp/server.clj` (lines 42-44) - デバウンス設定
- E-06: `lib/src/clojure_lsp/shared.clj` (lines 158-187) - URI正規化
- E-07: `lib/src/clojure_lsp/shared.clj` (lines 199-206) - URLデコード
- E-08: `lib/src/clojure_lsp/shared.clj` (lines 291-297) - external-filename?
- E-09: `lib/src/clojure_lsp/shared.clj` (lines 99-106) - slurp-uri
- E-10: `lib/src/clojure_lsp/config.clj` (lines 17-23) - read-edn-file
- E-11: `lib/src/clojure_lsp/config.clj` (lines 31-44) - global-config-file
- E-12: `lib/src/clojure_lsp/classpath.clj` (lines 52-98) - classpath-cmd処理
- E-13: `lib/src/clojure_lsp/classpath.clj` (lines 183-223) - default-project-specs
- E-14: `lib/src/clojure_lsp/http.clj` - HTTP通信実装
- E-15: `lib/src/clojure_lsp/parser.clj` (lines 94-107) - safe-zloc-of-string
- E-16: `lib/src/clojure_lsp/db.clj` (lines 65-79) - キャッシュ書き込み
- E-17: `lib/src/clojure_lsp/handlers.clj` (lines 55-96) - リクエスト待機ロジック
- E-18: `lib/src/clojure_lsp/feature/file_management.clj` (lines 37-61) - ドキュメント管理
- E-19: `lib/src/clojure_lsp/feature/file_management.clj` (lines 325-340) - ディレクトリ監視
- E-20: `lib/src/clojure_lsp/feature/completion_lib.clj` (lines 85-95) - Clojars取得

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | LSPプロトコルに準拠し明示的な認証層は未実装 | E-01 | ○ |
| C-02 | 親プロセスID監視による接続管理 | E-02 | ○ |
| C-03 | プロセス終了までのセッション有効期限 | E-01, E-02 | ○ |
| C-04 | Capabilityベースのアクセス制御 | E-01 | ○ |
| C-05 | ワークスペース外ファイルの識別機能 | E-08 | ○ |
| C-06 | 外部依存関係取得時にHTTPS使用 | E-14, E-20 | ○ |
| C-07 | HTTP接続タイムアウト1秒、読み込み30秒 | E-14 | ○ |
| C-08 | キャッシュはTransit JSON形式で平文保存 | E-16 | ○ |
| C-09 | XDG Base Directory仕様に準拠 | E-11 | ○ |
| C-10 | ログでホスト名を空文字列でマスク | E-04 | ○ |
| C-11 | LSPメッセージはclojure.specでスキーマ検証 | E-03 | ○ |
| C-12 | URI正規化・検証を実施 | E-06, E-07 | ○ |
| C-13 | EDN読み込みでリーダーマクロはre-patternのみ許可 | E-10 | ○ |
| C-14 | eval/load-file未使用、rewrite-cljによるAST解析 | E-15 | ○ |
| C-15 | コマンド引数をベクトル形式で実行 | E-12 | ○ |
| C-16 | 実行可能ファイルの完全パス探索 | E-12 | ○ |
| C-17 | 対応コマンドはclojure, lein, boot, npx, bbのみ | E-13 | ○ |
| C-18 | 環境変数の統合管理 | E-12 | ○ |
| C-19 | リクエストタイムアウト60秒 | E-17 | ○ |
| C-20 | 診断デバウンス25ms | E-05 | ○ |
| C-21 | 変更デバウンス50ms | E-05 | ○ |
| C-22 | ファイル監視デバウンス1000ms | E-05 | ○ |
| C-23 | キャッシュ書き込み前にGC実行 | E-16 | ○ |
| C-24 | ドキュメントはメモリ内に読み込み | E-18 | ○ |
| C-25 | ディレクトリ監視時の除外パターン適用 | E-19 | ○ |
| C-26 | ログ保持期間「セッション中」 | **根拠なし** | △ |
| C-27 | PATHハイジャックリスク | **根拠なし** | △ |
| C-28 | 推奨セキュリティプラクティス | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- **C-26: ログ保持期間**
  - ログローテーションや保持期間に関する明示的な設定・実装が確認できず
  - 候補：Timbreログ設定 / ログファイル管理コード / 設定ドキュメント

- **C-27: PATHハイジャックリスク**
  - リスクの存在は推定されるが、対策の有無を示す実装が明確でない
  - 候補：実行ファイル検証コード / セキュリティドキュメント

- **C-28: 推奨セキュリティプラクティス**
  - 設計者の推奨事項であり、コードや既存ドキュメントから直接導出されたものではない
  - 候補：READMEのセキュリティセクション / 公式ドキュメント

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: 認証設計、入出力対策、リソース制限 - コードで明確に確認可能
- **1（中リスク）**: ログ保持・PATHハイジャック - 実装は存在するが明示的な対策文書なし
- **2（高リスク）**: なし

## 6) レビュアーチェックリスト（最小）
- [ ] 認証なしの設計がプロジェクトの利用シナリオに適合しているか確認
- [ ] ログに記録される情報（プロジェクトパス等）が許容範囲か確認
- [ ] 外部コマンド実行のホワイトリスト（lein, clojure等）が適切か確認
- [ ] HTTP通信のタイムアウト設定が運用要件に合致しているか確認
- [ ] EDN設定のリーダーマクロ制限（re-patternのみ）が十分か確認
