Skip to content

docs(contributing): adopt technical English profile - #7263

Merged
cv merged 7 commits into
mainfrom
codex/technical-english-profile
Jul 20, 2026
Merged

docs(contributing): adopt technical English profile#7263
cv merged 7 commits into
mainfrom
codex/technical-english-profile

Conversation

@cv

@cv cv commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds a NemoClaw technical-English profile based on ASD-STE100 Issue 9 without claiming full compliance. It simplifies 40 PR-related skill files, standardizes PR SHA terms in E2E messages and documentation, and starts a 30-day non-blocking changed-text pilot. It also repins platform prompt assets after the DGX Station guidance rewrite.

Changes

  • Add writing rules, a project word list, and 20 rewrite examples for comments, test titles, PR discussion, release entries, and Announcements.
  • Apply the pilot to changed contributor guidance, agent guidance, user documentation, PR text, tests, and release communication.
  • Simplify maintainer and contributor skills while preserving gate behavior and policy values.
  • Rename the comparator evidence field to ci_green_sha and update its tests.
  • Replace redundant revision phrases with PR SHA, base SHA, or the referenced SHA across E2E messages, tests, workflows, and review documents.
  • Repin all platform prompt-asset URLs to the content commit and update the DGX Station SHA-256 value.

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:
  • 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: Terminology-only E2E changes preserve conditions and values; 129 control-plane tests pass. The independent skill and documentation reviews found no behavior change.
  • 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: Not applicable; scripts/prepare-dgx-station-host.sh is unchanged.
  • Station profile/scenario: Not applicable.
  • Result: Not applicable.
  • Supporting evidence: Not applicable.

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 check:diff passed when hooks were skipped or unavailable
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — 357 tests pass:
    • 79 skill, frontmatter, comparator, and compliance tests.
    • 95 gate-evidence tests.
    • 37 calibration and ratchet tests.
    • 129 E2E control-plane tests.
    • 17 starter-prompt and pinned-asset tests.
  • Applicable broad gate passed — Not applicable; this diff does not change broad runtime behavior, the test harness, or repository-wide validation.
  • 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) — Build passed. Fern reported two unrelated warnings: the unauthenticated redirect check and the existing light-mode contrast ratio.
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Signed-off-by: Carlos Villela cvillela@nvidia.com

Summary by CodeRabbit

  • Documentation
    • Updated contributor/maintainer workflow guides (PR creation, monitoring, triage, security review, release notes, merge-gate) and skill/policy references.
    • Expanded NemoClaw Technical English and tightened changed-text pilot language-handling.
    • Strengthened Git/GitHub “hard stop” access-error guardrails and clarified policy/label taxonomy rules.
  • Enhancements
    • Standardized E2E/CI gating terminology around PR SHA + base SHA pairs, including evidence, coordination, and stale-result messaging.
  • Tests
    • Updated fixtures/assertions for new gate key ci_green_sha, verdict rendering expectations, and revised PR/base SHA wording.

cv added 2 commits July 20, 2026 12:40
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv cv added area: docs Documentation, examples, guides, or docs build area: skills Skills, agent behaviors, prompts, or skill packaging labels Jul 20, 2026
@cv cv self-assigned this Jul 20, 2026
@github-actions

Copy link
Copy Markdown
Contributor

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: dbe68675-19b6-4085-a06f-e644d7435f15

📥 Commits

Reviewing files that changed from the base of the PR and between bcfe4eb and 17d2944.

📒 Files selected for processing (5)
  • .github/PULL_REQUEST_TEMPLATE.md
  • AGENTS.md
  • docs/resources/prompt-assets/dgx-station.md
  • docs/resources/starter-prompt.md
  • test/starter-prompt-docs.test.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • .github/PULL_REQUEST_TEMPLATE.md
  • AGENTS.md
  • test/starter-prompt-docs.test.ts

📝 Walkthrough

Walkthrough

This PR revises NemoClaw workflow policies, maintainer and contributor skill instructions, PR comparator contracts, E2E gate terminology, Technical English guidance, supporting documentation, tests, and pinned prompt-asset references.

Changes

Workflow and policy guidance

Layer / File(s) Summary
Shared and contributor workflows
.agents/skills/_shared/*, .agents/skills/nemoclaw-contributor-*
Hard-stop rules, PR creation checks, DCO and commit verification requirements, validation, template handling, and follow-up guidance were revised.
Cross-issue review workflow
.agents/skills/nemoclaw-maintainer-cross-issue-sweep/*
Fingerprint extraction, relationship evidence, confidence filtering, repository policy, and report examples were updated.
Maintainer-day workflows and policy package
.agents/skills/nemoclaw-maintainer-day/*, .agents/skills/nemoclaw-maintainer-policies/*, .agents/skills/nemoclaw-maintainer-triage/*
Merge gates, salvage, security sweeps, sequencing, authorization, labeling, release handling, triage, state schema, and review priorities were restructured.

PR comparison and E2E coordination

Layer / File(s) Summary
PR comparator contracts
.agents/skills/nemoclaw-maintainer-pr-comparator/*, test/pr-comparator-render-verdict.test.ts
Comparator gates now use ci_green_sha; verdict rendering, evidence requirements, degraded-mode outputs, and ranking rules were revised.
PR/base-SHA E2E coordination
tools/e2e/*, .github/workflows/*, test/e2e/*, test/pr-e2e-gate*.test.ts, test/pr-e2e-required.test.ts
Gate identity, validation, retry and terminal-state messages, workflow labels, authorization inputs, and tests now use PR SHA/base SHA terminology.
Writing and supporting contracts
AGENTS.md, CONTRIBUTING.md, .github/PULL_REQUEST_TEMPLATE.md, docs/*, ci/*, test/*, tools/pr-review-advisor/README.md
Technical English guidance, release and security documentation, calibration naming, prompt-asset pins, and PR-SHA evidence wording were updated.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

Suggested labels: chore

Suggested reviewers: miyoungc

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately summarizes the main change: adopting the technical English profile in contributing docs.
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.
✨ 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/technical-english-profile

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

@github-code-quality

github-code-quality Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit 17d2944 in the codex/technical-engl... branch remains at 96%, unchanged from commit fc2fde7 in the main branch.


Updated July 20, 2026 21:35 UTC

@cv
cv requested a review from miyoungc July 20, 2026 19:51
@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — Informational

Advisor assessment: Informational / high confidence
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions
Status: No actionable findings remain in the canonical review ledger.

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Model comparison: normalized findings match; normalized E2E selections differ; severity counts match.

Nemotron output stays in workflow artifacts and does not change the assessment above.

E2E guidance

Advisory only. E2E / PR Gate selects and runs jobs independently.

Recommended E2E: cloud-onboard, credential-sanitization, security-posture

2 optional E2E recommendations
  • bootstrap-install-smoke
  • onboard-negative-paths

Workflow run details

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

@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: 14

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
tools/e2e/pr-e2e-required.mts (1)

139-150: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Make the validation error cover all rejected identity fields.

The predicate also rejects a wrong PR number or a non-open PR, but the message mentions only the head/base SHA pair. A closed PR can therefore be reported as a SHA mismatch.

Proposed fix
-    throw new Error("PR no longer matches the PR SHA and base SHA observed by this job");
+    throw new Error(
+      "PR is not the expected open PR with the observed head SHA and base SHA",
+    );
🤖 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/e2e/pr-e2e-required.mts` around lines 139 - 150, Update the error
message in validatePullRequest so it accurately covers every rejected identity
condition: PR number, open state, head SHA, and base SHA. Keep the existing
validation predicate and success behavior unchanged.
🤖 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-create-pr/SKILL.md:
- Around line 254-258: Update the draft PR creation guidance to require
completion of Step 4 and reuse the completed trusted body file, including the
Signed-off-by declaration and commit-verification results, instead of allowing
an inline --body value. Keep draft creation behind the same compliance gates as
the standard gh pr create flow.

In
@.agents/skills/nemoclaw-maintainer-cross-issue-sweep/checks/relationship-judgment.md:
- Around line 16-22: Update the judgment prompt in relationship judgment logic
to render the declared first five candidate-issue comments through a
{candidate_comments} section. Ensure the prompt actually includes the candidate
comments for model evaluation, while preserving the existing model-input
contract and post-classification reverse-link behavior.

In @.agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md:
- Around line 177-181: Update the manual fallback flow at
.agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md lines 177-181 to perform a
final fail-closed recheck of PR open status, PR SHA, base SHA, and coordination
identity before recording success. Apply the same terminal recheck to the
authorized control-plane flow at
.agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md lines 217-230 before any
result reaches terminal success; preserve the existing result-recording
requirements.

In @.agents/skills/nemoclaw-maintainer-day/SALVAGE-PR.md:
- Around line 77-90: Update the “Fork PRs” push guidance to branch on
headRepository: for PRs whose head repository is NVIDIA/NemoClaw, allow pushing
to the corresponding origin branch; for fork PRs, retain the maintainerCanModify
check and push to the fork’s head repository and headRefName. Remove the blanket
prohibition on origin and clearly preserve the no-push behavior when fork
modification is unavailable.

In @.agents/skills/nemoclaw-maintainer-day/SEQUENCE-WORK.md:
- Around line 34-37: Update the general ranking near “Use repo priorities” in
.agents/skills/nemoclaw-maintainer-day/SEQUENCE-WORK.md:34-37 to explicitly
state that identified security concerns override the default backlog-first
ordering. Leave the authoritative security-priority rule in
.agents/skills/nemoclaw-maintainer-day/SECURITY-SWEEP.md:60-64 unchanged.

In @.agents/skills/nemoclaw-maintainer-day/STATE-SCHEMA.md:
- Around line 61-62: Update the history retention guidance in STATE-SCHEMA.md to
say “Keep at most 50 entries,” matching the 50-entry limit enforced by state.ts
and preserving the instruction to remove oldest entries first.

In
@.agents/skills/nemoclaw-maintainer-policies/references/triage-instructions.md:
- Around line 152-153: Clarify the label mutation policy around labels_to_add
and labels_to_remove: without workflow authorization, outputs must be dry-run
only and perform no label writes; when authorized, agent-owned mutations may add
or remove only agt:* labels. Keep label creation and deletion subject to the
same authorization gate.

In
@.agents/skills/nemoclaw-maintainer-pr-comparator/checks/tier-1-correctness.md:
- Around line 87-93: Update the contents entry for check 1.6 to use the renamed
heading “Mock boundaries” instead of “Mocking purity,” keeping it synchronized
with the corresponding section heading.

In @.agents/skills/nemoclaw-maintainer-pr-comparator/SKILL.md:
- Around line 102-105: The comparator contract and renderer validation are
inconsistent: happy mode must require a winner, degraded mode must
deterministically select no winner, and salvage output must be rendered per PR.
Update .agents/skills/nemoclaw-maintainer-pr-comparator/SKILL.md lines 102-105
and .agents/skills/nemoclaw-maintainer-pr-comparator/tiebreakers.md lines 40-51
to define and enforce distance-to-ready ordering, require winner
eligibility/output rules in render-verdict.py, and render the required per-PR
salvage steps; keep closest_to_ready restricted to open, contributor-compliant
PRs.

In @.agents/skills/nemoclaw-maintainer-security-code-review/SKILL.md:
- Line 172: Update the security review stopping rule in the draft-review
guidance: do not stop solely when a draft lacks application code. Continue
inspecting all changed security surfaces, including Dockerfiles, workflows,
network policies, blueprints, dependencies, and security configuration; stop
only when no changed or reviewable security surface exists.
- Around line 3-4: Update the skill’s input handling and workflow so it either
accepts only pull-request URLs or resolves ordinary issue URLs to their
associated pull request before Step 2. Ensure the subsequent gh pr checkout and
gh pr view calls receive a verified pull-request number, and reject unsupported
issues without proceeding.

In @.agents/skills/nemoclaw-maintainer-triage/SKILL.md:
- Around line 70-73: Update Step 4, “Apply Only the Accepted Write Set,” to
re-read and refresh the item state immediately before every write. Detect
changes to the base state, including Issue Type, Project, or labels, and stop
the ordered writes to re-present the proposal for acceptance when any change is
found; continue resolving live IDs only after the refreshed proposal is
accepted.

In `@docs/CONTRIBUTING.md`:
- Line 257: Update the Technical English profile link in the contributing
documentation to use the Fern-published route resolved through docs/index.yml
and redirects, replacing the source-relative
../CONTRIBUTING.md#nemoclaw-technical-english target. Keep the existing link
text and anchor destination semantics.

In `@test/pr-e2e-gate-fork-skip.test.ts`:
- Around line 460-462: Update the expectedError value in the “fails closed when
PR/base SHA history contains $label” test case to exactly match the message
thrown by startPrGate: “Multiple PR gate checks already exist for this PR/base
SHA pair”.

---

Outside diff comments:
In `@tools/e2e/pr-e2e-required.mts`:
- Around line 139-150: Update the error message in validatePullRequest so it
accurately covers every rejected identity condition: PR number, open state, head
SHA, and base SHA. Keep the existing validation predicate and success behavior
unchanged.
🪄 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: 01466a9d-2bd4-485f-89f9-53037f1db3dc

📥 Commits

Reviewing files that changed from the base of the PR and between 888c3d9 and cb0f560.

📒 Files selected for processing (73)
  • .agents/skills/_shared/git-github-hard-stop.md
  • .agents/skills/_shared/pr-follow-up.md
  • .agents/skills/nemoclaw-contributor-create-pr/SKILL.md
  • .agents/skills/nemoclaw-contributor-update-docs/SKILL.md
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/SKILL.md
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/checks/fingerprint-extraction.md
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/checks/relationship-judgment.md
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/relationship-rules.md
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/repo-policy.md
  • .agents/skills/nemoclaw-maintainer-cross-issue-sweep/templates/report.md
  • .agents/skills/nemoclaw-maintainer-day/HOTSPOTS.md
  • .agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md
  • .agents/skills/nemoclaw-maintainer-day/PR-REVIEW-PRIORITIES.md
  • .agents/skills/nemoclaw-maintainer-day/RISKY-AREAS.md
  • .agents/skills/nemoclaw-maintainer-day/SALVAGE-PR.md
  • .agents/skills/nemoclaw-maintainer-day/SECURITY-SWEEP.md
  • .agents/skills/nemoclaw-maintainer-day/SEQUENCE-WORK.md
  • .agents/skills/nemoclaw-maintainer-day/SKILL.md
  • .agents/skills/nemoclaw-maintainer-day/STATE-SCHEMA.md
  • .agents/skills/nemoclaw-maintainer-day/TEST-GAPS.md
  • .agents/skills/nemoclaw-maintainer-find-review-pr/SKILL.md
  • .agents/skills/nemoclaw-maintainer-policies/SKILL.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-policies/references/workflow-policy.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/SKILL.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/checks/tier-0-gates.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/checks/tier-1-correctness.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/checks/tier-2-quality.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/repo-policy.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/scripts/collect-gates.sh
  • .agents/skills/nemoclaw-maintainer-pr-comparator/scripts/render-verdict.py
  • .agents/skills/nemoclaw-maintainer-pr-comparator/templates/verdict.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/tiebreakers.md
  • .agents/skills/nemoclaw-maintainer-release-notes/SKILL.md
  • .agents/skills/nemoclaw-maintainer-security-code-review/SKILL.md
  • .agents/skills/nemoclaw-maintainer-triage/SKILL.md
  • .agents/skills/nemoclaw-skills-guide/SKILL.md
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/actions/ci-wechat-runtime-audit/audit.sh
  • .github/workflows/e2e.yaml
  • .github/workflows/pr-e2e-gate.yaml
  • AGENTS.md
  • CONTRIBUTING.md
  • ci/full-e2e-cold-path-calibration.json
  • docs/CONTRIBUTING.md
  • docs/get-started/quickstart.mdx
  • docs/resources/prompt-assets/dgx-station.md
  • docs/resources/starter-prompt.md
  • docs/security/openclaw-2026.6.10-dependency-review.md
  • docs/security/openshell-0.0.85-migration-review.md
  • test/create-require-ratchet.test.ts
  • test/e2e/README.md
  • test/e2e/docs/README.md
  • test/e2e/live/issue-6194-tui-expect.ts
  • test/onboard-performance-config-schema.test.ts
  • test/pr-comparator-render-verdict.test.ts
  • test/pr-e2e-gate-fork-skip.test.ts
  • test/pr-e2e-gate-lifecycle.test.ts
  • test/pr-e2e-gate-retry-history.test.ts
  • test/pr-e2e-gate-shards.test.ts
  • test/pr-e2e-gate-workflow.test.ts
  • test/pr-e2e-gate.test.ts
  • test/pr-e2e-required.test.ts
  • test/skills-frontmatter.test.ts
  • test/skills/check-gates-compliance.test.ts
  • test/skills/check-gates-evidence.test.ts
  • test/starter-prompt-docs.test.ts
  • tools/e2e/pr-e2e-gate.mts
  • tools/e2e/pr-e2e-required.mts
  • tools/pr-review-advisor/README.md

Comment thread .agents/skills/nemoclaw-contributor-create-pr/SKILL.md Outdated
Comment thread .agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md
Comment thread .agents/skills/nemoclaw-maintainer-day/SALVAGE-PR.md Outdated
Comment thread .agents/skills/nemoclaw-maintainer-day/SEQUENCE-WORK.md
Comment thread .agents/skills/nemoclaw-maintainer-security-code-review/SKILL.md Outdated
Comment thread .agents/skills/nemoclaw-maintainer-security-code-review/SKILL.md Outdated
Comment thread .agents/skills/nemoclaw-maintainer-triage/SKILL.md Outdated
Comment thread docs/CONTRIBUTING.md
## Style Guide

Write like you are explaining something to a colleague. Be direct, specific, and concise.
Apply the [NemoClaw Technical English profile](../CONTRIBUTING.md#nemoclaw-technical-english) to changed prose.

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.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use the published route for the Technical English profile.

../CONTRIBUTING.md#nemoclaw-technical-english is a source-relative .md link. Resolve this target through docs/index.yml and redirects, then use the Fern route instead of relying on repository layout.

As per path instructions, docs/** links must use Fern published routes rather than source-file-relative paths.

🤖 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 `@docs/CONTRIBUTING.md` at line 257, Update the Technical English profile link
in the contributing documentation to use the Fern-published route resolved
through docs/index.yml and redirects, replacing the source-relative
../CONTRIBUTING.md#nemoclaw-technical-english target. Keep the existing link
text and anchor destination semantics.

Source: Path instructions

Comment on lines +460 to +462
expectedError: "Multiple active PR gate checks exist for one PR/base SHA pair",
},
])("fails closed when exact-diff history contains $label", async ({ checks, expectedError }) => {
])("fails closed when PR/base SHA history contains $label", async ({ checks, expectedError }) => {

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.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Match the duplicate-check expectation to the controller error.

The test now expects Multiple active PR gate checks exist for one PR/base SHA pair, but startPrGate throws Multiple PR gate checks already exist for this PR/base SHA pair. This expectation will fail unless another wrapper rewrites the error.

Proposed correction
-      expectedError: "Multiple active PR gate checks exist for one PR/base SHA pair",
+      expectedError: "Multiple PR gate checks already exist for this PR/base SHA pair",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
expectedError: "Multiple active PR gate checks exist for one PR/base SHA pair",
},
])("fails closed when exact-diff history contains $label", async ({ checks, expectedError }) => {
])("fails closed when PR/base SHA history contains $label", async ({ checks, expectedError }) => {
expectedError: "Multiple PR gate checks already exist for this PR/base SHA pair",
},
])("fails closed when PR/base SHA history contains $label", async ({ checks, expectedError }) => {
🤖 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 `@test/pr-e2e-gate-fork-skip.test.ts` around lines 460 - 462, Update the
expectedError value in the “fails closed when PR/base SHA history contains
$label” test case to exactly match the message thrown by startPrGate: “Multiple
PR gate checks already exist for this PR/base SHA pair”.

Signed-off-by: Carlos Villela <cvillela@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 `@test/pr-review-advisor.test.ts`:
- Line 433: Add a negative assertion in the relevant prompt test near the
existing SSRF guidance assertion, verifying that the exact superseded
sandbox-escape instruction is absent from prompt. Keep the current positive
assertion and ensure the test proves the old guidance was removed.
🪄 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: 37cdeb76-15d9-4e92-a290-d3de51618324

📥 Commits

Reviewing files that changed from the base of the PR and between cb0f560 and ae66f71.

📒 Files selected for processing (6)
  • .agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md
  • .agents/skills/nemoclaw-maintainer-day/PR-REVIEW-PRIORITIES.md
  • .agents/skills/nemoclaw-maintainer-day/SKILL.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/SKILL.md
  • test/maintainer-skills-policy.test.ts
  • test/pr-review-advisor.test.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • .agents/skills/nemoclaw-maintainer-day/SKILL.md
  • .agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md
  • .agents/skills/nemoclaw-maintainer-pr-comparator/SKILL.md

expect(skill).toContain("Category 1: Secrets and Credentials");
expect(prompt).toContain("Trusted security review skill from main checkout");
expect(prompt).toContain("For NemoClaw PRs, check sandbox escape vectors");
expect(prompt).toContain("For NemoClaw PRs, check SSRF bypasses");

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.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Prove that the superseded guidance is removed.

This assertion only proves that the SSRF wording exists; it would still pass if the old sandbox-escape instruction remained in the prompt. Add a negative assertion for the exact superseded text.

As per path instructions, migration tests must prove the superseded path is unreachable or removed.

Suggested test update
 expect(prompt).toContain("For NemoClaw PRs, check SSRF bypasses");
+expect(prompt).not.toContain("For NemoClaw PRs, check sandbox escape vectors");
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
expect(prompt).toContain("For NemoClaw PRs, check SSRF bypasses");
expect(prompt).toContain("For NemoClaw PRs, check SSRF bypasses");
expect(prompt).not.toContain("For NemoClaw PRs, check sandbox escape vectors");
🤖 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 `@test/pr-review-advisor.test.ts` at line 433, Add a negative assertion in the
relevant prompt test near the existing SSRF guidance assertion, verifying that
the exact superseded sandbox-escape instruction is absent from prompt. Keep the
current positive assertion and ensure the test proves the old guidance was
removed.

Source: Path instructions

cv added 2 commits July 20, 2026 13:13
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@miyoungc

Copy link
Copy Markdown
Collaborator

LGTM. Good to merge after resolving the conflicts.

cv added 2 commits July 20, 2026 14:26
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv
cv merged commit 65d78ee into main Jul 20, 2026
72 of 76 checks passed
@cv
cv deleted the codex/technical-english-profile branch July 20, 2026 21:41
@jyaunches jyaunches mentioned this pull request Jul 20, 2026
22 tasks
jyaunches added a commit that referenced this pull request Jul 20, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Add the canonical `## v0.0.90` entry to `docs/changelog/2026-07-20.mdx`
before the release tag is planned.
The update also corrects the documented custom-image migration window so
the compatibility fallback that first ships in v0.0.90 remains available
until v0.0.91.

## Changes

- Add the v0.0.90 summary and detailed release bullets for managed-image
routing, provider-reset recovery, WhatsApp health reporting, and DGX
Station guidance.
- Keep the newest release first in the shared dated changelog and use
root-absolute links to the canonical OpenClaw routes.
- Correct `docs/reference/commands.mdx` to state that the legacy image
route selector remains supported through v0.0.90 and is removed in
v0.0.91.
- Release source summary:
- [#7264](#7264) ->
`docs/resources/prompt-assets/dgx-station.md`,
`docs/changelog/2026-07-20.mdx`: Record the versioned Station installer
path, Nemotron 3 Ultra 550B default, and explicit DeepSeek override.
- [#7261](#7261) ->
`docs/get-started/dgx-station-preparation.mdx`,
`docs/manage-sandboxes/recover-rebuild-sandboxes.mdx`,
`docs/changelog/2026-07-20.mdx`: Include the OpenIB, legacy recovery,
and Additional Setup documentation follow-ups.
- [#7232](#7232) ->
`docs/changelog/2026-07-20.mdx`: Document provider-reset recovery for
wrapped OpenShell attachment diagnostics.
- [#7189](#7189) ->
`docs/reference/commands.mdx`, `docs/changelog/2026-07-20.mdx`: Document
the managed-image route-selector rename and correct its one-release
migration window.
- [#7015](#7015) ->
`docs/changelog/2026-07-20.mdx`: Document corrected OpenClaw WhatsApp
health reporting.
- No additional user-facing page update is needed for
[#7193](#7193),
[#7110](#7110),
[#6783](#6783), or
[#7263](#7263) because they
change contributor governance, internal CI or release automation, or
editorial style without changing supported user behavior.
- [#7242](#7242) and
[#7225](#7225) are already
ancestors of and documented in v0.0.89, so this entry does not duplicate
them despite their stale v0.0.90 labels.

## Type of Change

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

## Quality Gates

- [ ] Tests added or updated for changed behavior
- [x] Existing tests cover changed behavior — justification:
`test/changelog-docs.test.ts` validates the dated changelog heading,
SPDX form, version order, and published links.
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs 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: Not applicable; this PR does not change
`scripts/prepare-dgx-station-host.sh` or runtime behavior.
- Station profile/scenario: Not applicable.
- Result: Not applicable.
- Supporting evidence: Not applicable.

## 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 check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run
test/changelog-docs.test.ts` (6 passed).
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: Not run; this is a focused
documentation-only change.
- [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) — passed
with 0 errors and two unrelated baseline warnings for unauthenticated
redirect checks and the existing light-mode contrast ratio.
- [x] 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 pages only)

---
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Documentation**
- Added release notes for v0.0.90 covering inference routing, credential
reset behavior, WhatsApp status detection, and DGX Station coding-agent
guidance.
- Updated custom Dockerfile guidance to document continued support for
the legacy provider argument through v0.0.90.
- Clarified that legacy declarations must be renamed to
`NEMOCLAW_INFERENCE_PROVIDER_ID` before v0.0.91.
  - Added and refreshed related documentation links.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: docs Documentation, examples, guides, or docs build area: skills Skills, agent behaviors, prompts, or skill packaging

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants