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.

62

Quality

78%

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 ./skills/pricing-pages/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

71%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-verified guide whose executable code and explicit verification checklist are its strengths. It loses points for inline content that belongs in reference files, duplicated override explanations, and a persuasive section plus contradictory formatting advice that add tokens without adding guidance.

Suggestions

Move the currency-decimals/parse-money utilities, the CountrySelect component, and the Paddle MCP blockquote into reference files linked from a short SKILL.md overview.

Deduplicate the price-override/auto-conversion explanation (Prerequisites vs. Common pitfalls) into one section.

Cut the "Why use PricePreview at all?" persuasion down to one sentence and resolve the contradiction between the parseMoney helper and the "use Intl.NumberFormat instead" note.

DimensionReasoningScore

Conciseness

The body is code-dense and mostly efficient, but the persuasive "Why use PricePreview at all?" prose ("You _could_ hardcode \"$10/month\" in your UI, but comes with very strong regional pricing built-in") pads, the overrides/auto-conversion explanation appears twice nearly verbatim (Prerequisites and Pitfalls), and the "Consider using Intl.NumberFormat ... rather than using the parsing helper" note undercuts the full helper it just showed — fits anchor 3 rather than 4's "minor instances".

3 / 5

Actionability

Every step ships copy-paste-ready executable code: the Tier constants file, the usePaddlePrices hook, the Pricing component, the headers() server page, CountrySelect, parse-money utils, the handleSubscribe checkout call, and a concrete Paddle MCP execute snippet — fully executable with specific examples covering the common cases.

5 / 5

Workflow Clarity

Sections flow in a buildable order (prerequisites → tiers → hook → component → country detection → checkout) and "Verify the integration" provides six explicit checks with expected outcomes and remediation ("If it doesn't... prefill it"), but the build sequence itself is implicit topic order rather than explicitly stepped with checkpoints, keeping it at anchor 4 instead of 5.

4 / 5

Progressive Disclosure

No bundle files exist and all ~360 lines are inline under good section headers with a "Related docs" section, but clearly separable content is inlined — the currency-decimals server utils, the full CountrySelect component, and the tangential Paddle-MCP blockquote ("The Paddle MCP exposes three tools per server...") — matching anchor 3's "content that should be separate is inline".

3 / 5

Total

15

/

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 specific, distinct description with strong natural keywords, weakened only by the missing explicit "Use when..." trigger clause, which caps completeness. Everything stated is concrete and scannable.

Suggestions

Append an explicit trigger clause, e.g. "Use when building a Next.js pricing or upgrade page that must show prices in the visitor's local currency."

Add the natural synonyms users are likely to say — "local currency", "localized pricing", "show prices" — to improve trigger matching.

DimensionReasoningScore

Specificity

"Render country-localized prices" plus "country detection, billing frequency toggle, and currency formatting" names the domain and multiple concrete, comprehensive actions; coverage matches the skill's full scope, so it fits the top anchor rather than the 'minor gaps' anchor at 4.

5 / 5

Completeness

The "what" is clear (render localized prices via PricePreview with the listed sub-features), but there is no "Use when..." clause or equivalent explicit trigger guidance, which caps this dimension at 3 per the rubric guidelines; it is not a 2 because the "what" is fully stated.

3 / 5

Trigger Term Quality

Good natural keyword coverage — "pricing page", "prices", "Next.js", "currency", "billing frequency", "Paddle" — but a few natural user phrasings are missing (e.g. "local currency", "localized pricing", "show prices"), so it sits between anchors 4 and 5, closer to 4.

4 / 5

Distinctiveness Conflict Risk

"Paddle.js PricePreview" and "Next.js pricing page" define a clear niche with distinct triggers and minimal overlap risk with other skills; nothing generic is present to pull it toward anchor 4.

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

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.