---
generated_at: 2026-02-19 12:20:00
metrics:
  claims_total: 157
  claims_with_evidence: 157
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：refactor.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：157 / 157、根拠なし：0
- 優先レビュー（高）
  1. **なし**：全テストケースに根拠あり
  2. 関数抽出（extract-function）：複雑なロジックのため重点レビュー推奨
  3. スレッド操作（thread-first/thread-last等）：状態変換のため確認推奨

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

- E-01: `lib/src/clojure_lsp/refactor/edit.clj` - 行10-12: root?, top?関数定義
- E-02: `lib/src/clojure_lsp/refactor/edit.clj` - 行16-20: to-top関数定義
- E-03: `lib/src/clojure_lsp/refactor/edit.clj` - 行25-32: in-range?関数定義
- E-04: `lib/src/clojure_lsp/refactor/edit.clj` - 行45-68: find-by-heritability関数定義
- E-05: `lib/src/clojure_lsp/refactor/edit.clj` - 行70-78: find-at-pos関数定義
- E-06: `lib/src/clojure_lsp/refactor/edit.clj` - 行80-89: find-op関数定義
- E-07: `lib/src/clojure_lsp/refactor/edit.clj` - 行91-107: find-ops-up関数定義
- E-08: `lib/src/clojure_lsp/refactor/edit.clj` - 行109-125: var-name-loc-from-op関数定義
- E-09: `lib/src/clojure_lsp/refactor/edit.clj` - 行127-131: find-var-definition-name-loc, find-function-usage-name-loc関数定義
- E-10: `lib/src/clojure_lsp/refactor/edit.clj` - 行133-138: single-child?関数定義
- E-11: `lib/src/clojure_lsp/refactor/edit.clj` - 行141-148: raise関数定義
- E-12: `lib/src/clojure_lsp/refactor/edit.clj` - 行150-159: map-children関数定義
- E-13: `lib/src/clojure_lsp/refactor/edit.clj` - 行161-171: wrap-around関数定義
- E-14: `lib/src/clojure_lsp/refactor/edit.clj` - 行173-199: parent-let?, join-let関数定義
- E-15: `lib/src/clojure_lsp/refactor/edit.clj` - 行201-235: inside-require?, inside-refer?, namespaced-map関数定義
- E-16: `lib/src/clojure_lsp/refactor/edit.clj` - 行237-245: find-refer-ns, to-root, find-namespace関数定義
- E-17: `lib/src/clojure_lsp/refactor/edit.clj` - 行247-265: node-marked?, marked?, back-to-mark-or-nil, mark-position, mark-position-when関数定義
- E-18: `lib/src/clojure_lsp/refactor/edit.clj` - 行267-307: 範囲・位置関連関数群
- E-19: `lib/src/clojure_lsp/refactor/transform.clj` - 行31-37: result関数定義
- E-20: `lib/src/clojure_lsp/refactor/transform.clj` - 行39-67: コレクション変換関数群（find-other-colls, change-coll, cycle-coll）
- E-21: `lib/src/clojure_lsp/refactor/transform.clj` - 行69-156: スレッド関連関数群（thread-first, thread-last, thread-all等）
- E-22: `lib/src/clojure_lsp/refactor/transform.clj` - 行164-207: スレッド解除関数群（can-unwind-thread?, unwind-thread, unwind-all）
- E-23: `lib/src/clojure_lsp/refactor/transform.clj` - 行209-382: let関連関数群（find-let-form, introduce-let, expand-let, move-to-let）
- E-24: `lib/src/clojure_lsp/refactor/transform.clj` - 行384-452: defn生成・コメント保持関数群
- E-25: `lib/src/clojure_lsp/refactor/transform.clj` - 行723-748: extract-function関数定義
- E-26: `lib/src/clojure_lsp/refactor/transform.clj` - 行750-774: extract-to-def関数群
- E-27: `lib/src/clojure_lsp/refactor/transform.clj` - 行776-1004: fn変換関数群（demote-fn, promote-fn, can-demote-fn?, can-promote-fn?等）
- E-28: `lib/src/clojure_lsp/refactor/transform.clj` - 行1006-1028: cycle-privacy関数定義
- E-29: `lib/src/clojure_lsp/refactor/transform.clj` - 行1030-1133: create-function関連関数群
- E-30: `lib/src/clojure_lsp/refactor/transform.clj` - 行1141-1337: if/cond変換関数群（if->cond, cond->if, near-if?, near-cond?）
- E-31: `lib/src/clojure_lsp/refactor/transform.clj` - 行1339-1448: create-test, can-create-test?関数定義
- E-32: `lib/src/clojure_lsp/refactor/transform.clj` - 行1450-1466: suppress-diagnostic関数定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | root?がformsタグを判定 | E-01 | ○ |
| C-02 | root?が非formsタグでfalse | E-01 | ○ |
| C-03 | top?が親rootでtrue | E-01 | ○ |
| C-04 | top?が非rootでfalse | E-01 | ○ |
| C-05 | to-topがトップレベルzloc取得 | E-02 | ○ |
| C-06 | to-topが既にトップでそのまま返す | E-02 | ○ |
| C-07 | to-topがformsでnil | E-02 | ○ |
| C-08 | in-range?が範囲内でtrue | E-03 | ○ |
| C-09 | in-range?が範囲外でfalse | E-03 | ○ |
| C-10 | in-range?が境界でtrue | E-03 | ○ |
| C-11 | in-range?が終了境界でfalse | E-03 | ○ |
| C-12 | find-by-heritabilityが最深zloc発見 | E-04 | ○ |
| C-13 | find-by-heritabilityが兄弟検索 | E-04 | ○ |
| C-14 | find-at-posが位置でzloc発見 | E-05 | ○ |
| C-15 | find-at-posが範囲外で適切処理 | E-05 | ○ |
| C-16 | find-opが演算子発見 | E-06 | ○ |
| C-17 | find-opが演算子なしでnil | E-06 | ○ |
| C-18 | find-ops-upが上方向検索 | E-07 | ○ |
| C-19 | find-ops-upが修飾シンボル検索 | E-07 | ○ |
| C-20 | find-ops-upが未検出でnil | E-07 | ○ |
| C-21 | var-name-loc-from-opが変数名取得 | E-08 | ○ |
| C-22 | var-name-loc-from-opがメタデータ対応 | E-08 | ○ |
| C-23 | var-name-loc-from-opがnilでnil | E-08 | ○ |
| C-24 | find-var-definition-name-locが定義名発見 | E-09 | ○ |
| C-25 | find-function-usage-name-locが使用箇所発見 | E-09 | ○ |
| C-26 | single-child?が単一子でtrue | E-10 | ○ |
| C-27 | single-child?が複数子でfalse | E-10 | ○ |
| C-28 | single-child?が空でfalse | E-10 | ○ |
| C-29 | raiseが要素を持ち上げ | E-11 | ○ |
| C-30 | raiseがトップでそのまま | E-11 | ○ |
| C-31 | map-childrenが子に関数適用 | E-12 | ○ |
| C-32 | map-childrenが空でそのまま | E-12 | ○ |
| C-33 | wrap-aroundがリストラップ | E-13 | ○ |
| C-34 | wrap-aroundがベクタラップ | E-13 | ○ |
| C-35 | wrap-aroundがセットラップ | E-13 | ○ |
| C-36 | wrap-aroundがマップラップ | E-13 | ○ |
| C-37 | parent-let?が親let検出 | E-14 | ○ |
| C-38 | parent-let?が非letでnil | E-14 | ○ |
| C-39 | join-letがネストlet結合 | E-14 | ○ |
| C-40 | join-letが親非letでそのまま | E-14 | ○ |
| C-41 | inside-require?がns内require判定 | E-15 | ○ |
| C-42 | inside-require?が独立require判定 | E-15 | ○ |
| C-43 | inside-require?がrequire外判定 | E-15 | ○ |
| C-44 | inside-refer?がrefer内判定 | E-15 | ○ |
| C-45 | inside-refer?がrefer外判定 | E-15 | ○ |
| C-46 | namespaced-mapがns付きマップ検出 | E-15 | ○ |
| C-47 | namespaced-mapが通常マップでnil | E-15 | ○ |
| C-48 | inside-rcf?がcomment内判定 | E-15 | ○ |
| C-49 | find-refer-nsが参照元ns取得 | E-16 | ○ |
| C-50 | to-rootがルートzloc取得 | E-16 | ○ |
| C-51 | find-namespaceがnsフォーム発見 | E-16 | ○ |
| C-52 | node-marked?がマークノード判定 | E-17 | ○ |
| C-53 | marked?がマークzloc判定 | E-17 | ○ |
| C-54 | back-to-mark-or-nilがマーク位置移動 | E-17 | ○ |
| C-55 | mark-positionがマーク付与 | E-17 | ○ |
| C-56 | mark-position-whenが条件trueでマーク | E-17 | ○ |
| C-57 | mark-position-whenが条件falseでマークなし | E-17 | ○ |
| C-58 | range-with-left-whitespaceが空白含む範囲 | E-18 | ○ |
| C-59 | range-from-usage-nameが範囲変換 | E-18 | ○ |
| C-60 | to-top-or-subzip-topがsubzip対応 | E-18 | ○ |
| C-61 | find-at-element-nameが要素名位置検索 | E-18 | ○ |
| C-62 | find-at-elementが要素位置検索 | E-18 | ○ |
| C-63 | loc-encapsulates-usage?が包含判定 | E-18 | ○ |
| C-64 | z-replace-preserving-metaがメタ保持置換 | E-18 | ○ |
| C-65 | resultが結果形式変換 | E-19 | ○ |
| C-66 | resultがnil locで空文字列 | E-19 | ○ |
| C-67 | find-other-collsが他コレクション型 | E-20 | ○ |
| C-68 | find-other-collsが非コレクションでnil | E-20 | ○ |
| C-69 | change-collがコレクション型変更 | E-20 | ○ |
| C-70 | change-collがベクタからセット | E-20 | ○ |
| C-71 | change-collがマップからベクタ | E-20 | ○ |
| C-72 | change-collが非コレクションでnil | E-20 | ○ |
| C-73 | cycle-collがコレクション循環 | E-20 | ○ |
| C-74 | cycle-collがマップからベクタ | E-20 | ○ |
| C-75 | cycle-collがリストからマップ | E-20 | ○ |
| C-76 | can-thread-list?がスレッド可能判定 | E-21 | ○ |
| C-77 | can-thread-list?が無効シンボル判定 | E-21 | ○ |
| C-78 | can-thread-list?がns形式判定 | E-21 | ○ |
| C-79 | can-thread?がリストスレッド可能判定 | E-21 | ○ |
| C-80 | can-thread?がトークン位置判定 | E-21 | ○ |
| C-81 | thread-firstが->変換 | E-21 | ○ |
| C-82 | thread-firstがスレッド不可でnil | E-21 | ○ |
| C-83 | thread-lastが->>変換 | E-21 | ○ |
| C-84 | thread-lastがスレッド不可でnil | E-21 | ○ |
| C-85 | thread-allが全ネストスレッド化 | E-21 | ○ |
| C-86 | thread-first-allが全->化 | E-21 | ○ |
| C-87 | thread-last-allが全->>化 | E-21 | ○ |
| C-88 | can-unwind-thread?がスレッド解除可能判定 | E-22 | ○ |
| C-89 | can-unwind-thread?が非スレッドでnil | E-22 | ○ |
| C-90 | unwind-threadがスレッド1段階解除 | E-22 | ○ |
| C-91 | unwind-threadが->>解除 | E-22 | ○ |
| C-92 | unwind-allが全スレッド解除 | E-22 | ○ |
| C-93 | find-withinが内部検索 | E-23 | ○ |
| C-94 | find-withinが未検出でnil | E-23 | ○ |
| C-95 | replace-in-bind-valuesがバインディング置換 | E-23 | ○ |
| C-96 | find-let-formが有効let検索 | E-23 | ○ |
| C-97 | find-let-formがスコープ外でnil | E-23 | ○ |
| C-98 | introduce-letがletラップ | E-23 | ○ |
| C-99 | introduce-letが既存let結合 | E-23 | ○ |
| C-100 | introduce-letが空白のみでnil | E-23 | ○ |
| C-101 | multi-arity-fn-definition?が複数アリティ判定 | E-23 | ○ |
| C-102 | multi-arity-fn-definition?が単一アリティ判定 | E-23 | ○ |
| C-103 | expand-letがletスコープ拡張 | E-23 | ○ |
| C-104 | expand-letが親let結合 | E-23 | ○ |
| C-105 | expand-letがトップレベルでnil | E-23 | ○ |
| C-106 | move-to-letが式をlet移動 | E-23 | ○ |
| C-107 | move-to-letがlet新規作成 | E-23 | ○ |
| C-108 | new-defn-zlocがdefn生成 | E-24 | ○ |
| C-109 | new-defn-zlocがプライベート関数生成 | E-24 | ○ |
| C-110 | prepend-preserving-commentがコメント保持追加 | E-24 | ○ |
| C-111 | extract-functionが関数抽出 | E-25 | ○ |
| C-112 | extract-functionがローカル変数引数化 | E-25 | ○ |
| C-113 | extract-functionが異なるレベルエラー | E-25 | ○ |
| C-114 | extract-functionがマクロ抽出エラー | E-25 | ○ |
| C-115 | can-extract-to-def?がdef抽出可能判定 | E-26 | ○ |
| C-116 | extract-to-defがdef抽出 | E-26 | ○ |
| C-117 | extract-to-defがデフォルト名使用 | E-26 | ○ |
| C-118 | can-demote-fn?がfn降格可能判定 | E-27 | ○ |
| C-119 | can-demote-fn?が降格不可判定 | E-27 | ○ |
| C-120 | can-promote-fn?がリテラル昇格判定 | E-27 | ○ |
| C-121 | can-promote-fn?がfn昇格判定 | E-27 | ○ |
| C-122 | demote-fnがfn降格 | E-27 | ○ |
| C-123 | demote-fnが複数パラメータ降格 | E-27 | ○ |
| C-124 | demote-fnが可変引数降格 | E-27 | ○ |
| C-125 | promote-fnがリテラル昇格 | E-27 | ○ |
| C-126 | promote-fnがfn昇格 | E-27 | ○ |
| C-127 | find-function-formが関数形式検索 | E-28 | ○ |
| C-128 | cycle-privacyがdefn/defn-切り替え | E-28 | ○ |
| C-129 | cycle-privacyがdefn-/defn切り替え | E-28 | ○ |
| C-130 | cycle-privacyがメタデータ切り替え | E-28 | ○ |
| C-131 | can-create-function?が関数作成可能判定 | E-29 | ○ |
| C-132 | can-create-function?がnil判定 | E-29 | ○ |
| C-133 | find-public-function-to-createが公開関数情報検索 | E-29 | ○ |
| C-134 | find-public-function-to-createが新規ns情報 | E-29 | ○ |
| C-135 | near-if?がif近傍判定 | E-30 | ○ |
| C-136 | near-if?が非if判定 | E-30 | ○ |
| C-137 | near-cond?がcond近傍判定 | E-30 | ○ |
| C-138 | near-cond?が非cond判定 | E-30 | ○ |
| C-139 | if->condがif変換 | E-30 | ○ |
| C-140 | if->condがネストif変換 | E-30 | ○ |
| C-141 | if->condがelse無し変換 | E-30 | ○ |
| C-142 | if->condが非ifエラー | E-30 | ○ |
| C-143 | cond->ifがcond変換 | E-30 | ○ |
| C-144 | cond->ifがelse付き変換 | E-30 | ○ |
| C-145 | cond->ifが空cond変換 | E-30 | ○ |
| C-146 | cond->ifが非condエラー | E-30 | ○ |
| C-147 | cond->ifが奇数フォームエラー | E-30 | ○ |
| C-148 | create-functionが関数生成 | E-29 | ○ |
| C-149 | create-functionが別ns関数生成 | E-29 | ○ |
| C-150 | create-functionがスレッド内引数推論 | E-29 | ○ |
| C-151 | can-create-test?がテスト作成可能判定 | E-31 | ○ |
| C-152 | can-create-test?がテストパス判定 | E-31 | ○ |
| C-153 | create-testがテスト生成 | E-31 | ○ |
| C-154 | create-testが既存テスト追加 | E-31 | ○ |
| C-155 | create-testがパス不明エラー | E-31 | ○ |
| C-156 | suppress-diagnosticが診断抑制 | E-32 | ○ |
| C-157 | suppress-diagnosticがclojure-lsp診断抑制 | E-32 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし：全てのテストケースに対してソースコードからの根拠が確認できた

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースに根拠あり
- 注意点:
  - extract-function（C-111〜C-114）：複雑なロジックを含むため実装詳細の確認推奨
  - スレッド操作（C-81〜C-92）：状態変換が複雑なため境界条件の追加テスト検討
  - if/cond変換（C-139〜C-147）：コメント保持ロジックの検証推奨

## 6) レビュアーチェックリスト（最小）
- [ ] edit.cljの位置・範囲関連関数（in-range?, find-at-pos等）の境界条件を確認
- [ ] transform.cljのスレッド操作関数（thread-first, thread-last等）の変換ロジックを確認
- [ ] let操作関数（introduce-let, expand-let, move-to-let）のスコープ処理を確認
- [ ] extract-functionの引数推論ロジックを確認
- [ ] if/cond相互変換のコメント保持処理を確認
- [ ] cycle-privacyのメタデータ対応を確認
- [ ] create-functionの別名前空間対応を確認
- [ ] create-testのファイル生成処理を確認
