3案を並べても間違いは見つからない。潰す役を1体足したら1案落ちた
観点3 + 反証1 + 統合1 の5体で設問671本の方針を決めた。反証役が1案を落とし、 3案が共有していた暗黙の前提を突き、こちらが渡した実データの誤りも2箇所見つけた。 分担表を手で書き写して116か所のうち28か所を取り違えた失敗も書いた。
AIコーディングエージェントを開発チームとして使って、iOSアプリ・SaaS・OSSを作っています。要件を決めるところから、UXを設計して、実装を指示して、検証をかけて、出てきたものを自分で確かめて、公開して運用するところまで通します。
AIは、動くデモを作るだけでは価値にならない。
// Works
要件を決めるところから、公開して運用するところまで通したものを並べています。
// Writing
作る過程で詰まったことと、その解き方を書いています。
観点3 + 反証1 + 統合1 の5体で設問671本の方針を決めた。反証役が1案を落とし、 3案が共有していた暗黙の前提を突き、こちらが渡した実データの誤りも2箇所見つけた。 分担表を手で書き写して116か所のうち28か所を取り違えた失敗も書いた。
dev.to の閲覧を API で取ったら、3本出した日だけ2本が 0 だった。低いのではなく 0。 タグでも時刻でもないことを先に潰してから、本数だけが違うと分かった。 Zenn も同じ形の上限を持つが、あちらは push が成功したまま 404 になる。
glTF の accessor が宣言する min/max が実データとずれていた。 レンダリングは実データを読むので絵は正常に出る。だから手元のビューアも 自前の検証も全部通り、検証器を持つ配布先に弾かれて初めて気づいた。
1つの症状から性質の違う3つの原因が出た。本命は日程表で、間隔5秒に対して 動きが9秒あり重なっていた。折れ点の判定は標本を2倍にして跳びが半分に なるかで見る。振幅で割ると大きい動きが不利になって使えない。
誹謗中傷の証拠として投稿の実物スクショを撮る機能で、第三者の埋め込みラッパーが 廃止ドメインになり、HTTP 200 のまま Cloudflare のブロックページを保存していた。 失敗が例外ではなく「それらしい画像」として返ってくる、という話。
Dynamic Type を XXXL にして全画面を撮ったら11件出た。全部同じ原因で、 「横並び固定 × 拡大テキスト」は1つのバグではなくパターンだった。 日本語はどこでも改行できるので、英語のように省略されず1行1文字で縦に積まれる。
TestFlight に出すまでの検証を全部 __DEV__ でやっていた。本番だけを通る経路を コードで洗ったら8件出た。60秒開封が二重通知を隠し、匿名ログインが初回状態の リセットを隠し、常時オンの回線が「撮ったのに消えた」を隠していた。
実行するコマンドを全部見せる作りにしたら、4,558 バイトの HTML でダイアログが 画面より高くなり、承認も拒否もできなくなった。defaultId と cancelId を 揃えると macOS で Enter が死ぬことも同時に判明した。
思いつかない場所は目視では永久に見つからない。ダイアログの飛行中・ 半透明のフェードイン・23秒映っていた URL バーを3回とも見落とし、 最後はテンプレートマッチを全コマに掛けて機械に検査させた。
読み上げを分割する位置は勘ではなく実時間比 r から p ≥ r/(1+r) で決まる。 ディスクが埋まり負荷が高い状態で測ったせいで実測が4倍遅く出て、 設計を間違えた記録。
モデル間で本当に持ち運べるポーズ形式は .vrma だけだった。ボーンの ローカル座標系・humanoid 正規化・回転の合成順序という理由まで踏み込んで書いた。
AIエージェントは人間より先にリポジトリの指示ファイルを読む。その前に .mcp.json や AGENTS.md を実行せずに検査する CLI を作った経緯と、 何を危険と判定しているか。
// Stack
// About
作ったものを置いておく場所として作りました。GitHub・Zenn・Qiita・X に散らばっているものが、ここからまとめて辿れます。
作り方は隠していません。実装はAIコーディングエージェントに任せていて、自分がやっているのは、何を作るか決めること、どう作るかの方針を決めること、出てきたものを採用するか直すか判断すること、そのために検証がかかる仕組みを組むこと、そして本番で壊れないところまで持っていくことです。認証・課金・データの扱い・監視まで設計して、はじめて業務で使えるものになります。そこを通していないものは、まだ作品とは呼べないと思っています。
このサイト自体も同じ作り方をしています。背景で動いているのはノードとその接続を描いた WebGL のシーンで、通信が細い端末や、動きを減らす設定をしている環境では読み込まずに静的な背景へ落とします。
このサイトでは、アクセス状況を把握するために Google アナリティクスを利用しています。Cookie を通じて、閲覧したページや滞在時間などの情報が Google へ送信されます。氏名・連絡先といった個人を特定できる情報は送信していません。ブラウザの設定、または次のアドオンで停止できます。 Google アナリティクス オプトアウト アドオン