CtrlK
BlogDocsLog inGet started
Tessl Logo

revenuecat-customer-center

Add the RevenueCat Customer Center (self service subscription management UI) to an app. Use when the user asks to add a customer center, build a self service subscriptions screen, let users manage subscriptions in app, add a subscription management screen, present CustomerCenterView, call presentCustomerCenter, or wire a 'manage subscription' button to the RevenueCat customer center on iOS, Android, Kotlin Multiplatform, Flutter, or React Native.

66

Quality

78%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./revenuecat/skills/revenuecat-customer-center/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

73%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.

The body is a lean, well-sequenced overview with strong domain knowledge and an excellent verification checklist, but it delegates its entire executable payload to platform files that are not in the bundle. As shipped, the skill can detect the platform and verify the result but cannot perform the central implementation step.

Suggestions

Include the five referenced platforms/{ios,android,kmp,flutter,react-native}.md files in the bundle — they carry the install command, presentation snippet, and callback shape that section 3 promises.

If the platform files cannot be bundled, inline a minimal copy-paste-ready presentation snippet per platform (e.g., the iOS CustomerCenterView / presentCustomerCenter call) in SKILL.md so the core step is actionable on its own.

Add a short fallback instruction for the case where a referenced platform file is missing, so Claude degrades gracefully (e.g., point to the official RevenueCat docs) instead of reading a nonexistent file.

DimensionReasoningScore

Conciseness

Every line carries non-inferable RevenueCat specifics (dashboard-configured UI, "Purchases.configure(…) must succeed", outermost-project rule, iOS-only refund requests, old-SDK fallback, exact callback names) with no generic-concept padding or over-explanation. This is the lean anchor-5 case: assumes Claude's competence and every token earns its place.

5 / 5

Actionability

Detection (exact file/dependency markers with an ordered first-match rule), the old-SDK fallback (logIn, customerInfo, restorePurchases, store URL), and verification are concretely executable, but the core implementation step says "Read the platform file" and promises an "install command, exact snippet to present the Customer Center, and the callback shape" — and none of the five referenced platforms/*.md files exist in the bundle. Key executable detail is missing, which is anchor 3, not 4; it is not 2 because most of the guidance outside section 3 is specific and executable.

3 / 5

Workflow Clarity

The sequence (detect platform → shared concepts → implement → verify) is clear and the verify section is a real checklist with explicit validation checkpoints (build succeeds, sandbox user with an active subscription, restore callback firing with a non-empty entitlements map, onDismiss) plus an error-recovery loop ("If the Customer Center opens but is empty ... Fix in the dashboard, reload, and retry"). This matches the anchor-5 feedback-loop pattern.

5 / 5

Progressive Disclosure

The in-body design is good — a clear overview with well-signaled, one-level-deep references — but scored against the actual bundle: only SKILL.md is present and all five referenced platforms/{ios,android,kmp,flutter,react-native}.md files are missing, so the disclosure structure points at nothing. Not 3, because the problem is not organization or signaling (both are good) but that every referenced detail file is absent; not 1, because the body itself is well structured rather than a monolithic or nested wall.

2 / 5

Total

15

/

20

Passed

Description

83%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 strong description: explicit what and when, concrete API-level and natural-language triggers, and named platform coverage. The only weaknesses are a single-action capability statement and a few missing natural trigger terms (cancel/refund/restore) plus a couple of generic phrases that carry minor overlap risk.

DimensionReasoningScore

Specificity

The what-clause names the concrete artifact ("RevenueCat Customer Center (self service subscription management UI)") and the trigger clause enumerates specific actions and API names ("present CustomerCenterView", "call presentCustomerCenter", "wire a 'manage subscription' button"). This matches anchor 4 (several specific actions, minor gaps); it is not 5 because the capability side is a single integration action with features like dashboard configuration and lifecycle callbacks left implicit, and not 3 because multiple concrete actions are explicitly listed.

4 / 5

Completeness

Explicitly answers both: what ("Add the RevenueCat Customer Center (self service subscription management UI) to an app") and when, with a full "Use when the user asks to ..." clause containing concrete trigger phrases. This matches the anchor-5 example's structure exactly, so it is not the anchor-4 case where the when-clause is present but less explicit.

5 / 5

Trigger Term Quality

Covers natural phrasings ("add a customer center", "build a self service subscriptions screen", "let users manage subscriptions in app", "add a subscription management screen"), SDK-level triggers (CustomerCenterView, presentCustomerCenter), and all five platforms. A few natural terms users would say for this exact feature are missing ("cancel subscription", "request a refund", "restore purchases"), which fits anchor 4 rather than the comprehensive anchor 5.

4 / 5

Distinctiveness Conflict Risk

The niche is clear and RevenueCat/API-name triggers ("present CustomerCenterView", "call presentCustomerCenter") are unambiguous. Generic unqualified phrases like "let users manage subscriptions in app" or "build a self service subscriptions screen" could fire on a custom (non-RevenueCat) subscription-management request or a closely related RevenueCat skill, which is exactly anchor 4's "minor overlap risk" rather than anchor 5's minimal risk.

4 / 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
RevenueCat/ai-toolkit
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.