ダッシュボード(管理画面)でRevenueCat Paywallを作成・編集・評価・理解・改善するあらゆるリクエストに対して必ず起動します。特定のpaywallについての質問や、paywall設計全般の推奨事項に関する質問も含みます。 アプリのコード内でpaywallを表示する場合は対象外です(その場合はrevenuecat-paywallを使用してください)。
Must invoke for any request to create, edit, evaluate, understand, or improve a RevenueCat Paywall in the dashboard — including questions about a specific paywall or general paywall design recommendations. Not for presenting a paywall in app code (use revenuecat-paywall).
This skill covers the dashboard paywall: creating, duplicating, editing, auditing, and
publishing. To display a configured paywall in the app with RevenueCatUI, use
revenuecat-paywall instead.
Paywall advice requires a paywall. An offering whose paywall_id is null has no RevenueCat
paywall: its purchase UI is client-side and invisible to you. Say so, and keep your advice to
what RevenueCat actually controls.
Via the rc CLI (see the revenuecat-cli skill): rc paywalls generate --prompt "...",
rc paywalls edit --prompt "...", rc paywalls rewind --session <id>, rc paywalls publish,
rc paywalls show. Prefer MCP below when you need screenshots or a structured get-paywall
read.
When evaluating a RevenueCat Paywall, use render-paywall-screenshot to look at a static render
of above-the-fold content. The render is for you, not something to display to the user.
For a specific identified paywall, match the tool to the question:
get-paywall with expand: ["components"]. Without that expand, component configuration is
omitted.render-paywall-screenshot. A screenshot cannot verify
configuration-dependent details.get-paywall before
disputing their observation; if get-paywall is unavailable, say you could not verify rather
than disputing them.Both get-paywall and render-paywall-screenshot use the draft when available, otherwise the
published version, and cover one paywall — not workflows or multipage paywalls. For general
paywall advice that is not about a specific paywall, answer directly without calling these tools.
If get-paywall fails, you may still report observations explicitly visible in a screenshot.
State that configuration-dependent details were not verified; do not silently replace
structure-aware analysis with screenshot reasoning.
When the user explicitly asks you to edit an existing paywall, use edit-paywall-ai. It starts
an async task: poll get-paywall-ai-task with the returned task ID about every 10–15 seconds
until it succeeds or fails. Do not call edit-paywall-ai again for the same request unless the
task fails. Image-generation edits can take several minutes.
If the user wants to edit manually, link to the paywall builder:
https://app.revenuecat.com/projects/{project id without leading proj prefix}/paywalls/{paywall ID starting with pw}/builder
The builder also has a conversational AI editor in the left toolbar; you cannot link to it directly.
If the user attaches images to the current message and the tool schema accepts them, pass them through and tell the editor how they should be used. Do not reproduce visual details unnecessarily. Images from earlier messages are not still attached — ask the user to attach again.
MCP has no restore-version tool. If the user asks to undo an edit you made via MCP, tell them
they can restore an older version in the paywall editor. If they used the CLI, rc paywalls rewind --session <id> undoes the last editor action. Restoring does not publish.
When the user asks for a paywall that copies, duplicates, or mirrors an existing one, use
duplicate-paywall rather than create-paywall-ai. create-paywall-ai designs from a blank
canvas and a text prompt, so it reproduces only what the prompt describes: images, exact
component structure, and anything unmentioned are regenerated rather than copied.
duplicate-paywall copies the source paywall — its current draft by default, or its published
version if you pass source_version: published (fails if the paywall has never been published)
— into a new unpublished paywall. Choose deliberately:
get-paywall's published_at is non-null), pass
source_version: published — that is the paywall the user means when they reference one by
name or link.draft default only when the user is explicitly asking to copy in-progress
unpublished edits, or the source has never been published.Say which version you copied. Pass offering (lookup_key and display_name) to also
duplicate the source paywall's offering — packages only — and attach the copy to it; omit
offering to leave the copy unattached. When the user's framing is offering-first — a second
offering that should carry the same paywall — use duplicate-offering instead, which copies the
packages and the attached paywall together. Then apply differences with edit-paywall-ai, and
describe the result as a copy of the original rather than as a new design.
Duplication does not cover every paywall — multipage paywalls are not supported. If duplication
is unavailable or fails, you may fall back to create-paywall-ai, but tell the user the result
is a reconstruction from a description, not a copy, and that details such as images will differ.
When the user asks you to create a new paywall, use create-paywall-ai to create a draft
only. It starts an async task: poll get-paywall-ai-task about every 30 seconds until it
succeeds or fails. Image-heavy creation can take 5–10 minutes; do not call create-paywall-ai
again for the same request unless the task fails.
Prefer creating the paywall for an existing offering when the user names one or when you can
confidently identify a suitable offering. If they do not name an offering, use list-offerings,
get-offering, get-offering-prices, list-products, list-apps, get-app,
get-project-ui-config, and list-paywalls to understand the app, products, pricing, brand
conventions, and existing paywalls first. Inspect the app/codebase and pass concise
codebase_context (premium features, brand colors, visual direction, tone, products, audience)
and app_context when you can infer it. Recommend the best offering when there is a clear fit;
if the user declines or no clear offering is known, create an unattached draft.
An offering can have at most one attached RevenueCat Paywall. If the offering has a
paywall_id, do not pass that offering as offering_id to create-paywall-ai. Explain that it
already has a paywall, and pick the option that matches:
edit-paywall-ai.Do not present an unattached create-paywall-ai draft as the way to satisfy a duplication
request.
Fold gathered context into the prompt: app identity, target audience, core value proposition, product durations, trials, price points, existing paywall patterns, brand colors or fonts, and any user-stated design direction. Keep the prompt concrete enough for a one-shot draft and do not ask the tool to publish.
A duplicated or newly created paywall is an unpublished draft. Do not publish unless the user
explicitly asks, except when preparing a treatment offering for an experiment (see
revenuecat-experiments).
Search the RevenueCat blog and docs for paywall design and best practices. Markdown docs are at
the page URL with .md appended.
Apple's App Review guidelines are strict. Patterns often touted as best practices can lead to a rejected update or a store ban:
Try different placements: beginning or end of onboarding, as a feature gate, etc. Onboarding paywalls tend to be very successful: they capture the highest number of potential customers (nobody has churned yet) and motivation is high just after download.
Results of different paywall designs are highly variable. Continuously test. At thousands of
new users per day, A/B testing with RevenueCat Experiments is the best validation. At hundreds
per day, tests can still be directional. Below that, ship and observe conversion over time. Use
the revenuecat-experiments skill to set up a test.
Analyze the paywall and identify conversion issues. Prioritize conversion over aesthetic consistency when they conflict. Audit in this order of impact.
CTA Button — single highest-impact element, address this FIRST.
Plan Card Differentiation
Price Anchoring — required when multiple plans exist.
Price Visibility. Every package card MUST display its price.
Content Reduction. Count content rows between the headline and the packages/CTA. If there are more than 4–5, remove the weakest. Every row above the fold competes with the CTA.
Layout. Packages and the CTA MUST be above the fold. Keeping the purchase action (and ideally the packages) always visible regardless of scroll is the strongest pattern. Never remove the purchase button or the privacy footer.
Trust Signals — required. Every paywall MUST have a short reassurance line below the purchase button (between the button and the privacy footer): "Cancel anytime", "No commitment", trial terms. Order: packages → purchase button → reassurance text → privacy footer. If a free trial exists, trial terms should be visible near the CTA (e.g. "7-day free trial, then $X/month").
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。