CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

paddle-pricing-pages

Render country-localized prices on a Next.js pricing page using Paddle.js PricePreview — country detection, billing frequency toggle, and currency formatting.

63

Quality

79%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./providers/codex/plugin/skills/pricing-pages/SKILL.md

The canonical home for this skill is paddle-pricing-pages in PaddleHQ/paddle-agent-skills

SKILL.md
Quality
Evals
Security

Quality

Content

77%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 highly actionable, well-sequenced guide with complete executable code and an explicit verification checklist — its core strength. It is held back by a monolithic single-file structure that inlines generic Paddle MCP guidance, and by padded passages (motivational prose, an MDN link for a built-in API, and a duplicated overrides explanation) that spend tokens on things Claude already knows or doesn't need here.

Suggestions

Extract the generic Paddle MCP blockquote into a shared reference file (e.g. references/paddle-mcp.md or a separate paddle-mcp skill) and keep only the pricingPreview-specific example inline.

Trim the "Why use PricePreview at all?" section to one or two sentences and delete the MDN `Intl.NumberFormat` pointer and the duplicated currency-override explanation (keep it in Prerequisites or Pitfalls, not both).

Move the `/currencies` decimal-places catalog fetching and parsing helpers into a reference file, keeping only the zero-decimal gotcha (JPY/KRW/VND/CLP) and a one-line pointer in SKILL.md.

DimensionReasoningScore

Conciseness

The task-specific material (hook, component, currency gotchas, pitfalls, verification) is dense and useful, but there is unnecessary content: the ~15-line blockquote on the Paddle MCP's general tooling (pagination, `clientTokens`, hard caps) goes far beyond pricing preview; the "Why use PricePreview at all?" section motivates with generic marketing-style prose ("very strong regional pricing built-in... Hardcoding works only for one market"); line 311 tells Claude to consider `Intl.NumberFormat` and links MDN for a built-in API Claude already knows; and the overrides/auto-conversion explanation is repeated between Prerequisites (lines 38-39) and Common pitfalls (line 350). Not a 2 because the majority of sections are efficient and code-first; not a 4 because the MCP block and duplicated passages are more than minor trims.

3 / 5

Actionability

The body provides six complete, copy-paste-ready code blocks covering the common cases: the full `usePaddlePrices` hook (with error handling and loading state), the full `Pricing` component, the App Router page with header-based country detection, the currency parsing/formatting utils, the server-side `getCurrencyDecimals` fetch with caching, and both `Checkout.open` variants — plus concrete npm/env prerequisites and a 6-step verification procedure. The only undefined piece is the trivial `FrequencyToggle` sub-component, which does not undermine coverage of the common cases.

5 / 5

Workflow Clarity

Sections form a coherent build sequence (prerequisites → tiers → hook → page component → country detection → formatting → checkout wiring), culminating in an explicit "Verify the integration" checklist with six concrete validation steps, including a feedback loop ("If it doesn't, the country checkout detected differs from the one you previewed: prefill it") and a failure-state check for sandbox/production mismatch. This is a display-only skill, so the destructive/batch cap does not apply; not a 4 because explicit checkpoints with error-recovery guidance are present, not just implied.

5 / 5

Progressive Disclosure

The single ~360-line file has good section headers and a clearly signaled "Related docs" list of external links, but there is no bundle (no references/, scripts/, or assets/) and content that should live in a separate file is inlined: the generic Paddle MCP usage guide (tool protocol, pagination, kebab-case response keys, hard caps) applies to every Paddle skill and is buried as a blockquote mid-section, and the "Currency unit formatting" section's `/currencies` catalog fetching is a candidate for a reference file. This matches anchor 3 (content that should be separate is inline, organization could be better); not a 4 because the misplaced MCP block is substantial rather than a minor gap, and not a 2 because the file is well-sectioned and navigable rather than a header-less wall.

3 / 5

Total

16

/

20

Passed

Description

70%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 specific, well-scoped description with strong trigger keywords and a distinct niche, written in third person. Its main weakness is the absence of any explicit 'Use when...' trigger clause, which caps completeness and limits when Claude would know to invoke it.

Suggestions

Add an explicit trigger clause, e.g. "Use when building a pricing or upgrade page that must show prices in the visitor's local currency, or when the user mentions Paddle, localized/regional pricing, or currency formatting."

Mention tax behavior (VAT-inclusive vs -exclusive prices) since it is a key selling point covered extensively in the body but absent from the description.

Add a disambiguating phrase like "display only — for checkout see checkout-web" to further reduce overlap risk with a checkout skill.

DimensionReasoningScore

Specificity

Quotes: "Render country-localized prices on a Next.js pricing page using Paddle.js PricePreview — country detection, billing frequency toggle, and currency formatting" — it names the domain (Next.js pricing page, Paddle.js PricePreview) and several concrete actions (render localized prices, country detection, frequency toggle, currency formatting). Not a 5 because coverage has minor gaps: tax behavior, checkout price consistency, and catalog/override setup are core parts of the skill but absent from the description; not a 3 because it lists well more than 1-2 concrete actions.

4 / 5

Completeness

The "what" is clear and concrete (render country-localized prices via Paddle.js PricePreview with country detection, frequency toggle, currency formatting), but there is no "Use when..." clause or equivalent explicit trigger guidance anywhere in the description. Per the judging guidelines, a missing 'Use when...' clause caps completeness at 3 even with a clear what; it is not a 2 because the what is fully explicit rather than vague.

3 / 5

Trigger Term Quality

Natural phrases a user would say are present: "pricing page", "prices", "local currency"-adjacent "country-localized", "Next.js", "Paddle", "billing frequency", "currency formatting". Not a 5 because common variations like "localized pricing", "regional pricing", "localization", "VAT/tax", or "Paddle.Net" are missing; not a 3 because keyword coverage goes well beyond a single generic term and includes the framework and vendor names users would actually mention.

4 / 5

Distinctiveness Conflict Risk

Quotes: "Paddle.js PricePreview", "Next.js pricing page", "currency formatting" — a clear niche (displaying localized prices, not checkout processing) with distinct vendor/API triggers and minimal overlap risk. It would only trigger for Paddle pricing-page work, and it explicitly differs from a checkout skill's concern even though the body cross-references `checkout-web`; not a 4 because no closely related skill would plausibly collide with these triggers.

5 / 5

Total

16

/

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/pricing-pages/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.