Content
75%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.
A solid, code-first skill body: nearly everything is executable, organized into scannable sections, and free of filler. Its weaknesses are small — two placeholder code snippets, no explicit validation/retry loop for webhook-signature failures, and companion-skill references that lack paths. Addressing the placeholders and adding a short failure-handling note would lift it to top marks.
Suggestions
Replace the '{...}' placeholders with runnable values: use a full example payload in the webhook test (e.g., data: { object: { id: 'pi_test', status: 'succeeded' } }) and concrete PaymentIntent parameters in the idempotency example.
Add an explicit validation/feedback step for webhook tests, e.g., 'if the handler returns non-200, check the raw-body middleware and confirm the CLI signing secret (from stripe listen --print-secret) matches STRIPE_WEBHOOK_SECRET'.
Give companion references actionable pointers — either file paths for payment-flow-states-reference / payment-flow-test-author or a one-line note on when to consult each — so navigation between the related skills is unambiguous.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dominated by executable code, a test-card table, and an anti-pattern table with essentially no padding or explanation of concepts Claude already knows. Minor trim opportunities remain: 'Per docs.stripe.com/testing' is stated twice, 'stripe listen --forward-to' appears in both Authoring and Running, and the '3DS flows reference' clause in 'When to use' duplicates the frontmatter — matching the 'efficient; minor instances that could be trimmed' anchor rather than the lean-everything-earns-its-place anchor. | 4 / 5 |
Actionability | Most guidance is copy-paste ready: install commands, Stripe initialization, PaymentIntent test cases with assertions, 'stripe listen'/'stripe trigger' commands, and a CI YAML job. However two snippets contain '{...}' placeholders that are not valid JavaScript as written (the webhook test payload 'data: {...}' and the idempotency example 'stripe.paymentIntents.create({...})'), so it fits 'mostly executable; minor gaps' rather than fully copy-paste ready. | 4 / 5 |
Workflow Clarity | Sections are sequenced logically (Install → obtain test keys → Initialize → card/PaymentIntent tests → webhook handler test → CLI forwarding → Running → CI), and the test assertions act as implicit validation checkpoints. But there is no explicit step numbering or validate/fix/retry guidance (e.g., what to check when the webhook handler returns non-200, or how to confirm the CLI signing secret is the local one), matching the 'clear sequence with minor validation gaps' anchor rather than the explicit-validation anchor. | 4 / 5 |
Progressive Disclosure | No bundle files exist (references/, scripts/, assets/ are absent), and the single-file structure is well organized with clear headers; the inline test-card catalog and anti-pattern table are the skill's core value so inlining is defensible. The References section lists external Stripe docs clearly, but companion skills ('payment-flow-states-reference', 'payment-flow-test-author', 'payment-gateway-sandboxes') are name-dropped without paths or navigation context — good structure with minor organization gaps, matching the 4 anchor. | 4 / 5 |
Total | 16 / 20 Passed |