Skip to content

List Pre-Existing Review Findings in the PR Body Instead of Filing Them - #3401

Merged
ptr727 merged 6 commits into
developfrom
preexisting-findings-not-filed
Oct 23, 2026
Merged

ptr727 merged 6 commits into
developfrom
preexisting-findings-not-filed

Conversation

@ptr727

@ptr727 ptr727 commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

Summary

Changes the review-disposition rule so a pre-existing finding is no longer filed as its own issue.

  • pr-review-conduct "Every finding ends in a listed outcome", outcome 4, is rewritten in place. It covers a finding deferred past the pull request or found on text it did not touch, and an introduced finding deliberately left as is still takes outcome 3. The first bullet that fits decides:
    • A pre-existing finding on a canonical Markdown unit keeps the per-unit tracker, which already costs one link per unit.
    • A pre-existing correctness defect with a stated failure (it names an input or state and the wrong output or crash) is filed once, labeled pre-existing, and its line under Pre-existing findings, filed links it.
    • A style, wording, consolidation, or restatement finding on text the change did not touch is dropped: one line under Dropped findings, no decline text, no issue, no reply beyond a pointer that resolves the thread.
    • Any other pre-existing finding, local or PR-hosted, is listed under Pre-existing findings, not filed with its location and class. The body line is its outcome.
    • Any other deferral is still filed as an issue.
  • pr-review-conduct "Merge Gate" item 3 names the tracker as outcome 4's first bullet and exempts a line under any heading outcome 4 names from a second answer. "Answering a suppressed finding" gains a Listed in the body verdict.
  • local-strict-review "Disposing of Findings" points to outcome 4 instead of saying "filed once".
  • repo-config/README.md no longer says every style finding is declined, since one on untouched text is now dropped.
  • drive-pr changes only through its generated include of outcome 4, regenerated by build_dist.py, never hand-edited.

Why: over 2026-10-16 to 2026-10-23, 108 of 329 non-handoff issues filed across four fleet repositories carried pre-existing. Each one costs a lane, a pull request, and a review once worked.

Decision (ptr727, 2026-10-23) on #3391, item 2.

Verification

python3 scripts/build_dist.py --check, exit 0:

Generated skill distributions are current.

Prose gate, python3 scripts/prose_lint.py --diff origin/develop, exit 0:

scope: 13 of 378 file(s) read, 271 changed line(s), diff against 'origin/develop', gate local 5090774e

The opt-in --check sentence-length run reports hits only on base sentences listed below.

A local-strict-review pass at the frontier tier covers each push. The pass recorded and attested on head 5090774 raised no finding on text this change wrote, and the four it raised on base text are listed below.

Open introduced findings, edit budget spent

The six findings the third local pass left open on the opening push are each fixed, in c05e4d3, b4faf80, and 5090774. Four of them were also raised by Copilot, and those threads carry the fixing SHAs. None remains open.

Pre-existing findings, not filed

  • .agents/skills/pr-review-conduct/SKILL.md:162, pre-existing: the base "A carrying repository routes a finding on a verbatim unit" sentence is 70 words. A reflow moved it onto its own line.
  • .agents/skills/local-strict-review/SKILL.md:151, pre-existing: the unchanged "Unless evidence disproves it" sentence is 30 words.
  • repo-config/README.md:52, pre-existing: the unchanged first sentence is 34 words.
  • repo-config/README.md:52, pre-existing: the unchanged comments sentence is 28 words.

Follow-ups, not edited here

  • .agents/skills/drive-pr/SKILL.md lines 152-231 carry outcome 4 as a generated include, so they change with this PR through the regenerate only.
  • .agents/skills/backlog-burndown/SKILL.md lines 87 and 490 describe "the deferral issues this round's reviews filed" as the next round's ranking input. They do not restate the rule, but with pre-existing findings no longer filed, fewer such issues reach the ranking. Whether a burndown round should also read the Pre-existing findings, not filed body lists is a decision for the maintainer.
  • .agents/skills/unattended-handoff/SKILL.md: the grep found no restatement.
  • GOVERNANCE.md "Verification Discipline" (a class-sweep sibling in an untouched file "is filed rather than folded in") and "Design Before Code" (sites in untouched files are "filed as one issue naming each") still file siblings. Outcome 4 scopes them out explicitly, since a class-sweep sibling is not a finding a review raised. Whether siblings should also go to the body list is a decision for the maintainer.

🤖 Generated with Claude Code

ptr727 and others added 3 commits October 23, 2026 06:58
A pre-existing finding, from a local pass or a PR-hosted review, is
listed in the pull request body under "Pre-existing findings, not
filed" with its location and class, and no issue is filed for it. A
pre-existing correctness defect with a stated failure is the one
exception, filed once and labeled pre-existing. A style, wording,
consolidation, or restatement finding on untouched text is dropped with
one body line. The canonical-unit tracker is unchanged.

Over 2026-10-16 to 2026-10-23, 108 of 329 non-handoff issues filed
across four fleet repositories carried pre-existing, each later costing
a lane, a pull request, and a review.

Decision (ptr727, 2026-10-23) on #3391, item 2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The first bullet that fits decides, the canonical-unit tracker is
scoped to pre-existing findings, and the body list is named by its
place rather than a heading that one of its entries would contradict.
A suppressed finding gets a "Listed in the body" verdict, a body line
needs no second answer, and the class-sweep sibling keeps outcome 1's
own rule. The class-label note no longer calls every style finding
declined.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Outcome 4 covers a deferral or a finding on untouched text, leaving a
deliberate leave-as-is to outcome 3. The listed and dropped lines sit
under one named heading kept apart from the spent-budget list, and a
thread-less finding's pointer is a "Listed in the body" answer. The
tracker reads as outcome 4's first bullet, and the cost sentence keeps
its "once worked" condition.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 23, 2026 14:08
@ptr727

ptr727 commented Oct 23, 2026

Copy link
Copy Markdown
Owner Author

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

@coderabbitai

coderabbitai Bot commented Oct 23, 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.

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.

🟡 Changes recommended

Unresolved moderate and nit findings affect rule scope, body-entry placement, heading accuracy, and sentence-length compliance.

4 open issues
What changed in this PR

This pull request changes review-disposition rules so most pre-existing findings are recorded in the pull request body instead of becoming separate issues, while preserving canonical-unit tracking and issue filing for correctness defects.

Changes:

  • Updates pr-review-conduct outcome 4 and suppressed-finding handling.
  • Aligns local-strict-review, drive-pr, and repository label documentation with the new rules.
  • Regenerates the Copilot and Claude skill distributions and source digests.
  • Five unresolved findings remain: three moderate findings and two nit findings in .agents/skills/pr-review-conduct/SKILL.md and .agents/skills/local-strict-review/SKILL.md.
File Description
repo-config/​README.md Updates documentation for style-finding labels.
.github/​skills/​pr-review-conduct/​SKILL.md Generated review-disposition guidance.
.github/​skills/​local-strict-review/​SKILL.md Generated local-review disposition guidance.
.github/​skills/​drive-pr/​SKILL.md Generated drive-loop inclusion of the revised rules.
.claude-plugin/​fleet-skills/​skills/​pr-review-conduct/​SKILL.md Generated Claude review-disposition guidance.
.claude-plugin/​fleet-skills/​skills/​local-strict-review/​SKILL.md Generated Claude local-review guidance.
.claude-plugin/​fleet-skills/​skills/​drive-pr/​SKILL.md Generated Claude drive-loop guidance.
.claude-plugin/​fleet-skills/​.source-digests/​pr-review-conduct Updated source digest.
.claude-plugin/​fleet-skills/​.source-digests/​local-strict-review Updated source digest.
.claude-plugin/​fleet-skills/​.source-digests/​drive-pr Updated source digest.
.agents/​skills/​pr-review-conduct/​SKILL.md Authored review-disposition and merge-gate rules.
.agents/​skills/​local-strict-review/​SKILL.md Authored local-review disposition guidance.
.agents/​skills/​drive-pr/​SKILL.md Authored drive-loop inclusion of the revised outcome.

Review effort: Lite

@codecov

codecov Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.33%. Comparing base (20b9d16) to head (5090774).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #3401   +/-   ##
========================================
  Coverage    81.33%   81.33%           
========================================
  Files           18       18           
  Lines        10049    10049           
========================================
  Hits          8173     8173           
  Misses        1876     1876           
Flag Coverage Δ
python-3.13 81.33% <ø> (ø)

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 and others added 3 commits October 23, 2026 07:13
The outcome 3 carve-out is scoped to an introduced finding. A filed
pre-existing defect goes under "Pre-existing findings, filed" and a
dropped finding under "Dropped findings", so no style line sits under a
pre-existing heading, and the Merge Gate exempts every heading outcome 4
names. Only a reviewer's suppressed finding owes a "Listed in the body"
answer. The tracker sentence is split into short sentences.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The not-filed heading holds the fourth bullet's lines only, a filed exception's thread gets the issue link and is resolved, and a suppressed filed finding takes the Deferred verdict. A local-pass finding owes no pointer rather than nothing at all.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ptr727

ptr727 commented Oct 23, 2026

Copy link
Copy Markdown
Owner Author

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

@ptr727
ptr727 merged commit d56248a into develop Oct 23, 2026
13 checks passed
@ptr727
ptr727 deleted the preexisting-findings-not-filed branch October 23, 2026 14:48
ptr727 added a commit that referenced this pull request Oct 23, 2026
## Summary

Promotes these pull requests from develop. Each carries a maintainer
decision recorded on #3391.

- [#3399](#3399): states
the write guard's threat model and documents two shapes it keeps
allowed, a quoted run-time `-C` value and an `xargs` replace string run
as a shell script (item 1).
- [#3401](#3401): lists a
pre-existing review finding in the pull request body instead of filing
an issue for it (item 2).
- [#3402](#3402): keeps
one standing handoff issue per track, edited in place each round, with a
`close` subcommand that ends a track (item 5).
- [#3400](#3400): adds a
weekly backlog and review-cost report script.
- [#3403](#3403): runs the
Copilot review once per change, at the promotion, with the attested
local pass covering a pull request into develop (item 4).
- [#3404](#3404): aligns
the remaining review rule text with the promotion-only Copilot review
(items 2 and 4).
- [#3406](#3406): fixes
the findings this promotion's first Copilot round raised on the content
above, in the `wait` note for a head no local pass covers, the
pr-review-conduct heading, and the backlog report's label line and cost
scoping.

Closes #3382
Closes #3385

## Pre-existing findings, not filed

- The [Copilot round on
4a77a1d](#3405 (review))
headline says documentation does not consistently describe current-head
Copilot refusal handling. `local_cover` in `scripts/pr_review.py`
refuses an attested head whose current Copilot round is a refusal, and
`wait` exits `41` there. The `wait` entry of the `pr_review.py`
docstring ("An attested head is covered at once.") and the
`scripts/README.md` paragraph on the defined review moments ("Where it
is attested, `wait` polls the head's checks instead.") leave that
exception out. `pr-review-conduct` Merge Gate item 2 states it ("A
refusal is not that coverage"). Both omissions are on `main` already, so
this promotion did not introduce them.

🤖 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