Content
71%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 well-structured routing skill: an overview body with a task-to-API routing table, clearly signaled one-level references that actually exist, and unusually specific critical rules with a real validation checkpoint for tax. The main weaknesses are embedded time-sensitive version numbers in the main body and the absence of any inline code examples.
Suggestions
Move the SDK version table and the 'Latest Stripe API version: 2026-09-30.endive' line into a dedicated versions/maintenance reference file (or a clearly dated section) so the main body does not silently go stale; keep only a pointer plus the 'always use the latest' rule inline.
Add one short executable snippet in the body (or in a shared reference) showing correct client instantiation, e.g. `stripe = StripeClient("rk_...")` vs. the deprecated `stripe.api_key = ...` pattern, since the StripeClient rule currently names the anti-pattern without showing the replacement.
Make the workflow slightly more explicit: number the core sequence (pick environment → route via table → read reference → check critical rules) and add a checkpoint for webhook verification, mirroring the existing tax-registration validation step.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is mostly lean and directive (no basics-of-Stripe explanations, no padding), but it embeds time-sensitive version data outside any 'old patterns'/'deprecated' section: "Latest Stripe API version: 2026-09-30.endive", a 7-row latest-SDK-versions table, and a second dated API version ("2026-03-25.dahlia") in the integration_identifier rule. Per the rubric guideline, version numbers and dates in the main body penalize conciseness; this is more than a trimmable minor instance, matching anchor 3 ('mostly efficient but... could be tightened') rather than anchor 4's 'minor instances'. | 3 / 5 |
Actionability | Guidance is largely executable: exact commands ("npm i -g @stripe/cli", "stripe sandbox create", "stripe whoami --format json"), exact parameter names and values ("payment_method_types: ['card_present']", "automatic_tax: { enabled: true }", "allowed_payment_method_types"), and a concrete routing endpoint ("/v2/core/accounts"). It falls short of anchor 5 only because there are no copy-paste code examples in the body itself (e.g., an actual StripeClient instantiation snippet lives only implicitly in the references); it clearly exceeds anchor 3's pseudocode/incompleteness. | 4 / 5 |
Workflow Clarity | A clear implicit sequence exists: choose environment (sandbox vs test mode) → route via the integration table → "Read the relevant reference file before answering any integration question or writing code" → apply the critical rules, with a genuine validation checkpoint in the tax rule ("confirm the user has an active registration. Without one, Stripe calculates and collects no tax") and ordered CLI steps (create sandbox, then "stripe sandbox claim" before MCP). It is not numbered as an explicit workflow and checkpoints are not systematic, so anchor 5 ('explicit validation steps; feedback loops') is not fully met, but anchor 3's 'checkpoints missing or implicit' understates what is present. | 4 / 5 |
Progressive Disclosure | The body is a concise overview with a routing table that splits content across six real, one-level-deep reference files (payments.md, connect.md, billing.md, tax.md, treasury.md, security.md all exist and contain substantive content, verified), plus external docs links. Navigation is easy: each task row names its API and reference path. The only quirk is the table's angle-bracket pseudo-links ("<references/payments.md>") rather than markdown links, which is cosmetic and does not impede navigation, so anchor 5 fits better than anchor 4's 'minor organization gaps'. | 5 / 5 |
Total | 16 / 20 Passed |