📜

AIにドキュメントを書かせて別のAIに実装させる

に公開

なにこれ

複数の AI を適材適所に使うことは重要だが,複数の AI を使うときにどうやって情報を共有するかが難しい.本記事ではもともと人間が開発を円滑に進めるためにドキュメントを整備していたが,AI の情報共有でもうまくいったので紹介する.

  • 設計段階ではチャット形式でイメージをつくりたい.
  • 実装はターミナルで動く Agent に任せたい.
  • 双方で情報を共有するためにどうすればよいか.→ ドキュメントを作ればよい.

実現するためにエンジニアに必要なもの

AI がなくても自力で作れるけど時間かかりすぎるしキツい →AI を使うことで単身でも十分対応可能になる,というアプローチ.

  • つくりたいものの具体的なイメージ.
  • (時間などは度外視で)単身で開発してリリースできる技能.
  • ドキュメントを作成する技能.
  • 開発のタスク分割及びマネジメントを適切に行う技能.

設計時

使用する AI:Claude などチャット形式の AI

ゴール:ドキュメントが完成する.

筆者は Claude を使用しているが,他の AI でも同様のことができる.チャット形式でやりとりしながらドキュメントを作成する.

流れ

  1. つくりたいものを明確にイメージする.
  2. AI と対話しながら要件を詰める.少しでも懸念点があれば AI に質問したり自分でドキュメント調べたりして解決する.
  3. 実装のイメージが湧いたら,上記の内容をまとめたドキュメントを書いてもらう.内容を確認して明確でない部分や足りていない部分があればアップデートしてもらう.

コツ

  • ドキュメント作成時には「何が達成されればよいのか」「アプリケーションがどのように使われるか」などを開発者の中で明確にしておく.
  • AI と対話するときにどのような点を明確にすればよいのか,リリースする際にどのような点に注意すべきかを意識しておく.自身の経験が少ない場合は経験豊富なエンジニアに相談する.
  • ドキュメントはしつこくアップデートする.自分が「ドキュメントに従って実装すれば完成する」イメージができたら完成.
  • 一日で完成を目指すと漏れに気付けないので,多少寝かせる時間を設けたほうが良さげ(過去の経験).PC の前に座っているより散歩しながら考えたり,寝る前に考えたりすると良いかも.

実装時

使用する AI:Claude Code などターミナルで動く AI.

ゴール:ドキュメント通りにアプリケーションが完成する.

AI と対話しながら作成したドキュメントをリポジトリ内の md ファイル(document.md など)などにコピペしておく.これを実装用の AI に読ませる.

筆者は Claude Code を使用しているが,他のターミナル系 AI でも同様のことができる(多分).

流れ

Claude.md など重要だが本記事では本質ではないので割愛.

  1. 【重要】Claude.md に開発ルールを書いておく.ここでは実装内容ではなく開発のルール(実装の仕方や開発時のフローなど)を書く.本記事に関係なく Claude Code を使用する際には非常に重要な作業.
  2. AI にドキュメントを読ませる.実装前にかならず「document.md を読んで今後の実装の流れをまとめてください.まだコードは書かないでください」などと指示して理解させる.
  3. AI が示した実装の流れを確認し,どこまで実装するのかを定めて開発させる.
  4. AI が実装したコードを確認し,必要に応じて修正する.
  5. 以降繰り返し.

コツ

総じて人間が実装する場合と同様のことが注意点になる.

  • 事前に開発のルールやフローを定めておく.本格的に実装を始める前に,本番環境の反映までの流れなど確認しておくと良い.
  • ドキュメントを読ませて出力させた開発の流れがイマイチな場合はドキュメントがイマイチなので記載内容や構造を見直す.
  • (特にはじめのうちは)実装は細かい単位で行う.どこまで AI 任せにしてどこまで人間が確認するのかの感覚を掴む.
  • 一つの実装が終わったらコンテキストを切る(/clear コマンド)ほうが良い.長くなると AI が要約するがイマイチな要約をされて方向性がずれることがある.
  • 一つの実装に対して個別にブランチ個別にするよう開発ルールを定めておくと良い.最悪ブランチごと破棄してやり直せる.
  • できるだけ実装は AI に任せる.「自分がやったほうが早い」も発生するが,「明確なドキュメント」「適切な指示」を行えるように人間側もアップデートを行う.

まとめ

アプリケーションを運用する際には必須となるドキュメントであるが,人間に対する情報共有のためだけでなく,AI に対する情報共有にも有効である.

今後更に多くの AI が登場して開発にも用いられることが予想されるが,それぞれの AI 間で情報共有の術を持っておくことは有効ではないだろうか.

AI を活用して一人のエンジニアが開発を完結できるようになると,そのエンジニアが離れた際にプロジェクト運営が困難になることもある.ドキュメントを作成しておけば別のエンジニアがアサインされても十分に開発を継続できるだろう.チーム内で AI 開発の運用方法やドキュメント作成のポイントを共有しておくことも重要である.

以上だ( `・ω・)b

GitHubで編集を提案

Discussion