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

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 paddle-usage-based-billing in PaddleHQ/paddle-agent-skills

SKILL.md
Quality
Evals
Security

Quality

Content

85%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 skill with complete executable code, explicit validation, error-recovery loops, and a verification checklist. Its weaknesses are mild redundancy in beta-status caveats and a fully monolithic structure with no progressive disclosure into reference files despite its length.

Suggestions

Split reference-grade material into bundle files (e.g. references/renewals.md for the plan-change matrix and limitations, references/api-details.md for meter/price constraint rules) and keep SKILL.md as a step-by-step overview with clear pointers.

Consolidate the repeated "early access (beta)" caveats into the dedicated early-access section and reference it once, trimming the qualifiers sprinkled through Steps 3–7.

Group time-sensitive specifics (SDK version floor, beta behavior notes) into a single clearly-marked section so future updates have one place to change.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious, API-specific facts (error codes, retry semantics, allowance rules, webhook quirks) and assumes competence in TypeScript, Next.js, SQL, and fetch — no padding or beginner explanations. It stays at 4 rather than 5 because the "early access (beta)" caveat is repeated many times across sections, and time-sensitive specifics (SDK version 2.5+, beta status) sit in Prerequisites rather than a dedicated old-patterns section, leaving minor trimming opportunities.

4 / 5

Actionability

Every step ships complete, copy-paste-ready code: a full error-handling API helper with Retry-After parsing, an executable access-check script that branches on real error codes, the unit/meter/price setup script, SQL DDL with a partial index, a quantity-validating regex with retry/fail classification, and webhook handling code — covering the common cases end to end. The few placeholders ("pro_...", "// your function") are explicitly-marked user-specific integration points, not gaps, so this holds the 5 anchor rather than dropping to 4.

5 / 5

Workflow Clarity

Seven clearly sequenced steps with explicit validation checkpoints: Step 2 gates all work on an access check, Step 4 confirms the usage balance with exponential backoff plus a troubleshooting list, the outbox worker has feedback loops (retry classification by error code, stop-on-429 with resume), and a seven-item "Verify the integration" checklist closes the skill. This matches the 5 anchor (explicit validation, error-recovery feedback loops, checklists); the batch outbox operation is fully covered by validation, so no cap applies.

5 / 5

Progressive Disclosure

There are no bundle files at all (no references/, scripts/, or assets/), and the skill is a ~500-line, 28KB monolith. Section headers are excellent and navigation within the file is easy, but content that would naturally live in separate files — the renewals/plan-changes reference table, the "Related docs" API reference material, per-step deep detail — is all inlined in SKILL.md, fitting the 3 anchor (some structure, content that should be separate is inline). It is above 2 because structure and headers are strong, but below 4 because nothing is offloaded across files.

3 / 5

Total

17

/

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, comprehensive, third-person description that clearly communicates a multi-part capability set with a distinct niche. Its main weakness is the absence of any explicit "Use when..." trigger clause, which both caps completeness and slightly limits natural-term coverage.

Suggestions

Append an explicit trigger clause, e.g. "Use when the user wants Paddle usage-based billing, metered features, prepaid usage allowances, or per-unit pricing in a Next.js app."

Add one or two natural synonyms users might say, such as "metered billing" or "usage limits", to broaden trigger coverage.

Move the parenthetical "(early access)" qualifier to the end of the description so the leading clause reads as the core capability.

DimensionReasoningScore

Specificity

The description enumerates concrete, distinct actions across the whole integration: "early access check, usage balance units, meters, price allowances, usage events, balance gating, and `usage_balance.depleted`, using the Paddle API directly", plus the platform and API approach. This matches the 5 anchor (multiple specific concrete actions, comprehensive coverage) rather than 4, which expects minor gaps in coverage; no step of the workflow is missing.

5 / 5

Completeness

The "what" is explicit and concrete, but there is no "Use when..." clause or equivalent trigger guidance anywhere in the description; the "when" is only weakly implied by "Add ... to a Next.js app". Per the judging guidelines, a missing explicit trigger clause caps completeness at 3, so it cannot reach 4 (both what and when present).

3 / 5

Trigger Term Quality

Strong natural keywords a user would say: "usage-based billing", "Paddle", "Next.js", "meters", "usage events", "allowances", "balance gating". Common synonyms like "metered billing", "pay-as-you-go", "prepaid credits", or "usage limits" are absent, so it fits the 4 anchor (good coverage, a few natural terms missing) rather than the 5 anchor's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

A clear niche is staked out with distinct triggers: "Paddle usage-based billing (early access)", "usage balance units, meters, price allowances, usage events, balance gating, and `usage_balance.depleted`". Even against sibling Paddle skills (catalog, checkout, webhooks, subscriptions), these terms are unambiguous, matching the 5 anchor (clear niche, minimal conflict risk).

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

providers/claude/plugin/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.