RORK LABEN
PUBLISH — Rork Maxはコード署名やプロビジョニングを肩代わりし、2クリックでApp Storeへ申請できますSIMULATOR — ブラウザ内のストリーミングシミュレータで実機に近い操作感を試せ、QRでTestFlightなしに実機インストールできますMAX — Rork MaxはネイティブSwiftアプリを生成し、Claude Code・Claude Opus 4.6で駆動しますNATIVE — Rork MaxはAR/LiDAR・Metalの3D・ウィジェット・Live Activities・HealthKit・Core MLなどXcode相当の領域まで到達しますFUNDING — Rorkが$15Mを調達し、App Store起業家世代の後押しを掲げていますPRICE — 料金は無料から用意され、有料プランは月$25から、Rork Maxは月$200ですPUBLISH — Rork Maxはコード署名やプロビジョニングを肩代わりし、2クリックでApp Storeへ申請できますSIMULATOR — ブラウザ内のストリーミングシミュレータで実機に近い操作感を試せ、QRでTestFlightなしに実機インストールできますMAX — Rork MaxはネイティブSwiftアプリを生成し、Claude Code・Claude Opus 4.6で駆動しますNATIVE — Rork MaxはAR/LiDAR・Metalの3D・ウィジェット・Live Activities・HealthKit・Core MLなどXcode相当の領域まで到達しますFUNDING — Rorkが$15Mを調達し、App Store起業家世代の後押しを掲げていますPRICE — 料金は無料から用意され、有料プランは月$25から、Rork Maxは月$200です
記事一覧/開発ツール
開発ツール/2026-07-07上級

どの生成でこの不具合が入ったのか — Rork アプリに生成来歴を刻む長期運用設計

AI ビルダーで同じ画面を何度も作り直していると、ある日現れた不具合がどの生成で入ったのか追えなくなります。ビルドスタンプ・生成台帳・テレメトリ埋め込みの3層で生成来歴を残し、リグレッションを世代単位で絞り込む設計をまとめました。

Rork491長期運用7リグレッション設計6トレーサビリティ

プレミアム記事

先月、あるアプリで直したはずのクラッシュが、数週間後にまた同じ症状で戻ってきました。コードを見ても、直した箇所はそのままです。原因を掴むのに半日かかりました。別の画面を作り直したとき、その生成が古い実装ごと巻き戻していたのです。

個人開発でいくつものアプリを運用していると、こうした「静かな巻き戻し」は珍しくありません。Rork Max の2クリック申請でリリースの敷居が下がったぶん、私たちは以前より気軽に画面を作り直します。生成の回数が増えれば増えるほど、「いつ・どの生成で・何が変わったのか」は手元から抜け落ちていきます。

生成物に来歴(provenance)を刻んでおけば、不具合が出たときに疑うべき世代を数分で絞り込めます。特別なインフラは要りません。ビルド時の定数ひとつと、テキストの台帳ひとつが出発点です。私自身が実運用で使っている設計を、順に見ていきます。

なぜ git blame では追えないのか

手書きのコードなら、git blame が「この行を最後に触ったコミット」を教えてくれます。ところが AI ビルダーで再生成した画面は、しばしばファイル全体が丸ごと差し替わります。差分は「1行の変更」ではなく「ファイルの置換」として記録され、blame は再生成のコミット1点を指すだけです。

さらに厄介なのは、変更の意図がコミットに残らないことです。「価格表示を直して」と指示した生成が、ついでに離れた場所の状態管理を書き換えていても、コミットメッセージは Update pricing screen のままです。あなたが後から読むのは、実際に起きたことではなく、あなたが起こそうとしたことだけです。

つまり欠けているのは行単位の履歴ではありません。「どの生成イベントが、アプリのどの版に対応し、何を触ったのか」という世代の来歴です。これを補うのが本記事の主題です。

来歴を3層で残す

来歴は1か所に書こうとすると必ず破綻します。ビルド成果物、ソースツリー、実行中のアプリは、それぞれ寿命も参照する人も違うからです。私は次の3層に分けて考えています。

何を残すかいつ役に立つか
ビルドスタンプ生成 ID・ビルド日時をアプリ内定数に焼き込む実機やレビュー版で「これはどの世代か」を即答したいとき
生成台帳各生成の意図・触ったファイル・消費クレジットを1行追記数週間後に「あの変更はいつだったか」を遡るとき
テレメトリ埋め込みクラッシュ・主要イベントに生成 ID を付与本番の不具合を世代へ逆引きするとき

3層はそれぞれ独立して価値がありますが、同じ生成 ID で串刺しにすると効果が跳ね上がります。台帳で世代の意図を読み、テレメトリで影響範囲を測り、ビルドスタンプで手元の版を照合する。この往復ができるかどうかが、トリアージの速さを決めます。

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

この記事の続きを読む

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

この記事で得られること
生成 ID をビルド時に刻み、クラッシュとアナリティクスから世代を逆引きする実装
GENERATIONS 台帳の最小フォーマットと、世代間差分を機械的に出す運用スクリプト
不具合が出たときに疑う世代を数分で絞り込むトリアージの手順
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-07-05
Rork 製アプリの expo-sqlite で、テーブル構造を変えてもデータを消さない — PRAGMA user_version で作る順次マイグレーション
「no such column」で起動直後に落ちる。テーブル構造を変えた新バージョンを既存ユーザーに配ると起きる事故です。expo-sqlite の PRAGMA user_version を使い、カラム追加・テーブル再構築・外部キーを含むスキーマ変更をユーザーデータを守りながら順に適用する設計を、実装の全文と運用ルールとしてまとめました。
開発ツール2026-06-28
設定画面を1枚のスキーマから組み立て、複数アプリで使い回す
設定画面をアプリごとに手作業で作ると、運用するアプリが増えるほど破綻します。宣言的なスキーマから画面を組み立て、複数アプリで共通の土台を共有する設計を、動くコードとともに整理します。
開発ツール2026-06-22
壊れたキャッシュで毎回起動時に落ちるアプリ——ユーザーが自力で抜け出せる「セーフモード起動」を設計する
永続化したキャッシュが壊れて起動のたびに同じ場所で落ちると、ユーザーには再インストールしか残りません。アプリ自身が早期クラッシュの連続を数え、対話可能になって初めて起動を確定し、危険な状態だけを段階的にリセットするセーフモードを、Expo(React Native)の実装で設計します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →