extract-liblisted
Install: claude install-skill satoh-y-0323/claude-code-conductor
# extract-lib
複数プロジェクトのコードを横断解析し、共通要素を抽出してライブラリ設計・スケルトン生成を行う。
---
## Step 0: 規約ファイルを読み込む
`.claude/rules/coding-standards.md` と `.claude/rules/project-conventions.md` を Read する。
**どちらも存在しない場合:** 以下を表示して終了する:
```
規約ファイルが見つかりません。先に /setup を実行してプロジェクト規約を設定してください。
```
**存在する場合:** 以下を抽出して以降のステップで使用する:
- 使用言語・フレームワーク(ファイル拡張子含む)
- 命名規則(クラス名・関数名・定数名のパターン)
- ファイル・ディレクトリ構成の慣習
- その他の重要な規約
---
## Step 1: 解析対象プロジェクトのパスを収集する
### 1回目のパス入力
AskUserQuestion ツール:
```json
{
"questions": [{
"question": "解析対象の1つ目のプロジェクトの絶対パスを入力してください(例: C:/work/project-a)"
}]
}
```
Glob で `{入力パス}/**` を検索してパスが存在するか確認する。存在しない場合は「パスが見つかりません」と伝えて再入力させる。
### 2回目以降のパス追加
AskUserQuestion ツール:
```json
{
"questions": [{
"question": "別のプロジェクトを追加しますか?",
"header": "パス追加",
"options": [
{ "label": "追加する", "description": "さらに別のプロジェクトパスを入力する" },
{ "label": "これで完了", "description": "入力済みのプロジェクトで解析を開始する" }
]
}]
}
```
「追加する」の場合は続けてパスを入力・検証し、「これで完了」になるまで繰り返す。
入力済みプロジェクトが1つのみの状態で「これで完了」が選ばれた場合は「最低2プロジェクト必要です」と伝えて再度選択させる。
---
## Step 2: 出力形式を確認する
AskUserQuestion ツール:
```json
{
"questions": [{
"question": "解析結果をどの形式で出力しますか?",
"header": "出力形式",
"options": [
{ "label": "設計のみ", "description": "共通化候補リストとライブラリ設計案をレポートとして出力する" },
{ "label": "設計 + スケルトン生成", "description": "設計案に加えてライブラリのスケルトンコードも生成する" }
]
}]
}
```
「設計 + スケルトン生成」が選ばれた場合、続けて出力先を確認する:
```json
{
"questions": [{
"question": "生成するライブラリの出力先ディレクトリの絶対パスを入力してください(例: C:/work/shared-lib)"
}]
}
``