Interactive

環境の分離

同じ製品が、確認用と本番用など複数の場所で並行して動いています。この分離を知っていると、「手元では動くのに公開すると壊れる」「URLを送ったのに相手が見られない」という定番の混乱がすっと解けます。

localhostは自分のマシンの中

開発中にClaudeが立ち上げるhttp://localhost:3000のようなURLは、自分のコンピュータの中だけで動く確認用サーバーです。このURLを他の人へ送っても開けません。人に見せるには、プレビューまたは本番へデプロイします。

開発・プレビュー・本番

開発は自分のマシンの中で動き、接続先も開発用になっていれば、壊しても利用者へ影響しません。本番のデータベースや本物の外部サービスへ繋いだままでは、この前提は崩れます(後述の「環境ごとに設定と鍵を変える」、データの事故)。プレビューは本番と同じ仕組みで動く確認場所です。本番は利用者が触っている実体で、変更はプレビューで確認してから反映します。各環境の確認先と、本番運用が始まっているかはCLAUDE.mdに残します。

変更は運び、データは混ぜない

プロンプトの例
本番に反映する前にプレビューを用意して。接続先と閲覧できる人の範囲を確認してから、URLを教えて

プレビューにも公開範囲がある

弊社では、未公開の機能や社内情報を含むプレビューは、確認する人だけが閲覧できる状態で共有します。リポジトリがprivateでも、配信されたページの閲覧範囲は別です。公開してよい相手を決め、開発者に閲覧制限を設定してもらいます(開発の進め方)。

URLが推測しにくいことを制限の代わりにせず、許可された人が開けることと、未ログインや許可されていない人には内容が見えないことを確認します。

環境ごとに設定と鍵を変える

同じコードでも、環境変数(トークン・APIキー)は環境ごとに別の値を設定します。開発中の操作で本物の決済やメール送信が動かないよう、開発ではテスト用の鍵やモック(モック)を使い、本番の鍵は本番にだけ置きます。

「手元では動く」の理屈

手元と本番では、データの量、設定、依存の状態が違います。手元で動いた事実は、本番で動く保証になりません。本番と同じ仕組みで動くプレビューで確認する運用は、この差を埋めるためにあります。差のうち実行環境の部分を箱ごと揃える手段としてコンテナがありますが、データや外部サービスの差は残ります(構造の観点)。