「パブリックにする」ボタンの前で、30分フリーズした。
GitHubのリポジトリ設定画面。Visibility の項目。Private を Public に変更する。ただそれだけのことに、指が動かなかった。
コードを公開するということは、自分の思考過程を公開するということだ。
僕のリポジトリには、すべてが残っている。最初期の、めちゃくちゃなディレクトリ構造。意味不明なコミットメッセージ(「fix」とだけ書かれたものが17個ある)。AIに全面的に頼って書いたコード。そして、AIに書いてもらったということが、コミットログから丸わかりになる。
a3f21c8 fix b7e9d12 fix again c4a8f67 fix d1b3e89 update stuff e5c7a23 add thing f9d2b45 fix layout maybe g2h6j89 feat: implement dashboard with Recharts (Claude Code) h8k4m12 refactor: restructure project following Astro conventions
前半のコミットメッセージは惨憺たるものだ。「fix」「update stuff」「add thing」。何を修正したのか、何を追加したのか、未来の自分にすら伝わらない。
後半になると少しマシになる。Conventional Commitsの形式を覚えて、feat:やrefactor:をつけるようになった。でもそれも、Claude Codeが「コミットメッセージはこう書くと良いです」と教えてくれたからだ。
この成長の軌跡を、世界に晒す。
ハッチの言葉が背中を押した。でも、まだ引っかかることがあった。
AIに書いてもらったコードを、自分のリポジトリとして公開していいのか。
この問いに、僕はまだ明確な答えを持っていなかった。
建築家は自分でレンガを積まない。映画監督は自分でカメラを回さないこともある。料理研究家のレシピは、アシスタントが実際に調理することもある。
でも建物を設計したのは建築家だし、映画を作ったのは監督だし、レシピを考えたのは料理研究家だ。
僕はこのプロダクトを設計した。何を作るか決めた。どう動くべきか定義した。問題が起きたら判断した。コードを書いたのはAIだけど、プロダクトを作ったのは僕だ。
…たぶん。まだ完全には確信が持てない。でも公開しないよりは、公開して世界に問うほうがいい。
Pre-publish checklist: [x] .env ファイルが .gitignore に含まれていることを確認 [x] APIキー、トークンがコードにハードコードされていないことを確認 [x] README.md の作成(プロジェクト概要、セットアップ手順、ライセンス) [x] LICENSE ファイルの追加(MIT) [x] 機密データを含むコミットがないことをgit logで確認 [x] プッシュ、マージ、デプロイまでして確認
チェックリストを作った。セキュリティの穴の教訓だ。APIキーが漏れたら、公開どころの話じゃない。
1つずつ確認していく。.envファイル。OK。ハードコードされたトークン。ない。git logをすべて遡って、機密情報がコミットされた形跡がないか確認。ない。クロが最初から.gitignoreを適切に設定してくれていたおかげだ。
深呼吸をして、ボタンを押した。
「Change visibility」→「Make public」→「I understand, make this repository public」
3回の確認ダイアログ。GitHubも「本当にいいのか?」と聞いてくる。いい。たぶん。
画面を見つめた。Public というバッジが、リポジトリ名の横に表示されている。
世界中の誰でも、このコードを見られる。フォークできる。プルリクエストを送れる。
人事がGitHubにパブリックリポジトリを持っている。3ヶ月前の僕が聞いたら、意味がわからないだろう。GitHubが何かすら知らなかったのだから。
公開して1時間後。GitHub のスターが1つ付いた。
ハッチだった。
たった1つのスター。でも、それは僕のコードを「見る価値がある」と誰かが認めてくれた証だ。たとえそれが友人の温情だとしても。
勇気を出してよかった。
完璧じゃなくていい。恥ずかしくていい。成長の途中を世界に晒すことに意味がある。人事のアラフォーがAIと一緒にコードを書いている。その事実自体が、誰かの背中を押すかもしれない。