CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

rc-cancellations-pauses-winback

Use this skill when surfacing cancellation, pause, and winback state on Android with RevenueCat. Covers reading unsubscribeDetectedAt, billingIssueDetectedAt, pause state and resume date via SubscriptionInfo.autoResumeDate, showManageSubscriptions for the deep link, and the SUBSCRIPTION_PAUSED webhook.

Quality

86%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Medium

Suggest reviewing before use

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.

The body is a tight, phased workflow with executable Kotlin and REST examples and an explicit verification checklist — it teaches only RevenueCat-specific behavior Claude would not know. The only real weaknesses are repeated statements about managementURL nullability and a mostly-inline structure with no reference files despite being over 50 lines.

DimensionReasoningScore

Conciseness

The body is dense and technical with no tutorials on known concepts, but the 'managementURL is null for paused and account hold subscribers' fact is repeated three times and 'do not call Uri.parse(url.toString())' appears twice. Not 5 because this repetition means not every token earns its place; not 3 because there are no genuinely unnecessary explanations.

4 / 5

Actionability

Fully executable guidance throughout: complete Kotlin snippets for cancellation and pause detection, the showManageSubscriptions call, a full curl command, and exact REST paths with request bodies. Not 4 because there are no real gaps — setup prerequisites are stated in Phase 2 and the only placeholders (pro_access, showCancellationBanner) are appropriately app-specific.

5 / 5

Workflow Clarity

The Scope, Prepare, Execute, Verify phases give a clear sequence, and the Verify table is an explicit checklist of five concrete checks (e.g., 'Cancel in Play Store, pull fresh CustomerInfo, confirm unsubscribeDetectedAt != null and isActive == true'). Not 4 because validation checkpoints are explicit and checkable rather than implicit; no destructive or batch operations, so the feedback-loop cap does not apply.

5 / 5

Progressive Disclosure

Well-sectioned phases with a clearly signaled one-level-deep References section, and no bundle files exist to create nested navigation. Not 5 because at roughly 100 lines some content (REST endpoint details, Notes) could live in a reference file and the cross-skill mentions (rc-payment-recovery, rc-webhooks) are inline name-drops rather than clearly signaled links; not 3 because structure and signaling are solid.

4 / 5

Total

18

/

20

Passed

Description

80%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 names concrete, verifiable capabilities with exact SDK field and method names, and includes an explicit use-when clause. Its main gaps are missing natural synonyms (resume, resubscribe, manage subscriptions) and a narrow trigger clause that undersells parts of the skill's scope.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions with exact API names ('reading unsubscribeDetectedAt, billingIssueDetectedAt, pause state and resume date via SubscriptionInfo.autoResumeDate, showManageSubscriptions for the deep link, and the SUBSCRIPTION_PAUSED webhook'), comprehensively covering the skill's stated domain. Not 4 because there are no coverage gaps within that domain.

5 / 5

Completeness

Both parts are explicit: 'Use this skill when surfacing cancellation, pause, and winback state on Android with RevenueCat' answers when, and 'Covers reading...' answers what. Not 5 because the 'when' clause is narrow (only state surfacing, not deep-link opening or winback segmentation) and lacks concrete trigger phrases; not 3 because the 'when' is explicit, not merely implied.

4 / 5

Trigger Term Quality

Natural terms like 'cancellation', 'pause', 'winback', 'Android', 'RevenueCat', and 'deep link' are present, but common synonyms users would say ('resume', 'resubscribe', 'manage subscriptions', 'billing issue') are missing. Not 5 because synonym coverage is incomplete; not 3 because coverage goes well beyond a few relevant keywords.

4 / 5

Distinctiveness Conflict Risk

'Android with RevenueCat' plus specific field names carve a clear niche with minimal conflict risk. Not 5 because closely related RevenueCat sibling skills (payment recovery, webhooks) could overlap on shared terminology like billing issue and webhooks.

4 / 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

Path

revenuecat-play-billing/skills/rc-cancellations-pauses-winback/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.