CtrlK
BlogDocsLog inGet started
Tessl Logo

rc-subscriptions

Use this skill when modeling subscriptions through RevenueCat's object model on Android. Covers Offerings, Packages, StoreProduct, SubscriptionOption, PricingPhase, and how they map to Google Play's Subscription, Base Plan, and Offer hierarchy.

68

Quality

84%

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

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

An excellent, dense, action-first skill: executable Kotlin throughout, decision tables instead of prose, and zero padding. The only structural refinements are adding an explicit post-purchase failure path and moving bulk API/type detail into a references file.

Suggestions

Add a short error-recovery step after the entitlement check in 3.6, e.g. what to inspect when customerInfo.entitlements is not active (grace period, account hold, pending purchase).

Move the full type-field reference (Phase 1 type list and PricingPhase fields) into a references/ file, keeping SKILL.md to the overview and common-case code paths.

DimensionReasoningScore

Conciseness

The body is lean and table-driven; it explains nothing Claude already knows (no 'what is a subscription' padding) and every line carries RevenueCat-specific knowledge, e.g. 'billingPeriod.value is the count in the period's unit, not days. A P1W period gives value = 1, unit = WEEK.'

5 / 5

Actionability

Seven copy-paste-ready Kotlin snippets cover the common cases end to end: fetching offerings, purchasing with the default option, filtering subscriptionOptions by tag, building period labels, prepaid configuration, and entitlement checks after purchase.

5 / 5

Workflow Clarity

The Understand → Plan → Execute sequence is clear, the Plan phase poses explicit decision questions, the decision-summary table acts as a checklist, and section 3.6 validates access after purchase. It is not a 5 because there is no error-recovery loop for the post-purchase check (e.g., what to do if the entitlement is not active) and no validation checkpoints in the purchase flow itself.

4 / 5

Progressive Disclosure

Good structure: phased sections, a decision-summary table, and a clearly signaled one-level reference link at the end. It is not a 5 because the ~165-line body inlines the full type reference and every code recipe in SKILL.md with no bundle split — above the under-50-line simple-skill case where inline sections alone would suffice.

4 / 5

Total

18

/

20

Passed

Description

78%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: explicit use-when trigger, concrete domain naming, and tight niche definition. The main gaps are that the when-clause restates the what instead of offering varied user-mention triggers, and the verbs users actually perform (purchase, paywall, entitlements) are absent.

Suggestions

Vary the trigger phrasing beyond the what-statement, e.g. 'Use when the user mentions RevenueCat, is building a paywall, or is setting up in-app subscription purchases on Android'.

Name one or two concrete actions (fetching offerings, purchasing packages, checking entitlements) so the capability list reads as verbs, not only object names.

DimensionReasoningScore

Specificity

The description lists several specific capabilities — 'modeling subscriptions through RevenueCat's object model on Android', covering named types (Offerings, Packages, StoreProduct, SubscriptionOption, PricingPhase) and the mapping to Google Play's hierarchy. It falls short of 5 because the actual actions a user performs (purchasing, paywall setup, entitlement checks) are only implied, not stated.

4 / 5

Completeness

Both what ('modeling subscriptions through RevenueCat's object model… Covers Offerings, Packages… and how they map to Google Play's… hierarchy') and when ('Use this skill when modeling subscriptions… on Android') are explicitly present. The when-clause mirrors the what rather than adding distinct concrete triggers (e.g., 'when the user mentions RevenueCat or is building a paywall'), keeping it at 4 rather than 5.

4 / 5

Trigger Term Quality

Strong natural keywords users would say: 'subscriptions', 'RevenueCat', 'Android', 'Google Play', plus the type names. A few natural terms are missing — 'paywall', 'in-app purchase', 'billing' — so it is not the comprehensive synonym coverage of a 5.

4 / 5

Distinctiveness Conflict Risk

'RevenueCat… on Android' defines a clear niche with distinct triggers (RevenueCat, Offerings, Google Play base plans); it would not plausibly fire for any other skill.

5 / 5

Total

17

/

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.