How it works
From API change to verified pull request.
Five stages run for every change that touches your code. Each one has to succeed before the next begins, and a run that cannot prove its change stops without opening anything.
Stage 1: Detect
Identify API changes that matter to your repository.
Mantle reads Stripe’s published changelog and API specification, turns each entry into a structured record, and keeps only the changes your code actually calls.
Stripe changelog2026-09-30.endive- Add billing_cycle_anchor_config to Subscription createNot used
- Remove payment_method_types on Checkout.SessionCreateParamsUsed in this repository
- Add automatic_tax.liability to InvoiceNot used
- Deprecate Source objects on CustomerNot used
Stage 2: Understand
Trace the change through the codebase and identify the affected paths.
Your repository is parsed, not searched. Mantle follows your Stripe client through wrappers to the exact call sites that pass the changed parameter.
Call graph8 call sites · 3 affectedsrc/lib/stripe.ts Client
- src/payments/checkout.tsAffected
- src/billing/subscribe.tsAffected
- src/api/orders.tsAffected
- src/customers/sync.tsClear
- src/webhooks/stripe.tsClear
Stage 3: Migrate
Update the integration in a disposable workspace.
Every edit is anchored to your exact code. An edit that does not match the file is rejected rather than guessed. The workspace is deleted when the run ends.
Workspacerun 7f3a · disposablereturn stripe.checkout.sessions.create({ mode: 'payment', payment_method_types: ['card', 'link'], customer_email: email, line_items: cart.items.map(toLineItem),
Anchored to src/payments/checkout.ts:17Edit applied
Stage 4: Verify
Run typechecks, tests, linting and builds.
Your own scripts, from your own package.json. A failing check stops the run, and a run where nothing could execute is never called verified.
Verificationyour package.json scripts- installPassed
- typecheckPassed
- lintPassed
- test184 passed
- buildPassed
Stage 5: Open
Create a pull request only when the migration is validated.
The pull request explains the API change, why your repository is affected, what changed and every check result. Your team reviews it and decides.
Pull request #212Update Stripe integration: remove
payment_method_types- ## API change
- ## Why this repository is affected
- ## What Mantle changed
- ## Verification
VerifiedWaiting for your review
Illustrations use a sample repository
The migration
Review a diff, not a changelog.
Every edit is shown the way your team already reviews code: file by file, line by line, with the checks that ran against it.
12export function checkout(cart: Cart, email: string) {13 const lineItems = cart.items.map(toLineItem);1415 return stripe.checkout.sessions.create({16 mode: 'payment',17− payment_method_types: ['card', 'link'],18 customer_email: email,19 line_items: lineItems,20 success_url: `${APP_URL}/thanks`,21 });22}
12export function checkout(cart: Cart, email: string) {13 const lineItems = cart.items.map(toLineItem);1415 return stripe.checkout.sessions.create({16 mode: 'payment',17 customer_email: email,18 line_items: lineItems,19 success_url: `${APP_URL}/thanks`,20 });21}
src/payments/checkout.ts
Sample repository · 3 files · 3 lines removed