Repair and rerun
Your coding agent already has your code and the intent of your change. Reflow gives it repeatable execution, retained evidence and the plan for what needs to run next.
Use Reflow to inspect this failure. Determine whether the application regressed or the test needs updating, make the smallest justified repair, then plan and rerun the affected checks. Show me the before-and-after evidence and unresolved failures before preparing the PR.
Tests can be saved in Reflow or in your repository. Use a slug or test ID with plan/apply for either location; the paths below show repository examples. See test storage for selection and authoring.
The repair loop
Section titled “The repair loop”- Inspect. Read the failed step, its inputs and retained evidence. Compare the result with the intended behavior and current application knowledge.
- Repair. Fix the application or update an obsolete test within the requested scope. Preserve assertions that describe behavior the application must keep.
- Plan. Keep the same target and run
reflow plan. Changed flow steps, covered source files and dependency outputs invalidate affected evidence automatically. - Run and review. Run
reflow apply, inspect the actual outcomes and snapshots, and prepare the relevant delta for the PR. A successful command still needs its business result checked.
This workflow uses the connected coding agent through MCP. It does not require configuring a second model inside Reflow. The Reflow skill guides the agent through the same tools as the CLI.
Changes already select what reruns
Section titled “Changes already select what reruns”Suppose checkout needs seed-customer. Changing the seed step means the next plan
runs that step and the checkout work that depends on it. Unrelated matching work
can reuse its evidence. If the browser session has ended, Reflow includes the
steps needed to reconstruct it.
covers narrows which source files affect a flow. Without it, the known Git
working tree is covered conservatively. Planning observes staged, unstaged and
untracked non-ignored source changes; it does not execute steps or poll external
systems for changes. Apply checks the current plan again before admission.
reflow plan .reflow/flows/checkout.mdreflow apply .reflow/flows/checkout.mdWhen to request fresh evidence
Section titled “When to request fresh evidence”If a database, feature flag or running application changed without a corresponding
source or input change, the agent can use taint to request another observation:
reflow taint checkoutreflow plan .reflow/flows/checkout.mdreflow apply .reflow/flows/checkout.mdUse checkout#Confirm order to select a named step, quoted when it contains spaces.
The plan includes its affected dependents. Taint does not undo external writes or
clear live ownership. Named mailboxes and generated test values stay the same.
Use reflow reset only when you intend to replace the selected group’s test data,
then plan again. Reset does not delete application records or resolve uncertain
execution. If completion is unknown, inspect the existing run and
reconcile its effects before deliberately retrying. After an uncertain apply
response, keep its request identity; a new request can repeat an external write.
Keep the repair meaningful
Section titled “Keep the repair meaningful”A selector can become obsolete; a missing role selector can be a regression. The agent must distinguish them using the requested change and application rules. It should stop when the intended behavior is unclear, access is missing, completion is uncertain, or the same failure repeats without progress. It reports the remaining problem instead of weakening assertions or accepting a different screenshot to make the run green.
The optional model-assisted browser runner has a narrower selector-repair feature.
It requires configured provider authority and only replaces eligible element
targets, preserving the verb, values and modifiers. Device execution can retain a
repair proposal for a subsequent candidate run. It does not automatically apply
that proposal. Assertions, visual mismatches and external commands are not silently
healed. self_heal: false disables the separate in-run selector repair; it does not
prevent your coding agent from making an ordinary, reviewable source change.
See Snapshots and review for browser, terminal and database evidence, and Write a flow for dependencies and variables.