CtrlK
BlogDocsLog inGet started
Tessl Logo

paddle-webhooks

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

87

1.13x
Quality

80%

Does it follow best practices?

Impact

99%

1.13x

Average score across 3 eval scenarios

SecuritybySnyk

Medium

Suggest reviewing before use

Fix and improve this skill with Tessl

tessl review fix ./skills/webhooks/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

77%Weight 40%Scale 1-3

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A thorough, highly actionable webhook integration guide with executable code and an explicit verification loop. It is let down mainly by repetition of one operational insight across several sections and by keeping all detail inline in a single long file rather than splitting some into bundle references.

Suggestions

Consolidate the 'only 2xx loses events / don't split the catch' rationale into one canonical spot (e.g. the delivery contract or one pitfall) and cross-reference it elsewhere instead of restating it four times.

Move the local-testing patterns, the event-id ledger deep-dive, or the full pitfalls list into reference files under references/ and link to them, reducing the inline length while preserving progressive disclosure.

Tighten the explanatory paragraphs after Step 3's code block, which re-explain what the inline comments already state.

DimensionReasoningScore

Conciseness

Mostly efficient and packed with Paddle-specific knowledge Claude would not already know (retry budgets, MCP conventions), but the core insight that 'only 2xx loses events; don't split the catch' is restated in Step 3, the catch comment, the explanatory paragraph, and twice in Common pitfalls, which could be tightened.

2 / 3

Actionability

It provides fully executable, copy-paste-ready code for the SDK helper, Route Handler, event router, UPSERT handlers, an event-id ledger with SQL schema, plus concrete env vars and npm commands, matching the anchor for executable, specific examples.

3 / 3

Workflow Clarity

The skill is sequenced as explicit Steps 1–6 followed by a 'Verify the integration' section with a deliberate tamper-test → restore-secret → confirm-retry feedback loop, satisfying the anchor for clear sequence with validation checkpoints.

3 / 3

Progressive Disclosure

Sections are well-organized and external/skill references (Related docs, subscription-sync, the starter-kit repo) are one level deep and clearly signaled, but the skill is a single ~318-line file with no bundle split for content that could live separately (local testing, the event-id ledger, common pitfalls), matching the 'content that should be separate is inline' anchor.

2 / 3

Total

10

/

12

Passed

Description

82%Weight 40%Scale 1-3

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 that names concrete capabilities and uses natural third-person voice. Its one weakness is the absence of an explicit 'Use when…' trigger clause, which caps completeness at 2.

Suggestions

Append an explicit 'Use when…' trigger clause, e.g. 'Use when building a Next.js endpoint to receive Paddle webhook events or when the user mentions Paddle webhooks, signature verification, or webhook idempotency.'

Include a couple of common user phrasings ('Paddle webhook endpoint', 'verify Paddle signatures') to broaden trigger-term coverage further.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete actions — 'signature verification, idempotency, retry semantics, and local testing' — tied to a specific stack ('Next.js Route Handler'), matching the anchor for listing several specific concrete actions.

3 / 3

Completeness

It clearly answers 'what does this do' but lacks any 'Use when…' clause or equivalent explicit trigger guidance, which per the rubric caps completeness at 2.

2 / 3

Trigger Term Quality

It surfaces natural terms a user would actually say when needing this skill — 'Paddle webhooks', 'Next.js', 'signature verification', 'idempotency', 'retry semantics' — giving good coverage of common phrasings.

3 / 3

Distinctiveness Conflict Risk

The Paddle + Next.js Route Handler niche is narrow and distinctive, with triggers unlikely to fire for unrelated skills, matching the clear-niche anchor.

3 / 3

Total

11

/

12

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.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
PaddleHQ/paddle-agent-skills
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.