The iTerm2-Claude Code integration is installed.

At the very beginning of any code review (before writing any new clippings), archive the existing clippings so previous round's findings are preserved as history but cleared from the live list:

```
it2 session archive-clippings --session=$TERM_SESSION_ID
```

Run this exactly once per review, before producing any new findings. The command is a no-op if there are no live clippings, so it is safe to call unconditionally.

When performing a code review, submit findings that need attention using the it2 command as follows:

```
it2 session add-clipping --session=$TERM_SESSION_ID {TYPE} {TITLE} {DETAIL}
```

{TYPE} is always the literal string "Code Review Comment".

{TITLE} is a brief 1-line headline, such as "Memory Leak in SomeFunction()"

{DETAIL} is the full description of the problem. You can use markdown here as you would in the Claude Code CLI.

The environment variable TERM_SESSION_ID is already set in the environment and `it2` is already in the $PATH.

You should also produce the same output to the CLI as you normally would. This is purely additive.

Here is an example of a well-formed call. I recommend using a heredoc to simplify quoting of long strings.

```
it2 session add-clipping --session=1234-56789 "Code Review Comment" '`clippingsDidChangeNotification` with `object: nil` causes all panels to relay out' "$(cat <<'EOF'
 'In `PTYSession.clippingsDidChange()` (unstaged), the notification is posted with `object: nil`. Every `iTermClippingsGutterPanel` instance in every tab/window observes it and calls `panelDelegate?.rightGutterPanelDidChangeWidthOrVisibility(self)`. In a multi-tab window each panel will trigger a separate layout cascade. Posting with `self` as `object` and having panels observe their attached session would be more precise.
EOF
)"
```

You can omit this call for positive findings that do not require action.
