Content
77%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
An exemplary action-focused skill body: complete executable code, explicit security reasoning (server-side customer-id resolution, ownership check before invoice fetch), and a thorough verification checklist. Its weaknesses are redundancy — several pitfalls restate points already made in earlier sections and code comments — and the absence of any progressive-disclosure split, keeping 450 lines monolithic when the status table and currency deep-dive would fit reference files.
Suggestions
Deduplicate the Common pitfalls section: the customerId-filter, zero-decimal-currency, formattedTotals, and eager-pagination pitfalls each restate points already made in the explainer sections or code comments — tighten each to a one-line cross-reference or keep only the pitfall framing, not the full re-explanation.
Offload the status-filter table and the full parse-money/currency deep dive into a references/ file (e.g., references/formatting.md), keeping SKILL.md's inline section to the two-step rule plus a pointer — this would cut the main body substantially while preserving detail on demand.
Move the Supabase helper implementations into a reference or scripts file since the skill only needs their contract (session client vs. cookie-less admin client), not the full @supabase/ssr boilerplate.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Nearly all content is skill-specific knowledge Claude cannot know (collection semantics, zero-decimal currencies, invoice availability rules), with no padding about Next.js or Paddle basics. However, several points are repeated across sections — the mandatory customerId filter appears in the SDK explainer, code comments, and twice in Common pitfalls; zero-decimal currency handling appears in three places; the don't-loop-hasMore advice is given twice — so the body could be meaningfully tightened. This fits 'mostly efficient but could be tightened' better than the 'minor instances' of anchor 4. | 3 / 5 |
Actionability | Fully executable, copy-paste-ready code throughout: the complete Server Action with auth and customer-id resolution, both Supabase client helpers, the full parse-money.ts utility with the currency-API fallback, the client component with Load-more and invoice download, and the exact env-var block. All common cases are covered with runnable code. | 5 / 5 |
Workflow Clarity | The multi-step process is clearly sequenced (prerequisites → SDK semantics → server action → invoice action → formatting → pagination), and the 8-step 'Verify the integration' checklist provides explicit validation checkpoints including the critical cross-customer scoping test, logged-out behavior, and cursor advancement. This is feedback-loop-grade validation, not implicit. | 5 / 5 |
Progressive Disclosure | No bundle files exist; all 453 lines live in SKILL.md. Reference-shaped material — the status-filter table, the full currency-conversion deep dive, and the client component — is inlined rather than offloaded to reference files, though sections are well-headed with clear internal navigation and a clean 'Related docs' section. This fits 'some content that should be separate is inline' better than the minimal-structure anchor 2 or the 'mostly offloaded' anchor 4. | 3 / 5 |
Total | 16 / 20 Passed |