頼んでいないサーバーが立っていて、私のメールアドレスは記録されていた
公開準備でローカル起動を確認しようとしたら、まだ何もしていないのにサイトが立ち上がっていた。一撃で作るAIが残していったものに、公開直前で気づいた記録。
速いAIは、こちらが気づかない状態を残していく
FIG.1も整い、所信表明もサイト内の文言も出来上がった。いざ公開準備、まずはローカルサーバーで起動確認だ——というところで、頼んでいないものが二つ見つかった。
一つは、立ちっぱなしのローカルサーバー。もう一つは、Gitの履歴に記録されていた自分の個人メールアドレス。
どちらも自分で作った覚えはない。そしてどちらも、指摘されるまで存在に気づいていなかった。
以下はその記録。
また同じことを聞いた
そもそもAstroが何者かも分かっていない。起動方法も以前の記事のときに一度聞いてはいたが、その後まったく触っていなかったので、きれいに忘れていた。
なので、また聞いた。
これって実際に動いてるHTMLって見る方法ある?
軽く知っていたのに、また同じことを聞いている。思い出す努力もしていない。これが現代のAIユーザーだなと思う。脳細胞が死なないか心配である。
GPTは「それ前も言ったじゃん」とは言わずに、丁寧に教えてくれた。要点はこうだった。
- 開発中の表示を見るなら
npm install→npm run dev。http://localhost:4321/が出るのでブラウザで開く - 公開時に近い状態を見るなら
npm run build→npm run preview - iPhoneでも見たいなら
npm run dev -- --host 0.0.0.0にして、PCのローカルIPをSafariで開く
注意:
npm run buildするとdist/に静的HTMLが生成されるが、直接ダブルクリックで開くと画像・CSS・リンクが崩れることがある。 確認はpreviewでやるほうがいい。
デザイン確認は dev、公開前の最終確認は preview。この使い分けだけ覚えればいいらしい。
打つ前から、サイトが立ち上がっていた
ここで言われたとおりにやろうとして、ブラウザを開いた。
まだ npm run dev を打っていないのに、サイトが立ち上がっていた。
気づいたきっかけは別件だった。GPTから検証用に Fig1.astro や global.css などのファイルを持ってきてくれと頼まれ、Claude Codeを見に行った。そこでサイドバーを開いたらサイトが表示されていて、まさかと思ってブラウザで開いたら、普通に見えたのである。
思わずGPTにこう送った。
claudeがローカルホスト立てて閉じ忘れてるわ、こういうところが君と違うとこだよね。検証用ファイルを渡すので確認して
返ってきた答えは、あっさりしていた。
ちなみに、Claudeが立てっぱなしのローカルサーバーは、開いているターミナルで Ctrl + C を押せば止まるはずです。見つからなければ、PC再起動でも止まります。
そりゃそうだ、で終わる話ではある。ただ、自分が把握していない状態がPCの中で動き続けていたという事実のほうが、このときは大きかった。
思い出したくないことを思い出した
そして、この流れでもう一つ思い出してしまった。
以前の記事で指摘されていた、Gitに設定されているメールアドレスが個人のものになっていないかという話である。「公開する前に一度Gitを作り直せばいい」と言われて、ヤバいだろうなーと思いつつ放置していたやつだ。
GitHubを見に行った。確かに、自分のメールアドレスが載っていた。
幸いプライバシー設定が有効になっていたため、全世界に公開されている状態ではなかった。ただ、Gitのコミット履歴のほうには個人のGmailアドレスがそのまま記録されていた。
これを何も指摘せず、確認もせずに実行していたのは、Claudeが優秀なのか、私が愚かなのか。
(判断がついていないので、そのまま書いておく。)
noreplyアドレスというものがあるらしい
GitHubのプライバシー設定を有効にすると、(数字ID)+(ユーザー名)@users.noreply.github.com という形式のアドレスがもらえる。これをGitのコミット用メールアドレスとして設定すれば、個人のアドレスが履歴に残らない。
ここで一つ疑問があった。このサイトはGitHubで公開するわけではなかったはずでは?
そうです。サイトの公開先はGitHub PagesではなくCloudflare Pagesにする方針で合っています。ただし、Cloudflare Pagesで運用する場合でも、基本的には ソースコード置き場としてGitHubリポジトリを使う のが自然です。
つまりこういう分担になる。
| 場所 | 役割 |
|---|---|
| GitHub(private) | ソースコード置き場・バックアップ。Web公開はしない |
| Cloudflare Pages | 実際にサイトを公開する場所。BIBIMBA WORKS本体のURLになる |
GitHubで公開しないとしても、リポジトリを置く以上、将来うっかりpublicにしたり履歴を確認したりする可能性はある。だから今のうちにnoreply化しておく判断で合っている、とのことだった。
Gitを知って数日の人間が、履歴を作り直す
そして例のごとく、GPTがClaudeへの指示文を書き、私はそれを貼るだけの伝書鳩に戻った。
やることは、.git を削除して再初期化し、noreplyアドレスで初期コミットを作り直すというものである。gitが何なのかも分かっていない人間が、履歴の作り直しをやる。バイブコーダーの面目躍如という感じがする。
Claudeから返ってきた完了報告は、こちらが求めた以上に詳細だった。要点を抜くとこうなる。
- 作業前の全コミットのauthorが個人のGmailアドレスになっていた
- リモート設定はなし。
git remote -vは空で、どこにもpush済みの形跡はなかった - そのため
.gitを削除してgit init -b mainで再初期化すれば、個人メールは完全に消える - 新しいidentityを設定し、初期コミットを1つだけ作成(41ファイル)
git log --allでも個人メールは出てこない(履歴はこの1コミットのみ)npm run buildは成功、warningなし.gitignoreが効いていることをgit status --ignoredで確認済み
**「どこにもpushしていなかったから完全に消える」**というのが肝だったらしい。もし一度でも外に出していたら、こうはいかなかったということだと思う。ここは自分の理解であって、検証はしていない。
push。何をやっているのか全く分からなかった
次はGitHubにprivateリポジトリを作って、そこへpushする作業である。
打ったコマンドはこれだけだった。
git status
git log --format="%an <%ae>" -1
git remote add origin https://github.com/(ユーザー名)/bibimba-works.git
git remote -v
git branch -M main
git push -u origin main
意味も一応教えてもらった。git remote add origin ... は「このフォルダのアップロード先はGitHubのこの倉庫ですよ」と教える操作。git push -u origin main は「PCにあるものをGitHubへアップロードし、次からはこのペアを覚えておいてね」という操作。
読めば分かる。分かるのだが、打っている最中は一行ごとに不安になってAIに確認していた。
そして終わったあと、こう送っている。
ここまで行きました。何やってるのか全くわからなかったです。
返ってきたのがこれ。
ここまで行けていれば 成功 です。そして、分からなかったのは普通です。これは「サイト作り」というより、かなり裏側の保管・履歴管理の作業です。
優しい。
まだ公開はしない、という判断
pushが終わった段階で、状態はこうなった。
- ローカルPC:BIBIMBA WORKS v0.1 あり
- Git履歴:noreplyアドレスで1コミットのみ
- GitHub:privateリポジトリに保存済み
- Cloudflare:未接続
- 一般公開:まだされていない
ここで一つ確認しておきたかったのが、Cloudflare Pagesに接続したらどうなるのか、である。答えは、接続してデプロイすると *.pages.dev のURLで公開される、GitHubリポジトリがprivateでもサイトURLは別物なので、URLを知っている人は見られる状態になる、とのことだった。
プレビュー用のデプロイにも、URLはデフォルトで公開される仕組みがあるらしい。制限する方法はあるが設定が増える。
なので、箱が確定して中の記事が整うまでCloudflareには接続しないという判断になった。GitHubのprivateリポジトリには保存する。公開はしない。
……いま書いていて気づいたが、これは「完成してから公開したい」という自分のいつもの癖と同じ形をしている。ただ今回に関しては、privacyもcontactもOGPも未完成だったので、判断としては合っていたと思う。たぶん。
まとめ:速さの代償は、把握していない状態が増えること
この回で分かったのは、シンプルなことだった。
一撃で全部やってくれるAIは速い。速いのだが、こちらが頼んでいない状態も一緒に残していく。 立ちっぱなしのサーバーも、個人メール入りのコミット履歴も、自分では作った覚えがない。そして自分に把握する能力がないので、指摘されるまで気づけない。
以前の記事で「中身がブラックボックス化した」と書いたが、ブラックボックスの中身は理解できないだけではなかった。存在に気づけないものが入っている、というのが今回のほうである。
そして、それを直す作業もまたAIに頼んだ。理解しないまま、言われたとおりに打った。
全然理解はできていない。
このあと、さすがに一度立ち止まって、こういう質問をすることになる。次はその話。
※この記事では、個人のメールアドレス、GitHubのユーザー名とID、ローカルPCのパス、コミットハッシュをすべて伏せている。それ以外は当時のやり取りのままである。