Stigg — Umbrella Skill
Stigg is a pricing, packaging, and entitlements platform. This skill is the first stop for any Stigg work. It enforces the search-first rule and routes you to the right sub-skill.
Step 0 — You Need a Stigg Account
Every other step assumes you already have:
- An account at app.stigg.io (sign up if you don't).
- At least one environment in that account (dev / staging / prod — Stigg provisions a default sandbox automatically; production environments are on the Scale plan).
- An API key from Integrations → API keys in the environment you intend to operate on.
Without these three, every "set up Stigg" step in the sub-skills will fail with 401 Unauthenticated. Surface this to the user at the start of the integration if they haven't done it.
If the project uses Stripe Projects, skip the browser entirely — stripe projects add stigg/environment creates the account and environment and writes the keys into .env. Load stigg-sp.
The Search-First Rule (non-negotiable)
Before generating any Stigg integration code, search the live docs. Stigg ships rapidly; baked-in snippets go stale. The rule applies even when you "remember how it works."
For every Stigg task → search docs → then (if connected) call the Stigg MCP → only then write code.
How to search, ranked:
- Stigg MCP server (
mcp.stigg.io) — if the user has it connected, the agent can call search_docs and execute against the real environment. See stigg-mcp.
- Mintlify Stigg docs MCP — if the agent has the official docs MCP available (
search_stigg, query_docs_filesystem_stigg), use it.
https://docs.stigg.io/llms.txt — LLM-friendly URL index. Fetch it, find the relevant page, fetch that page.
- Direct fetch of
docs.stigg.io/<path> — last resort.
Full rationale and examples: references/search-first.md.
Red flag — STOP and search: you're about to write import Stigg from '@stigg/...', a curl https://api.stigg.io/... call, or any GraphQL mutation, and you have not opened a docs page in this turn.
Pick the Right Surface
Stigg exposes several integration surfaces. Pick deliberately. Default to the MCP unless the user explicitly asks for the CLI — full posture in stigg-mcp/references/cli-vs-mcp.md.
| Goal |
Use |
| Modeling pricing during development, exploration, one-off ops (default) |
Stigg MCP server (stigg-mcp) |
| Production hot path: gating, usage reporting, customer-facing pages |
Backend or frontend SDK (stigg-api → SDK matrix) |
| Direct REST calls (no SDK in your language, or thin server-side proxy) |
REST API at https://api.stigg.io/api/v1 (stigg-api) |
| GraphQL (legacy or specific advanced queries) |
GraphQL API at https://api.stigg.io/graphql (stigg-api) |
| Scripts, CI/CD, terminal admin — only when the user explicitly asks for the CLI |
Stigg CLI (Go binary, brew install stiggio/tools/stigg; repo: https://github.com/stiggio/stigg-cli) |
| Drop-in UI (paywall, customer portal, checkout) |
Widgets — see widgets.stigg.io Storybook |
Decision flowchart with edge cases: references/decision-tree.md. CLI vs MCP details: stigg-mcp/references/cli-vs-mcp.md.
Routing — Which Sub-Skill You Need
Sub-skill invocation is automatic. When the user's request matches a sub-skill's triggers (per the table below and each sub-skill's frontmatter description), invoke that sub-skill via the Skill tool immediately. Load it alongside this umbrella — they work together. Do not ask the user to run /stigg-<name>. Do not "route by mention." The user types their goal in plain English; this skill picks the right pillar and loads it.
| Task |
Skill |
| First-time MCP setup, connecting Claude Code/Cursor/etc. to Stigg |
stigg-mcp |
| Picking SDK vs REST vs GraphQL, API key types, rate limits, auth |
stigg-api |
| Modeling features / plans / addons / products / credits in the catalog |
stigg-pricing-modeling |
| Gating features, reporting usage, fallback strategy |
stigg-entitlements |
| Provision / update / cancel / migrate subscriptions, trials |
stigg-subscriptions |
| Credit grants, consumption, auto-recharge, seat pools |
stigg-credits |
| Per-entity budgets — entity hierarchies, usage-limit assignments, governance tree |
stigg-governance |
| Paywall, customer portal, checkout, credit widgets |
stigg-widgets |
| Receiving webhook events from Stigg — signature verification, payload, retries, handler skeleton |
stigg-webhooks |
| Choosing the right pricing / monetization model |
stigg-pricing-expert |
| Multi-step recipes (freemium, hybrid, AI-credits, trials) |
stigg-recipes |
Provisioning a Stigg environment through Stripe Projects (stripe projects add stigg/environment) |
stigg-sp |
The sub-skills (stigg-mcp, stigg-governance, …) are sibling directories of stigg/, not nested under it — skills/stigg/ and skills/stigg-governance/ sit side by side. Invoke them by name; don't look for them inside stigg/.
If a sub-skill exists for the task, invoke it via the Skill tool — do not improvise content from outside this repo, and do not stall waiting for the user to type its slash command.
Stigg in 60 Seconds
Minimum vocabulary before building. Full glossary: references/core-concepts.md.
- Customer holds Subscriptions to Plans under a Product. Subscriptions can include Add-ons.
- Features (boolean / configuration / metered) define what's gateable. Entitlements = feature + configured value (e.g. "10k API calls / month" on Pro).
- Promotional entitlements are per-customer overrides outside the subscription. Credit pools / grants / ledger power credit-based pricing — one pool per credit currency. See
stigg-credits.
- Governance adds per-entity budgets (departments / teams / agents) on top of features and credits — account-gated, see
stigg-governance.
- Environments (sandbox / staging / production) are isolated workspaces; each has its own API keys.
When NOT to Load This Skill
- The task is unrelated to Stigg (pricing/billing/entitlements).
Common Mistakes
| Mistake |
Fix |
| Generating REST/SDK code from memory without searching docs first |
Search first — the API surface evolves. See references/search-first.md. |
| Confusing CLI and MCP server (they are different tools) |
CLI = deterministic shell; MCP = agent-driven. See the table above. |
Mixing events.report and usage.report |
Different scaling models, not different audiences. Covered in stigg-entitlements. |
| Calling against production while developing |
Always start in sandbox. API keys are environment-bound. |
| Embedding the full-access (server) key in client-side code |
Never. Use the publishable (client) key for frontend SDKs. See stigg-api. |
1---2name: stigg3description: Use FIRST for any task involving Stigg — this umbrella must load before any other stigg-* skill (stigg-mcp, stigg-credits, stigg-governance, stigg-pricing-modeling, stigg-entitlements, stigg-subscriptions, stigg-widgets, stigg-webhooks, stigg-api, stigg-pricing-expert, stigg-recipes, stigg-sp). It carries routing, the search-first rule, account/key prerequisites, and core vocabulary the pillars depend on. Even when a specific stigg-* skill looks like a perfect match (rendering a paywall, granting credits, debugging a 401, wiring a webhook, building freemium) — load this one alongside it. Trigger on the word "Stigg", any stigg.io URL, `@stigg/*` imports, Stigg API keys (server-/client-/publishable), the Stigg CLI or MCP, or work on plans/features/addons/entitlements/credits/subscriptions/usage/paywalls/customer portal/checkout/webhooks where Stigg is the platform. Skip only when Stigg isn't the platform (pure Stripe, Chargebee, or generic pricing UI).4---56# Stigg — Umbrella Skill78[Stigg](https://stigg.io) is a pricing, packaging, and entitlements platform. This skill is the **first stop** for any Stigg work. It enforces the search-first rule and routes you to the right sub-skill.910## Step 0 — You Need a Stigg Account1112Every other step assumes you already have:13141. **An account at [app.stigg.io](https://app.stigg.io)** (sign up if you don't).152. **At least one environment** in that account (dev / staging / prod — Stigg provisions a default sandbox automatically; production environments are on the Scale plan).163. **An API key** from **Integrations → API keys** in the environment you intend to operate on.1718Without these three, every "set up Stigg" step in the sub-skills will fail with `401 Unauthenticated`. Surface this to the user at the start of the integration if they haven't done it.1920**If the project uses Stripe Projects, skip the browser entirely** — `stripe projects add stigg/environment` creates the account and environment and writes the keys into `.env`. Load `stigg-sp`.2122## The Search-First Rule (non-negotiable)2324**Before generating any Stigg integration code, search the live docs.** Stigg ships rapidly; baked-in snippets go stale. The rule applies even when you "remember how it works."2526```text27For every Stigg task → search docs → then (if connected) call the Stigg MCP → only then write code.28```2930How to search, ranked:31321. **Stigg MCP server** (`mcp.stigg.io`) — if the user has it connected, the agent can call `search_docs` *and* execute against the real environment. See `stigg-mcp`.332. **Mintlify Stigg docs MCP** — if the agent has the official docs MCP available (`search_stigg`, `query_docs_filesystem_stigg`), use it.343. **`https://docs.stigg.io/llms.txt`** — LLM-friendly URL index. Fetch it, find the relevant page, fetch that page.354. **Direct fetch of `docs.stigg.io/<path>`** — last resort.3637Full rationale and examples: `references/search-first.md`.3839**Red flag — STOP and search:** you're about to write `import Stigg from '@stigg/...'`, a `curl https://api.stigg.io/...` call, or any GraphQL mutation, and you have **not** opened a docs page in this turn.4041## Pick the Right Surface4243Stigg exposes several integration surfaces. Pick deliberately. **Default to the MCP** unless the user explicitly asks for the CLI — full posture in `stigg-mcp/references/cli-vs-mcp.md`.4445| Goal | Use |46|---|---|47| Modeling pricing during development, exploration, one-off ops *(default)* | **Stigg MCP server** (`stigg-mcp`) |48| Production hot path: gating, usage reporting, customer-facing pages | **Backend or frontend SDK** (`stigg-api` → SDK matrix) |49| Direct REST calls (no SDK in your language, or thin server-side proxy) | **REST API** at `https://api.stigg.io/api/v1` (`stigg-api`) |50| GraphQL (legacy or specific advanced queries) | **GraphQL API** at `https://api.stigg.io/graphql` (`stigg-api`) |51| Scripts, CI/CD, terminal admin — **only when the user explicitly asks for the CLI** | **Stigg CLI** (Go binary, `brew install stiggio/tools/stigg`; repo: https://github.com/stiggio/stigg-cli) |52| Drop-in UI (paywall, customer portal, checkout) | **Widgets** — see `widgets.stigg.io` Storybook |5354Decision flowchart with edge cases: `references/decision-tree.md`. CLI vs MCP details: `stigg-mcp/references/cli-vs-mcp.md`.5556## Routing — Which Sub-Skill You Need5758**Sub-skill invocation is automatic.** When the user's request matches a sub-skill's triggers (per the table below and each sub-skill's frontmatter description), invoke that sub-skill via the Skill tool immediately. Load it *alongside* this umbrella — they work together. Do not ask the user to run `/stigg-<name>`. Do not "route by mention." The user types their goal in plain English; this skill picks the right pillar and loads it.5960| Task | Skill |61|---|---|62| First-time MCP setup, connecting Claude Code/Cursor/etc. to Stigg | `stigg-mcp` |63| Picking SDK vs REST vs GraphQL, API key types, rate limits, auth | `stigg-api` |64| Modeling features / plans / addons / products / credits in the catalog | `stigg-pricing-modeling` |65| Gating features, reporting usage, fallback strategy | `stigg-entitlements` |66| Provision / update / cancel / migrate subscriptions, trials | `stigg-subscriptions` |67| Credit grants, consumption, auto-recharge, seat pools | `stigg-credits` |68| Per-entity budgets — entity hierarchies, usage-limit assignments, governance tree | `stigg-governance` |69| Paywall, customer portal, checkout, credit widgets | `stigg-widgets` |70| Receiving webhook events from Stigg — signature verification, payload, retries, handler skeleton | `stigg-webhooks` |71| Choosing the right pricing / monetization model | `stigg-pricing-expert` |72| Multi-step recipes (freemium, hybrid, AI-credits, trials) | `stigg-recipes` |73| Provisioning a Stigg environment through Stripe Projects (`stripe projects add stigg/environment`) | `stigg-sp` |7475The sub-skills (`stigg-mcp`, `stigg-governance`, …) are **sibling directories** of `stigg/`, not nested under it — `skills/stigg/` and `skills/stigg-governance/` sit side by side. Invoke them by name; don't look for them inside `stigg/`.7677If a sub-skill exists for the task, invoke it via the Skill tool — do not improvise content from outside this repo, and do not stall waiting for the user to type its slash command.7879## Stigg in 60 Seconds8081Minimum vocabulary before building. Full glossary: `references/core-concepts.md`.8283- **Customer** holds **Subscriptions** to **Plans** under a **Product**. Subscriptions can include **Add-ons**.84- **Features** (boolean / configuration / metered) define what's gateable. **Entitlements** = feature + configured value (e.g. "10k API calls / month" on Pro).85- **Promotional entitlements** are per-customer overrides outside the subscription. **Credit pools / grants / ledger** power credit-based pricing — one pool per credit currency. See `stigg-credits`.86- **Governance** adds per-entity budgets (departments / teams / agents) on top of features and credits — account-gated, see `stigg-governance`.87- **Environments** (sandbox / staging / production) are isolated workspaces; each has its own API keys.8889## When NOT to Load This Skill9091- The task is unrelated to Stigg (pricing/billing/entitlements).9293## Common Mistakes9495| Mistake | Fix |96|---|---|97| Generating REST/SDK code from memory without searching docs first | Search first — the API surface evolves. See `references/search-first.md`. |98| Confusing CLI and MCP server (they are different tools) | CLI = deterministic shell; MCP = agent-driven. See the table above. |99| Mixing `events.report` and `usage.report` | Different scaling models, not different audiences. Covered in `stigg-entitlements`. |100| Calling against production while developing | Always start in **sandbox**. API keys are environment-bound. |101| Embedding the full-access (server) key in client-side code | Never. Use the publishable (client) key for frontend SDKs. See `stigg-api`. |