CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

convex-billing

Add Stripe billing/payments to the Convex app via @convex-dev/stripe (checkout + webhook + gating).

Quality

82%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

The canonical home for this skill is convex-billing in FacundoLucci/autonomous-buyer

SKILL.md
Quality
Evals
Security

Quality

Content

86%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 strong, execution-first skill: complete copy-paste code for the full checkout→webhook→gating flow, a well-sequenced workflow with a verification step and key gotchas, and clean single-file organization. The only improvements are minor — trimming the redundant intro paragraph and duplicate signature-verification note, and adding an end-to-end webhook test step.

DimensionReasoningScore

Conciseness

The body is dominated by lean, executable code with terse steps, but the opening paragraph ("Wire Stripe to Convex using @convex-dev/stripe: a checkout action, an httpAction webhook registered by the component (signature-verified automatically), subscription state stored in the component's tables...") restates what the Workflow shows, signature-verification handling is stated twice (step 4 and the Rules bullet), and the version pin "@convex-dev/stripe@^0.1.4" is time-sensitive without a deprecated/old-patterns section. Not 5 for these minor trims; well above 3 since nothing explains concepts Claude already knows.

4 / 5

Actionability

Three complete, copy-paste-ready files (convex.config.ts, convex/http.ts, convex/billing.ts with argument/return validators and auth checks), exact commands ("npm install @convex-dev/stripe", "npx convex dev --once"), and dashboard steps naming exact webhook events. The common cases (checkout, webhook registration, subscription gating) are all covered with executable code; the one delegation ("use the `env` micro power" for keys) is explicit rather than a gap.

5 / 5

Workflow Clarity

Seven clearly sequenced steps with one explicit validation checkpoint ("Verify output shows `✔ Installed component stripe.`"), plus a gotcha called out (the required .js import extension). Not 5 because there is no end-to-end webhook verification or error-recovery loop (e.g., testing with a Stripe CLI event or a test checkout run); not 3 because a concrete checkpoint and key pitfalls are present, and the operation is additive rather than destructive/batch.

4 / 5

Progressive Disclosure

This is a single-file skill with no references/, scripts/, or assets/ directories, and all content is needed for the one task. It is well organized into a short overview, a numbered Workflow, and a Rules section, with no inlined material that belongs in separate files — matching the simple-skill exception where well-organized sections alone warrant a 5.

5 / 5

Total

18

/

20

Passed

Description

70%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.

A terse, specific description that names the exact integration and its three main actions, with excellent distinctiveness. Its main weakness is the complete absence of 'when to use this' trigger guidance, which caps completeness at 3, and it omits natural synonyms like 'subscriptions' and 'paywall'.

Suggestions

Add an explicit trigger clause, e.g. "Use when adding Stripe subscriptions, paywalls, or checkout to a Convex app, or when the user mentions billing, payments, or @convex-dev/stripe."

Include the natural synonyms users would actually say — "subscriptions", "paywall", "upgrade" — alongside "billing/payments" and "checkout" to broaden trigger coverage.

Mention subscription state storage/customer management in the capability list, since the body implements subscription-state gating via component tables.

DimensionReasoningScore

Specificity

"Add Stripe billing/payments to the Convex app via @convex-dev/stripe (checkout + webhook + gating)" names the domain, the exact component, and three concrete actions (checkout, webhook, gating). It falls short of 5 because coverage has minor gaps — e.g., subscriptions/customers, which the body actually implements, are not mentioned.

4 / 5

Completeness

The 'what' is clear and concrete (add Stripe billing via the component: checkout + webhook + gating), but there is no 'Use when...' clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. Not 2 because the 'what' is specific rather than vague.

3 / 5

Trigger Term Quality

Natural terms users would say are present: "Stripe", "billing/payments", "checkout", "webhook", plus the specific package name @convex-dev/stripe. A few natural terms are missing — notably "subscriptions" (the flow is subscription-gating), "paywall", and "upgrade" — so it does not reach 5.

4 / 5

Distinctiveness Conflict Risk

"to the Convex app via @convex-dev/stripe" carves out a clear niche — Convex + Stripe + a specific npm component — so it is unlikely to trigger for generic payment or non-Convex Stripe skills. Clear niche with distinct triggers and minimal conflict risk.

5 / 5

Total

16

/

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

FacundoLucci/autonomous-buyer

Path

.claude/skills/convex-billing/SKILL.md

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.