CtrlK
BlogDocsLog inGet started
Tessl Logo

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.

72

Quality

90%

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.

Highly actionable content: executable Kotlin for every common case, a well-sequenced four-phase workflow with an explicit test matrix and sanity checklist, and lean prose that only teaches what Claude would not already know. The two mild deductions are for duplicated signal-to-message guidance and background material inlined in SKILL.md that could be split into a reference file.

DimensionReasoningScore

Conciseness

The body is efficient and assumes competence — the Google seven-states table and backend boolean explanation are non-obvious domain knowledge, not padding Claude already knows. It is not a 5 because 'Decision rules' and 'Messaging guide by signal' restate the same signals twice, a minor trim opportunity.

4 / 5

Actionability

Fully executable, copy-paste-ready Kotlin covering the common cases: awaitCustomerInfo(), fetchPolicy = CacheFetchPolicy.FETCH_CURRENT, a complete updateUI(entitlement:) function, awaitLogIn, and an updatedCustomerInfoListener registration. It is not a 4 because no key detail is missing — even the cache-vs-fresh-fetch distinction is shown in code.

5 / 5

Workflow Clarity

A clear four-phase sequence (Discover, Plan, Execute, Verify) with explicit validation: a seven-case test matrix with expected isActive values and UI, plus a sanity-checks checklist and a caveat about the listener not firing on cache hits. It is not a 4 because checkpoints are explicit and enumerated, not merely implied.

5 / 5

Progressive Disclosure

No bundle files exist, so all content is inline; sections are well organized and the single external reference ('Full chapter' link) is clearly signaled. It is not a 5 because the ~150-line body inlines material — the Google-states comparison table and the messaging guide — that could live in a one-level-deep reference file.

4 / 5

Total

18

/

20

Passed

Description

92%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: it names concrete API-level capabilities, gives an explicit and specific trigger clause, and occupies a distinct niche (RevenueCat subscription gating on Android). Only keyword coverage keeps it from full marks, as common user phrasings like paywall, purchases, or billing issue are absent.

DimensionReasoningScore

Specificity

Names multiple concrete actions with specific API surfaces ('reading CustomerInfo', 'checking entitlement.isActive as the single source of truth', 'drilling into willRenew, periodType, and expirationDate'), giving comprehensive coverage of the gating task. It is not a 4 because coverage is comprehensive rather than having minor gaps, and the imperative voice carries no pronoun penalty.

5 / 5

Completeness

Explicitly answers both: what ('reading CustomerInfo', 'checking entitlement.isActive', 'drilling into willRenew, periodType, and expirationDate') and when ('Use this skill when gating access based on RevenueCat subscription state on Android'). The 'when' clause is explicit with a concrete trigger phrase, matching the top anchor.

5 / 5

Trigger Term Quality

Good natural keyword coverage: 'gating access', 'RevenueCat subscription state', 'Android', 'entitlement.isActive'. A few natural terms users would say are missing (paywall, purchases, restore, billing issue), placing it noticeably above the midpoint between anchor 3 and 5 rather than at comprehensive coverage.

4 / 5

Distinctiveness Conflict Risk

Clear niche with distinct product-specific triggers ('RevenueCat subscription state on Android', 'entitlement.isActive') that no generic skill would match. Minimal conflict risk; it is not a 4 because the triggers are uniquely scoped rather than overlapping a closely related skill.

5 / 5

Total

19

/

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