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.
86
80%
Does it follow best practices?
Impact
96%
1.35xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/subscription-update/SKILL.mdSelf-serve plan upgrade Server Action
Auth check first
100%
100%
Ownership check present
100%
100%
Email-bridge ownership pattern
100%
100%
Correct proration mode for upgrade
100%
100%
do_not_bill not used
100%
100%
Items as replacement
100%
100%
No fetch-then-concat
100%
100%
revalidatePath called
0%
100%
Slim DTO returned
100%
100%
Notes justify proration choice
100%
100%
Term-switch preview with addon interval rule
previewUpdate called
100%
100%
Preview used as source of truth
100%
100%
Preview response fields surfaced
100%
100%
Correct proration for term upgrade
100%
100%
Add-on prices updated with base plan
100%
100%
No mixed billing intervals
100%
100%
Same body for preview and commit
100%
100%
No manual proration math
100%
100%
notes.md explains interval constraint
70%
100%
revalidatePath in commit action
0%
0%
Admin CS upgrade with payment failure mode
onPaymentFailure: apply_change in upgrade
0%
100%
camelCase SDK parameter
0%
100%
Upgrade uses immediate proration
0%
100%
Downgrade uses next-period proration
33%
100%
Auth check in both actions
100%
100%
Ownership/customer verification
62%
50%
Slim DTO returned
100%
100%
notes.md: apply_change rationale
20%
100%
notes.md: downgrade proration rationale
70%
100%
do_not_bill not used
0%
100%
62438cd
Table of Contents
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.