Repository navigation
Report incomplete PR descriptions before review - #2371
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces a PR description format checker to the review-coverage GitHub action, validating summary prose, verification sections, line-anchored links, and AI-related fields. Feedback on the changes highlights an issue in inspectBodyText where omitting lines inside code blocks shifts character offsets and causes false positives for verification sections containing only code. Additionally, suggestions were made to use loose equality (== null and != null) for null-or-undefined checks to comply with the repository's style guide.
| if: >- | ||
| github.event.pull_request.user.type != 'Bot' && | ||
| !endsWith(github.event.pull_request.user.login, '[bot]') && | ||
| (github.event.pull_request.author_association == 'MEMBER' || github.event.pull_request.author_association == 'OWNER') && | ||
| (github.event.pull_request.additions > 2 || github.event.pull_request.deletions > 2 || | ||
| (github.event.pull_request.additions == 2 && github.event.pull_request.deletions > 0) || | ||
| (github.event.pull_request.deletions == 2 && github.event.pull_request.additions > 0)) |
There was a problem hiding this comment.
Suggestion (non-blocking): This if: condition re-derives isTrivialChange's additions + deletions <= 2 threshold as a manual boolean decomposition (GHA expressions have no + operator), duplicating the invariant in reviewGate.mjs. Nothing ties the two together — if the threshold in isTrivialChange ever changes, this condition silently drifts out of sync and no test catches it (the workflow-shape test only checks for the author_association == 'MEMBER' substring, not the arithmetic). Consider a one-line comment here pointing at reviewGate.mjs#isTrivialChange so a future threshold change is caught, or add a test enumerating (additions, deletions) pairs asserting this expression matches isTrivialChange.
|
Reviewed; no blockers found. One non-blocking suggestion posted inline. |
Adds a report-only PR-description evaluator to the existing review-coverage workflow so substantive engineer-authored PRs expose missing structure and stale or absent current-diff links before review. The current workflow remains informational and read-only; enforcement is explicitly sequenced behind trusted execution.
For the human reviewer
pull_request_targetor equivalent base-revision workflow must host the action beforeformat_mode: enforceis credible. Reversing this choice means expanding this PR's trust boundary now; declining it leaves the check informational.Verification
node --test .github/actions/review-coverage/*.test.mjs— 83 passed, 0 failed.npx prettier --write .github/actions/review-coverage/*.mjs .github/actions/review-coverage/action.yml .github/workflows/review-coverage.ymlandnpm run lint:required— passed.npm run buildandnpm run test:unit:resources— passed; resource suite reported 1,767 passing and 22 pending.resources/auditStore.tsanchor was also verified against that live PR body.mainCLI accepted the same-head linkless regression fixture; this branch rejected it.npm run test:integration:allcompleted with 1,834 passing, 18 skipped, 3 unrelated runtime failures, and 7 cancellations under the failing QA-720 startup arm.npm run test:unit:mainwas blocked by an existing deploy-by-reference fixture requiring a remote branch and a lingering process-group harness; neither gate touches.githubcode.Complexity: complicated
Review-Coverage: authored=codex; ran=claude,gemini; declined=cursor-grok,cursor-composer,domain; rounds=7 @ 5e56d86
Human-Review-Need: 3 @ 5e56d86