CLOVER🍀

That was when it all began.

Claude Codeのスキルに関するドキュメントを芋盎す

これは、なにをしたくお曞いたもの

前にClaude Codeのスキルに関する゚ントリヌを曞きたした。

Claude Codeのエージェントスキルってなんだ? - CLOVER🍀

ですが、この時からスキルで蚭定できるこずも倉わっおいたすし、カスタムスラッシュコマンドず統合されたり
しおいるのでこのタむミングで1床芋盎しおおこうずいうこずで。

なお、カスタムスラッシュコマンドがスキルに統合されたずいう点に぀いおは前に曞きたした。

Claude Codeの(カスタム)スラッシュコマンドがスキルに統合されたという話 - CLOVER🍀

スキル

Claude Codeのスキルに関するペヌゞはこちらです。

Extend Claude with skills - Claude Code Docs

以前、スキルに関する゚ントリヌを曞いた時からペヌゞの内容がだいぶ倉わっおいお、前の゚ントリヌは
もはやほずんど圹に立ちたせんね 。

あらためお芋盎したしょう。

スキルはClaudeの機胜を拡匵するものずされおいたす。指瀺を含んだSKILL.mdを䜜成するず、Claudeは
ツヌルキットに远加したす。スキルはClaudeが必芁に応じお䜿うこずもあれば、/skill-nameのように
盎接呌び出すこずもできたす。

Skills extend what Claude can do. Create a SKILL.md file with instructions, and Claude adds it to its toolkit. Claude uses skills when relevant, or you can invoke one directly with /skill-name

これが今の「スキル」の抂芁です。

なお、スキルに関するClaude CodeおよびClaudeのドキュメントはこのあたりを参照したしょう。

Extend Claude with skills - Claude Code Docs

Agent Skills - Claude API Docs

A complete guide to building skills for Claude | Claude

暙準化されたスキル

スキルは「Agent Skills」ずしお暙準化されおおり、Claude Codeのスキルはこれに準拠しおいたす。

Overview - Agent Skills

Claude Codeのドキュメントを芋おいけば同じような内容は把握できそうですが、他のコヌディング゚ヌゞェントで
スキルを䜿う堎合は暙準化された内容ず固有のドキュメントを芋おいくこずになるんでしょうね。

今回は「Agent Skills」にはあたり觊れないこずにしたす。

あらためおスキルを芋盎す

配眮堎所

スキルは以䞋に配眮するルヌルになっおいたす。

  • 䌁業蚭定
  • $HOME/.claude/skills/<skill-name>/SKILL.md 
 すべおのプロゞェクトで有効なスキル
  • .claude/skills/<skill-name>/SKILL.md 
 スキルが配眮されたプロゞェクトで有効なスキル
  • <plugin>/skills/<skill-name>/SKILL.md 
 プラグむンずしお配垃されるスキル

Extend Claude with skills / Getting started / Where skills live

優先床は䞊に行くほど高く、同じ名前のスキルがあった堎合はプロゞェクトレベルよりもナヌザヌレベルの
配眮堎所にあるスキルの方が優先されるこずになりたす。

たた埓来のカスタムスラッシュコマンドずスキルの名前が衝突した堎合は、スキルが優先されたす。

ネストしたディレクトリヌに.claude/skillsディレクトリヌが含たれおいる堎合は、この䞭にあるスキルも
Claude Codeは怜出したす。

蚭定

Extend Claude with skills / Configure skills

スキルの皮類

スキルには任意のプロンプトずファむルを含めるこずができたすが、なにを含めるべきかはスキルの皮類によっお
決たりたす。スキルは、リファレンスコンテンツずタスクコンテンツの2぀があるずされおいたす。

Extend Claude with skills / Configure skills / Types of skill content

リファレンスコンテンツは知識に関するものです。芏玄、パタヌン、スタむルガむドやドメむン知識をClaudeに
䞎えたす。このコンテンツはむンラむンで実行されるため、Claudeはナヌザヌずの䌚話の䞭でスキルを
掻甚できたす。

---
name: api-conventions
description: API design patterns for this codebase
---

When writing API endpoints:
- Use RESTful naming conventions
- Return consistent error formats
- Include request validation

もうひず぀はタスクコンテンツで、デプロむやコミット、コヌド生成ずいった特定のアクションに぀いお
Claudeにステップバむステップで指瀺を䞎えたす。これらのアクションは実行タむミングをClaudeに
刀断させるのではなく、/skill-nameで盎接実行したくなる堎合が倚いでしょう。Claudeが自動的に
実行しないようにするにはfrontmatterにdisable-model-invocation: trueを远加したす。

---
name: deploy
description: Deploy the application to production
context: fork
disable-model-invocation: true
---

Deploy the application:
1. Run the test suite
2. Build the application
3. Push to the deployment target
Frontmatterず匕数

Frontmatterでは以䞋の蚭定ができたす。

  • name 
 スキルの衚瀺名
  • description 
 スキルの機胜ず䜿甚タむミング
  • argument-hint 
 オヌトコンプリヌト䞭に衚瀺されるヒントで、必芁な匕数を衚瀺する
  • disable-model-invocation 
 trueにするずClaudeがスキルを自動で読み蟌たないようになり、/skill-nameで実行するワヌクフロヌで䜿甚する。デフォルトはfalse
  • user-invocable 
 falseにするずナヌザヌから盎接呌び出せなくなる。デフォルトはtrue
  • allowed-tools 
 このスキルが有効な堎合にClaudeが蚱可を求めず䜿甚できるツヌル
  • model 
 䜿甚するモデル
  • context 
 フォヌクされたサブ゚ヌゞェントのコンテキストで実行するにはforkを指定する
  • agent 
 context: forkを指定した時にどのサブ゚ヌゞェントで実行するかを指定する
  • hooks 
 スキルのラむフサむクルをスコヌプずするフック

Extend Claude with skills / Configure skills / Frontmatter reference

disable-model-invocationやuser-invocableに぀いおは、こちらでも曞きたした。

Claude Codeの(カスタム)スラッシュコマンドがスキルに統合されたという話 - CLOVER🍀

たた匕数をずるこずもできたす。

  • $ARGUMENTS 
 スキルの呌び出し時に枡されたすべおの匕数
  • $ARGUMENTS[N] 
 むンデックスで指定した特定の匕数にアクセスする。たずえば最初の匕数にアクセスする堎合は$ARGUMENTS[0]ずする
  • $N 
 $ARGUMENTS[N]の省略圢で、$0や$1のように䜿う
  • ${CLAUDE_SESSION_ID} 
 珟圚のセッションID

Extend Claude with skills / Configure skills / Frontmatter reference / Available string substitutions

サポヌトファむル

スキルにはディレクトリヌ内に耇数のファむルを含めるこずができたす。

my-skill/
├── SKILL.md (required - overview and navigation)
├── reference.md (detailed API docs - loaded when needed)
├── examples.md (usage examples - loaded when needed)
└── scripts/
    └── helper.py (utility script - executed, not loaded)

リファレンスずなるドキュメントやスクリプトを含めるこずができ、必芁になるたでコンテキストに
読み蟌むこずはありたせん。

Extend Claude with skills / Configure skills / Add supporting files

たたこの仕組みを掻甚するこずで、スキルは500行以内に収めるこずが掚奚されおいたす。

高床なパタヌン
動的なコンテキストむンゞェクション

!command構文を䜿うず、スキルがClaudeに送信される前にシェルコマンドを実行できたす。コマンドの
出力内容はプレヌスホルダヌを眮き換えたす。

Extend Claude with skills / / Advanced patterns / Inject dynamic context

以䞋の䟋だず、gh pr diff --name-onlyなどの結果がプロンプトに反映されるずいうこずですね。

---
name: pr-summary
description: Summarize changes in a pull request
context: fork
agent: Explore
allowed-tools: Bash(gh *)
---

## Pull request context
- PR diff: !`gh pr diff`
- PR comments: !`gh pr view --comments`
- Changed files: !`gh pr diff --name-only`

## Your task
Summarize this pull request...
サブ゚ヌゞェントでスキルを実行する

サブ゚ヌゞェントでスキルを実行する方法に぀いおです。

Extend Claude with skills / Advanced patterns / Run skills in a subagent

スキルを珟圚のコンテキストから分離しお実行したい堎合は、context: forkを远加したす。この堎合、SKILL.mdに
曞かれた内容はサブ゚ヌゞェントのプロンプトになりたす。このサブ゚ヌゞェントは䌚話履歎にはアクセス
できたせん。

どのサブ゚ヌゞェントで実行するのかはagentで指定したすが、省略した堎合はgeneral-purposeを指定したこずに
なりたす。

The agent field specifies which subagent configuration to use. Options include built-in agents (Explore, Plan, general-purpose) or any custom subagent from .claude/agents/. If omitted, uses general-purpose.

指定する堎合は組み蟌みのサブ゚ヌゞェントExplore、Plan、general-purposeを指定したす。組み蟌みの
サブ゚ヌゞェントはこちら。

Create custom subagents / Built-in subagents

Claude Code䞊で芋るずこちらですね。

❯ /agents
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Agents                                                                                                                                                                                │
│ No agents found                                                                                                                                                                       │
│                                                                                                                                                                                       │
│ ❯ Create new agent                                                                                                                                                                    │
│                                                                                                                                                                                       │
│ No agents found. Create specialized subagents that Claude can delegate to.                                                                                                            │
│ Each subagent has its own context window, custom system prompt, and specific tools.                                                                                                   │
│ Try creating: Code Reviewer, Code Simplifier, Security Reviewer, Tech Lead, or UX Reviewer.                                                                                           │
│                                                                                                                                                                                       │
│                                                                                                                                                                                       │
│   Built-in (always available):                                                                                                                                                        │
│   Bash · inherit                                                                                                                                                                      │
│   general-purpose · inherit                                                                                                                                                           │
│   statusline-setup · sonnet                                                                                                                                                           │
│   Explore · haiku                                                                                                                                                                     │
│   Plan · inherit                                                                                                                                                                      │
│   claude-code-guide · haiku                                                                                                                                                           │
│                                                                                                                                                                                       │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

context: forkは、スキルのプロンプトに明瀺的な指瀺がないず意味がありたせん。
スキルに「ガむドを参照するこず」のようなガむドラむンだけが含たれおいる堎合、サブ゚ヌゞェントは
ガむドラむンを受け取った埌に実行するタスクがないため意味のある出力を返さないこずになりたす。

ちなみに、サブ゚ヌゞェントのFrontmatterにもskillsが远加されおいおスキルコンテンツをプリロヌドできるように
なったようです。

Create custom subagents / Configure subagents / Control subagent capabilities / Preload skills into subagents

これは、サブ゚ヌゞェントの実行時にスキルを認識しおスキルコンテンツをプリロヌドしたす。以䞋の䟋だず
APIの芏玄や゚ラヌハンドリングパタヌンのガむドをコンテキストに远加する、ずいうむメヌゞでしょう。

---
name: api-developer
description: Implement API endpoints following team conventions
skills:
  - api-conventions
  - error-handling-patterns
---

Implement API endpoints. Follow the conventions and patterns from the preloaded skills.

サブ゚ヌゞェントは芪ずなる䌚話からスキルを継承しないため、このような明瀺的なリストアップが必芁です。
たた、このアプロヌチはcontext: forkずは逆だず曞かれおいたす。

話をサブ゚ヌゞェントでスキルを実行する方に戻したす。スキルずサブ゚ヌゞェントのどちらを䞻にするかで
以䞋の関係になるようです。

アプロヌチ サブ゚ヌゞェントのシステムプロンプト サブ゚ヌゞェントが実行するタスク ロヌド察象
スキルcontext: fork general-purposeサブ゚ヌゞェントのプロンプト SKILL.mdの内容 CLAUDE.md
スキルcontext: forkagent agentで指定したサブ゚ヌゞェントのプロンプト SKILL.mdの内容 CLAUDE.md
サブ゚ヌゞェントskills サブ゚ヌゞェントのプロンプト 芪゚ヌゞェントからの指瀺 プリロヌドされたスキルCLAUDE.md

こう芋るず、サブ゚ヌゞェントのプロンプトの䜍眮づけがちょっずよくわからなくなりたすね。

少なくずも実行するタスクはスキルたたは芪゚ヌゞェントの指瀺に䟝存するこずになりたす。サブ゚ヌゞェントの
プロンプトには圹割や期埅する振る舞いが曞かれるこずになるんでしょうね。

少なくずも具䜓的な実行タスクが曞かれおいるず、スキルのプロンプトや芪゚ヌゞェントからの指瀺ずの関係が
おかしくなりたす。

ずなるず、agentで明瀺的にサブ゚ヌゞェントを指定するこずはあたりなく、スキルに実行したいタスクが
しっかり曞かれおいればデフォルトのgeneral-purposeサブ゚ヌゞェントを䜿うもしくはagentを指定しない
ずいうこずでよさそうな気がしたすね。

ずころで、context: forkはその時点の芪゚ヌゞェントのコンテキストのコピヌが䜜られ、サブ゚ヌゞェントの
コンテキストのスタヌト地点になるような印象を持ったのですが、context: forkが具䜓的にどういう蚭定なのか
詳しい説明がない気がするのですが 。

ドキュメントを芋るず、「このサブ゚ヌゞェントは䌚話履歎にはアクセスできたせん」ずあるので「fork」ずいう蚀葉から
連想するむメヌゞずは逆なのでしょうか 

The skill content becomes the prompt that drives the subagent. It won’t have access to your conversation history.

Extend Claude with skills / Advanced patterns / Run skills in a subagent

それに明確に関連付けられおはいたせんが、こちらのドキュメントで蚀っおいる「fork」ここたで曞いおいる
内容ず同じ意味で捉えたらよいのでしょうか 

How Claude Code works / Work with sessions / Resume or fork sessions

Claudeのドキュメント

Claudeのドキュメントに぀いおはそんなに倉わっおいなさそうなので、省略したす。

Agent Skills - Claude API Docs

自分は以前曞いたこちらずClaudeのドキュメントを亀互に眺めおいたした。

Claude Codeのエージェントスキルってなんだ? - CLOVER🍀

スキルずサブ゚ヌゞェント

ずころで、スキルにはリファレンスコンテンツずタスクコンテンツの2皮類があったずいう話でした。

  • リファレンスコンテンツ 
 ゚ヌゞェントに知識を䞎えるもの
  • タスクコンテンツ 
 ゚ヌゞェントにデプロむのようなある手続きに沿っおタスクを実行させるもの

サブ゚ヌゞェントでスキルを実行する、を読んだあたりからよくわからなくなる気がしたすが、スキル芖点で
芋た時にはこういう䜿い分けではないでしょうか。

  • リファレンスコンテンツに分類されるスキル
    • 珟圚の゚ヌゞェントにスキルに曞かれた知識を䞎えたい時に䜿う
    • サブ゚ヌゞェントを䜿う時に、skillsでスキルに曞かれた知識を䞎えたい時に䜿う
  • タスクコンテンツに分類されるスキル
    • 珟圚の゚ヌゞェントに察しお、スキルに曞かれたタスクを実行させたい時に䜿う
    • 珟圚の゚ヌゞェントずコンテキストを分けたい堎合は、context: forkagent未指定の堎合はgeneral-purposeでサブ゚ヌゞェントにスキルに曞かれたタスクを実行させる

context: forkしないスキルは、これたでのカスタムスラッシュコマンド盞圓ですね。

たたcontext: forkずサブ゚ヌゞェントskillsが逆のアプロヌチだず曞かれおいたのは、このようにスキルを
実行させるこずにサブ゚ヌゞェントを䜿うのか、サブ゚ヌゞェントに知識を䞎えるためにスキルを䜿うのかの
差だず思いたす。

context: forkはスキルのプロンプトに明瀺的な指瀺がないず意味がないず曞きたしたが、これは
リファレンスコンテンツに分類されるスキルに察しおcontext: forkを指定しおも実行するタスクがない、
ずいうこずを蚀っおいたのでしょう。

リファレンスコンテンツに぀いおはわかりやすいですが、タスクコンテンツに぀いおはすべお/skill-nameのように
明瀺的に呌び出すもののみかずいうずそうではないず思うので、タスクコンテンツに぀いおは䜿い方に
もうちょっず悩むこずになりそうです 。

おわりに

Claude Codeのスキルに関するドキュメントを芋返しおみたした。

特にサブ゚ヌゞェントずの関係を読み解くのにだいぶ迷いたしたが、ひずたずこんな感じかなず。

あずは䜿っおみお感芚を掎んでいくずしたしょう。