Skip to content

feat(skills): add continuous e2e failure-fixing loop - #8592

Open
cjagwani wants to merge 18 commits into
mainfrom
codex/nemoclaw-e2e-fix-loop
Open

feat(skills): add continuous e2e failure-fixing loop#8592
cjagwani wants to merge 18 commits into
mainfrom
codex/nemoclaw-e2e-fix-loop

Conversation

@cjagwani

@cjagwani cjagwani commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds a persistent maintainer skill for fixing failures from automatic main E2E runs. The skill replaces repeated one-off prompts with one root-cause queue, shared ownership, gated peer review, and continuous monitoring.

Changes

  • Add the nemoclaw-maintainer-fix-e2e-failures workflow and its Codex interface metadata.
  • Define root-cause ownership, exact-head review and merge decisions, obsolete-work handling, and continuity handoff requirements.
  • Add 12 routing and behavior evaluations for workflow selection and expected behavior.
  • Add concise decision examples and contents lists for progressive disclosure.
  • Remove test/maintainer-skills-policy.test.ts, the source-shape policy assertion suite, per maintainer review.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification: This changes an internal maintainer-agent workflow. It does not change a public command, configuration, default, or supported product behavior.
  • 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:

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: docs-updated
  • Evidence: Reviewed .agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md, .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/continuity-handoff.md, .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/queue-and-ownership.md, .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/review-and-merge.md, and .agents/skills/nemoclaw-skills-guide/SKILL.md. The latest change deletes only the pre-existing source-shape test file at maintainer request. It does not change skill behavior or require public documentation.
  • Agent: Codex Desktop

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit:
  • Station profile/scenario:
  • Result:
  • Supporting evidence:

Verification

  • PR description includes a Signed-off-by: line and every commit appears as Verified in GitHub
  • 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
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — command/result or justification: npx vitest run --project integration test/skills-frontmatter.test.ts test/pr-limit-policy.test.ts — 37 tests passed; npm run test:projects:check — passed with exact project membership.
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result:
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Signed-off-by: Charan Jagwani cjagwani@nvidia.com

Summary by CodeRabbit

  • New Features
    • Added a continuous workflow for monitoring end-to-end test failures, grouping root causes, coordinating fixes, and tracking ownership through review and merge.
    • Added procedures for safe handoffs, duplicate or obsolete fixes, blocked work, and uninterrupted monitoring.
    • Added the maintainer capability to the skills catalog and guide.

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
@cjagwani cjagwani self-assigned this Aug 8, 2026
@copy-pr-bot

copy-pr-bot Bot commented Aug 8, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a persistent NemoClaw maintainer skill for automatic main E2E failure triage and remediation. It defines queue ownership, evidence handling, review and merge gates, continuity handoffs, skill registration, evaluations, and policy tests.

Changes

Automatic E2E failure remediation

Layer / File(s) Summary
Persistent workflow contract
.agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md, .agents/skills/nemoclaw-maintainer-fix-e2e-failures/agents/openai.yaml, .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/continuity-handoff.md
Defines continuous scanning, root-cause queues, ownership transfer, obsolete-fix handling, protected-run rules, and agent configuration.
Root-cause ownership and evidence
.agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/queue-and-ownership.md
Defines failure grouping, redacted evidence, duplicate-claim searches, draft PR claims, active-fix states, and concurrent-claim reconciliation.
Review and merge controls
.agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/review-and-merge.md, .agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md
Defines exact-head review, ambiguous-write handling, eligible workflow approval, guarded branch refreshes, merge gates, and post-merge verification.
Skill registration and policy validation
.agents/skills/nemoclaw-maintainer-fix-e2e-failures/evals/evals.json, .agents/skills/nemoclaw-skills-guide/SKILL.md, test/maintainer-skills-policy.test.ts, test/pr-limit-policy.test.ts
Adds evaluation cases, registers the skill, updates skill counts, and validates workflow and PR-limit requirements.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant MainE2ERuns
  participant MaintainerSkill
  participant DraftFixPR
  participant ReviewAndMerge
  MainE2ERuns->>MaintainerSkill: provide changed failure runs
  MaintainerSkill->>DraftFixPR: claim one root cause with evidence
  DraftFixPR->>ReviewAndMerge: request exact-head review and merge validation
  ReviewAndMerge->>MainE2ERuns: verify later main-run evidence
Loading

Possibly related PRs

  • NVIDIA/NemoClaw#8477: Expands automatic main E2E runs and failure evidence used by this workflow.
  • NVIDIA/NemoClaw#8533: Adds related maintainer guidance for root-cause grouping, evidence collection, and review controls.

Suggested labels: area: skills, v0.0.105

Suggested reviewers: cv

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding a continuous E2E failure-fixing loop.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/nemoclaw-e2e-fix-loop

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

@github-code-quality

github-code-quality Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit 80af7ab in the codex/nemoclaw-e2e-f... branch remains at 96%, unchanged from commit 7d1c24e in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit 80af7ab in the codex/nemoclaw-e2e-f... branch remains at 81%, unchanged from commit 7d1c24e in the main branch.

Show a code coverage summary of the most impacted files.
File main 7d1c24e codex/nemoclaw-e2e-f... 80af7ab +/-
src/lib/onboard...an-lifecycle.ts 95% 79% -16%
src/lib/policy/index.ts 63% 62% -1%
src/lib/state/sandbox.ts 86% 89% +3%
src/lib/onboard...cker-journal.ts 70% 75% +5%
src/lib/onboard...ne-authority.ts 84% 91% +7%
src/lib/onboard...strap/docker.ts 64% 72% +8%
src/lib/onboard.../docker-spec.ts 65% 74% +9%
src/lib/onboard...shared-state.ts 73% 90% +17%
src/lib/state/tar-listing.ts 83% 100% +17%
src/lib/policy/...ateway-state.ts 56% 73% +17%

Updated August 09, 2026 07:56 UTC

@cjagwani
cjagwani marked this pull request as ready for review August 8, 2026 01:23
@cjagwani
cjagwani requested a review from cv August 8, 2026 01:24
@cjagwani
cjagwani enabled auto-merge (squash) August 8, 2026 01:28

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 4

🤖 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-maintainer-fix-e2e-failures/references/queue-and-ownership.md:
- Around line 53-60: Update the duplicate-claim search command in the
queue-and-ownership guidance so every gh option appears before the `--`
separator, and pass the validated run ID or query token after `--` as the
positional search term. Preserve the existing token validation and search
behavior while preventing leading-hyphen tokens from being interpreted as flags.

In
@.agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/review-and-merge.md:
- Around line 92-97: Add the trusted-checkout hard stop immediately before the
check-gates.ts command in the review-and-merge procedure: compare staged,
unstaged, and untracked execution-surface changes plus transitive code against
refreshed origin/main, and require explicit approval before running any changed
surface. Alternatively, invoke a separately reviewed trusted copy of
check-gates.ts, while preserving the existing gate-check command and its timing
before approval.
- Around line 105-119: Update the approval flow around the reviewer approval and
final merge gate: treat the pre-approval gate checks as preliminary, then after
the approval write re-read the PR state and rerun both the gate checker and
effective GitHub-rules check for the current head and base. Require these
post-approval results to pass before merging, restarting the gate if any
relevant state changed.

In @.agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md:
- Line 64: Align the diagnostic-evidence policy in both
`.agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md` lines 64-64 and
`.agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/queue-and-ownership.md`
lines 84-84: explicitly choose whether an infeasible diagnostic or regression
test blocks the fix, then state the same rule at both sites.
🪄 Autofix

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: f2d58841-ec14-4bb8-9781-92980ebab8ce

📥 Commits

Reviewing files that changed from the base of the PR and between 1c518f1 and 166894a.

📒 Files selected for processing (9)
  • .agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md
  • .agents/skills/nemoclaw-maintainer-fix-e2e-failures/agents/openai.yaml
  • .agents/skills/nemoclaw-maintainer-fix-e2e-failures/evals/evals.json
  • .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/continuity-handoff.md
  • .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/queue-and-ownership.md
  • .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/review-and-merge.md
  • .agents/skills/nemoclaw-skills-guide/SKILL.md
  • test/maintainer-skills-policy.test.ts
  • test/pr-limit-policy.test.ts

Comment thread .agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md Outdated
@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings reported

Advisor assessment: No blocking advisor findings reported
Next action: Review the warnings below.
Findings: 0 blockers · 1 warning · 0 suggestions

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 1 warning · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · medium confidence · 0 blockers · 4 warnings · 2 suggestions
  • Model comparison: normalized findings differ; normalized terminology decisions differ; normalized E2E selections differ; Nemotron reported the same number of blockers, 3 more warnings, 2 more suggestions.
1 additional E2E selection from the second opinion

Advisory only. The primary lane did not select these E2E jobs or targets.

  • skill-agent: The completed second-opinion lane identified E2E coverage that the primary lane omitted.

Second-opinion terminology and E2E selections are advisory. Live E2E does not run automatically for pull requests.

3 semantic terminology decisions

Terminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.

  • define — root-cause key at .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/queue-and-ownership.md:16: Define `root-cause key` at first use as the three-part identifier used to claim one failure cause.
  • replace — exact head at .agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md:53: Use `latest PR commit` when the PR source commit changes. Use `commit under review` for the commit whose evidence the reviewer evaluates.
  • justified — automatic main E2E at .agents/skills/nemoclaw-maintainer-fix-e2e-failures/agents/openai.yaml:7: Keep `automatic main E2E` and preserve the contrast with manual E2E dispatch and PR CI.

E2E guidance

Advisory only. A maintainer can dispatch the default E2E suite against this exact revision.

Recommended E2E: None

1 warning · 0 suggestions

Warnings

Warnings do not block.

PRA-1 Warning — Add an executable contract test for the privileged maintainer workflow

  • Location: .agents/skills/nemoclaw-maintainer-fix-e2e-failures/evals/evals.json:1
  • Category: tests
  • Problem: The PR adds instructions that authorize workflow approval, branch update, and merge, but its 12 behavior cases are data only. No checked-in test reads this skill's evaluation file or asserts its required safety rules.
  • Impact: A future edit can remove the manual-E2E exclusion, current-commit identity checks, or SHA-bound update and merge requirements without a deterministic repository test detecting the regression.
  • Recommendation: Add a focused static skill-contract test for this skill. Assert manual E2E routes to `nemoclaw-maintainer-e2e`, manual rerun and dispatch remain prohibited, fork-workflow approval checks the current PR commit, and update and merge writes bind to captured source commits.
  • Verification: Inspect `test/skills-frontmatter.test.ts` and repository test paths for a test that reads `nemoclaw-maintainer-fix-e2e-failures` or its eval fixture; none covers these rules.
  • Test coverage: A Vitest test that reads the new skill and review reference and verifies the manual-E2E exclusion, fork-approval identity requirements, and `expected_head_sha` and merge `sha` preconditions.
  • Evidence: `test/skills-frontmatter.test.ts:65-90` validates only every skill's YAML frontmatter and nonempty body. No test path in the checked-out inventory reads `.agents/skills/nemoclaw-maintainer-fix-e2e-failures/evals/evals.json` or its review reference. `.agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/review-and-merge.md:45-138` documents the privileged approval, update, and merge controls.

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>

@coderabbitai coderabbitai Bot 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.

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-maintainer-fix-e2e-failures/references/review-and-merge.md:
- Line 109: Update the final merge write in the post-approval flow to bind it to
the previously captured head SHA using the selected merge API’s head
precondition, such as match-head-commit, sha, or expectedHeadOid. If that
precondition fails, restart the final gate and do not retry through another
merge method.
🪄 Autofix

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: c2ec0c4a-962c-477e-989e-7a439321ac38

📥 Commits

Reviewing files that changed from the base of the PR and between 166894a and db4783c.

📒 Files selected for processing (4)
  • .agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md
  • .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/queue-and-ownership.md
  • .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/review-and-merge.md
  • test/maintainer-skills-policy.test.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • test/maintainer-skills-policy.test.ts
  • .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/queue-and-ownership.md
  • .agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md

cv
cv previously requested changes Aug 8, 2026

@cv cv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Review follow-up

The author resolved both requests from this review:

  • Commit d3aaf9fe3 prevents GitHub from merging a commit that the reviewer did not evaluate. The merge request includes the reviewed commit SHA and restarts the final checks if the PR branch changes.
  • Commit 0e56769a1 prohibits this workflow from changing any release, tag, or release artifact. It also routes release work to the release workflow.

The documentation writer receipt now identifies commit 0e56769a1 and lists the reviewed documentation paths.

I dismissed this changes-requested review because the author resolved its findings. Approval still requires successful required CI, or the repository-required maintainer waiver for a failed check.

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
@cv
cv dismissed their stale review August 8, 2026 02:20

Commit d3aaf9f binds the merge write to the reviewed head. Commit 0e56769 generalizes the release boundary and refreshes the documentation writer receipt with the reviewed paths. Both findings from this review are resolved. Required CI must still pass, or the PR must record the repository-required maintainer waiver, before approval.

Comment thread test/maintainer-skills-policy.test.ts Outdated

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

remove this entire test, as it's a source-shape bundle of assertions and provides almost no verification value

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Aug 8, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@cv cv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

  1. .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/review-and-merge.md:109 defines security-critical workflow approval, exact-commit review, ambiguous-write recovery, and merge gates only as prose. .agents/skills/nemoclaw-maintainer-fix-e2e-failures/evals/evals.json:1 contains declarative scenarios, but no checked-in runner or test executes them, and this PR deletes test/maintainer-skills-policy.test.ts. A later regression could permit an immediate retry after an ambiguous write, unsafe fork-workflow approval, self-approval, or a stale-commit merge without CI detecting it. Add executable scenario validation that invokes the skill evaluation path with controlled GitHub states and proves these actions remain denied. Do not replace the deleted bundle with source-shape assertions; provide failing-before and passing-after regression evidence in a Vitest project or another required executable gate.

  2. .agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md:91 and .agents/skills/nemoclaw-maintainer-fix-e2e-failures/references/continuity-handoff.md:39 define obsolete-work closure and post-merge verification, but they do not define containment or rollback when the merged fix preserves the original failure or introduces a new regression. The persistent loop can continue merging fixes while the harmful merge remains on main, with no named rollback owner, authorization boundary, or stop condition. Define the post-merge failure state and next actor. State whether the loop must open a guarded revert PR, route rollback to another maintainer workflow, or stop merge writes pending explicit authorization. Add executable scenario evidence for this path.

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.

3 participants