CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

revenuecat-paywall

Display a RevenueCat paywall inside an app using the RevenueCatUI SDK. Use when the user asks to add a paywall, show a RevenueCat paywall, present PaywallView, integrate RevenueCatUI, gate a premium screen with a paywall, launch PaywallActivity, call presentPaywall or presentPaywallIfNeeded, or show the dashboard configured paywall UI on iOS, Android, Kotlin Multiplatform, Flutter, or React Native. To create, edit, evaluate, or audit the dashboard paywall itself, use revenuecat-paywall-design.

Quality

95%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

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

A well-crafted router-style skill body: lean, non-obvious shared concepts, deterministic platform detection, and a verification section with an explicit error-recovery loop. Its only weakness in this bundle is that all executable implementation detail is delegated to platform files that are not present alongside SKILL.md.

Suggestions

Inline one minimal canonical snippet in SKILL.md (e.g., the iOS SwiftUI PaywallView usage) so the core task is executable before the platform file is opened.

Ship the referenced platform files with the skill — platforms/ios.md, platforms/android.md, platforms/kmp.md, platforms/flutter.md, and platforms/react-native.md are all absent from this bundle — or relocate them under a standard references/ layout.

Add a short fallback instruction for when a detected platform's file is missing or when detection is ambiguous after the outermost-project rule, so the workflow never dead-ends.

DimensionReasoningScore

Conciseness

The ~50-line body is lean and dense with non-obvious, decision-relevant guidance: ordered platform detection rules, the offering-vs-entitlement distinction ("Gate premium features on the entitlement, not on the offering"), per-platform close-button flags, and a fallback-layout diagnosis. Nothing explains concepts Claude already knows and every token earns its place, matching the level-5 anchor.

5 / 5

Actionability

The guidance is highly concrete — exact packages ("react-native-purchases-ui", "com.revenuecat.purchases:purchases-ui"), exact flags ("displayCloseButton = true", "setShouldDisplayDismissButton(true)"), and executable detection rules — but the body contains no present-the-paywall snippet, delegating it to platform files that are not present in this bundle. This is the level-4 anchor ('mostly executable guidance with minor gaps') rather than 5 ('copy-paste ready code'), since the core code lives in unverifiable external files.

4 / 5

Workflow Clarity

The sequence is clear and deterministic (detect platform with ordered first-match rules and tie-breaking → shared concepts → implementation → verify), and the Verify section is an explicit validation checklist with a feedback loop: "If the paywall shows the default fallback layout instead of your template, the offering does not have a paywall attached in the dashboard. Fix this in the dashboard, then retry." This matches the level-5 anchor (explicit validation steps plus error-recovery loops).

5 / 5

Progressive Disclosure

The body is a well-signaled, one-level-deep overview that tells each platform file's contents ("install command, exact snippet to present the paywall, and the callback shape you listen to"), which matches the level-5 structure. However, none of the five referenced "platforms/*.md" files exist in the provided bundle (no platforms/, references/, scripts/, or assets/ directories), so the referenced paths cannot be verified as real files — a minor gap that brings it to the level-4 anchor.

4 / 5

Total

18

/

20

Passed

Description

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

An exemplary description: it states the capability concretely, provides an explicit 'Use when...' clause rich with natural trigger terms and API synonyms, enumerates all supported platforms, and cleanly boundaries itself against the sibling paywall-design skill. No vague language, over-claims, or padding are present.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions at API-name granularity — "Display a RevenueCat paywall inside an app using the RevenueCatUI SDK", "present PaywallView", "launch PaywallActivity", "call presentPaywall or presentPaywallIfNeeded", "gate a premium screen with a paywall" — with comprehensive coverage across all five supported platforms, matching the level-5 anchor rather than 4 (no coverage gaps within its niche).

5 / 5

Completeness

It explicitly answers both questions: what it does ("Display a RevenueCat paywall inside an app using the RevenueCatUI SDK") and when to use it ("Use when the user asks to add a paywall, show a RevenueCat paywall, present PaywallView, ..."), with concrete trigger phrases and platform scope. This matches the level-5 anchor exactly; the explicit 'Use when...' clause with concrete triggers rules out the level-4 anchor.

5 / 5

Trigger Term Quality

Trigger phrases are comprehensive and natural: "add a paywall", "show a RevenueCat paywall", "gate a premium screen with a paywall", "integrate RevenueCatUI", plus API synonyms (PaywallView / PaywallActivity, presentPaywall / presentPaywallIfNeeded) and an explicit platform enumeration (iOS, Android, Kotlin Multiplatform, Flutter, React Native). This matches the level-5 anchor (comprehensive natural terms including synonyms); it is well above the level-4 anchor's 'a few natural terms missing'.

5 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (dashboard-templated RevenueCatUI paywall display) and explicitly resolves the closest sibling-skill conflict: "To create, edit, evaluate, or audit the dashboard paywall itself, use revenuecat-paywall-design." Minimal conflict risk matches the level-5 anchor rather than 4, since the main overlap is actively disambiguated.

5 / 5

Total

20

/

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

Path

revenuecat/skills/revenuecat-paywall/SKILL.md

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.