CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

paddle-subscription-update

Change a Paddle subscription's plan from a Next.js Server Action — auth, ownership check, `prorationBillingMode`, items-array replace semantics, preview-before-commit, and `on_payment_failure` handling.

79

1.14x
Quality

84%

Does it follow best practices?

Impact

100%

1.14x

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

SecuritybySnyk

Medium

Suggest reviewing before use

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

SKILL.md
Quality
Evals
Security

Quality

Content

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

This is a strong, highly actionable skill body: executable code, explicit decision tables, and an unusually thorough verification checklist. Its weaknesses are the inlined Supabase boilerplate and the monolithic single-file structure, which keep conciseness and progressive_disclosure below the top anchors.

Suggestions

Move the @supabase/ssr helper code (src/utils/supabase/server.ts and server-internal.ts) into a references/ file and keep only a one-line pointer in SKILL.md — it is standard boilerplate peripheral to the plan-change task.

Split the deep-dive material (e.g. the onPaymentFailure variants, same-interval addon rules, and the webhook side-effects sequence) into a reference file, keeping SKILL.md as a decision-focused overview.

Trim redundant restatements across sections — e.g. the trialing/do_not_bill rule and the 'credit, never a card refund' point each appear three or more times.

DimensionReasoningScore

Conciseness

The body is mostly efficient and dense with genuinely non-obvious Paddle knowledge (proration mode constraints, status rules, error codes), but the ~45-line "Supabase helpers" section inlines standard @supabase/ssr boilerplate Claude already knows. This fits 'Efficient; minor instances of over-explanation that could be trimmed' rather than level 5's 'every token earns its place'.

4 / 5

Actionability

The skill provides a fully executable copy-paste-ready Server Action, a previewUpdate snippet with explained response fields, an admin-driven variant, env-var setup, and an error-code-to-message map. It matches 'Fully executable; copy-paste ready code or commands; specific examples cover the common cases'.

5 / 5

Workflow Clarity

The flow is clearly sequenced (choose prorationBillingMode → check subscription status → preview → commit) with an explicit 9-step 'Verify the integration' checklist covering failure paths (declining test card, forged subscriptionId, trialing, renewal lock, rate-limit retry). This matches 'Clear sequence with explicit validation steps; feedback loops for error recovery; checklists for complex processes'.

5 / 5

Progressive Disclosure

The single 337-line SKILL.md has no bundle files at all; auxiliary content — the Supabase helper boilerplate, the full onPaymentFailure variants, and the webhook side-effects — is inlined rather than split into reference files. It fits 'Some structure but could be better organized; content that should be separate is inline', not level 4, which expects most content appropriately placed across files.

3 / 5

Total

17

/

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.

The description is specific and highly distinctive, accurately enumerating the skill's concrete capabilities. Its main weakness is the missing 'Use when...' trigger clause and the absence of natural user phrasages like 'upgrade' or 'switch tier' that the body itself identifies as the target use cases.

Suggestions

Add an explicit 'Use when...' clause to the description, e.g. 'Use when building Upgrade plan, Switch tier, or Change subscription actions in a Next.js billing UI', to lift completeness above the cap of 3.

Include the natural trigger phrases already named in the body's 'When to use this skill' section ("Upgrade plan", "Switch tier", "Change subscription") so the description matches how users actually ask.

Consider mentioning upgrade/downgrade terminology (e.g. 'upgrade or downgrade a Paddle subscription') to widen natural-keyword coverage.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Change a Paddle subscription's plan", "auth, ownership check", "preview-before-commit", and "on_payment_failure handling" — comprehensively covering the skill's capabilities. It matches the anchor 'Lists multiple specific concrete actions; comprehensive coverage' rather than the level below, which allows 'minor gaps in coverage'.

5 / 5

Completeness

The 'what' is clear (change a Paddle subscription's plan with auth, proration, and failure handling), but there is no 'Use when...' clause or equivalent explicit trigger guidance, which the judging guidelines cap at 3. It does not reach level 4, which requires both 'what' and an explicit 'when'.

3 / 5

Trigger Term Quality

Good natural keywords like "Paddle subscription", "plan", and "Next.js Server Action", but common user phrasages such as "upgrade plan", "downgrade", or "switch tier" are absent even though the body's 'When to use this skill' section explicitly targets those. It fits 'Good keyword coverage; a few natural terms missing' and not level 5, which requires comprehensive synonyms.

4 / 5

Distinctiveness Conflict Risk

"Change a Paddle subscription's plan from a Next.js Server Action" carves out a clear niche with distinct triggers and minimal conflict risk, even against sibling skills like subscription-cancel or subscription-sync. It clearly matches 'Clear niche with distinct triggers; minimal conflict risk'.

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/subscription-update/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.