---
name: save-skill
description: 作業中に発見した汎用パターンを Claude Code スキルとして保存する。 「これスキルにして」「パターンを保存」「スキル化」などの依頼時に使用する。 既存スキルの修正・削除には使わないこと（手動で編集する）。
argument-hint: 'パターンの説明（例: "楽観的更新のパターン"）'
allowed-tools: Read, Write, Glob, Grep, Bash(ls *), Bash(mkdir *)
---

# スキル保存フロー

## Use when

- 会話中に発見した汎用パターンをスキルとして保存したいとき
- 「これスキルにして」「パターンを保存」などの依頼があったとき
- 繰り返し使えるワークフローを定型化したいとき

## Don't use when

- 既存スキルの修正・削除（→ 手動編集）
- 一度きりの手順（→ スキル化不要）
- プロジェクト固有の設定変更（→ /implement）

## 進捗管理

スキル開始時に全ステップを TaskCreate で登録し、各ステップの開始・完了時に TaskUpdate で状態を更新すること。

タスク一覧:

1. Step 1: パターン分析（activeForm: "パターンを分析中"）
2. Step 2: スキル設計（activeForm: "スキルを設計中"）
3. Step 3: スキル生成（activeForm: "スキルを生成中"）
4. Step 4: 検証（activeForm: "スキルを検証中"）

---

以下の 4 ステップを順に実行する。各ステップを飛ばさないこと。

## タスク

$ARGUMENTS

---

## Step 1: パターン分析

会話の文脈からスキル化するパターンを抽出する。

1. **パターン抽出**: 会話文脈から保存すべきパターンの核心を特定する
2. **重複チェック**: 既存スキルと重複しないか確認する
   - グローバル: `~/.claude/skills/` を Glob で検索
   - プロジェクト: `.claude/skills/` を Glob で検索
3. **スコープ判定**: パターンの汎用性を判断する
   - **グローバル**（言語・フレームワーク横断）→ `~/.claude/skills/{name}/`
   - **プロジェクト固有**（特定技術スタック依存）→ `{project}/.claude/skills/{name}/`

重複がある場合はユーザーに報告し、続行するか確認する。

---

## Step 2: スキル設計

スキルの構成を決定し、ユーザーに確認を取る。

1. 以下を決定する:
   - **name**: kebab-case のスキル名
   - **description**: 3行構成（下記の品質基準に従う）
   - **argument-hint**: 引数の説明例
   - **allowed-tools**: 必要なツールのみ列挙
   - **セクション構成**: 各セクションに含める内容の概要

2. description の品質基準:

```
1行目: 何をするか（動詞で開始）
2行目: いつ使うか（トリガーキーワード・ファイル種別・アクション動詞を含める）
3行目: いつ使わないか（代替手段への誘導）
```

3. **ユーザーに設計内容を提示して確認を取る**（承認後に Step 3 へ進む）

---

## Step 3: スキル生成

承認された設計に基づいてスキルファイルを作成する。

1. ディレクトリを作成する: `mkdir -p {スコープに応じたパス}/{name}`
2. `SKILL.md` を以下のフォーマットで書き出す:

```markdown
---
name: {name}
description: {何をするか} {いつ使うか} {いつ使わないか}
argument-hint: '{引数の説明例}'
allowed-tools: {必要なツール}
---

## Overview

パターンの概要・目的（2-3行）。

## When to Use

- 使用すべき具体的状況1
- 使用すべき具体的状況2
- ...

## Instructions

ステップバイステップの手順。

1. ...
2. ...
3. ...

## Examples

具体的なコード例・入出力例。

## Guidelines

- 注意事項・ベストプラクティス
- アンチパターン
- ...
```

---

## Step 4: 検証

生成したスキルファイルの品質を確認する。

### チェックリスト

- [ ] ファイルが正しいパスに存在する
- [ ] YAML frontmatter が正しい形式である（name, description, argument-hint, allowed-tools）
- [ ] description が3行構成になっている
- [ ] 必須セクションが全て含まれている（Overview / When to Use / Instructions / Examples / Guidelines）
- [ ] 内容が具体的で、第三者が読んでも実行できる

### 完了報告

```
## スキル保存完了
- スキル名: {name}
- 保存先: {ファイルパス}
- スコープ: グローバル / プロジェクト固有
- セクション: Overview, When to Use, Instructions, Examples, Guidelines
- 使い方: /{name} {引数}
```
