Stripe Checkout, subscriptions, webhooks, customer portal
43
45%
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 feature areas without any concrete actions or usage guidance. While it names the domain clearly enough to be somewhat identifiable, it lacks the specificity of actions performed and completely omits 'when to use' triggers, making it insufficient for reliable skill selection among many options.
Suggestions
Add concrete actions for each feature area, e.g., 'Creates Stripe Checkout sessions, manages subscriptions and billing cycles, processes webhook events, configures customer portal settings'.
Add an explicit 'Use when...' clause, e.g., 'Use when the user needs to integrate Stripe payments, set up recurring billing, handle Stripe webhook events, or configure a customer self-service portal'.
Include additional natural trigger terms like 'payments', 'billing', 'recurring charges', 'Stripe API', 'payment integration', and 'payment processing' to improve keyword coverage.
| 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 | Only partially answers 'what does this do' (lists feature areas without concrete actions) and completely lacks any 'when should Claude use it' guidance. There is no 'Use when...' clause or equivalent trigger guidance, which per the rubric should cap completeness at 2, but since the 'what' is also weak, a score of 1 is appropriate. | 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 some distinctiveness, but the terms 'subscriptions' and 'webhooks' are generic enough to overlap with other payment or event-handling skills. Without more specific scoping, it could conflict with general payment processing or webhook handling skills. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
57%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill excels at actionability with comprehensive, executable code examples covering the full Stripe integration surface (checkout, webhooks, subscriptions, portal). However, it suffers from being a monolithic document that tries to cover everything inline, leading to redundancy and poor progressive disclosure. Adding an explicit integration workflow with validation checkpoints and splitting detailed sections into referenced files would significantly improve it.
Suggestions
Split into multiple files: keep SKILL.md as a concise overview (~100 lines) with quick-start checkout + webhook setup, then reference separate files like SUBSCRIPTIONS.md, WEBHOOKS.md, PATTERNS.md for detailed content.
Remove duplicate content: environment variables appear twice, and the Quick Reference section largely repeats earlier material — consolidate into one location.
Add an explicit numbered integration workflow with validation checkpoints, e.g., '1. Set up env vars → 2. Create test product in Dashboard → 3. Implement checkout endpoint → 4. Verify in Stripe Dashboard → 5. Implement webhook → 6. Test with stripe trigger → 7. Confirm DB updated'.
Choose one primary language (Node.js/TypeScript) for inline examples and note that Python equivalents are available in a separate reference file, rather than duplicating every endpoint in both languages.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is quite long (~500 lines) with significant redundancy: environment variables are listed twice, the Quick Reference section repeats earlier content, and both Node.js and Python examples are provided for most endpoints when one would suffice with a note. Some sections like the pricing page component and route protection middleware add bulk without being Stripe-specific knowledge Claude lacks. | 2 / 3 |
Actionability | Excellent actionability throughout — every section provides fully executable, copy-paste-ready code with proper imports, types, and error handling. The code covers server endpoints, client components, webhook handlers, and CLI commands with specific test card numbers and concrete examples. | 3 / 3 |
Workflow Clarity | The overall integration flow is implicitly clear (setup → create products → checkout → webhooks → portal), but there's no explicit end-to-end workflow with validation checkpoints. For a payment integration involving destructive operations (charging real money), there should be explicit verification steps like 'test in Stripe Dashboard that the event was received' or a clear numbered integration checklist. The testing section exists but isn't woven into the workflow. | 2 / 3 |
Progressive Disclosure | This is a monolithic ~500-line file with no bundle files and no references to external files for detailed content. The embedded checkout, subscription management, common patterns, and security sections could each be separate files referenced from a concise overview. Everything is inline, making it a wall of content. | 1 / 3 |
Total | 8 / 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 | |
7e5f7a2
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.