# 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
