find-in-circleback
Answer "what did we say, decide, or promise" from Circleback meetings — search by attendee,…
Move money back to a customer in Stripe, or respond to a dispute, with the checks that belong in front of an irreversible write — read the charge first, fix the exact amount, and clear Stripe's human confirmation step. Use when the user asks to refund a payment, cancel and
$ npx -y skills add superset-sh/superset --skill refund-and-dispute --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/refund-and-disputeContext preview
The summary Claude sees to decide when to auto-load this skill.
Move money back to a customer in Stripe, or respond to a dispute, with the checks that belong in front of an irreversible write — read the charge first, fix the exact amount, and clear Stripe's human confirmation step. Use when the user asks to refund a payment, cancel and
name: refund-and-dispute description: Move money back to a customer in Stripe, or respond to a dispute, with the checks that belong in front of an irreversible write — read the charge first, fix the exact amount, and clear Stripe's human confirmation step. Use when the user asks to refund a payment, cancel and refund a subscription, or handle a chargeback or dispute. argument-hint: the charge or payment id and what should happen to it allowed-tools: mcp__stripe__get_stripe_account_info, mcp__stripe__stripe_api_search, mcp__stripe__stripe_api_details, mcp__stripe__stripe_api_read, mcp__stripe__stripe_api_write
Every other Stripe read can be run again for free. A refund cannot. Treat the write as the last step of a short checklist, never as the first attempt at understanding the request.
The checks live on the **charge**, so a `pi_` id is not where this starts: read the PaymentIntent, follow `latest_charge`, and read that charge. Skipping the hop is how an agent misses an open dispute, because `refunded`, `amount_refunded`, and `disputed` are not PaymentIntent fields and reading them off one yields `undefined` rather than an error.
A `latest_charge` of `null` ends the job rather than starting it: the PaymentIntent was never confirmed, or no attempt produced a charge, so there is nothing to refund. Say that and stop.
On the charge, check four fields:
dashboard glance.
different answer, not a write.
step 5.
Confirm the mode with `get_stripe_account_info` first. A live-mode refund issued because the id was assumed to be a sandbox id cannot be undone.
Omitting `amount` refunds the whole charge. A partial refund takes an integer in the smallest unit of the charge's currency, so a $12.34 refund is `1234` and a 1234 yen refund is `1234`. Never derive the figure from a human-readable total in the conversation when the charge object is one read away, and say the figure and currency back to the user before writing.
Before calling `stripe_api_write`, tell the user in one line what you are about to do: the charge id, the amount, the currency, the mode, and the `reason` (`duplicate`, `fraudulent`, or `requested_by_customer`). The reason is not decoration; `fraudulent` affects how Stripe treats the customer later, so do not pick it for a routine cancellation.
Stripe requires human confirmation before it performs certain writes, refunds among them. The call comes back with a confirmation URL instead of a refund. When that happens:
own page and approve it there.
the refund.
Do not loop retrying while you wait, and do not route around the step by asking for an API key. The confirmation is the control that makes an agent with write access safe.
If a write errors ambiguously, list the charge's refunds before retrying and check whether one already landed. Reporting a refund that did not happen and issuing a second one are both worse than a slow answer.
A chargeback is the issuer taking the money back on the customer's word. Opening a refund on a disputed charge can cost you the amount twice and still lose the dispute. Read the dispute, then either submit evidence through its `evidence` fields or accept it deliberately. Say which one you did and why.
The refund id, the amount and currency, the `status` (`pending` and `succeeded` mean different things to the customer), and the mode. Tell the user the money typically reaches the customer in five to ten business days, because the next question is always when it arrives.
loss.
cannot catch you picking the wrong one.
fields live on the charge; a PaymentIntent answers those questions with `undefined`, which reads like "no".
future invoices and refunds nothing. Do the one that was asked for, and say which.
Superset is an agentic IDE to orchestrate 100+ coding agents in parallel. Run any agent with your own subscription.
Answer "what did we say, decide, or promise" from Circleback meetings — search by attendee,…
Build a brief for an upcoming meeting from Circleback — the calendar event, the history with…
Work the action items Circleback captured — find what is assigned to this user, do the ones…
Diagnose a failing GitHub Actions run — find the first real error in the logs, tell a flake…
Triage a GitHub issue into something actionable — reproduce the claim, find duplicates, judge…
Answer "what did we say, decide, or promise" from Granola meeting notes — narrow to the…