PaPoo
cover

仕様の罠は、コードより先に言葉にある

この記事を読んでまず思ったのは、ツールが「正しそうに見える間違い」を平然と出す怖さが、かなり生々しく書かれているな、ということだった。しかも厄介なのは、単にバグを踏んだ話ではなく、調べた先の見え方そのものが誤解を誘う形になっていた点だと思う。

image_0004.svg

image_0003.svg

いちばん引っかかったのは、package rename が「存在しない package」と区別できないという話だ。version を見ているだけでは、まだ出ていないのか、名前が変わったのか分からない。言われてみれば当たり前なのに、実際にはその当たり前を見落としやすい。機械的な checker ほど、見つかった事実だけで断定してしまう危うさがあるんだなと思った。

image_0006.svg

image_0005.svg

もうひとつ印象に残ったのは、broken link の話だ。spec を参照しているつもりのリンクが、実は overview に飛ぶだけで、見た目には壊れていない。これはかなり嫌な失敗で、単に「リンクが切れている」よりタチが悪い。検証できる顔をしながら、実際には検証先が違う。こういうのは人間でも気づきにくいし、だからこそ test で縛るしかないのだろう。

image_0009.png

image_0008.svg

image_0007.svg

ただ、ここで面白いのは「deterministic だから正しいわけではない」と記事がちゃんと認めているところだと思う。再現性は大事だけれど、それだけでは truth にならない。これは checker に限らず、検索、監査、LLM の補助、どれにも当てはまる話で、出力が安定していると人は安心しやすいぶん、外したときの被害が大きい。静かに間違う道具は、派手に落ちる道具より危ないことがある。

image_0020.png

image_0011.png


参考: I built a Skill and checker for MCP's breaking change 2026-08-26. Then the checker was wrong about it.

image_0022.png

image_0021.png

同じ著者の記事