【試行錯誤中】AI駆動開発のワークフロー
開発を持続可能なものにするために、現在、個人開発というフィールドで試行錯誤しながら運用しているAI駆動開発のプロセスについてまとめてみます。 開発の全体像としては、現時点では添付の図のような形で行っています。

1. 構想と全体設計(Gemini)
開発のスタートは、Geminiとの対話から始まります。 ここでは、具体的なコードを書くことよりも、どのようなものを作成したいかを伝えて、アイデアのブラッシュアップに重点を置いています。
壁打ちを行いながら「何を作るか」を明確にし、この段階で機能の実現順序(ロードマップ)についても大まかに決定します。
2. 計画の具体化と調査(GitHub Copilot Plan Mode)
Geminiで作成した全体像をもとに、実際の開発環境へ落とし込むフェーズです。 ここではGitHub CopilotのPlanモードを活用します。具体的には以下の2点を行っています。
- 実現順序ごとの整理: Geminiで決めた大まかな流れに対し、必要な情報や実装のストーリーを整理します。
- 既存コードの調査: すでに作成済みの機能がある場合、Copilotに既存の実装状況を調査させ、新しい機能との整合性を確認します。
3. 詳細設計から実装へ(SpecKit Workflow)
実装に向けた最終調整とドキュメント化を行うため、GitHub製のツール「SpecKit」を使用します。 実装に向けて不備がないかを確認しながら、資料も残すという観点で調整を進めています。
具体的なコマンドの流れは以下の通りです。
- specifyコマンド(仕様策定) 「何を作るか(WHAT)」と「なぜ作るか(WHY)」を定義します。 技術的な実装方法はあえて含めず、ユーザーストーリーや機能要件にフォーカスして
spec.mdとして仕様書を出力します。 - planコマンド(詳細計画) 「どう作るか(HOW)」を策定します。 技術スタックやアーキテクチャを決定し、実装計画書(
plan.md)を作成します。この際、シーケンス図やER図を出力させ、視覚的に構造を把握できるようにします。特にMermaidなどは汎用性が非常に高く、こうした図の出力に適しています。 - taskコマンド(タスク設定) 計画を実行可能な単位に細分化し、チェックリスト形式の
tasks.mdを生成します。 各タスクはAIが自律的に実行できる粒度まで分解されます。 - implementコマンド(実装) 作成されたタスクリストに基づき、実際にコードの生成と修正を行います。 タスクを一つずつ消化していく形で実装が進みます。
まとめ
以上が、現在採用しているAI駆動開発のプロセスです。 開発を持続可能なものにするため、個人開発の場でAIモデルの特性に合わせて役割を分担させ、段階的に解像度を上げていくフローを模索しています。
まだ試行錯誤の途中ではありますが、手戻りを防ぎつつ実装を着実に進めるための、現時点での解として運用しています。