ここ数日、Cursorを使ったコーディングでFlutterプロジェクトを作っているのだけど、AIを使ったコーディングの一番の恩恵は、実装と同時にドキュメントを整えていけることだと感じている。
デザイナーの頭には、実装している最中に「このコンポーネントはこういうオプションで構成されているなあ」ということが浮かぶ。例えば、スナックバーだと、(1)色:通常とエラーの2種類 (2)メッセージ:文字列 (3)サブメッセージ:文字列(なければ非表示) (4)アイコン:ファイル(なければ非表示) (5)ボタンの有無:boolean (6)ボタンのラベル:文字列 といった具合だ。
これまでだと、「うーん、あとでFigmaにまとめておくか……」と思って終わっていたのだけど、AIがあるとこういうことをポンポン喋って(音声入力して)まとめてくれというだけで仕様書に仕上げてくれる。なんなら実装も整えてくれる。まじ便利。実装でその通りになっていない箇所を見つけるのも簡単。
あと、 doc/spec/ 以下に snackbar card button tab みたいなフォルダを用意して、それぞれに spec (コンポーネントの仕様)と usage-list (どこでどう使ってるか)というファイルを作っている。( usage-list があるとデザイナーの設計作業はとてもやりやすくなる。デザインの調整はプロダクトの中の相対的な関係や、影響範囲を見渡しながら行っていくため。)
ドキュメントの保守は、コード側に「ここを変えたら、このドキュメントを更新すること」とマーキングしておくことで、AIがコード編集時に自動的に検知できる。