Skip to content

Count Each Severity Marker in a Copilot Findings Cell - #3669

Merged
ptr727 merged 2 commits into
developfrom
fix/findings-cell-count
Oct 30, 2026
Merged

ptr727 merged 2 commits into
developfrom
fix/findings-cell-count

Conversation

@ptr727

@ptr727 ptr727 commented Oct 30, 2026

Copy link
Copy Markdown
Owner

Answers the Copilot finding raised on promotion #3667 against scripts/pr_review_copilot.py, which #3642 introduced.

  • A Copilot Findings cell now counts each finding it names. The file table's Findings column counted one finding per filled cell, so a second finding in the same cell went uncounted. On a clean-verdict round that leaves it out of triage. A new per-reviewer vocabulary pattern, table_finding_marker, is \[P\d\] for Copilot and empty for CodeRabbit and Qodo. A filled cell counts each marker it carries, and once where it carries none, so no count drops below what it was before.
  • The Reading docstring states the new counting.

Verification

  • The full suite passes, with 3123 tests run and 7 skipped.
  • The new subtest, a cell carrying two markers beside a cell carrying none, counts 3. It fails against develop's adapter, which counts 2.
  • ruff, mypy, the diff-scoped prose gate, and the eol gate are clean.

Dropped findings

  • scripts/pr_review_copilot.py: a [Pn] written inside a code span or in prose about another finding also counts. The only effect is a higher count in the digest's no-thread line, a loud failure rather than a silent one, so it is left as is under "Trust Boundaries and Hardening Effort".

Closes on promotion: none. The finding was raised on #3667 and has no issue of its own.

🤖 Generated with Claude Code

ptr727 and others added 2 commits October 30, 2026 10:17
A Copilot file table's Findings cell counted one finding however many
it named, so a second finding in the same cell went uncounted. Each
`[Pn]` marker in a cell now counts, and a non-empty cell carrying none
still counts once, so the count never drops below what it was.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 30, 2026 17:25
@coderabbitai

coderabbitai Bot commented Oct 30, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ptr727

ptr727 commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head a455d825eb89af6042ab92f0cf6afbda1cfcbf20, the content this pull request carries at that commit against develop, and it recorded 0 findings.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The review evidence identifies no active issues in the updated parsing logic, regression coverage, configuration, or documentation.

No open issues 🎉

What changed in this PR

Updates Copilot findings parsing so multiple severity markers in a single file-table cell are counted individually, preventing findings from being omitted during triage.

Changes:

  • Adds reviewer vocabulary support for table finding markers.
  • Counts each [P#] marker in Copilot Findings cells while preserving one count for markerless cells.
  • Adds regression coverage for multiple markers in one cell.
  • Documents the updated counting behavior.
File Description
tests/​test_pr_review_copilot.py Verifies that multiple markers and markerless cells are counted correctly.
scripts/​reviewers/​qodo.json Adds an empty marker pattern for schema consistency.
scripts/​reviewers/​copilot.json Defines Copilot’s severity-marker pattern.
scripts/​reviewers/​coderabbit.json Adds an empty marker pattern for schema consistency.
scripts/​pr_review_copilot.py Compiles the marker pattern and counts findings per marker.

Review effort: Lite

@codecov

codecov Bot commented Oct 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.72%. Comparing base (1a42d34) to head (a455d82).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #3669   +/-   ##
========================================
  Coverage    81.72%   81.72%           
========================================
  Files           27       27           
  Lines         9126     9128    +2     
========================================
+ Hits          7458     7460    +2     
  Misses        1668     1668           
Flag Coverage Δ
python-3.13 81.72% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ptr727
ptr727 merged commit 346f0ba into develop Oct 30, 2026
14 checks passed
@ptr727
ptr727 deleted the fix/findings-cell-count branch October 30, 2026 18:03
ptr727 added a commit that referenced this pull request Oct 30, 2026
…Session Prompt Rules (#3667)

Promotes the changes merged into `develop` since promotion #3636 to
`main`.

- [#3640](#3640) Pins the
validator's `uvx ruff` to a Dependabot-managed manifest.
- [#3642](#3642) Counts
Copilot findings under the unresolved bullet and the file table.
- [#3644](#3644) Aligns
the split comment copies and drops the stale counts.
- [#3646](#3646) Sends a
command meant for the session's input line in a plain message, never in
a blocking prompt.
- [#3648](#3648) Opens the
attended session by cloning a hub checkout of the session's own.
- [#3650](#3650) Reads a
held package as installed in both Linux host scripts.
- [#3652](#3652) States
the PowerShell `-Help` and `-h` form in the command-line argument rules.
- [#3654](#3654) Counts
sentences in Markdown table cells for the sentence-length check.
- [#3658](#3658) Splits a
table row only at an unescaped pipe in the semicolon rule.
- [#3660](#3660) Finds
table cell boundaries before blanking code spans and quotations.
- [#3662](#3662) Names a
stale job record on a completed run in `pr_review.py`.
- [#3665](#3665) Keeps a
line holding code after a block comment's closer out of `comment-added`.
Its squash commit on `develop` carries the pull request's original
title, which names a heredoc reading. That reading was withdrawn before
the merge on decision #3666, so a workflow `run:` heredoc body still
reads as code.
- [#3669](#3669) Counts
each `[Pn]` marker in a Copilot Findings cell, so a second finding in
one cell is no longer dropped from triage. It answers one of the two
findings Copilot raised on this promotion. The other is declined with a
parser probe in its thread.

Closes #3616
Closes #3610
Closes #3622
Closes #3638
Closes #3604
Closes #3511
Closes #3602
Closes #3456
Closes #3655
Closes #3657
Closes #3362
Closes #1664

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants