アイデアとインサイト

AI ファースト開発、コーディングガードレール、使い捨て前提のアーキテクチャを探求します。

AI Safety Stack: types、contracts、property tests、mutation gates

AI-generated code を production で持たせたいなら、code review だけでは足りません。type constraints から mutation testing、runtime containment までの layered safety stack が必要です。

AI-generated code の危険なところは、常に間違っていることではありません。 危険なのは、merge できてしまう程度には正しく見えることです。 そこが本当のリスクです。明らかに壊れている code は止まります。もっともらしく見え、いくつかの happy-path tests を通り、しかも重要な…

優れた engineering の考え方が AI で経済的になるまで niche のままだった理由

Design by contract、property-based testing、mutation testing、model checking は悪い考え方だったわけではありません。継続運用に必要な expertise が重すぎただけです。AI はその前提を変えます。

software engineering には、読んだ瞬間に「これは正しい」と分かる考え方がたくさんあります。 function が受け取ってよい値と返してよい値を contracts で定義するのは当然です。tests が数個の例だけでなく properties を検証するのも当然です。coverage…

Vibe coder のための React Native App Lifecycle ガイド

dev では問題ないのに、昼休みのあと戻ると白画面になる。ネイティブの lifecycle を正しく扱う resume status パターンを説明します。

Cursor で綺麗な Expo app を作った。Claude Code が auth flow、dashboard、settings screen を生成してくれた。出荷した。ユーザーも入った。すると DM が飛んでくる。 「昼休みのあと開くと白画面になるのはなんで?」 「なんで毎朝ログインし直しになるの?」…

なぜ Vibe-coded React Native app は起動時に落ちるのか

optional SDK が core infrastructure と同じように初期化されると、app は起動直後に crash する。non-critical な tool が production を巻き込まないための dependency tier system を説明します。

Vibe-coded な mobile app でよくある launch failure は、analytics、attribution、crash reporting が、本当に critical な service と同列で初期化されてしまうことです。その optional SDK のひとつが特定の device…

なぜ Cursor + NativeWind の Vibe coding はスケール時に壊れるのか

Cursor で週末に MVP を出したのに、brand color を 1 つ変えるだけで 47 ファイルに find-and-replace が必要になる。出血を止める styling contract を説明します。

Cursor を開いて prompt を打ち、Claude Code が数秒で React Native UI を丸ごと生成するのを見た。Flex layout、角丸 button、color theme。全部一発で動く。TestFlight に出した。ユーザーも入り始めた。そこまでは week one の話です。…

なぜ Claude Code にコードレビューを任せるべきではないのか(代わりに何を使うべきか)

LLM コードレビューは非決定的で遅く、アーキテクチャ違反を見逃す。コードを本当にクリーンに保つ O(1) ガードスタックを紹介します。

私のネットワークにいるある開発者が、CI のコードレビュアーとして Claude Code を設定しました。「Claude に PR をチェックさせればいい」と彼は言いました。「自分が見落とすものも拾ってくれるから。」私は同じ PR を Claude に 2 回かけてみるよう頼みました。 1…

置き換えでリファクタするという新しい考え方

既存コードを守る発想をやめ、削除前提で設計する。Autotomy パターンがモジュールを安全に差し替えられる理由を説明します。

開発者には既存コードを守ろうとする強い本能があります。リファクタし、最適化し、慎重に移行する。でも、その本能自体が間違っていたらどうでしょうか。 生物学でいう autotomy…

Cursor と Claude Code が React Native architecture を壊す理由

AI が生成した auth は、新しい feature が間違った service に手を伸ばすまでは問題なく見える。vendor swap や feature 開発で login を壊さない interface-driven architecture を説明します。

Vibe-coded な React Native app で繰り返し起きる failure mode のひとつは、新しい feature が既存 service を直接 import し、自分の ownership ではない state に触れて、無関係な flow を壊してしまうことです。auth…

なぜ deep link は Vibe-coded React Native app を crash させるのか

deep link、push payload、shared URL はすべて untrusted input です。壊れた param が screen に届く前に、Expo Router boundary で validate する方法を説明します。

Vibe-coded な app の deep link bug は、たいてい退屈な input の問題から始まります。malformed な user ID、古い campaign URL、push payload に欠けた enum 値。そこから app がその input を trusted…

useSyncExternalStore: Vibe-coded app を state バグから守る React Hook

memory leak したり state update を取りこぼしたりする useEffect subscription はもうやめる。bulletproof な external state のための React 18 pattern を説明します。

以前の私は network detection hook を、多くの vibe coder と同じ書き方で作っていました。 で NetInfo に subscribe し、connectivity が変わったら state を更新し、あとはうまくいくことを祈る。development では動く。でも…

なぜ AI 生成コードにはガードレールが必要なのか

AI なら React Native MVP をすばやく ship できるが、guardrails がなければ小さな変更ひとつで無関係な flow まで壊れる。速度を fragility に変えないための declarative constraints を説明します。

最初の Vibe coding フェーズは、信じられないほど生産的に感じられます。Cursor と Claude Code は login、dashboard、settings、push notifications まで一気に生成できるので、solo founder でも数日で MVP を live にできます。…