Skip to content

Repository files navigation

sku-skills

Open-source e-commerce agent skills for the SKU.io API — authored once, generated for Claude, OpenAI, and Gemini.

A skill here is a curated shortcut for an AI agent: for a real business task ("find a product", "create a sales order", "adjust inventory"), it says exactly which SKU.io endpoints to call, in what order, with which fields — plus the practical e-commerce context an agent needs to get it right. Instead of rediscovering 4,000+ endpoints every time, an agent loads the skill and acts.

Skills are written once in a small, model-agnostic format and compiled into each platform's native shape:

Platform What you get Where
Claude An Agent Skill folder (SKILL.md) dist/claude/…
OpenAI GPT/Assistant instructions + an importable Action (OpenAPI) + function-calling tools.json dist/openai/…
Gemini Gem system instructions + function_declarations.json dist/gemini/…

Community-owned & self-evolving. These are meant to be used, forked, and improved. If a skill is wrong or missing, open a PR — your agent can too. See CONTRIBUTING.md and AGENTS.md.


The idea

                 skills/orders/create-sales-order/
                 ├── skill.yaml        ← metadata: domain, endpoints, scopes
                 ├── INSTRUCTIONS.md   ← the model-agnostic how-to + e-commerce context
                 └── examples/
                          │
                          │   npm run build
                          ▼
        ┌─────────────────┼──────────────────┐
        ▼                 ▼                  ▼
  dist/claude/       dist/openai/        dist/gemini/
  SKILL.md           instructions.md     system_instructions.md
                     action.openapi.json function_declarations.json
                     tools.json

One source of truth, three idiomatic outputs. Fix the knowledge in one place; every model benefits.

Skills in this repo

Domain Skill What it does
inventory adjust-inventory Increase / decrease / set on-hand stock at a warehouse
inventory set-initial-inventory Load opening stock per warehouse as an initial count on the inventory start date
orders create-sales-order Create a sales order with line items
platform connect-to-sku Authenticate, verify the token and tenant, and establish scopes before anything else
platform create-saved-view Create and favorite a saved view — columns, filters, sort — on any data table
platform sync-sops Reconcile your internal SOPs against what changed in SKU.io — automatically
products build-product-catalog Import products from a spreadsheet, price list, web page, or pasted text
products find-product Resolve a product by SKU, barcode, or fuzzy search
products publish-listing Draft, validate, and publish a listing to any sales channel
products update-catalog-pricing Apply a supplier's new price file to the existing catalog
purchase-orders create-purchase-order Create a replenishment PO for a supplier from a description or document
purchase-orders record-purchase-invoice Record a supplier invoice against a PO from the invoice document
settings edit-packing-slip-template Edit packing-slip templates without breaking the footer banner
settings edit-pdf-template Edit, preview, and visually QA any PDF document template — safely

This table is generated by npm run build from each skill's tagline — don't edit it by hand. Run the build to regenerate dist/, dist/catalog.json (the machine-readable index), and this table.

Quickstart — use a skill

Claude — install into a directory Claude Code scans for skills. dist/ is committed, so there's no build step:

git clone https://github.com/skuio/sku-skills && cd sku-skills

node tools/install.mjs --list                  # see what's available
node tools/install.mjs build-product-catalog   # → ~/.claude/skills/ (available in every project)

That pulls in the skills it hands off to (find-product, create-saved-view) plus connect-to-sku, which every skill needs. To scope it to one project instead of your whole machine:

node tools/install.mjs build-product-catalog --project /path/to/project   # → <project>/.claude/skills/
node tools/install.mjs all                                               # everything

Then work in your own project, not in this clone — start a session there and describe the task ("import these products from this spreadsheet"). The skill is chosen from your request by its description; you don't invoke it by name. Authentication is handled for you: every skill opens with a Step 0 — Connect first that routes to connect-to-sku, which walks you through minting a Personal Access Token with the right scopes and confirms the tenant before anything is written.

OpenAI (Custom GPT) — create a GPT, paste dist/openai/products/find-product/instructions.md into Instructions, and import action.openapi.json under Actions (auth: API Key → Bearer, your SKU.io PAT). For the API/Assistants, pass tools.json as your tool definitions.

Gemini — use system_instructions.md as your Gem/system instructions and register function_declarations.json with your function-calling loop.

In every case, authenticate with a SKU.io Personal Access Token (Bearer) against https://{tenant}.sku.io. See shared/authentication.md.

Quickstart — add a skill

git clone https://github.com/skuio/sku-skills && cd sku-skills && npm ci
# create skills/<domain>/<name>/skill.yaml + INSTRUCTIONS.md  (copy an existing skill as a template)
npm run check      # validate + build

Full authoring rules are in SKILL_SPEC.md; the contribution flow (for humans and agents) is in CONTRIBUTING.md / AGENTS.md.

Repository layout

skills/        canonical skills — the source of truth (edit these)
shared/        cross-cutting reference: auth, api overview, pagination, errors
schemas/       JSON Schema for skill.yaml
tools/         build.mjs (canonical → 3 targets) + validate.mjs
dist/          generated outputs — COMMITTED so skills install without a build; rebuild with npm run build

Hit a limit? Send us a PR

These skills are meant to be used — and to get better every time they fall short. If a skill doesn't fully accomplish what you need (a missing step, a wrong endpoint, an unsupported case), don't just work around it: have your agent open a pull request to improve it.

  • Every generated skill ends with an "Improve this skill" footer explaining exactly this, so an agent sees the invitation right where it hit the wall.
  • Edit the canonical skill under skills/<domain>/<name>/, run npm run build, and open a PR. External contributors fork the repo and PR from the fork; the full agent workflow is in AGENTS.md.
  • We review every PR. The library evolves from real usage — your fix helps the next person's agent.

About SKU.io

SKU.io is an operations platform for e-commerce and wholesale — products, inventory, orders, purchasing, fulfilment, returns, manufacturing, accounting, and integrations with sales channels, 3PLs, and shipping providers. API reference: https://developer.sku.io.

License

MIT — see LICENSE. Not an official SKU.io product warranty; community-maintained.

About

Open-source e-commerce agent skills for the SKU.io API — authored once, generated for Claude, OpenAI, and Gemini.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages