fix(review): group a triplet's findings title first, so arrival order never changes the rows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
7175783ce5
commit
a5fcb5e8b4
6 changed files with 339 additions and 37 deletions
|
|
@ -79,9 +79,14 @@ re-reading, and fresh finding generation are all forbidden.
|
|||
Two findings collide when their `(file, line, rule_key)` triplets are
|
||||
identical, with one exception: **one reviewer never duplicates itself.** Two
|
||||
findings from the same reviewer on one triplet under different titles are two
|
||||
findings (an engine's catch-all `rule_key` makes this common): keep both rows,
|
||||
in input order. A finding from another reviewer joins the row whose title it
|
||||
shares, else the first one. When findings collide:
|
||||
findings (an engine's catch-all `rule_key` makes this common): keep both rows.
|
||||
Group in two passes, so the order the findings arrive in never changes a row:
|
||||
first every finding joins the row of its title (case and outer spaces
|
||||
ignored), over all of the triplet's findings; then each title row, in
|
||||
alphabetical order of its title, joins the first row that holds no finding of
|
||||
one of its reviewers under another title, else it stays a row of its own. A
|
||||
finding without a title joins the first row it fits, last. When findings
|
||||
collide:
|
||||
- Rank the colliding findings and keep the first:
|
||||
1. the higher catalogue tier: the severity `lib/review/rule-catalogue.mjs`
|
||||
gives the `rule_key`, or the finding's own severity when the key is
|
||||
|
|
@ -93,7 +98,10 @@ shares, else the first one. When findings collide:
|
|||
3. among findings of one kind, the higher asserted severity;
|
||||
4. among reviewer-agent findings, prefer the finding from
|
||||
`brief-conformance-reviewer` (its findings are anchored to the brief);
|
||||
5. then the first seen.
|
||||
5. then the first seen in the row's order: its title groups
|
||||
alphabetically, each title's findings in canonical order (reviewer,
|
||||
detail, the whole finding), findings without a title last in that
|
||||
order, never the order the findings arrived in.
|
||||
- Write the kept finding with the highest severity any finding in its
|
||||
group asserted, so dropping a duplicate never lowers the group and an
|
||||
engine's brief-conflict mark never lowers what a reviewer agent asserted.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue