# Policies and GitHub checks

Choose how visual and accessibility results affect pull requests.

## Choose a visual policy
Set a company default, then inherit it or override it per project.

| Policy | Effect |
| --- | --- |
| Report only | Completes as neutral with changes and error counts. An incomplete capture is not described as a pass. |
| Require visual approval | Unreviewed differences need action; accepting the changes can make the check pass. Capture errors and missing baselines still need attention. |
| Fail on differences | Any visual difference fails even if it has been accepted. Approval records intent but does not override this policy. |

A run records the policy in force when it started. A later settings change does not silently rewrite its history. If the app offers policy re-evaluation, an admin can explicitly apply it to a run.

## Make the GitHub check required
Configure the matching Framecheck check in GitHub's branch protection or ruleset after the check has appeared. Choosing a blocking Framecheck policy alone does not configure GitHub's merge protection.

An upload job passing means the build reached Framecheck. The Framecheck GitHub check reports the visual outcome after capture and review.

## Find why a check is not green
- Unreviewed changes: inspect and accept or reject them.
- Rejected changes: fix the component and upload a new commit.
- Capture error: follow the story diagnostic; accepting another image does not resolve it.
- Missing baseline: establish an accepted reference.
- Accessibility: inspect new or worsened findings under your accessibility settings.
- Open change request: resolve the requested change and clear it through the review workflow.
- Fail on differences: use the policy deliberately; accepted differences still fail.

## Skips and neutral checks
A run skipped by a project rule is neutral. It is not a successful capture. Check how your repository rules treat neutral or skipped checks when choosing your policy.

## Native platform checks
For native projects in preview, each enabled platform contributes to the commit's result. One platform finishing does not mean the other has completed. Upload each enabled platform for the same commit and inspect the combined check.
