CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

revenuecat-entitlements-gate

Check whether a RevenueCat user currently has access to a paid feature via entitlements. Use when the user asks to gate a feature behind premium, check if the user has a pro subscription, read customerInfo active entitlements, show or hide a feature based on subscription status, react to entitlement changes, or 'is the user subscribed' on iOS, Android, Kotlin Multiplatform, Flutter, or React Native.

77

Quality

97%

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

92%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-structured orchestration skill: deterministic platform detection, genuinely additive RevenueCat-specific decision rules, explicit scope boundaries, and a real verification checklist. The only flaw is minor redundancy in the platform-file listing between sections 1 and 3.

Suggestions

Remove the five-line platform-file list in section 3 — section 1's detection rules already name the exact file to read per platform ('→ read platforms/<x>.md'), so a single line like 'Read the platform file chosen in step 1' would replace it.

Clarify or drop the Expo note in rule 1 ('If expo is also a dependency, note it as an Expo project') — as written it flags the project but doesn't say what to do differently, so either state the consequence (e.g., use the expo config plugin path in platforms/react-native.md) or let the platform file handle it.

Consider merging the 'The SDK must be configured first' bullet into the intro's scope-boundary sentence, since both already point the reader to integrate-revenuecat and the bullet mostly restates the precondition.

DimensionReasoningScore

Conciseness

The body is lean and assumes competence: every bullet in 'Shared concepts' is RevenueCat-specific knowledge (entitlement identifier vs product ID, 'active' vs 'all', listener vs polling, configure-first) rather than concepts Claude already knows, with zero fluff. The only trimmable content is the duplicated platform-file list — section 1's detection rules already end in '→ read platforms/<x>.md' for each platform, and section 3 repeats all five paths — which is a minor instance of redundancy that keeps it just below the 'every token earns its place' anchor.

4 / 5

Actionability

The guidance is fully executable without being code-heavy: detection gives exact markers to look for ('package.json has a react-native-purchases entry', 'pubspec.yaml exists at the project root', 'build.gradle(.kts) applies com.android.application'), a deterministic priority order ('pick the first match, from top to bottom'), and a concrete recovery path ('If still ambiguous, ask the user'). Per the rubric's instruction-skill note, the absence of inline code is not penalized since the implementation detail is deliberately delegated to clearly-named per-platform files and the body's own instructions (detection, decision rules, verification) are all directly executable.

5 / 5

Workflow Clarity

A clear four-step sequence (detect platform → apply shared concepts → implement via platform file → verify) with an explicit validation gate: 'Do not claim the gate works until' followed by three concrete checkpoints (both user states behave correctly, entitlement change updates UI without restart, identifier matches the dashboard). This is not a destructive/batch operation, so no cap applies, and the checklist plus the ambiguity-recovery path matches the top anchor.

5 / 5

Progressive Disclosure

This is exactly the overview-plus-detail pattern the rubric rewards: a ~45-line body holding only shared cross-platform concepts and routing, with one-level-deep, well-signaled references to platforms/ios.md, platforms/android.md, platforms/kmp.md, platforms/flutter.md, and platforms/react-native.md stated both in the detection rules and in section 3. Scope boundaries are also cleanly delegated to sibling skills ('it does not cover purchasing (see revenuecat-purchase-flow) or auth (revenuecat-identify-user)').

5 / 5

Total

19

/

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: explicit what and when, concrete actions, natural trigger phrasing including colloquial synonyms, and a distinct RevenueCat-scoped niche with clear separation from related purchase/auth flows. It uses third person and adds no padding.

DimensionReasoningScore

Specificity

Multiple concrete actions are named: 'Check whether a RevenueCat user currently has access to a paid feature via entitlements', 'read customerInfo active entitlements', 'react to entitlement changes', 'show or hide a feature based on subscription status'. Coverage within the domain is comprehensive — one-shot check, reactive listener, and platform list — with no vague filler.

5 / 5

Completeness

It opens with an explicit what ('Check whether a RevenueCat user currently has access to a paid feature via entitlements') followed by an explicit 'Use when...' clause enumerating concrete trigger phrases — exactly the anchor-5 pattern of clearly answering both what and when.

5 / 5

Trigger Term Quality

The trigger list reads like real user phrasings, including the colloquial quoted "'is the user subscribed'", 'gate a feature behind premium', 'check if the user has a pro subscription', and 'react to entitlement changes', plus SDK-level terms ('customerInfo active entitlements') and all five platform names. Synonym coverage (premium/pro/subscription/entitlement/subscribed) is comprehensive.

5 / 5

Distinctiveness Conflict Risk

The description is anchored to RevenueCat and entitlements specifically, and its triggers (entitlement gating, active entitlements check) are disjoint from the sibling skills it excludes (purchasing, auth), so the risk of firing for the wrong skill is minimal. Generic-sounding phrases like 'check if the user has a pro subscription' are scoped by the RevenueCat framing.

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-entitlements-gate/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.