<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>段階的開示 | インフラエンジニアへの道</title>
	<atom:link href="https://www.seichan.org/tag/%e6%ae%b5%e9%9a%8e%e7%9a%84%e9%96%8b%e7%a4%ba/feed" rel="self" type="application/rss+xml" />
	<link>https://www.seichan.org</link>
	<description>DNSからAWSの設計まで、インフラの基礎を連載で</description>
	<lastBuildDate>Thu, 05 Nov 2026 09:00:00 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://www.seichan.org/blog/wp-content/uploads/2026/10/site-icon-2026-150x150.png</url>
	<title>段階的開示 | インフラエンジニアへの道</title>
	<link>https://www.seichan.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Claude Codeスキル入門 第4回】複数のファイルに分ける ― 段階的開示、SKILL.mdは目次、フォルダーの構成、「いつ読むか」の書き方</title>
		<link>https://www.seichan.org/2026/11/ccskill-04-split-files.html</link>
					<comments>https://www.seichan.org/2026/11/ccskill-04-split-files.html#respond</comments>
		
		<dc:creator><![CDATA[seichan]]></dc:creator>
		<pubDate>Thu, 05 Nov 2026 09:00:00 +0000</pubDate>
				<category><![CDATA[生成AI]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[Claude Code]]></category>
		<category><![CDATA[Claude Codeスキル入門]]></category>
		<category><![CDATA[Skills]]></category>
		<category><![CDATA[段階的開示]]></category>
		<guid isPermaLink="false">https://www.seichan.org/?p=10677</guid>

					<description><![CDATA[Claude Codeのスキルを複数のファイルに分ける考え方を解説します。SKILL.mdは必須の指示だけの目次にして詳しい資料は別ファイルへ置く段階的開示、500行未満の目安、scripts・reference・assetsのフォルダーの構成、SKILL.mdから「いつ読むか」を書く方法、参照は1段まで、パスの基準${CLAUDE_SKILL_DIR}まで。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「SKILL.md に手順も注意も例外も書いていたら、どんどん長くなります。全部1つのファイルに入れて大丈夫ですか」<br>「補助のファイルを置いておけば、Claude は必要なときに読んでくれるのですか」</p>



<p class="wp-block-paragraph"><a href="https://www.seichan.org/2026/11/ccskill-03-description.html" target="_blank">第3回</a>までで、スキルの置き場所と SKILL.md の形、そして発動する説明（description）の書き方を見ました。次は、<strong>SKILL.md が育って長くなったときの分け方</strong>です。</p>



<p class="wp-block-paragraph">スキルの本文は、発動するたびに会話（コンテキスト）へ入ります。手順書を1つに詰め込むと、その場面に要らない部分まで毎回読ませることになり、直すのも大変です。かといって別ファイルに分けただけでは、Claude に「いつ読むか」が伝わりません。</p>



<p class="wp-block-paragraph">第4回では、SKILL.md を目次にして詳しい資料を別ファイルに置く<strong>段階的開示</strong>、フォルダーの構成、SKILL.md から「いつ読むか」を書く書き方を扱います。スクリプトの実行と <code>allowed-tools</code> は第5回の「スクリプトは読まずに実行させる」「allowed-tools で事前承認する」です。例には、この連載で作る Ansible の検証スキル <code>ansible-verify</code>（第6回の「題材：検証の6段階」から作り始めます）を使います。数値・仕様は2026年10月時点です。</p>


<div class=".for-sp">
</div>

<div class=".for-pc">
</div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">段階的開示：SKILL.md は目次</a></li><li><a href="#toc2" tabindex="0">フォルダーの構成</a></li><li><a href="#toc3" tabindex="0">SKILL.md から「いつ読むか」を書く</a></li><li><a href="#toc4" tabindex="0">考えてみよう</a></li><li><a href="#toc5" tabindex="0">まとめ</a></li><li><a href="#toc6" tabindex="0">連載「Claude Codeスキル入門」全12回</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">段階的開示：SKILL.md は目次</span></h2>



<p class="wp-block-paragraph">すべてを2,000行の1つのファイルに詰め込むと、コンテキストを大きく使い、保守も大変です。<strong>段階的開示</strong>は、これを解決する考え方です。</p>



<ul class="wp-block-list">
<li>SKILL.md には<strong>必須の指示だけ</strong>を書く</li>


<li>詳しい資料は別のファイルに置き、<strong>必要なときにだけ</strong> Claude に読ませる</li>
</ul>



<p class="wp-block-paragraph">Academy の講座「Introduction to agent skills」（日本語版の名前は「Agent Skills入門」。<a href="https://www.seichan.org/2026/11/ccskill-01-what-is-skill.html" target="_blank">第1回</a>の「あわせて読みたい公式の教材」で紹介した公式の教材）の動画の言い方では、コンテキストの中に文書全体ではなく<strong>目次</strong>を持つ、ということです。</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1153" height="970" src="https://www.seichan.org/blog/wp-content/uploads/2026/10/ccskill04-s024.png" alt="上下に並べた2つの枠の対比図。上の赤い枠「1つの大きなファイル（2,000行）」の中に、赤い文字で「全部がコンテキストに入る」。下の灰色の枠「SKILL.md＋別ファイル」の中に、3つの箱が縦に並ぶ。1つ目は灰色の箱で「起動時」「全スキルの名前と説明」、2つ目は青い箱で「一致したとき」「SKILL.md（500行未満・目次の役）」、3つ目は緑の箱で「必要なとき」「reference/ と scripts/」。3つ目の箱の右に、緑の文字で「必要なときだけ」。図の下に「SKILL.md には必須の指示だけ。詳しい資料は別ファイルへ」と添えている。" class="wp-image-10675" srcset="https://www.seichan.org/blog/wp-content/uploads/2026/10/ccskill04-s024.png 1153w, https://www.seichan.org/blog/wp-content/uploads/2026/10/ccskill04-s024-300x252.png 300w, https://www.seichan.org/blog/wp-content/uploads/2026/10/ccskill04-s024-546x459.png 546w, https://www.seichan.org/blog/wp-content/uploads/2026/10/ccskill04-s024-150x126.png 150w, https://www.seichan.org/blog/wp-content/uploads/2026/10/ccskill04-s024-768x646.png 768w" sizes="(max-width: 1153px) 100vw, 1153px" /></figure>



<p class="wp-block-paragraph">下の2つの箱は、第1回の「読み込みの3段階」で見たのと同じ並びです。起動時には全スキルの名前と説明だけが入り、description が依頼に一致したときに SKILL.md の本文が入り、本文から指された <code>reference/</code> や <code>scripts/</code> のファイルは、<strong>必要になったときにだけ</strong>読まれます。Anthropic の API ドキュメント（Platform）のスキルの説明も、この3段を Level 1（メタデータ、いつも読み込まれる）、Level 2（指示、発動したときに読み込まれる）、Level 3（資料とコード、必要に応じて読み込まれる）と呼んでいます。</p>



<p class="wp-block-paragraph">たとえば <code>ansible-verify</code> では、SKILL.md に<strong>手順と止まるところ</strong>を書き、changed の項目の読み方は <code>reference/</code> の資料に分けます。検証の手順は毎回使いますが、changed の読み方の細かい説明は、差分を確かめるときにしか要らないからです。</p>



<p class="wp-block-paragraph">目安は、<strong>SKILL.md を500行未満に保つこと</strong>です。超えたら、別のファイルに分けられないか考えます。この数字は、Claude Code の公式の文書、Platform のベストプラクティス、オープン標準の仕様（agentskills.io）の3か所に、同じ形で書かれています。</p>



<ul class="wp-block-list">
<li><strong>SKILL.md には必須の指示だけ</strong>を書く</li>


<li>詳しい資料は別ファイルに置き、<strong>必要なときだけ</strong>読ませる</li>


<li>目安は SKILL.md <strong>500行未満</strong></li>
</ul>


<div class=".for-sp">
</div>

<div class=".for-pc">
</div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc2">フォルダーの構成</span></h2>



<p class="wp-block-paragraph">スキルのフォルダーには、SKILL.md のほかに、役割ごとのフォルダーを置けます。</p>



<figure class="wp-block-table"><table><thead><tr><th>場所</th><th>入れるもの</th><th>筆者の例</th></tr></thead><tbody><tr><td>SKILL.md</td><td>手順と、資料を読む条件。唯一の必須</td><td>ansible-verify</td></tr><tr><td><code>scripts/</code></td><td>実行するコード</td><td><code>scripts/verify.sh</code></td></tr><tr><td><code>references/</code>（標準）</td><td>追加の文書</td><td>筆者の例は <code>reference/reading-diff.md</code></td></tr><tr><td><code>assets/</code></td><td>テンプレート・データ</td><td>資料づくりのスキル share-deck は <code>templates/</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>ansible-verify</code> のフォルダーは、次のような形になります。</p>



<pre class="wp-block-code"><code>.claude/skills/ansible-verify/
├── SKILL.md
├── reference/
│   └── reading-diff.md
└── scripts/
    └── verify.sh</code></pre>



<p class="wp-block-paragraph">補足：<code>scripts/</code>・<code>references/</code>・<code>assets/</code> は、オープン標準（agentskills.io）が提案する名前です。標準の仕様では、必須なのは SKILL.md だけで、ほかは任意です。標準の <code>references/</code> は複数形ですが、筆者の例（ansible-verify と、資料づくりのスキル share-deck）は単数形の <code>reference/</code> です。名前は SKILL.md からリンクするので、チームで決めてよく、どれにするかは、チームで使うときの運用ルール（筆者の例）で決めておきます（第8回の「チームで使うときの運用ルール（筆者の例）」）。share-deck は、SKILL.md、reference、templates、scripts などの構成です。この連載の例は、すべて <code>reference/</code>（単数）にそろえます。</p>



<p class="wp-block-paragraph">なお、share-deck の元になった資料づくりのプロジェクトは、<a href="https://www.seichan.org/2026/10/claude-05-claude-code.html" target="_blank">連載「Claude活用入門」第5回</a>の「筆者の実例：資料づくりのプロジェクト」で紹介しています。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc3">SKILL.md から「いつ読むか」を書く</span></h2>



<p class="wp-block-paragraph">別のファイルに分けただけでは、Claude はそのファイルが何で、いつ読めばよいのか分かりません。SKILL.md の側に、<strong>中身と読む時機</strong>を書きます。公式の文書も、SKILL.md から補助ファイルを参照し、各ファイルに何が入っていて、いつ読み込むべきかが Claude に分かるようにするよう書いています。</p>



<ul class="wp-block-list">
<li><strong>リンクに条件を付ける</strong>：例「changed の読み方は <code>reference/reading-diff.md</code> を読む（差分確認のときだけ）」</li>


<li><strong>書かないとどうなるか</strong>：何のファイルか、いつ読むかが Claude に伝わらない。公式も、中身と読む時機が分かるように書くとある</li>


<li><strong>参照は1段まで</strong>：SKILL.md から直接リンクする。資料からさらに別の資料へ辿らせない（Platform のベストプラクティス）</li>


<li><strong>パスの基準</strong>：Claude が <code>cd</code> すると作業フォルダーが動く。公式は、スキルのフォルダーを表す <code>${CLAUDE_SKILL_DIR}</code> を勧める。筆者の例はリポジトリ直下からの相対パス。Code タブで両方動くかは、筆者は確かめていない</li>


<li><strong>「読む」と「実行する」を分ける</strong>：スクリプトは実行する（第5回の「スクリプトは読まずに実行させる」）</li>
</ul>



<p class="wp-block-paragraph">条件の付け方の例です。</p>



<pre class="wp-block-code"><code>悪い例：詳しくは reference/reading-diff.md を参照。
良い例：changed の読み方は reference/reading-diff.md を読む（差分確認のときだけ）。</code></pre>



<p class="wp-block-paragraph">悪い例では、reading-diff.md が何の資料で、毎回読むのか、ときどき読むのかが分かりません。良い例なら、差分を確かめる場面になったときだけ読まれ、それ以外の場面ではコンテキストを使いません。</p>



<p class="wp-block-paragraph"><strong>参照は1段まで</strong>というのは、SKILL.md から <code>reading-diff.md</code> へリンクし、<code>reading-diff.md</code> からさらに別の資料へ辿らせる、という鎖を作らない、という意味です。Platform のベストプラクティスは、すべての資料を SKILL.md から直接リンクするよう勧めています。直接リンクしておけば、必要なときにファイルが最後まで読まれるからです。Platform のベストプラクティスの説明では、資料から別の資料へ辿るような入れ子の参照だと、Claude は <code>head -100</code> のようなコマンドで先頭だけを確かめ、不完全な情報になることがあります。</p>



<p class="wp-block-paragraph"><strong>パスの基準</strong>にも注意が要ります。Claude Code は、コマンドを、セッションのシェルの現在の作業フォルダーで実行します。Claude が途中で <code>cd</code> すると、その作業フォルダーが動いてしまい、相対パスで書いたスクリプトの場所が合わなくなります。公式の文書は、毎回同じように解決させたいパスには、スキルのフォルダーを表す <code>${CLAUDE_SKILL_DIR}</code>（スキルの SKILL.md があるフォルダー）か、プロジェクトのフォルダーを表す <code>${CLAUDE_PROJECT_DIR}</code> を使うよう書いています。</p>



<p class="wp-block-paragraph">筆者の例は、<code>bash .claude/skills/ansible-verify/scripts/verify.sh …</code> のように、リポジトリ直下からの相対パスで書く形です。この形は、CLI の <code>claude -p</code>（2.1.302）で、<code>allowed-tools</code> に書いたうえで確認なしに動くことを確かめました（第11回の手順6）。2.1.289 では承認待ちで、動きませんでした。<code>${CLAUDE_SKILL_DIR}</code> の形と、Code タブでどちらが動くかは、筆者は確かめていません。</p>



<p class="wp-block-paragraph">補足：出典は <a rel="noopener" href="https://code.claude.com/docs/ja/skills" target="_blank">https://code.claude.com/docs/ja/skills</a> （Add supporting files）と <a rel="noopener" href="https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices" target="_blank">https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices</a> です。</p>


<div class=".for-sp">
</div>

<div class=".for-pc">
</div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc4">考えてみよう</span></h2>



<ol class="wp-block-list">
<li>自分の SKILL.md（または、これから書くスキル）で、<strong>特定の場面でしか使わない説明</strong>はどこですか。それを別のファイルに分けるなら、ファイル名と、SKILL.md に書く「いつ読むか」の1文をどう書きますか</li>


<li>「詳しくは reference/ を参照」という1文を、<strong>読む条件の付いた文</strong>に書き直してください。条件は、依頼の種類か、作業の段階で書きます</li>


<li><code>SKILL.md</code> → <code>reading-diff.md</code> → <code>handler-notes.md</code> のように、資料から資料へ辿る構成になっています。参照を1段までにするには、どう直しますか</li>
</ol>



<p class="wp-block-paragraph"><strong>ヒント</strong>：1は「段階的開示：SKILL.md は目次」、2・3は「SKILL.md から「いつ読むか」を書く」の節を見直してください。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc5">まとめ</span></h2>



<ul class="wp-block-list">
<li>段階的開示は、<strong>SKILL.md を目次にして、詳しい資料を別ファイルに置き、必要なときにだけ読ませる</strong>考え方。目安は SKILL.md <strong>500行未満</strong>（公式・Platform・オープン標準の3か所に同じ数字）</li>


<li>起動時は名前と説明だけ、一致したときに SKILL.md、必要なときに <code>reference/</code> や <code>scripts/</code>。第1回の「読み込みの3段階」と同じ並び</li>


<li>フォルダーの構成は、SKILL.md（唯一の必須）・<code>scripts/</code>（実行するコード）・<code>references/</code>（追加の文書）・<code>assets/</code>（テンプレート・データ）。名前は標準の提案で、SKILL.md からのリンクで決まる。この連載は <code>reference/</code>（単数）にそろえる</li>


<li>SKILL.md からは、<strong>条件付きでリンク</strong>する。書かないと、何のファイルで、いつ読むかが伝わらない</li>


<li>参照は<strong>1段まで</strong>。SKILL.md から直接リンクする</li>


<li>パスの基準は、<code>cd</code> で動かない書き方にする。公式は <code>${CLAUDE_SKILL_DIR}</code> を勧める</li>
</ul>



<p class="wp-block-paragraph">次回は、スクリプトを読まずに実行させる書き方、<code>allowed-tools</code> による事前承認と、権限ルールとの関係を扱います。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc6">連載「Claude Codeスキル入門」全12回</span></h2>



<p class="wp-block-paragraph">全回の目次と、読む順番・目的別の読み方は、<a href="https://www.seichan.org/series-ccskill">Claude Codeスキル入門の入口のページ</a>にまとめています。</p>



<ol class="wp-block-list">
<li><a href="https://www.seichan.org/2026/11/ccskill-01-what-is-skill.html" target="_blank">スキルとは何か</a></li>


<li><a href="https://www.seichan.org/2026/11/ccskill-02-skill-md.html" target="_blank">SKILL.mdを書く</a></li>


<li><a href="https://www.seichan.org/2026/11/ccskill-03-description.html" target="_blank">発動する説明を書く</a></li>


<li><strong>複数のファイルに分ける（この記事）</strong></li>


<li>スクリプトとallowed-tools</li>


<li>検証スキルを作る（前編）</li>


<li>検証スキルを作る（後編）</li>


<li>Gitでチームに共有する</li>


<li>うまく動かないとき</li>


<li>演習（前編）：作る・確かめる・発動させる</li>


<li>演習（中編）：分ける・事前承認</li>


<li>演習（後編）：共有と振り返り</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://www.seichan.org/2026/11/ccskill-04-split-files.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
