CtrlK
BlogDocsLog inGet started
Tessl Logo

stripe-best-practices

Guides Stripe integration decisions across development and test environment planning (separate sandboxes vs the shared test mode sandbox), API selection (Checkout Sessions vs PaymentIntents), Connect platform setup (Accounts v2, controller properties), billing/subscriptions, tax and registrations (Stripe Tax, automatic_tax, product tax codes), Treasury financial accounts, integration options (Checkout, Payment Element), migrating from deprecated Stripe APIs, and security best practices (API key management, API key permissions, webhooks, OAuth). Use when planning, building, modifying, testing, or reviewing any Stripe integration, including choosing a development environment, accepting payments, building marketplaces, integrating Stripe, processing payments, setting up subscriptions, collecting sales tax, VAT, or GST, creating connected accounts, or implementing secure key handling.

85

1.78x
Quality

89%

Does it follow best practices?

Impact

100%

1.78x

Average score across 2 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

The canonical home for this skill is stripe-best-practices in stripe/ai

SKILL.md
Quality
Evals
Security

Quality

Content

78%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured routing skill: dense imperative rules, exact commands and parameter names, and clean one-level-deep disclosure into verified reference files. The main gaps are inline version tables that will age, no copy-paste code for the common payment flows, and a core workflow that must be inferred from directives rather than followed as a sequence.

Suggestions

Move the 'Latest Stripe API version' line and the SDK version table into a dedicated versions/old-patterns section (or a reference file) so the body's time-sensitive data doesn't decay in place and bloat the overview.

Add one short copy-paste example of the mandated pattern — instantiating StripeClient and creating a Checkout Session (with integration_identifier and no payment_method_types) — since that is the most common flow the critical rules govern.

State the core workflow explicitly as a short numbered sequence (route via the table → read the matched reference → apply critical rules → confirm tax registration before enabling automatic_tax) instead of leaving it implied across sections.

DimensionReasoningScore

Conciseness

The body is lean and imperative with no explanation of concepts Claude already knows, but it embeds time-sensitive version data — 'Latest Stripe API version: 2026-08-26.dahlia' and the seven-row SDK version table — outside any deprecated/old-patterns section, which the guidelines say should penalize conciseness. It fits anchor 4 (efficient with minor instances that could be trimmed) rather than 5, and is well above 3 since everything else earns its place.

4 / 5

Actionability

Guidance is largely executable: exact commands ('npm i -g @stripe/cli', 'stripe sandbox create', 'stripe whoami --format json'), exact parameter names ('payment_method_types', 'allowed_payment_method_types', 'integration_identifier'), and a routing table mapping each integration type to a specific API and reference file. It falls short of anchor 5 because the most common integration flows (e.g., creating a Checkout Session with the mandated client-instance pattern) have no code example — they are deferred to references — and a few lines ('If stripe sandbox create is used, don't use MCP') are cryptic without surrounding context.

4 / 5

Workflow Clarity

The core sequence is discernible — identify what you're building via the routing table, 'Read the relevant reference file before answering any integration question or writing code', then apply the critical rules — and the automatic_tax rule plus the 'stripe sandbox claim' check act as validation checkpoints. It sits at anchor 4 rather than 5 because the workflow is implied by scattered directives rather than stated as a sequence, and there is no error-recovery/feedback loop; it is not a 3 since checkpoints like the tax registration confirmation are explicit.

4 / 5

Progressive Disclosure

The SKILL.md body is a clear overview that splits content appropriately: a routing table signals all six real, one-level-deep reference files (payments, connect, billing, tax, treasury, security — all verified to exist, none nesting further .md references), plus a 'Key documentation' section for cross-cutting cases. This matches the anchor-5 pattern of a concise overview with well-signaled one-level-deep references and easy navigation.

5 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: concrete, third-person capability enumeration paired with an explicit and synonym-rich 'Use when' trigger clause. Its length is dense rather than padded — every clause names a specific capability or a natural trigger phrase, so no dimension lands below the top anchor.

DimensionReasoningScore

Specificity

The description lists many concrete capabilities with named APIs and parameters — 'Checkout Sessions vs PaymentIntents', 'Accounts v2, controller properties', 'automatic_tax, product tax codes', 'separate sandboxes vs the shared test mode sandbox' — giving comprehensive coverage of the skill's scope. It exceeds the anchor-4 'minor gaps' level because every capability listed is a concrete, named action or decision domain, and it is in third person ('Guides…').

5 / 5

Completeness

Both halves are explicit: a detailed 'what' (environment planning, API selection, Connect setup, billing, tax, Treasury, migrations, security) and a concrete 'when' ('Use when planning, building, modifying, testing, or reviewing any Stripe integration, including…'). This matches the anchor-5 example structure of what-list followed by an explicit 'Use when… including…' trigger clause; the 'when' is neither missing nor only implied.

5 / 5

Trigger Term Quality

The 'Use when' clause covers natural phrases users would actually say — 'accepting payments', 'building marketplaces', 'setting up subscriptions', 'collecting sales tax, VAT, or GST', 'creating connected accounts', 'implementing secure key handling' — including synonyms (accepting/processing payments, sales tax/VAT/GST). Coverage is comprehensive with explicit synonyms, matching the anchor-5 example's pattern; nothing common is missing.

5 / 5

Distinctiveness Conflict Risk

The skill occupies a clear niche — Stripe integrations specifically — with distinct triggers (Stripe-named domains like Connect accounts, Stripe Tax, Treasury) that no generic payments or file-handling skill would claim. Conflict risk with similar skills is minimal, matching the anchor-5 'clear niche with distinct triggers'.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
stripe/ai
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.