はじめに
本記事は、私が実際に運用している Rails製ブログ管理画面 において、
- AI使用統計機能の追加
- Chart.js グラフ不具合の調査・修正
- Claude 4.5 モデルへのアップグレード
を行った際の 実践的なAI駆動開発の記録 です。
単なる成果物紹介ではなく、
- どのAIを
- どの工程で
- どのような判断基準で使い分けたのか
を再現可能な形でまとめています。
システム概要
対象システム
- Rails製 ブログ管理画面(個人運用)
- 記事作成時にAIを用いて以下を生成
- タイトル
- 抜粋
- SEOメタ情報
- タグ
- スラッグ
追加した機能
- AI使用統計ページ
- モデル別利用回数
- トークン使用量
- コスト
- 日別・モデル別の可視化(Chart.js)
技術スタック
- Ruby on Rails 8.1.1
- AWS Bedrock
- Claude Sonnet 4.5
- Claude Haiku 4.5
- Chart.js
- esbuild
- Turbo
- Docker
※ モデル情報・料金は執筆時点のものであり、将来変更される可能性があります。
AIモデルの設計方針
モデル割り当てポリシー
高品質が求められるタスク
→ Claude Sonnet 4.5
軽量・定型タスク
→ Claude Haiku 4.5
- 品質とコストのバランスを重視
- 既存データとの後方互換性を維持
AI駆動開発における基本思想
AIは「万能な開発者」ではありません。
そのため本プロジェクトでは、AIを工程ごとに役割分担 させています。
- 急いで実装させるAI
- じっくり調査させるAI
- 設計・仕様書に集中させるAI
を明確に分けています。
Case 1:新機能追加・既存機能改修
想定ケース
- 新しい機能を追加する
- 既存機能を拡張・変更する
フロー
Kiro
↓
Claude Code
↓
Claude Code(修正・調整:最大2〜3回)
↓
改善しない場合
↓
Codex(調査・修正)
↓
Report(Markdown)
役割の詳細
🧠 Kiro(設計・仕様書)
- 要件整理
- 改修方針の決定
- 仕様書・設計書作成
- 影響範囲の整理
⚡ Claude Code(一次実装)
- 高速な実装
- まず動く形を作る
- スピード重視
※ 2〜3回試して改善が見られない場合は深追いしない
🔍 Codex(切り札)
- 原因調査
- 実装修正
- 設計・前提のズレの修正
Case 2:一次実装後にバグ・エラーが発生している場合
想定ケース
- 実装自体は完了している
- バグ・エラー・想定外挙動が発生
フロー
Codex(調査)
↓
Codex(修正)
↓
Report(Markdown)
判断理由
- 仕様はすでに固まっている
- 問題はコード・環境・前提条件
- Claude Code を挟むとノイズが増える
→ 最初から Codex に調査を任せるのが最短経路
実例:AI使用統計グラフ不具合の修正
発生していたエラー
Uncaught TypeError: Failed to resolve module specifier "chart.js"
Uncaught TypeError: Chart is not a constructor
原因
- chart.js をブラウザ側で直接 import していた
- esbuild による JS バンドルが行われていなかった
- bin/dev で JS watch が有効になっていなかった
- Turbo 環境下で描画タイミングが早すぎた
対応内容(要約)
- Chart.js を esbuild のバンドル対象に追加
- window.Chart として公開
- 描画処理を
turbo:load後に実行 - JS watch 設定を追加
Claude 4.5 モデルアップグレード
実施内容
- Claude 3.x → Claude 4.5 へ移行
- 既存統計データとの互換性維持
- 単体テスト更新(全件通過)
モデルID(クロスリージョン推論)
Sonnet 4.5: us.anthropic.claude-sonnet-4-5-20250929-v1:0
Haiku 4.5: us.anthropic.claude-haiku-4-5-20251001-v1:0
Report(Markdown)を必ず残す理由
すべてのケースで、最後に Report を Markdown で記録 しています。
Report テンプレート
# Report: <Issue Title>
## 概要
## 発生していたエラー・症状
## 原因
## 対応内容
## 結果
## 学び・次回への改善
- 問題の再発防止
- AIへの再入力素材
- 自身の判断ログとして活用
まとめ
AI駆動開発は、
- AIにすべてを任せること
- 速さだけを追求すること
ではありません。
調査・設計・実装・検証 を分離し、
それぞれに適したAIを使い分けることで、
- 再現性
- 安定性
- 運用耐性
を備えた開発プロセスになります。
本記事が、AI駆動開発を実運用に取り入れる際の
一例として参考になれば幸いです。