# Reviewing changes

Inspect results, accept intentional changes, and send regressions back for a fix.

## Open a run
Open the review link from GitHub, your CI log, or the project's run list. Check the commit, branch, and run status before making decisions. Filter by result or search for a story. Select a story to view its browser, viewport, and mode variants.

## Read story results
| Result | Meaning and next step |
| --- | --- |
| New / added | No corresponding accepted image. Inspect the first appearance. |
| Changed | The new capture differs from the baseline. Compare before accepting. |
| Removed | A previously captured story or variant is no longer present. Confirm the removal is intentional. |
| Unchanged | Matches the baseline, or was verified unaffected by Smart Snapshots. |
| Error | Capture did not produce a trustworthy result. Read the diagnostic and fix it. |
| Unstable | A change did not reproduce in a confirming capture that matched the baseline. Investigate the story's determinism. |
| Quarantined | Shown separately and excluded from blocking checks; its baseline is frozen. |

## Compare images
Use **Side by side**, **Diff**, **Overlay**, or **Slider**. Zoom in to inspect text, spacing, colours, clipping, and changed dimensions. Switch between the story's variants; an approval of one variant should not be mistaken for review of all of them.

The image is the result that determines visual review. [Live preview and page structure](/live-review/) help explain a difference but do not replace inspecting the screenshot.

## Accept or reject
Accept an intentional appearance change. Reject a regression, describe the problem in the discussion, and fix the component in a new commit. Members, admins, and owners can accept or reject; the reviewer role can comment but cannot make those decisions.

Use bulk selection only after reviewing the scope shown by the action. **Accept all** is a deliberate approval of the run's reviewable changes. An errored story cannot be accepted as a successful capture. Where offered, **Accept all except errored** preserves the old images for those stories rather than approving their errors.

## Stale decisions
If another review or a newer result makes your view stale, refresh and inspect the current images before trying again. Approvals apply to the exact result shown, so Framecheck may refuse a decision made from an outdated page.

## Continue after review
Check the run summary and GitHub check. A rejection, capture error, accessibility issue, or open change request can still require action. Under **Fail on differences**, accepting an intentional change does not turn a differing run green. [PR policies](/policies/) explains the options.
