Skip to content

docs: Ensure wheel readme files are suitable for pypi.org - #76

Merged
rapids-bot[bot] merged 6 commits into
NVIDIA:mainfrom
dagardner-nv:david-pypi-readme
Jul 16, 2026
Merged

docs: Ensure wheel readme files are suitable for pypi.org#76
rapids-bot[bot] merged 6 commits into
NVIDIA:mainfrom
dagardner-nv:david-pypi-readme

Conversation

@dagardner-nv

@dagardner-nv dagardner-nv commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Overview

  • Create a new pypi.md file, leaving the current README.md remains the Github landing page
  • Remove build instructions

Where should the reviewer start?

Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)

  • Closes FABRIC-91

  • I confirm this contribution is my own work, or I have the right to submit it under this project's license.

  • I searched existing issues and open pull requests, and this does not duplicate existing work.

Summary by CodeRabbit

  • Documentation
    • Added a PyPI package overview with installation options, supported Python versions, core concepts, and helpful links.
    • Updated adapter documentation with streamlined pip install instructions for standalone and runtime-enabled setups.
    • Added dedicated testing guides for Claude and Codex adapters, covering unit, mock, and optional live integration tests.
    • Clarified Hermes adapter behavior and updated Relay observability guidance.
    • Updated package metadata to use the new PyPI description.

…pypi.org

Signed-off-by: David Gardner <dagardner@nvidia.com>
…s the github landing doc

Signed-off-by: David Gardner <dagardner@nvidia.com>
@dagardner-nv
dagardner-nv requested a review from a team as a code owner July 16, 2026 15:39
@linear

linear Bot commented Jul 16, 2026

Copy link
Copy Markdown

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown

Review Change Stack

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 691274bc-dcf7-406b-98bf-94495f397ada

📥 Commits

Reviewing files that changed from the base of the PR and between 26b2d89 and c0a23c6.

📒 Files selected for processing (5)
  • adapters/claude/README.md
  • adapters/claude/testing.md
  • adapters/codex/README.md
  • adapters/codex/testing.md
  • pyproject.toml
📜 Recent review details
⏰ Context from checks skipped due to timeout. (12)
  • GitHub Check: Build and publish docs
  • GitHub Check: Test (Python 3.11, arm64)
  • GitHub Check: Test (Python 3.12, x86_64)
  • GitHub Check: Test (Python 3.14, x86_64)
  • GitHub Check: Test (Python 3.12, arm64)
  • GitHub Check: Test (Python 3.13, arm64)
  • GitHub Check: Test (Python 3.14, arm64)
  • GitHub Check: Test (Python 3.11, x86_64)
  • GitHub Check: Test (Python 3.13, x86_64)
  • GitHub Check: Build wheels (arm64)
  • GitHub Check: Build wheels (x86_64)
  • GitHub Check: Pre-commit
🧰 Additional context used
📓 Path-based instructions (18)
**/*.{md,mdx,html}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Changes affecting public behavior, adapters, examples, or workspace structure must update the corresponding documentation; public API changes require updated SDK or API reference documentation.

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

For docs site changes, run just docs to regenerate Python and Rust API references and validate Fern configuration.

**/*.{md,mdx}: Prioritize factual accuracy in NeMo Fabric documentation and keep commands, package names, APIs, file paths, repository layout, entry points, support claims, examples, and procedures aligned with current repository behavior.
Update relevant entry-point documentation when public behavior changes, including README.md, docs/index.yml, package or crate READMEs, and adapter or integration READMEs.
Use {/* ... */} delimiters for top-of-file SPDX comments in MDX files, not HTML comment delimiters.
Capitalize NVIDIA correctly and use consistent current repository terminology, product names, APIs, and feature names.
Format commands, code, expressions, file names, paths, and filenames as inline code where appropriate.
Use title case for technical-documentation headings.
Introduce code blocks, tables, and lists with complete lead-in sentences.
Use descriptive link text instead of raw URLs or generic labels such as here.
Write procedures as short, imperative, parallel, easy-to-scan steps; prefer active voice, present tense, plain English, and concise sentences.
Use after instead of once when expressing temporal sequence, and use can instead of may when describing possibility rather than permission.
Use unambiguous date formats and avoid ordinal dates in body text.
When reviewing documentation, report findings in severity order under Must fix, Should fix, and Nice to have, with file paths, line references, explanations, and concrete rewrites or directions.

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
**/*

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*: All source files must include the specified SPDX copyright and Apache-2.0 license header using the comment syntax appropriate to the file type.
Release tags must use raw Rust-compatible SemVer without a leading v, such as 0.1.0 or 0.1.0-rc.1.

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Keep pull request branch scope coherent and reviewable.
Run relevant tests under validate-change before opening or updating a pull request.
Format changed files with the language-native formatter.
Update documentation and examples for public behavior changes.
Update dependent maintainer or consumer guidance when code changes affect APIs, bindings, commands, paths, packaging guidance, or best practices.
Use Conventional Commit style for pull request titles: <type>: <concise imperative summary>, choosing the type from the actual change surface. Use fix only for user-facing or runtime product-code bug fixes.
A pull request body must include #### Overview, #### Details, #### Validation, #### Where should the reviewer start?, and `#### Related ...

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
  • pyproject.toml
**/*.{html,md}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

HTML and Markdown files must use the specified SPDX header in an HTML comment.

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Verify README and documentation entry points, package names, paths, examples, and public commands remain current after changes.

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
{adapters/**,examples/**}

⚙️ CodeRabbit configuration file

{adapters/**,examples/**}: Review adapter and example changes for command correctness, config/schema consistency, artifact handling, and compatibility with the public Fabric contracts.

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
**/README.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update an adapter or example README.md when that adapter or example surface changes.

Files:

  • adapters/codex/README.md
  • adapters/claude/README.md
**/*.{rs,toml}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*.{rs,toml}: Rust code must be formatted with cargo fmt --all; formatting can be checked with cargo fmt --all -- --check, and Rust workspaces must compile with cargo check --workspace --locked.
Rust files must begin with the specified // SPDX copyright and Apache-2.0 license header.

When Rust code or Rust project configuration changes, run cargo fmt --all -- --check and just test-rust.

Files:

  • pyproject.toml
**/*.{toml,yaml,yml,sh,bash}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

TOML, YAML, and shell files must use the specified SPDX header with # comments.

Files:

  • pyproject.toml
{Cargo.toml,pyproject.toml,python/pyproject.toml,python/src/nemo_fabric/**}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

{Cargo.toml,pyproject.toml,python/pyproject.toml,python/src/nemo_fabric/**}: Keep Rust package names, Python package/import paths, and native module names internally consistent across Cargo and Python packaging metadata and source paths.
Ensure generated native and Python artifacts are placed where downstream consumers expect them.

Files:

  • pyproject.toml
{Cargo.toml,pyproject.toml,python/pyproject.toml,Cargo.lock,uv.lock}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Keep workspace, Rust, Python, and lockfile versions aligned where required.

Files:

  • pyproject.toml
{pyproject.toml,python/pyproject.toml,Cargo.toml,python/src/nemo_fabric/**}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

The editable maturin build must continue to produce the nemo_fabric._native extension.

Files:

  • pyproject.toml
{.github/workflows/ci_python.yml,.github/workflows/ci_rust.yml,justfile,pyproject.toml,python/pyproject.toml,Cargo.toml}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

CI workflows must reference the same package names and commands used by local build and installation workflows.

Files:

  • pyproject.toml
{Cargo.toml,Cargo.lock,pyproject.toml,python/pyproject.toml,uv.lock,docs/package.json,docs/package-lock.json}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Maintain package metadata and dependency resolution consistently across Rust, Python, documentation tooling, and their lockfiles.

Files:

  • pyproject.toml
**/pyproject.toml

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

Run just build-python to verify that all Python package metadata resolves.

Files:

  • pyproject.toml
**/*.{rs,py,pyi,toml}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

When the PyO3 bridge or package metadata changes, run just build-python and cargo check -p fabric-python --locked.

Files:

  • pyproject.toml
🪛 LanguageTool
adapters/codex/testing.md

[style] ~25-~25: The double modal “requires decoded” is nonstandard (only accepted in certain dialects). Consider “to be decoded”.
Context: .... The semantic regression also requires decoded LLM request content, a model, token usa...

(NEEDS_FIXED)

🪛 markdownlint-cli2 (0.23.0)
adapters/codex/testing.md

[warning] 26-26: Files should end with a single newline character

(MD047, single-trailing-newline)

🛑 Comments failed to post (2)
adapters/codex/README.md (1)

155-160: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Link the dedicated Codex testing guide from the README.

The PR adds adapters/codex/testing.md, but this public README has no testing section or link. Add one near the end so users can find the unit and opt-in integration commands.

🤖 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 `@adapters/codex/README.md` around lines 155 - 160, Add a testing section near
the end of the Codex README that links to the dedicated testing guide at
adapters/codex/testing.md, enabling users to find the unit and opt-in
integration commands.
adapters/codex/testing.md (1)

25-26: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix the final sentence and add the required trailing newline.

Rewrite “requires decoded LLM request content” as “requires LLM request content to be decoded,” then terminate the file with a single newline so MD047 passes.

🧰 Tools
🪛 LanguageTool

[style] ~25-~25: The double modal “requires decoded” is nonstandard (only accepted in certain dialects). Consider “to be decoded”.
Context: .... The semantic regression also requires decoded LLM request content, a model, token usa...

(NEEDS_FIXED)

🪛 markdownlint-cli2 (0.23.0)

[warning] 26-26: Files should end with a single newline character

(MD047, single-trailing-newline)

🤖 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 `@adapters/codex/testing.md` around lines 25 - 26, Update the final sentence in
testing.md to say “requires LLM request content to be decoded,” and ensure the
file ends with exactly one trailing newline so MD047 passes.

Source: Linters/SAST tools

🔇 Additional comments (8)
adapters/claude/testing.md (2)

8-18: Restore the plain default-suite command.

The section says the default suite requires no credentials, but the first command still requires FABRIC_NEMO_RELAY_COMMAND and selects real_relay_gateway. Add uv run --no-sync pytest tests/e2e/test_claude.py -q before the opt-in commands and update “The first command” accordingly.


19-23: LGTM!

pyproject.toml (2)

25-25: LGTM!

Also applies to: 41-42, 57-63, 92-92, 122-124, 130-130


138-143: 📐 Maintainability & Code Quality

Verify that Ruff’s default rules are not being disabled.

select = ["B019"] replaces Ruff’s selected rule set. If the intent is to retain the existing default E/F checks and add only B019, use extend-select = ["B019"] or restate the complete selection.

adapters/claude/README.md (2)

6-6: LGTM!

Also applies to: 12-15, 18-27


54-55: 🎯 Functional Correctness

Verify the Relay CLI installation is compatible with Claude.

cargo install nemo-relay-cli is unpinned, so it does not enforce the documented >=0.6.0,<0.7.0 range. The Codex README separately documents a pinned PR revision because the tested 0.6.0-alpha.20260716 build cannot decode SDK requests; confirm whether Claude has the same requirement and align this command with the validated release or revision. As per path instructions, adapter changes must be reviewed for command correctness, config/schema consistency, artifact handling, and compatibility with the public Fabric contracts.

Source: Path instructions

adapters/codex/README.md (1)

1-153: LGTM!

adapters/codex/testing.md (1)

1-24: LGTM!


Walkthrough

The PR adds PyPI package documentation, updates package metadata, standardizes adapter installation instructions, revises adapter READMEs, and moves Claude and Codex test guidance into dedicated testing documentation.

Changes

Documentation and Packaging

Layer / File(s) Summary
Package metadata and PyPI documentation
pypi.md, pyproject.toml
Adds the PyPI package description and points project metadata to it; optional dependency groups are reordered without changing their specifiers.
Adapter installation guidance
adapters/claude/README.md, adapters/codex/README.md, adapters/deepagents/README.md, adapters/hermes/README.md, adapters/common/README.md
Adapter READMEs now document direct nemo-fabric extra installations, updated titles and descriptions, and the revised Codex Relay workaround link.
Adapter testing instructions
adapters/claude/testing.md, adapters/codex/testing.md
Adds dedicated Claude and Codex test guidance covering mock, unit, and optional live integration runs; Claude’s former README test section is removed.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • NVIDIA/NeMo-Relay#426: Documents a Relay-related Codex delegation encryption and trace-capture mitigation referenced by the updated workaround link.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title uses a valid Conventional Commits docs prefix and accurately summarizes the PyPI README changes.
Description check ✅ Passed The overview, issue reference, and confirmations are present, but the reviewer-start section is left blank.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 10

🤖 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 `@adapters/claude/README.md`:
- Around line 14-21: Update the installation examples in the Claude adapter
README by inserting a blank line between each introductory sentence and its
following fenced command, satisfying markdownlint MD031 for both fences.

In `@adapters/claude/testing.md`:
- Around line 8-15: Add the plain default-suite command `uv run --no-sync pytest
tests/e2e/test_claude.py -q` to the testing instructions before the opt-in
integration commands, and update any accompanying wording such as “The first
command” to accurately describe the command order.

In `@adapters/codex-cli/README.md`:
- Around line 11-19: Update the installation instructions in the README by
inserting a blank line between each introductory sentence and its following
fenced command, including both Codex-only and Codex-with-runtime examples, so
the fences satisfy markdownlint MD031.

In `@adapters/common/README.md`:
- Around line 18-21: Update the NeMo Fabric installation lead-in to the complete
sentence “Alternatively, install it through the NeMo Fabric metapackage:”, and
insert a blank line before the fenced command block to satisfy markdownlint
MD031.

In `@adapters/deepagents/README.md`:
- Line 8: Update the LangChain Deep Agents link in the README description so its
displayed text is exactly “langchain-ai/deepagents,” while preserving the
existing GitHub repository URL and surrounding sentence.
- Around line 12-19: Update the installation examples in the Deep Agents adapter
README by inserting a blank line between each introductory sentence and its
following fenced command, resolving MD031 for both pip command blocks.

In `@adapters/hermes/README.md`:
- Around line 12-20: Update the Hermes adapter README by inserting a blank line
between each introductory installation sentence and its following fenced bash
command, resolving MD031 for both command blocks.

In `@pypi.md`:
- Around line 42-49: Update the Harbor and Relay integration sections in pypi.md
to use complete sentence lead-ins, specifically describing installation before
each fenced command block, and add the required blank line before both fences so
markdownlint passes.
- Around line 42-45: Update the Harbor integration installation guidance in
pypi.md to state that the harbor extra requires Python 3.12 or later, and
clarify that the documented pip command only installs Harbor on supported Python
versions. Keep the existing installation command while explicitly documenting
this version requirement.
- Around line 28-36: Update the installation guidance in pypi.md to remove the
claim that adapter extras include the core runtime. Describe [claude], [codex],
[deepagents], and [hermes] as separately installable adapter extras, and reserve
runtime-inclusion wording for commands that explicitly combine the adapter with
the runtime extra.
🪄 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: ASSERTIVE

Plan: Enterprise

Run ID: b5c80168-f5c5-4996-a979-ce080ae7d9bf

📥 Commits

Reviewing files that changed from the base of the PR and between b7530e9 and c72da42.

📒 Files selected for processing (8)
  • adapters/claude/README.md
  • adapters/claude/testing.md
  • adapters/codex-cli/README.md
  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/hermes/README.md
  • pypi.md
  • pyproject.toml
📜 Review details
⏰ Context from checks skipped due to timeout. (2)
  • GitHub Check: Test (Python 3.12, arm64)
  • GitHub Check: Build wheels (arm64)
🧰 Additional context used
📓 Path-based instructions (18)
**/*.{md,mdx,html}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Changes affecting public behavior, adapters, examples, or workspace structure must update the corresponding documentation; public API changes require updated SDK or API reference documentation.

Files:

  • adapters/common/README.md
  • pypi.md
  • adapters/deepagents/README.md
  • adapters/claude/testing.md
  • adapters/hermes/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/README.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update an adapter or example README.md when that adapter or example surface changes.

Files:

  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/hermes/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

For docs site changes, run just docs to regenerate Python and Rust API references and validate Fern configuration.

**/*.{md,mdx}: Prioritize factual accuracy in NeMo Fabric documentation and keep commands, package names, APIs, file paths, repository layout, entry points, support claims, examples, and procedures aligned with current repository behavior.
Update relevant entry-point documentation when public behavior changes, including README.md, docs/index.yml, package or crate READMEs, and adapter or integration READMEs.
Use {/* ... */} delimiters for top-of-file SPDX comments in MDX files, not HTML comment delimiters.
Capitalize NVIDIA correctly and use consistent current repository terminology, product names, APIs, and feature names.
Format commands, code, expressions, file names, paths, and filenames as inline code where appropriate.
Use title case for technical-documentation headings.
Introduce code blocks, tables, and lists with complete lead-in sentences.
Use descriptive link text instead of raw URLs or generic labels such as here.
Write procedures as short, imperative, parallel, easy-to-scan steps; prefer active voice, present tense, plain English, and concise sentences.
Use after instead of once when expressing temporal sequence, and use can instead of may when describing possibility rather than permission.
Use unambiguous date formats and avoid ordinal dates in body text.
When reviewing documentation, report findings in severity order under Must fix, Should fix, and Nice to have, with file paths, line references, explanations, and concrete rewrites or directions.

Files:

  • adapters/common/README.md
  • pypi.md
  • adapters/deepagents/README.md
  • adapters/claude/testing.md
  • adapters/hermes/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*: All source files must include the specified SPDX copyright and Apache-2.0 license header using the comment syntax appropriate to the file type.
Release tags must use raw Rust-compatible SemVer without a leading v, such as 0.1.0 or 0.1.0-rc.1.

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Keep pull request branch scope coherent and reviewable.
Run relevant tests under validate-change before opening or updating a pull request.
Format changed files with the language-native formatter.
Update documentation and examples for public behavior changes.
Update dependent maintainer or consumer guidance when code changes affect APIs, bindings, commands, paths, packaging guidance, or best practices.
Use Conventional Commit style for pull request titles: <type>: <concise imperative summary>, choosing the type from the actual change surface. Use fix only for user-facing or runtime product-code bug fixes.
A pull request body must include #### Overview, #### Details, #### Validation, #### Where should the reviewer start?, and `#### Related ...

Files:

  • adapters/common/README.md
  • pypi.md
  • pyproject.toml
  • adapters/deepagents/README.md
  • adapters/claude/testing.md
  • adapters/hermes/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*.{html,md}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

HTML and Markdown files must use the specified SPDX header in an HTML comment.

Files:

  • adapters/common/README.md
  • pypi.md
  • adapters/deepagents/README.md
  • adapters/claude/testing.md
  • adapters/hermes/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Verify README and documentation entry points, package names, paths, examples, and public commands remain current after changes.

Files:

  • adapters/common/README.md
  • pypi.md
  • adapters/deepagents/README.md
  • adapters/claude/testing.md
  • adapters/hermes/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • adapters/common/README.md
  • pypi.md
  • adapters/deepagents/README.md
  • adapters/claude/testing.md
  • adapters/hermes/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • adapters/common/README.md
  • pypi.md
  • adapters/deepagents/README.md
  • adapters/claude/testing.md
  • adapters/hermes/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
{adapters/**,examples/**}

⚙️ CodeRabbit configuration file

{adapters/**,examples/**}: Review adapter and example changes for command correctness, config/schema consistency, artifact handling, and compatibility with the public Fabric contracts.

Files:

  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/claude/testing.md
  • adapters/hermes/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*.{rs,toml}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*.{rs,toml}: Rust code must be formatted with cargo fmt --all; formatting can be checked with cargo fmt --all -- --check, and Rust workspaces must compile with cargo check --workspace --locked.
Rust files must begin with the specified // SPDX copyright and Apache-2.0 license header.

When Rust code or Rust project configuration changes, run cargo fmt --all -- --check and just test-rust.

Files:

  • pyproject.toml
**/*.{toml,yaml,yml,sh,bash}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

TOML, YAML, and shell files must use the specified SPDX header with # comments.

Files:

  • pyproject.toml
{Cargo.toml,pyproject.toml,python/pyproject.toml,python/src/nemo_fabric/**}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

{Cargo.toml,pyproject.toml,python/pyproject.toml,python/src/nemo_fabric/**}: Keep Rust package names, Python package/import paths, and native module names internally consistent across Cargo and Python packaging metadata and source paths.
Ensure generated native and Python artifacts are placed where downstream consumers expect them.

Files:

  • pyproject.toml
{Cargo.toml,pyproject.toml,python/pyproject.toml,Cargo.lock,uv.lock}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Keep workspace, Rust, Python, and lockfile versions aligned where required.

Files:

  • pyproject.toml
{pyproject.toml,python/pyproject.toml,Cargo.toml,python/src/nemo_fabric/**}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

The editable maturin build must continue to produce the nemo_fabric._native extension.

Files:

  • pyproject.toml
{.github/workflows/ci_python.yml,.github/workflows/ci_rust.yml,justfile,pyproject.toml,python/pyproject.toml,Cargo.toml}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

CI workflows must reference the same package names and commands used by local build and installation workflows.

Files:

  • pyproject.toml
{Cargo.toml,Cargo.lock,pyproject.toml,python/pyproject.toml,uv.lock,docs/package.json,docs/package-lock.json}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Maintain package metadata and dependency resolution consistently across Rust, Python, documentation tooling, and their lockfiles.

Files:

  • pyproject.toml
**/pyproject.toml

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

Run just build-python to verify that all Python package metadata resolves.

Files:

  • pyproject.toml
**/*.{rs,py,pyi,toml}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

When the PyO3 bridge or package metadata changes, run just build-python and cargo check -p fabric-python --locked.

Files:

  • pyproject.toml
🪛 markdownlint-cli2 (0.23.0)
adapters/common/README.md

[warning] 19-19: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

pypi.md

[warning] 43-43: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


[warning] 48-48: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

adapters/deepagents/README.md

[warning] 13-13: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


[warning] 18-18: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

adapters/hermes/README.md

[warning] 13-13: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


[warning] 18-18: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

adapters/claude/README.md

[warning] 15-15: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


[warning] 20-20: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

adapters/codex-cli/README.md

[warning] 18-18: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

🔇 Additional comments (9)
pypi.md (2)

1-26: LGTM!

Also applies to: 31-36, 53-65


68-70: 📐 Maintainability & Code Quality

Verify the canonical GitHub repository URL
The current link and the NeMo-Fabric references elsewhere in the repo disagree, and both public GitHub URLs return 404. Hold this link until the published owner/repository URL is settled, then update it consistently.

pyproject.toml (1)

25-25: LGTM!

Also applies to: 57-64

adapters/claude/README.md (1)

6-10: LGTM!

adapters/codex-cli/README.md (1)

6-9: LGTM!

adapters/deepagents/README.md (1)

6-7: LGTM!

Also applies to: 9-10

adapters/hermes/README.md (2)

6-8: LGTM!


12-20: 🗄️ Data Integrity & Integration

Clarify which Hermes extra end users should install.

adapters-hermes contains only nemo-fabric-adapters-hermes, while the hermes extra also includes hermes-agent. These commands therefore provide a different environment from the [hermes] guidance in pypi.md. State that Hermes Agent must be installed separately, or use the composite extra for end-user installation. (nvidia-nemo-fabric.docs.buildwithfern.com)

As per path instructions, adapter README changes must be checked for command correctness and compatibility with the public Fabric contracts.

Sources: Path instructions, MCP tools

adapters/claude/testing.md (1)

1-6: LGTM!

Comment thread adapters/claude/README.md
Comment thread adapters/claude/testing.md
Comment thread adapters/codex-cli/README.md Outdated
Comment thread adapters/common/README.md
Comment thread adapters/deepagents/README.md
Comment thread adapters/deepagents/README.md
Comment thread adapters/hermes/README.md
Comment thread pypi.md Outdated
Comment thread pypi.md
Comment thread pypi.md
@github-actions

Copy link
Copy Markdown

Signed-off-by: David Gardner <dagardner@nvidia.com>
Signed-off-by: David Gardner <dagardner@nvidia.com>
Signed-off-by: David Gardner <dagardner@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (3)
pypi.md (1)

41-52: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Introduce each integration command with a complete sentence.

Replace “Harbor integration:” and “Relay integration:” with lead-ins such as “Install the Harbor integration:” and “Install the Relay integration:”.

🤖 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 `@pypi.md` around lines 41 - 52, Update the Harbor and Relay integration
headings in the Integrations section to use complete-sentence lead-ins, such as
“Install the Harbor integration:” and “Install the Relay integration:”, while
preserving the existing pip commands.

Source: Coding guidelines

adapters/common/README.md (1)

18-22: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use “Alternatively” for the installation alternative.

Replace “Alternately through the NeMo Fabric metapackage:” with “Alternatively, install it through the NeMo Fabric metapackage:”.

🤖 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 `@adapters/common/README.md` around lines 18 - 22, Update the installation
alternative sentence in the README to use “Alternatively, install it through the
NeMo Fabric metapackage:” instead of “Alternately through the NeMo Fabric
metapackage:”, leaving the surrounding installation command unchanged.

Source: Coding guidelines

adapters/deepagents/README.md (1)

8-8: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use owner/repository text for the GitHub link.

Change [LangChain Deep Agents] to [langchain-ai/deepagents] while preserving the existing destination.

🤖 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 `@adapters/deepagents/README.md` at line 8, Update the LangChain Deep Agents
link text in the README to display “langchain-ai/deepagents” while preserving
its existing GitHub destination.

Source: Coding guidelines

🤖 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.

Duplicate comments:
In `@adapters/common/README.md`:
- Around line 18-22: Update the installation alternative sentence in the README
to use “Alternatively, install it through the NeMo Fabric metapackage:” instead
of “Alternately through the NeMo Fabric metapackage:”, leaving the surrounding
installation command unchanged.

In `@adapters/deepagents/README.md`:
- Line 8: Update the LangChain Deep Agents link text in the README to display
“langchain-ai/deepagents” while preserving its existing GitHub destination.

In `@pypi.md`:
- Around line 41-52: Update the Harbor and Relay integration headings in the
Integrations section to use complete-sentence lead-ins, such as “Install the
Harbor integration:” and “Install the Relay integration:”, while preserving the
existing pip commands.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 4372f04a-d648-41d3-9140-f815f1b99bdf

📥 Commits

Reviewing files that changed from the base of the PR and between c72da42 and 26b2d89.

📒 Files selected for processing (6)
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/hermes/README.md
  • pypi.md
📜 Review details
⏰ Context from checks skipped due to timeout. (12)
  • GitHub Check: Pre-commit
  • GitHub Check: Build wheels (arm64)
  • GitHub Check: Build wheels (x86_64)
  • GitHub Check: Test (Python 3.13, arm64)
  • GitHub Check: Test (Python 3.14, arm64)
  • GitHub Check: Test (Python 3.12, x86_64)
  • GitHub Check: Test (Python 3.13, x86_64)
  • GitHub Check: Test (Python 3.11, x86_64)
  • GitHub Check: Test (Python 3.11, arm64)
  • GitHub Check: Test (Python 3.14, x86_64)
  • GitHub Check: Test (Python 3.12, arm64)
  • GitHub Check: Build and publish docs
🧰 Additional context used
📓 Path-based instructions (9)
**/*.{md,mdx,html}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Changes affecting public behavior, adapters, examples, or workspace structure must update the corresponding documentation; public API changes require updated SDK or API reference documentation.

Files:

  • adapters/hermes/README.md
  • pypi.md
  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/README.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update an adapter or example README.md when that adapter or example surface changes.

Files:

  • adapters/hermes/README.md
  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

For docs site changes, run just docs to regenerate Python and Rust API references and validate Fern configuration.

**/*.{md,mdx}: Prioritize factual accuracy in NeMo Fabric documentation and keep commands, package names, APIs, file paths, repository layout, entry points, support claims, examples, and procedures aligned with current repository behavior.
Update relevant entry-point documentation when public behavior changes, including README.md, docs/index.yml, package or crate READMEs, and adapter or integration READMEs.
Use {/* ... */} delimiters for top-of-file SPDX comments in MDX files, not HTML comment delimiters.
Capitalize NVIDIA correctly and use consistent current repository terminology, product names, APIs, and feature names.
Format commands, code, expressions, file names, paths, and filenames as inline code where appropriate.
Use title case for technical-documentation headings.
Introduce code blocks, tables, and lists with complete lead-in sentences.
Use descriptive link text instead of raw URLs or generic labels such as here.
Write procedures as short, imperative, parallel, easy-to-scan steps; prefer active voice, present tense, plain English, and concise sentences.
Use after instead of once when expressing temporal sequence, and use can instead of may when describing possibility rather than permission.
Use unambiguous date formats and avoid ordinal dates in body text.
When reviewing documentation, report findings in severity order under Must fix, Should fix, and Nice to have, with file paths, line references, explanations, and concrete rewrites or directions.

Files:

  • adapters/hermes/README.md
  • pypi.md
  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*: All source files must include the specified SPDX copyright and Apache-2.0 license header using the comment syntax appropriate to the file type.
Release tags must use raw Rust-compatible SemVer without a leading v, such as 0.1.0 or 0.1.0-rc.1.

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Keep pull request branch scope coherent and reviewable.
Run relevant tests under validate-change before opening or updating a pull request.
Format changed files with the language-native formatter.
Update documentation and examples for public behavior changes.
Update dependent maintainer or consumer guidance when code changes affect APIs, bindings, commands, paths, packaging guidance, or best practices.
Use Conventional Commit style for pull request titles: <type>: <concise imperative summary>, choosing the type from the actual change surface. Use fix only for user-facing or runtime product-code bug fixes.
A pull request body must include #### Overview, #### Details, #### Validation, #### Where should the reviewer start?, and `#### Related ...

Files:

  • adapters/hermes/README.md
  • pypi.md
  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*.{html,md}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

HTML and Markdown files must use the specified SPDX header in an HTML comment.

Files:

  • adapters/hermes/README.md
  • pypi.md
  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Verify README and documentation entry points, package names, paths, examples, and public commands remain current after changes.

Files:

  • adapters/hermes/README.md
  • pypi.md
  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • adapters/hermes/README.md
  • pypi.md
  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • adapters/hermes/README.md
  • pypi.md
  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
{adapters/**,examples/**}

⚙️ CodeRabbit configuration file

{adapters/**,examples/**}: Review adapter and example changes for command correctness, config/schema consistency, artifact handling, and compatibility with the public Fabric contracts.

Files:

  • adapters/hermes/README.md
  • adapters/common/README.md
  • adapters/deepagents/README.md
  • adapters/claude/README.md
  • adapters/codex-cli/README.md
🔇 Additional comments (6)
pypi.md (2)

37-39: LGTM!

Also applies to: 55-57


28-35: 🎯 Functional Correctness

Different Hermes extras are intentional. pyproject.toml defines both hermes and adapters-hermes; pypi.md uses the harness-level extra, and adapters/hermes/README.md uses the adapter-only extra.

			> Likely an incorrect or invalid review comment.
adapters/claude/README.md (1)

14-24: LGTM!

adapters/codex-cli/README.md (1)

11-21: LGTM!

adapters/deepagents/README.md (1)

12-22: LGTM!

adapters/hermes/README.md (1)

12-22: LGTM!

@AjayThorve AjayThorve 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.

Looks good, some merge conflicts, once resolved, good to merge

…readme

Signed-off-by: David Gardner <dagardner@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

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

⚠️ Outside diff range comments (1)
adapters/claude/README.md (1)

214-217: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Link the new Claude testing guide from this README.

The previous Tests section was removed, but this README does not link to adapters/claude/testing.md. Add a short testing section or direct link so the public adapter landing page remains discoverable.

🤖 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 `@adapters/claude/README.md` around lines 214 - 217, Add a concise testing
section or direct link in the Claude adapter README pointing to
adapters/claude/testing.md, restoring discoverability after the previous Tests
section removal. Keep the existing resume documentation 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 `@adapters/codex/README.md`:
- Around line 155-160: Add a testing section near the end of the Codex README
that links to the dedicated testing guide at adapters/codex/testing.md, enabling
users to find the unit and opt-in integration commands.

In `@adapters/codex/testing.md`:
- Around line 25-26: Update the final sentence in testing.md to say “requires
LLM request content to be decoded,” and ensure the file ends with exactly one
trailing newline so MD047 passes.

---

Outside diff comments:
In `@adapters/claude/README.md`:
- Around line 214-217: Add a concise testing section or direct link in the
Claude adapter README pointing to adapters/claude/testing.md, restoring
discoverability after the previous Tests section removal. Keep the existing
resume documentation 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: ASSERTIVE

Plan: Enterprise

Run ID: 691274bc-dcf7-406b-98bf-94495f397ada

📥 Commits

Reviewing files that changed from the base of the PR and between 26b2d89 and c0a23c6.

📒 Files selected for processing (5)
  • adapters/claude/README.md
  • adapters/claude/testing.md
  • adapters/codex/README.md
  • adapters/codex/testing.md
  • pyproject.toml
📜 Review details
⏰ Context from checks skipped due to timeout. (12)
  • GitHub Check: Build and publish docs
  • GitHub Check: Test (Python 3.11, arm64)
  • GitHub Check: Test (Python 3.12, x86_64)
  • GitHub Check: Test (Python 3.14, x86_64)
  • GitHub Check: Test (Python 3.12, arm64)
  • GitHub Check: Test (Python 3.13, arm64)
  • GitHub Check: Test (Python 3.14, arm64)
  • GitHub Check: Test (Python 3.11, x86_64)
  • GitHub Check: Test (Python 3.13, x86_64)
  • GitHub Check: Build wheels (arm64)
  • GitHub Check: Build wheels (x86_64)
  • GitHub Check: Pre-commit
🧰 Additional context used
📓 Path-based instructions (18)
**/*.{md,mdx,html}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Changes affecting public behavior, adapters, examples, or workspace structure must update the corresponding documentation; public API changes require updated SDK or API reference documentation.

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

For docs site changes, run just docs to regenerate Python and Rust API references and validate Fern configuration.

**/*.{md,mdx}: Prioritize factual accuracy in NeMo Fabric documentation and keep commands, package names, APIs, file paths, repository layout, entry points, support claims, examples, and procedures aligned with current repository behavior.
Update relevant entry-point documentation when public behavior changes, including README.md, docs/index.yml, package or crate READMEs, and adapter or integration READMEs.
Use {/* ... */} delimiters for top-of-file SPDX comments in MDX files, not HTML comment delimiters.
Capitalize NVIDIA correctly and use consistent current repository terminology, product names, APIs, and feature names.
Format commands, code, expressions, file names, paths, and filenames as inline code where appropriate.
Use title case for technical-documentation headings.
Introduce code blocks, tables, and lists with complete lead-in sentences.
Use descriptive link text instead of raw URLs or generic labels such as here.
Write procedures as short, imperative, parallel, easy-to-scan steps; prefer active voice, present tense, plain English, and concise sentences.
Use after instead of once when expressing temporal sequence, and use can instead of may when describing possibility rather than permission.
Use unambiguous date formats and avoid ordinal dates in body text.
When reviewing documentation, report findings in severity order under Must fix, Should fix, and Nice to have, with file paths, line references, explanations, and concrete rewrites or directions.

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
**/*

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*: All source files must include the specified SPDX copyright and Apache-2.0 license header using the comment syntax appropriate to the file type.
Release tags must use raw Rust-compatible SemVer without a leading v, such as 0.1.0 or 0.1.0-rc.1.

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Keep pull request branch scope coherent and reviewable.
Run relevant tests under validate-change before opening or updating a pull request.
Format changed files with the language-native formatter.
Update documentation and examples for public behavior changes.
Update dependent maintainer or consumer guidance when code changes affect APIs, bindings, commands, paths, packaging guidance, or best practices.
Use Conventional Commit style for pull request titles: <type>: <concise imperative summary>, choosing the type from the actual change surface. Use fix only for user-facing or runtime product-code bug fixes.
A pull request body must include #### Overview, #### Details, #### Validation, #### Where should the reviewer start?, and `#### Related ...

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
  • pyproject.toml
**/*.{html,md}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

HTML and Markdown files must use the specified SPDX header in an HTML comment.

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Verify README and documentation entry points, package names, paths, examples, and public commands remain current after changes.

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
{adapters/**,examples/**}

⚙️ CodeRabbit configuration file

{adapters/**,examples/**}: Review adapter and example changes for command correctness, config/schema consistency, artifact handling, and compatibility with the public Fabric contracts.

Files:

  • adapters/claude/testing.md
  • adapters/codex/testing.md
  • adapters/codex/README.md
  • adapters/claude/README.md
**/README.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update an adapter or example README.md when that adapter or example surface changes.

Files:

  • adapters/codex/README.md
  • adapters/claude/README.md
**/*.{rs,toml}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*.{rs,toml}: Rust code must be formatted with cargo fmt --all; formatting can be checked with cargo fmt --all -- --check, and Rust workspaces must compile with cargo check --workspace --locked.
Rust files must begin with the specified // SPDX copyright and Apache-2.0 license header.

When Rust code or Rust project configuration changes, run cargo fmt --all -- --check and just test-rust.

Files:

  • pyproject.toml
**/*.{toml,yaml,yml,sh,bash}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

TOML, YAML, and shell files must use the specified SPDX header with # comments.

Files:

  • pyproject.toml
{Cargo.toml,pyproject.toml,python/pyproject.toml,python/src/nemo_fabric/**}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

{Cargo.toml,pyproject.toml,python/pyproject.toml,python/src/nemo_fabric/**}: Keep Rust package names, Python package/import paths, and native module names internally consistent across Cargo and Python packaging metadata and source paths.
Ensure generated native and Python artifacts are placed where downstream consumers expect them.

Files:

  • pyproject.toml
{Cargo.toml,pyproject.toml,python/pyproject.toml,Cargo.lock,uv.lock}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Keep workspace, Rust, Python, and lockfile versions aligned where required.

Files:

  • pyproject.toml
{pyproject.toml,python/pyproject.toml,Cargo.toml,python/src/nemo_fabric/**}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

The editable maturin build must continue to produce the nemo_fabric._native extension.

Files:

  • pyproject.toml
{.github/workflows/ci_python.yml,.github/workflows/ci_rust.yml,justfile,pyproject.toml,python/pyproject.toml,Cargo.toml}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

CI workflows must reference the same package names and commands used by local build and installation workflows.

Files:

  • pyproject.toml
{Cargo.toml,Cargo.lock,pyproject.toml,python/pyproject.toml,uv.lock,docs/package.json,docs/package-lock.json}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Maintain package metadata and dependency resolution consistently across Rust, Python, documentation tooling, and their lockfiles.

Files:

  • pyproject.toml
**/pyproject.toml

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

Run just build-python to verify that all Python package metadata resolves.

Files:

  • pyproject.toml
**/*.{rs,py,pyi,toml}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

When the PyO3 bridge or package metadata changes, run just build-python and cargo check -p fabric-python --locked.

Files:

  • pyproject.toml
🪛 LanguageTool
adapters/codex/testing.md

[style] ~25-~25: The double modal “requires decoded” is nonstandard (only accepted in certain dialects). Consider “to be decoded”.
Context: .... The semantic regression also requires decoded LLM request content, a model, token usa...

(NEEDS_FIXED)

🪛 markdownlint-cli2 (0.23.0)
adapters/codex/testing.md

[warning] 26-26: Files should end with a single newline character

(MD047, single-trailing-newline)

🔇 Additional comments (8)
adapters/claude/testing.md (2)

8-18: Restore the plain default-suite command.

The section says the default suite requires no credentials, but the first command still requires FABRIC_NEMO_RELAY_COMMAND and selects real_relay_gateway. Add uv run --no-sync pytest tests/e2e/test_claude.py -q before the opt-in commands and update “The first command” accordingly.


19-23: LGTM!

pyproject.toml (2)

25-25: LGTM!

Also applies to: 41-42, 57-63, 92-92, 122-124, 130-130


138-143: 📐 Maintainability & Code Quality

Verify that Ruff’s default rules are not being disabled.

select = ["B019"] replaces Ruff’s selected rule set. If the intent is to retain the existing default E/F checks and add only B019, use extend-select = ["B019"] or restate the complete selection.

adapters/claude/README.md (2)

6-6: LGTM!

Also applies to: 12-15, 18-27


54-55: 🎯 Functional Correctness

Verify the Relay CLI installation is compatible with Claude.

cargo install nemo-relay-cli is unpinned, so it does not enforce the documented >=0.6.0,<0.7.0 range. The Codex README separately documents a pinned PR revision because the tested 0.6.0-alpha.20260716 build cannot decode SDK requests; confirm whether Claude has the same requirement and align this command with the validated release or revision. As per path instructions, adapter changes must be reviewed for command correctness, config/schema consistency, artifact handling, and compatibility with the public Fabric contracts.

Source: Path instructions

adapters/codex/README.md (1)

1-153: LGTM!

adapters/codex/testing.md (1)

1-24: LGTM!

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 2

Caution

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

⚠️ Outside diff range comments (1)
adapters/claude/README.md (1)

214-217: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Link the new Claude testing guide from this README.

The previous Tests section was removed, but this README does not link to adapters/claude/testing.md. Add a short testing section or direct link so the public adapter landing page remains discoverable.

🤖 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 `@adapters/claude/README.md` around lines 214 - 217, Add a concise testing
section or direct link in the Claude adapter README pointing to
adapters/claude/testing.md, restoring discoverability after the previous Tests
section removal. Keep the existing resume documentation 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 `@adapters/codex/README.md`:
- Around line 155-160: Add a testing section near the end of the Codex README
that links to the dedicated testing guide at adapters/codex/testing.md, enabling
users to find the unit and opt-in integration commands.

In `@adapters/codex/testing.md`:
- Around line 25-26: Update the final sentence in testing.md to say “requires
LLM request content to be decoded,” and ensure the file ends with exactly one
trailing newline so MD047 passes.

---

Outside diff comments:
In `@adapters/claude/README.md`:
- Around line 214-217: Add a concise testing section or direct link in the
Claude adapter README pointing to adapters/claude/testing.md, restoring
discoverability after the previous Tests section removal. Keep the existing
resume documentation 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: ASSERTIVE

Plan: Enterprise

Run ID: 691274bc-dcf7-406b-98bf-94495f397ada

📥 Commits

Reviewing files that changed from the base of the PR and between 26b2d89 and c0a23c6.

📒 Files selected for processing (5)
  • adapters/claude/README.md
  • adapters/claude/testing.md
  • adapters/codex/README.md
  • adapters/codex/testing.md
  • pyproject.toml
📜 Review details
🔇 Additional comments (8)
adapters/claude/testing.md (2)

8-18: Restore the plain default-suite command.

The section says the default suite requires no credentials, but the first command still requires FABRIC_NEMO_RELAY_COMMAND and selects real_relay_gateway. Add uv run --no-sync pytest tests/e2e/test_claude.py -q before the opt-in commands and update “The first command” accordingly.


19-23: LGTM!

pyproject.toml (2)

25-25: LGTM!

Also applies to: 41-42, 57-63, 92-92, 122-124, 130-130


138-143: 📐 Maintainability & Code Quality

Verify that Ruff’s default rules are not being disabled.

select = ["B019"] replaces Ruff’s selected rule set. If the intent is to retain the existing default E/F checks and add only B019, use extend-select = ["B019"] or restate the complete selection.

adapters/claude/README.md (2)

6-6: LGTM!

Also applies to: 12-15, 18-27


54-55: 🎯 Functional Correctness

Verify the Relay CLI installation is compatible with Claude.

cargo install nemo-relay-cli is unpinned, so it does not enforce the documented >=0.6.0,<0.7.0 range. The Codex README separately documents a pinned PR revision because the tested 0.6.0-alpha.20260716 build cannot decode SDK requests; confirm whether Claude has the same requirement and align this command with the validated release or revision. As per path instructions, adapter changes must be reviewed for command correctness, config/schema consistency, artifact handling, and compatibility with the public Fabric contracts.

Source: Path instructions

adapters/codex/README.md (1)

1-153: LGTM!

adapters/codex/testing.md (1)

1-24: LGTM!

🛑 Comments failed to post (2)
adapters/codex/README.md (1)

155-160: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Link the dedicated Codex testing guide from the README.

The PR adds adapters/codex/testing.md, but this public README has no testing section or link. Add one near the end so users can find the unit and opt-in integration commands.

🤖 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 `@adapters/codex/README.md` around lines 155 - 160, Add a testing section near
the end of the Codex README that links to the dedicated testing guide at
adapters/codex/testing.md, enabling users to find the unit and opt-in
integration commands.
adapters/codex/testing.md (1)

25-26: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix the final sentence and add the required trailing newline.

Rewrite “requires decoded LLM request content” as “requires LLM request content to be decoded,” then terminate the file with a single newline so MD047 passes.

🧰 Tools
🪛 LanguageTool

[style] ~25-~25: The double modal “requires decoded” is nonstandard (only accepted in certain dialects). Consider “to be decoded”.
Context: .... The semantic regression also requires decoded LLM request content, a model, token usa...

(NEEDS_FIXED)

🪛 markdownlint-cli2 (0.23.0)

[warning] 26-26: Files should end with a single newline character

(MD047, single-trailing-newline)

🤖 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 `@adapters/codex/testing.md` around lines 25 - 26, Update the final sentence in
testing.md to say “requires LLM request content to be decoded,” and ensure the
file ends with exactly one trailing newline so MD047 passes.

Source: Linters/SAST tools

@dagardner-nv

Copy link
Copy Markdown
Collaborator Author

/merge

@rapids-bot
rapids-bot Bot merged commit 48670c1 into NVIDIA:main Jul 16, 2026
17 checks passed
@dagardner-nv
dagardner-nv deleted the david-pypi-readme branch July 16, 2026 20:25
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