ワンクリックで
autumn-best-practices
Skill for integrating Autumn - the billing and entitlements layer over Stripe.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Skill for integrating Autumn - the billing and entitlements layer over Stripe.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
A brief description of what this skill does
Iterativer Plan-Review-Loop mit OpenAI Codex als zweiter Meinung. Use when the user runs /pair-review, asks for cross-model verification of a plan file in ~/.claude/plans/, or — most importantly — before calling ExitPlanMode in plan mode to validate the proposed plan with adversarial review.
Review and integrate upstream saas-starter template changes into a fork. Detects the fork point (forks are content-copies that share no git ancestor), lists every upstream commit since the last sync, and guides reviewing each one to integrate, skip as already-present, or exclude with a reason, adapting to this fork's divergences (branding, theme, env/deploy, i18n, fork-owned features), then ships one consolidated PR. Use when asked to sync or update from upstream, pull template changes, review what the template added, or apply an upstream fix.
Canonical Convex backend coding patterns — validators, function registration, queries, mutations, actions, schemas, pagination, cron jobs, file storage, and Better Auth integration. Use when writing or reviewing any Convex backend code.
Fetch PR review comments, verify each against real code/docs, fix valid issues, commit and push
This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.
| name | autumn-best-practices |
| description | Skill for integrating Autumn - the billing and entitlements layer over Stripe. |
Always consult docs.useautumn.com for code examples and latest API.
Autumn is a TypeScript-first billing SDK supporting subscriptions, usage-based pricing, credits, trials, and more via Stripe.
AUTUMN_SECRET_KEY - API key (required). Get one at app.useautumn.comnpm install autumn-js # Node.js
pip install autumn-py # Python
| Method | Purpose |
|---|---|
customers.create | Create or get customer (idempotent) |
checkout | Get Stripe URL or payment preview |
attach | Confirm purchase (card on file) |
cancel | Cancel subscription |
check | Verify feature access |
track | Record usage |
products.list | Get products with billing scenarios |
| Option | Notes |
|---|---|
secretKey | Required. From env AUTUMN_SECRET_KEY |
baseURL | Optional. Defaults to https://api.useautumn.com |
Always follow this order for protected actions:
const { data } = await autumn.check({ customer_id, feature_id: 'api_calls' });
if (!data.allowed) return { error: 'Limit reached' };
const result = await doWork();
await autumn.track({ customer_id, feature_id: 'api_calls', value: 1 });
return result;
const { data } = await autumn.checkout({ customer_id, product_id: 'pro' });
if (data.url) return redirect(data.url); // New customer → Stripe
// Returning customer → show confirmation, then:
await autumn.attach({ customer_id, product_id: 'pro' });
Use products.list to get scenarios. Don't build custom logic.
| Scenario | Meaning |
|---|---|
new | Not subscribed |
active | Currently on plan |
scheduled | Scheduled for future |
upgrade | Higher tier available |
downgrade | Lower tier available |
renew | Cancelled, can reactivate |
| Type | Behavior |
|---|---|
boolean | Access granted or denied |
metered | Usage tracked against limit |
credit_system | Pool for multiple features |
| Hook | Purpose |
|---|---|
useCustomer | Get customer, checkout, attach, check |
usePricingTable | Get products with scenarios |
import { AutumnProvider } from 'autumn-js/react';
<AutumnProvider>{children}</AutumnProvider>;
| Framework | Import |
|---|---|
| Next.js | autumn-js/next |
| React Router | autumn-js/react-router |
| Hono | autumn-js/hono |
| Express | autumn-js/express |
| Fastify | autumn-js/fastify |
| Generic | autumn-js/backend |
data.url, not data.checkout_urlattach({ product_id: "free" }) over cancel()customers.create returns existing customer if ID exists