Claude-skill-registry find-refactoring

コードベースからリファクタリング候補を検出し、優先度付きでGitHub Issueを作成します

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/find-refactoring" ~/.claude/skills/majiayu000-claude-skill-registry-find-refactoring && rm -rf "$T"
manifest: skills/data/find-refactoring/SKILL.md
source content

リファクタリング候補検出コマンド

コードベースを分析し、リファクタリングが必要な箇所を検出してGitHub Issueを作成します。


入力

$ARGUMENTS(対象パス、オプション)

例:

  • /find-refactoring src/
    - src配下を分析
  • /find-refactoring --dry-run
    - Issue作成せずレポートのみ
  • /find-refactoring src/ --min-priority=high
    - 高優先度のみ

前提条件

詳細:

refactoring-detection
skill を参照

ツール必須/任意フォールバック
ast-grep (sg)
必須エラー終了
jscpd
任意重複検出スキップ

全体フロー

Phase名称内容
0入力解析対象パス・オプション解析
0.3言語検出プロジェクト言語の自動判定
0.5ツール確認必須ツールの存在確認
0.7既存Issue確認重複Issue防止チェック
1静的分析コード品質ルール違反の検出
2パターン分析コードスメル・重複の検出
3優先度判定優先度付与、粒度チェック
3.5ユーザー確認
approval-gate
skill
4Issue作成GitHub Issue作成(
--dry-run
時スキップ)

Phase規約:

workflow-phase-convention
skill を参照


サーキットブレーカー

条件アクション
必須ツール不在エラー終了、インストール手順を表示
検出件数0件「問題なし」を報告して終了
検出件数30件超上位15件のみ表示、
--min-priority=high
を提案
Issue作成失敗失敗分をレポート、成功分は継続

Phase 0.3-0.7: 事前準備

言語検出

LANG=$(detect_language)  # typescript / rust / go / python

ツール確認

check_required_tools || exit 1
check_optional_tools

既存Issue確認

EXISTING_ISSUES=$(get_existing_refactoring_issues)

実装詳細:

refactoring-detection
skill を参照


Phase 1-2: 検出実行

検出ルール

カテゴリルール優先度
サイズ500行超過ファイルHigh
サイズ80行超過関数High
サイズ6引数超過関数Medium
型安全
any
型使用
High
型安全``ts-ignore
 skill
使用
Critical
エラー処理空catchブロックHigh
品質
console.log
残存
Medium
品質重複コード(10行以上)Medium

言語別追加ルール

言語ルール優先度
Rust
todo!
/
unimplemented!
残存
High
Rust
unwrap()
多用(5箇所超/ファイル)
Medium

検出パターン詳細:

refactoring-detection
skill を参照


Phase 3: 優先度・粒度判定

優先度基準

優先度対応期限目安
Critical即時
High1週間
Medium2週間
Low余裕時

Issue粒度チェック

実装タスクは200行以下を対象

推定作業行数アクション
200行以下単一Issueとして作成
200行超要分割」注記、
/decompose-issue
リンク付与

工数算出ロジック:

refactoring-detection
skill を参照


Phase 3.5: ユーザー確認

共通仕様:

approval-gate
skill を参照

## 検出されたリファクタリング候補

### サマリー
| 優先度 | 件数 |
|--------|------|
| Critical | {n} |
| High | {n} |
| Medium | {n} |

### 詳細(上位15件)

| # | ファイル | 問題 | 優先度 | 推定工数 | 備考 |
|---|---------|------|--------|---------|------|
| 1 | `src/foo.ts` | 723行(超過) | High | 1h | |
| 2 | `src/bar.ts` | any型 5箇所 | High | 25m | |
| 3 | `src/big.ts` | 1200行 | High | 3h | **要分割** |

### スキップ(既存Issue)
- `src/old.ts`: #45

---
**選択肢**:

1. 全件 → 全件Issue作成
2. High以上 → High以上のみ作成
3. 選択 → 指定番号のみ(例: `3 1,2,5`)
4. 終了 → 作成せず終了

> 番号を選択してください(1-4):

Phase 4: Issue作成

ラベル事前作成

ensure_labels() {
    for label in refactoring automated priority/{critical,high,medium,low}; do
        gh label create "$label" --force 2>/dev/null || true
    done
}

Issueテンプレート

gh issue create \
  --title "refactor: ${TITLE}" \
  --body "## 概要
${PROBLEM}

## 対象
- **ファイル**: \`${FILE_PATH}\`

## 推奨アクション
${ACTION}

## 推定工数
${EFFORT}
${DECOMPOSE_NOTE}

---
*\`/find-refactoring\` により自動生成*" \
  --label "refactoring,automated,priority/${PRIORITY}"

出力形式

成功時

## リファクタリングIssue作成完了

| Issue | タイトル | 優先度 | 推定工数 |
|-------|---------|--------|---------|
| #101 | refactor: src/foo.ts 分割 | High | 1h |
| #102 | refactor: src/bar.ts any除去 | High | 25m |

### スキップ(既存Issue)
- `src/old.ts` → #45

### 次のステップ
1. 実装: `task #101 #102`
2. 大きなIssue分割: `/decompose-issue 103`

dry-run時

## リファクタリング候補レポート(dry-run)

| # | ファイル | 問題 | 優先度 | 推定工数 |
|---|---------|------|--------|---------|
| 1 | `src/foo.ts` | 723行超過 | High | 1h |

### Issue作成コマンド
\`/find-refactoring src/ --min-priority=high\`

完了条件

  • 必須ツール(ast-grep)が利用可能
  • 対象パスの分析が完了
  • 既存Issueとの重複チェック済み
  • 検出結果がユーザーに提示済み
  • 承認されたIssueが作成済み(dry-run以外)
  • 200行超Issueに分割推奨が注記済み

関連スキル

スキル用途
refactoring-detection
skill
検出パターン・工数算出
code-quality-rules
skill
品質ルール定義
issue-size-estimation
skill
Issue粒度判定
approval-gate
skill
ユーザー承認ゲート

変更履歴

バージョン変更内容
v1.2検出ロジックをrefactoring-detectionスキルに分離
v1.1言語検出、ツール確認、既存Issue重複チェック、粒度チェック追加
v1.0初版作成