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.

87

1.09x
Quality

80%

Does it follow best practices?

Impact

100%

1.09x

Average score across 3 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Fix and improve this skill with Tessl

tessl review fix ./skills/subscription-cancel/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

77%

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

This is a strong, actionable skill with a complete, executable Server Action and excellent workflow clarity including validation steps and a clear temporal model of subscription state changes. Its main weakness is moderate verbosity — some sections over-explain context or repeat guidance already embedded in the code comments — and the single-file structure is acceptable but could benefit from splitting detailed reference material into supporting files.

Suggestions

Trim the 'When to use this skill' section to 2-3 sentences — Claude doesn't need the full contextual framing of when a cancel button appears.

Consolidate the 'Common pitfalls' section by removing points that merely restate what the code already demonstrates (e.g., the auth check and ownership check pitfalls are already clearly handled in the code with comments).

DimensionReasoningScore

Conciseness

The skill is mostly efficient and well-structured, but includes some unnecessary verbosity — the 'When to use this skill' section over-explains context, the 'Common pitfalls' section is thorough but could be tightened (some points repeat what the code comments already convey), and the table explaining effectiveFrom values is slightly padded with editorial commentary like 'Surprises users if used as the default.'

2 / 3

Actionability

The full Server Action is complete, executable, copy-paste ready TypeScript with clear inline comments explaining each step. The API call, auth checks, ownership verification, and return DTO are all concrete and specific — not pseudocode.

3 / 3

Workflow Clarity

The multi-step process is clearly sequenced both in the code (numbered steps 1-5) and in the 'What the user sees vs what the database stores' section (3-phase timeline). The 'Verify the integration' section provides explicit validation checkpoints including negative testing (forged subscriptionId, logged-out user).

3 / 3

Progressive Disclosure

The skill references related skills (subscription-sync, webhooks) and external docs, which is good. However, with no bundle files, all content is inline in a single long document (~180 lines). The common pitfalls and verification sections could potentially be separated, and the document is somewhat monolithic for its length.

2 / 3

Total

10

/

12

Passed

Description

82%

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

This description excels at specificity and distinctiveness, clearly identifying a narrow technical task with precise implementation details. The main weakness is the absence of an explicit 'Use when...' clause, which would help Claude know exactly when to select this skill. The domain-specific terminology is well-chosen and naturally matches what developers would search for.

Suggestions

Add a 'Use when...' clause such as 'Use when the user needs to implement subscription cancellation with Paddle in a Next.js app, or asks about handling Paddle cancel flows, effectiveFrom defaults, or canceled vs scheduledChange states.'

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions: cancel a Paddle subscription, auth, ownership check, safe effectiveFrom default, revalidation, and the canceled vs scheduledChange distinction. These are precise, actionable details.

3 / 3

Completeness

Clearly answers 'what does this do' (cancel a Paddle subscription with auth, ownership check, etc.), but lacks an explicit 'Use when...' clause or equivalent trigger guidance, which caps this at 2 per the rubric.

2 / 3

Trigger Term Quality

Includes strong natural keywords users would say: 'cancel', 'Paddle', 'subscription', 'Next.js', 'Server Action', 'auth', 'ownership check', 'revalidation', 'effectiveFrom', 'scheduledChange'. Good coverage of domain-specific terms a developer would use.

3 / 3

Distinctiveness Conflict Risk

Highly distinctive — the combination of Paddle, subscription cancellation, Next.js Server Action, and specific implementation details like effectiveFrom and scheduledChange creates a very clear niche that is unlikely to conflict with other skills.

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.

Validation11 / 11 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.