---
generated_at: 2026-02-19 12:18:00
metrics:
  claims_total: 39
  claims_with_evidence: 39
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：pod.csv

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `lib/src/pod/clojure_lsp/api.clj` - メインソースファイル（全142行）
- E-02: `lib/src/pod/clojure_lsp/api.clj:16-18` - `write` 関数定義
- E-03: `lib/src/pod/clojure_lsp/api.clj:20-21` - `read-string` 関数定義
- E-04: `lib/src/pod/clojure_lsp/api.clj:23-24` - `read` 関数定義
- E-05: `lib/src/pod/clojure_lsp/api.clj:37-49` - `reg-transit-handlers` 関数定義
- E-06: `lib/src/pod/clojure_lsp/api.clj:61-66` - `read-transit` 関数定義
- E-07: `lib/src/pod/clojure_lsp/api.clj:68-75` - `write-transit` 関数定義
- E-08: `lib/src/pod/clojure_lsp/api.clj:77-84` - `api-vars` 定義
- E-09: `lib/src/pod/clojure_lsp/api.clj:86-141` - `run-pod` 関数定義
- E-10: `lib/src/pod/clojure_lsp/api.clj:29` - `jiofile-key` 定義
- E-11: `lib/src/pod/clojure_lsp/api.clj:31-32` - `jiofile-read-handler` 定義
- E-12: `lib/src/pod/clojure_lsp/api.clj:34-35` - `jiofile-write-handler` 定義
- E-13: `lib/src/pod/clojure_lsp/api.clj:51-54` - `transit-read-handlers` 定義
- E-14: `lib/src/pod/clojure_lsp/api.clj:56-59` - `transit-write-handlers` 定義
- E-15: `lib/src/pod/clojure_lsp/api.clj:14` - `stdin` グローバル変数定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | write関数がbencodeでSystem.outに書き込む | E-02 | ○ |
| C-02 | write関数がflushを実行する | E-02 (line 18: `.flush System/out`) | ○ |
| C-03 | write関数にnilが渡された場合の挙動 | E-02 | ○ |
| C-04 | read-string関数がバイト配列を文字列に変換 | E-03 | ○ |
| C-05 | read-string関数がUTF-8をサポート | E-03 | ○ |
| C-06 | read-string関数に空のバイト配列 | E-03 | ○ |
| C-07 | read関数がstdinからbencodeを読み込む | E-04 | ○ |
| C-08 | read関数がEOFで例外をスロー | E-09 (line 89: catch java.io.EOFException) | ○ |
| C-09 | read関数に不正なbencodeデータ | E-04 | ○ |
| C-10 | reg-transit-handlers関数がコードを生成 | E-05 | ○ |
| C-11 | reg-transit-handlers関数にjiofile-keyが含まれる | E-05, E-10 | ○ |
| C-12 | read-transit関数がTransit JSONをデコード | E-06 | ○ |
| C-13 | read-transit関数がjava.io.Fileハンドラを使用 | E-06, E-11, E-13 | ○ |
| C-14 | read-transit関数に不正なJSON | E-06 | ○ |
| C-15 | read-transit関数に空文字列 | E-06 | ○ |
| C-16 | write-transit関数がマップをエンコード | E-07 | ○ |
| C-17 | write-transit関数がjava.io.Fileをエンコード | E-07, E-12, E-14 | ○ |
| C-18 | write-transit関数がネストしたデータをエンコード | E-07 | ○ |
| C-19 | write-transit関数に空のマップ | E-07 | ○ |
| C-20 | write-transit関数にnil | E-07 | ○ |
| C-21 | run-pod関数がdescribeでAPI情報を返す | E-09 (line 99-108) | ○ |
| C-22 | run-pod関数のdescribeにapi-varsの全関数が含まれる | E-08, E-09 | ○ |
| C-23 | run-pod関数がinvokeでAPI関数を呼び出す | E-09 (line 109-127) | ○ |
| C-24 | run-pod関数のinvoke結果がTransit JSON形式 | E-09 (line 122: write-transit) | ○ |
| C-25 | run-pod関数のinvoke結果にstatus "done"が含まれる | E-09 (line 125: "status" ["done"]) | ○ |
| C-26 | run-pod関数がmessage-fnを削除 | E-09 (line 119-121) | ○ |
| C-27 | run-pod関数に存在しないvarが指定された場合 | E-09 (line 127: throw ex-info) | ○ |
| C-28 | run-pod関数でAPI関数が例外をスローした場合 | E-09 (line 128-137) | ○ |
| C-29 | run-pod関数に不明なオペレーション | E-09 (line 139-141) | ○ |
| C-30 | run-pod関数がEOFでループ終了 | E-09 (line 88-91) | ○ |
| C-31 | run-pod関数が複数メッセージを処理 | E-09 (recur呼び出し: line 108, 138, 141) | ○ |
| C-32 | run-pod関数でidがない場合の処理 | E-09 (line 95-97: (or "unknown")) | ○ |
| C-33 | api-varsに全7関数がマッピング | E-08 | ○ |
| C-34 | api-varsの各シンボルが正しくマッピング | E-08 | ○ |
| C-35 | jiofile-read-handlerがjava.io.Fileを生成 | E-11 | ○ |
| C-36 | jiofile-write-handlerが文字列を生成 | E-12 | ○ |
| C-37 | transit-read-handlersの遅延初期化 | E-13 (delay) | ○ |
| C-38 | transit-write-handlersの遅延初期化 | E-14 (delay) | ○ |
| C-39 | stdinがPushbackInputStreamとして初期化 | E-15 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - 全てのテストケースがソースコードに直接基づいている

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 単一ファイルモジュールで、全ての関数・変数定義が明確に特定可能

**補足事項:**
- podモジュールはBabashka Pod APIの実装であり、外部とのI/O処理が中心
- stdin/stdout経由のbencode通信とTransit JSON形式のデータ変換が主要機能
- api-varsで公開されるAPI関数は別モジュール(clojure-lsp.api)への委譲のみ

## 6) レビュアーチェックリスト（最小）
- [ ] write関数のbencode出力形式が正しいか確認
- [ ] read-transit/write-transitのカスタムハンドラ（java.io.File）が正しく動作するか確認
- [ ] run-podのdescribe/invokeオペレーションが仕様通りか確認
- [ ] api-varsにマッピングされている7関数が最新のAPI定義と一致しているか確認
- [ ] EOFハンドリングがBabashka Podプロトコルに準拠しているか確認
- [ ] エラーレスポンス形式（ex-message, ex-data, status）がBabashka Podプロトコルに準拠しているか確認
