CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

paddle-usage-based-billing

Add Paddle usage-based billing (early access) to a Next.js app — early access check, usage balance units, meters, price allowances, usage events, balance gating, and `usage_balance.depleted`, using the Paddle API directly.

Quality

84%

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

SKILL.md
Quality
Evals
Security

Quality

Content

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

An exceptionally actionable, well-sequenced integration guide: complete executable code for every step, explicit validation gates and feedback loops, and dense coverage of non-obvious early-access behavior. The only minor deductions are repetitive "early access (beta)" qualifiers and a fully inlined structure where reference material could be split out.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious, early-access-specific facts (error codes, timestamp windows, idempotency semantics, rate-limit behavior) and assumes competence throughout, but the parenthetical "during early access (beta)" recurs roughly ten times and a few signposting sentences ("Read this first. These facts change how you build the integration.") could be trimmed, fitting the minor-trimmable-instances anchor rather than the every-token-earns-its-place anchor.

4 / 5

Actionability

Every step ships complete, copy-paste-ready code: the `paddleApi` helper with typed error handling, the access-check script with error-code branching, the setup script, balance confirmation with exponential backoff, the outbox sender with quantity regex validation and 429 handling, the cache interface, and the webhook processor, plus a SQL schema, env vars, and the exact run command (`node --env-file=.env.local --import tsx ...`).

5 / 5

Workflow Clarity

Steps 1–7 are explicitly sequenced with an early validation gate (Step 2 stops the work if the account lacks early access), retry/backoff feedback loops for balance confirmation and event sending, explicit 429 stop-and-resume handling, and a concrete seven-point "Verify the integration" checklist that walks through depletion and overage.

5 / 5

Progressive Disclosure

No bundle files exist and the ~510-line skill is a single well-organized document with clear headers, a "When to use this skill" section pairing sibling skills, and one-level-deep external doc links. Structure is good and navigation is easy, but content that could live in separate references (renewal semantics table, early-access limitations, API reference details) is inlined, so it matches the good-structure-with-minor-gaps anchor rather than the appropriately-split anchor.

4 / 5

Total

18

/

20

Passed

Description

75%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 specific, distinctive description that concretely enumerates the full capability set of the skill. Its one notable weakness is the absence of an explicit "Use when..." trigger clause, which both caps completeness and leaves natural synonyms like "metered" or "pay-as-you-go" unused.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user wants to charge subscriptions by usage — metered API calls, credits, tokens, or document exports — with Paddle, or mentions meters, allowances, or usage balances."

Include common user synonyms such as "metered billing", "pay-as-you-go", "prepaid credits", and "overage" so the description matches the varied phrasings users actually say.

DimensionReasoningScore

Specificity

Enumerates seven concrete actions — "early access check, usage balance units, meters, price allowances, usage events, balance gating, and `usage_balance.depleted`" — covering the full integration from setup to webhook handling, matching the comprehensive-coverage anchor with no gaps within its domain.

5 / 5

Completeness

The "what" is explicit and detailed, but there is no "Use when..." clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines; the "when" is only weakly implied by "Add ... to a Next.js app".

3 / 5

Trigger Term Quality

Contains strong natural terms ("usage-based billing", "Paddle", "Next.js", "meters", "usage events", "allowances") but omits common user phrasings like "metered", "pay-as-you-go", "credits", or "overage", so keyword coverage is good rather than comprehensive.

4 / 5

Distinctiveness Conflict Risk

A clear, narrow niche (Paddle usage-based billing in a Next.js app) with distinct triggers — "meters", "usage events", "allowances", "usage_balance.depleted" — that would not pull users away from sibling Paddle skills (checkout, catalog, webhooks), so conflict risk is minimal.

5 / 5

Total

17

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (511 lines); consider splitting into references/ and linking

Warning

referenced_paths_exist

Referenced path issues: 2 missing

Warning

Total

14

/

16

Passed

Repository

PaddleHQ/paddle-agent-skills

Path

skills/usage-based-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.