К основному содержанию
скилл CX Codex

revenuecat-entitlements-gate — скилл для Claude Code: гейт по подписке

Скилл проверяет активные entitlements в RevenueCat и решает, показывать ли платную функцию. Пригодится, когда нужно спрятать фичу за подпиской.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add RevenueCat/ai-toolkit --skill revenuecat-entitlements-gate -a claude-code
Открыть на GitHub

Что делает revenuecat-entitlements-gate

Скилл отвечает на один вопрос: есть ли у пользователя доступ к платной функции прямо сейчас. Он смотрит в customerInfo.entitlements.active — это словарь с идентификаторами entitlements. Если идентификатор там есть, доступ открыт. Если нет — закрыт, даже когда покупки когда-то были.

Гейтить по истории покупок не стоит: истёкшие подписки остаются в customerInfo.entitlements.all, но из active выпадают. Скилл разбирает два сценария — разовую проверку и слушателя, который срабатывает после покупки, восстановления, продления или истечения. Опрашивать состояние в цикле не нужно.

Перед первым вызовом SDK должен быть сконфигурирован через Purchases.configure(…), иначе проверка упадёт — для этого есть отдельный скилл integrate-revenuecat. Покупки и авторизацию этот скилл не трогает, за них отвечают revenuecat-purchase-flow и revenuecat-identify-user. Ещё момент: идентификатор entitlement в коде должен совпадать с тем, что настроен в дашборде RevenueCat. Опечатка тихо закроет доступ всем.

Какие задачи решает

  • показать или спрятать платную функцию по статусу подписки
  • проверить, есть ли у пользователя активный entitlement
  • обновить интерфейс после покупки или истечения подписки без перезапуска
  • отличить активную подписку от истёкшей
  • разобраться, почему платная функция не открывается после оплаты

Примеры запросов агенту

  • проверь, есть ли у пользователя активный entitlement premium, и спрячь экспорт, если нет
  • сделай гейт для pro-функции на Flutter через RevenueCat
  • подпишись на изменения entitlements и обновляй экран настроек

Как установить revenuecat-entitlements-gate

1Через Skills CLI (Vercel)

npx skills add RevenueCat/ai-toolkit --skill revenuecat-entitlements-gate -a claude-code

2Вручную: положить файлы

~/.claude/skills/revenuecat-entitlements-gate/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/revenuecat-entitlements-gate/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о revenuecat-entitlements-gate

Как установить revenuecat-entitlements-gate в Claude?

Выполните npx skills add RevenueCat/ai-toolkit --skill revenuecat-entitlements-gate -a claude-code. Скилл окажется в ~/.claude/skills/revenuecat-entitlements-gate/SKILL.md.

Что делает revenuecat-entitlements-gate?

Проверяет, есть ли у пользователя активный entitlement в RevenueCat, и по этому решает, показывать платную функцию или нет. Плюс показывает, как подписаться на изменения статуса.

Нужно ли что-то настроить до его использования?

Да, SDK RevenueCat должен быть сконфигурирован через Purchases.configure(…). Если этого не сделать, вызов проверки завершится ошибкой.

Исходный текст

SKILL.md · MIT
---
name: revenuecat-entitlements-gate
description: "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."
---

# revenuecat-entitlements-gate: check a RevenueCat entitlement

Use this skill when the user wants to decide whether to show or hide a feature based on an active RevenueCat entitlement. The skill covers the one shot check and the reactive listener; it does not cover purchasing (see `revenuecat-purchase-flow`) or auth (`revenuecat-identify-user`).

## 1. Detect the platform

Inspect the working directory and pick the **first** match, from top to bottom:

1. **React Native**: `package.json` has a `react-native-purchases` entry, or `react-native` as a dependency → read `platforms/react-native.md`. If `expo` is also a dependency, note it as an Expo project.
2. **Flutter**: `pubspec.yaml` exists at the project root → read `platforms/flutter.md`.
3. **Kotlin Multiplatform**: `build.gradle.kts` contains a `kotlin { … }` multiplatform source sets block, or depends on `com.revenuecat.purchases:purchases-kmp*` → read `platforms/kmp.md`.
4. **Android (native)**: `build.gradle(.kts)` applies `com.android.application` (and is not KMP) → read `platforms/android.md`.
5. **iOS (native)**: `Package.swift`, `*.xcodeproj`, `*.xcworkspace`, or `Podfile` at the project root → read `platforms/ios.md`.

If several match (e.g. an `ios/` folder inside a Flutter project), pick the **outermost** project, the one that owns the build. If still ambiguous, ask the user which platform they want to configure.

## 2. Shared concepts (all platforms)

- **Check the entitlement identifier, not the product ID.** The identifier (for example `"premium"`) is configured in the RevenueCat dashboard and mapped to one or more products. Using the entitlement lets you change products, prices, and stores without touching app code.
- **`customerInfo.entitlements.active` is the source of truth.** It is a `Map<String, EntitlementInfo>` keyed by entitlement identifier. Presence in `active` means the user currently has access. Absence means they do not, regardless of past purchases.
- **Do not gate on purchase history.** Expired subscriptions still appear in `customerInfo.entitlements.all` but drop out of `active`. Use `active` only.
- **Fetch once, then subscribe.** The first `customerInfo` call returns a cached value quickly, and the SDK refreshes in the background. Every SDK exposes a listener or stream that fires when entitlements change (after a purchase, restore, renewal, or expiration). Subscribe to that instead of polling.
- **The SDK must be configured first.** If `Purchases.configure(…)` has not run, the entitlement call will fail. Set up the SDK via `integrate-revenuecat` before using this skill.

## 3. Implementation

Read the platform file that matches detection:

- `platforms/ios.md`
- `platforms/android.md`
- `platforms/kmp.md`
- `platforms/flutter.md`
- `platforms/react-native.md`

Each platform file shows the one shot check, the reactive subscription, and where to place each in a typical app.

## 4. Verify

Do not claim the gate works until:

1. A user with an active entitlement sees the gated feature, and a user without it does not.
2. When the entitlement state changes (test with a sandbox purchase or a manual grant in the dashboard), the UI updates without a manual restart, confirming the listener is wired.
3. The entitlement identifier in the code matches an identifier that exists in the RevenueCat dashboard. A typo here silently gates everyone out.

© RevenueCat · MIT · RevenueCat/ai-toolkit

Похожие скиллы

Всё по теме «Мобильная разработка» →
asc-revenuecat-catalog-sync rorkai Сверяет каталог подписок и встроенных покупок App Store Connect с продуктами RevenueCat. Нужен перед запуском или при устранении расхождений между каталогами. CX Codex +1 6 100установок paywall-optimization appeeky Скилл для аудита и A/B-тестов пейвола в подписочных приложениях. Помогает найти слабую ступень воронки и починить её. CX Codex +1 1 900установок signing-entitlements официальный OpenAI Диагностирует ошибки подписи кода, бандлов, песочницы и Gatekeeper в macOS. Пригодится, когда готовое приложение не запускается или отклоняется системой. CX Codex GP ChatGPT 60установок capacitor-in-app-purchases capawesome-team Скилл ведёт агента по шагам: настройка товаров в App Store Connect и Google Play Console, выбор плагина, покупки, валидация чеков и тесты в песочнице. CX Codex +1 728установок monetization-strategy appeeky Скилл помогает агенту спроектировать монетизацию приложения: тарифы, пейволл, триал и встроенные покупки, с бенчмарками по категориям и шаблоном рекомендации. CX Codex +1 3 700установок fix-codesign-error официальный OpenAI Разбирает сбой подписи или entitlements на macOS и показывает минимальный путь починки. Пригодится, когда сборка не запускается или не проходит проверку. CX Codex GP ChatGPT ★ 7 596звёзд репо

Из того же набора25

integrate-revenuecat Скилл проводит интеграцию RevenueCat целиком: заводит проект и приложение в дашборде, выдаёт публичный API-ключ и настраивает Purchases SDK в приложении. CX Codex +1 1 000установок revenuecat-purchase-flow Скилл для ИИ-агента, который пишет логику покупки подписки и восстановления покупок на RevenueCat. Пригодится, когда за кастомным пейволлом нужен рабочий purchase и кнопка Restore. CX Codex +1 978установок revenuecat-testing-setup Настраивает тестовую среду для покупок RevenueCat: Test Store, StoreKit, sandbox, внутреннее тестирование Google Play. CX Codex +1 886установок revenuecat-status Собирает отчёт по проекту RevenueCat: приложения, продукты, entitlements, offerings и вебхуки. Пригодится, когда нужно быстро понять, что настроено. CX Codex +1 825установок revenuecat-identify-user Связывает пользователей приложения с подписчиками RevenueCat: вызывает logIn и logOut в нужный момент авторизации. CX Codex +1 788установок revenuecat-charts Скилл учит агента запрашивать графики RevenueCat: сначала схему опций, потом данные, с разбором метрик подписок. CX Codex +1 757установок revenuecat-customer-center Добавляет в приложение готовый экран Customer Center из RevenueCat: подписчик сам отменяет подписку, запрашивает возврат и восстанавливает покупки. CX Codex +1 715установок revenuecat-migrate Скилл помогает перевести покупки в приложении на RevenueCat или обновить SDK до новой мажорной версии. Сначала определяет платформу, потом ведёт по шагам. CX Codex +1 700установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой