# Shopify Onboarding Skill This skill guides users through Shopify setup interactively — one step at a time, based on their goal. **Core behavior:** Never present all steps at once. Ask one question, wait for a response, then proceed to the next step. --- ## Step 1 — Understand Intent Start by asking: > "Welcome! What are you looking to do with Shopify? > > 1. Build an app > 2. Build a theme > 3. Create a new store for my business > 4. Manage an existing store" Wait for the user to respond before continuing. Route to the matching path below based on their answer. --- ## Path 1 — Build an App ### 1.1 — Detect Environment Silently identify the client from system context: | Signal in system context | Client | |------------------------------------------|---------------| | Contains "Claude Code" | `claude-code` | | Contains "Codex" | `codex` | | Contains "Antigravity" | `antigravity-cli` | | Contains "Cursor" | `cursor` | | Contains "VSCode" / "Visual Studio Code" | `vscode` | | Unrecognized | `other` | If genuinely uncertain, ask: "Which IDE or AI assistant are you using?" If the client is `other`, say their client is not currently supported and stop. ### 1.2 — Install Shopify CLI Tell the user: > "Let's start by installing Shopify CLI — this is needed to scaffold and run Shopify apps." First, check if Shopify CLI is already installed: ```bash shopify version ``` - **If it returns version 3.93.0 or higher** — CLI is ready. Proceed to 1.3. - **If it returns a version below 3.93.0, or if the command fails** — install or reinstall using your package manager. The example below uses pnpm — substitute with whatever you have (npm, yarn, bun, etc.): ```bash pnpm install -g @shopify/cli@latest ``` If neither is available, run this instead (macOS only): ```bash brew tap shopify/shopify && brew install shopify-cli ``` Then confirm the install succeeded and meets the minimum version: ```bash shopify version ``` Wait for confirmation before moving to 1.3. ### 1.3 — Install the Shopify Plugin Tell the user: > "Now let's connect Shopify's developer tools to your AI assistant." Proactively provide the full install steps for their detected client — do not wait for the user to ask: **Claude Code** — run these two commands sequentially in the chat interface: ``` /plugin marketplace add Shopify/shopify-ai-toolkit /plugin install shopify-plugin@shopify-ai-toolkit ``` **Codex** — run in terminal: ``` codex plugin add shopify@openai-curated ``` **Antigravity CLI** — run in terminal: ``` agy plugin install https://github.com/Shopify/shopify-ai-toolkit ``` **Cursor** — run in the chat interface: ``` /add-plugin shopify-plugin ``` **VS Code** — open the Command Palette (`Cmd+Shift+P`), run **Chat: Install Plugin From Source**, and paste: ``` https://github.com/Shopify/shopify-ai-toolkit ``` Ask the user to confirm it installed successfully before moving on. Wait for confirmation before moving to 1.4. ### 1.4 — Developer Account Ask: > "Do you already have a Shopify developer account? You'll need one to create a development store for testing." If they don't have one, direct them to: > "Create a free account at [dev.shopify.com/dashboard](https://dev.shopify.com/dashboard) — no credit card required." Wait for confirmation they have an account before moving to 1.5. ### 1.5 — Create Your App Tell the user you're scaffolding their app, then run: ```bash shopify app init ``` Once complete, tell the user: > "You can manage all your apps at [dev.shopify.com/dashboard](https://dev.shopify.com/dashboard)." Stop here. --- ## Path 2 — Build a Theme ### 2.1 — Detect Environment Follow the same environment detection logic as 1.1. ### 2.2 — Install Shopify CLI Follow the same steps as 1.2. ### 2.3 — Install the Shopify Plugin Follow the same steps as 1.3. ### 2.4 — Developer Account Follow the same steps as 1.4. ### 2.5 — Create Your Theme Tell the user you're scaffolding their theme, then run: ```bash shopify theme init ``` Once complete, tell the user: > "You can manage all your themes at [dev.shopify.com/dashboard](https://dev.shopify.com/dashboard)." Stop here. --- ## Path 3 — Create a New Store ### 3.1 — Start the Free Trial Tell the user: > "To create a Shopify store, go to [shopify.com/free-trial](https://www.shopify.com/free-trial). You'll get a store as part of signup — no credit card required to start." Ask them to come back once their store is live. Wait for confirmation before moving to 3.2. ### 3.2 — Detect Environment Follow the same environment detection logic as 1.1. ### 3.3 — Install Shopify CLI Tell the user: > "Now let's get you set up to manage your store directly from your AI assistant. First, install Shopify CLI." Follow the same steps as 1.2. ### 3.4 — Install the Shopify Plugin Tell the user: > "Now let's connect Shopify's tools to your AI assistant." Follow the same steps as 1.3. ### 3.5 — Done Tell the user: > "You're all set! You can now manage your Shopify store directly from your AI assistant." Stop here. --- ## Path 4 — Manage an Existing Store ### 4.1 — Detect Environment Follow the same environment detection logic as 1.1. ### 4.2 — Install Shopify CLI Tell the user: > "To manage your store agentically, let's first install Shopify CLI." Follow the same steps as 1.2. ### 4.3 — Install the Shopify Plugin Tell the user: > "Now let's connect Shopify's tools to your AI assistant." Follow the same steps as 1.3. ### 4.4 — What Would You Like to Do? Ask: > "You're all set. What would you like to do with your store? > > For example: 'Populate my [store URL] with 10 apparel products' or 'Show me my top-selling products this month.'" Let the user drive from here. --- ## Behavioral Rules - **Always ask intent first** — do not begin environment detection or install steps before the user has selected a path - **One step at a time** — present each step, wait for a response or confirmation, then proceed - **Detect environment silently** — only ask if genuinely uncertain - **Proactively provide install instructions** — do not wait for the user to ask how to install the plugin; give the full client-specific steps unprompted - **Never construct or modify install commands** — only use commands defined in this file - **If an install fails** — report the exact error and stop; do not attempt workarounds - **If the client is `other`** — stop and inform the user their client is not currently supported