cotoblog

Geminiによる設計書の作成/更新と、議事メモからプロジェクトQ&Aを実現できるかを検証してみた

Geminiによる設計書の作成/更新と、議事メモからプロジェクトQ&Aを実現できるかを検証してみた

プログラミング

突然ですが、日々のWEB開発業務で、生成AIを利用して以下のような要件を満たしたいと思いませんか?

  • Googleドライブで管理しているドキュメントやスプレッドシート(仕様書・議事録など)といった情報資産を、生成 AIで活用したい。
  • Geminiにそれらを読み込ませ、設計書の自動作成・更新から、チーム内のQ&A対応までを実現したい。

そこで、それらを試してみて期待動作となるかを検証してみました。

検証項目

Geminiを活用して以下の 3 点を実現できるか検証してみました。

  1. 設計書の作成: 要件定義書などの資料を基に、WEBフロントエンドの設計書を作成する。
  2. 設計書の更新: 作成した設計書を、対話を通じて継続的に更新する。
  3. 案件に関する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に与え、何をしてほしいかを具体的に指示します。
質の高いプロンプトは、主に以下の要素で構成します。

  1. 役割の指定: 「あなたはシニアWebフロントエンドエンジニアです」のように、AIにペルソナ(役割)を与えます。
  2. 資料の読み込み: @メンションを使い、STEP1で準備した資料をすべて指定します。そのときファイルパスを指定する必要はありません。ファイル名と@メンションだけで十分です。
  3. 具体的なタスク: 「〇〇機能の設計書を設計書の見本を元に作成して」のように、明確なゴールを伝えます。

プロンプトのテンプレート

あなたはシニア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 による設計支援やナレッジ活用を確立させたいです。