CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

paddle-webhooks

Receive and verify Paddle webhooks in a Next.js Route Handler — signature verification, idempotency, retry semantics, and local testing.

1.08x
Quality

80%

Does it follow best practices?

Impact

100%

1.08x

1 of 3 eval scenarios. Add 2 more for a full score.

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./providers/claude/plugin/skills/webhooks/SKILL.md

The canonical home for this skill is paddle-webhooks in PaddleHQ/paddle-agent-skills

SKILL.md
Quality
Evals
Security

Quality

Content

81%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 highly actionable, well-sequenced skill with an exceptional verification loop and copy-paste-ready code throughout. Its main costs are repetition of the non-2xx rationale and large inlined MCP/CLI convention blocks that inflate token usage without adding webhook-specific value.

Suggestions

State the "only 2xx counts as delivered / use one non-2xx for the whole catch" rationale once (e.g. in the delivery contract or Step 3 prose) and cross-reference it from the code comments and Common pitfalls bullets instead of restating it four times.

Move the general Paddle MCP conventions and Paddle CLI usage blockquotes into reference files (e.g. references/paddle-mcp.md, references/paddle-cli.md) and keep only the webhook-specific invocations inline.

Trim the simulator and pitfalls sections of sentences that restate facts already established in the delivery contract (retry budget, 90-day retention, usage-type requirements).

DimensionReasoningScore

Conciseness

The body is information-dense with no filler explaining concepts Claude already knows, but the "only 2xx counts as delivered / one non-2xx for the whole catch" rationale is repeated four times (delivery contract, Step 3 prose, Step 3 code comments, and two Common pitfalls bullets), and the two long general MCP/CLI conventions blockquotes are inlined material not specific to webhooks. Mostly efficient, but could be tightened — anchor 3 rather than 4, whose 'minor instances of over-explanation' understates the repetition.

3 / 5

Actionability

Fully executable throughout: complete copy-paste-ready route.ts, SDK helper, process-webhook.ts, guarded UPSERT SQL, event-ledger table and transaction code, MCP execute snippets with exact method paths, and CLI commands with --jq/--json flags down to specific error codes (409 notification_setting_cannot_be_duplicate, exit code 5 = 403). Common cases are covered concretely.

5 / 5

Workflow Clarity

Prerequisites then Steps 1–6 are clearly sequenced, and the "Verify the integration" section provides explicit validation checkpoints with a genuine feedback loop: run a simulation, confirm the 200, deliberately tamper with the secret, confirm the non-2xx failed delivery, restore and replay to confirm recovery — plus a real-flow end-to-end check. This is not a destructive/batch operation, so no cap applies.

5 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent), and the single SKILL.md is well-sectioned with clearly signaled one-level-deep pointers to sibling skills (subscription-sync, sandbox-testing, checkout-web, catalog-setup) and a Related docs list. The gap from 5 is the inlined general MCP/CLI conventions material that would fit a separate reference file.

4 / 5

Total

17

/

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 specific, well-targeted description with strong distinctiveness and good trigger terms, held back by the absence of any explicit "use when" trigger clause. Adding one would round out completeness without touching the rest.

Suggestions

Append an explicit trigger clause, e.g. "Use when building the server-side endpoint that receives Paddle billing events (subscriptions, transactions, customers) in a Next.js app."

Include a natural synonym such as "webhook endpoint" or "notification destination" so users phrasing the task either way land on this skill.

DimensionReasoningScore

Specificity

"Receive and verify Paddle webhooks in a Next.js Route Handler — signature verification, idempotency, retry semantics, and local testing" names the exact stack and several concrete capability areas. It stops short of anchor 5's multiple distinct action verbs (it is essentially one action plus topic nouns), but is well above anchor 3's single-action level.

4 / 5

Completeness

The "what" is clear and concrete (receive/verify Paddle webhooks in a Next.js Route Handler, with signature verification, idempotency, retries, local testing), but there is no "Use when..." clause or equivalent explicit trigger guidance, which caps completeness at 3 per the rubric guideline.

3 / 5

Trigger Term Quality

Natural phrases a user would actually say are present: "Paddle webhooks", "verify", "Next.js Route Handler", "signature verification", "local testing". A few natural variations are missing (e.g. "webhook endpoint", "Paddle notifications"), keeping it below anchor 5's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

"Paddle webhooks" plus "Next.js Route Handler" carves out a clear niche with distinct triggers; only a Paddle-specific Next.js webhook task would match, so conflict risk with other skills is minimal.

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

PaddleHQ/paddle-agent-skills

Path

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