CtrlK
BlogDocsLog inGet started
Tessl Logo

paddle-billing-history

Render the authenticated user's billing history in Next.js — listing transactions via the Paddle Node SDK, the mandatory customer-id filter, pagination via `.next()`/`.hasMore`, status filtering, and formatting raw transaction totals (lowest-unit conversion + Intl.NumberFormat, with the zero-decimal currency special case for JPY/KRW/CLP).

57

Quality

65%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/billing-history/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Discovery

67%

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 excels at specificity and distinctiveness, providing extremely detailed implementation-level information about Paddle billing history rendering in Next.js. Its main weaknesses are the lack of an explicit 'Use when...' clause and the overly technical language that may not match how users naturally phrase requests. The description reads more like implementation notes than a skill selection guide.

Suggestions

Add an explicit 'Use when...' clause, e.g., 'Use when the user needs to display billing history, payment records, or transaction lists using Paddle in a Next.js application.'

Include more natural trigger terms users might say, such as 'invoices', 'payment history', 'subscription billing', 'Paddle integration', or 'customer billing page'.

DimensionReasoningScore

Specificity

The description lists multiple specific concrete actions: rendering billing history in Next.js, listing transactions via Paddle Node SDK, customer-id filtering, pagination via .next()/.hasMore, status filtering, and formatting raw transaction totals with lowest-unit conversion, Intl.NumberFormat, and zero-decimal currency handling for JPY/KRW/CLP.

3 / 3

Completeness

The description clearly answers 'what does this do' with extensive detail about capabilities, but it lacks an explicit 'Use when...' clause or equivalent trigger guidance, which per the rubric caps completeness at 2.

2 / 3

Trigger Term Quality

It includes some relevant technical keywords like 'billing history', 'Next.js', 'Paddle Node SDK', 'transactions', 'pagination', and specific currency codes. However, it's heavy on implementation jargon and misses more natural user terms like 'invoices', 'payment history', 'subscription billing', or 'Paddle integration'.

2 / 3

Distinctiveness Conflict Risk

This is highly distinctive — the combination of Paddle Node SDK, Next.js, billing history rendering, and specific currency formatting details creates a very clear niche that is unlikely to conflict with other skills.

3 / 3

Total

10

/

12

Passed

Implementation

62%

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

The skill excels at actionability with complete, executable code and a thorough verification checklist, but is significantly undermined by verbosity and heavy repetition — the zero-decimal currency caveat appears three times, and the common pitfalls section largely restates earlier inline guidance. The 'Should you build this yourself?' and prerequisite sections add context that doesn't help Claude execute the task. Trimming redundancy and splitting reference material into bundle files would substantially improve this skill.

Suggestions

Remove the 'Should you build this yourself?' section entirely — it's a product decision, not an execution instruction, and wastes tokens.

Consolidate the three repetitions of the zero-decimal currency warning (formatting section, formatting traps, common pitfalls) into a single, prominent callout in the parseMoney utility section.

Merge 'Common formatting traps' into 'Common pitfalls' — they overlap heavily and splitting them forces Claude to read the same warnings twice.

Move the status filter table and detailed common pitfalls into a separate bundle file (e.g., REFERENCE.md) and link to it, keeping SKILL.md focused on the executable workflow.

DimensionReasoningScore

Conciseness

The skill is extremely verbose at ~300+ lines. It repeats the zero-decimal currency warning at least three times (in the formatting section, common formatting traps, and common pitfalls). It explains concepts Claude already knows (what cursor-based pagination is, what Intl.NumberFormat does), includes a 'Should you build this yourself?' section that's irrelevant to execution, and the common pitfalls section heavily overlaps with inline comments and earlier sections.

1 / 3

Actionability

The skill provides fully executable, copy-paste-ready code: a complete Server Action, a complete parseMoney utility with all three functions, a client component for pagination, and concrete TypeScript types. Commands, env vars, and specific API shapes are all spelled out.

3 / 3

Workflow Clarity

The workflow is clearly sequenced (authenticate → look up customer → list transactions → format → return DTO) with explicit validation/verification steps at the end covering auth, empty state, security scoping, and pagination. The numbered verification checklist includes a critical security check (step 6) confirming cross-customer isolation.

3 / 3

Progressive Disclosure

The skill references related skills (subscription-sync, webhooks, customer-portal, pricing-pages) and external docs, which is good. However, the content is monolithic — the status filter table, formatting traps, common pitfalls, and verification steps could be separate files or collapsed. The inline content is very long for a single SKILL.md with no bundle files to offload to.

2 / 3

Total

9

/

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.