ブログ

Shopifyの「スプリットブレイン」はファイル名の争いではない。ドリフトであり、標準ファイルを一つ決めても終わらない

September 15, 2026untactit

2026年8月25日、Shopify CEOのTobi Lütke氏は「AGENTS.mdと.agents/skillsを読むようになるまで、ShopifyでClaude Codeを禁止することを考えている」と投稿した。理由は好みではなく、運用上の故障モードだ。「CLAUDE.mdしか読まないことに固執すると、チームメンバーが別々のツールを使っている場合にスプリットブレイン問題が起きることがある」(出典)

その後の報道で明らかになった仕組みは、書き出しておく価値がある。数千人の開発者が触るモノレポでは、どこかのディレクトリが必ず片方の指示ファイルだけを持ち、もう片方を持たない状態になる。欠けた方を読むエージェントは「ロボトミー状態」で動く。Shopifyは自動化でその隙間を埋めているが、Lütke氏はそれを「愚かな複雑性の税金」と呼んだ。Anthropicは再帰的なAGENTS.md対応の要望を「計画なし」でクローズしたのち、AGENTS.mdを使いやすくすると表明した。(Shopifreaksexplainx)

論評の大半はこれを標準規格の争いとして扱った。Linux FoundationのAgentic AI Foundationが管理するAGENTS.md(Shopifyはゴールドメンバー)対、ベンダー固有のCLAUDE.md。その見立ては正しいが、不完全だ。Shopifyを噛んだものは、ファイル名より古く、より一般的だ。

リポジトリの実態

2026年2月に公開された研究は、エージェント型コーディングツールを使う2,926のGitHubリポジトリを分析し、設定メカニズムを分類した。(arXiv 2602.14690) ここで重要な数字は三つ。

  • コンテキストファイル(CLAUDE.md、AGENTS.md、copilot-instructions.md)が支配的なメカニズムであり、リポジトリが使う唯一の手段であることも多い。
  • 2,634リポジトリに4,860個のコンテキストファイルが見つかった。CLAUDE.mdはリポジトリの45.4%、AGENTS.mdは40.6%、copilot-instructions.mdは35.1%に存在した。
  • 合計は100%を大きく超える。多くのリポジトリが、同じことを言うはずの指示ファイルを二つ三つ抱えている。

研究はまた、Cursorが.cursorrulesを非推奨にしてAGENTS.mdを推奨したこと、copilot-instructions.mdから始めたリポジトリが後からCLAUDE.mdやAGENTS.mdを追加することが多いこと(Copilotは全部読めるにもかかわらず)を記している。チームは一つのファイルに収斂していない。ファイルを蓄積している。

ここに、研究が測っていない第二の軸を足す。マシンだ。開発者は全員それらのファイルの写しを持ち、加えてユーザーレベルの写し(~/.claude、~/.codex、~/.cursor)を持ち、さらにAgent Skills標準が.agents/skillsや.claude/skillsに置くものを持つ。標準そのものは良いことだ。SKILL.mdはClaude CodeとGitHub Copilotが実装し、CursorとGemini CLIが採用しているので、同じスキルフォルダがツール間を移動できる。ただし「そのまま動く」が説明しているのはフォーマットであって、写しではない。可搬なファイルも、コピーされるファイルであることに変わりはない。

スプリットブレインは、名前が二つあるドリフトだ

Shopifyの故障を生む手順はこうで、ベンダーが二社いる必要はない。

  1. ルールが一度、一つのファイルに、一つのディレクトリに書かれる。
  2. 誰かがそれをコピーする。ツールが別のファイル名を読むから、サブディレクトリに必要だから、自分のノートPCに必要だから。
  3. 誰かが一つの写しを編集する。ビルドコマンドが変わる。あるチームだけテストルールが緩められる。パスが移動する。
  4. 写しが分岐したことを誰にも知らせるものがない。古い写しを読んだエージェントは言われた通りに動き、そして間違う。

問題の全部は4だ。1から3は普通のエンジニアリングだ。明日業界がAGENTS.mdに統一し、Claude Codeがそれをネイティブに読むようになっても、2はディレクトリとマシンをまたいで起き続け、4は静かに起き続ける。一つのファイル名の中でスプリットブレインが起きる。

標準化の作業は必要だ。掛け算の係数を一つ消す。しかし仕組みは消えない。

仕組みを消すもの

正直な答えは二つあり、どちらも今日、何も買わずに使える。

写しを手で編集するのをやめる。 ルールごとに正本を一つ持ち、ツール固有のファイルは全部そこから生成する。最小版はシンボリックリンクだ(AGENTS.md → CLAUDE.md。Lütke氏の投稿の週に多くのチームがやったこと)。次の段階は、一つのYAMLかMarkdownからAGENTS.md、CLAUDE.md、copilot-instructions.md、skillsディレクトリを書き出す生成スクリプトだ。ルールは単純で、生成されたファイルは人が触らない。変えたいなら正本を変えて再生成する。

それでも触られたことを検出する。 修正が急ぎで正本が別の場所にあれば、人は生成ファイルを編集する。だからCIと定期実行で、ツリー内の全コンテキストファイルと全SKILL.mdをハッシュし、同一であるべきものをグループ化し、分岐したものを差分つきで報告する検査を回す。私たちはまさにこの走査をディレクトリツリー全体に対して行う小さなオープンソースツール、agent-driftを公開している。サービスは不要で、ファイルを読み、同じ文書のどの写しが割れたかを表示する。要点はツールではない。ドリフトが、壊れたコードを出荷したエージェントによって発見される驚きではなく、報告されるイベントになることだ。

この二つをやれば、ファイル名の問題は本来あるべき姿、つまり生成器が処理する互換性の細部になり、CEOがツールの禁止をちらつかせる理由ではなくなる。

この先

Agent Skills標準とAGENTS.mdは同じ方向を押している。指示ファイルを、個人のメモではなく、バージョン管理され共有され検査可能な資産として扱う方向だ。多くのチームにまだ欠けているのは、他の共有資産がすでに持っている運用層だ。コードにはリポジトリとレビューがある。シークレットにはボルトとローテーションがある。エージェント向けの指示ファイルには、たいていコピーコマンドしかない。

untactitが作っているのはこの層だ。スキル・メモリ・指示ファイルのライブラリを一つ持ち、変更は人が承認し、承認されたものを接続された全ツール・全マシンに、誰も写しを手で編集せずに配り、どの写しがいつ分岐したかをドリフト検出が報告する。判断は人が、伝播は触らない。現在アーリーアクセスで、untactit.comから無料で始められる。ただし上の二つの実践はそれ単体で成立する。まずそれを採用してほしい。その後、私たちが不要だったとしても、スプリットブレインは消えている。


出典: Tobi Lütke氏のX投稿 2026年8月25日 · Configuring Agentic AI Coding Tools: An Exploratory Study (arXiv 2602.14690) · Agentic AI Foundation · Agent Skills標準 · Shopifreaks

この記事は DEV にも載せています。

関連記事

エージェントが何で動いているのか。推測は、もう終わり。

ワークスペースをひとつ接続するだけで、チームで動いているスキル・ルール・メモリの全体が見えます。所要はおよそ10分です。

無料で始める 相談する

クレジットカードは不要です。いまお使いのツールのままで動きます。