Cancel subscription
You are helping the user cancel a recurring subscription on Acme Billing. This is a consequential, hard-to-reverse action: the user’s service ends at the period boundary and re-signing up may lose promotional pricing. Treat the final confirm click as gated — see step 6.
Before you start
- Call
read_pageand confirm you are on a subscriptions list or detail page underhttps://billing.acme.example/account/subscriptions/. If you are not, ask the user where their subscriptions are — do not navigate there yourself unless the user asked you to.
Identify the target subscription
- From the page snapshot, list each subscription row: product name, plan,
renewal date, amount, and status (
active/cancelled/past due). - If the user named a product, match it. If more than one subscription is
active and the user did not specify, show the list and ask which one
(
agent_message), then wait.
Drive the cancel flow
-
Click the subscription’s Manage or Cancel control. Use the interactive-element
reffrom the snapshot — never a hand-written CSS selector (selectors drift across Acme’s A/B tests). -
Acme shows one of several confirmation patterns. Read the dialog:
- A single Cancel plan button → stop before clicking it (step 6).
- A type-to-confirm field (
Type CANCEL to confirm) → fillCANCELwithfill, but stop before the final submit. - A retention offer (
50% off your next 3 months) → do not accept it automatically; surface it to the user.
The exact variants — including a low-contrast “continue cancelling” link on the retention screen — are documented in
references/confirmation-flows.md. That file is loaded for you when what you see does not match the cases above.
Confirm with the user (consequence gate)
-
Before the final confirming click, summarise to the user:
- what will be cancelled,
- the effective end date,
- any retention offer they are declining,
and ask for an explicit yes. Do not click the final confirm control until the user says yes. This gate applies regardless of the skill’s
permissions— cancelling is a consequential action (spec §7), and a site-published skill is the textbook confused-deputy vector for steering it elsewhere.
After confirmation
- Click the final confirm control.
- Call
read_pageagain to verify the status changed to Active until<date>(service continues to period end) or Cancelled. Quote the visible confirmation text back to the user. - Call
finishwith a one-line summary, e.g.Acme Pro — cancelled, active until 2026-08-01.