CtrlK
BlogDocsLog inGet started
Tessl Logo

paddle-subscription-cancel

Cancel a Paddle subscription from a Next.js Server Action — auth, ownership check, safe `effectiveFrom` default, revalidation, and the `canceled` vs `scheduledChange` distinction.

88

1.09x
Quality

81%

Does it follow best practices?

Impact

100%

1.09x

Average score across 3 eval scenarios

SecuritybySnyk

Medium

Suggest reviewing before use

The canonical home for this skill is paddle-subscription-cancel 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.

A strong, executable skill: complete copy-paste code with security checks built in, an explicit numbered workflow, and a validation checklist that covers both happy-path and adversarial cases. The only minor room for improvement is trimming small pockets of over-explanation in the prerequisites and considering splitting pitfalls/lifecycle detail into reference files as the skill grows.

DimensionReasoningScore

Conciseness

Nearly every section carries non-obvious, Paddle/Next.js-specific knowledge (effectiveFrom semantics, the two-event lifecycle, ownership-check pattern, DTO slimming) rather than generic concepts Claude already knows, and pitfalls are stated densely. A few spots could be trimmed — the prerequisite env-var bash block partially repeats the prose above it, and comments like "never in the browser" restate what a Server Action implies — matching the level-4 anchor 'efficient; minor instances of over-explanation'. It is not level 5 because the prerequisites and when-to-use sections have some padding.

4 / 5

Actionability

The full Server Action is complete, copy-paste ready TypeScript with imports, auth check, ownership check, SDK call, revalidatePath, and a slim DTO return; the effectiveFrom snippet and decision table give immediately usable guidance for the common cases. This matches the level-5 anchor 'fully executable; copy-paste ready code' — nothing is pseudocode or hand-waved.

5 / 5

Workflow Clarity

The sequence is explicit and numbered (authenticate → verify ownership → cancel → revalidate → return DTO) with inline comments marking each step, and the 'Verify the integration' section is an explicit validation checklist including negative tests (logged out / forged subscriptionId, confirming the SDK was NOT called) plus the eventual webhook-state check. For a destructive operation this feedback-rich structure matches the level-5 anchor with explicit validation and error-recovery guidance.

5 / 5

Progressive Disclosure

The body is well-sectioned (When to use, Prerequisites, API semantics, full action, lifecycle, pitfalls, verification, related docs) with clearly signaled pointers to the paired subscription-sync/webhooks skills and to the Paddle docs and starter-kit reference implementation. Per the guideline to score against the actual bundle structure: no references/scripts/assets files exist, and all inline content legitimately belongs in the single flow. It is not level 5 because at ~145 lines some material (e.g., the pitfalls or the webhook lifecycle) could be split into one-level-deep reference files if the bundle grew.

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 highly specific, well-differentiated description that clearly communicates what the skill does, but it omits any explicit 'when to use' trigger guidance. Adding a 'Use when...' clause with natural user phrasings would raise completeness and trigger-term coverage.

Suggestions

Append an explicit trigger clause, e.g. "Use when the user asks to cancel/end a subscription, build a cancel-subscription button, or mentions Paddle billing in a Next.js app."

Add natural synonyms for the trigger terms — 'unsubscribe', 'billing page', 'end subscription' — alongside the existing technical vocabulary (effectiveFrom, scheduledChange).

State the scope boundary in the description (initiating side vs. webhook receiving side) so it does not appear to also cover the subscription-sync/webhook handling it pairs with.

DimensionReasoningScore

Specificity

The description enumerates concrete, specific actions — "auth, ownership check, safe `effectiveFrom` default, revalidation, and the `canceled` vs `scheduledChange` distinction" — giving comprehensive coverage of the cancel-subscription task rather than vague domain naming. It clearly exceeds the level-4 anchor ('several specific actions; minor gaps') since every named element is a distinct, real step in the workflow.

5 / 5

Completeness

The 'what' is explicit and concrete (cancel via Server Action with auth, ownership check, safe effectiveFrom default, revalidation), but there is no 'Use when...' clause or equivalent explicit trigger guidance — the when is only weakly implied by the action verbs. Per the judging guidelines, a missing 'Use when...' clause caps completeness at 3, and the level-4 anchor ('both what and when; when could be more explicit') is not met because 'when' is absent, not merely less explicit.

3 / 5

Trigger Term Quality

Strong natural keywords users would actually say: "Cancel a Paddle subscription", "Next.js Server Action", "auth". It falls short of level 5 because common variations like "unsubscribe", "billing page", "end subscription", or "refund" are absent.

4 / 5

Distinctiveness Conflict Risk

"Cancel a Paddle subscription from a Next.js Server Action" carves out a clear niche with distinct triggers; it would not plausibly fire for unrelated skills. The vendor+action specificity matches the level-5 anchor; the only theoretical overlap is with a sibling webhook/sync skill, which this description's 'canceled vs scheduledChange' framing already disambiguates.

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