---
generated_at: 2026-02-19 12:30:00
metrics:
  claims_total: 78
  claims_with_evidence: 78
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：feature-refactoring 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `lib/src/clojure_lsp/feature/clean_ns.clj` - 名前空間クリーンアップ機能
- E-02: `lib/src/clojure_lsp/feature/inline_symbol.clj` - シンボルインライン化機能
- E-03: `lib/src/clojure_lsp/feature/rename.clj` - リネーム機能
- E-04: `lib/src/clojure_lsp/feature/replace_refer_all.clj` - refer :all置換機能
- E-05: `lib/src/clojure_lsp/feature/add_missing_libspec.clj` - 不足libspec追加機能
- E-06: `lib/src/clojure_lsp/feature/move_form.clj` - フォーム移動機能

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

### clean_ns.clj 関連テストケース（C-01 から C-11）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | clean-ns-edits関数が名前空間クリーンアップを実行 | E-01 (line 433-459) | ○ |
| C-02 | zloc指定時のクリーンアップ動作 | E-01 (line 436) | ○ |
| C-03 | ns宣言なし時のno-op返却 | E-01 (line 438, 458-459) | ○ |
| C-04 | clean-requires関数による未使用require削除 | E-01 (line 299-308) | ○ |
| C-05 | require宣言なし時の動作 | E-01 (line 301) | ○ |
| C-06 | clean-imports関数による未使用import削除 | E-01 (line 398-407) | ○ |
| C-07 | import宣言なし時の動作 | E-01 (line 400) | ○ |
| C-08 | remove-unused-refers関数によるrefer削除 | E-01 (line 193-217) | ○ |
| C-09 | 全refer未使用時の動作 | E-01 (line 200-209) | ○ |
| C-10 | sort-ns-children関数によるimport/requireソート | E-01 (line 409-431) | ○ |
| C-11 | ソート無効設定時の動作 | E-01 (line 411) | ○ |

### inline_symbol.clj 関連テストケース（C-12 から C-19）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-12 | inline-symbol関数によるdefインライン化 | E-02 (line 146-152) | ○ |
| C-13 | let束縛のインライン化 | E-02 (line 135-141) | ○ |
| C-14 | インライン化不可時のnil返却 | E-02 (line 147) | ○ |
| C-15 | inline-symbol?関数によるtrue判定 | E-02 (line 143-144) | ○ |
| C-16 | インライン化不可時のfalse判定 | E-02 (line 143-144) | ○ |
| C-17 | inline-sole-let-binding関数による単一let展開 | E-02 (line 116-133) | ○ |
| C-18 | 暗黙のdoコンテキスト内での展開 | E-02 (line 122-125, 85-114) | ○ |
| C-19 | inline-one-let-binding関数による複数束縛展開 | E-02 (line 61-73) | ○ |

### rename.clj 関連テストケース（C-20 から C-35）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-20 | rename-from-position関数によるリネーム | E-03 (line 312-316) | ○ |
| C-21 | 要素なし時のエラー返却 | E-03 (line 314-316, 269-271) | ○ |
| C-22 | prepare-rename関数によるリネーム準備 | E-03 (line 273-281) | ○ |
| C-23 | prepare-rename要素なし時のエラー | E-03 (line 276-277) | ○ |
| C-24 | 定義なし時のエラー | E-03 (line 232-234) | ○ |
| C-25 | rename-element関数によるvar定義リネーム | E-03 (line 283-310) | ○ |
| C-26 | namespace定義リネームとファイル変更 | E-03 (line 296-309) | ○ |
| C-27 | ローカル変数リネーム | E-03 (line 154-166, 209-210) | ○ |
| C-28 | キーワードリネーム | E-03 (line 27-103, 206-207) | ○ |
| C-29 | 非名前空間キーワードのリネーム不可 | E-03 (line 258-261) | ○ |
| C-30 | ident-split関数によるシンボル分割 | E-03 (line 10-16) | ○ |
| C-31 | キーワード文字列の分割 | E-03 (line 11-12) | ○ |
| C-32 | エイリアスキーワードの分割 | E-03 (line 11-12) | ○ |
| C-33 | スラッシュなし時の分割 | E-03 (line 14-16) | ○ |
| C-34 | rename-defrecord関数によるdefrecordリネーム | E-03 (line 168-191) | ○ |
| C-35 | ->コンストラクタ参照の更新 | E-03 (line 171-172, 183-184) | ○ |

### replace_refer_all.clj 関連テストケース（C-36 から C-38）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-36 | replace-with-refers関数によるrefer置換 | E-04 (line 8-14) | ○ |
| C-37 | 空refers時の置換 | E-04 (line 10-12) | ○ |
| C-38 | replace-with-alias関数によるalias置換 | E-04 (line 16-36) | ○ |

### add_missing_libspec.clj 関連テストケース（C-39 から C-67）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-39 | find-missing-ns-require関数によるalias検出 | E-05 (line 85-90, 63-74) | ○ |
| C-40 | refer require検出 | E-05 (line 76-83) | ○ |
| C-41 | 複数候補時のnil返却 | E-05 (line 72) | ○ |
| C-42 | find-missing-imports関数によるimport検出 | E-05 (line 111-117) | ○ |
| C-43 | 非クラス名時のnil返却 | E-05 (line 92-109, 100-101) | ○ |
| C-44 | add-to-namespace*関数によるalias追加 | E-05 (line 200-251) | ○ |
| C-45 | refer追加 | E-05 (line 236) | ○ |
| C-46 | import追加 | E-05 (line 226-228) | ○ |
| C-47 | 既存requireへのrefer追加 | E-05 (line 160-166) | ○ |
| C-48 | 重複追加防止 | E-05 (line 210) | ○ |
| C-49 | add-missing-import関数によるimport追加 | E-05 (line 360-369) | ○ |
| C-50 | import-name nil時の自動検出 | E-05 (line 361-362) | ○ |
| C-51 | add-known-alias関数による既知alias追加 | E-05 (line 371-374) | ○ |
| C-52 | nilパラメータ時のnil返却 | E-05 (line 373) | ○ |
| C-53 | add-simple-require関数による単純require追加 | E-05 (line 376-379) | ○ |
| C-54 | find-namespace-suggestions関数によるサジェスチョン | E-05 (line 486-562) | ○ |
| C-55 | commonエイリアスサジェスト | E-05 (line 514, 546-558) | ○ |
| C-56 | find-require-suggestions関数によるサジェスト | E-05 (line 572-597) | ○ |
| C-57 | add-require-suggestion関数によるサジェスト適用 | E-05 (line 613-656) | ○ |
| C-58 | add-missing-libspec関数による自動追加 | E-05 (line 658-673) | ○ |
| C-59 | zloc nil時のnil返却 | E-05 (line 660) | ○ |
| C-60 | safe-sexpr関数によるsexpr取得 | E-05 (line 21-28) | ○ |
| C-61 | sexpr失敗時のnil返却 | E-05 (line 22, 26-27) | ○ |
| C-62 | safe-sym関数によるシンボル抽出 | E-05 (line 30-39) | ○ |
| C-63 | エイリアスキーワードからのシンボル抽出 | E-05 (line 33-36) | ○ |
| C-64 | cleaning-ns-edits関数による自動クリーンアップ | E-05 (line 47-61) | ○ |
| C-65 | クリーンアップ無効時の動作 | E-05 (line 48) | ○ |
| C-66 | add-to-rcf*関数によるRCF内require追加 | E-05 (line 273-342) | ○ |
| C-67 | 既存requireフォームへの追加 | E-05 (line 331-341) | ○ |

### move_form.clj 関連テストケース（C-68 から C-78）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-68 | move-form関数によるフォーム移動 | E-06 (line 91-199) | ○ |
| C-69 | 無効移動先時のnil返却 | E-06 (line 97-98) | ○ |
| C-70 | 複数定義フォーム移動不可 | E-06 (line 111-112, 115) | ○ |
| C-71 | 非トップレベルフォーム移動不可 | E-06 (line 107-108, 114) | ○ |
| C-72 | ローカル参照あり時の移動不可 | E-06 (line 103-105, 113) | ○ |
| C-73 | var-usages-within関数によるvar使用取得 | E-06 (line 23-28) | ○ |
| C-74 | 使用なし時の空リスト返却 | E-06 (line 26-28) | ○ |
| C-75 | var-definitions-within関数によるvar定義取得 | E-06 (line 30-34) | ○ |
| C-76 | 定義なし時の空リスト返却 | E-06 (line 32-34) | ○ |
| C-77 | drop-ns-from-dest関数による修飾削除 | E-06 (line 13-21) | ○ |
| C-78 | 空使用時の動作 | E-06 (line 14-15) | ○ |

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

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードに明確な根拠を持ちます

### 留意事項
- Clojureは動的型付け言語のため、型に関するテストケースは入力値の検証として記述
- rewrite-cljライブラリのzipper操作が多用されており、zlocの状態管理が重要
- 複数のモジュール間で共有される関数（edit/find-namespace等）は別モジュールでテスト済みと想定

## 6) レビュアーチェックリスト（最小）
- [ ] 各テストケースの前提条件が現実的に再現可能か確認
- [ ] 境界値テストが適切なエッジケースをカバーしているか確認
- [ ] 異常系テストでエラーメッセージの内容が適切か確認
- [ ] リネーム機能のテストでファイル操作を伴うケースの妥当性確認
- [ ] move-form機能の複雑な条件分岐が適切にテストされているか確認
- [ ] clean-ns機能のソート設定オプションの組み合わせが網羅されているか確認
