save について
saveは、現在の会話を再利用可能なエージェント指示ファイルにまとめ、`.claude/agents/` に保存するスキルです。内容の整理、ファイル形式、保存先の案内を定めています。
主な機能
- 01会話をエージェントプロンプトに整理
- 02ユーザーの修正をルールに反映
- 03YAMLフロントマターと必須セクション
- 04`.claude/agents/` への保存
- 05保存先と呼び出し方法の案内
活用シーン
- 01完了したタスクから再利用可能なエージェントを作成
- 02ユーザーの修正を今後のエージェントルールに反映
- 03リポジトリ単位のエージェントプロンプトを共有
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ workersio/ skills --skill saveインストール後、Claude Code で/saveを入力して読み込まれたか確認します。
詳細
セッションをエージェントとして保存する
現在の会話から再利用可能なエージェントファイルを生成し、.claude/agents/ に保存します。
手順
ステップ 1:エージェントファイルを生成する
元のタスク、ユーザーによるすべての修正、すべてのツール呼び出し、最終出力を含む会話全体を分析し、再利用可能なエージェントファイルにまとめます。エージェントファイルはセッションログではありません。事前のコンテキストがない状態でサブエージェントが受け取るシステムプロンプトです。
重要な優先事項:
- ユーザーによる修正が最も重要な手がかりです。 修正のたびに、エージェントが最初に誤っていたルールが示されます。各修正を必ず明示的なルールにしてください。
- うまくいったことだけを記録します。 アプローチ A が失敗し、アプローチ B が成功した場合は、アプローチ B だけを記載します。
- 一般化します。 ファイル名、URL、認証情報など、セッション固有の値は説明的なプレースホルダーに置き換えます。エージェントは今回と同じタスクだけでなく、類似のタスクにも対応できる必要があります。
- 簡潔にします。 サブエージェント向けのシステムプロンプトなので、短いほど適切です。
YAML フロントマターの後にシステムプロンプト本文を続けて、エージェントファイルを出力します。
---
name: "<kebab-case-name>"
description: "<one-liner, max 200 chars>"
tools: Read, Glob, Grep, Bash, Write, Edit
model: sonnet
---
You are an agent that <role description — what this agent does>.
## Behavior
1. <First step the agent should take>
2. <Next step>
3. <...>
## Rules
- <Rule derived from user correction or session learning>
- <Another rule>
## Output
<What the agent should produce — format, structure, location.>
フロントマターの制約
name— 必須。kebab-case で、100 文字以内description— 必須。200 文字以内tools— 必須。エージェントに必要なツールをカンマ区切りで列挙します(次から選択:Read、Glob、Grep、Bash、Write、Edit、WebFetch、WebSearch)model— 必須。より高度な推論が明らかに必要な場合を除き、sonnetを使用します(その場合はopus)
本文の制約
- 役割を説明する 1 文から始めます:「あなたは、…を行うエージェントです。」
- Behavior セクション:エージェントが行う処理を順番に番号付きで記述します。
- Rules セクション:制約とガイドラインを箇条書きにします。セッションでのユーザーによる修正をすべてここに記載します。
- Output セクション:エージェントが生成するものと、その形式を記述します。
- すべてのセクションが必須です。
ガイドライン
- 形式的な「しなければならない」という要件ではなく、自然な言葉で指示を書きます。
- 具体的に記述します。「適切なツールを使う」ではなく、「Excel ファイルには openpyxl を使う」のようにします。
- セッション固有の詳細(この実行で使用した具体的なファイル名、URL、認証情報、データ値など)は含めないでください。
- パターンは一般化します。具体的な値は
<input-file>、<target-url>のような説明的なプレースホルダーに置き換えます。 - 成功した手順だけを含め、失敗した試行は含めないでください。
- エージェントファイルは自己完結している必要があります。サブエージェントが必要とするのは、このプロンプトと入力のみです。
ステップ 2:エージェントファイルを保存する
エージェントファイルの内容を生成したら(--- から開始):
-
YAML フロントマターから
nameを抽出します。すでに kebab-case なので、そのままスラッグとして使用します。 -
.claude/agents/ディレクトリが存在しない場合は作成します:mkdir -p .claude/agents -
Write ツールを使用して、エージェントファイルの内容を
.claude/agents/{name}.mdに書き込みます。
ステップ 3:結果を表示する
エージェントを .claude/agents/{name}.md に保存したことをユーザーに伝えます。どの会話でも @{name} を使って呼び出せることを知らせます。エージェントはリポジトリに保存されるため、リポジトリにアクセスできる全員が自動的に共有できます。
コメント
Markdown 対応