From a customer report to a proven fix — reproduce first, find the cause, fix it narrowly with a regression test, prove it in a browser, and deliver a draft pull request.

On this page

A customer reports: "The Pay button does nothing on Safari." This guide takes it from report to proven fix.

Step by step#

Start from the triage playbook#

Pick Production error triage under the composer, or write the brief yourself. Put what you know in, and ask for proof:

Brief
Fix the checkout drop-off: the Pay button does nothing on Safari.
Reproduce it first. Find the cause, fix it with the smallest change, and
add a regression test. Prove the checkout works in a browser at desktop
and mobile widths. Don't change the payment provider integration.

Attach the customer's screenshot or error log if you have one.

Turn on browser review#

The bug is about something a person clicks, so browser review is what proves the fix. Without it, the criterion would be reported as unproven.

Watch the reproduction#

Ysra finds your project's commands and reproduces the problem before changing anything. If it can't reproduce it, it says so and asks — that's the moment to add detail ("only when the cart has a discount code").

Let the loop run#

A typical trail: an edit, a type-check that fails, the fix to the fix, the test passing, then the browser filling the checkout form and waiting for Order confirmed.

The live feed of this fix: found commands, updated cart.ts, a type-check failure and its repair, the test passing, and the browser filling the checkout form

The whole fix, step by step.

Check the evidence#

  • Checks — the regression test and your suite passed on this exact candidate.
  • Review — the criterion Pay works on Safari is proven by an executed browser run, with screenshots.
  • Editor — the diff is small and touches only the cart.

Deliver#

Open the draft pull request. Its report links the evidence, so reviewers can see what was proven before they read the code.

If it goes sideways#

Ysra can't reproduce the bug

It stops and asks rather than guessing a fix. Add the missing condition — browser version, account state, data — and it continues.

An unrelated test fails

If it was failing before the session, it's reported as pre-existing and doesn't block the fix.

YsraDocs