# Pull requests

When a diff passes the eval gate, Kestrel opens a pull request on a branch of its own, with what it did, why, and the proof that the checks passed.

## What Kestrel opens

Each run that passes the [eval gate](/review/eval-gate) opens one pull request from a branch named after the run, like `kestrel/8f2c-fix-flaky-checkout-test`. The description has three parts:

- **What changed**, in a few lines a reviewer can read in ten seconds.
- **Why**, from the agent's plan, with the files it read to decide.
- **Proof**: every check in the gate, with its time, and a link to the [trace](/runs/traces).

## Reviewers

Kestrel asks the people in your `CODEOWNERS` file for the paths the diff touches, and the person who started the run. Add more in `kestrel.yaml`:

```yaml kestrel.yaml
pull_requests:
  reviewers: [maya, platform-team]
  labels: [kestrel]
  draft: false
```

## Ask for changes

Reply to the pull request with what you want changed, starting with `@kestrel`. Kestrel starts a new run on the same branch with your comment as the task, and the eval gate runs again before it pushes.

```text Comment
@kestrel keep the retry, but move the timeout into config.ts
```

## Merging

Kestrel never merges on its own. Your branch rules decide what a merge needs, like any other pull request.

> [!TIP]
> Close a Kestrel pull request with a comment and the comment becomes a [memory](/agents/memory) for that repo, so the next run doesn't make the same choice.
