Back to inline

It gets better at your repository

When a pull request closes, inline goes back and looks at what happened to each finding: the reaction it got, whether its thread was resolved, and whether the flagged code actually changed. That is a real outcome, not a thumbs-up nobody clicked.

Dismissals become
rules you approve

A pattern dismissed enough times becomes a proposed learning with the evidence attached. You accept it, edit it, or reject it. Accepted rules go into the next review; nothing changes behind your back.

Learningsproposed from dismissals
Stop flagging `any` in generated clients
dismissed 6× in acme/web
accepted
Treat `// @ts-expect-error` in tests as intentional
dismissed 4× in acme/ledger
accepted
Prefer `Result<T>` over thrown errors in services
from a maintainer reply
proposed
Do not suggest `useMemo` under 50 rows
dismissed 3× in acme/web
proposed
Acceptance rate · 30d81%
Codebase profileacme/payments-api
Money paths

Every charge goes through `src/charges.ts`; nothing calls the Stripe SDK directly.

Tenancy

Rows carry `tenantId`; a query without it is a bug, not a style choice.

Error shape

Services return `Result<T>`; only route handlers throw.

Fragile files

`replay-cache.ts` has caused three incidents; treat changes there as high risk.

distilled by Haikuupdated after every substantive review

Included

Acceptance ratethe share of findings your team acted on, over time
Codebase profiledistilled from each substantive review, injected into the next
Prompt-cache safememory rides in the user prompt, never the cached prefix
Per repositoryone repo's conventions stay out of another's review

Put it on one repository

Connect GitHub, enable a repo, and the next pull request opened gets a review.