# Review preferences

Tell the PR bot how to review your repository with /repowise remember. Preferences are scoped by path, apply repo-wide once the pull request merges, never hide P1 or security findings, and expire when the code they quoted changes.

A **review preference** is an instruction the [PR bot](https://docs.repowise.dev/hosted/bot) reads
on every review of one repository: "skip unused-import findings in test
fixtures", "do not flag missing null checks in generated code". The bot hides
the findings a preference covers and lists them on the pull request page.

## Add a preference from a pull request

Reply to the bot on a pull request, either on its comment or in one of its
review threads:

```text
/repowise remember skip unused-import findings in test fixtures
```

Scope it to a path glob with `path:`:

```text
/repowise remember path:tests/fixtures/** skip unused-import findings here
```

| Where you reply | Default scope |
|---|---|
| A review thread on a line | That file, and the thread's finding is the source |
| The bot's comment or the PR conversation | The whole repository |

The command has to be the first line of the reply. The bot reacts with 👀 and
answers with a link to the repository's review preferences.

**Who can add one, and when it applies.**

| Who replies | On their pull request | After it merges |
|---|---|---|
| An owner, member or collaborator of the repository | Applies to that pull request | Applies to the whole repository |
| The pull request's author, without one of those roles | Applies to that pull request only | Proposed, until a maintainer accepts it |

If the pull request closes without merging, its preferences expire.

## What a preference changes

| Finding | What happens |
|---|---|
| P2 or P3, covered by an active preference | Hidden from the review, listed on the PR page |
| P0, P1 or security, covered by an active preference | Posted, labelled "A team preference covers this: ..." |
| A point a reviewer rejected on an earlier pull request, code unchanged | Hidden the same way, linked to that pull request |

The bot also reads active preferences into the review itself, so the reviewer
and its verifier know what the team asked for. Text in the pull request cannot
change them.

On the pull request page, the AI review section folds a line such as
**3 findings hidden by team preferences**. Open it to see each finding, its
priority, its path and what hid it.

## Manage preferences

Open **Settings → PR bot**, pick the installation, then **Customise** on the
repository. The **What it learned from your team** section lists:

| Tab | Shows | Actions |
|---|---|---|
| Proposed | Preferences from a pull request's author, waiting for a maintainer after the merge | Accept, Reject |
| Active | Preferences the bot reads now, with how many findings each matched and when | Edit text or path, Delete |
| Expired | Preferences that stopped applying, and why | Delete |

Each row links to the GitHub thread it came from. **Add preference** creates one
directly; it is active at once.

Below the list, the same section shows how many findings preferences have hidden
and the review points your team marked wrong on this repository.

## Expiry

| Reason | When |
|---|---|
| The code changed | The file in scope no longer contains the code the source thread quoted |
| Unused | No finding matched it for 90 days |
| Pull request closed | It was written on a pull request that closed without merging |

An expired preference stays listed under **Expired** until you delete it.

## For coding agents

Preferences are written by people on pull requests. An agent that needs the bot
to stop raising a finding should ask a person to reply with
`/repowise remember`, quoting the rule in the person's words.
