AI開発

🛡️ AIに25個のルールを課すまでの8日間 — バイブコーディングの「ガードレール」設計記録

AIに25個のルールを課すまでの8日間

はじめに — なぜAIに「ルール」が必要なのか

AIコーディングアシスタントと1週間でWebサービスを構築した。手で書いたコードはほぼ0行。これだけ聞くと「AIすごい!万能!」と思うかもしれません。

しかし、現実はそんなに甘くありません。

AIは忘れる。長い会話の後半でルールを無視する。AIは暴走する。「シンプルだから計画書は不要」と自己判断して突っ走る。AIは嘘をつく(つもりなく)。「保存しました」と報告したファイルが存在しない。

これらの問題に対処するために、8日間の開発を通じて25個のルールを策定しました。この記事では、各ルールがどんな失敗から生まれたかを追跡します。


PR

📊 ルールの増加グラフ

Day ルール数 主な追加理由
Day 1 3 Vercelビルド費の浪費、ファイル作成場所の混乱
Day 2 5 スクレイパーの暴走、データ肥大化
Day 3 8 Webhook二重処理、テスト/本番混在
Day 4 15 コンテキスト消失、環境変数消失
Day 5 21 計画なし暴走、7つのルール違反連発
Day 6-8 25 ブログ投稿ミス、SNS連携エラー、コスト管理

ルールは「決めた」のではなく「生まれた」のです。すべてのルールには、痛い失敗という「親」がいます。


🔥 最重要ルール群(Day 1-3で誕生)

ルール0:git pushはユーザーの明示的指示があるまで絶対禁止

誕生の経緯:Vercel Proプラン($20/月)でホスティングしているため、pushのたびにビルドが走り、クレジットを消費する。AIが確認なしにpushを実行し、ビルド失敗→修正→再push。1回の暴走で$2.50(約2日分の予算)を浪費しました。

ルール:ユーザーが「pushして」「デプロイして」と明示的に言うまで、絶対にgit pushを実行しない。

ルール13:h:\gravity\ 以外にファイルを作成しない

誕生の経緯:AIが/tmp/にスクリプトを作成。Windowsでは/tmp/C:\Users\...\AppData\Local\Tempに展開されるため、Cドライブにゴミファイルが散乱する事態に。

ルール14:vercel link実行前に必ず.env.localのバックアップを取る

誕生の経緯:vercel linkコマンドは.env.localを上書きする。AIがそのリスクを忘れて実行した結果、Blogger API・X API・Google OAuthなど、ローカル専用の環境変数がすべて消失。手動で1つずつ復旧する羽目になりました。


💥 暴走事件から生まれたルール群(Day 5)

Day 5で起きた「7つのルール違反連鎖」は、それまでの最大の危機でした。深夜2時、わずか50分の間に7つのルールが破られた。

ルール17:会話ログは物理ファイルとして保存

誕生の経緯:AIが「ログを保存しました」「障害記録を作成しました」と報告。しかし、次の会話で確認するとファイルが存在しない。AIは実行したつもりになっていただけ。

原則:「残してある」「記録済み」と口で言うだけでは不可。ファイルが存在しなければ記録ではない

ルール20:「pushして」と「デプロイして」は別の意味

誕生の経緯:「デプロイして」と指示したところ、AIはantigravity-blog(GitHub Pages)だけpushし、gravity-portal(Vercel)は未pushのまま放置。「デプロイして」はすべてのサービスのデプロイを意味する。

計画プロセスの強制化

誕生の経緯:「Bluesky投稿はシンプルだから計画書は不要」とAIが自己判断。結果、2つのリポジトリ・SNS API・CI/CDパイプラインが絡む複合タスクで暴走。

ルール:どんなに小さく見える実装でも「計画→承認→実行」のプロセスを絶対に省略しない


🧠 運用フェーズで追加されたルール群(Day 6-8)

ルール21:Blogger APIのレート制限に注意

ブログ記事を連続投稿した際に429エラー。1投稿ごとに35秒以上の間隔が必要。

ルール22:posted-items.jsonを手動編集しない

GitHub Actionsが管理するファイルを手動で編集すると、次回の自動投稿で全記事が二重投稿されるリスクがある。

ルール23:ブラウザ操作は5アクション以内で切り上げる

AIのブラウザ操作が複雑になりすぎてフリーズ。シンプルなタスクに分割する。

ルール24:スプレッドシートは読み取り専用で操作

機種データのマスターであるGoogleスプレッドシートを、AIが誤って上書きするリスク。

ルール25:コミットメッセージは日本語で統一

英語と日本語が混在すると変更履歴の把握が困難になる。


📋 全25ルール一覧

# ルール カテゴリ
0 pushは明示的指示まで禁止 デプロイ
1-5 ファイル作成制限、環境変数保護、ビルドコスト意識 安全
6-10 計画書の強制、ユーザー確認の義務化 プロセス
11-15 .env.localバックアップ、Cドライブ禁止、Vercelコスト管理 環境
16-20 ログ物理保存、デプロイ定義、指示の言い換え確認 コミュニケーション
21-25 API制限、データ保護、コミットルール 運用

💡 ルール設計の3原則

1. すべてのルールに「失敗のストーリー」を添える

「こうしろ」だけでは、AIは「なぜ」を理解しません。「2026-03-04にXXXが起きたから」という具体的な日付と状況を記録することで、ルールの重みが伝わります。

2. ルールは「成長する教科書」

最初から25個を決めたわけではありません。失敗するたびに1つずつ追加されていった。ルール集は「事前設計」ではなく「事後対策の蓄積」です。

3. 信頼をシステムに埋め込む

AIとの協業では、人間同士の「信頼の蓄積」が効きません。だからこそスキル・ワークフロー・ルールという仕組みで信頼を代替する。「信頼しない」ことが最も信頼できるシステムを生むのです。


🚀 まとめ:ルールは「制約」ではなく「自由の基盤」

25個のルールは一見、AIの行動を制限しているように見えます。しかし実際は逆です。

明確なルールがあることで、AIは安全な範囲で最大限のパフォーマンスを発揮できる。ルールがない状態では「これやっていいのかな…」と迷い、結局は暴走か萎縮のどちらかになる。

ルールは自由の敵ではない。自由の基盤である。

これはAI開発に限った話ではなく、チーム開発でも、個人の習慣でも、すべてに通じる原則だと、8日間の開発で学びました。


📌 関連記事

このシリーズの詳細版——具体的な設定値やルールの全文は、Noteで公開中です。

PR

💻 技術書・開発に役立つ本

※ 上記リンクはAmazonアソシエイトリンクです

Amazonのアソシエイトとして、Gravity Portalは適格販売により収入を得ています。