{
  "skills": [
    {
      "name": "paddle-billing-history",
      "description": "Render the authenticated user's billing history in Next.js — listing transactions via the Paddle Node SDK, the mandatory customer-id filter, pagination via `.next()`/`.hasMore`, status filtering, and formatting raw transaction totals (lowest-unit conversion + Intl.NumberFormat, with the zero-decimal currency special case for JPY/KRW/CLP).",
      "files": ["SKILL.md"]
    },
    {
      "name": "paddle-catalog-setup",
      "description": "Create the Paddle products and prices that other Paddle skills depend on — try MCP tools first, fall back to a Node SDK seed script, or dictate dashboard steps as a last resort.",
      "files": ["SKILL.md"]
    },
    {
      "name": "paddle-checkout-web",
      "description": "Add a Paddle Checkout to a Next.js web app — overlay or inline, with event handling, customer pre-fill, and dynamic line item updates.",
      "files": ["SKILL.md"]
    },
    {
      "name": "paddle-customer-portal",
      "description": "Mint a Paddle customer portal session URL from a Next.js Server Action — the portal-vs-custom-billing-screen trade-off, auth, ownership, URL structure (overview vs deep links), and the security model.",
      "files": ["SKILL.md"]
    },
    {
      "name": "paddle-pricing-pages",
      "description": "Render country-localized prices on a Next.js pricing page using Paddle.js PricePreview — country detection, billing frequency toggle, and currency formatting.",
      "files": ["SKILL.md"]
    },
    {
      "name": "paddle-sandbox-testing",
      "description": "Test a Paddle integration end-to-end using the sandbox environment, test cards, the webhook simulator, and local tunnels — without taking real money.",
      "files": ["SKILL.md"]
    },
    {
      "name": "paddle-subscription-cancel",
      "description": "Cancel a Paddle subscription from a Next.js Server Action — auth, ownership check, safe `effectiveFrom` default, revalidation, and the `canceled` vs `scheduledChange` distinction.",
      "files": ["SKILL.md"]
    },
    {
      "name": "paddle-subscription-sync",
      "description": "Mirror Paddle subscription and customer state into your database via webhooks — schema, upsert pattern, status semantics, scheduled changes, and access gating.",
      "files": ["SKILL.md"]
    },
    {
      "name": "paddle-subscription-update",
      "description": "Change a Paddle subscription's plan from a Next.js Server Action — auth, ownership check, `prorationBillingMode`, items-array replace semantics, preview-before-commit, and `on_payment_failure` handling.",
      "files": ["SKILL.md"]
    },
    {
      "name": "paddle-webhooks",
      "description": "Receive and verify Paddle webhooks in a Next.js Route Handler — signature verification, idempotency, retry semantics, and local testing.",
      "files": ["SKILL.md"]
    }
  ]
}
