# Refactor Clean

> デッドコードの安全な削除ガイド。未使用のコード、エクスポート、依存関係を特定し、テスト検証を行いながら安全に削除する。コードのクリーンアップ、リファクタリング、依存関係の整理に使用。「デッドコード削除」「未使用コード削除」「クリーンアップ」「コード整理」などのフレーズで発動。

- Skill: `majiayu000/refactor-clean` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/refactor-clean`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/refactor-clean/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/refactor-clean

---


# リファクタリング - デッドコード削除（Refactor Clean）

テスト検証を行いながら、デッドコードを安全に特定・削除するためのガイド。

## このスキルの目的

1. **デッドコードの分析** - 未使用のコード、エクスポート、依存関係を特定
2. **リスク評価** - 削除対象を重要度で分類
3. **安全な削除** - テスト検証を行いながら段階的に削除
4. **変更の追跡** - 削除した項目のサマリーを提示

## 言語自動検出

プロジェクトの言語は以下のファイルの存在で自動判定する：

| 言語 | 判定ファイル |
|------|-------------|
| TypeScript | `tsconfig.json`, `package.json` |
| Python | `pyproject.toml`, `setup.py`, `requirements.txt` |
| C# | `*.csproj`, `*.sln` |

言語が指定された場合（`{{language}}`）はその言語を優先する。

## ワークフロー

### ステップ1: デッドコード分析ツールの実行

プロジェクトの言語に応じて適切なツールを選択する。

#### TypeScript/JavaScript

| ツール | 検出対象 |
|--------|----------|
| knip | 未使用のエクスポート、ファイル |
| depcheck | 未使用の依存関係 |
| ts-prune | 未使用のTypeScriptエクスポート |

詳細: `reference/typescript/tools.md` を参照

#### Python

| ツール | 検出対象 |
|--------|----------|
| vulture | 未使用のコード全般 |
| autoflake | 未使用のインポート |
| ruff | 未使用コード（F401, F841） |

詳細: `reference/python/tools.md` を参照

#### C#

| ツール | 検出対象 |
|--------|----------|
| Roslyn Analyzers | 未使用コード（IDE0051, IDE0052等） |
| dotnet format | コードスタイル違反 |

詳細: `reference/csharp/tools.md` を参照

**注意**: プロジェクトに適したツールを選択する。すべてのツールが必要なわけではない。

### ステップ2: 包括的なレポートの生成

分析結果を `.reports/dead-code-analysis.md` に出力する。

レポートには以下を含める：
- 検出されたデッドコードの一覧
- 各項目の分類と重要度
- 推奨されるアクション

### ステップ3: 重要度による分類

検出された項目を以下の3つのカテゴリに分類する：

| 重要度 | 対象例 | 削除の安全性 |
|--------|--------|--------------|
| **SAFE（安全）** | テストファイル、未使用ユーティリティ | 安全に削除可能 |
| **CAUTION（注意）** | APIルート、コンポーネント | 慎重に確認が必要 |
| **DANGER（危険）** | 設定ファイル、メインエントリポイント | 削除非推奨 |

### ステップ4: 安全な削除のみを提案

**重要**: SAFEカテゴリの項目のみを削除対象として提案する。

CAUTIONカテゴリは追加の確認が必要。
DANGERカテゴリは原則として削除しない。

### ステップ5: テスト検証付き削除プロセス

各削除に対して以下のプロセスを厳守する：

```
1. テストスイートを実行
2. テストがパスすることを確認
3. 対象コードを削除
4. テストスイートを再実行
5. テストが失敗した場合 → ロールバック
6. テストがパスした場合 → 次の削除へ
```

### ステップ6: 削除サマリーの提示

作業完了後、以下の情報を含むサマリーを提示する：

- 削除したファイル/コードの一覧
- 削除できなかった項目（理由付き）
- テスト結果の概要

## 重要な注意事項

**絶対に守ること**:

- テストを実行せずにコードを削除してはならない
- DANGERカテゴリの項目は明示的な許可なしに削除しない
- 1つの変更ごとにテストを実行し、失敗時は即座にロールバック

## レポートテンプレート

```markdown
# デッドコード分析レポート

## 分析日時
{日時}

## 使用ツール
- {ツール1}
- {ツール2}

## 検出結果

### SAFE（安全に削除可能）
- [ ] {ファイル/コード1} - {理由}
- [ ] {ファイル/コード2} - {理由}

### CAUTION（要確認）
- [ ] {ファイル/コード1} - {理由}
- [ ] {ファイル/コード2} - {理由}

### DANGER（削除非推奨）
- {ファイル/コード1} - {理由}
- {ファイル/コード2} - {理由}

## 推奨アクション
1. {アクション1}
2. {アクション2}
```

## 削除サマリーテンプレート

```markdown
# デッドコード削除サマリー

## 削除完了
- {ファイル/コード1}
- {ファイル/コード2}

## 削除スキップ（理由付き）
- {ファイル/コード1}: {理由}

## テスト結果
- 実行前: {パス/失敗}
- 削除後: {パス/失敗}

## 備考
{追加コメント}
```

