--- description: 対話的にユーザーの知識を収集し、最適化されたスキルを作成 --- **コマンドコンテキスト**: 対話を通じてユーザーの知識を収集し、最適化されたスキルファイルを生成・レビューするワークフロー。 スキルのトピック: $ARGUMENTS ## 実行プロセス 以下のステップをTaskCreateで登録し、順番に進行する。 ### Step 1: 事前確認 1. 既存スキルをGlob: `.claude/skills/*/SKILL.md`, `~/.claude/skills/*/SKILL.md` 2. `$ARGUMENTS`が既存スキル名と一致する場合: `/refine-skill`を提案して終了 3. 既存スキル名の一覧をユーザーに提示 ### Step 2: スキル知識の収集 AskUserQuestionで4ラウンドに分けて情報を収集する。 **ラウンド1: スキルの本質** - このスキルはどのドメイン知識を体系化するか?(1-2文) - スキル適用時の主な目的は?(例: 「型安全性の確保」「テストパターンの標準化」) **ラウンド2: プロジェクト固有の価値** LLMのベースライン知識を超える価値があるかを検証する。 - このスキルが体系化するプロジェクト固有のルール・パターン・クラス名・ワークフローは何か? - 具体例を提示する(例: 特定のエラークラス、チーム規約、このコードベース固有のファイルパターン) | ユーザー回答 | アクション | |-------------|-----------| | プロジェクト固有の詳細を提供 | スキルコンテンツに組み込む。ラウンド3へ。 | | 一般知識のみ記述 | 「一般知識のみのスキルは実行時にトリガーされにくい」旨を警告。選択肢を提示: (A) プロジェクト固有の要素を特定する (B) トリガーされにくい可能性を理解した上で進める | **ラウンド3: スコープ、使用場面、ユーザーフレーズ** - どのような場面でこのスキルを有効化すべきか? 具体的なシナリオを3-5個(例: 「ユニットテスト作成時」「セキュリティ観点でのPRレビュー時」) - このスキルが明示的に扱わない範囲は?(スコープ境界) - チームがこの作業を依頼する際に実際に使うフレーズは?(例: 「エラーハンドリング追加して」「リトライロジック見て」「キャッチブロックレビューして」) 収集したフレーズを2カテゴリに分類: | カテゴリ | 定義 | 例 | |----------|------|-----| | **skill-dependent** | スキルの知識なしでは正しく完了できない | 「リトライロジック実装して」「エラーハンドリングレビューして」 | | **pattern-copyable** | 既存コードのコピーで完了可能 | 「fetchXxx関数を追加して」 | 全てpattern-copyableの場合: 「これらの作業は既存コードのコピーで完了できます。このスキルが体系化する隠れたルールが必要なシナリオを提供できますか?」と確認し、少なくとも1つのskill-dependentフレーズを確保する。 **ラウンド4: 判断基準とエビデンス** - 具体的なルールや基準は?(体系化すべき中核知識) - 良い/悪いパターンの具体例は? - このスキルが準拠する外部参照や標準は? - 実践的成果物: 「これらのパターンを実証する既存ファイル、過去の障害例、PR、会話ログはありますか?」(実際の使用に基づいてスキルを根拠付ける) ### Step 3: スキル名と構造の決定 1. 既存の命名規則に従い名詞/動名詞形式のスキル名を導出: - `coding-standards`, `typescript-rules`, `implementation-approach`(名詞/動名詞の複合語) 2. 収集した内容量からサイズを見積もり 3. スキル名と構造をAskUserQuestionで確認 ### Step 4: スキルコンテンツの生成 収集した情報を渡してskill-creatorエージェントをAgent toolで起動: - Mode: creation - Skill name: Step 3のスキル名 - Raw knowledge: ラウンド4の生の知識 - Trigger scenarios: ラウンド3の使用場面 - User phrases: ラウンド3のユーザーフレーズ(skill-dependentとpattern-copyable両方) - Scope: ラウンド3のスコープ - Decision criteria: ラウンド4の判断基準 - Project-specific value: ラウンド2のプロジェクト固有の価値 - Practical artifacts: ラウンド4の実践的成果物(提供された場合) ### Step 5: 生成コンテンツのレビュー skill-reviewerエージェントをAgent toolで起動: - skill-creatorの生成コンテンツを渡す - レビューモード: `creation` グレードC: reviewerの修正提案に基づき修正し再レビュー(最大2回)。 グレードAまたはB: Step 6へ進行。 ### Step 6: ユーザー確認と書き込み 1. 生成したSKILL.mdの内容をユーザーに提示し最終承認を取得 2. 意図の整合性を確認: 「このスキルは説明いただいた知識と基準を正しく反映していますか?」 3. 修正要望がある場合: 変更を適用しskill-reviewerを再実行 4. 承認後、`.claude/skills/{スキル名}/SKILL.md`に書き込み 5. `/sync-skills`の実行を提案 ## 完了条件 - [ ] 既存スキルとの名前衝突がない - [ ] プロジェクト固有の価値をラウンド2で検証済み - [ ] ユーザーフレーズを収集・分類済み(少なくとも1つのskill-dependent) - [ ] スキル名をユーザーが確認済み - [ ] skill-creatorが有効なJSON出力を返却 - [ ] skill-reviewerがグレードAまたはBを返却 - [ ] ユーザーが最終コンテンツを承認済み - [ ] `.claude/skills/{スキル名}/SKILL.md`に書き込み済み - [ ] `/sync-skills`の実行を提案済み ## エラーハンドリング | エラー | アクション | |--------|-----------| | スキル名が既存と重複 | `/refine-skill {スキル名}`を提案 | | 4ラウンドで知識が不足 | 対象を絞った追加質問(最大2問) | | skill-creatorが無効なJSONを返却 | 入力を簡素化して1回再試行 | | 2回のレビューでもグレードC | 現在の内容と問題リストを提示し、ユーザーに判断を委ねる | | ユーザーが生成内容を却下 | 具体的なフィードバックを収集し、調整してskill-creatorを再実行 | ## スコープ境界 **このコマンドが担当**: 対話による知識収集、creatorとreviewerエージェントの連携、ファイル書き込み。 **このコマンドは担当しない**: スキルコンテンツの最適化ロジック(skill-creatorに委譲)、品質評価ロジック(skill-reviewerに委譲)、メタデータ同期(`/sync-skills`に委譲)。