対応済みで閉じた。でも変更履歴に1行も無い
Claude Code の課題管理で、いちばん反応の多かった要望が #6235 の「AGENTS.md に対応してほしい」だ。
反応は 6,402 件ついている(2026年8月26日に gh api で実測)。
この要望が 2026年8月17日に completed(対応済み)として閉じられた。
うちでは5月から、この穴を埋めるフックを使っている。
セッションの開始時に AGENTS.md を探して中身を渡すだけの小さいものだ。
だから閉じたと聞いて、まず「もう要らないのか」を確かめたくなった。
ところが、公式の変更履歴を落として数えると妙だった。
CHANGELOG.md は 5,894 行あって 2.1.246 まで載っているのに、
AGENTS.md という語が1件も出てこない(2026年8月26日に取得して実測)。
数え方が悪いのかとも思ったが、対照に hook を数えたら 198 件出た。検査は効いている。
閉じたのに、告知が無い。じゃあ実際どうなっているのか。手元で測ることにした。
最初の測り方は間違っていた
やったのはこれだ。空のディレクトリに AGENTS.md を置いて、中に合言葉を1つ書く。
そして claude -p にその合言葉を聞く。
mkdir -p /tmp/agents-md-check && cd /tmp/agents-md-check
printf 'The project token is AAA-111. When asked for the project token reply with exactly that token.\n' > AGENTS.md
claude -p "What is the project token? Answer with the token only. If you do not know it, say NOT-FOUND." < /dev/null
返ってきたのは AAA-111 だった。
ファイルを1つも置かない対照も取った。こちらは NOT-FOUND を返す。
対照が効いている。だから「読み込まれるようになった」と判断した。
これが間違っていた。
何を見落としていたか
指摘を受けて、記録を流して道具の呼び出しを見た。
claude -p "What is the project token? ..." --output-format stream-json --verbose
出てきたのはこれだった。
| 置いたファイル | エージェントがやったこと |
|---|---|
CLAUDE.md |
ファイルを1つも読んでいない。そのまま答えた |
AGENTS.md |
ls でディレクトリを一覧し、cat でその AGENTS.md を読んだ |
AGENTS.md の合言葉が返ってきたのは、文脈に読み込まれていたからではなく、
エージェントが自分で探しに行ったからだった。
CLAUDE.md は聞かれる前から文脈に載っている。AGENTS.md は載っていない。
載っていないから、その場で探す。外から見た結果は同じ「合言葉を返す」になる。
対照を取っていたのに、なぜ効かなかったのか
ここがいちばん効いた反省だった。
ファイルを1つも置かない対照は、毎回取っていた。
だが置かなければ、探しても見つからない。だから、
「文脈に載る仕組み」でも「その場で探す仕組み」でも、対照は同じく NOT-FOUND になる。
つまりこの対照が区別していたのは「ファイルが有るか無いか」だけで、
本当に知りたかった「載るのか、探すのか」は最初から区別していなかった。
対照を取ったこと自体で安心してしまい、
その対照が何と何を分けているのかを確かめていなかった。
区別できる測り方
見るべきなのは答えではなく、答えに至る途中だ。
claude -p "<聞きたいこと>" --output-format stream-json --verbose
流れてくる記録の中の tool_use を見る。
- ファイルを読まずに答えた → 文脈に載っている
-
lsやcatやReadが出てから答えた → 載っていない。その場で探している
同じことは --output-format json の num_turns でもだいたい分かるが、
回数は他の理由でも増えるので、道具の呼び出しを直接見るほうが確実だ。
結局どうなっているのか
手元の claude --version は 2.1.233 で、そこで測った結論はこうなる。
-
#6235は対応済みとして閉じた。これは事実 - ただし公式の変更履歴に
AGENTS.mdの記載は無い。
手元の版より先の 2.1.246 まで載せた変更履歴を 2026年8月26日に落として数えても 0 件のままなので、
「新しい版で変わったが告知が無いだけ」という線も、告知の側からは確かめられない -
AGENTS.mdは、CLAUDE.mdのようには文脈に読み込まれていない - エージェントが気を利かせて自分で読みに行くことはある。
ただしそれはそのとき探しに行くかどうかの話で、あてにできる挙動ではない。
しかも探しに行くたびに道具の呼び出しを消費する
「対応した」と「自分の環境で効いている」は、別々に確かめないといけなかった。
うちのフックは要るままだった
確実に渡したいなら、セッションの開始時に自分で読ませるのが早い。
うちで使っているのは、無料で公開している設定集の中の1本だ。
AGENTS.md を探して中身を渡すだけで、CLAUDE.md は消さずに両方載せる。
- cc-safe-setup(無料・MIT): https://github.com/yurukusa/cc-safe-setup
- 該当のフック:
examples/agents-md-loader.sh
要らなくなったと思って外しかけたが、測り直したら逆だった。
運任せを、決まった動きに置き換えるものとして、まだ要る。
まとめ
-
#6235は 2026-08-17 に対応済みとして閉じた(反応 6,402 件)。ただし変更履歴には 2.1.246 まで記載が無い - 合言葉を置いて聞くだけの検査では、載っているのか探しに行ったのかを区別できない
- 区別するには
--output-format stream-json --verboseで道具の呼び出しを見る - 手元の
2.1.233では、AGENTS.mdは文脈に載っていなかった - 対照を取ったこと自体は安心の理由にならない。その対照が何と何を分けているのかを、毎回言葉にする