fix(pr-advisor): simplify E2E output and review guidance - #6832
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (9)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe PR consolidates trusted E2E recommendations into capped Recommended and Optional sections, renames credential-free evidence to changed-test evidence, updates advisor comment and prompt contracts, and replaces fork E2E exception resolution with approved credentialed-E2E skip recording. ChangesPR Review Advisor
Fork credentialed-E2E skip flow
Guidance and policy
Estimated code review effort: 4 (Complex) | ~45 minutes Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage remains at 96%, unchanged from the TypeScript / code-coverage/cliThe overall coverage in the Show a code coverage summary of the most impacted files.
Updated |
PR Review Advisor — InformationalAdvisor assessment: Informational / high confidence Model lanes
Nemotron is a non-blocking second opinion. Its prose, findings, and E2E guidance do not change the primary assessment above and remain in workflow artifacts only. E2E guidanceAdvisory only: coverage and selector recommendations are non-authoritative. E2E / PR Gate independently computes and dispatches trusted jobs without consuming this output. Recommended coverage:
This is an automated, non-authoritative review. Findings are inputs to maintainer adjudication. Warnings and optional suggestions do not require a response or follow-up. A human maintainer makes the final merge decision. |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
tools/pr-review-advisor/analyze.mts (1)
2636-2636: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winShare the E2E render limit constant
tools/pr-review-advisor/analyze.mtshardcodes20when truncating E2E IDs, whiletools/pr-review-advisor/comment.mtsalready usesE2E_RENDER_LIMIT = 20. Reuse the shared constant here so the two summaries can’t drift.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tools/pr-review-advisor/analyze.mts` at line 2636, Replace the hardcoded 20 in the required-ID truncation loop within the E2E analysis flow with the existing shared E2E_RENDER_LIMIT constant from comment.mts, importing or reusing it through the established module boundary so both summaries use the same limit.Source: Path instructions
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tools/pr-review-advisor/comment.mts`:
- Line 514: Update the required E2E rendering around renderE2eIds(requiredE2e)
to surface when requiredE2e exceeds E2E_RENDER_LIMIT, matching the optional
section’s compactCount behavior. Preserve the existing truncated ID display
while appending a clear overflow/total indication so reviewers cannot mistake
the truncated list for the complete required set.
---
Nitpick comments:
In `@tools/pr-review-advisor/analyze.mts`:
- Line 2636: Replace the hardcoded 20 in the required-ID truncation loop within
the E2E analysis flow with the existing shared E2E_RENDER_LIMIT constant from
comment.mts, importing or reusing it through the established module boundary so
both summaries use the same limit.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: e2dd4f8f-c0c4-4c61-9ea3-d453ff0aaeb9
📒 Files selected for processing (6)
test/pr-review-advisor-comment-cli.test.tstest/pr-review-advisor-security-boundaries.test.tstest/pr-review-advisor.test.tstools/pr-review-advisor/README.mdtools/pr-review-advisor/analyze.mtstools/pr-review-advisor/comment.mts
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@test/pr-review-advisor-comment-cli.test.ts`:
- Around line 23-42: Strengthen the test in “reports required E2E
recommendations that do not fit” by asserting the first E2E_RENDER_LIMIT trusted
IDs are rendered in the required E2E output and the overflow ID is absent. Use
boundary-aware matching so duplicated or substring-matching IDs cannot satisfy
the assertions, while retaining the existing overflow and tag-count checks.
In `@tools/advisors/e2e-recommendations.mts`:
- Line 18: Make E2E_RENDER_LIMIT in e2e-recommendations.mts the single exported
source of truth. Remove the duplicate declarations from analyze.mts and
comment.mts, import the canonical value there, and update their usages to
preserve consistent summary and comment limits.
In `@tools/pr-review-advisor/README.md`:
- Around line 159-160: Update the overflow documentation near renderE2eDetails
to match the current optional-list rendering behavior: either document that only
required IDs explicitly report hidden counts, or change the optional rendering
to expose its hidden count consistently. Preserve duplicate suppression and the
existing display-limit behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 7caf1932-e414-40f8-b524-9631b58af058
📒 Files selected for processing (5)
test/pr-review-advisor-comment-cli.test.tstools/advisors/e2e-recommendations.mtstools/pr-review-advisor/README.mdtools/pr-review-advisor/analyze.mtstools/pr-review-advisor/comment.mts
🚧 Files skipped from review as they are similar to previous changes (2)
- tools/pr-review-advisor/analyze.mts
- tools/pr-review-advisor/comment.mts
There was a problem hiding this comment.
🧹 Nitpick comments (1)
tools/pr-review-advisor/analyze.mts (1)
2629-2661: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueReuse the shared E2E dedupe helper.
combinedE2eIds()inanalyze.mtsanduniqueE2eIds()incomment.mtsboth do the sameSet-based final dedupe after their own filtering. Exporting and reusinguniqueStrings()fromtools/advisors/e2e-recommendations.mtswould keep the two renderers from drifting.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tools/pr-review-advisor/analyze.mts` around lines 2629 - 2661, Update combinedE2eIds() to reuse the shared uniqueStrings() helper from e2e-recommendations.mts instead of performing its own Set-based deduplication, exporting the helper if needed. Preserve the existing ordering and combined target/coverage inputs, and align comment.mts uniqueE2eIds() with the same shared helper.Source: Path instructions
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@tools/pr-review-advisor/analyze.mts`:
- Around line 2629-2661: Update combinedE2eIds() to reuse the shared
uniqueStrings() helper from e2e-recommendations.mts instead of performing its
own Set-based deduplication, exporting the helper if needed. Preserve the
existing ordering and combined target/coverage inputs, and align comment.mts
uniqueE2eIds() with the same shared helper.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 216cba5d-1ba3-415f-8ec6-f6f8bedd9a54
📒 Files selected for processing (21)
.agents/skills/_shared/pr-follow-up.md.agents/skills/nemoclaw-contributor-create-pr/SKILL.md.agents/skills/nemoclaw-contributor-update-dependencies/SKILL.md.agents/skills/nemoclaw-contributor-update-dependencies/references/release-ledger.md.agents/skills/nemoclaw-contributor-update-dependencies/scripts/collect-release-ledger.py.agents/skills/nemoclaw-contributor-update-docs/SKILL.md.agents/skills/nemoclaw-maintainer-cut-release-tag/SKILL.md.agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md.agents/skills/nemoclaw-maintainer-day/SALVAGE-PR.md.agents/skills/nemoclaw-maintainer-day/SKILL.md.agents/skills/nemoclaw-maintainer-pr-comparator/SKILL.md.agents/skills/nemoclaw-maintainer-pr-comparator/repo-policy.md.agents/skills/nemoclaw-maintainer-security-code-review/SKILL.md.github/PULL_REQUEST_TEMPLATE.md.github/workflows/pr-review-advisor.yamltest/pr-review-advisor-comment-cli.test.tstest/pr-review-advisor-ledger-tools.test.tstest/pr-review-advisor.test.tstools/pr-review-advisor/README.mdtools/pr-review-advisor/analyze.mtstools/pr-review-advisor/comment.mts
🚧 Files skipped from review as they are similar to previous changes (1)
- test/pr-review-advisor-comment-cli.test.ts
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.agents/skills/nemoclaw-contributor-update-dependencies/SKILL.md:
- Around line 18-20: Remove the duplicated “the” at the boundary between the
adjacent sentences in the contributor workflow guidance, so the text reads
“record the evidence and downstream gate.”
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 6fdf9cb3-39a9-44a6-af62-ad25d3aebd1f
📒 Files selected for processing (54)
.agents/skills/_shared/git-github-hard-stop.md.agents/skills/nemoclaw-contributor-create-pr/SKILL.md.agents/skills/nemoclaw-contributor-onboard-messaging-channel/SKILL.md.agents/skills/nemoclaw-contributor-update-dependencies/SKILL.md.agents/skills/nemoclaw-contributor-update-dependencies/references/contract-audit.md.agents/skills/nemoclaw-contributor-update-dependencies/references/release-ledger.md.agents/skills/nemoclaw-contributor-update-dependencies/scripts/collect-release-ledger.py.agents/skills/nemoclaw-maintainer-cross-issue-sweep/relationship-rules.md.agents/skills/nemoclaw-maintainer-cross-issue-sweep/scripts/search-candidate-issues.sh.agents/skills/nemoclaw-maintainer-cut-release-tag/SKILL.md.agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md.agents/skills/nemoclaw-maintainer-day/PR-REVIEW-PRIORITIES.md.agents/skills/nemoclaw-maintainer-evening/SKILL.md.agents/skills/nemoclaw-maintainer-policies/references/daily-flow.md.agents/skills/nemoclaw-maintainer-policies/references/label-taxonomy.md.agents/skills/nemoclaw-maintainer-policies/references/project-workflow.md.agents/skills/nemoclaw-maintainer-policies/references/release-train.md.agents/skills/nemoclaw-maintainer-policies/references/triage-instructions.md.agents/skills/nemoclaw-maintainer-pr-comparator/SKILL.md.agents/skills/nemoclaw-maintainer-release-notes/SKILL.md.agents/skills/nemoclaw-maintainer-triage/SKILL.md.agents/skills/nemoclaw-maintainer-verify-stale/SKILL.md.agents/skills/nemoclaw-maintainer-verify-stale/reference/brev-provisioning.md.agents/skills/nemoclaw-maintainer-verify-stale/reference/by-design.md.agents/skills/nemoclaw-maintainer-verify-stale/reference/candidate-selection.md.agents/skills/nemoclaw-maintainer-verify-stale/reference/reproduction-rubrics.md.agents/skills/nemoclaw-maintainer-verify-stale/reference/scoring-comments-and-logging.md.agents/skills/nemoclaw-user-guide/SKILL.md.github/PULL_REQUEST_TEMPLATE.md.github/workflows/pr-review-advisor.yamlAGENTS.mdCONTRIBUTING.mdci/onboard-performance-budget.jsonci/source-shape-test-budget.jsonskills/nemoclaw-user-guide/SKILL.mdtest/advisor-session-runner.test.tstest/dependency-upgrade-skill.test.tstest/e2e-recommendations.test.tstest/maintainer-skills-policy.test.tstest/onboard-performance-config-schema.test.tstest/pr-e2e-gate-exceptions.test.tstest/pr-review-advisor-provenance.test.tstest/pr-review-advisor-security-boundaries.test.tstest/pr-review-advisor-test-depth.test.tstest/pr-review-advisor-turns.test.tstest/pr-review-advisor-workflow-boundary.test.tstest/pr-review-advisor.test.tstools/advisors/e2e-recommendations.mtstools/advisors/turn-protocol.mtstools/pr-review-advisor/README.mdtools/pr-review-advisor/analyze.mtstools/pr-review-advisor/comment.mtstools/pr-review-advisor/schema.jsontools/pr-review-advisor/workflow-boundary.mts
🚧 Files skipped from review as they are similar to previous changes (7)
- .github/PULL_REQUEST_TEMPLATE.md
- .agents/skills/nemoclaw-maintainer-pr-comparator/SKILL.md
- .agents/skills/nemoclaw-contributor-update-dependencies/references/release-ledger.md
- test/pr-review-advisor-security-boundaries.test.ts
- tools/pr-review-advisor/README.md
- test/pr-review-advisor.test.ts
- tools/pr-review-advisor/comment.mts
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
<!-- markdownlint-disable MD041 --> ## Summary The PR Review Advisor should block material codebase-design defects without sending authors through review-driven growth loops. This change keeps the evidence and anti-noise safeguards from #6682 and #6832, makes maintainability defects first-class blockers, and requires simplicity feedback to point toward a smaller complete source-and-test design. ## Changes - Define duplicated authority, unnecessary machinery, repeated setup, widened dependencies, unrelated churn, and unsupported product scope as present design defects when checked-in evidence supports a behavior-preserving reduction. - Require blocker severity when the advisor expects author action before merge. Keep warnings optional only when maintainers can reasonably accept the current design without author action. - Require an unnecessary-complexity finding to name its reduction case across source and tests. Prefer a negative total line delta; permit a line-neutral result only for a material reduction in owners, concepts, invalid combinations, or dependency width. - Reject net-new helpers, registries, configuration surfaces, compatibility layers, fallbacks, migrations, test frameworks, and parallel fixture owners as simplification remedies unless current consumers adopt them and the complete change removes more structure than it adds. - Preserve semantic regression coverage while allowing duplicated fixtures, matrices, assertions, and test owners to be consolidated. - Keep follow-on findings grounded in current code, scope ownership findings to checked-in duplication, and classify merge-order-only redundancy as superseded or a limitation. - Keep a prior design root cause stable when a review response adds machinery instead of creating a serial chain of architecture findings. - Apply the same deletion and consolidation questions in the shared code-change considerations and the issue implementation skill so agents optimize the design before publication. - Add prompt, shared-guidance, and skill contract coverage for the new direction and retained anti-noise rules. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [x] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [ ] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: - Station profile/scenario: - Result: - Supporting evidence: ## Verification - [x] PR description includes a `Signed-off-by:` line and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run validate:pr` passed after refreshing `origin/main` when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — `npm exec -- vitest run test/code-change-considerations.test.ts test/pr-review-advisor-writing-guides.test.ts test/pr-review-advisor-context.test.ts test/skills-frontmatter.test.ts` (82 passed); `npm run test:changed` (growth guardrails: 32 passed; no changed CLI, plugin, or E2E-support tests) - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) - [ ] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new doc pages only) --- Signed-off-by: Julie Yaunches <jyaunches@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Improvements** * Review guidance now more consistently identifies material design, security, authorization, scope, duplication, and complexity issues as blockers when supported by evidence. * Simplification recommendations favor reducing source and test complexity, avoiding added mechanisms and unsupported future-use justifications. * Checks better distinguish current defects from hypothetical risks, resolved behavior, and non-actionable concerns. * Terminology reviews and retry handling now provide clearer, more reliable outcomes. * **Documentation** * Clarified expectations for documenting reductions, line changes, preserved regression coverage, ownership evidence, and independent follow-on risks. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Summary
The PR advisor showed the same E2E jobs as recommended coverage and recommended selectors. Its output and maintainer guidance also used modifiers that did not change the meaning. This change shows each E2E job once and uses plain, consistent language across the advisor and skills. The fork maintainer path now states explicitly that approval records a credentialed-E2E skip: fork code does not run with repository secrets, and skipped jobs are never described as passing.
Changes
Recommended E2Elist and oneOptional E2Elist in comments and summaries while keeping coverage and selector data separate in JSON.Blocker,Warning, andSuggestionconsistently, with shorter next-action, footer, prompt, and model-lane wording.comprehensive,thorough,exact, andexactlyfrom skills, contributor guidance, and the advisor.exactHeadCredentialFreeTeststochangedCredentialFreeTests; the evidence still binds each changed test to the analyzed head SHA.exact-headterminology withhead,PR head, orcurrent headwhere the sentence needs that distinction.Type of Change
Quality Gates
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailablenpm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result:npm run docsbuilds without warnings (doc changes only)Signed-off-by: Carlos Villela cvillela@nvidia.com
Summary by CodeRabbit