# Agent Skills

> Agent Skills are per-domain SKILL.md files of the Shoplazza AI Toolkit: how to invoke one with the /shoplazza prefix, pick the right domain, and follow the safety protocol.

Agent Skills are `SKILL.md` guidance files — one per domain — that teach your agent which command to run for each task, along with the domain's fields, boundaries, and safety rules. The CLI works without them, but skills make your agent significantly more accurate.

## Install

One command installs the skills for the agent you already use. For the per-agent commands and how to confirm they loaded, see [Get started → Add the Agent Skills](./get-started#2-add-the-agent-skills).

## Available skills

| Domain | Skill | Covers |
|--------|-------|--------|
| Foundation | `shoplazza-common` | Auth, command layers, output format, and the safety protocol. Loads automatically. |
| Products | `shoplazza-products` | Create / price / stock / tag / publish products, variants, collections, gift cards |
| Discounts | `shoplazza-discounts` | Tiered rebates, coupon codes, flash sales |
| Orders | `shoplazza-orders` | Search, fulfill, refund, update tracking, mark paid |
| Customers | `shoplazza-customers` | Customer profiles, tags, addresses |
| Shop | `shoplazza-shop` | Store settings, metafields, media, analytics, blogs, pages |
| Webhook | `shoplazza-webhook` | Event subscriptions |
| Billing | `shoplazza-billing` | App charges: one-time, recurring, and usage |

## How to invoke a skill

Prefix your request with `/shoplazza-<domain>`, then describe the task in plain language:

```
/shoplazza-products Add a new product: Summer print T-shirt, priced 129
```

The prefix loads that domain's commands and notes into context before the agent acts.

:::tip
The prefix is not mandatory — each skill also has built-in trigger words — but stating it explicitly is more deterministic. The docs use `/shoplazza-<domain>` consistently for that reason.
:::

## Pick the right domain

Each skill owns exactly one domain. Match the task to the domain:

| Task | Skill |
|------|-------|
| Create / price / restock a product, gift cards | `/shoplazza-products` |
| Tiered discount, coupon code, flash sale | `/shoplazza-discounts` |
| Ship, refund, or look up orders | `/shoplazza-orders` |
| Customer profiles and addresses | `/shoplazza-customers` |
| Store settings, metafields, media, analytics | `/shoplazza-shop` |
| Event subscriptions (webhooks) | `/shoplazza-webhook` |
| App billing — one-time, recurring, usage | `/shoplazza-billing` |

### Domain boundaries to watch

Some tasks sit on a boundary between domains. The skills route them like this:

* **Gift cards** live in `products`, not `discounts`.
* **Orders by customer email** are searched in `orders`; the **customer profile** itself is in `customers`.
* **Buyer refunds** live in `orders`, not billing.

## The safety protocol

The foundation skill `shoplazza-common` loads automatically and enforces a safety protocol for any write operation:

1. **Preview** — run the command with `--dry-run` to print the request without sending it.
2. **Restate** — summarize what the operation will change.
3. **Confirm** — wait for your explicit confirmation before executing.

This matters most for irreversible or financial operations — refunds, cancellations, and batch deletes. See the [refund and delete examples](./usage/orders#4-partial-refund-fund-operation) for the protocol in action.

## Next steps

* [Usage examples: Products](./usage/products)
* [Usage examples: Discounts](./usage/discounts)
* [Usage examples: Orders](./usage/orders)
