コンテンツにスキップ
LinkedInX

AIが本番デプロイを実行した経緯と、npm run buildを承認制にするまで

この記事について

AIに修正を依頼している最中に、意図していないタイミングで本番デプロイコマンドが実行されました。この記事では、その経緯と、再発を防ぐために導入したルールを記録します。


何が起きたか

あるとき、サイトのナビゲーション構造の調整をAIに依頼していました。いくつかのファイルを修正してもらい、変更内容を確認していたところ、その流れの中でAIが npm run build を実行しました。

npm run build は、Webサイトの設定やコードから本番用の成果物を生成するコマンドです。このリポジトリでは、成果物を公開する処理はホスティング側のデプロイパイプラインが別途担います。したがって、ローカルビルドと本番反映は分けて扱う必要があります。

このとき私が依頼していたのは「ナビゲーションの調整」であり、「本番デプロイ」ではありませんでした。


なぜAIはそのコマンドを実行したのか

AIの視点では、ファイルの修正が完了した後に「動作確認のためにビルドを実行する」という流れは自然な次のステップです。修正してビルドして確認するという手順は、開発の一般的な流れとして学習されているため、明示的な指示がなくてもその方向に動くことがあります。

問題は、AIが判断した「次のステップ」が、私の判断タイミングより先に進んでしまったことです。本番環境への影響があるコマンドを、確認なしに実行するのは避けるべきでした。


対処として追加したルール

この経験を踏まえて、プロジェクトのルールファイル(CLAUDE.md)に次の記述を追加しました。

npm run build はユーザーの明示的な承認なしに実行しない。

このルールにより、AIが修正の流れで自動的にビルドを実行することを防ぎます。ビルドが必要なときは、私が「ビルドしてください」と明示的に伝えてから実行してもらいます。

通常のプレビュー確認には npm run dev を使います。これはローカル環境だけで動くコマンドなので、本番環境には影響しません。


学んだこと

本番環境に影響するコマンドは、作業の流れの中で「次のステップとして自然」であっても、明示的な確認ステップを設けるべきでした。AIは文脈から判断して行動するため、その判断の範囲と境界を明確にしておく必要があります。

どのコマンドをAIが自律的に実行できて、どのコマンドは承認が必要かを事前に整理しておくことが、安全な協働につながります。