# Run from a GitHub issue

Label an issue with kestrel and Kestrel picks it up, works on it, and links the pull request back to the issue.

### Install the GitHub app

In the dashboard, open **Settings → GitHub** and install the Kestrel app on the repos you want. It needs read access to issues and write access to pull requests.

### Turn on issue runs

```yaml kestrel.yaml
issues:
  label: kestrel
  comment_on_start: true
```

### Label an issue

Add the `kestrel` label to an issue. Kestrel uses the issue's title and body as the task, comments with a link to the run, and starts.

### Review the pull request

The pull request says `Fixes #<issue>`, so merging it closes the issue. If the run stops at the eval gate, Kestrel comments on the issue with the failure instead.


## Write issues agents can finish

An agent does best with the same issue a new teammate would: what is wrong, how to see it, and what done looks like.

| Weak | Strong |
|---|---|
| Checkout is broken | Checkout returns 500 when the cart has a gift card and a coupon |
| Clean up the API | Rename `getUsr` to `getUser` everywhere and keep the old name as a deprecated alias |
| Make it faster | `/search` takes 2.4 s at p95; get it under 800 ms without changing results |

> [!NOTE]
> Kestrel ignores issues opened by people outside your organization, so a stranger can't start runs on your repo by opening one.
