CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/Claude Code
Claude Code/2026-05-30中級

SKILL.md の後半が読まれていなかった話 — 200行に収める設計と progressive disclosure

Codex CLI が SKILL.md を約220行で読み止める観測をきっかけに、エージェントが実際に読む長さと、SKILL.md を200行以内に収める設計・references への退避の考え方を整理しました。

Claude Code198SKILL.md6Agent Skills2progressive disclosure

自分で書いた SKILL.md を、エージェントは本当に最後まで読んでいるのか。これは私もずっと曖昧にしていた問いでした。4 つの技術ブログの記事生成スキルを書いていると、SKILL.md がどんどん長くなります。注意事項、禁止パターン、品質ゲートの説明、他スキルとの連携手順。気づけば 1,000 行を超えていました。そこに、ある観測記事が刺さりました。

Codex CLI が SKILL.md を読むとき、ログを追うと sed -n '1,220p' という形のコマンドが並んでいた、という観測です。441 行のスキルなら、後半の 221 行は出力に含まれません。しかも複数タスクを通すと、読み取りの最も深い行がきっかり 220 前後に揃っていた、という再現性のある話でした。これは「自分が書いたつもりの SKILL.md と、エージェントが実際に読む SKILL.md は別物かもしれない」という、運用者には無視できない指摘です。

なぜ220行で止まるのか

最初は CLI のバグを疑いたくなります。でも観測の結論はそうではありませんでした。Codex CLI にはファイル読み取り専用のツールがなく、ファイルを読むことはシェルコマンドを生成して実行することと同義です。だから自然言語でスキルを選ばせた経路では、「SKILL.md の本文を読む」が「sed を打つ」になります。そして sed -n '1,220p' という文字列は、ハーネスではなくモデルが組み立てたものでした。

ではなぜ毎回 220 付近なのか。観測者の見立ては「220 はモデルが想定している SKILL.md の長さ」というものです。一般のコードファイルを読むときは行数がばらつきますが、スキルを読むときのモデルの状況は一種類しかありません。Agent Skills の標準は本文を短く保つ設計で、長い仕様やサンプルは references/ に逃がし、SKILL.md 本体には「いつ使うか」「どう進めるか」だけを書きます。仕様どおりに書かれた SKILL.md はだいたい 200 行に収まる。だから「まともなスキルの長さ + 少しの余白」が 220 あたりに出てくる、という解釈です。

重要なのは、これが「220 行で打ち切れ」という上限の指示ではなく、モデルにとっての「SKILL.md を 1 本まるごと読む」イディオムだという点です。仕様どおりに短く書かれていれば、220 行でも全文読めています。問題が出るのは、想定の長さを超えたスキルだけです。

ハーネスによって挙動が変わる

ここは誤解しやすいので補足します。この打ち切りは、すべての環境で起きるわけではありません。skill ツール呼び出し型のハーネス、つまり Claude Code のように本文をハーネス側が事前に丸ごと読み込んでモデルに渡す経路では、sed の出番がないため、この上限が表に出ません。観測でも、Claude Code 経路では 441 行のスキルが毎回 441 行で配信されていた、とされています。

つまり問題の核は「Codex というツール」ではなく、「ファイルを読むならモデル自身がシェルコマンドを書く」というアーキの形にあります。自分のスキルを Codex を含む複数のエージェントに横断利用させたいなら、最も保守的な前提に合わせて書くのが安全です。そしてその保守的な前提とは、結局「SKILL.md は短く」という、もともとの仕様が言っていたことそのものでした。

何が後半に置かれがちか

私が自分の SKILL.md を見直して冷や汗をかいたのは、まさに後半に置いていた内容です。観測記事でも、220 行より後ろに置かれていたのは anti-patterns、想定される逸脱(drift)のパターン、stop condition、他スキルとの連携手順だった、と指摘されています。要するに「こう雑になるな」「ここまで来たら止まれ」という、いちばん指示の強い部分です。

これは皮肉な構造です。エージェントを止めたり軌道修正させたりするための記述ほど、安全のために後ろにまとめたくなります。でもその「止めろ」の側こそ、後半に置くと読まれない。私の記事生成スキルでも、品質ゲートの禁止パターンや push 直前チェックを末尾に固めていたので、横断利用の文脈では同じ穴に落ちていた可能性があります。

200行以内に収める書き方

直す方向は、ツールを変えることではなく、モデルの前提に合わせることです。観測値そのものは 220 でしたが、マージン込みの数字なので、自分で上限を引くなら 200 に取るのが安全だと私も考えています。具体的には次の 3 点です。

  • SKILL.md 本体は 200 行以内に収める
  • Iron Law(絶対則)・使う場面・コア手順・最小限の例は、最初の 200 行に必ず入れる
  • 長い例・anti-patterns・参照ドキュメントは references/ に退避する

references/ への退避は、単に行数を削るためではありません。progressive disclosure(段階的開示)の考え方そのものです。起動時に読み込まれるのは各スキルの名前・説明・パスだけで、本文はそのスキルを使うと決めたときに読まれます。さらに細かい仕様は、必要になったエージェントが references/ を個別に読みにいきます。本体に「いつ・どう」を、references/ に「詳細」を置くと、この開示の流れに自然に乗ります。

私自身、個人開発で 4 つの技術ブログを一人で回す中で、運用スキルを「本体は判断と手順、詳細ドキュメントは別ファイル」に分け直しました。すると、スキルが意図どおりに発火しやすくなった実感があります。2014年からアプリを作り続けてきた感覚として、ドキュメントは育てるほど長くなるものですが、1,000 行の本体に全部を詰め込んでいた頃は、肝心の禁止パターンが効いていない記事が混ざることがありました。

今日できる確認

もし手元に長い SKILL.md があるなら、まず本体の行数を数え、200 行を超えているなら「最初の 200 行に Iron Law と stop condition が入っているか」を確認してみてください。入っていなければ、その部分を冒頭へ繰り上げ、長い例や anti-patterns を references/ に移すところから始められます。

書いた SKILL.md と、エージェントが実際に読む SKILL.md が同じ長さでないかぎり、両者は別の文書です。この前提を踏まえて、テンプレートと判断基準で出力を安定させる具体的な設計は、効くスキルの設計 — テンプレート固定と判断基準で出力を安定させるで掘り下げました。スキルではなくスクリプトでオーケストレーションする選択肢については、Dynamic Workflow を動かして掴んだサブエージェント並列実行の勘所が参考になるはずです。

最後までお読みいただき、ありがとうございました。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Claude Code2026-05-30
効くスキルの設計 — テンプレート固定と判断基準で Claude Code の出力を安定させる
Claude Code のスキルで毎回ブレる出力を安定させるための実践設計。いつ使うかの明示、判断基準テーブル、references テンプレートでの品質固定、トレーサビリティ規則を、実運用のコード付きで解説します。
Claude Code2026-06-13
編集した SKILL.md が反映されない — /reload-skills と .claude/skills 自動ロードで再起動なしに差し替える
SKILL.md を編集しても実行中のセッションには反映されません。.claude/skills 自動ロードと /reload-skills、SessionStart フックを組み合わせた再起動なしの差し替え運用と、版番号による検証手順を実運用の経験から整理します。
Claude Code2026-05-10
Claude Code の SKILL.md に grep ガードを仕込んで、AI 生成記事のテンプレ語句を push 前に弾く
Claude Code の Skill にプロンプトだけで品質指示しても、毎日大量に記事を生成していると徐々にテンプレ語句がすり抜けてきます。SKILL.md の最終ステップに grep ガードを差し込んで、違反を検出したら再生成に戻す仕組みを、4サイト運用の実例から紹介します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →