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.

73

1.20x
Quality

85%

Does it follow best practices?

Impact

100%

1.20x

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

SecuritybySnyk

Medium

Suggest reviewing before use

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

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 exemplary operational skill: the delivery-contract section grounds every design choice, code is complete and executable, and the verification section closes the loop with deliberate failure-and-recovery testing. The only room for improvement is trimming the repeated 401/500 rationale and moving the pitfalls/MCP-conventions material into reference files.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious operational facts (retry budgets, 90-day replay, simulator rules, clock skew) and assumes Claude's competence, with no basic-concept padding. Minor trimmable repetition exists: the "one non-2xx for the whole catch" rationale is stated three times (Step 3 comments, Step 3 prose, and pitfalls), and the MCP conventions blockquote runs long.

4 / 5

Actionability

Fully executable throughout: a copy-paste-ready route handler, SDK helper, env var block, guarded-UPSERT SQL, event-id ledger table with DDL, ngrok commands, and a concrete step-by-step verification procedure. The handler TODO stubs are explicit and the main one is fully implemented in Step 5.

5 / 5

Workflow Clarity

Steps 1–6 are clearly sequenced with rationale up front ("The delivery contract"), and the "Verify the integration" section provides an explicit validation feedback loop: tamper the secret, confirm the non-2xx and failed delivery, restore, replay, and confirm success, followed by a real end-to-end checkout check.

5 / 5

Progressive Disclosure

No bundle files exist, so everything is inlined in one ~340-line file. Sections are well organized with clear headers, clearly signaled external doc links, and sibling-skill pointers, but the long pitfalls list and the MCP conventions block are content that could live in reference files — a minor organization gap rather than a navigation problem.

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 accurately enumerates the skill's concrete capabilities in third person, using natural trigger terms. Its one real weakness is the missing "Use when..." trigger clause, which leaves the activation conditions implicit and caps completeness.

Suggestions

Append an explicit trigger clause, e.g.: "Use when building the server-side endpoint that receives Paddle webhook events, verifying Paddle signatures, or handling webhook retries and idempotency in a Next.js app."

Add one or two natural user phrasings to broaden trigger matching, such as "webhook endpoint" or "Paddle integration", so the description fires when users describe the problem in their own words.

Consider naming the event types users typically ask about (subscription or transaction webhooks) to distinguish this skill from sibling skills like subscription-sync and sandbox-testing at trigger time.

DimensionReasoningScore

Specificity

The description names the domain ("Paddle webhooks in a Next.js Route Handler") and lists multiple concrete, specific actions — "signature verification, idempotency, retry semantics, and local testing" — covering the body's full scope with no gaps.

5 / 5

Completeness

The "what" is clear and concrete, but there is no "Use when..." clause or any equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. The "when" is not merely unspecific — it is entirely absent.

3 / 5

Trigger Term Quality

Good natural keywords: "Paddle webhooks", "verify", "Next.js", "signature". A few natural phrasings a user might say — "webhook endpoint", "Paddle integration", "process webhooks" — are missing, placing it between the good-coverage and comprehensive anchors.

4 / 5

Distinctiveness Conflict Risk

"Paddle" plus "Next.js Route Handler" carves out a clear niche with distinct triggers; it is unlikely to fire for generic webhook, Stripe, or Next.js skills. Third person voice is used correctly ("Receive and verify...").

5 / 5

Total

17

/

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/codex/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.