Semantic review for syntactic slop.

Oaink is structural code review in VS Code. It shows what changed in a pull request, symbol by symbol. Follow review evidence back to the code.

Read the DocsNot released

Structural diffs, deep static analysis and navigation back to the code.

config.ts · structural
The structural diff of src/config.ts. The file was formatted again and one field was added. One line has a change mark: tags: string[]. The header shows +1 −0.
The line diff of the same change. Two lines are marked as removed and twelve lines as added. The header shows −2 +12.
Fig. 1 · Structural diff ·HC Ebony
  1. 1. One line changed. The header counts it: +1 −0.
  2. 2. The change mark is on that line only.
  3. 3. The other lines were formatted again. They have no mark.

Under the brass rule is the line diff of the same change. Its header counts −2 +12. Move the rule.

Overview

Overview · #214
The Overview of pull request 214. A strip of readouts with review findings, a change profile with six axes, and a list of rows in reading order. Readouts link to relevant code and review evidence.
Fig. 2 · Overview ·HC Ebony
  1. 1. Readouts summarize changes and point to the review evidence.
  2. 2. The attention list gives a reading order. It hides nothing.
  3. 3. The change profile has six axes in three opposite pairs.

Signals and the Overview

Blast radius

  1. 1. Callers that the pull request did not update.
  2. 2. Callers that the pull request updated.
  3. 3. Each group links to the relevant code.
  4. 4. A caller has callers. Follow them.

Navigation

Blast Radius
The blast radius of SpriteBatch.flush, whose signature changed. Three callers were not updated, two callers were updated, one import is broken. Each group links to relevant code.
Fig. 3 · Blast radius ·HC Ebony

Facts in the diff

price.ts · structural
The structural diff of three files with facts on the lines that they are about: an import that is broken, an export that changed with its two signatures, and three callers that were not updated.
Fig. 4 · Structural diff with inline facts ·HC Ebony
  1. 1. An import that is broken, on the line of the import.
  2. 2. An export that changed, with the signature at base and at head.
  3. 3. Callers that were not updated. The row opens the list.
  4. 4. The pane header counts the facts of the diff.

Structural diff

Change map

The side bar lists the symbols that changed, not the files. Each row has the class of its change.

Navigation

Oaink
The change map in the side bar of VS Code. One pull request is open. Its symbols are in two groups. Each row has a checkbox, the name of the symbol, its added and removed lines, and a two-letter class.
Fig. 5 · Change map ·HC Ebony
sg
The signature changed.
bd
The body changed.
nw
The symbol is new.
rm
The symbol was removed.
mv
The symbol moved. The body is the same.

A checked row is a reviewed symbol. Format-only changes are in one closed group.

You review. Oaink does not approve or reject.

Oaink is local-first. It does not track your use.

GitHub holds the review record.

For agents

The command-line tool gives an agent the same facts. It runs deep static analysis without requiring a model.

The CLI for agents

sh
$ oaink analyze thejustinwalsh/oaink#31 --json

Oaink PRO

Less context gathering. More review.

Add Lens explanations and bring deep static analysis to your own agents and CI. Give an agent focused review context, then follow its claims back to the code.

Explore Pro$5/month or $40/year at launch

Purchases open soon. Model usage is billed separately by your provider.

Release

Not released

Oaink is not released. When it is, it installs from the VS Code Marketplace.