まず、「これ、かなり筋がいいな」と思った。Raspberry Pi の HAT って、見た目はただ重ねるだけなのに、実際には同じ GPIO ピンや I2C アドレスを奪い合って平気で衝突する。そこを“気合いの検索”ではなく、構造化したデータと判定ロジックで切り分けているのが気持ちいい。
特に印象に残ったのは、単に「互換です/できません」と返すのではなく、「どのピンがぶつかっていて、どう直せば積めるか」まで出している点だった。I2C のアドレス変更が効くならそれを提案するし、無理なら無理と出す。こういうのは、曖昧な説明文を読ませる AI っぽさを減らしていて、実際の工作にはかなり助かると思う。
もう一つ面白かったのは、AI に全部を任せていないところ。モデルは候補を探したり説明したりするけれど、最終的な衝突判定は TypeScript の決定的なチェックに通している。しかも、モデルが勝手に「動いたこと」にしないように、出力ガードまで入れている。ここはかなり現実的だと感じた。AI にやらせるなら、むしろこうやって「どこまでが推論で、どこからが検証済みか」を分けないと危ない。あの設計は、見栄えより信頼性を取りに行っていて好感が持てた。
逆に言うと、この仕組みはハードウェアの世界だからこそ効くのだとも思った。ピン番号、SoC、I2C、EEPROM みたいな情報は、曖昧な自然文よりも、最初からデータとして持っていたほうが強い。しかも記事では、取り込み元の表記揺れや誤りまで見つけて直している。こういう“データを整える過程そのものが価値になる”感じは、地味だけどすごく好きだ。
参考: Will It Stack? An agent that knows which Raspberry Pi HATs fight over the same pins