
Geminiによる設計書の作成/更新と、議事メモからプロジェクトQ&Aを実現できるかを検証してみた
プログラミング
突然ですが、日々のWEB開発業務で、生成AIを利用して以下のような要件を満たしたいと思いませんか?
- Googleドライブで管理しているドキュメントやスプレッドシート(仕様書・議事録など)といった情報資産を、生成 AIで活用したい。
- Geminiにそれらを読み込ませ、設計書の自動作成・更新から、チーム内のQ&A対応までを実現したい。
そこで、それらを試してみて期待動作となるかを検証してみました。
検証項目
Geminiを活用して以下の 3 点を実現できるか検証してみました。
- 設計書の作成: 要件定義書などの資料を基に、WEBフロントエンドの設計書を作成する。
- 設計書の更新: 作成した設計書を、対話を通じて継続的に更新する。
- 案件に関するQ&A: 議事メモをナレッジベースとし、案件に関する質問に回答を得る。
※最初に結論を記載すると、いずれも期待していたような精度の回答には至りませんでした。
1. 設計書の作成
まずはじめに「設計書の作成」を実現する具体的な方法となります。
複数の資料が持つ情報をAIに統合させ、設計作業の初動を自動化します。
STEP1: 判断材料となる資料を準備する
Googleドライブにプロジェクト専用のフォルダを作成し、関連資料を集約します。
そのときの注意点として以下が挙げられます。
- ショートカットの活用
- 他のフォルダで管理されているファイルも、Googleドライブの「ショートカット」機能を使えば、物理的に移動させることなく一元管理できます。
- AIによる自動理解
- 資料の役割を一つひとつ説明する必要はありません。
- Geminiはファイル名、フォルダ構造、そして中身から、それぞれの役割と特性を自動で推論します。
- すべてのファイルはGoogleドキュメントまたはスプレッドシートとして保存します。
フォルダ構成例
例として、記事投稿に関連する機能設計書を作成する目的で、Googleドライブに以下を格納します。
- 01_要件定義
- 記事投稿_要件定義書
- 02_設計
- WEB_API一覧と詳細
- 画面パス一覧
- コーディングガイドライン
- src_tree ※srcディレクトリ以下のディレクトリ、ファイル一覧
- 機能設計書_見本テンプレート
- 記事投稿_機能設計書 ※今回の成果物
- 03_議事録
- 社内定例MTG_議事メモ
- 99_プロジェクトQ&A
- プロジェクトQ&A
STEP2: 具体的な指示(プロンプト)を与える
次にSTEP1で準備した資料群を「コンテキスト(文脈)」としてGeminiに与え、何をしてほしいかを具体的に指示します。
質の高いプロンプトは、主に以下の要素で構成します。
- 役割の指定: 「あなたはシニアWebフロントエンドエンジニアです」のように、AIにペルソナ(役割)を与えます。
- 資料の読み込み: @メンションを使い、STEP1で準備した資料をすべて指定します。そのときファイルパスを指定する必要はありません。ファイル名と@メンションだけで十分です。
- 具体的なタスク: 「〇〇機能の設計書を設計書の見本を元に作成して」のように、明確なゴールを伝えます。
プロンプトのテンプレート
あなたはシニアWebフロントエンドエンジニアです。
以下の資料を熟読してください。
特に、「@記事投稿_要件定義書」を最優先のインプットとし、その内容に厳密に従ってください。
- @記事投稿_要件定義書
- @WEB_API一覧と詳細
- @画面パス一覧
- @コーディングガイドライン
- @src_tree
- @機能設計書_見本テンプレート
「@機能設計書_見本テンプレート」の構成、章立て、書き方のスタイルを完璧に模倣して、
「記事投稿_機能設計書」機能の新しい詳細な設計書を作成してください。出力結果を見て
機能設計書の初稿データとして成立してないと感じます。具体的には
- 精度が低く、全体的にアバウトな内容に感じる。「記事投稿_要件定義書」ではパーツのサイズや要素、配置する画面を指定しているが、それらを汲み取ってない。
- 「記事投稿_要件定義書」に記載されたAPIエンドポイント、APIレスポンスフォーマット、リクエストパラメータが異なっている。
- 「表示デザインは、@コーディングガイドライン に従い」という回答で、具体性に欠けている。
2. 設計書の更新
プロンプト
「@記事投稿_要件定義書」に記載されているパーツサイズ、パーツ配置箇所を「@記事投稿_機能設計書」に追記してください回答
ユーザーは「@記事投稿_要件定義書」に記載されているパーツサイズとパーツ配置箇所を「@記事投稿_機能設計書」に追記するように求めていますが、
提供されたドキュメントの「@記事投稿_機能設計書」には、これらの情報が既に記述されています。
したがって、現在の情報で対応できることはありません。明らかに「記事投稿_機能設計書」には記載されてない内容を指示しましたが、それが伝わらなかったようです。
3. 案件に関するQ&A
最後に案件に関するQ&Aを、議事メモを読み込ませた上で実現できるかを検証してみました。
検証のフローは以下となります。
- 「99_プロジェクトQ&A」ディレクトリにGoogleドキュメント「プロジェクトQ&A」を作成する。
- その「プロジェクトQ&A」を開き、メニュー右上のGeminiで質問を行う。
質問1
プロンプト
「@社内定例MTG_議事メモ」を読んで、「リダイレクトの件」についての進捗を教えて下さい回答
リバリデート後にページがリダイレクトされない問題について、
`redirect`を返す際に`revalidate`も返さないと`s-maxage=31536000`が設定されてしまうことが調査で分かりました。
〇〇さんがNext.jsのキャッシュクリア方法について調査することになっています。
現在の想定では、生成中は以前に生成されたものが表示され、生成完了後に新しいものに置き換わるとのことですが、
本当にこの動きをしているのか検証が必要です。
Chromeでリバリデート後、SafariやChromeで特定のページを指定すると、最初は別のページへリダイレクトされますが、その後はリダイレクトされない現象が確認されています。回答結果から、内容は概ね正しいが詳細に欠ける印象を受けたため、「社内定例MTG_議事メモ」を改めて確認する必要があると感じます。
質問2
プロンプト
「@社内定例MTG_議事メモ」を読んで、2025/06/12(木)の〇〇さんの作業を教えて下さい。回答
2025年6月12日(木)の〇〇さんの作業は以下の通りです。
リダイレクト時のNext.jsのキャッシュクリア方法の調査回答結果から、本日の作業とは異なっていました。
最後に
Geminiによる生成AIは、当初期待していたような精度の回答には至りませんでした。
要因としては、以下が考えられます。
- プロンプトが十分に具体的でなかった
- 読み込ませた資料の粒度や網羅性が不十分だった
- Geminiのパラメータ設定やトークン制限による影響
要因は1つに特定できませんが、今後も精度向上を見込みつつ、生成AI による設計支援やナレッジ活用を確立させたいです。