Stripe Checkout, subscriptions, webhooks, customer portal
38
37%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/web-payments/SKILL.mdQuality
Discovery
32%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description is a bare comma-separated list of Stripe-related topics without any verbs describing actions or any guidance on when to use the skill. While the Stripe-specific terms provide some natural trigger coverage and domain distinctiveness, the lack of concrete actions and a 'Use when...' clause significantly weakens its effectiveness for skill selection.
Suggestions
Add concrete action verbs describing what the skill does, e.g., 'Implements Stripe Checkout sessions, manages subscriptions and billing cycles, processes webhook events, configures customer portal.'
Add an explicit 'Use when...' clause, e.g., 'Use when the user needs to integrate Stripe payments, set up recurring billing, handle payment webhooks, or configure a customer self-service portal.'
Include additional natural trigger terms users might say, such as 'payments', 'billing', 'recurring charges', 'Stripe API', 'payment processing', or 'payment integration'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Stripe) and lists some specific areas (Checkout, subscriptions, webhooks, customer portal), but these are feature areas rather than concrete actions. It doesn't describe what actions are performed with these features (e.g., 'create checkout sessions', 'handle webhook events'). | 2 / 3 |
Completeness | Provides a partial 'what' (Stripe-related topics) but completely lacks a 'when' clause. There is no 'Use when...' or equivalent guidance for when Claude should select this skill. Per the rubric, a missing 'Use when...' clause caps completeness at 2, and the 'what' is also weak, so this scores a 1. | 1 / 3 |
Trigger Term Quality | Includes relevant keywords like 'Stripe', 'Checkout', 'subscriptions', 'webhooks', and 'customer portal' that users might naturally mention. However, it's missing common variations like 'payments', 'billing', 'recurring payments', 'Stripe API', or 'payment integration'. | 2 / 3 |
Distinctiveness Conflict Risk | The mention of 'Stripe' provides a clear domain anchor that reduces conflict risk. However, 'webhooks' and 'subscriptions' are generic terms that could overlap with other payment or API-related skills. More specificity would help distinguish it further. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
42%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill excels at actionability with high-quality, executable code examples covering the full Stripe integration surface area (checkout, webhooks, subscriptions, portal, testing). However, it is far too verbose for a skill file—content is repeated across sections, dual-language examples double the length, and there's no progressive disclosure since everything is crammed into one file. Trimming redundancy and splitting into referenced sub-files would dramatically improve token efficiency.
Suggestions
Split into multiple files: keep SKILL.md as an overview with checkout + webhook basics, then reference separate files like SUBSCRIPTIONS.md, PYTHON_EXAMPLES.md, PATTERNS.md, and TESTING.md
Remove duplicate content: environment variables appear 3 times, consolidate to one location; remove the Quick Reference section which restates earlier content
Choose one primary language (TypeScript/Next.js) for the main skill and move Python examples to a separate referenced file to cut ~30% of content
Add an explicit end-to-end deployment workflow with validation checkpoints: e.g., '1. Set up test keys → 2. Implement checkout → 3. Verify with stripe trigger → 4. Add webhooks → 5. Test full flow with CLI → 6. Switch to live keys'
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is extremely verbose at ~500+ lines, with significant redundancy: environment variables are listed three times, checkout session creation is shown in both Node.js and Python (doubling content), the Quick Reference section repeats information already covered, and there's unnecessary explanation like 'For integrating Stripe payments into web applications'. The anti-patterns section restates guidance already given in Security Best Practices. Much of this could be cut in half while preserving all actionable content. | 1 / 3 |
Actionability | The skill provides fully executable, copy-paste ready code examples across multiple frameworks (Next.js, FastAPI), complete with proper imports, type annotations, error handling, and realistic file paths. Test cards, CLI commands, and project structure are all concrete and immediately usable. | 3 / 3 |
Workflow Clarity | The setup steps are sequenced (1-3), and the webhook flow includes signature verification before processing. However, there's no explicit end-to-end integration workflow with validation checkpoints (e.g., 'verify webhook works before going live', 'test with CLI before deploying'). The testing section exists but isn't integrated into a deployment workflow with feedback loops. | 2 / 3 |
Progressive Disclosure | This is a monolithic wall of text with no bundle files to offload content to. The Python examples, embedded checkout, common patterns (pricing page, route protection), and detailed webhook handlers could all be separate referenced files. Everything is inline in a single massive document, making it hard to navigate and consuming excessive context window. | 1 / 3 |
Total | 7 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (666 lines); consider splitting into references/ and linking | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
65efb33
Table of Contents
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.