1. はじめに

設計書からUIモックアップを作成する、あの地味で時間のかかる作業をAIで自動化したい!

本記事では、AI(Claude Code)に要件定義書を読み込ませ、Vueコンポーネントを自動生成させる『AI駆動モックアップ開発』を試した結果と、その過程で得られた知見をまとめました。

2. 検証環境構成

構成

  • アーキテクチャ:Laravel + Inertia.js + Vue3
  • 使用ツール:VSCode、Claude Code、Backlog MCP Server
  • 入力情報:Backlogドキュメント(要件定義書、画面イメージの添付あり)

前提

  • ベースアプリは実装済み
  • ベースアプリのデザインを踏襲
  • 画面要素と遷移仕様を記載した要件定義書を入力

Claude Code から Backlog MCP Server 経由で要件定義書を参照し、Vueコンポーネントとしてのモックファイルを自動生成する構成としました。

3. 入力情報定義

以下のBacklogドキュメントを元にモック生成を実施しました。

  • 要件定義書:各画面のUI構成(入力項目・ラベル・ボタン・レイアウト・イベント・出力項目)を定義
  • ワイヤーフレーム仕様:要件定義書に添付された各画面のレイアウトとコンポーネント構成の参考画像
  • 設計標準・規約:クラス命名規則・BEM構造・レイアウト分割ルールを定義
  • 画面別詳細設計:

4. プロンプト定義

Claude Code を利用してモックアップを自動生成するために、事前準備ドキュメント・開発設定・レイアウトファイル・ルーティング構成を明確化しました。
これにより、生成結果の再現性と精度を高めることができました。

4.1 事前準備

AIに質の高いモックを作ってもらうために、『指示書』と『部品の設計図』のmd形式のドキュメントを作成しておきます。

📄 CLAUDE.md

Claude Code 実行時のベースプロンプト。
モックアップ作成は mockup.md の指示に従って行う旨を記載。

📄 mockup.md

Claude Code の振る舞いを定義する『全体的な指示書』
以下のようなモックアップ作成ガイドラインを定義。

  • 基本方針
  • プロンプト例
  • モックアップ作成手順
    • Backlog MCPを使用した要件取得
    • 画面別詳細設計の取得
    • 生成・更新対象のファイル構成
    • レイアウト構造
    • UIコンポーネント(components.mdを参照することを定義)
    • スタイル
    • 実装例
    • 動作確認方法
  • 注意事項など

📄 components.md

UI部品の仕様を定義した『部品の設計図』
以下のようなUIコンポーネントの色・形・大きさ・フォントサイズなどのスタイル仕様を定義。

  • 画面レイアウトの統一ルール
    • タイトルなどの命名規則
  • メインエリア内のコンポーネント
    • 検索項目の作成ルール
    • テーブル項目の作成ルール
    • 各種ボタン
    • 各種入力欄
    • ページネーション
    • 削除モーダル
    • アラート

📁 ドキュメント
├── CLAUDE.md # モックアップ作成ガイドライン
├── mockup.md # モックアップ作成手順・参照規則
└── components.md # UIコンポーネント仕様書

⚙️ 設定
├── laravel/resources/js/user/app.js # Vueルーティング設定
├── laravel/vite.user.config.js # Vite設定
├── laravel/tsconfig.json # TypeScript設定
└── laravel/tsconfig.app.json # TypeScript設定(アプリ用)

🧩 レイアウト・コンポーネント
├── laravel/resources/js/Layouts/User/MockupLayout.vue # メインレイアウト
├── laravel/resources/js/Components/User/Layout/MockupSidebar.vue # サイドバー
├── laravel/resources/js/Components/User/Layout/MockupHeader.vue # ヘッダー
└── laravel/resources/js/Components/User/Layout/MockupFooter.vue # フッター

🌐 ルーティング
└── laravel/routes/mockup.php # モックアップルート定義

4.2 Claude Code プロンプト例

Backlogドキュメントの要件定義からモックアップを作成してください。
BacklogドキュメントID: 0197119a90d77f6cb5a19274ada5ba08
機能: 3.1. ロール検索、結果表示
機能分類:role
画面:index

このプロンプトにより、Claude Code は Backlog MCP Server から該当ドキュメントを取得し、画面仕様に基づいて Vue モックアップを生成します。
mockup.md と components.md の定義内容を参照しながら、既存レイアウト構成(ヘッダー/フッター/サイドバー)に準拠したモックアップを出力します。

4.3 生成されるファイル

📄 Vue コンポーネント
laravel/resources/js/Pages/Mockup/[機能分類]/[画面名].vue
├── Index.vue # 一覧画面
├── Create.vue # 新規作成画面
└── Edit.vue # 編集画面

💻 コントローラー
laravel/app/Http/Controllers/Mockup/[機能分類]Controller.php

🔁 更新される既存ファイル
laravel/resources/js/user/app.js:新規パスマッピングを追加
laravel/routes/mockup.php:新しいルート定義を追加
laravel/resources/js/Components/User/Layout/MockupSidebar.vue:新メニューリンクを追加

4.5 実行フロー概要

  • BacklogドキュメントIDから該当要件定義を取得
  • mockup.md の手順に従い、機能分類・画面構造を解析
  • components.md のUI定義に沿ってコンポーネントを組み立て
  • 共通レイアウトを継承して .vue ファイルを生成
  • コントローラーおよびルート設定を自動更新
  • VSCodeでプレビューしてUIの整合性を確認

5. 検証結果

成果概要

生成結果は全体として安定しており、ユーザー管理画面やロール管理画面などの単純構成では高精度 に出力された。
一方で、複雑な画面構成(ネスト構造・非同期処理を含むUIなど)では一部崩れや誤配置が発生した。
完成系に近い画面モック画像を事前に提示した場合、生成精度が大幅に向上した。

項目 結果 備考
単純画面(例:ユーザー管理、ロール管理) 1回の生成で理想に近い成果物を出力可能
複雑画面(例:条件検索・タブ構成あり) 1回の生成では不完全、2〜3回の再生成・手修正が必要
完成画面イメージを提示した場合 レイアウト崩れが減少し、正確性が向上
一括生成(複数画面同時) 精度低下・依存関係の誤解釈が発生しやすい
1画面ずつ生成 意図どおりの構成になりやすく、修正量が少ない

 

このようなシンプルな画面であれば1回の生成で精度の高いモックアップを出力できます。

モックアップ

 

6. 所感と課題

良かった点

シンプルな画面では高精度。人手によるHTMLモックアップ作業がほぼ不要。
要件定義書の整合性確認ツールとしても有用(設計ミスがUI崩れで可視化される)。
Claude Codeの出力傾向を把握すれば、プロンプトを定型化してチーム運用可能。

課題

複雑なUI(モーダル、非同期ロード、条件分岐など)では自動生成精度が低下。
曖昧な項目をAIが勝手に補完して誤実装を行う。
要件定義書の曖昧さがそのまま品質に反映されるため、記載精度の向上が必須。
画面イメージを提示しない場合、配置順やクラス名が不安定になりやすい。

7. まとめ

今回の検証により、モックアップ段階でもAI駆動開発を有効に活用できることが確認できました。
ただし、実用においては次の改善が必要です。

  • 要件定義書フォーマットの明確化(構造・属性の標準化)
  • 曖昧な表現を排除し、AIが誤補完しないためのルール整備
  • モック生成専用プロンプトの最適化
  • 画面を1つずつ確認しながら段階的に作っていくプロセスを導入する

これらを整備することで、要件定義、モック作成、設計、実装 という一連の流れをAI駆動で連携させる道筋が見えてきました。

8. 今後の検討事項

  • 複雑なUIへの対応精度検証
  • AIによるモックアップの品質チェックを取り入れる