docs: switch over to fern#123
Conversation
Signed-off-by: Will Killian <wkillian@nvidia.com>
WalkthroughReplaces Sphinx with Fern-based docs: converts content to MDX, adds Fern site config/components, introduces scripts to generate references (Python/Node/Rust), cleanup/sync docs-website versions, and overhauls CI to preview/publish docs via new fern-docs workflow. Updates tooling, ignores, and attribution. ChangesFern documentation migration and publishing
Estimated code review effort🎯 5 (Critical) | ⏱️ ~120 minutes Possibly related PRs
✨ Finishing Touches🧪 Generate unit tests (beta)
|
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
|
/ok to test c671afc |
There was a problem hiding this comment.
Actionable comments posted: 56
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
docs/about/concepts/subscribers.mdx (1)
79-79:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winUse standard Mermaid fence syntax for MDX.
The Mermaid code block uses
```{mermaid}syntax, but the standard MDX Mermaid fence is```mermaid(without curly braces). This inconsistency was corrected inecosystem.mdxbut remains here.📝 Proposed fix
-```{mermaid} +```mermaid🤖 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/about/concepts/subscribers.mdx` at line 79, Replace the nonstandard Mermaid fence "```{mermaid}" with the standard MDX fence "```mermaid" in the subscribers MDX content so the block starts with "```mermaid" (and keep the closing "```"); locate the Mermaid block that currently uses the "{mermaid}" fence and change it to "mermaid" to match the other files (e.g., the same correction applied in ecosystem.mdx).docs/about/release-notes/known-issues.mdx (1)
20-20: 🧹 Nitpick | 🔵 Trivial | 💤 Low valueEmpty section should have content or be removed.
The "Fixed issues from NeMo Relay 0.2:" section header has no content. Either populate it with relevant fixes or remove the empty section.
🤖 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/about/release-notes/known-issues.mdx` at line 20, The "Fixed issues from NeMo Relay 0.2:" header is empty; either populate that section with the list of resolved bugs/changes relevant to NeMo Relay 0.2 (add bullet points or paragraphs under the header) or remove the header entirely if there are no fixed items to report; update the section that contains the exact header text "Fixed issues from NeMo Relay 0.2:" accordingly so the document no longer contains an empty section.
🤖 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 @.github/ci-path-filters.yml:
- Around line 111-125: The docs path filter is missing the 'docs/**' pattern so
changes under docs can skip the docs CI; update the docs block in the CI path
filters to include 'docs/**' alongside 'README.md' and 'CONTRIBUTING.md' (i.e.,
ensure the docs triggers contain the set {docs/**, README.md, CONTRIBUTING.md})
so the docs site build (just docs) runs for changes under the docs directory.
In @.github/workflows/ci_docs.yml:
- Around line 71-76: The reusable workflow ci_docs
(./.github/workflows/ci_docs.yml) expects FERN_TOKEN via env but the caller job
ci_docs in .github/workflows/ci.yaml does not forward secrets; update the caller
job named "ci_docs" to pass the secret into the reusable workflow by adding a
secrets mapping that maps DOCS_FERN_TOKEN to ${{ secrets.DOCS_FERN_TOKEN }} so
the FERN_TOKEN env in ci_docs.yml can be populated at runtime.
In @.github/workflows/fern-docs.yml:
- Around line 279-284: The current change-detection uses only git diff --quiet
and git diff --cached --quiet so it misses untracked files; update the
conditional that sets has_changes (the if block writing to GITHUB_OUTPUT) to
also detect untracked files by checking git ls-files --others --exclude-standard
or using git status --porcelain --untracked-files=all and treat any non-empty
output as changes, so newly generated/untracked docs cause has_changes=true and
the publish step runs.
- Around line 326-333: The workflow uses untrusted inputs by assigning tag="${{
inputs.tag }}" directly (Determine version tag) which allows command
substitution; instead pass the input through the environment and read it from a
quoted shell variable (e.g., use an env var like INPUT_TAG and assign
tag="$INPUT_TAG") so the value is not re-interpreted by the shell, then validate
tag with the existing SemVer regex; also update the docs-change detection (Check
for docs website changes) to detect untracked new files by replacing the current
git diff checks with a git status --porcelain (or git ls-files --others
--exclude-standard) based test to set has_changes so newly generated
files/directories are caught.
In `@ATTRIBUTIONS-Node.md`:
- Around line 17577-17583: The fern-api entry uses a nonstandard license
identifier and URL; replace the license identifier "Apache*" with "Apache-2.0"
and update the license URL to "https://spdx.org/licenses/Apache-2.0.html" for
the fern-api block (the stanza containing "## fern-api - 5.37.0" and the lines
with "License Type(s):" and "License:"); then regenerate the attributions file
using the project's attribution generation tool/command so the format is
standardized consistently rather than hand-editing individual lines.
- Around line 6533-6738: The ATTRIBUTIONS-Node.md entry for "`@boundaryml/baml` -
0.219.0" declares "License Type(s): MIT" but contains Apache-2.0 text;
regenerate the attributions so the documented license text matches the declared
type by running the attribution generator (./scripts/generate_attributions.sh
node) and confirm the `@boundaryml/baml` block in ATTRIBUTIONS-Node.md now
contains the MIT license text (or, if the package is actually Apache-2.0, update
the "License Type(s)" to "Apache-2.0" before regenerating).
In `@docs/about/concepts/scopes.mdx`:
- Around line 6-7: The SPDX header in the MDX file uses JSX comment syntax ({/*
... */}); replace that with the HTML/Markdown SPDX comment format by converting
the existing JSX-style header token (the line containing SPDX-FileCopyrightText
and SPDX-License-Identifier) into an HTML comment like <!--
SPDX-FileCopyrightText: ... SPDX-License-Identifier: ... --> so the header
follows the guideline for .md/.mdx files.
In `@docs/about/concepts/subscribers.mdx`:
- Around line 6-7: Replace the JSX-style comment block at the top of the MDX
file with an HTML-style SPDX header: remove the {/* ... */} wrapper and add an
HTML comment like <!-- SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA
CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier:
Apache-2.0 --> so the SPDX header in docs/about/concepts/subscribers.mdx follows
the required <!-- ... --> format for .md/.mdx files.
In `@docs/about/ecosystem.mdx`:
- Around line 6-7: Replace the current SPDX block comment in the MDX file with
an HTML-style SPDX comment: change the multiline JS/TS block comment starting
with "/* SPDX-FileCopyrightText" to an HTML comment of the form "<!--
SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All
rights reserved. SPDX-License-Identifier: Apache-2.0 -->" so the SPDX header in
docs/about/ecosystem.mdx follows the guideline for **/*.md and .mdx files.
In `@docs/about/overview.mdx`:
- Around line 6-7: Replace the current block-style SPDX header in
docs/about/overview.mdx with an HTML comment-style SPDX header expected for
MDX/Markdown files: change the existing C-style comment block (the lines
starting with {/* and ending with */}) to a single or multi-line HTML comment
using <!-- SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION &
AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 --> so the
file uses the required <!-- ... --> format for SPDX headers in .md/.mdx/.html
files.
- Line 20: The sentence "Under the NeMo Relay scope stack and middleware, the
scoped execution path is referred to as work." disrupts the paragraph flow; move
that sentence out of the current paragraph and either (a) add it as its own
short paragraph immediately after the introductory paragraph so the term "work"
is defined cleanly, or (b) relocate it into the project glossary/terminology
section and replace the original occurrence with a short cross‑reference; update
surrounding sentences in the original paragraph to ensure a smooth conclusion.
In `@docs/about/release-notes/highlights.mdx`:
- Around line 6-7: Replace the C-style block SPDX header with an HTML-style
comment for MDX/Markdown files: change the existing block "/*
SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All
rights reserved. SPDX-License-Identifier: Apache-2.0 */" to use HTML comment
syntax like "<!-- SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION
& AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 -->" so
the SPDX metadata follows the repository guideline for .md/.mdx files.
In `@docs/about/release-notes/index.mdx`:
- Around line 6-7: The SPDX header at the top of the MDX file uses a JS/TS block
comment style instead of the required HTML/Markdown comment format; replace the
current block that contains "SPDX-FileCopyrightText" and
"SPDX-License-Identifier" with an HTML comment-style SPDX header (<!--
SPDX-FileCopyrightText: ... --> and <!-- SPDX-License-Identifier: ... -->) so
the license markers follow the guideline for .md/.mdx files and are recognized
by tooling.
In `@docs/about/release-notes/known-issues.mdx`:
- Around line 6-7: Replace the C-style block SPDX header with an HTML comment in
the MDX file: change the current "/* SPDX-FileCopyrightText: Copyright (c) 2026,
NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier:
Apache-2.0 */" block to an HTML-style SPDX header using "<!--
SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All
rights reserved. SPDX-License-Identifier: Apache-2.0 -->" so the SPDX header
follows the Markdown/MDX guideline for HTML comment format.
In `@docs/about/release-notes/related-topics.mdx`:
- Around line 6-7: Replace the current C-style block comment SPDX header (`/*
SPDX-FileCopyrightText: ... SPDX-License-Identifier: ... */`) at the top of the
MDX file with an HTML/Markdown style SPDX header using HTML comments: `<!--
SPDX-FileCopyrightText: ... SPDX-License-Identifier: ... -->`; ensure both the
CopyrightText and SPDX-License-Identifier entries are preserved and placed in a
single HTML comment line at the top of related-topics.mdx (replace the existing
block shown in the diff).
In `@docs/build-plugins/plugin-configuration-files.mdx`:
- Around line 267-270: Update the four broken links in the plugin configuration
list: change the "Observability Configuration" link target to
/plugins/observability/configuration, change "Adaptive Configuration" to
/plugins/adaptive/configuration, change "Adaptive Cache Governor (ACG)" to
/plugins/adaptive/acg, and change "Adaptive Hints" to
/plugins/adaptive/adaptive-hints so they match the actual files referenced by
those link texts.
In `@docs/getting-started/agent-runtime-primer.mdx`:
- Around line 99-107: Update the three broken internal links in
agent-runtime-primer.mdx: change the Integrate link from
/integrate-into-frameworks/about to /integrate-frameworks/about, change the
Observability link from /observability-plugin/about to
/plugins/observability/about, and change the Adaptive link from
/adaptive-plugin/about to /plugins/adaptive/about; after editing the link
targets in the file, run just docs-linkcheck to verify no remaining 404s.
In `@docs/getting-started/quick-start/index.mdx`:
- Around line 6-7: Replace the JSX-style comment block currently used for the
SPDX header with an HTML comment so the MDX parser and linters recognize it;
locate the existing `{/* SPDX-FileCopyrightText: ... SPDX-License-Identifier:
... */}` block in docs/getting-started/quick-start/index.mdx and change it to
the HTML comment form `<!-- SPDX-FileCopyrightText: ... SPDX-License-Identifier:
... -->`.
In `@docs/getting-started/quick-start/nodejs.mdx`:
- Line 19: Replace the informal "dev" in the sentence "Use this path when you
want the published package for application dev." with the full phrase
"application development" to make the documentation explicit; edit the line in
docs/getting-started/quick-start/nodejs.mdx so it reads "Use this path when you
want the published package for application development."
- Around line 6-7: The SPDX header is using JSX comment syntax ({/* ... */})
instead of the required HTML comment format for MDX; replace the existing JSX
comment block that begins with "SPDX-FileCopyrightText" with an HTML comment
like <!-- SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION &
AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 --> so the
file uses the correct <!-- ... --> SPDX header format for MDX/Markdown.
- Line 35: Replace the abbreviated phrase "local source dev" with the full term
"local source development" in the documentation string so it reads "This path is
for local source development when you need to build the binding from the
repository checkout."; ensure any other occurrences of "local source dev" in
this document are updated to the expanded form for consistency.
In `@docs/getting-started/quick-start/python.mdx`:
- Line 20: Replace the abbreviation "application dev" with the full phrase
"application development" in the documentation text (the sentence containing
"Use this path when you want the published package for application dev.") so the
line reads "Use this path when you want the published package for application
development." Ensure any other instances of "app dev" or "dev" in the same
document are similarly expanded to "development" for consistency.
- Around line 6-7: Replace the JSX-style comment SPDX header with an HTML
comment in the MDX file: locate the existing JSX header comment block (the
multiline comment starting with {/* SPDX-FileCopyrightText ...) and change it to
the HTML SPDX format <!-- SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA
CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier:
Apache-2.0 --> so the file follows the required MDX/HTML SPDX header convention.
In `@docs/getting-started/quick-start/rust.mdx`:
- Around line 6-7: Replace the JSX-style comment SPDX header currently in the
MDX file with an HTML comment; specifically update the existing comment block
that begins with "SPDX-FileCopyrightText" so it uses <!--
SPDX-FileCopyrightText: ... --> (HTML comment) format instead of {/* ... */} so
the file conforms to the MDX/HTML SPDX header guideline.
In `@docs/instrument-applications/about.mdx`:
- Around line 6-7: Replace the JSX/JavaScript comment style SPDX header
currently used (the block starting with "SPDX-FileCopyrightText: Copyright (c)
2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0") with an HTML comment-style SPDX header;
specifically change the comment delimiters from the JSX form {/* ... */} to the
HTML/MDX form <!-- ... --> so the SPDX header is written as an HTML comment in
the about.mdx content.
In `@docs/instrument-applications/adding-scopes-and-marks.mdx`:
- Around line 6-7: Replace the JSX/JS comment style header with an HTML comment
SPDX header: change the current block starting with {/* SPDX-FileCopyrightText:
... */} to use <!-- SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA
CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier:
Apache-2.0 --> so the MDX file's top-level SPDX header follows the required HTML
comment format used by the MDX linter and the project's rule for .html/.md/.mdx
files.
In `@docs/instrument-applications/advanced-guide.mdx`:
- Around line 6-7: Replace the JSX-style SPDX comment block {/*
SPDX-FileCopyrightText: ... SPDX-License-Identifier: ... */} with an HTML
comment using the required MDX/header format, i.e., change the comment
surrounding the SPDX lines to <!-- SPDX-FileCopyrightText: ... --> and include
the SPDX-License-Identifier inside that HTML comment so the MDX file
advanced-guide.mdx uses the correct HTML comment SPDX header format expected by
the linting rule.
In `@docs/instrument-applications/code-examples.mdx`:
- Around line 6-7: The SPDX header at the top of the MDX file uses JSX comment
syntax ("{/* SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION &
AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 */}") which
violates the MDX guideline; replace that JSX comment with an HTML comment using
the exact SPDX format: <!-- SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA
CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier:
Apache-2.0 --> so the header appears as a proper HTML/Markdown comment in
docs/instrument-applications/code-examples.mdx.
In `@docs/instrument-applications/instrument-llm-call.mdx`:
- Around line 6-7: Replace the current brace-style SPDX header with an HTML
comment SPDX header in the MDX file: change the existing block starting with
"{/* SPDX-FileCopyrightText: ... */}" to use the HTML comment format "<!--
SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All
rights reserved. SPDX-License-Identifier: Apache-2.0 -->" so the file
(instrument-llm-call.mdx) conforms to the `<!-- ... -->` SPDX header guideline
for .md/.mdx files.
In `@docs/instrument-applications/instrument-tool-call.mdx`:
- Around line 6-7: Replace the current C-style block SPDX header with an HTML
comment SPDX header: change the opening/closing block comment around the SPDX
lines to use <!-- ... --> so the top of the MDX file contains an HTML-style SPDX
header (e.g., <!-- SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA
CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier:
Apache-2.0 -->) to match the coding guideline for .md/.mdx files and ensure
tools that parse MDX see the license metadata; update the existing header text
in this file accordingly.
In `@docs/integrate-frameworks/about.mdx`:
- Around line 6-7: Replace the current C-style comment SPDX header with an HTML
comment at the top of the MDX file: locate the existing block that starts with
"/* SPDX-FileCopyrightText" and ends with "SPDX-License-Identifier: Apache-2.0
*/" and change it to the HTML comment form "<!-- SPDX-FileCopyrightText: ...
SPDX-License-Identifier: Apache-2.0 -->" so the SPDX header follows the MDX/HTML
guideline.
In `@docs/integrate-frameworks/adding-scopes.mdx`:
- Around line 6-7: Replace the current C-style block comment SPDX header (the
text starting with "SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA
CORPORATION & AFFILIATES. All rights reserved." and "SPDX-License-Identifier:
Apache-2.0") with an HTML comment SPDX header using <!-- ... --> syntax so the
header is valid in MDX/Markdown; keep the exact SPDX texts and order but wrap
them in an HTML comment instead of the existing /* ... */ block.
In `@docs/integrate-frameworks/code-examples.mdx`:
- Around line 6-7: Replace the existing block comment SPDX header with an HTML
comment SPDX header per MDX guidelines: locate the SPDX header block (the
multi-line comment starting with SPDX-FileCopyrightText and
SPDX-License-Identifier) and change its delimiters to an HTML comment (<!-- ...
-->) so the header appears as a single HTML-commented SPDX header in the MDX
file; keep the same SPDX-FileCopyrightText and SPDX-License-Identifier content
unchanged.
In `@docs/integrate-frameworks/non-serializable-data.mdx`:
- Around line 6-7: The SPDX header currently uses JS/JSX block comment syntax
({/* SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION &
AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 */}) which
violates the MDX/HTML guideline; replace that entire block with an HTML comment
using the SPDX text, i.e. <!-- SPDX-FileCopyrightText: Copyright (c) 2026,
NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier:
Apache-2.0 --> so the MDX file uses the required HTML/Markdown SPDX header
format.
In `@docs/integrate-frameworks/provider-codecs.mdx`:
- Around line 6-7: Replace the block comment SPDX header with an HTML
comment-style SPDX header: locate the existing SPDX block containing
"SPDX-FileCopyrightText" and "SPDX-License-Identifier" and change it to use <!--
... --> HTML comment syntax (e.g., <!-- SPDX-FileCopyrightText: ...
SPDX-License-Identifier: ... -->) so the MDX file follows the repository's SPDX
header guideline.
In `@docs/integrate-frameworks/provider-response-codecs.mdx`:
- Around line 6-7: The SPDX header in provider-response-codecs.mdx is currently
using a JSX/JS comment block ({/* ... */}); replace it with an HTML/MDX comment
using <!-- SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION &
AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 --> so the
file header conforms to the required HTML comment SPDX format for .md/.mdx
files; update the top-of-file comment accordingly wherever the JSX-style comment
appears.
In `@docs/integrate-frameworks/using-codecs.mdx`:
- Around line 6-7: Replace the JSX-style comment containing the SPDX header at
the top of the MDX file with an HTML comment; specifically change the current
block that looks like a JSX comment ({/* ... */}) to an HTML comment (<!-- ...
-->) so the SPDX header is written as <!-- SPDX-FileCopyrightText: ...
SPDX-License-Identifier: ... --> to satisfy the repository policy for MDX/HTML
files.
In `@docs/integrate-frameworks/wrap-llm-calls.mdx`:
- Around line 6-7: The SPDX header block is written using JSX/JS comment syntax
{/* ... */} instead of the required HTML comment style for MDX; replace the
existing JSX-style SPDX block with an HTML-style comment using <!--
SPDX-FileCopyrightText: ... SPDX-License-Identifier: ... --> so the file
(wrap-llm-calls.mdx) uses the correct <!-- ... --> format for SPDX headers.
In `@docs/integrate-frameworks/wrap-tool-calls.mdx`:
- Around line 6-7: Replace the JSX-style SPDX comment block ("{/* ... */}" shown
at the top of the MDX file) with an HTML-style SPDX header using <!-- ... -->
format so the MDX file follows the repo guideline that files matching
**/*.{html,md,mdx} include SPDX headers as HTML comments; simply convert the
existing JSX comment into an equivalent HTML comment containing the same SPDX
lines.
In `@docs/integrations/about.mdx`:
- Around line 6-7: Replace the JSX-style SPDX block comment {/* ... */} in the
MDX file with an HTML comment header <!-- ... --> so the SPDX header is
recognized in plain MDX/Markdown; locate the existing SPDX block (the text
starting with SPDX-FileCopyrightText and SPDX-License-Identifier) and convert it
to the HTML comment form, preserving the exact SPDX text and ordering.
In `@docs/integrations/deepagents.mdx`:
- Around line 7-8: Replace the JSX-style SPDX comment block currently written as
{/* ... */} with an HTML-style comment using <!-- ... --> so the MDX file's SPDX
header follows the repo guideline for MD/MDX files; locate the existing SPDX
block in docs/integrations/deepagents.mdx (the comment surrounding the
SPDX-License-Identifier and CopyrightText) and convert it to an HTML comment
preserving the exact SPDX content and formatting.
In `@docs/integrations/langchain.mdx`:
- Around line 7-8: Replace the JSX-style SPDX block comment currently written as
{/* ... */} in docs/integrations/langchain.mdx with an HTML-style comment using
<!-- ... --> so the SPDX metadata follows the repository MDX requirement; update
the existing SPDX text content exactly but enclosed in <!-- and --> instead of
{/* and */} to satisfy the rule for **/*.{html,md,mdx} SPDX headers.
In `@docs/integrations/langgraph.mdx`:
- Around line 7-8: Replace the JSX-style SPDX comment block {/*
SPDX-FileCopyrightText: ... SPDX-License-Identifier: ... */} with an HTML
comment block using <!-- SPDX-FileCopyrightText: ... SPDX-License-Identifier:
... --> so the MDX file uses the required HTML-style SPDX header; locate the
existing SPDX text in docs/integrations/langgraph.mdx and wrap the exact SPDX
lines in <!-- and --> instead of {/* and */}.
In `@docs/resources/glossary.mdx`:
- Around line 222-223: Replace the non-standard phrase "when middleware needs
normalized request or response semantics" with standard English; update the
sentence in docs/resources/glossary.mdx (the "provider adapter" definition) to
read something like "Provider adapters often use codecs when middleware needs a
normalized request or response" or "Provider adapters often use codecs when
middleware needs the request or response to be normalized" so the grammar is
correct.
In `@docs/resources/legal/index.mdx`:
- Line 9: Update the sentence in docs/resources/legal/index.mdx so the compound
adjective is hyphenated: change the phrase "Use these pages for open source
software attribution and license information." to "Use these pages for
open-source software attribution and license information." ensuring only the
hyphenation of "open-source" is applied and no other text is altered.
In `@fern/components/Authors.tsx`:
- Around line 39-40: The component uses array index as the React key in the map
over validAuthors which can break identity when the list is reordered or
mutated; update the key to a stable identifier by using the corresponding id
from the ids array (use ids[validAuthors.indexOf(author)]) or add a stable id
property to each author object and use author.id as the key; locate the map over
validAuthors in Authors.tsx (the JSX using key={i}) and replace the index key
with the stable id reference so React can correctly track list items.
- Around line 41-46: The avatar <img> in the Authors component uses alt="" which
marks it decorative; update the element that renders author.avatar (look for the
<img className="devnote-authors__avatar" src={author.avatar} ... /> in
Authors.tsx) to provide descriptive alt text such as the author's name or
"{author.name} avatar" (and fall back to an empty string only if author.name is
missing) so screen readers receive meaningful information.
In `@fern/components/TrajectoryViewer.tsx`:
- Around line 63-66: The TrajectoryViewer currently injects call.body via
dangerouslySetInnerHTML which permits XSS; change TrajectoryViewer to stop using
dangerouslySetInnerHTML for call.body and instead either render call.body as
plain text (e.g., output the string children into the div with className
"trajectory-viewer__body") or run call.body through a vetted sanitizer before
injecting; update the component code path that handles fn === "answer" (the
logic around call.body in TrajectoryViewer) to use the safe
rendering/sanitization approach so untrusted trajectory payloads cannot execute
scripts.
In `@fern/main.css`:
- Around line 1-4: The SPDX header in the top-of-file comment uses
"SPDX-License-Identifier: LicenseRef-NvidiaProprietary" which conflicts with
repo policy; update that header comment replacing "LicenseRef-NvidiaProprietary"
with "Apache-2.0" (keep the SPDX-FileCopyrightText block as-is and preserve the
comment formatting) so the header reads with SPDX-License-Identifier:
Apache-2.0.
- Line 368: The .footer-links a rule uses the deprecated word-break: break-word;
replace it with word-break: normal and add overflow-wrap: anywhere to preserve
long-word wrapping. Edit the CSS rule for the selector .footer-links a (inside
the `@media` (max-width: 768px) block) to remove the legacy value and add the two
recommended properties; also search for any other occurrences of word-break:
break-word and update them similarly to ensure consistent behavior across the
stylesheet.
In `@package.json`:
- Line 13: Update package.json to pin the fern-api dependency to an exact
version instead of a caret range: locate the "fern-api" entry in package.json
and change its version from "^5.37.0" to "5.37.0" so docs/CI builds are
deterministic; after editing, run your package manager's install (npm/yarn/pnpm)
to refresh lockfiles.
In `@RELEASING.md`:
- Line 167: Update the incorrect documentation link in RELEASING.md: replace the
reference string "fern/versions/dev/pages/getting-started/installation.mdx" with
the correct path "docs/getting-started/installation.mdx" so the link points to
the existing installation page; modify the single occurrence in RELEASING.md
that contains that path.
In `@scripts/build-docs.sh`:
- Around line 19-20: The script's "linkcheck" mode currently just runs `just
docs` and therefore skips link validation; change the branch or case handling
for the "linkcheck" option in scripts/build-docs.sh so it invokes `just
docs-linkcheck` (or the project task that actually performs link validation)
instead of `just docs`. Locate the code that matches the "linkcheck" string (the
branch/case or function handling that mode) and replace the command invocation
so link validation runs when links change; ensure any comments or help text
referencing "linkcheck" are updated accordingly.
In `@scripts/docs/generate_node_library_reference.py`:
- Line 23: REEXPORT_RE currently only matches "export { ... };" and misses
"export { A } from './x';"; update REEXPORT_RE to allow an optional from-clause
(e.g. make the pattern accept an optional "\s*from\s+['\"].*?['\"]" after the
closing brace) so it captures both forms, and ensure _parse_reexport_names
continues to extract the "names" group from the updated REEXPORT_RE; also ensure
the regex is non-greedy and tolerant of optional trailing semicolons and
whitespace so multiline/quoted module paths are handled.
In `@scripts/docs/sync_fern_docs_branch.py`:
- Around line 148-156: The current write_docs_yml function replaces products[0]
entirely with preserved_product which discards updates from the source; instead,
load the source product (products[0]) and create a merged product by starting
from the source product and updating only the preserved fields (i.e., apply
preserved_product on top of source) so source metadata (display name, icons,
etc.) is kept while preserved keys override where needed; use
load_preserved_product and docs_website_product to get the preserved and
fallback values, perform a shallow/deep merge (e.g., copy source_product then
update with preserved_product if present), assign that merged object to
docs_yml["products"][0], and then write_yaml(target_docs_yml, docs_yml).
- Line 20: Add PyYAML as a direct dependency by declaring "pyyaml" (or "PyYAML")
in project packaging so the import yaml in scripts/docs/sync_fern_docs_branch.py
won't cause ModuleNotFoundError in clean environments; then modify
write_docs_yml so that when a preserved target product exists you perform a
field-level merge of docs_yml["products"][0] into the preserved product
(preserve existing keys and only update/insert fields from the source) instead
of replacing the whole product object, ensuring other fields on the target
remain intact while propagating updates from fern/docs.yml.
---
Outside diff comments:
In `@docs/about/concepts/subscribers.mdx`:
- Line 79: Replace the nonstandard Mermaid fence "```{mermaid}" with the
standard MDX fence "```mermaid" in the subscribers MDX content so the block
starts with "```mermaid" (and keep the closing "```"); locate the Mermaid block
that currently uses the "{mermaid}" fence and change it to "mermaid" to match
the other files (e.g., the same correction applied in ecosystem.mdx).
In `@docs/about/release-notes/known-issues.mdx`:
- Line 20: The "Fixed issues from NeMo Relay 0.2:" header is empty; either
populate that section with the list of resolved bugs/changes relevant to NeMo
Relay 0.2 (add bullet points or paragraphs under the header) or remove the
header entirely if there are no fixed items to report; update the section that
contains the exact header text "Fixed issues from NeMo Relay 0.2:" accordingly
so the document no longer contains an empty section.
🪄 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: db3ae709-a108-41a3-84e1-3a833b357962
⛔ Files ignored due to path filters (5)
fern/assets/NVIDIA_dark.svgis excluded by!**/*.svgfern/assets/NVIDIA_light.svgis excluded by!**/*.svgfern/assets/NVIDIA_symbol.svgis excluded by!**/*.svgpackage-lock.jsonis excluded by!**/package-lock.jsonuv.lockis excluded by!**/*.lock
📒 Files selected for processing (134)
.github/ISSUE_TEMPLATE/03-documentation.yml.github/ci-path-filters.yml.github/workflows/ci.yaml.github/workflows/ci_docs.yml.github/workflows/fern-docs.yml.gitignore.pre-commit-config.yamlAGENTS.mdATTRIBUTIONS-Node.mdATTRIBUTIONS-Python.mdCONTRIBUTING.mdRELEASING.mddocs/_static/extra.cssdocs/_static/version-switcher.jsdocs/_templates/version-switcher.htmldocs/about/architecture.mdxdocs/about/concepts/events.mdxdocs/about/concepts/framework-integrations.mdxdocs/about/concepts/index.mddocs/about/concepts/index.mdxdocs/about/concepts/middleware.mdxdocs/about/concepts/plugins.mdxdocs/about/concepts/scopes.mdxdocs/about/concepts/subscribers.mdxdocs/about/ecosystem.mdxdocs/about/overview.mdxdocs/about/release-notes/highlights.mdxdocs/about/release-notes/index.mdxdocs/about/release-notes/known-issues.mdxdocs/about/release-notes/related-topics.mddocs/about/release-notes/related-topics.mdxdocs/build-plugins/about.mdxdocs/build-plugins/advanced-configuration.mdxdocs/build-plugins/basic-guide.mdxdocs/build-plugins/code-examples.mdxdocs/build-plugins/nemoguardrails.mdxdocs/build-plugins/plugin-configuration-files.mdxdocs/build-plugins/register-behavior.mdxdocs/build-plugins/validate-configuration.mdxdocs/conf.pydocs/contribute/about.mdxdocs/contribute/development-setup.mdxdocs/contribute/testing-and-docs.mdxdocs/contribute/workflow-and-reviews.mdxdocs/getting-started/agent-runtime-primer.mdxdocs/getting-started/configuration.mdxdocs/getting-started/installation.mdxdocs/getting-started/prerequisites.mdxdocs/getting-started/quick-start.mddocs/getting-started/quick-start/index.mdxdocs/getting-started/quick-start/nodejs.mdxdocs/getting-started/quick-start/python.mdxdocs/getting-started/quick-start/rust.mdxdocs/index.mddocs/index.ymldocs/instrument-applications/about.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/instrument-applications/advanced-guide.mdxdocs/instrument-applications/code-examples.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/integrate-frameworks/about.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrate-frameworks/code-examples.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrations/about.mdxdocs/integrations/deepagents.mdxdocs/integrations/langchain.mdxdocs/integrations/langgraph.mdxdocs/integrations/openclaw-plugin.mdxdocs/nemo-relay-cli/about.mdxdocs/nemo-relay-cli/basic-usage.mdxdocs/nemo-relay-cli/claude-code.mdxdocs/nemo-relay-cli/codex.mdxdocs/nemo-relay-cli/cursor.mdxdocs/nemo-relay-cli/hermes.mdxdocs/plugins/adaptive/about.mdxdocs/plugins/adaptive/acg.mdxdocs/plugins/adaptive/adaptive-hints.mdxdocs/plugins/adaptive/configuration.mdxdocs/plugins/observability/about.mdxdocs/plugins/observability/atif.mdxdocs/plugins/observability/atof.mdxdocs/plugins/observability/configuration.mdxdocs/plugins/observability/openinference.mdxdocs/plugins/observability/opentelemetry.mdxdocs/reference/api/index.mddocs/reference/api/index.mdxdocs/reference/api/nodejs/index.mddocs/reference/api/python/index.mddocs/reference/api/rust/index.mddocs/reference/performance.mdxdocs/resources/community.mddocs/resources/community.mdxdocs/resources/glossary.mddocs/resources/glossary.mdxdocs/resources/legal/index.mddocs/resources/legal/index.mdxdocs/resources/legal/license-agreement.mdxdocs/resources/legal/oss.mdxdocs/resources/support-and-faqs.mdxdocs/resources/troubleshooting/index.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxdocs/typedoc.node.jsondocs/typedoc.node.tsconfig.jsonexamples/nemoguardrails/README.mdfern/README.mdfern/components/Authors.tsxfern/components/BadgeLinks.tsxfern/components/CustomFooter.tsxfern/components/MetricsTable.tsxfern/components/NotebookViewer.tsxfern/components/TrajectoryViewer.tsxfern/docs.ymlfern/fern.config.jsonfern/main.cssjustfilepackage.jsonpyproject.tomlscripts/README.mdscripts/build-docs.shscripts/docs/build_node_docs_artifacts.mjsscripts/docs/fern_cleanup.pyscripts/docs/generate_node_library_reference.pyscripts/docs/generate_python_library_reference.pyscripts/docs/generate_rust_library_reference.pyscripts/docs/postprocess_sphinx_multiversion.pyscripts/docs/reference_common.pyscripts/docs/sync_fern_docs_branch.py
💤 Files with no reviewable changes (19)
- docs/about/release-notes/related-topics.md
- docs/reference/api/index.md
- docs/reference/api/rust/index.md
- docs/resources/legal/index.md
- docs/index.md
- docs/about/concepts/index.md
- docs/reference/api/python/index.md
- docs/typedoc.node.tsconfig.json
- scripts/docs/build_node_docs_artifacts.mjs
- docs/typedoc.node.json
- docs/resources/community.md
- docs/_static/version-switcher.js
- docs/conf.py
- docs/_static/extra.css
- docs/getting-started/quick-start.md
- docs/_templates/version-switcher.html
- docs/reference/api/nodejs/index.md
- docs/resources/glossary.md
- scripts/docs/postprocess_sphinx_multiversion.py
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
4266933 to
1ab2cb9
Compare
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
1 similar comment
✅ Actions performedReview triggered.
|
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
aschilling-nv
left a comment
There was a problem hiding this comment.
Small tweaks to publish on docs.nvidia.com
Salonijain27
left a comment
There was a problem hiding this comment.
Approved from a dependency point of view
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 29
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (6)
docs/about/release-notes/known-issues.mdx (1)
20-20:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winUse Title Case For The Subheading
Line 20 is not in title case. Use title case consistently for technical documentation headings.
Proposed fix
-### Fixed issues from NeMo Relay 0.1: +### Fixed Issues From NeMo Relay 0.1As per coding guidelines:
**/*.{md,mdx}: Use title case for headings in technical documentation.🤖 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/about/release-notes/known-issues.mdx` at line 20, The subheading "### Fixed issues from NeMo Relay 0.1:" is not in title case; update that heading (the line containing "Fixed issues from NeMo Relay 0.1") to Title Case (e.g., "### Fixed Issues From NeMo Relay 0.1") so it conforms to the documentation rule for headings in **/*.{md,mdx}; ensure only the heading text is changed and punctuation/version notation remains unchanged.docs/integrate-frameworks/about.mdx (1)
55-58:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winUse consistent product/runtime naming in this section.
Lines 55-58 switch to “NeMo Flow” while the surrounding content and section are about NeMo Relay framework integration behavior. This inconsistency is confusing in a task-oriented guide.
As per coding guidelines: "
**/*.{md,mdx}: Use consistent terminology throughout each document for the same concept."🤖 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/integrate-frameworks/about.mdx` around lines 55 - 58, The paragraph uses "NeMo Flow" while this section and surrounding content refer to the NeMo Relay framework; update the wording so the same product/runtime name is used consistently (e.g., replace "NeMo Flow" with "NeMo Relay") in the sentence "Prefer managed execution wrappers wherever the framework exposes a callback that NeMo Flow can own" and scan nearby lines/headings for any other mismatched occurrences to make all terminology uniform.docs/plugins/observability/about.mdx (1)
65-67:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix the stale runbook link path.
[Trace Incident Runbook](../../troubleshooting/trace-incident-runbook.md)likely resolves to a non-existent docs path after the Fern migration. Point it to the current route underresources/troubleshooting.Suggested fix
-[Trace Incident Runbook](../../troubleshooting/trace-incident-runbook.md). +[Trace Incident Runbook](/resources/troubleshooting/trace-incident-runbook).As per coding guidelines: Verify that commands, package names, file paths, and APIs are correct and up-to-date in documentation.
🤖 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/plugins/observability/about.mdx` around lines 65 - 67, Update the stale markdown link target for "Trace Incident Runbook": replace the old path ../../troubleshooting/trace-incident-runbook.md with the new route under resources/troubleshooting (e.g., ../../resources/troubleshooting/trace-incident-runbook.md or the correct resources/troubleshooting path used in the docs site) so the link resolves to the current runbook; ensure the link text "Trace Incident Runbook" remains unchanged.docs/resources/support-and-faqs.mdx (2)
83-87:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winCorrect Naming Explanation Typo
Line 85 says
"Flow" refers to...in the section explaining the name "NeMo Relay". This is inconsistent with the product name rationale and reads as a copy/paste error.As per coding guidelines: "Use consistent terminology throughout each document for the same concept."
🤖 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/resources/support-and-faqs.mdx` around lines 83 - 87, The heading "Why The Name \"NeMo Relay\"?" contains a copy/paste typo where the paragraph refers to "Flow" instead of "Relay"; update the paragraph under the "Why The Name \"NeMo Relay\"?" heading so it consistently uses "Relay" (not "Flow") and adjust the wording to explain that "Relay" refers to the runtime flow of agent work through scopes, middleware, events, subscribers, plugins, and exporters; edit the sentence that currently starts with `"Flow" refers to...` to `"Relay" refers to...` and ensure the rest of the sentence remains consistent with the product rationale.
156-157:⚠️ Potential issue | 🟠 Major | ⚡ Quick winReplace Legacy Relative Markdown Link
Line 156 still links to
../index.md#..., which is a pre-migration style reference and can fail after the Fern/MDX switch. Use a site route instead.As per coding guidelines: "Verify that commands, package names, file paths, and APIs are correct and up-to-date in documentation."
🤖 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/resources/support-and-faqs.mdx` around lines 156 - 157, In docs/resources/support-and-faqs.mdx replace the legacy relative markdown link "../index.md#what-should-i-read-first" (the "What Should I Read First?" link) with the corresponding site route (e.g., "/docs#what-should-i-read-first" or the canonical route used by the site router) so the link uses the site path rather than a pre-migration file path; update the href to the correct route and verify the anchor fragment matches the target heading.docs/resources/troubleshooting/index.mdx (1)
13-13:⚠️ Potential issue | 🟠 Major | ⚡ Quick winFix Runbook Link Target Extension
Line 13 links to
trace-incident-runbook.md, but this page is now MDX and routed via Fern. This is likely a dead link.Suggested fix
-[Trace Incident Runbook](trace-incident-runbook.md). +[Trace Incident Runbook](/resources/troubleshooting/trace-incident-runbook).As per coding guidelines: "Verify that commands, package names, file paths, and APIs are correct and up-to-date in documentation."
🤖 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/resources/troubleshooting/index.mdx` at line 13, Update the link target on the line referencing "trace-incident-runbook.md" so it points to the routed MDX/fern path instead of the old .md file; replace the `trace-incident-runbook.md` href with the Fern route (e.g. `trace-incident-runbook` or the directory-style MDX route used in the docs site) in docs/resources/troubleshooting/index.mdx so the link resolves to the MDX page.
🤖 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 @.github/ISSUE_TEMPLATE/03-documentation.yml:
- Line 43: Update the placeholder that currently reads "fern/..." to include
both Fern and docs paths so reporters aren't misled; replace the single example
"fern/..." with a combined example such as "fern/... or docs/..." (i.e., change
the literal string "fern/..." to include "docs/...") so the template aligns with
both Fern config and actual page content locations.
In @.github/workflows/fern-docs.yml:
- Around line 385-396: The commit step ("Commit and push docs snapshot") must be
made idempotent by checking for changes before attempting git commit; update the
run block that currently runs git add -A and git commit -m ... so it detects
whether there is anything to commit (e.g., via git diff --cached --quiet or git
status --porcelain) and only runs git commit and git push when there are staged
changes, otherwise skip the commit/push to avoid failing the workflow on reruns.
In @.pre-commit-config.yaml:
- Around line 69-70: Replace the repo root argument for lychee's --root-dir flag
from the filesystem root to the repository root: update the value passed to
--root-dir from / to . in the pre-commit hook configuration (i.e., change the
`--root-dir /` entry to `--root-dir .`) so link checking resolves paths relative
to the repo instead of the OS root.
In `@AGENTS.md`:
- Line 157: Update the docs guidance on link changes to require running the link
checker: modify the sentence that currently references `just docs` to explicitly
instruct contributors to run `just docs-linkcheck` (in addition to or instead of
`just docs`) when links or navigation change; ensure the wording mirrors the
repository guideline "Run docs link validation with `just docs-linkcheck` when
links change" so contributors know to run `just docs-linkcheck` for link
updates.
In `@CONTRIBUTING.md`:
- Line 204: Update the checklist line that currently reads "For docs site
changes, run `./scripts/build-docs.sh`; it regenerates ignored Fern API
reference pages before validation." to instruct contributors to run the primary
docs build command `just docs` instead, and optionally note the compatibility
wrapper `./scripts/build-docs.sh html`; locate and edit the matching sentence in
CONTRIBUTING.md (the checklist item) so it now says something like: "For docs
site changes, run `just docs` (or `./scripts/build-docs.sh html` as a
compatibility wrapper) — it regenerates ignored Fern API reference pages before
validation."
In `@docs/contribute/testing-and-docs.mdx`:
- Around line 90-96: The docs verification section currently only shows the
command "just docs" but must explicitly include the link-check step; update the
instructions in testing-and-docs.mdx so the validation sequence includes running
"just docs-linkcheck" (e.g., add or restore a line calling "just docs-linkcheck"
alongside or before "just docs") to ensure link validation is performed when
links change.
In `@docs/getting-started/configuration.mdx`:
- Around line 46-47: Update the stale cross-link routes in
docs/getting-started/configuration.mdx by replacing occurrences of the old
plugin paths (e.g. "/observability-plugin/..." and "/adaptive-plugin/...") with
the migrated plugin paths under "/plugins/observability/..." and
"/plugins/adaptive/..." respectively; search for the exact link strings
"[Observability Configuration](/observability-plugin/configuration)" and
"[Observability](/observability-plugin/about)" (and the similar occurrence at
line 61) and update them so the markdown links point to the new "/plugins/..."
routes.
In `@docs/getting-started/installation.mdx`:
- Around line 79-80: Replace outdated route namespace "/supported-integrations/"
with the new "/integrations/" in the markdown links: update the link text "See
the [OpenClaw Plugin Guide](/supported-integrations/openclaw-plugin)" and any
other occurrences (e.g., the other link at the later block) to point to
"/integrations/openclaw-plugin" so the docs use the migrated route namespace and
avoid dead links.
In `@docs/getting-started/quick-start/nodejs.mdx`:
- Around line 120-122: The link slug is incorrect: update the third bullet's
href from "/integrate-frameworks/using-codecs" to the configured section slug
"/integrate-into-frameworks/using-codecs" in the quick-start doc (the line
containing the link text "Using Codecs") and verify other docs use the same
"integrate-into-frameworks" slug to avoid broken routes.
In `@docs/instrument-applications/adding-scopes-and-marks.mdx`:
- Around line 22-24: Update the three quick-start links that currently point to
/getting-started/python, /getting-started/nodejs, and /getting-started/rust so
they reference the actual routes under /getting-started/quick-start/ (e.g.,
/getting-started/quick-start/python, /getting-started/quick-start/nodejs,
/getting-started/quick-start/rust) in the
docs/instrument-applications/adding-scopes-and-marks.mdx file; ensure the
displayed link text ([Python Quick Start], [Node.js Quick Start], [Rust Quick
Start]) remains the same while only changing the href targets to the correct
paths.
In `@docs/instrument-applications/instrument-llm-call.mdx`:
- Around line 27-29: Update the broken doc links that point to the old migrated
routes: replace /getting-started/python, /getting-started/nodejs, and
/getting-started/rust with the new quick-start routes (e.g.,
/quick-start/python, /quick-start/nodejs, /quick-start/rust) and change
/integrate-into-frameworks/provider-codecs and /observability-plugin/about to
the new integrate-frameworks and plugins/observability routes (e.g.,
/integrate-frameworks/provider-codecs and /plugins/observability/about) wherever
they appear in this file (references in the header and at the other noted
location).
In `@docs/instrument-applications/instrument-tool-call.mdx`:
- Around line 26-28: The three outdated links [Python Quick
Start](/getting-started/python), [Node.js Quick Start](/getting-started/nodejs),
and [Rust Quick Start](/getting-started/rust) (and the other occurrences called
out) use old route prefixes; update these link targets to the current route
prefixes used across the site: change /getting-started/* to /quick-start/* for
quick-start pages, change any integrate-frameworks references to use the
/integrate-frameworks/* prefix, and change observability plugin doc links to the
current observability plugin prefix (e.g., /observability/plugins/*); find and
replace the exact URLs shown in the diff to the new prefixes so navigation
points to the new pages.
In `@docs/integrate-frameworks/about.mdx`:
- Line 36: Update the broken documentation links that reference the old routes
by replacing occurrences of "/supported-integrations/*" and
"/integrate-into-frameworks/*" (e.g., the "[Supported Integrations]" link and
the integrate-frameworks links on lines shown in the review) with the current
routes under "integrations" and "integrate-frameworks" respectively; search for
the literal link strings "/supported-integrations/" and
"/integrate-into-frameworks/" in the about.mdx content and update them to the
new section paths so the links resolve after the migration.
In `@docs/integrate-frameworks/adding-scopes.mdx`:
- Around line 183-184: Update the broken links for the two link targets by
changing their route namespace from /integrate-into-frameworks/* to
/integrate-frameworks/*; specifically edit the link URLs for "[Wrap Tool Calls]"
and "[Wrap LLM Calls]" so they point to /integrate-frameworks/wrap-tool-calls
and /integrate-frameworks/wrap-llm-calls respectively.
In `@docs/integrate-frameworks/code-examples.mdx`:
- Around line 12-18: Update the broken docs links by replacing the old route
prefixes in the link strings found in the code block (e.g.
"/integrate-into-frameworks/adding-scopes",
"/integrate-into-frameworks/wrap-tool-calls",
"/integrate-into-frameworks/wrap-llm-calls",
"/integrate-into-frameworks/non-serializable-data",
"/integrate-into-frameworks/using-codecs",
"/integrate-into-frameworks/provider-codecs",
"/integrate-into-frameworks/provider-response-codecs") with the migrated prefix
"integrate-frameworks" and fix the other occurrence to use the migrated
"integrations/openclaw-plugin" route; ensure all matching link strings in this
file are updated so they point to the new routes.
In `@docs/integrate-frameworks/non-serializable-data.mdx`:
- Around line 188-190: Update the three broken links that point to the old
integration path so they reference the migrated route prefix; replace
`/integrate-into-frameworks/wrap-tool-calls`,
`/integrate-into-frameworks/wrap-llm-calls`, and
`/integrate-into-frameworks/provider-codecs` with the current
`integrate-frameworks` equivalents (e.g.,
`/integrate-frameworks/wrap-tool-calls`, `/integrate-frameworks/wrap-llm-calls`,
`/integrate-frameworks/provider-codecs`) in the lines containing the link texts
"Wrap Tool Calls", "Wrap LLM Calls", and "Provider Codecs" to prevent 404s.
In `@docs/integrate-frameworks/provider-codecs.mdx`:
- Line 36: Update broken internal doc links that reference the old route
namespace "integrate-into-frameworks": find occurrences like
"/integrate-into-frameworks/using-codecs" (and any other
"/integrate-into-frameworks/*" links referenced in this file, e.g., the ones at
the locations shown) and replace them with the correct route namespace
"/integrate-frameworks/*" so the links point to the actual docs (for example
change "/integrate-into-frameworks/using-codecs" to
"/integrate-frameworks/using-codecs"); ensure all instances on the page (the
ones noted and any others) are updated consistently.
In `@docs/nemo-relay-cli/about.mdx`:
- Line 34: Update the broken docs link in docs/nemo-relay-cli/about.mdx by
replacing the slug "/integrate-into-frameworks/about" with the migrated route
"/integrate-frameworks/about" so the link targets the correct docs route family;
locate the anchor text "[Integrate into Frameworks]" in that file and update its
href accordingly.
In `@docs/plugins/adaptive/about.mdx`:
- Line 44: Update the broken docs link string '/integrate-into-frameworks/about'
in the markdown link found in docs/plugins/adaptive/about.mdx to the current
migrated frameworks route used by the site; locate the markdown link text
"[Integrate into Frameworks](...)" and replace its href with the canonical
migrated route (verify the correct path from the site routing or other migrated
docs pages and use that exact path).
In `@docs/reference/performance.mdx`:
- Line 37: The link target in the markdown anchor "[Typed Wrappers And
Codecs](/integrate-into-frameworks/using-codecs)" is using the wrong route
prefix; update the href to "/integrate-frameworks/using-codecs" so the anchor
points to the migrated docs path (locate the anchor text "Typed Wrappers And
Codecs" in docs/reference/performance.mdx and replace the
"/integrate-into-frameworks/using-codecs" href with
"/integrate-frameworks/using-codecs").
In `@docs/resources/glossary.mdx`:
- Line 14: Remove the stray glossary marker `**:sorted:**` (the artifact shown
in the diff) from the document; locate the occurrence (the literal
`**:sorted:**` token) and delete it so the glossary text uses consistent
terminology and no generation artifacts remain.
In `@docs/resources/support-and-faqs.mdx`:
- Around line 204-206: Update the broken cross-link in
docs/resources/support-and-faqs.mdx: change the reference target for the
"[Preferred Integration Order]" link from
/integrate-into-frameworks/code-examples#preferred-integration-order to the
migrated path /integrate-frameworks/code-examples#preferred-integration-order
(and verify any other occurrences of /integrate-into-frameworks in this file and
replace them with /integrate-frameworks to keep links consistent).
- Around line 125-130: Update the three quick-start links so they point to the
migrated doc paths that include the quick-start segment: replace the occurrences
of "[Python Quick Start](/getting-started/python)", "[Node.js Quick
Start](/getting-started/nodejs)" and "[Rust Quick Start](/getting-started/rust)"
with the corresponding "/getting-started/quick-start/python",
"/getting-started/quick-start/nodejs", and "/getting-started/quick-start/rust"
targets respectively so the links resolve to the migrated pages.
In `@docs/resources/troubleshooting/index.mdx`:
- Line 145: Update the broken documentation links that still use
"/integrate-into-frameworks/..." to the new migrated section name
"/integrate-frameworks/..." by replacing occurrences such as "[Wrap LLM
Calls](/integrate-into-frameworks/wrap-llm-calls)" and "[Provider Response
Codecs](/integrate-into-frameworks/provider-response-codecs)" with the
corresponding "/integrate-frameworks/..." paths; search for these exact link
strings in the file (and any other instances like the one around the second
mention) and update them so the anchors point to the migrated section name.
In `@docs/resources/troubleshooting/trace-incident-runbook.mdx`:
- Around line 108-109: The documentation links for "[Wrap Tool Calls]" and
"[Wrap LLM Calls]" use the old route prefix "/integrate-into-frameworks/..."
which no longer exists; update both link targets to the migrated prefix
"/integrate-frameworks/..." so the links point to the correct pages (replace
"/integrate-into-frameworks/wrap-tool-calls" and
"/integrate-into-frameworks/wrap-llm-calls" with
"/integrate-frameworks/wrap-tool-calls" and
"/integrate-frameworks/wrap-llm-calls" respectively).
In `@fern/components/CustomFooter.tsx`:
- Around line 1-4: The SPDX header in CustomFooter.tsx currently uses
"SPDX-License-Identifier: LicenseRef-NvidiaProprietary" which conflicts with the
repo policy; update the file header so the SPDX-License-Identifier is
"Apache-2.0" (keep the SPDX-FileCopyrightText line intact) and ensure the SPDX
header remains the first lines of the file.
In `@fern/components/MetricsTable.tsx`:
- Around line 90-99: The table body in MetricsTable maps each row's cells
directly (rows.map -> row.map), which allows rows with different lengths to
misalign with headers and makes bestByCol highlighting target wrong columns;
change the row rendering to iterate over headers (headers.map) for each row and
pull the cell value by index (use an empty placeholder when row[colIdx] is
undefined) so every row renders exactly one TD per header, and compute isBest
using bestByCol[colIdx]?.has(rowIdx) as before; alternatively, add a
pre-validation step in MetricsTable to verify all rows.length === headers.length
and surface/log an error for mismatches.
In `@justfile`:
- Around line 688-703: The PR removed the dedicated just target for link-only
validation; add back a new Just target named docs-linkcheck that mirrors the
link-checking steps used by the docs target: include the shebang and {{
bash_helpers }}, call ensure_docs_dependencies and (if needed for link
generation) generate_docs_api_references, cd into "$NEMO_RELAY_REPO_ROOT/fern",
and run npx fern check --warnings so contributors can run just docs-linkcheck
for link validation; locate the existing docs and docs-api-reference targets to
copy the exact ordering and helpers used there.
In `@scripts/docs/generate_rust_library_reference.py`:
- Around line 594-598: The loop over pages_by_html uses .items() but never uses
the value 'page'; change the outer loop to iterate over pages_by_html.keys() (or
simply for html_path in pages_by_html) and remove the unused 'page' variable so
the block with _item_order(html_path, pages_by_html) and assignments to
positions[target] remains the same; update the loop header where html_path and
page are defined to avoid the unused variable.
---
Outside diff comments:
In `@docs/about/release-notes/known-issues.mdx`:
- Line 20: The subheading "### Fixed issues from NeMo Relay 0.1:" is not in
title case; update that heading (the line containing "Fixed issues from NeMo
Relay 0.1") to Title Case (e.g., "### Fixed Issues From NeMo Relay 0.1") so it
conforms to the documentation rule for headings in **/*.{md,mdx}; ensure only
the heading text is changed and punctuation/version notation remains unchanged.
In `@docs/integrate-frameworks/about.mdx`:
- Around line 55-58: The paragraph uses "NeMo Flow" while this section and
surrounding content refer to the NeMo Relay framework; update the wording so the
same product/runtime name is used consistently (e.g., replace "NeMo Flow" with
"NeMo Relay") in the sentence "Prefer managed execution wrappers wherever the
framework exposes a callback that NeMo Flow can own" and scan nearby
lines/headings for any other mismatched occurrences to make all terminology
uniform.
In `@docs/plugins/observability/about.mdx`:
- Around line 65-67: Update the stale markdown link target for "Trace Incident
Runbook": replace the old path ../../troubleshooting/trace-incident-runbook.md
with the new route under resources/troubleshooting (e.g.,
../../resources/troubleshooting/trace-incident-runbook.md or the correct
resources/troubleshooting path used in the docs site) so the link resolves to
the current runbook; ensure the link text "Trace Incident Runbook" remains
unchanged.
In `@docs/resources/support-and-faqs.mdx`:
- Around line 83-87: The heading "Why The Name \"NeMo Relay\"?" contains a
copy/paste typo where the paragraph refers to "Flow" instead of "Relay"; update
the paragraph under the "Why The Name \"NeMo Relay\"?" heading so it
consistently uses "Relay" (not "Flow") and adjust the wording to explain that
"Relay" refers to the runtime flow of agent work through scopes, middleware,
events, subscribers, plugins, and exporters; edit the sentence that currently
starts with `"Flow" refers to...` to `"Relay" refers to...` and ensure the rest
of the sentence remains consistent with the product rationale.
- Around line 156-157: In docs/resources/support-and-faqs.mdx replace the legacy
relative markdown link "../index.md#what-should-i-read-first" (the "What Should
I Read First?" link) with the corresponding site route (e.g.,
"/docs#what-should-i-read-first" or the canonical route used by the site router)
so the link uses the site path rather than a pre-migration file path; update the
href to the correct route and verify the anchor fragment matches the target
heading.
In `@docs/resources/troubleshooting/index.mdx`:
- Line 13: Update the link target on the line referencing
"trace-incident-runbook.md" so it points to the routed MDX/fern path instead of
the old .md file; replace the `trace-incident-runbook.md` href with the Fern
route (e.g. `trace-incident-runbook` or the directory-style MDX route used in
the docs site) in docs/resources/troubleshooting/index.mdx so the link resolves
to the MDX page.
🪄 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: cb4a9017-06ff-4fea-b236-ababecc96f4c
⛔ Files ignored due to path filters (5)
fern/assets/NVIDIA_dark.svgis excluded by!**/*.svgfern/assets/NVIDIA_light.svgis excluded by!**/*.svgfern/assets/NVIDIA_symbol.svgis excluded by!**/*.svgpackage-lock.jsonis excluded by!**/package-lock.jsonuv.lockis excluded by!**/*.lock
📒 Files selected for processing (137)
.agents/skills/contribute-docs/SKILL.md.agents/skills/review-doc-style/SKILL.md.github/ISSUE_TEMPLATE/03-documentation.yml.github/ci-path-filters.yml.github/workflows/ci.yaml.github/workflows/ci_docs.yml.github/workflows/fern-docs.yml.gitignore.pre-commit-config.yamlAGENTS.mdATTRIBUTIONS-Node.mdATTRIBUTIONS-Python.mdCONTRIBUTING.mdRELEASING.mddocs/_static/extra.cssdocs/_static/version-switcher.jsdocs/_templates/version-switcher.htmldocs/about/architecture.mdxdocs/about/concepts/events.mdxdocs/about/concepts/framework-integrations.mdxdocs/about/concepts/index.mddocs/about/concepts/index.mdxdocs/about/concepts/middleware.mdxdocs/about/concepts/plugins.mdxdocs/about/concepts/scopes.mdxdocs/about/concepts/subscribers.mdxdocs/about/ecosystem.mdxdocs/about/overview.mdxdocs/about/release-notes/highlights.mdxdocs/about/release-notes/index.mdxdocs/about/release-notes/known-issues.mdxdocs/about/release-notes/related-topics.mddocs/about/release-notes/related-topics.mdxdocs/build-plugins/about.mdxdocs/build-plugins/advanced-configuration.mdxdocs/build-plugins/basic-guide.mdxdocs/build-plugins/code-examples.mdxdocs/build-plugins/nemoguardrails.mdxdocs/build-plugins/plugin-configuration-files.mdxdocs/build-plugins/register-behavior.mdxdocs/build-plugins/validate-configuration.mdxdocs/conf.pydocs/contribute/about.mdxdocs/contribute/development-setup.mdxdocs/contribute/testing-and-docs.mdxdocs/contribute/workflow-and-reviews.mdxdocs/getting-started/agent-runtime-primer.mdxdocs/getting-started/configuration.mdxdocs/getting-started/installation.mdxdocs/getting-started/prerequisites.mdxdocs/getting-started/quick-start.mddocs/getting-started/quick-start/index.mdxdocs/getting-started/quick-start/nodejs.mdxdocs/getting-started/quick-start/python.mdxdocs/getting-started/quick-start/rust.mdxdocs/index.mddocs/index.ymldocs/instrument-applications/about.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/instrument-applications/advanced-guide.mdxdocs/instrument-applications/code-examples.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/integrate-frameworks/about.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrate-frameworks/code-examples.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrations/about.mdxdocs/integrations/deepagents.mdxdocs/integrations/langchain.mdxdocs/integrations/langgraph.mdxdocs/integrations/openclaw-plugin.mdxdocs/nemo-relay-cli/about.mdxdocs/nemo-relay-cli/basic-usage.mdxdocs/nemo-relay-cli/claude-code.mdxdocs/nemo-relay-cli/codex.mdxdocs/nemo-relay-cli/cursor.mdxdocs/nemo-relay-cli/hermes.mdxdocs/plugins/adaptive/about.mdxdocs/plugins/adaptive/acg.mdxdocs/plugins/adaptive/adaptive-hints.mdxdocs/plugins/adaptive/configuration.mdxdocs/plugins/observability/about.mdxdocs/plugins/observability/atif.mdxdocs/plugins/observability/atof.mdxdocs/plugins/observability/configuration.mdxdocs/plugins/observability/openinference.mdxdocs/plugins/observability/opentelemetry.mdxdocs/reference/api/index.mddocs/reference/api/index.mdxdocs/reference/api/nodejs/index.mddocs/reference/api/python/index.mddocs/reference/api/rust/index.mddocs/reference/performance.mdxdocs/resources/community.mddocs/resources/community.mdxdocs/resources/glossary.mddocs/resources/glossary.mdxdocs/resources/legal/index.mddocs/resources/legal/index.mdxdocs/resources/legal/license-agreement.mdxdocs/resources/legal/oss.mdxdocs/resources/support-and-faqs.mdxdocs/resources/troubleshooting/index.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxdocs/typedoc.node.jsondocs/typedoc.node.tsconfig.jsonexamples/nemoguardrails/README.mdfern/README.mdfern/components/Authors.tsxfern/components/BadgeLinks.tsxfern/components/CustomFooter.tsxfern/components/MermaidStyles.tsxfern/components/MetricsTable.tsxfern/components/NotebookViewer.tsxfern/components/TrajectoryViewer.tsxfern/docs.ymlfern/fern.config.jsonjustfilepackage.jsonpyproject.tomlscripts/README.mdscripts/build-docs.shscripts/docs/build_node_docs_artifacts.mjsscripts/docs/fern_cleanup.pyscripts/docs/generate_node_library_reference.pyscripts/docs/generate_python_library_reference.pyscripts/docs/generate_rust_library_reference.pyscripts/docs/postprocess_sphinx_multiversion.pyscripts/docs/reference_common.pyscripts/docs/sync_fern_docs_branch.pyscripts/lint/check_copyright.py
💤 Files with no reviewable changes (19)
- docs/typedoc.node.json
- docs/resources/legal/index.md
- docs/_static/version-switcher.js
- docs/index.md
- docs/_static/extra.css
- docs/getting-started/quick-start.md
- docs/typedoc.node.tsconfig.json
- docs/reference/api/rust/index.md
- docs/resources/glossary.md
- docs/about/release-notes/related-topics.md
- docs/about/concepts/index.md
- docs/reference/api/python/index.md
- docs/resources/community.md
- docs/reference/api/nodejs/index.md
- docs/conf.py
- scripts/docs/build_node_docs_artifacts.mjs
- docs/_templates/version-switcher.html
- scripts/docs/postprocess_sphinx_multiversion.py
- docs/reference/api/index.md
Signed-off-by: Will Killian <wkillian@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@fern/components/CustomFooter.tsx`:
- Around line 1-3: Update the SPDX header in the CustomFooter.tsx top comment to
use the repository-standard year and exact phrasing: change the copyright line
from "Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved."
to "Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved."
and ensure the SPDX-License-Identifier line remains "SPDX-License-Identifier:
Apache-2.0" so the file header matches the required pattern.
🪄 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: aaea52a7-0458-4c8f-b752-dae14333d7f4
📒 Files selected for processing (46)
.github/ISSUE_TEMPLATE/03-documentation.yml.github/workflows/fern-docs.yml.pre-commit-config.yamlAGENTS.mdCONTRIBUTING.mddocs/about/concepts/framework-integrations.mdxdocs/about/concepts/plugins.mdxdocs/about/concepts/subscribers.mdxdocs/about/ecosystem.mdxdocs/about/overview.mdxdocs/contribute/testing-and-docs.mdxdocs/getting-started/configuration.mdxdocs/getting-started/installation.mdxdocs/getting-started/quick-start/python.mdxdocs/instrument-applications/about.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/instrument-applications/advanced-guide.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/integrate-frameworks/about.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrate-frameworks/code-examples.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrations/about.mdxdocs/integrations/deepagents.mdxdocs/integrations/langchain.mdxdocs/integrations/langgraph.mdxdocs/integrations/openclaw-plugin.mdxdocs/nemo-relay-cli/about.mdxdocs/plugins/adaptive/about.mdxdocs/plugins/adaptive/configuration.mdxdocs/plugins/observability/about.mdxdocs/plugins/observability/openinference.mdxdocs/reference/performance.mdxdocs/resources/glossary.mdxdocs/resources/support-and-faqs.mdxdocs/resources/troubleshooting/index.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxfern/components/CustomFooter.tsxjustfilescripts/docs/generate_rust_library_reference.py
💤 Files with no reviewable changes (1)
- docs/resources/glossary.mdx
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Check / Run
- GitHub Check: Preview docs
🧰 Additional context used
📓 Path-based instructions (30)
{.github/**,.gitlab-ci.yml,.pre-commit-config.yaml,justfile,scripts/**}
⚙️ CodeRabbit configuration file
{.github/**,.gitlab-ci.yml,.pre-commit-config.yaml,justfile,scripts/**}: Review automation changes for reproducibility, pinned versions where appropriate, secret handling, and consistency with the documented validation matrix.
Pay attention to commands that need generated native artifacts, FFI libraries, or platform-specific environment variables.
Files:
.github/ISSUE_TEMPLATE/03-documentation.ymljustfile.github/workflows/fern-docs.yml.pre-commit-config.yamlscripts/docs/generate_rust_library_reference.py
{docs/**,README.md,CONTRIBUTING.md}
📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)
{docs/**,README.md,CONTRIBUTING.md}: For docs-only changes, run targeted checks only if commands, package names, or examples changed. Usejust docsfor docs-site builds andjust docs-linkcheckwhen links changed
Run docs site build withjust docs
Files:
docs/contribute/testing-and-docs.mdxdocs/getting-started/configuration.mdxdocs/integrations/langgraph.mdxdocs/reference/performance.mdxdocs/integrations/about.mdxdocs/plugins/adaptive/about.mdxdocs/about/concepts/framework-integrations.mdxdocs/instrument-applications/about.mdxCONTRIBUTING.mddocs/plugins/observability/about.mdxdocs/getting-started/installation.mdxdocs/about/ecosystem.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/integrate-frameworks/about.mdxdocs/nemo-relay-cli/about.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxdocs/integrations/langchain.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrations/deepagents.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/getting-started/quick-start/python.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/about/concepts/subscribers.mdxdocs/about/overview.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/instrument-applications/advanced-guide.mdxdocs/resources/troubleshooting/index.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/code-examples.mdxdocs/plugins/observability/openinference.mdxdocs/plugins/adaptive/configuration.mdxdocs/integrations/openclaw-plugin.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/about/concepts/plugins.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/resources/support-and-faqs.mdx
{docs/**,README.md,CONTRIBUTING.md,**/*.md}
📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)
Run docs link validation with
just docs-linkcheckwhen links change
Files:
docs/contribute/testing-and-docs.mdxdocs/getting-started/configuration.mdxdocs/integrations/langgraph.mdxdocs/reference/performance.mdxdocs/integrations/about.mdxdocs/plugins/adaptive/about.mdxdocs/about/concepts/framework-integrations.mdxdocs/instrument-applications/about.mdxCONTRIBUTING.mddocs/plugins/observability/about.mdxdocs/getting-started/installation.mdxdocs/about/ecosystem.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/integrate-frameworks/about.mdxdocs/nemo-relay-cli/about.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxdocs/integrations/langchain.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrations/deepagents.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/getting-started/quick-start/python.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/about/concepts/subscribers.mdxdocs/about/overview.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/instrument-applications/advanced-guide.mdxAGENTS.mddocs/resources/troubleshooting/index.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/code-examples.mdxdocs/plugins/observability/openinference.mdxdocs/plugins/adaptive/configuration.mdxdocs/integrations/openclaw-plugin.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/about/concepts/plugins.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/resources/support-and-faqs.mdx
{docs/**,README.md}
📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)
Verify README and docs entry points still match current package names and paths for large or public-facing changes
Files:
docs/contribute/testing-and-docs.mdxdocs/getting-started/configuration.mdxdocs/integrations/langgraph.mdxdocs/reference/performance.mdxdocs/integrations/about.mdxdocs/plugins/adaptive/about.mdxdocs/about/concepts/framework-integrations.mdxdocs/instrument-applications/about.mdxdocs/plugins/observability/about.mdxdocs/getting-started/installation.mdxdocs/about/ecosystem.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/integrate-frameworks/about.mdxdocs/nemo-relay-cli/about.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxdocs/integrations/langchain.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrations/deepagents.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/getting-started/quick-start/python.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/about/concepts/subscribers.mdxdocs/about/overview.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/instrument-applications/advanced-guide.mdxdocs/resources/troubleshooting/index.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/code-examples.mdxdocs/plugins/observability/openinference.mdxdocs/plugins/adaptive/configuration.mdxdocs/integrations/openclaw-plugin.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/about/concepts/plugins.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/resources/support-and-faqs.mdx
{docs/**,examples/**,README.md}
📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)
Verify examples still run with documented commands for large or public-facing changes
Files:
docs/contribute/testing-and-docs.mdxdocs/getting-started/configuration.mdxdocs/integrations/langgraph.mdxdocs/reference/performance.mdxdocs/integrations/about.mdxdocs/plugins/adaptive/about.mdxdocs/about/concepts/framework-integrations.mdxdocs/instrument-applications/about.mdxdocs/plugins/observability/about.mdxdocs/getting-started/installation.mdxdocs/about/ecosystem.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/integrate-frameworks/about.mdxdocs/nemo-relay-cli/about.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxdocs/integrations/langchain.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrations/deepagents.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/getting-started/quick-start/python.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/about/concepts/subscribers.mdxdocs/about/overview.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/instrument-applications/advanced-guide.mdxdocs/resources/troubleshooting/index.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/code-examples.mdxdocs/plugins/observability/openinference.mdxdocs/plugins/adaptive/configuration.mdxdocs/integrations/openclaw-plugin.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/about/concepts/plugins.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/resources/support-and-faqs.mdx
{docs/**,README.md,**/Cargo.toml,**/package.json,**/*.md}
📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)
Ensure renamed public surfaces are reflected consistently in manifests and docs for large or public-facing changes
Files:
docs/contribute/testing-and-docs.mdxdocs/getting-started/configuration.mdxdocs/integrations/langgraph.mdxdocs/reference/performance.mdxdocs/integrations/about.mdxdocs/plugins/adaptive/about.mdxdocs/about/concepts/framework-integrations.mdxdocs/instrument-applications/about.mdxCONTRIBUTING.mddocs/plugins/observability/about.mdxdocs/getting-started/installation.mdxdocs/about/ecosystem.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/integrate-frameworks/about.mdxdocs/nemo-relay-cli/about.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxdocs/integrations/langchain.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrations/deepagents.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/getting-started/quick-start/python.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/about/concepts/subscribers.mdxdocs/about/overview.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/instrument-applications/advanced-guide.mdxAGENTS.mddocs/resources/troubleshooting/index.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/code-examples.mdxdocs/plugins/observability/openinference.mdxdocs/plugins/adaptive/configuration.mdxdocs/integrations/openclaw-plugin.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/about/concepts/plugins.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/resources/support-and-faqs.mdx
**/*.mdx
📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)
In MDX files, top-of-file comments must use JSX comment delimiters:
{/*to open and*/}to close. Do not use HTML comments for MDX SPDX headers.Use MDX SPDX comments with {/* and */} delimiters instead of HTML comment delimiters in top-of-file MDX comments
Files:
docs/contribute/testing-and-docs.mdxdocs/getting-started/configuration.mdxdocs/integrations/langgraph.mdxdocs/reference/performance.mdxdocs/integrations/about.mdxdocs/plugins/adaptive/about.mdxdocs/about/concepts/framework-integrations.mdxdocs/instrument-applications/about.mdxdocs/plugins/observability/about.mdxdocs/getting-started/installation.mdxdocs/about/ecosystem.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/integrate-frameworks/about.mdxdocs/nemo-relay-cli/about.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxdocs/integrations/langchain.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrations/deepagents.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/getting-started/quick-start/python.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/about/concepts/subscribers.mdxdocs/about/overview.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/instrument-applications/advanced-guide.mdxdocs/resources/troubleshooting/index.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/code-examples.mdxdocs/plugins/observability/openinference.mdxdocs/plugins/adaptive/configuration.mdxdocs/integrations/openclaw-plugin.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/about/concepts/plugins.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/resources/support-and-faqs.mdx
**/{docs,examples,README}/**/*.{md,mdx}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)
Review documentation for NVIDIA technical writing style, terminology, and NeMo Relay repo accuracy—flagging stale commands, package names, APIs, bindings, repo paths, or support claims before stylistic issues
Files:
docs/contribute/testing-and-docs.mdxdocs/getting-started/configuration.mdxdocs/integrations/langgraph.mdxdocs/reference/performance.mdxdocs/integrations/about.mdxdocs/plugins/adaptive/about.mdxdocs/about/concepts/framework-integrations.mdxdocs/instrument-applications/about.mdxdocs/plugins/observability/about.mdxdocs/getting-started/installation.mdxdocs/about/ecosystem.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/integrate-frameworks/about.mdxdocs/nemo-relay-cli/about.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxdocs/integrations/langchain.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrations/deepagents.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/getting-started/quick-start/python.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/about/concepts/subscribers.mdxdocs/about/overview.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/instrument-applications/advanced-guide.mdxdocs/resources/troubleshooting/index.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/code-examples.mdxdocs/plugins/observability/openinference.mdxdocs/plugins/adaptive/configuration.mdxdocs/integrations/openclaw-plugin.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/about/concepts/plugins.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/resources/support-and-faqs.mdx
**/{docs,examples}/**/*.{md,mdx}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)
Confirm that commands, package names, file paths, and APIs in documentation are correct and current with the repository—treat stale or incorrect references as blocking issues
Use title case for headings in technical documentation
Ensure code blocks, tables, and lists are introduced with complete lead-in sentences that clearly describe what follows
Use descriptive anchor text for links instead of bare URLs or generic labels such as 'here'
Format commands, code elements, expressions, file names, and paths as inline code (monospace) in documentation
Use active voice, present tense, short sentences, and plain English in documentation to improve clarity
Ensure NVIDIA is capitalized correctly throughout documentation
Use consistent terminology throughout each document for the same concept
Structure procedures with imperative steps that are easy to scan and split into smaller tasks when sequences become too long
Ensure code examples in documentation are introduced by full sentences and match current APIs and build commands
Prefer 'after' over 'once' for temporal references to improve clarity in documentation
Use 'can' instead of 'may' when the meaning is possibility rather than permission in documentation
Avoid ambiguous numeric dates and ordinal dates in body text of documentation—use clear date formatting instead
Verify that examples and procedures in documentation are likely to work as written without errors or outdated steps
For learning-oriented documentation, avoid forcing trademark symbols unless the source documentation explicitly requires them
Files:
docs/contribute/testing-and-docs.mdxdocs/getting-started/configuration.mdxdocs/integrations/langgraph.mdxdocs/reference/performance.mdxdocs/integrations/about.mdxdocs/plugins/adaptive/about.mdxdocs/about/concepts/framework-integrations.mdxdocs/instrument-applications/about.mdxdocs/plugins/observability/about.mdxdocs/getting-started/installation.mdxdocs/about/ecosystem.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/integrate-frameworks/about.mdxdocs/nemo-relay-cli/about.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxdocs/integrations/langchain.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrations/deepagents.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/getting-started/quick-start/python.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/about/concepts/subscribers.mdxdocs/about/overview.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/instrument-applications/advanced-guide.mdxdocs/resources/troubleshooting/index.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/code-examples.mdxdocs/plugins/observability/openinference.mdxdocs/plugins/adaptive/configuration.mdxdocs/integrations/openclaw-plugin.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/about/concepts/plugins.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/resources/support-and-faqs.mdx
**/*.{rs,py,go,js,ts,html,md,mdx,toml}
📄 CodeRabbit inference engine (CONTRIBUTING.md)
Include SPDX license header
SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.andSPDX-License-Identifier: Apache-2.0in all source files
Files:
docs/contribute/testing-and-docs.mdxdocs/getting-started/configuration.mdxdocs/integrations/langgraph.mdxdocs/reference/performance.mdxdocs/integrations/about.mdxdocs/plugins/adaptive/about.mdxdocs/about/concepts/framework-integrations.mdxdocs/instrument-applications/about.mdxCONTRIBUTING.mddocs/plugins/observability/about.mdxdocs/getting-started/installation.mdxdocs/about/ecosystem.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/integrate-frameworks/about.mdxdocs/nemo-relay-cli/about.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxdocs/integrations/langchain.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrations/deepagents.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/getting-started/quick-start/python.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/about/concepts/subscribers.mdxdocs/about/overview.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/instrument-applications/advanced-guide.mdxAGENTS.mddocs/resources/troubleshooting/index.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/code-examples.mdxdocs/plugins/observability/openinference.mdxdocs/plugins/adaptive/configuration.mdxdocs/integrations/openclaw-plugin.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/about/concepts/plugins.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/resources/support-and-faqs.mdxscripts/docs/generate_rust_library_reference.py
{docs/**,README.md,CONTRIBUTING.md,RELEASING.md,SECURITY.md}
⚙️ CodeRabbit configuration file
{docs/**,README.md,CONTRIBUTING.md,RELEASING.md,SECURITY.md}: Review documentation for technical accuracy against the current API, command correctness, and consistency across language bindings.
Flag stale examples, missing SPDX headers where required, and instructions that no longer match CI or pre-commit behavior.
Files:
docs/contribute/testing-and-docs.mdxdocs/getting-started/configuration.mdxdocs/integrations/langgraph.mdxdocs/reference/performance.mdxdocs/integrations/about.mdxdocs/plugins/adaptive/about.mdxdocs/about/concepts/framework-integrations.mdxdocs/instrument-applications/about.mdxCONTRIBUTING.mddocs/plugins/observability/about.mdxdocs/getting-started/installation.mdxdocs/about/ecosystem.mdxdocs/instrument-applications/instrument-llm-call.mdxdocs/integrate-frameworks/about.mdxdocs/nemo-relay-cli/about.mdxdocs/resources/troubleshooting/trace-incident-runbook.mdxdocs/integrations/langchain.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrations/deepagents.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/getting-started/quick-start/python.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/about/concepts/subscribers.mdxdocs/about/overview.mdxdocs/instrument-applications/instrument-tool-call.mdxdocs/instrument-applications/advanced-guide.mdxdocs/resources/troubleshooting/index.mdxdocs/instrument-applications/adding-scopes-and-marks.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/code-examples.mdxdocs/plugins/observability/openinference.mdxdocs/plugins/adaptive/configuration.mdxdocs/integrations/openclaw-plugin.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/about/concepts/plugins.mdxdocs/integrate-frameworks/provider-response-codecs.mdxdocs/resources/support-and-faqs.mdx
{crates/adaptive/**/*.rs,**/*test*.{rs,py,go,ts,js},**/*adaptive*test*.{rs,py,go,ts,js},docs/plugins/adaptive/**}
📄 CodeRabbit inference engine (.agents/skills/maintain-optimizer/SKILL.md)
Maintain documented and tested validation and report behavior for adaptive surfaces
Files:
docs/plugins/adaptive/about.mdxdocs/plugins/adaptive/configuration.mdx
**/*.{md,rst,html,txt}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-brand-terminology.md)
**/*.{md,rst,html,txt}: Always spellNVIDIAin all caps. Do not useNvidia,nvidia,nVidia,nVIDIA, orNV.
Usean NVIDIAbefore a noun because the name starts with an 'en' sound.
Do not add a registered trademark symbol afterNVIDIAwhen referring to the company.
Use trademark symbols with product names only when the document type or legal guidance requires them.
Verify official capitalization, spacing, and hyphenation for product names.
Precede NVIDIA product names withNVIDIAon first mention when it is natural and accurate.
Do not rewrite product names for grammar or title-case rules.
Preserve third-party product names according to the owner's spelling.
Include the company name and full model qualifier on first use when it helps identify the model.
Preserve the official capitalization and punctuation of model names.
Use shorter family names only after the full name is established.
Spell out a term on first use and put the acronym in parentheses unless the acronym is widely understood by the intended audience.
Use the acronym on later mentions after it has been defined.
For long documents, reintroduce the full term if readers might lose context.
Form plurals of acronyms withs, not an apostrophe, such asGPUs.
In headings, common acronyms can remain abbreviated. Spell out the term in the first or second sentence of the body.
Common terms such asCPU,GPU,PC,API, andUIusually do not need to be spelled out for developer audiences.
Files:
CONTRIBUTING.mdAGENTS.md
**/*.{md,rst,html}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-brand-terminology.md)
Link the first mention of a product name when the destination helps the reader.
Files:
CONTRIBUTING.mdAGENTS.md
**/*.md
📄 CodeRabbit inference engine (.agents/skills/contribute-integration/SKILL.md)
Documentation must be updated if activation or usage changed
**/*.md: Use title case consistently in technical documentation headings
Avoid quotation marks, ampersands, and exclamation marks in headings
Keep product, event, research, and whitepaper names in their official title case
Use title case for table headers
Do not force social-media sentence case into technical docs
Format code elements, commands, parameters, package names, and expressions in monospace
Format directories, file names, and paths in monospace using backticks
Use angle brackets inside monospace for variables inside paths, such as/home/<username>/.login
Format error messages and strings in quotation marks, keeping literal code strings in code formatting when clearer
Format UI buttons, menus, fields, and labels in bold
Use angle brackets between UI labels for menu paths, such as File > Save As
Use italics for new terms on first use, sparingly and only when introducing the term
Use italics for publication titles
Format keyboard shortcuts in plain text, such as Press Ctrl+Alt+Delete
Use owner/repo link text for GitHub repositories, preferring[NVIDIA/NeMo](link)over prose references like 'the GitHub repo'
Introduce every code block with a complete sentence
Do not make a code block complete the grammar of the previous sentence
Do not continue a sentence after a code block
Use syntax highlighting when the format supports it for code blocks
Avoid the word 'snippet' unless the surrounding docs already use it as a term of art
Keep inline method, function, and class references consistent with nearby docs, omitting empty parentheses for prose readability when no call is shown
Use descriptive anchor text that matches the destination title when possible for links
Avoid raw URLs in running text
Avoid generic anchor text such as 'here,' 'this page,' and 'read more'
Include acronyms in link text when a linked term includes an acronym
Do not link long sentences or multiple sentences
Avoid links ...
Files:
CONTRIBUTING.mdAGENTS.md
**/{docs,examples,**/*.md,*.patch,*.diff,.github,*.sh,*.yaml,*.yml}
📄 CodeRabbit inference engine (.agents/skills/rename-surfaces/SKILL.md)
Update documentation, examples, CI configuration, and patch artifacts when performing rename operations
Files:
CONTRIBUTING.mdAGENTS.md
**/*.{md,rst,txt}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)
Spell
NVIDIAin all caps. Do not useNvidia,nvidia, orNV.
Files:
CONTRIBUTING.mdAGENTS.md
**/*.{md,rst}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)
**/*.{md,rst}: 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 steps. Keep steps parallel and split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English.
Usecanfor possibility and reservemayfor permission.
Useafterfor temporal relationships instead ofonce.
Preferrefer tooverseewhen the wording points readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical docs.
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 include commas in thousands.
Do not add trademark symbols to learning-oriented docs unless the source, platform, or legal guidance explicitly requires them.
Files:
CONTRIBUTING.mdAGENTS.md
**/*.{rs,py,js,ts,jsx,tsx,go,sh,yml,yaml,toml,json,md}
📄 CodeRabbit inference engine (AGENTS.md)
Keep SPDX headers on source, docs, scripts, and configuration files. The project is Apache-2.0.
Files:
CONTRIBUTING.mdfern/components/CustomFooter.tsxAGENTS.mdscripts/docs/generate_rust_library_reference.py
docs/integrate-frameworks/**
📄 CodeRabbit inference engine (.agents/skills/add-integration/SKILL.md)
Integration documentation or notes must be updated when user behavior changes
Files:
docs/integrate-frameworks/about.mdxdocs/integrate-frameworks/adding-scopes.mdxdocs/integrate-frameworks/non-serializable-data.mdxdocs/integrate-frameworks/wrap-llm-calls.mdxdocs/integrate-frameworks/wrap-tool-calls.mdxdocs/integrate-frameworks/provider-codecs.mdxdocs/integrate-frameworks/code-examples.mdxdocs/integrate-frameworks/using-codecs.mdxdocs/integrate-frameworks/provider-response-codecs.mdx
**/*.{wasm,js,ts}{,x}
📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)
Ensure WebAssembly package naming conventions are consistent with generated package expectations and downstream consumption
Files:
fern/components/CustomFooter.tsx
**/*.{js,ts,jsx,tsx}
📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)
Run Node.js formatting with
npm run format --workspace=nemo-relay-nodeUse
camelCasefor Node.js naming conventions
Files:
fern/components/CustomFooter.tsx
AGENTS.md
📄 CodeRabbit inference engine (CLAUDE.md)
Document agent implementations in AGENTS.md with clear descriptions of functionality and usage
Files:
AGENTS.md
.github/workflows/*.{yml,yaml}
📄 CodeRabbit inference engine (.agents/skills/maintain-ci/SKILL.md)
.github/workflows/*.{yml,yaml}: Putpermissions:on each job that needs token access in GitHub Actions workflows
Avoid workflow-level permissions unless the repository intentionally centralizes them and the inheritance tradeoff is documented
Keep third-party actions pinned to full commit SHAs and preserve the readable version comment after the SHA
Prefer action-native or ecosystem-native caching over genericactions/cache
Use lockfiles or dependency manifests to drive cache invalidation in GitHub Actions workflows
Keep deploy and publish permissions isolated to the jobs that need them in GitHub Actions
Read both caller and callee when a workflow usesworkflow_callin GitHub Actions
Put release-tag validation in the earliest practical caller job when the pipeline has tag-based publish behavior
Keep release-tag policy aligned withRELEASING.md: raw SemVer tags only, no leadingv
contents: readis the default minimum permission for checkout-based build, test, docs, and packaging jobs
pull-requests: readis required for PR metadata lookup jobs in GitHub Actions workflows
pages: writeandid-token: writeshould be limited to Pages deployment jobs and callers that invoke them through reusable workflows
For reusable workflows, the caller must grant every permission the called jobs require; the callee cannot elevate beyond what the caller provides
Preferastral-sh/setup-uvcache support withcache-dependency-globanchored touv.lock
PreferSwatinem/rust-cachewith explicitshared-keyandworkspacesinstead of ad hoc target-directory caching
Avoid caching generated outputs that can hide stale behavior unless the repo already relies on them deliberately
Files:
.github/workflows/fern-docs.yml
.{github/workflows/*.{yml,yaml},gitlab-ci.yml}
📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)
Ensure CI workflows reference the same package names, install commands, and build commands as local development workflows
Files:
.github/workflows/fern-docs.yml
{pyproject.toml,**/*.py}
📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)
Maintain consistency between Python package names in
pyproject.tomland import paths used throughout the codebase
Files:
scripts/docs/generate_rust_library_reference.py
**/*.{py,txt,toml,cfg,yaml,yml}
📄 CodeRabbit inference engine (.agents/skills/rename-surfaces/SKILL.md)
Update Python package names and top-level module imports during coordinated rename operations
Files:
scripts/docs/generate_rust_library_reference.py
{scripts/**,third-party/**}
📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)
{scripts/**,third-party/**}: For third-party integration or patch changes, run patch validation with./scripts/apply-patches.sh --checkand relevant integration tests. Keep root./scripts/*.shwrappers for third-party flows
Run third-party patch bootstrap with./scripts/bootstrap-third-party.sh
Run third-party patch validation with./scripts/apply-patches.sh --check
Files:
scripts/docs/generate_rust_library_reference.py
**/*.py
📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)
**/*.py: Run Python formatting withuv run ruff format python
Run Python testing withuv run pytest -k "<pattern>"Use Ruff for Python linting with rule sets
E,F,W,IUse Ruff formatter for Python code with line length 120 and double quotes
Use
tyfor Python type checkingUse snake_case naming convention for Python identifiers
Files:
scripts/docs/generate_rust_library_reference.py
**/*.{rs,py}
📄 CodeRabbit inference engine (AGENTS.md)
Use
snake_casefor Rust and Python naming conventionsKeep
SONAR_IGNORE_START/SONAR_IGNORE_ENDblocks as small as possible with brief explanatory comments for documented false positives only, requiring reviewer sign-off
Files:
scripts/docs/generate_rust_library_reference.py
🧠 Learnings (3)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:30:39.180Z
Learning: Prefer the documented public API, not internal shortcuts, when contributing documentation or examples
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:30:39.180Z
Learning: Keep package names, repo references, and build commands current in documentation and examples
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:30:39.180Z
Learning: Update entry-point docs when examples or reading paths change
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:30:39.180Z
Learning: Keep release-process and release-notes guidance in repo-maintainer docs such as `RELEASING.md`, not as user-facing docs pages or `CHANGELOG.md`
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:30:39.180Z
Learning: Keep stable user-facing wrappers at `scripts/` root in docs and examples; only point at namespaced helper paths when documenting internal maintenance work
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:30:39.180Z
Learning: Update `README.md` or `docs/index.md` when entry points change
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:30:39.180Z
Learning: Update relevant getting-started or reference docs when changes are made
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:30:39.180Z
Learning: Ensure example commands still match current package names and paths
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:30:39.180Z
Learning: Update relevant package or crate `README.md` files when examples or binding guidance changes
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:30:39.180Z
Learning: Release-policy docs must point to GitHub Releases as the only release-history source of truth
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:30:39.180Z
Learning: Run `just docs` when the docs site changes; `./scripts/build-docs.sh html` remains the compatibility wrapper
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:30:53.560Z
Learning: Prioritize factual accuracy over copy polish when reviewing documentation changes
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Preserve the shared runtime model across bindings. Do not add behavior to one primary binding without considering Rust, Python, and Node.js parity.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Prefer documented public APIs and stable wrapper commands. Do not rely on internal helpers in examples or user-facing docs.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Keep primary documentation focused on Rust, Python, and Node.js. Treat Go, WebAssembly, and raw FFI as experimental and source-first unless binding-support guidance changes.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Keep async behavior on the existing tokio-based model. Bindings should preserve callback and future lifetimes rather than blocking or hiding async work unexpectedly.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Do not hand-edit generated or packaged outputs unless the repository workflow expects them to be checked in. Regenerate through the documented recipe or script.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Scope stacks are hierarchical and always have a root scope. They establish parent-child event relationships, visibility for scope-local middleware and subscribers, cleanup boundaries, and concurrent request isolation.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Scope-local middleware and subscribers are owned by a scope and disappear when that scope closes. Global registrations stay process-wide until removed.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Middleware is priority-ordered after merging global and visible scope-local entries.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Intercepts change the real execution path. Request intercepts rewrite the request. Execution intercepts wrap or replace the callback. Stream execution intercepts handle streaming lifecycle behavior.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Guardrails either block execution or sanitize emitted observability payloads. Sanitize guardrails do not rewrite the real callback arguments or return value.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Managed execution order is conditional guardrails, request intercepts, sanitize-request guardrails for start events, execution intercepts, callback execution, then sanitize-response guardrails for end events.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Events use ATOF `0.1` as the canonical event format. Scope events use start/end pairs; mark events record runtime checkpoints.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: LLM and tool event metadata belongs in the category profile, such as `model_name`, `tool_call_id`, and custom `subtype` fields.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Exporters can transform runtime events to ATIF trajectories, OpenTelemetry traces, or OpenInference-compatible output. Root scope identity is used to isolate concurrent agents.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Rust is the source of truth for runtime behavior. Binding APIs should mirror the Rust semantics unless a language-specific wrapper intentionally improves ergonomics.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Python wrapper modules live under `python/nemo_relay/`; the native extension is built from `crates/python` with `maturin`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Node.js public entry points include the main runtime package plus `nemo-relay-node/typed`, `nemo-relay-node/plugin`, and `nemo-relay-node/adaptive`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Go uses the C FFI and requires the FFI library build before tests; `just test-go` handles the library path setup.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: WebAssembly includes Rust wasm-bindgen tests plus JS wrapper/package tests; `just test-wasm` runs both paths.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Update `README.md`, `fern/`, package READMEs, and binding-support notes when public behavior, package names, examples, or supported bindings change.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Keep release-process details in maintainer docs such as `RELEASING.md`. Do not move release-history policy into user-facing docs or `CHANGELOG.md`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Keep stable public wrappers at the `scripts/` root in docs and examples. Reference namespaced helper paths only when documenting internal maintenance work.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Use branch prefixes from the contributor docs: `feat/`, `fix/`, `docs/`, `test/`, or `refactor/`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Use signed-off commits for PR work: `git commit -s`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: Before creating, opening, publishing, or editing a pull request, read `.github/pull_request_template.md` and use it as the PR body skeleton. Preserve its visible headings, checklist items, and related-issue guidance; fill the sections instead of replacing them with a generic summary.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: If repo-local PR guidance such as the `prepare-pr` skill conflicts with generic GitHub connector or plugin guidance, follow the repo-local PR guidance for PR body format and review handoff details.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:17.029Z
Learning: PR descriptions should include what changed, why, how it was tested, and any breaking changes within the repository template format.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Use release tags in raw Rust-compatible SemVer format without leading `v` (e.g., `0.1.0`, not `v0.1.0`)
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Use branch name prefixes: `feat/` for features, `fix/` for bug fixes, `docs/` for documentation, `test/` for tests, `refactor/` for restructuring
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Use `git commit -s` or add `Signed-off-by:` trailer for Developer Certificate of Origin sign-off on all commits
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Use commit message format `type: short description` with valid types: `feat`, `fix`, `docs`, `test`, `refactor`, `chore`, `perf`, keeping first line under 72 characters
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Run tests for every language affected by changes using `just test-rust`, `just test-python`, `just test-go`, `just test-node`, and `just test-wasm`
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Update reference docs for any public API change in the relevant crate or package
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Run `just docs` or `./scripts/build-docs.sh html` before opening PR for documentation-heavy changes to regenerate ignored Fern API reference pages
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Ensure pre-commit hooks pass before submitting a pull request
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Include in PR description: What (concise summary), Why (motivation/issue), How (implementation details), Testing (test suites run), and Breaking changes (if any)
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Rebase branch on latest `main` before submitting PR to avoid merge conflicts
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Verify changes compile cleanly with relevant `./scripts/build*.sh` entrypoint before submitting PR
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Validate source builds for experimental bindings (Go, WebAssembly, FFI) when touched in the same branch
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Address PR review feedback by pushing additional commits without force-pushing during review
Learnt from: CR
Repo: NVIDIA/NeMo-Relay
Timestamp: 2026-05-26T20:31:34.463Z
Learning: Require at least one approving review and CI passing before merging PRs
📚 Learning: 2026-05-03T04:23:07.497Z
Learnt from: willkill07
Repo: NVIDIA/NeMo-Flow PR: 46
File: .github/workflows/ci_rust.yml:31-64
Timestamp: 2026-05-03T04:23:07.497Z
Learning: In GitHub Actions workflow YAML, it’s valid to conditionally disable a service container by setting the service container’s `image` to an empty string (`''`) via a matrix variable (e.g., `redis_service_image: ''`). This intentionally makes the runner skip service initialization for that matrix entry rather than failing the job. When reviewing workflows, don’t flag this as an error if the workflow uses an empty `image` to disable the service on specific matrix entries (e.g., OS-specific setups); verify the `image` is sourced from the matrix variable and that the service is only expected to be available when a non-empty image is provided.
Applied to files:
.github/workflows/fern-docs.yml
📚 Learning: 2026-04-15T18:16:52.951Z
Learnt from: bbednarski9
Repo: NVIDIA/NeMo-Flow PR: 1
File: docs/atof-event-format.md:381-381
Timestamp: 2026-04-15T18:16:52.951Z
Learning: In docs/atof-event-format.md (and when reviewing references to this format across the NeMo-Flow repo), treat `AtifExporter.events_to_steps()` as the intended public/API method name. Do not flag it as inconsistent with internal Rust symbol names (e.g., `event_to_steps` in `crates/core/src/atif.rs`)—the documentation’s public-facing naming may differ intentionally from internal implementation details.
Applied to files:
.pre-commit-config.yaml
🪛 LanguageTool
docs/integrate-frameworks/using-codecs.mdx
[style] ~177-~177: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ized request or response annotations. - Use [Handle Non-Serializable Data](/integra...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~178-~178: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ts cannot pass through JSON payloads. - Use [Integrate into Frameworks Code Example...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
docs/integrate-frameworks/provider-response-codecs.mdx
[style] ~349-~349: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...s and full request/response examples. - Use [Wrap LLM Calls](/integrate-frameworks/...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~350-~350: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...o add the managed LLM boundary first. - Use [Observability](/plugins/observability/...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
🔇 Additional comments (49)
docs/integrations/langgraph.mdx (1)
7-8: Past comment contradicts the coding guidelines.The previous review requested HTML-style SPDX comments, but the coding guidelines explicitly require JSX-style comments for MDX files: "Use MDX SPDX comments with {/* and */} delimiters instead of HTML comment delimiters in top-of-file MDX comments." The current JSX format is correct.
docs/integrations/about.mdx (1)
1-45: LGTM!docs/about/concepts/framework-integrations.mdx (1)
1-155: LGTM!docs/instrument-applications/about.mdx (1)
1-46: LGTM!CONTRIBUTING.md (1)
1-334: LGTM!docs/plugins/observability/about.mdx (1)
1-92: LGTM!docs/getting-started/installation.mdx (1)
1-95: LGTM!docs/about/ecosystem.mdx (1)
1-119: LGTM!docs/instrument-applications/instrument-llm-call.mdx (1)
1-246: LGTM!docs/integrate-frameworks/about.mdx (1)
1-64: LGTM!docs/nemo-relay-cli/about.mdx (1)
1-66: LGTM!docs/resources/troubleshooting/trace-incident-runbook.mdx (1)
68-68: LGTM!Also applies to: 108-109, 125-126, 153-156
docs/integrations/langchain.mdx (1)
93-93: LGTM!docs/integrate-frameworks/adding-scopes.mdx (1)
183-184: LGTM!docs/integrations/deepagents.mdx (1)
108-108: LGTM!docs/integrate-frameworks/non-serializable-data.mdx (1)
188-190: LGTM!justfile (1)
697-705: LGTM!docs/getting-started/quick-start/python.mdx (1)
11-11: LGTM!Also applies to: 126-126
docs/about/concepts/subscribers.mdx (2)
8-9: Past review comment is outdated—current SPDX format is correct.The JSX comment format
{/* ... */}is the required format for MDX files per the coding guideline:**/*.mdx: "Use MDX SPDX comments with {/* and */} delimiters instead of HTML comment delimiters."
1-177: LGTM!docs/about/overview.mdx (3)
8-9: Past review comment is outdated—current SPDX format is correct.The JSX comment format is required for MDX files per
**/*.mdx: "Use MDX SPDX comments with {/* and */} delimiters."
22-22: Past review already flagged the style issue at line 22.The sentence about "work" remains awkwardly placed. This was noted in the previous review.
1-134: LGTM!docs/instrument-applications/instrument-tool-call.mdx (3)
6-7: Past review comment is outdated—current SPDX format is correct.JSX comment delimiters are required for MDX per
**/*.mdxguideline.
26-28: Past review comment is outdated—current link paths are correct.The quick-start and integrate-frameworks links use the correct migrated paths.
Also applies to: 32-32, 222-222
1-224: LGTM!docs/instrument-applications/advanced-guide.mdx (2)
6-7: Past review comment is outdated—current SPDX format is correct.JSX delimiters are required for MDX files.
1-227: LGTM!AGENTS.md (2)
157-157: Past review comment is outdated—current guidance is correct.Line 157 explicitly includes the required
just docs-linkcheckguidance: "Run docs link validation withjust docs-linkcheckwhen links change."
1-248: LGTM!docs/resources/troubleshooting/index.mdx (2)
145-145: Past review comment is outdated—current link paths are correct.All links use the correct
/integrate-frameworks/prefix (not the outdated/integrate-into-frameworks/).Also applies to: 185-185
1-186: LGTM!docs/instrument-applications/adding-scopes-and-marks.mdx (3)
6-7: Past review comment is outdated—current SPDX format is correct.JSX delimiters are required for MDX files.
22-24: Past review comment is outdated—current link paths are correct.Quick-start links use the correct
/getting-started/quick-start/...paths.
1-204: LGTM!docs/integrate-frameworks/wrap-llm-calls.mdx (1)
1-160: LGTM!docs/integrate-frameworks/wrap-tool-calls.mdx (1)
20-20: LGTM!Also applies to: 127-127, 152-154
.github/workflows/fern-docs.yml (1)
393-396: LGTM!docs/integrate-frameworks/provider-codecs.mdx (1)
36-36: LGTM!Also applies to: 48-48, 371-372, 374-374
docs/integrate-frameworks/code-examples.mdx (1)
12-18: LGTM!Also applies to: 259-259
docs/plugins/observability/openinference.mdx (1)
53-53: LGTM!docs/plugins/adaptive/configuration.mdx (1)
37-38: LGTM!docs/integrations/openclaw-plugin.mdx (1)
204-204: LGTM!docs/integrate-frameworks/using-codecs.mdx (1)
21-21: LGTM!Also applies to: 43-43, 176-178
docs/about/concepts/plugins.mdx (1)
153-155: LGTM!Also applies to: 166-166
.pre-commit-config.yaml (1)
70-70: LGTM!docs/integrate-frameworks/provider-response-codecs.mdx (1)
27-27: LGTM!Also applies to: 348-350
docs/resources/support-and-faqs.mdx (1)
125-125: LGTM!Also applies to: 127-127, 129-129, 205-205, 225-225, 304-304, 314-314, 328-328, 338-341, 387-390, 406-406, 427-429, 438-438
scripts/docs/generate_rust_library_reference.py (1)
594-594: LGTM!
Salonijain27
left a comment
There was a problem hiding this comment.
Approved from a dependency point of view
|
/merge |
Overview
Switch the documentation site from Sphinx to Fern and migrate the docs content, navigation, and API reference generation to the Fern structure.
Details
just docs,just docs-linkcheck, anduv run pre-commit run --all-files; the Fern checks pass with one light-mode accent contrast warning reported by Fern.Where should the reviewer start?
Start with
fern/docs.ymlandscripts/build-docs.shto understand the new docs entry points and navigation, then sample the migration pattern indocs/index.ymlanddocs/getting-started/quick-start/index.mdx.Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)
Summary by CodeRabbit
New Features
Documentation
Refactor
Chores