数週間前、多くのプログラマー(あるいは元プログラマー)が、OpenAI の Codex モデルが防御的コーディングに対して異常なこだわりを見せ始めていることに気づきました。
この現象を最も象徴的に示しているのが isRecord です。オブジェクトっぽいものが本当にオブジェクトかどうかをチェックするという馬鹿げたガードが、いたるところに出現し始めたのです。
https://x.com/weswinder/status/2073959658167898594
https://x.com/cnakazawa/status/2062755985702494643
https://x.com/thdxr/status/2069927201638682976
この奇妙な癖はすぐにミームになりました。なんと npm パッケージとしても公開されています。
あ、このコード知ってる
さて、私は boolean を返すヘルパー関数には常に isWhatever を使ってきました。スタイルの一貫性と、いわゆる founder mode という小さな理由から、同僚にも無理やり使わせることがありました。
だからこそ、この isRecord の話題がタイムラインに流れてきたとき、私は思わず立ち止まりました。間違いなく 以前に isRecord を見たことがあると確信したのです。そして案の定、tldraw のコードベースを検索してみると、それが見つかりました。

このガードは、tldraw キャンバス上のすべての情報をフラットなリアクティブマップ(オブジェクト、つまり「レコード」)として保存するデータストアパッケージの一部です。これは単純なガードであり、store.As を保護するというよりも、型を割り当てるためのものです。私が見る限り、この数行がコーディングモデルに愛された isRecord の源泉です。GitHub でこのコードを検索すると、tldraw とその多数のコピー、そして Codex によって後から書かれたコードが見つかります。

isRecord が以前から使われているリポジトリとして私が見つけたもう一つは、RocketChat のバージョンで、2025 年 7 月に追加されたものです。

自慢するつもりはありませんが、我々の isRecord はそれよりも少なくとも 2 年は先んじています。実際、ストアを書いたのは 2022 年の夏だったと思いますが、git blame で確認できるのは、プライベートリポジトリからパブリックリポジトリにコードを移行した 2023 年までです。
isRecord の一万年
結局のところ、これほど素晴らしいモデルの重みにほんの少し影響を与えたことに対して、ある種の誇りを認めざるを得ません。次にコードベースで isRecord を見かけたときは、どうか tldraw のことを思い出してください。





