Claude Code: スキルをサブエージェントで動かす2つの方法(context: fork / skills: 先読み)
スキルを読むたびにメインの会話が長くなる問題は、①スキル側に context: fork を書いて別コンテキストで実行する、②サブエージェント側の skills: に列挙して起動時に先読みさせる、の2通りで解決できる。
どんな時に使う?
- 調査・レポート作成など「手順が決まっていて結果だけ欲しい」スキル → ①
- 「API実装担当」「進捗ダッシュボード担当」のように、特定の知識を常に持たせた専門エージェントを作りたい → ②
手順
① スキル側(.claude/skills/deep-research/SKILL.md)
yaml
---
name: deep-research
description: Research a topic thoroughly
context: fork
agent: Explore # 実行するサブエージェントの種類
# background: false # 結果を待ってから続けたいとき
---
$ARGUMENTS を調べる:
1. Glob/Grep で関連ファイルを探す
2. 読んで分析する
3. ファイル参照つきで要約する② サブエージェント側(~/.claude/agents/api-developer.md)
yaml
---
name: api-developer
description: Implement API endpoints following team conventions
skills:
- api-conventions
- error-handling-patterns
---
チームの規約に従って API を実装する。違いの整理
| システムプロンプト | タスク | 会話履歴 | |
|---|---|---|---|
① context: fork | agent の種類のもの | SKILL.md の本文 | 見えない |
② skills: 先読み | サブエージェント本文 | 親からの依頼文 | 見えない |
注意点
- ① は手順が書かれたスキル専用。「この規約に従え」だけのガイドライン型スキルを fork すると、やることが無く空振りする。
- ① は既定でバックグラウンド実行。編集は checkpoint 外なので
/rewindで戻せない(git で戻す)。 agent: Explore/Planは CLAUDE.md を読まない。- ② で
disable-model-invocation: trueのスキルは先読みできない。