CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

rc-subscription-states

Use this skill when gating access based on RevenueCat subscription state on Android. Covers reading CustomerInfo, checking entitlement.isActive as the single source of truth for access, and drilling into willRenew, periodType, and expirationDate when deeper logic is needed.

Quality

89%

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 high-quality, action-oriented skill body: executable Kotlin throughout, a clear four-phase workflow with an explicit verification test matrix, and tight tables instead of prose. The main improvement opportunities are trimming mildly redundant tables and moving reference-heavy material into a bundled file.

DimensionReasoningScore

Conciseness

The body is dense and efficient — decision rules, lookup tables, and executable Kotlin with almost no padding or explanation of concepts Claude already knows. It is not anchor 5 because the Google eight-states table and the "Messaging guide by signal" table partially restate what the decision rules already encode, and could be tightened.

4 / 5

Actionability

Fully executable, copy-paste-ready Kotlin covering the common cases: `awaitCustomerInfo()`, `fetchPolicy = CacheFetchPolicy.FETCH_CURRENT`, a complete `updateUI()` function, `awaitLogIn()`, and `UpdatedCustomerInfoListener` registration. Matches the top anchor with specific examples spanning read, refresh, UI, and verification paths.

5 / 5

Workflow Clarity

A clear Discover → Plan → Execute → Verify sequence is present, and the Verify phase provides explicit validation checkpoints: an eight-case test matrix with expected `isActive` values and UI outcomes, plus a four-item sanity-check list. Not anchor 4, because validation is explicit and enumerated rather than implicit.

5 / 5

Progressive Disclosure

The skill has well-organized phase-based sections and a single clearly signaled, one-level-deep reference (the external "Full chapter" link under References); no bundle files exist, so nothing is nested or buried. It is not anchor 5 because at ~157 inline lines, reference-worthy material such as the Google states table and messaging guide is kept inline rather than split into a separate file.

4 / 5

Total

18

/

20

Passed

Description

88%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 that clearly states what the skill does and when to use it, with concrete API-level triggers and minimal fluff. Its only weaknesses are a few missing natural synonyms and slight overlap potential with sibling RevenueCat skills.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "reading CustomerInfo, checking entitlement.isActive as the single source of truth for access, and drilling into willRenew, periodType, and expirationDate" — which comprehensively covers the subscription-state gating domain. It exceeds anchor 4 because there are no minor gaps in capability coverage for this niche.

5 / 5

Completeness

It explicitly answers both questions: "Use this skill when gating access based on RevenueCat subscription state on Android" gives a concrete trigger, and the capability list gives a clear 'what'. Not anchor 4, because the 'when' clause is explicit and specific rather than merely present.

5 / 5

Trigger Term Quality

Good natural keyword coverage: "gating access", "subscription state", "RevenueCat", "entitlement", "isActive", "Android" — phrases a developer working with this SDK would actually say. It falls short of anchor 5 because common variations like "paywall", "premium", "cancelled", or "trial" are missing.

4 / 5

Distinctiveness Conflict Risk

The RevenueCat-entitlement-on-Android niche is clearly distinct from generic subscription or billing skills, with dedicated triggers like "entitlement.isActive" and "RevenueCat". It is not anchor 5 because there is minor overlap risk with closely related RevenueCat sibling skills (the body itself references a companion rc-payment-recovery skill).

4 / 5

Total

18

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

Total

14

/

16

Passed

Repository

RevenueCat/ai-toolkit

Path

revenuecat-play-billing/skills/rc-subscription-states/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.