RORK LABEN
SDK57 — Expo SDK 57 が公開され、React Native が 0.85 から 0.86 に上がりました。React 19.2 は据え置きで、破壊的変更はない想定ですCADENCE — 大きな更新の合間に、壊れない小さな更新を挟む新しいリリース間隔への移行がうかがえます。追従の負担が読みやすくなりますRN086 — React Native 0.86 では Android の edge-to-edge 対応の修正、DevTools のライト/ダーク切り替え、描画・レイアウト・アニメーションの改善が入りましたPREBUILD — expo prebuild にネイティブディレクトリの消去と再生成の改善が入り、expo-dev-client も iOS 側が強化されていますIOS27 — iOS 27 は 7月20日に beta 4、7月22日からパブリックベータが配信されています。秋の正式版に向けて生成したアプリの動作確認を進める時期ですAND17 — Android 17 から従来の Developer Preview が廃止され、継続更新される Canary ビルドに一本化されましたSDK57 — Expo SDK 57 が公開され、React Native が 0.85 から 0.86 に上がりました。React 19.2 は据え置きで、破壊的変更はない想定ですCADENCE — 大きな更新の合間に、壊れない小さな更新を挟む新しいリリース間隔への移行がうかがえます。追従の負担が読みやすくなりますRN086 — React Native 0.86 では Android の edge-to-edge 対応の修正、DevTools のライト/ダーク切り替え、描画・レイアウト・アニメーションの改善が入りましたPREBUILD — expo prebuild にネイティブディレクトリの消去と再生成の改善が入り、expo-dev-client も iOS 側が強化されていますIOS27 — iOS 27 は 7月20日に beta 4、7月22日からパブリックベータが配信されています。秋の正式版に向けて生成したアプリの動作確認を進める時期ですAND17 — Android 17 から従来の Developer Preview が廃止され、継続更新される Canary ビルドに一本化されました
記事一覧/開発ツール
開発ツール/2026-06-12上級

Rork の再生成と手動修正を共存させる — 上書きされない境界の引き方

設定画面の文言を直しただけの再生成で、前週に手で入れた広告まわりの修正が消えていました。AI が書く土地と人が守る土地を分けるディレクトリ境界、1行アダプタ、パッチ資産化、プロンプトの絞り方までを実測値とともに整理します。

Rork522再生成コード管理Git長期運用11

プレミアム記事

6月のはじめ、ストア公開直前の差分確認で手が止まりました。前の週に手で入れたはずの修正——ATT の同意ダイアログが閉じる前に広告 SDK の初期化を始めないようにするガード——が、跡形もなく消えていたのです。

直接のきっかけは私自身の操作でした。設定画面の文言を直したくて Rork に小さな修正を頼み、出力されたプロジェクトをそのままエクスポートした。それだけです。Rork は依頼どおり文言を直し、同時に、依頼していない場所を生成時点の「正しい姿」に揃え直していました。手動修正は、AI から見れば揃え直すべき逸脱のひとつだったわけです。

再生成は Rork の中核的な強みで、これを手放す選択はありません。一方で、エクスポート後のコードに手を入れる場面は、運用が長くなるほど確実に増えます。広告(AdMob)の初期化順序、課金イベントの取りこぼし対策、クラッシュへの応急対処。つまり「再生成を続けながら、手動修正も守る」を構造として成立させる必要があります。

私はこの出来事を境に、プロジェクトの中に「AI が書く土地」と「人が守る土地」を明示的に分ける設計へ切り替えました。以下、その境界の引き方を、実測と実装、日々の取り込み手順まで含めて書いていきます。

再生成が手動修正を消す仕組みを、数字で確かめる

Rork のチャットへの依頼は、ファイル単位の編集指示ではありません。「アプリがこうあるべき」という状態への指示で、その実現に関わるファイルがまとめて再構成されます。どのファイルが書き換わるかは、依頼文の小ささからは予測できません。

これを体感ではなく数字にしておきたくて、運用中のプロジェクトの複製に対して影響範囲が小さいはずの依頼を3種類投げ、書き換わったファイル数を git diff --stat で数えました。

依頼内容                                書き換わったファイル数
設定画面のボタン文言を1箇所変更               7
ホーム画面のカードの角丸を 8 → 12 に変更      4
設定画面にトグルを1つ追加                   11

文言1箇所の変更で 7 ファイルです。依頼に直接関係していたのは 1 ファイルだけで、残る 6 ファイル、率にしておよそ 85% は依頼と無関係の書き換えでした。内訳を見ると、目的のファイルに加えて、共有フックやユーティリティが体裁の揃え直しで書き換わっていました。diff の大半は無害な整形です。問題は、その無害な差分の山の中に、手動修正の打ち消しが 1〜2 行だけ混ざることです。数百行の diff から毎回それを人の目で拾い続けるのは、現実的ではありません。

ここから引ける結論は「再生成を避ける」ではありません。再生成されても壊れない場所に手動修正を置く。発想をそちらへ切り替えます。

境界の原則 — 上書きされてよい土地と、守る土地を分ける

私が運用しているルールは3つだけです。

第一に、Rork が生成するツリーは全て「いつ上書きされてもよい」とみなします。app/ も components/ も hooks/ も、次の再生成で消える前提で扱い、ここには手動修正を直接書きません。

第二に、手で書くコードは guarded/ という独立ディレクトリに隔離します。名前は何でも構いません。重要なのは「Rork が生成しないパスである」ことと、「取り込み時に機械的に保護できる」ことの2点です。

第三に、生成コードから guarded/ への接続は、1行の import と1回の関数呼び出しまでに絞ります。接続点が細いほど、再生成で消えたときの復旧が「1行戻す」だけで済みます。

ディレクトリはこうなります。

project/
├── app/              # Rork の土地(いつ上書きされてもよい)
├── components/       # 同上
├── hooks/            # 同上
├── guarded/          # 人の土地(再生成の影響を受けない)
│   ├── ads/
│   │   └── initializeAds.ts
│   ├── analytics/
│   │   └── track.ts
│   └── billing/
│       └── listeners.ts
└── patches/          # guarded に移せない修正のパッチ置き場(後述)

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
文言1箇所の変更依頼で 7 ファイルが書き換わった実測から導く、被害半径を前提にした境界設計の原則
広告・課金・計測の手動ロジックを再生成から守るアダプタ層の TypeScript 実装と接続点を1行に絞る理由
git format-patch で手動修正を資産化し、再生成のたびに機械的へ再適用する取り込みフローの全コマンド
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-07-27
最低サポート iOS をいつ上げるか — 利用率ではなく、コードに残った分岐の数で決める
最低サポート OS の引き上げを利用率で判断すると、毎年同じ結論になって先送りが続きます。OS 分岐に注記を付けて棚卸しし、引き上げ先ごとに消せる分岐を数えるスクリプトと、引き上げ後に見る指標をまとめました。
開発ツール2026-07-14
AI再生成に壊されない設計 — Rork の生成コードと手書きロジックを分ける境界の引き方
Rork へ追加指示を出すたびに手書きのロジックが消える。プロンプトで守るのは対症療法です。生成コードと自分の所有コードを層で分け、再生成が届かない境界を設計で引く方法を、Zustand と service 層の実装例つきでお伝えします。
開発ツール2026-07-07
どの生成でこの不具合が入ったのか — Rork アプリに生成来歴を刻む長期運用設計
AI ビルダーで同じ画面を何度も作り直していると、ある日現れた不具合がどの生成で入ったのか追えなくなります。ビルドスタンプ・生成台帳・テレメトリ埋め込みの3層で生成来歴を残し、リグレッションを世代単位で絞り込む設計をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →