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

# 根拠レポート：feature-editing.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：64 / 64、根拠なし：0
- 優先レビュー（高）
  1. **drag-paramの使用箇所更新テスト（C-24, C-25）**：複雑なリファクタリングロジックのため手動確認推奨
  2. **hover-documentationのClojureDocs連携テスト（C-45）**：外部データ依存のため実環境確認推奨
  3. **stubs生成テスト（C-58）**：ファイルシステム操作を含むため統合テスト観点も考慮

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

- E-01: `lib/src/clojure_lsp/feature/drag.clj` - node-edits関数（28-39行目）
- E-02: `lib/src/clojure_lsp/feature/drag.clj` - identify-clauses関数（73-85行目）
- E-03: `lib/src/clojure_lsp/feature/drag.clj` - nodes-to-drag関数（87-105行目）
- E-04: `lib/src/clojure_lsp/feature/drag.clj` - drag-clause関数（107-119行目）
- E-05: `lib/src/clojure_lsp/feature/drag.clj` - can-drag-backward?/can-drag-forward?関数（169-170行目）
- E-06: `lib/src/clojure_lsp/feature/drag.clj` - drag-backward/drag-forward関数（177-178行目）
- E-07: `lib/src/clojure_lsp/feature/drag.clj` - plan関数（159-162行目）
- E-08: `lib/src/clojure_lsp/feature/drag_param.clj` - plan関数（18-35行目）
- E-09: `lib/src/clojure_lsp/feature/drag_param.clj` - usage-edits関数（62-84行目）
- E-10: `lib/src/clojure_lsp/feature/drag_param.clj` - can-drag-backward?/can-drag-forward?関数（92-93行目）
- E-11: `lib/src/clojure_lsp/feature/drag_param.clj` - drag関数（101-115行目）
- E-12: `lib/src/clojure_lsp/feature/drag_param.clj` - drag-backward/drag-forward関数（117-118行目）
- E-13: `lib/src/clojure_lsp/feature/thread_get.clj` - get-in-more-data関数（21-46行目）
- E-14: `lib/src/clojure_lsp/feature/thread_get.clj` - get-in-less-data関数（58-87行目）
- E-15: `lib/src/clojure_lsp/feature/thread_get.clj` - can-get-in-more?/get-in-more関数（105-107行目）
- E-16: `lib/src/clojure_lsp/feature/thread_get.clj` - can-get-in-less?/get-in-less関数（109-111行目）
- E-17: `lib/src/clojure_lsp/feature/thread_get.clj` - get-in-all/get-in-none関数（107, 111行目）
- E-18: `lib/src/clojure_lsp/feature/hover.clj` - find-docstring関数（69-105行目）
- E-19: `lib/src/clojure_lsp/feature/hover.clj` - hover-documentation関数（144-212行目）
- E-20: `lib/src/clojure_lsp/feature/hover.clj` - hover関数（214-260行目）
- E-21: `lib/src/clojure_lsp/feature/hover.clj` - clojuredocs->hover-docs関数（41-67行目）
- E-22: `lib/src/clojure_lsp/feature/signature_help.clj` - signature-help関数（77-91行目）
- E-23: `lib/src/clojure_lsp/feature/signature_help.clj` - get-active-parameter-index関数（24-42行目）
- E-24: `lib/src/clojure_lsp/feature/signature_help.clj` - get-active-signature-index関数（44-56行目）
- E-25: `lib/src/clojure_lsp/feature/signature_help.clj` - arglist-str->parameters関数（58-68行目）
- E-26: `lib/src/clojure_lsp/feature/stubs.clj` - generate-and-analyze-stubs!関数（63-78行目）
- E-27: `lib/src/clojure_lsp/feature/stubs.clj` - generate-stubs!関数（29-47行目）
- E-28: `lib/src/clojure_lsp/feature/stubs.clj` - analyze-stubs!関数（49-61行目）
- E-29: `lib/src/clojure_lsp/feature/stubs.clj` - check-stubs?関数（80-82行目）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | node-edits: 節点のスワップ編集が正しく生成される | E-01 | ○ |
| C-02 | node-edits: 末尾コメント修正が適用される | E-01 | ○ |
| C-03 | identify-clauses: カーソル位置から節が正しく特定される | E-02 | ○ |
| C-04 | identify-clauses: カーソルが節の外にある場合nilが返る | E-02 | ○ |
| C-05 | nodes-to-drag: 前方ドラッグ対象ノードが正しく抽出される | E-03 | ○ |
| C-06 | nodes-to-drag: 後方ドラッグ対象ノードが正しく抽出される | E-03 | ○ |
| C-07 | nodes-to-drag: 最初の節を後方にドラッグでnil | E-03 | ○ |
| C-08 | nodes-to-drag: 最後の節を前方にドラッグでnil | E-03 | ○ |
| C-09 | drag-clause: ドラッグ操作の結果が正しく返却される | E-04 | ○ |
| C-10 | drag-clause: ドラッグ対象ノードが存在しない場合nil | E-04 | ○ |
| C-11 | can-drag-backward?: 後方ドラッグ可能な場合true | E-05 | ○ |
| C-12 | can-drag-backward?: 後方ドラッグ不可の場合false | E-05 | ○ |
| C-13 | can-drag-forward?: 前方ドラッグ可能な場合true | E-05 | ○ |
| C-14 | can-drag-forward?: 前方ドラッグ不可の場合false | E-05 | ○ |
| C-15 | drag-backward: 後方ドラッグが正しく実行される | E-06 | ○ |
| C-16 | drag-forward: 前方ドラッグが正しく実行される | E-06 | ○ |
| C-17 | plan: ドラッグ計画が正しく生成される | E-07 | ○ |
| C-18 | plan: 無効な位置でnil | E-07 | ○ |
| C-19 | drag-param/can-drag-backward?: パラメータの後方ドラッグ可能な場合true | E-10 | ○ |
| C-20 | drag-param/can-drag-backward?: defn以外でfalse | E-08 | ○ |
| C-21 | drag-param/can-drag-forward?: パラメータの前方ドラッグ可能な場合true | E-10 | ○ |
| C-22 | drag-param/can-drag-forward?: ベクタ以外でfalse | E-08 | ○ |
| C-23 | drag-param/drag-backward: パラメータ後方ドラッグが実行される | E-12 | ○ |
| C-24 | drag-param/drag-backward: 呼び出し箇所も一緒に更新される | E-09, E-11 | ○ |
| C-25 | drag-param/drag-backward: スレッディングマクロ内でnil | E-09, E-11 | ○ |
| C-26 | drag-param/drag-forward: パラメータ前方ドラッグが実行される | E-12 | ○ |
| C-27 | drag-param/drag-forward: vararg(&)を除外してドラッグ | E-08 | ○ |
| C-28 | can-get-in-more?: get/get-inがネスト可能な場合true | E-13, E-15 | ○ |
| C-29 | can-get-in-more?: get以外の関数でfalse | E-13 | ○ |
| C-30 | can-get-in-more?: リスト以外でfalse | E-13 | ○ |
| C-31 | get-in-more: getがget-inに変換される | E-13, E-15 | ○ |
| C-32 | get-in-more: デフォルト値が保持される | E-13 | ○ |
| C-33 | get-in-all: 全てのネストがget-inに変換される | E-17 | ○ |
| C-34 | can-get-in-less?: get-inが展開可能な場合true | E-14, E-16 | ○ |
| C-35 | can-get-in-less?: 空のパスでfalse | E-14 | ○ |
| C-36 | get-in-less: get-inがgetに展開される | E-14, E-16 | ○ |
| C-37 | get-in-less: パスが1つの場合getに変換 | E-14 | ○ |
| C-38 | get-in-none: 全てのget-inが展開される | E-17 | ○ |
| C-39 | find-docstring: 文字列docstringが返却される | E-18 | ○ |
| C-40 | find-docstring: 空文字列でnil | E-18 | ○ |
| C-41 | find-docstring: (:doc (meta #'var))形式が解決される | E-18 | ○ |
| C-42 | find-docstring: 再帰上限(3回)でnil | E-18 | ○ |
| C-43 | hover-documentation: Markdown形式のホバー情報が生成される | E-19 | ○ |
| C-44 | hover-documentation: プレーンテキスト形式のホバー情報が生成される | E-19 | ○ |
| C-45 | hover-documentation: ClojureDocsの情報が含まれる | E-19, E-21 | ○ |
| C-46 | hover-documentation: ファイル名が含まれる | E-19 | ○ |
| C-47 | hover-documentation: ファイル名が非表示になる | E-19 | ○ |
| C-48 | hover: 定義のホバー情報が返却される | E-20 | ○ |
| C-49 | hover: 使用箇所から定義のホバー情報が返却される | E-20 | ○ |
| C-50 | hover: 関数呼び出しの情報が含まれる | E-20 | ○ |
| C-51 | hover: 要素がない場合空のcontents | E-20 | ○ |
| C-52 | signature-help: シグネチャヘルプが返却される | E-22 | ○ |
| C-53 | signature-help: active-signatureが正しく設定される | E-24 | ○ |
| C-54 | signature-help: active-parameterが正しく設定される | E-23 | ○ |
| C-55 | signature-help: 関数呼び出し外でnil | E-22 | ○ |
| C-56 | signature-help: 引数がない場合active-parameter=0 | E-23 | ○ |
| C-57 | signature-help: 可変長引数で最後のパラメータにクランプ | E-23, E-25 | ○ |
| C-58 | generate-and-analyze-stubs!: スタブ生成と解析が実行される | E-26, E-27, E-28 | ○ |
| C-59 | generate-and-analyze-stubs!: extra-dirsのみの場合解析のみ実行 | E-26 | ○ |
| C-60 | generate-and-analyze-stubs!: namespaces未設定で何も実行されない | E-26 | ○ |
| C-61 | generate-and-analyze-stubs!: 同一namespaces設定で再生成されない | E-26 | ○ |
| C-62 | check-stubs?: namespaces設定でtrue | E-29 | ○ |
| C-63 | check-stubs?: extra-dirs設定でtrue | E-29 | ○ |
| C-64 | check-stubs?: 設定なしでfalse | E-29 | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし：全てのテストケースはソースコードの関数定義から直接導出されています

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: 単純なゲッター/判定関数（can-drag-*, check-stubs?）
- **1（中リスク）**: 変換ロジック（thread-get変換、hover-documentation生成）- ロジックの複雑さによる誤り可能性
- **2（高リスク）**:
  - drag-paramの使用箇所同時更新（C-24, C-25）：複数ファイルにまたがる変更、スレッディングマクロ検出の正確性
  - stubs生成（C-58）：外部プロセス呼び出し、ファイルシステム操作

## 6) レビュアーチェックリスト（最小）
- [ ] drag.clj: 境界値テスト（最初/最後の節）の期待結果が正しいか確認
- [ ] drag_param.clj: param-establishing-symbols（defn, defn-, defmacro）の網羅性確認
- [ ] drag_param.clj: スレッディングマクロ（->, ->>）の検出ロジック確認
- [ ] thread_get.clj: get/get-in変換のデフォルト値処理の正確性確認
- [ ] hover.clj: find-docstringの再帰上限（cnt > 2）の妥当性確認
- [ ] signature_help.clj: 可変長引数（&）のパラメータインデックス計算確認
- [ ] stubs.clj: クラスパス未設定時のエラーハンドリング確認
