[FEATURE] Give /code-review findings stable ordinals so they can be referenced in follow-up

Status Open
Reported on v2.1.247
Maintainer reply None cached
Activity 0 comments · opened Aug 26, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

/code-review reports its results through the ReportFindings tool, and the TUI renders the entries as an unnumbered bullet list. Nothing on a finding is short enough to use as a reference. The fields are file, line, summary, short_summary, category, and verdict, and none of them is an ordinal, an index, or an ID.

That makes the turn after the review awkward. To ask about one finding I have to retype its summary or its file:line, and when several findings land in the same file (or the same function) even file:line is ambiguous at a glance. What I want to type is "let's look at 3", or "1 and 4 are false positives, fix 2".

The obvious workaround is closed off by the skill's own output contract, which says verbatim:

Do not also print the findings as text, and do not create or publish an artifact of the review, the tool call is the report.

So the model is explicitly instructed not to emit a numbered list next to the panel.

Proposed Solution

Render an ordinal on each finding, matching the order they were reported (already defined as most severe first):

1. server/matrix/client.go:212     Room alias is not URL-escaped before...
2. server/sync_to_matrix.go:88     Ghost user lookup ignores the reverse...
3. server/hooks.go:145             Nil deref when SharedChannel is unset...

Then teach the review skill that those ordinals are addressable, so "finding 2" in the next message resolves without the user restating it. They only need to be stable for the lifetime of the conversation, not globally unique.

Nothing about the payload has to change, since the index can be derived from array position at render time. If an explicit handle is preferable, an optional id on each finding would also work and would survive the list being re-sorted or filtered.

This composes with --fix: "apply 1 and 3" becomes expressible, where today it is not.

Alternative Solutions

  • A CLAUDE.md instruction to print a numbered index after the review. What I am using now. It reprints the entire list purely to attach integers to it, it competes with the "do not also print the findings as text" contract, and being prompt-level it is not guaranteed to fire.
  • A PostToolUse hook on ReportFindings injecting the same instruction. More deterministic, still produces a duplicate list.
  • Referring to findings by file:line. Verbose, and ambiguous when one file has several findings.

Priority

Medium - Would be very helpful

Feature Category

Interactive mode (TUI)

Use Case Example

  1. Run /code-review on a branch, get 6 findings back.
  2. Three are real, two look like false positives, one needs discussion.
  3. Today: retype a summary or a file:line for each one, or resort to "the one about the alias escaping" and hope it resolves to the right entry.
  4. With ordinals: "2 and 5 are false positives, fix 1 and 3, tell me more about 6."

Additional Context

Claude Code 2.1.247, Linux.

#83516 covers the readability of this same render and asks for a consistent human-readable format across effort levels. It does not raise numbering or referencing, and this request is orthogonal to how that one is resolved: whichever format wins, the findings still benefit from being individually addressable. Happy for this to be folded into that issue if maintainers prefer.

#75530 (closed, completed) asked for a handle on a whole review session so it could be resumed for re-review. This is the same idea one level down, a handle on an individual finding within a conversation.

View original on GitHub ↗