
Nuxtアプリの環境構築・初期化を自動化:AIエージェントのスキルが従来のシェルスクリプトに代わる理由
Cloudflare Workers上にNuxtアプリを自動構築する方法を徹底解説。従来の壊れやすいシェルスクリプトを、開発者の意図を組んで柔軟に判断・動作するインテリジェントなAIエージェントのスキルに置き換えるメリットや、npx skillsコマンドを用いた実用的なセットアップ手順を紹介します。
目次
Nuxtフレームワークを使って新しいアプリケーションの開発を始めるとき、モジュールのインストールや、nuxt.config.ts、wrangler.jsoncなどの設定ファイルのセットアップといった、退屈で煩雑な手順を踏む必要があります。シェルスクリプトを使えばこのプロセスを自動化できますが、プロジェクトの要件や構成のバリエーションが増えるにつれて、スクリプトによる対応はすぐに限界を迎えます。
そこで私たちは、従来の「スクリプト」によるアプローチを見直し、AIエージェントの**「スキル(Agent Skill)」**へと置き換える検証を行いました。
従来のシェルスクリプトが得意なこと
スクリプトは、あらかじめ決定された固定の処理手順を、コード内に直接ハードコードされたロジックに従って順番に実行することに長けています。
#!/usr/bin/env bash
set -e
npx nuxi@latest init "$1" --template minimal --packageManager pnpm --no-gitInit -M @nuxt/ui,@nuxthub/core,@vueuse/nuxt
cd "$1"
cp ~/templates/nuxt.config.ts .
cp ~/templates/wrangler.jsonc .
しかし、このスクリプトは以下のような課題に直面すると、途端に機能しなくなります。
- 固定されたデフォルト設定。 上記のスクリプトでは UIモジュールとして
Nuxt UIがハードコードされています。もしAnt Design UIモジュールを使いたい場合はどうすればよいでしょうか?モジュールの選択肢が増えるたびに、ユーザーが指定しなければならないコマンド引数は増え続けます。 - ユーザーの「意図」を読み取れない。 「ブログを作りたい」という要望には
@nuxt/contentが必要ですが、「ニュースレター機能付きのWebサイトを作りたい」という要望にはCloudflare D1とDrizzleが必要です。スクリプト単体ではこの要件の違いを自律的に判断できず、構成のパリエーションごとに個別のスクリプトを作成しなければなりません。 - 気づかないうちに風化・形骸化する。 Nuxtなどのフレームワークは、メジャーアップデートの際に設計 convention が大きく変更されます。たとえば、Nuxt 4 ではソースディレクトリが
app/に変更されました。Nuxt 3 向けに書かれたスクリプトをそのまま使い続けると、誤ったディレクトリ構造で静かにスキャフォールディングが実行され、エラーを引き起こすまでユーザーは問題に気づきません。
**アプリケーションの初期構築(App Scaffolding)**は、「単純な処理の実行」ではなく「高度な意思決定」が求められる課題です。そのため、考慮すべき決定事項が増えれば増やすほど、スクリプトによる自動化はスケールしなくなります。
なぜ従来のスクリプトではなく「AIエージェントスキル」を使うのか?
エージェントスキル(Agent Skill)とは、単に実行されるプログラムのコードではなく、**「AIエージェントが動作するために従う知識の体系」**です。スキルは SKILL.md という設計書ファイルを中心に構成され、タスクの実行に必要な関連リファレンスドキュメント、テンプレート、および実行スクリプトなどを柔軟に同梱できます。
エージェントスキルの具体的な仕組みについては、解説記事 AIエージェントのスキルとは?その基本概念から作成方法、再利用可能なワークフローの構築までを徹底解説 で詳しく紹介しています。
AIエージェントのスキルは、シェルスクリプトとしての確実な実行力を維持しつつ、スクリプトにはない「自律的で合理的な判断力」をプロセスに追加してくれます。
- ユーザーの曖昧な指示(自然言語)から意図を推測し、データベースが必要かどうかを賢く判断します。
- 指定されたオプションリストから、本当に必要なオプションモジュールだけをインテリジェントに選択・導入します(例:
Nuxt Content、i18n、分析ツールなどは、ユーザーの要件に応じてオプトインで追加されます)。 - 最新の
Nuxtフレームワーク、Cloudflare 連携用のNuxtHub、およびデプロイ用のWranglerなど、目まぐるしく変化するエコシステムの最新仕様に自律的に適応します。 - 実行途中でエラーが発生した場合、エージェント自身でエラー原因を分析して自己修復・リトライを試みます。
- プロジェクトの構築完了前に、事前に定義されたチェックリストに沿って動作確認と品質チェックを自律的に実施します。
Nuxt & Cloudflare スキャフォールディングスキルの裏側
私たちが作成した scaffold-nuxt-cloudflare-app-skill は、以下のステップに沿って、本番環境を見据えた高品質な初期構築を自律的に実行します。
- 曖昧な要件の具体化:
- UIキットの選択(デフォルトは Nuxt UI または Antdv Next)
- データベースの要否(例:Cloudflare D1 の有無)
- CMS用の
@nuxt/contentや多言語化用の@nuxtjs/i18nなどの追加モジュールの要否
- ベースアプリケーションの構築:
pnpm dlx nuxi@latest initを実行して、最新バージョンの Nuxt フレームワークをpnpmパッケージマネージャー構成で初期化します。さらに、Cloudflare のビルド環境でbetter-sqlite3やsharpなどのネイティブライブラリが正常にビルドできるよう、環境変数や設定を適切に構成します。 - 意思決定マトリクスによるモジュール導入:
@nuxt/ui/@antdv-next/nuxt、@nuxt/image、@nuxtjs/seo、@nuxthub/core、@vueuse/nuxtなどの必須・推奨モジュールに加え、ユーザーの要望に応じて Drizzle / D1、Nuxt Content、i18n を条件分岐でインストールします。 - 最適なディレクトリ構造の展開:
app/(Nuxt 4 準拠)server/shared/tests/- ルート直下の各種設定ファイル
nuxt.config.tsの詳細設定:- SEO向上のための
site.urlやsite.nameの設定 - Cloudflare バインディング用の NuxtHub
hubブロックの記述 - ルーティングとキャッシュの制御を行う
routeRulesの生成 - 最新の
compatibilityDateの指定
- SEO向上のための
wrangler.jsoncの自動生成とバインディング- 開発環境の堅牢化とテスト:
VitestとESLintをセットアップし、最後に自律的にpnpm installおよびpnpm devを実行して動作確認を行います。すべての正常動作が確認された段階で、初めて初期構築作業の完了を宣言します。
シェルスクリプト vs AIエージェントスキル:機能対比
| 比較項目 | シェルスクリプト | エージェントスキル |
|---|---|---|
| ユーザーの意図の理解 | ❌ 固定された挙動のみ | ✅ 要件に応じて柔軟に適応 |
| 柔軟な意思決定 | ❌ コマンド引数による事前定義のみ | ✅ 実行時に状況から自律判断 |
| フレームワークの更新 | ❌ 手動でコードを書き換える必要あり | ✅ 現在の最新エコシステムを検証し適応 |
| エラー発生時の復旧 | ❌ 処理がそこで停止する | ✅ エラー原因を特定し自律的に自己修復 |
| 成果物の品質検証 | ❌ チェック機能なし | ✅ 最終チェックリストによる自動テスト |
| メンテナンスコスト | ❌ 引数や分岐ロジックの肥大化 | ✅ マークダウン(設計書)の修正だけで完結 |
npx skills CLI を使った AIエージェントスキルのインストール方法
エージェントスキルの導入は、オープンソースの skills CLI を使うことで、たった1つのコマンドで完了します。
npx skills add https://github.com/Tech-Voyage-Dev/scaffold-nuxt-cloudflare-app-skill.git -g
このコマンドを実行すると、CLI がリポジトリを自動的にクローンし、検出されたスキルを現在あなたの環境に導入されているどのエージェントに紐付けるかを尋ねてきます。

今回は、推奨されるインストール方法である Symlink(シンボリックリンク) を選択します。これにより、スキルは ~/.agents/skills に一度だけダウンロードされ、選択したすべてのエージェントがその同一のオリジナルファイルを参照するようになります。

- 複数の異なるAIエージェントにスキルを一元管理して配布する手法の詳細は、解説記事 npx skillsを使ってAIエージェントのスキルフラグメンテーション(機能の断片化)を解消する方法 をご参照ください。
インストール完了後、Claude Code を起動すると、新しいコマンドとして認識されていることが確認できます。

あとは、普段の自然言語で指示を出すだけで、完璧な環境が数秒で構築されます。
"Scaffold a new Nuxt app deployed to Cloudflare Workers — Nuxt UI, a blog section, and a D1 database" (Cloudflare Workers にデプロイ可能な Nuxt アプリの雛形を作って。UI は Nuxt UI で、ブログセクションと D1 データベースも含めてほしい)
このスキャフォールディングスキルはオープンソースとして公開されています。ぜひ GitHub リポジトリ をチェックして、その劇的な効率化を体験してみてください。
関連記事

コラボレーション
Block製Buzzを自己ホスト:人とAIエージェントが自律的に協働する次世代共有ワークスペースの構築
Blockが開発したAI協働スペース「Buzz」のNostrリレーを、Cloudflare DNSを介してUbuntu VPS上に自己ホストする方法を解説します。暗号鍵による安全な認証のもと、人間と各種AIエージェントがチャンネルやプロジェクトの履歴を共有し、自律的に連携するセキュアな作業環境を構築しましょう。
9分で読める
旅行
DockerとTREKで旅行プランをセルフホスト:日程、予約、旅費、持ち物リストを完全統合する究極のガイド
Dockerを使用してオープンソースの旅行プランナー「TREK」をデプロイし、CaddyリバースプロキシやCloudflare R2と連携させてセキュアに運用する方法を徹底解説。さらに、MCP経由でAIエージェントと接続し、自然言語で旅行の予約、旅費、持ち物リストを自動整理・一元管理してスマートに旅を計画しましょう。
22分で読める
Cloudflare
CloudflareとModel Context Protocolによる永続的自己ホスト型AIメモリシステム
CloudflareとSecond Brain、MCPを使用して、永続的で自己ホスト型のAIメモリシステムを構築する方法を学びます。ClaudeやGemini、Obsidianでコンテキストを共有しましょう。
38分で読める
前の記事
CloudflareとModel Context Protocolによる永続的自己ホスト型AIメモリシステム
CloudflareとSecond Brain、MCPを使用して、永続的で自己ホスト型のAIメモリシステムを構築する方法を学びます。ClaudeやGemini、Obsidianでコンテキストを共有しましょう。

次の記事
DockerとTREKで旅行プランをセルフホスト:日程、予約、旅費、持ち物リストを完全統合する究極のガイド
Dockerを使用してオープンソースの旅行プランナー「TREK」をデプロイし、CaddyリバースプロキシやCloudflare R2と連携させてセキュアに運用する方法を徹底解説。さらに、MCP経由でAIエージェントと接続し、自然言語で旅行の予約、旅費、持ち物リストを自動整理・一元管理してスマートに旅を計画しましょう。