CtrlK
BlogDocsLog inGet started
Tessl Logo

rc-understanding-revenuecat

Use this skill to orient an agent to the RevenueCat Android SDK (10.x) architecture. Covers how RevenueCat reorganizes BillingClient, Google Play Developer API, and RTDN into a single SDK, and how Products, Packages, Offerings, Entitlements, and CustomerInfo connect.

65

Quality

80%

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

Fix and improve this skill with Tessl

tessl review fix ./revenuecat-play-billing/skills/rc-understanding-revenuecat/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

81%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-crafted orientation skill: lean tables replace prose, code is concrete, the phase structure ends in a genuine validation checklist, and routing to downstream skills is decisive. The remaining gaps are small — unimported coroutine helpers in the code samples and a modest amount of trimming available in the Phase 0 intent section.

Suggestions

State the dependency for the await* helpers (e.g., a one-line note that `awaitOfferings()`/`awaitCustomerInfo()` come from the purchases-ktx Kotlin extensions) so the code samples are self-contained.

Tighten Phase 0 by merging the start/skip bullets, which largely restate the frontmatter description, into a single trigger/skip line.

DimensionReasoningScore

Conciseness

The body is dense and information-bearing — tables for the raw-stack mapping, the four concepts, tradeoffs, and routing, with short code snippets. It explains RevenueCat-specific knowledge Claude does not have (e.g., `isActive` resolving the seven Play states server-side) rather than padding. Minor trimmable spots remain: Phase 0's start/skip guidance repeats what the description already establishes, and "If the user's goal does not match any row, stay here" could be one clause shorter — that keeps it below the lean-every-token-earns-its-place anchor.

4 / 5

Actionability

Concrete, runnable Kotlin for the two core reads (`awaitOfferings()`, `awaitCustomerInfo()` with `entitlements["pro_access"]?.isActive`) and for `Purchases.configure(...)` with the builder, plus a decisive goal→skill routing table. Not a 5 due to small gaps: no imports or dependency declarations for the `await*` extension functions, and the code samples are not framed as copy-paste-complete files.

4 / 5

Workflow Clarity

The four phases (Intent → Orient → Map → Sanity check) are clearly sequenced, and Phase 3 is an explicit four-point checklist with a failure recovery loop ("If any of the four fail, reread Phase 1 or the chapter before proceeding"). This matches the anchor for clear sequence with explicit validation steps and checklists; this is a read-only orientation skill, so no destructive-operation cap applies.

5 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/ directories), and the body is well-organized into clearly headed phases with a single, well-signaled one-level reference (the external full-chapter link). Content is appropriately inlined for a compact orientation skill. Not a 5 because at ~125 lines some detail (e.g., the seven Play subscription states or the mitigation comparison) could live in a reference file, and the routing table references sibling skills whose existence cannot be verified from this bundle.

4 / 5

Total

17

/

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: specific, distinctive, and purpose-driven, with good natural keyword coverage. Its main weakness is that the "when to use" guidance is expressed as a purpose clause rather than an explicit 'Use when...' trigger with concrete conditions, and it lacks a few common entry-point synonyms like "in-app purchases" or "Google Play Billing".

Suggestions

Rewrite the opening as an explicit trigger clause, e.g. "Use when integrating RevenueCat into an Android app, migrating from raw BillingClient, or when confused about Offerings/Packages/Products/Entitlements".

Add common user synonyms such as "in-app purchases", "Google Play Billing", and "subscriptions" to broaden natural trigger matching.

DimensionReasoningScore

Specificity

The description names the domain ("RevenueCat Android SDK (10.x) architecture") and several concrete coverage areas: "reorganizes BillingClient, Google Play Developer API, and RTDN into a single SDK" and how "Products, Packages, Offerings, Entitlements, and CustomerInfo connect". Not a 5 because the stated action ("orient an agent") is singular and the coverage items are concepts rather than a comprehensive list of actions.

4 / 5

Completeness

"What" is explicit (orients to the SDK architecture and how the core objects connect) and "when" is present via the purpose clause "Use this skill to orient an agent to...", which functions as trigger guidance. Not a 5 because the "when" is a purpose statement rather than an explicit 'Use when...' trigger phrase with concrete conditions; not a 3 because trigger guidance is present, not merely implied.

4 / 5

Trigger Term Quality

Good natural keyword coverage — "RevenueCat", "Android SDK", "BillingClient", "Offerings", "Entitlements", "CustomerInfo" are terms users would actually say. Missing a few common variations/synonyms a user might use, such as "in-app purchases", "Google Play Billing", or "subscriptions", keeping it below 5.

4 / 5

Distinctiveness Conflict Risk

It carves out a clear niche — the RevenueCat Android SDK and its specific object model — with distinct trigger terms (RTDN, Offerings, Entitlements) that no generic billing or Android skill would match. Conflict risk is minimal.

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.