> ## Documentation Index
> Fetch the complete documentation index at: https://docs.assert.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Navigation

> Moving through a change, resolving symbols, and skipping code you have already read

## Moving through the diff

| Action                 | Shortcut                                                   |
| :--------------------- | :--------------------------------------------------------- |
| Move selection         | <kbd>H</kbd> <kbd>J</kbd> <kbd>K</kbd> <kbd>L</kbd>        |
| Next / previous file   | <kbd>⇧</kbd><kbd>J</kbd> / <kbd>⇧</kbd><kbd>K</kbd>        |
| Next / previous change | <kbd>]</kbd> → <kbd>H</kbd> / <kbd>\[</kbd> → <kbd>H</kbd> |
| Toggle left panel      | <kbd>⌃</kbd><kbd>B</kbd>                                   |
| Search the review      | <kbd>/</kbd>                                               |

## Symbols

Reviewing well means looking things up, so Assert resolves symbols inside the review.

| Action                             | Shortcut                    |
| :--------------------------------- | :-------------------------- |
| Go to definition                   | <kbd>G</kbd> → <kbd>D</kbd> |
| Search for the symbol in this diff | <kbd>⇧</kbd><kbd>\*</kbd>   |
| Jump back                          | <kbd>⌃</kbd><kbd>O</kbd>    |
| Jump forward                       | <kbd>⌃</kbd><kbd>I</kbd>    |

Navigation keeps a history, so <kbd>⌃</kbd><kbd>O</kbd> and <kbd>⌃</kbd><kbd>I</kbd>
walk back and forth the way they do in vim. Right-click a symbol for the actions
available on it.

Symbol resolution covers TypeScript and JavaScript today, and more languages are on
the way. Tell us which ones you want next at
[support@assert.dev](mailto:support@assert.dev).

## Move detection

Refactors produce diffs that are mostly noise: a block deleted here, added there,
which a line diff reports as two unrelated changes. Assert links moved code back to
where it came from, including across files. Check the move was faithful and skip the
rest.

Matching is similarity-based, so a block that moved and picked up small edits still
counts as a move. Blocks under 10 lines are ignored, and whitespace differences do
not count against a match. Very large diffs skip move detection to keep the review
fast.

Agent-authored code refactors freely, and very little of the resulting diff is new
behavior. This is where move detection earns its keep.
