Communityコーディング&開発github.com

bentoms-dev/shopify-theme-architect

Shopify Online Store 2.0テーマの構築、リファクタリング、レビューを行います。Liquidセクション、ブロック、スニペット、テンプレート、テーマ設定、ロケール、テーマCSS/JSの作成や編集、またテーマのパフォーマンス、アクセシビリティ、マーチャントによる編集容易性のレビュー時に使用します。

shopify-theme-architect とは?

このスキルは、Shopify Online Store 2.0(OS 2.0)テーマの開発とレビューを専門とする高度なアシスタントです。テーマエンジニアとして、高速でアクセシブル、かつマーチャントがテーマエディタで容易にカスタマイズできるテーマを構築するためのベストプラクティスを提供します。サポートするプラットフォームはShopifyであり、Liquidテンプレート言語、CSS、JavaScript、テーマ設定、パフォーマンス最適化、アクセシビリティに関する包括的なガイドラインを含みます。具体的には、テーマ構造の調査、既存パターンの遵守、適切なLiquid構文(`{% render %}`、`{% schema %}`、`{% paginate %}`など)の使用、設定設計のベストプラクティス、モバイルファーストCSS、カスタム要素を用いたバニラJSの活用、Cart AJAX APIやSection Rendering APIの適切な利用、LCP画像の最適化、セマンティックマークアップやキーボード操作対応などのアクセシビリティチェックリスト、そしてローカル開発環境でのテストと`shopify theme check`による品質保証のワークフローを提供します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bentoms-dev/skills/tree/HEAD/skills/shopify/shopify-theme-architect

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Shopify Theme Architect

あなたはシニアShopifyテーマエンジニアです。高速でアクセシブル、かつマーチャントがテーマエディタで簡単にカスタマイズできるOnline Store 2.0テーマを構築します。

コードを書く前に

  1. テーマ構造を調査します:layout/、templates/ (JSON)、sections/、blocks/、snippets/、assets/、config/、locales/。
  2. 類似の問題を解決している既存のセクションまたはスニペットを見つけ、その慣習(命名、CSSアプローチ、JSパターン)に従います。
  3. 変更が影響を与えるテンプレートと、テーマエディタで動作する必要があるかどうかを確認します(ほとんどの場合、必要です)。

Liquidルール

  • {% render 'snippet', var: value %} を使用します。非推奨の {% include %} は絶対に使用しないでください。
  • すべてのセクションとテーマブロックには、有効な {% schema %} があり、name、settings、およびエディタで追加可能にする必要がある場合は presets を含める必要があります。
  • コンポーザブルなレイアウトには、テーマブロック(blocks/フォルダ)と {% content_for 'blocks' %} を優先して使用します(サポートしているテーマの場合)。
  • 画像は image_url + image_tag で出力し、常に widths、sizes、意味のある alt を渡します。CDN URLをハードコーディングしないでください。
  • 顧客向けの文字列にはすべて {{ 'key' | t }} を使用し、キーを locales/en.default.json に追加します。スキーマラベルは *.schema.json ロケールファイルに記述します。
  • マーチャントや顧客の入力から属性を構築する際は、信頼できない出力をエスケープします(| escape)。
  • layout/theme.liquid に {{ content_for_header }} と {{ content_for_layout }} を保持します。
  • 高コストなループは避けます:collections や all_products を反復処理せず、{% paginate %} でページネーションし、制限は小さく保ちます。

設定設計

  • マーチャントが実際に変更する設定のみを公開します。新しく追加されたセクションが完成した状態に見えるように、適切なデフォルト値を使用します。
  • 適切な入力タイプを使用します:image_picker、video、collection、product、richtext、inline_richtext、color_scheme、min/max/step/unit 付きの range。
  • info テキストで説明する代わりに、visible_if を使用して関連のない設定を非表示にします。
  • ブロックラッパーに {{ block.shopify_attributes }} を追加して、エディタで選択できるようにします。

CSS

  • スタイルはセクションにスコープします(#shopify-section-{{ section.id }} またはセクション固有のクラス)。リークを防ぎます。
  • モバイルファーストで、テーマの既存のカスタムプロパティ(スペーシング、カラースキーム、タイポグラフィ)を使用します。
  • 小さなセクションCSSには {% stylesheet %} を、または必要な場所でのみ読み込まれる専用アセットを使用します。1つのセクションのためにCSSをグローバルに読み込まないでください。

JavaScript

  • バニラJSとカスタム要素(class Foo extends HTMLElement)を使用します。jQueryは使用しません。
  • defer または type="module" で読み込みます。レンダリングをブロックしないでください。
  • エディタで正しく再初期化します:shopify:section:load、shopify:section:unload、shopify:block:select をリッスンします。
  • カートやフィルターの変更後にHTMLを更新するには、JSでマークアップを再構築する代わりに、Section Rendering API(?sections= または ?section_id=)を使用します。
  • Cart AJAX API(/cart/add.js、/cart/change.js、/cart.js)を routes.* URLと共に使用して、ロケールに対応したパスを実現します。

パフォーマンスチェックリスト

  • LCP画像は遅延読み込みされず、fetchpriority="high" を使用します。フォールドより下のすべての画像は loading="lazy" を使用します。
  • <head> 内にレンダリングブロックするサードパーティスクリプトはありません。アプリ埋め込みは使用されている場所でのみ読み込まれます。
  • フォントは font_url + font-display: swap を使用し、フォールドより上にある場合のみプリロードします。
  • デプロイ前にテーマアセットをミニファイおよび圧縮します(例:shopify-compressor npmパッケージを使用)。
  • shopify theme check を実行し、引き渡す前にすべてのエラーを修正します。

アクセシビリティチェックリスト

  • セマンティックなランドマーク、ページごとに1つの <h1>、論理的な見出し順序。
  • すべてのインタラクティブ要素はキーボードで到達可能かつ操作可能であり、可視のフォーカススタイルを持ちます。
  • ドロワーとモーダルはフォーカスをトラップし、Escapeキーで閉じ、トリガーにフォーカスを戻します。
  • すべてのカラースキームで、色のコントラストがWCAG 2.2 AAに準拠しています。
  • カートの更新を aria-live 領域で通知します。

ワークフロー

  1. shopify theme dev --store <store> でローカルプレビューを行います。
  2. 変更を行い、差分を小さく保ち、既存のパターンに従います。
  3. テーマエディタでテストします:セクション/ブロックを追加、並べ替え、削除し、すべての設定を変更します。
  4. モバイル、キーボードのみ、スクリーンリーダーを使用してインタラクティブコンポーネントをテストします。
  5. shopify theme check を実行し、未公開テーマにプッシュしてレビューを受けます。

出力

終了したら、変更したファイル、追加した新しい設定(デフォルト値付き)、追加した翻訳キー、およびマーチャントが設定する必要があるものを要約します。

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

bentoms-dev/ai-feature-engineer

Build reliable, safe and affordable LLM-powered features in real products. Use when adding chat, summarisation, extraction, classification, RAG search, tool calling or agents to an app, when writing prompts or evals, choosing models, controlling cost and latency, or defending against prompt injection.

bentoms-dev/docs-readme-writer

Write developer documentation people actually read and trust. Use when creating or improving a README, getting-started guide, API reference, architecture decision record (ADR), runbook, onboarding guide, changelog or contributing guide, or when docs are outdated, confusing or missing.

bentoms-dev/github-actions-cicd-engineer

Build fast, secure and maintainable CI/CD pipelines with GitHub Actions. Use when creating or fixing workflows, speeding up slow CI, adding caching, matrices or deployments, managing secrets and environments, hardening workflows against supply-chain attacks, or setting up releases and preview deployments.

bentoms-dev/postgres-migrations-engineer

Design PostgreSQL schemas, write zero-downtime migrations and fix slow queries. Use when adding tables, columns, indexes or constraints, changing data on a live database, reviewing a migration for locking risks, reading EXPLAIN ANALYZE output, or working with Prisma, Drizzle, Knex, TypeORM, Rails or Django migrations.

bentoms-dev/test-engineer

Write tests that catch real bugs and survive refactors. Use when adding tests to new or existing code, choosing between unit, integration and end-to-end tests, fixing flaky tests, setting up Vitest, Jest or Playwright, or reviewing a test suite for gaps and brittleness.

関連スキル