私たちのAI活用術:Shopifyテーマ開発編
AI支援ツールは、特にReactのようにオープンソースのサンプルが豊富で、大規模言語モデル(LLMs)の学習データにもしっかり組み込まれているエコシステムにおいて、開発者にとって強力なサポートシステムとなっています。
しかし、Shopifyテーマ開発はまったく別の話です。
Shopifyは独自のテンプレート言語 Liquid を使用しています。Liquidはオープンソースですが、公開リポジトリではあまり一般的ではありません。そのためAIツールは、特にスキーマ構造、アクセシビリティパターン、Shopify特有のベストプラクティスに関して、Liquidコードを正確に解釈・生成することに苦労します。
Flagshipでは、このギャップを埋めるために取り組んでいます。Shopifyの Machine Context Protocol (MCP) や、Horizonテーマで公開されている Cursorルール とプロンプトを基盤にしています。さらに、グローバルのShopifyエコシステムが実際にAIをどのように使っているかを共有してくれており、これが私たちの実験や社内ツール開発に大きなインスピレーションを与えています。
私たちのアプローチはシンプルな現実に基づいています。AIはスピードを高めてくれますが、人間の専門知識を置き換えるものではありません。特にアクセシビリティ、レガシーコード、本番に関わる重要な変更においてはなおさらです。明確な構造と一貫したレビューこそが成果を左右します。
AIをジュニアデベロッパーとして扱う──これが私たちの重要な洞察です。AIは有能で速くて便利ですが、正しい構造・指示・レビュー体制がなければ力を発揮できません。
この考え方は、エージェントとの関わり方やプロジェクトの共有ツール構築に大きく影響しています。
Shopifyテーマ開発におけるAIツール
AIツールの進化は非常に速く、私たちもいくつかのツールを試しつつ、Shopifyエコシステムの開発者が推奨するものを参考にしています。試したツールには Cursor、Claude Code、GitHub Copilot、ChatGPT、Gemini CLI、そしてプルリクエストレビュー専用の CodeRabbit があります。
Shopify自身も、開発者と管理者の両方のワークフローにAIを統合し、この分野を積極的に形作っています。Shopify Dev MCP、Cursorルール、Sidekickアシスタントはいずれも、Shopify特有のロジックや構造、規約をAIが標準的に解釈できるようにする取り組みです。
Flagshipの経験から言えるのは、この時点では「どのAIを選ぶか」よりも「そのAIにどれだけプロジェクト固有のコンテキストを与えるか」が重要だということです。ルールやコンテキスト、MCPを通じて共通の制約を与えることで、どのツールを使っても一貫性のある信頼できる出力を得られます。
どのツールにも癖はありますが、共通の原則は変わりません──セットアップが整っていればいるほど、結果は良くなるということです。
ルールとコンテキスト:AIに正しい指示を与える
まず、ルールとコンテキストが何かを理解しましょう。
ルールはモデルが必ず従うべき制約、コンテキストは結果を改善するための補足情報(ただしルールと紐づかない限り必須ではない)と考えることができます。現状、ツールごとにルールとコンテキストの扱いは異なり、プロジェクトディレクトリ内でのファイル配置や記法も独自の方式を採用しています。
以下はツールごとの違いを示す図です。
社内では、HorizonテーマでのShopifyの取り組みから着想を得ています。ここではCursor専用の構文を使い、Liquid、JavaScript、CSS、アクセシビリティ基準に関するルールを定義する構造化アプローチが共有されています。
これらのルールは /.cursorrules フォルダに格納され、サンプルコードとセットで管理されています。これにより、AIツールが一貫性のある出力を生成しやすくなります。
さらにShopifyは、Shopify Academyでこのアプローチを解説する動画も公開しています。Cursor AIを用いて「spending bar」セクションを生成する方法を紹介しています。
私たちもこのアプローチを発展させ、各プロジェクトに context.md
を追加しました。このファイルではプロジェクト構造やShopify MCPツールの参照方法を説明しています。これはStoretaskerのニュースレター記事から着想を得たもので、期待値を明確化するのに役立ちました。
重要な学びのひとつは、特に複雑なプロジェクトではコードを編集する前にAIに確認質問をさせるようにすると効果的だということです。
共有標準:AGENTS.md
前述のとおり、ルールとコンテキストの扱いはツールごとに異なります。しかし最近(2025年8月21日)、主要プレイヤー(OpenAI、Amp、Cursor、Gemini CLI、Jules)が新しい共有標準を提案・採用しました。それが AGENTS.md です。これは「エージェントのためのREADME」で、コンテキストと制約をAIツールに渡す方法を統一することを目的としています。
ツールは次第に、モデルが「何をすべきか(ルール)」と「何を知っているべきか(コンテキスト)」を統一的に定義できる構造を受け入れ始めています。これにより、異なるエディタやアシスタントを利用する開発者間でのコラボレーションがしやすくなり、予期せぬ挙動も減らせます。
ルールとコンテキストの区別は依然として存在しますが、表現の仕方が違います:
Rules | Context |
必ず守る | 参照してよい |
規範的(must, do) | 記述的(example, note) |
ファイル固有またはグローバル | 一般的な参照やプロンプトに基づく |
つまり、今ではプロジェクトを構造化してツールをまたいでもAIが同じ挙動をするようにでき、これらのファイルをチーム共有の資産として扱えるようになったのです。
実務的な情報として、このファイルはリポジトリのルートに作成する必要があり、通常はプロジェクト概要、ファイル構造、コードスタイルガイドラインといったセクションを含みます。
私たちの開発経験からの推奨は、ファイルを1つだけでなく複数設けることです。たとえば、ルートディレクトリにプロジェクト構造やビルドコマンド用のファイル(webpackなどのバンドルツールを使う場合)を置き、さらに /shopify
フォルダ内にセクション構築やローカライゼーションのガイドラインを置くとよいでしょう。
Shopify Dev MCP
Shopifyテーマ開発にAIを活用する上で重要なもうひとつの要素がMCPの利用です。AIアシスタントは Shopify Dev Model Context Protocol (MCP) を通じてShopifyの開発リソースに接続できます。これにより、Shopifyのドキュメント検索、APIスキーマの探索、関数の構築、最新のAPI情報の取得が可能になります。
つまり、AIアシスタントにLiquid生成やAPIコールを依頼した際、推測ではなく実際のShopifyエコシステムの情報を参照できるのです。セクションを生成・検証する際には、learn_shopify_api
や validate_theme
といったMCPエンドポイントを指定するよう指示することも可能です。
Shopify MCPは、Shopify CLI theme check と組み合わせて使うと最も効果を発揮します。
実際のユースケース
最後に、私たちがShopifyテーマ開発でAIをどのように活用しているか、具体的な事例をいくつか共有します。
1. プロンプトによるセクション生成
セクションの基本レイアウトは常に標準化されています。Liquid、スタイルシートやJavaScript、セクションスキーマが含まれます。私たちはエージェントを用いたセクション作成用の独自プロンプトを調整しており、以下を含んでいます:
- セクションを作成する際に従うべき構造化プロンプトと手順
▶ View Prompt example
# Create and localize new section This guide helps you create a new Shopify section with proper localization support for both schema and storefront text. All localization and section rules are defined in the following references: - `/rules/localization.mdc` → localization coding standards and best practices - `/rules/locales.mdc` → locale file structure and translation development standards - `/rules/sections.mdc` → section structure rules (file naming, presets, schema conventions) - `/rules/example/section-example.liquid` → **canonical section template** Always follow those files when adding or editing translations. > The generated code **must mirror the structure** of `section-example.liquid`. Do not reorder parts. ## Usage Use this prompt whenever you want to generate a new Shopify section. Basic syntax: ``` Create localized section: [SECTION_NAME] ``` Optional parameters: ``` Blocks: [BLOCK_TYPES_AND_FIELDS] Settings: [SETTINGS_LIST] Purpose: [BRIEF_DESCRIPTION] ``` Full syntax example: ``` Create localized section: text-banner Blocks: heading:text, subheading:text, content:richtext Settings: container_width:select(sm|md|lg), padding_top:number, padding_bottom:number Purpose: A simple hero banner without scripts ```
保存済みのプロンプトやテンプレートを使うことで、リクエストを標準化し、機能ごとに一貫性のある出力を得ることができます。また、これらのプロンプトや context.md
をチームで共有・バージョン管理することも有効です。
2. スキーマのローカライズ:バイリンガルテーマを容易に
AIはスキーマ設定やストアフロントテキストのローカライズに特に役立ちます。スキーマのローカライズとは、Shopifyテーマエディタに表示されるラベル、説明、デフォルトコンテンツを多言語化することを指します。日本向けのプロジェクトでは、セクションやブロックのラベル、説明文、デフォルトコンテンツを自然な日本語に翻訳し、英語版と同期させる用途があります。
もちろん、ローカライズは追加の確認が必要なため、最終的にはネイティブスピーカーによるレビューを行います。
私たちはAIにこう依頼します: 「次のセクションスキーマをビジネスに適したEコマーストーンで日本語に翻訳してください。命名は英語版と一貫させてください。translations.mdの規約を使用してください。」
3. リンティングを超えて:命名と一貫性の強制
開発ではリンターが役立ちますが、クラス命名規則やメタフィールド構造、スキーマパターンなど、プロジェクト全体のロジックを強制することはできません。ここでAIがそのギャップを埋めます。
テーマ開発におけるAIの使い道として:
- スキーマ間での不一致な命名を検出
- セクション設定を内部パターンに合わせてリファクタリング
-
aria-label
の追加など、よりアクセシブルなデフォルトを提案
この領域では、AIはコード生成ツールというより「スタイルガイドの補助」として機能します。
4. プルリクエストレビュー
Flagshipのフロントエンド・バックエンド開発チームで広く使われているのが CodeRabbit です。Shopify Liquidへの対応が非常に優れており、脆弱性の可能性を検知したり、プルリクエストの変更点を要約してくれます。さらに、コード変更をプロジェクトの文脈に基づいて図解する機能もあります。
プルリクエストを作成すると、CodeRabbitが自動で解析し、提案やコメントを生成します。レビュー担当者が「この提案は採用しない」と理由を添えて返答すると、CodeRabbitはそれを学習し、将来同じ指摘を繰り返さなくなります。
5. Sidekickで管理画面の商品検索
Shopify Sidekick は、特定のメタフィールド値を持つ商品を管理画面で探す際に頻繁に使っています。大規模なカタログや、管理画面でフィルタリングできない未構造化のメタフィールドがある場合に特に便利です。
例えば、新しいテーマ機能をテストしたいときに、それが特定のメタフィールドの組み合わせを持つ商品のみに適用される場合、Sidekickが非常に役立ちます。
AIをジュニアデベロッパーとして
Shopifyテーマ開発者として、AIは構造・制約・明確な目的意識を持って使うことで強力な支援者となります。
Scaling Shopify Dev with AI でAnn Thomas氏が語ったように、AIはジュニア開発者として扱うべきです:
- 明確なプロンプトを与える
- 期待値を定義する
- すべての出力をレビューする
- 与えるコンテキストを継続的に改善する
そしてジュニア開発者と同じように、きちんとオンボーディングに投資すれば成果は大きくなります。
まとめ
- ツール選びよりも構造が重要:ルールとコンテキストを定義し、一貫した出力を得る
- AIはジュニア開発者:有能で速いが、指示とレビューが必要
-
AGENTS.md と
context.md
を使ってチームで共有できる規約を作成する - チーム内で事例やベストプラクティスを共有し、品質と学習をスケールさせる
AIツールは進化を続け、Shopifyも開発者リソースを磨き続けています。こうしたワークフローが今後どのように成熟していくのか、私たち自身とても楽しみにしています。ここでご紹介した基本は今後も変わらず役立つはずですが、私たちも常に新しいアプローチを模索し続けています。
皆さんのチームではどのようにAIを活用していますか?ぜひ実践例や工夫を共有いただければ嬉しいです。