Skip to content

skills: align user skills with config layering removal - #774

Merged
rapids-bot[bot] merged 2 commits into
mainfrom
skills/relay-669-user-skills
Aug 13, 2026
Merged

skills: align user skills with config layering removal#774
rapids-bot[bot] merged 2 commits into
mainfrom
skills/relay-669-user-skills

Conversation

@exactlyallan

@exactlyallan exactlyallan commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Overview

Recasts GitHub PR #739 onto a direct NVIDIA/NeMo-Relay branch so the updated NVSkills/NVCARPS pull request workflow can run. The content updates the public NeMo Relay user skills for the RELAY-669 follow-up to RELAY-667: get-started guidance now treats repository-local Relay config files as unsupported active configuration while preserving local ATOF and ATIF output artifacts, and the NeMo Flow migration helper reports legacy project-local configuration for manual migration instead of converting it into unsupported Relay project configuration.

  • I confirm this contribution is my own work, or I have the right to submit it under this project license.
  • I searched existing issues and open pull requests, and this does not duplicate existing work.

Details

  • Added a get-started guardrail that prevents agents from creating, editing, merging, or trusting repository-local .nemo-relay/config.toml and .nemo-relay/plugins.toml.
  • Updated the CLI try-now reference and affected get-started evals to use supported user or explicit configuration only, and to distinguish .nemo-relay/atof and .nemo-relay/atif output directories from configuration layers.
  • Updated the NeMo Flow migration skill guidance and helper so legacy .nemo-flow/config.toml and .nemo-flow/plugins.toml are left unchanged and reported as manual migration items.
  • Added a migration eval covering repositories with legacy project-local NeMo Flow configuration.
  • Replayed the final GitHub PR docs: align user skills with config layering removal #739 file state onto current upstream/main as one signed-off commit on skills/relay-669-user-skills.

Validation:

  • python3 -m py_compile skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
  • python3 JSON parse for affected eval files
  • Migration helper dry-run fixture for legacy project config
  • Migration helper write-mode fixture for legacy project config plus unrelated source/path migration
  • .venv/bin/ruff check skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
  • .venv/bin/ty check skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
  • .venv/bin/pre-commit run --files skills/nemo-relay-get-started/SKILL.md skills/nemo-relay-get-started/evals/evals.json skills/nemo-relay-get-started/references/cli-try-now.md skills/nemo-relay-migrate-from-flow/SKILL.md skills/nemo-relay-migrate-from-flow/evals/evals.json skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
  • git diff --check

Known follow-up: skill-card.md, BENCHMARK.md, and skill.oms.sig were not refreshed locally; those should be refreshed through the normal NVSkills publication workflow.

Where should the reviewer start?

Start with skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py, especially the legacy project configuration detection and blocked path rename logic. Then review skills/nemo-relay-get-started/references/cli-try-now.md for the user-facing configuration guidance.

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

Summary by CodeRabbit

  • New Features

    • Added safeguards for legacy project-local configuration during NeMo Flow migrations.
    • Migration previews now identify protected files and provide manual migration guidance.
    • Secure checks prevent protected files from changing unexpectedly.
  • Bug Fixes

    • Clarified that repository-local Relay configuration is unsupported and must not be used or modified.
    • Improved validation and troubleshooting guidance for supported configuration and output files.
    • Added coverage for safe migration when legacy project configuration is present.
  • Documentation

    • Updated onboarding, migration, evaluation, benchmark, and verification materials.

Recast the RELAY-669 user-skill updates onto current upstream main for direct upstream CI. Keep repository-local Relay configuration unsupported in get-started guidance and make the Flow migration helper report legacy project-local configuration for manual migration instead of rewriting or renaming it.

Validation: python3 -m py_compile skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py; python3 JSON parse for affected eval files; migration helper dry-run fixture for legacy project config; migration helper write-mode fixture for legacy project config plus unrelated source/path migration; .venv/bin/ruff check skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py; .venv/bin/ty check skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py; .venv/bin/pre-commit run --files skills/nemo-relay-get-started/SKILL.md skills/nemo-relay-get-started/evals/evals.json skills/nemo-relay-get-started/references/cli-try-now.md skills/nemo-relay-migrate-from-flow/SKILL.md skills/nemo-relay-migrate-from-flow/evals/evals.json skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py; git diff --check
Signed-off-by: Allan Enemark <exactly.allan@gmail.com>
@exactlyallan
exactlyallan requested a review from a team as a code owner August 12, 2026 23:01
@github-actions github-actions Bot added size:M PR is medium Skills PR changes are related to skills lang:python PR changes/introduces Python code labels Aug 12, 2026
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

Changes

Configuration protection

Layer / File(s) Summary
Relay configuration guidance
skills/nemo-relay-get-started/SKILL.md, skills/nemo-relay-get-started/evals/evals.json, skills/nemo-relay-get-started/references/cli-try-now.md, skills/nemo-relay-get-started/BENCHMARK.md, skills/nemo-relay-get-started/skill-card.md, skills/nemo-relay-get-started/skill.oms.sig
The guidance rejects repository-local Relay configuration and validates supported user or explicit configuration. Benchmark metadata, skill metadata, and attestation data were refreshed.
Migration workflow contract
skills/nemo-relay-migrate-from-flow/SKILL.md, skills/nemo-relay-migrate-from-flow/evals/evals.json
The migration workflow reports .nemo-flow configuration files, leaves them unchanged, and requires confirmation after warning review.
Protected configuration migration flow
skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
The helper detects legacy configuration, excludes protected files and paths from changes, rescans before writes, and reports manual migration warnings.
Migration publication metadata
skills/nemo-relay-migrate-from-flow/BENCHMARK.md, skills/nemo-relay-migrate-from-flow/skill-card.md, skills/nemo-relay-migrate-from-flow/skill.oms.sig
Benchmark methodology, evaluation results, skill metadata, and signed resource digests were updated.

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

Mergeability Score: 🟡 Moderate · up to d1939

The migration helper may incorrectly relocate symlinked legacy configuration, and the published benchmark currently reports PASS despite failing its stated effectiveness gate. These bounded correctness and publication-readiness issues should be fixed or explicitly accepted before merging.

Sequence Diagram(s)

sequenceDiagram
  participant CLI
  participant MigrationScript
  participant Repository
  CLI->>MigrationScript: Start migration scan
  MigrationScript->>Repository: Detect legacy project configuration
  Repository-->>MigrationScript: Return protected configuration set
  MigrationScript-->>CLI: Report files for manual migration
  CLI->>MigrationScript: Confirm safe migration
  MigrationScript->>Repository: Revalidate protected configuration
  MigrationScript->>Repository: Apply unrelated safe migrations
Loading

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
Title check ❌ Error The title describes the change but does not use an allowed Conventional Commits type such as feat, fix, docs, or chore. Replace "skills:" with an allowed lowercase type and keep the concise summary, for example "docs: align user skills with config layering removal".
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The description includes all required sections, checklist confirmations, change details, reviewer guidance, validation steps, and related issues.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch skills/relay-669-user-skills

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

@exactlyallan

Copy link
Copy Markdown
Contributor Author

/nvskills-ci

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 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 `@skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py`:
- Around line 336-342: Update collect_legacy_project_configs and
directory_contains_legacy_config_at to inspect .nemo-flow/config.toml and
.nemo-flow/plugins.toml by name using no-follow metadata, without requiring
regular files or traversing symlinks. Include matching symlink or other
non-regular entries in the reported LegacyProjectConfig results, and ensure the
--write --rename-paths flow refuses renaming any containing .nemo-flow directory
when such protected entries exist.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 64492810-109a-42c4-8758-48f05fbae256

📥 Commits

Reviewing files that changed from the base of the PR and between 9bf237a and db4ed2e.

📒 Files selected for processing (6)
  • skills/nemo-relay-get-started/SKILL.md
  • skills/nemo-relay-get-started/evals/evals.json
  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-migrate-from-flow/evals/evals.json
  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
📜 Review details
⏰ Context from checks skipped due to timeout. (2)
  • GitHub Check: Check / Run
  • GitHub Check: request / require-nvskills-ci / require-nvskills-ci
🧰 Additional context used
📓 Path-based instructions (18)
**/*.{md,rst,html,txt}

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

**/*.{md,rst,html,txt}: Always spell NVIDIA in all caps. Do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun because the name starts with an 'en' sound.
Do not add a registered trademark symbol after NVIDIA when 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 with NVIDIA on 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 with s, not an apostrophe, such as GPUs.
In headings, common acronyms can remain abbreviated. Spell out the term in the first or second sentence of the body.
Common terms such as CPU, GPU, PC, API, and UI usually do not need to be spelled out for developer audiences.

Files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/SKILL.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:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/SKILL.md
**/*.{md,rst,txt}

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

Spell NVIDIA in all caps. Do not use Nvidia, nvidia, or NV.

Files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/SKILL.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.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once.
Prefer refer to over see when 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:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/SKILL.md
**/*

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

**/*: Format changed files with the language-native formatter before the final lint/test pass.
If dynamic plugin behavior changed, use maintain-dynamic-plugins and include the native SDK, worker protocol, Python SDK, docs, packaging, and Codecov surfaces in the validation plan.
If code changes alter APIs, bindings, commands, paths, packaging behavior, observability/adaptive semantics, or documented best practices, update any dependent maintainer or consumer skills in the same branch.
During iteration, prefer uv run pre-commit run --files <changed files...>.
Before review or handoff, run uv run pre-commit run --all-files.

**/*: Use release tags in raw Rust-compatible SemVer without a leading v; tags such as v0.1.0 are prohibited.
Use branch prefixes feat/, fix/, docs/, test/, or refactor/ according to the change purpose.
Every commit in a pull request must include a DCO Signed-off-by: sign-off.
Before submitting a pull request, ensure pre-commit hooks, relevant tests, target-specific builds, documentation updates, and a rebase on the latest main are complete.
Use commit messages in the form type: short description, with a valid type and a first line under 72 characters.

**/*: Keep observability changes scoped, surface assumptions, and define focused validation before editing.
Run affected Rust tests and just test-rust for event-field changes; run just test-python, just test-go, and just test-node when binding-native configuration or lifecycle changes; update docs and examples in the same branch.

**/*: The canonical just test-rust, just test-python, and just test-go recipes
prepare plugin fixtures automatically. Run just build-test-plugin-fixtures
before raw focused native or worker plugin tests; fixture compilation must not
happen inside an individual test case.

Files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-migrate-from-flow/evals/evals.json
  • skills/nemo-relay-get-started/evals/evals.json
  • skills/nemo-relay-get-started/SKILL.md
  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{md,mdx}

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

If links in documentation change, run just docs-linkcheck.

Use documented public APIs and stable wrapper commands in examples and user-facing documentation; do not rely on internal helpers.

**/*.{md,mdx}: Prefer the documented public API over internal shortcuts in documentation and examples.
Keep package names, repository references, and build commands current.
Contribution workflow documentation must require an issue before external contribution pull requests and note that NVIDIA contributors may use a GitHub or Linear issue.
Update entry-point documentation when examples or reading paths change.
Keep release-process and release-notes guidance in maintainer documentation such as RELEASING.md, rather than user-facing documentation pages or CHANGELOG.md.
Use stable user-facing wrappers at the scripts/ root in documentation and examples; reference namespaced helper paths only for internal maintenance documentation.
When detailed dynamic plugin guides exist, keep Rust native plugin examples, Python worker plugin examples, and grpc-v1 protocol details on separate pages.
Dynamic plugin manifests in documentation and examples should use compat.relay = ">=0.5,<1.0" unless deliberately narrower.
Render images, diagrams, tables, and other visual content at representative page widths, ensuring legibility and complete access without clipping; use responsive scaling, reflow, or overflow as appropriate and scope visual styling narrowly.
Dynamic plugin entry pages should link to native, worker, Rust example, Python example, and protocol pages when those pages exist.
Images, diagrams, tables, and custom visual content must remain legible and fully accessible at representative desktop and narrow page widths.
Release-policy documentation must point to GitHub Releases as the only release-history source of truth.
Run just docs when the documentation site changes; retain ./scripts/build-docs.sh html as the compatibility wrapper.

Files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/SKILL.md
**/*.{rs,py,js,jsx,ts,tsx,go,c,h,cc,cpp,md,toml,yml,yaml,sh}

📄 CodeRabbit inference engine (AGENTS.md)

Keep SPDX headers on source, documentation, scripts, and configuration files; the project is Apache-2.0.

Files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/SKILL.md
  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{rs,py,go,js,jsx,ts,tsx,c,h,html,md,mdx,toml}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Include the appropriate SPDX copyright and Apache-2.0 license header in every source file.

Files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/SKILL.md
  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{md,mdx,rst}

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

**/*.{md,mdx,rst}: Use title case consistently for technical documentation headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title case.
Format code elements, commands, parameters, package names, expressions, directories, file names, and paths in monospace; represent path placeholders with angle brackets inside monospace.
Format UI buttons, menus, fields, and labels in bold, and separate consecutive UI navigation labels with >.
Use quotation marks for error messages and strings when appropriate, italics for newly introduced terms and publication titles, and plain text for keyboard shortcuts.
Represent GitHub repositories with owner/repository link text, such as [NVIDIA/NeMo](link), rather than generic repository wording.
Introduce every code block with a complete sentence; do not let a code block complete or interrupt the grammar of surrounding prose; use syntax highlighting when supported.
Keep inline method, function, and class references consistent with nearby documentation; omit empty parentheses in prose when no call is shown.
Use descriptive link text matching the destination title when possible; avoid raw URLs, generic anchors, long-sentence links, and unnecessary links that distract from procedures.
Ensure lists have a complete lead-in sentence, more than one item, no more than two levels, parallel construction, one idea or action per item, and appropriate punctuation; use bullets for unordered items and numbers for ordered tasks.
Format definition lists with a bold term followed by a complete, parallel, punctuated definition.
Use tables for reference information, decision support, compatibility matrices, and comparable choices; flag one-row tables, missing captions or lead-ins, sentence-case headers where title case is expected, unexplained empty cells, and code or links that would be clearer as prose.
Write procedure steps as imperative ...

Files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/SKILL.md
**/SKILL.md

📄 CodeRabbit inference engine (AGENTS.md)

SKILL.md files must start with YAML frontmatter containing at least name and description; they do not require SPDX headers.

Files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/SKILL.md

⚙️ CodeRabbit configuration file

**/SKILL.md: Do not flag SKILL.md files for missing SPDX headers. Skill entrypoints intentionally start with YAML frontmatter instead.
Verify that every SKILL.md keeps valid YAML frontmatter with at least name and description fields before the Markdown body.

Files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/SKILL.md
**/*.{yaml,yml,toml,json}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Maintain valid YAML, TOML, and JSON files; pre-commit hooks validate these formats.

Files:

  • skills/nemo-relay-migrate-from-flow/evals/evals.json
  • skills/nemo-relay-get-started/evals/evals.json
**/*.{rs,py,go,js,ts}

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

If a language surface changed, always run that language's test target even when Rust core did not change.

**/*.{rs,py,go,js,ts}: Keep FFI and Python, Go, and Node.js binding configuration objects and subscriber/exporter methods aligned with the core observability configuration and lifecycle semantics.
Preserve complete sanitized LLM request input and annotations when enable_full_payloads is enabled, while retaining credential removal and sanitizers.
Use each exporter's documented flush and deregister order before shutdown in observability examples and implementations.

Files:

  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{rs,py,js,ts,tsx,go,java,kt,swift}

📄 CodeRabbit inference engine (.agents/skills/add-middleware/SKILL.md)

Add tests covering registration and duplicate names, deregistration and missing names, priority ordering, callback failure policy, scope-local inheritance and cleanup, event payload semantics, immutable mark and scope fields, and parity across affected bindings.

Files:

  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{rs,py}

📄 CodeRabbit inference engine (AGENTS.md)

Use snake_case naming in Rust and Python.

**/*.{rs,py}: - [ ] plugins list, plugins inspect, and plugins validate report lifecycle
and compatibility status without leaking secret config.

  • Top-level doctor reports resolved dynamic plugin and host configuration
    status.

Files:

  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{rs,py,js,mjs,ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Preserve the existing Tokio-based asynchronous model and callback/future lifetimes; do not unexpectedly block or hide async work in bindings.

Files:

  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.py

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*.py: Lint Python with Ruff using rule sets E, F, W, and I.
Format Python with the Ruff formatter, using a 120-character line length and double quotes.
Run ty for Python type checking.
Use Python snake_case naming conventions.

Files:

  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{rs,py,go,js,jsx,ts,tsx,c,h}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*.{rs,py,go,js,jsx,ts,tsx,c,h}: Run tests for every language affected by a change; changes to the core Rust crate require tests across all bindings.
Use SONAR_IGNORE_START / SONAR_IGNORE_END only for documented false positives, keep ignored blocks minimal, explain them with a comment, and obtain reviewer sign-off.
Preserve the layered architecture in which Rust provides the core runtime and C FFI, PyO3, and NAPI provide bindings that mirror the full API surface.

Files:

  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{rs,py,toml}

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

**/*.{rs,py,toml}: - [ ] Manifest validation covers kind, compatibility, load contract, integrity,
capability mismatch, and disabled-plugin behavior.

Files:

  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
🧠 Learnings (33)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/review-doc-style/SKILL.md:0-0
Timestamp: 2026-05-26T21:03:12.012Z
Learning: Keep documentation aligned with current NeMo Relay behavior, repo layout, and entry points
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/README.md:0-0
Timestamp: 2026-07-08T21:16:49.586Z
Learning: This directory is the maintainer-only skill set for developing NeMo Relay itself; use these skills for repository work such as changing core or binding APIs, maintaining integrations/packaging/CI/docs, extending middleware or observability internals, and validating library changes across bindings, while consumer-facing usage skills belong in the top-level `skills/` directory.
Learnt from: teerthsharma
Repo: NVIDIA/NeMo-Relay PR: 0
File: :0-0
Timestamp: 2026-06-26T15:15:34.329Z
Learning: In NeMo-Relay adaptive topology-aware ACG, the intended convergence behavior is to detect stability from a reusable agent workflow's stable prompt prefix under the same learning key, while allowing variable task-specific suffixes; learning must reopen when the prompt topology changes. This clarification is relevant to reviews of `crates/adaptive/src/acg_learner.rs` and related convergence tests.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/maintain-optimizer/SKILL.md:0-0
Timestamp: 2026-07-08T21:18:17.675Z
Learning: Applies to go/nemo_relay/** : Keep shared plugin helpers in `go/nemo_relay` aligned with plugin registration, composition, and lifecycle behavior.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/rename-surfaces/SKILL.md:0-0
Timestamp: 2026-07-08T21:18:39.923Z
Learning: Perform a coordinated repository, package, crate, module, or symbol rename across NeMo Relay.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/review-doc-style/SKILL.md:0-0
Timestamp: 2026-05-26T21:03:12.012Z
Learning: Apply this skill when reviewing docs-only changes, example-heavy changes, or any public-facing text update that should be checked against NVIDIA style guidance and NeMo Relay repo conventions.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/add-binding-feature/SKILL.md:0-0
Timestamp: 2026-07-08T21:17:00.650Z
Learning: Applies to {python/nemo_relay/**/*.py,python/nemo_relay/**/*.pyi,go/nemo_relay/**/*.go} : Update language wrapper helpers such as Python wrapper modules, Python type stubs, and Go shorthand packages when the new behavior belongs in those helper layers.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/update-project-version/SKILL.md:0-0
Timestamp: 2026-07-08T21:19:57.323Z
Learning: When changing released NeMo Relay versions, avoid committing temporary non-release suffixes from packaging commands as the canonical project version unless the release process requires that exact string.
Learnt from: willkill07
Repo: NVIDIA/NeMo-Relay PR: 415
File: docs/configure-plugins/observability/opentelemetry.mdx:98-113
Timestamp: 2026-07-14T02:54:02.968Z
Learning: In NeMo-Relay's OpenTelemetry/OpenInference observability projection (docs/configure-plugins/observability/opentelemetry.mdx and openinference.mdx), the projected-attribute contract intentionally emits scalar top-level `data`/`metadata` fields as typed dotted OTLP attributes (e.g., `nemo_relay.start.metadata.tenant`), while nested objects/arrays remain JSON strings at their top-level attribute. The legacy `*_json` payload attributes (e.g., `data_json`, `metadata_json`, `input_json`) are intentionally removed as part of a breaking change, so documentation should not reference them.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/contribute-integration/SKILL.md:0-0
Timestamp: 2026-07-08T21:17:23.220Z
Learning: When contributing a framework integration, preserve the framework's original behavior when NeMo Relay is absent.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/small-fix/SKILL.md:0-0
Timestamp: 2026-05-21T22:50:43.254Z
Learning: Update documentation if public behavior changed
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/prepare-pr/SKILL.md:0-0
Timestamp: 2026-05-21T22:49:35.949Z
Learning: Docs and examples must be updated for any public behavior changes
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/prepare-pr/SKILL.md:0-0
Timestamp: 2026-05-21T22:49:35.949Z
Learning: Breaking changes or renamed surfaces must be called out explicitly in the pull request
📚 Learning: 2026-05-26T21:03:12.012Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/review-doc-style/SKILL.md:0-0
Timestamp: 2026-05-26T21:03:12.012Z
Learning: Keep documentation aligned with current NeMo Relay behavior, repo layout, and entry points

Applied to files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-migrate-from-flow/evals/evals.json
  • skills/nemo-relay-get-started/evals/evals.json
  • skills/nemo-relay-get-started/SKILL.md
  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
📚 Learning: 2026-07-08T21:17:29.959Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/draft-release-notes/SKILL.md:0-0
Timestamp: 2026-07-08T21:17:29.959Z
Learning: Applies to docs/about-nemo-relay/release-notes/{index,highlights,known-issues}.mdx : Update only `docs/about-nemo-relay/release-notes/index.mdx`, `docs/about-nemo-relay/release-notes/highlights.mdx`, and `docs/about-nemo-relay/release-notes/known-issues.mdx` unless the release changes their route or entry points.

Applied to files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-migrate-from-flow/evals/evals.json
  • skills/nemo-relay-get-started/evals/evals.json
  • skills/nemo-relay-get-started/SKILL.md
📚 Learning: 2026-05-26T21:03:12.012Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/review-doc-style/SKILL.md:0-0
Timestamp: 2026-05-26T21:03:12.012Z
Learning: Applies to **/README.md|docs/index.md|python/nemo_relay/README.md|crates/*/README.md : Public behavior changes must be reflected in corresponding entry-point documentation (Must-Fix)

Applied to files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
📚 Learning: 2026-07-08T21:17:29.959Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/draft-release-notes/SKILL.md:0-0
Timestamp: 2026-07-08T21:17:29.959Z
Learning: Applies to docs/about-nemo-relay/release-notes/known-issues.mdx : In `known-issues.mdx`, preserve every prior fixed-item bullet under release-labeled subsections; do not summarize, deduplicate, or omit it.

Applied to files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
📚 Learning: 2026-07-08T21:19:57.323Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/update-project-version/SKILL.md:0-0
Timestamp: 2026-07-08T21:19:57.323Z
Learning: When changing released NeMo Relay versions, avoid committing temporary non-release suffixes from packaging commands as the canonical project version unless the release process requires that exact string.

Applied to files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/evals/evals.json
  • skills/nemo-relay-get-started/SKILL.md
📚 Learning: 2026-07-08T21:17:29.959Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/draft-release-notes/SKILL.md:0-0
Timestamp: 2026-07-08T21:17:29.959Z
Learning: Draft release notes from verified repository evidence only; verify each candidate claim in changed public docs, API types, command help, or source before including it, and prioritize breaking changes, migrations, user-visible features, and ongoing support limitations.

Applied to files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
📚 Learning: 2026-07-08T21:17:29.959Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/draft-release-notes/SKILL.md:0-0
Timestamp: 2026-07-08T21:17:29.959Z
Learning: Applies to docs/about-nemo-relay/release-notes/{index,highlights,known-issues}.mdx : Preserve the existing MDX front matter and the JSX SPDX comment in the release-notes pages.

Applied to files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
📚 Learning: 2026-05-26T21:03:12.012Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/review-doc-style/SKILL.md:0-0
Timestamp: 2026-05-26T21:03:12.012Z
Learning: Applies to **/README.md|docs/index.md|python/nemo_relay/README.md|crates/*/README.md : Update entry-point documentation (README.md, docs/index.md, package/crate READMEs, and binding-level source READMEs) whenever public behavior changes

Applied to files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
📚 Learning: 2026-07-08T21:17:29.959Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/draft-release-notes/SKILL.md:0-0
Timestamp: 2026-07-08T21:17:29.959Z
Learning: Applies to docs/about-nemo-relay/release-notes/known-issues.mdx : In `known-issues.mdx`, keep the complete fixed-item history recorded in earlier release-note pages.

Applied to files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
📚 Learning: 2026-07-08T21:18:17.675Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/maintain-optimizer/SKILL.md:0-0
Timestamp: 2026-07-08T21:18:17.675Z
Learning: Applies to go/nemo_relay/** : Keep shared plugin helpers in `go/nemo_relay` aligned with plugin registration, composition, and lifecycle behavior.

Applied to files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-migrate-from-flow/evals/evals.json
  • skills/nemo-relay-get-started/evals/evals.json
  • skills/nemo-relay-get-started/SKILL.md
📚 Learning: 2026-06-26T15:15:34.329Z
Learnt from: teerthsharma
Repo: NVIDIA/NeMo-Relay PR: 0
File: :0-0
Timestamp: 2026-06-26T15:15:34.329Z
Learning: In NeMo-Relay adaptive topology-aware ACG, the intended convergence behavior is to detect stability from a reusable agent workflow's stable prompt prefix under the same learning key, while allowing variable task-specific suffixes; learning must reopen when the prompt topology changes. This clarification is relevant to reviews of `crates/adaptive/src/acg_learner.rs` and related convergence tests.

Applied to files:

  • skills/nemo-relay-get-started/references/cli-try-now.md
  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-migrate-from-flow/evals/evals.json
  • skills/nemo-relay-get-started/evals/evals.json
  • skills/nemo-relay-get-started/SKILL.md
📚 Learning: 2026-07-08T21:18:39.923Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/rename-surfaces/SKILL.md:0-0
Timestamp: 2026-07-08T21:18:39.923Z
Learning: Use this rename workflow for coordinated naming changes such as repository renames, crate prefix changes, package/module renames, import-path changes, FFI symbol renames, or branding text updates that must preserve functional identifiers.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
📚 Learning: 2026-05-26T21:03:12.012Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/review-doc-style/SKILL.md:0-0
Timestamp: 2026-05-26T21:03:12.012Z
Learning: Apply this skill when reviewing docs-only changes, example-heavy changes, or any public-facing text update that should be checked against NVIDIA style guidance and NeMo Relay repo conventions.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/evals/evals.json
  • skills/nemo-relay-get-started/SKILL.md
📚 Learning: 2026-07-14T02:54:02.968Z
Learnt from: willkill07
Repo: NVIDIA/NeMo-Relay PR: 415
File: docs/configure-plugins/observability/opentelemetry.mdx:98-113
Timestamp: 2026-07-14T02:54:02.968Z
Learning: In NeMo-Relay's OpenTelemetry/OpenInference observability projection (docs/configure-plugins/observability/opentelemetry.mdx and openinference.mdx), the projected-attribute contract intentionally emits scalar top-level `data`/`metadata` fields as typed dotted OTLP attributes (e.g., `nemo_relay.start.metadata.tenant`), while nested objects/arrays remain JSON strings at their top-level attribute. The legacy `*_json` payload attributes (e.g., `data_json`, `metadata_json`, `input_json`) are intentionally removed as part of a breaking change, so documentation should not reference them.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-migrate-from-flow/evals/evals.json
  • skills/nemo-relay-get-started/evals/evals.json
  • skills/nemo-relay-get-started/SKILL.md
📚 Learning: 2026-07-08T21:16:49.586Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/README.md:0-0
Timestamp: 2026-07-08T21:16:49.586Z
Learning: This directory is the maintainer-only skill set for developing NeMo Relay itself; use these skills for repository work such as changing core or binding APIs, maintaining integrations/packaging/CI/docs, extending middleware or observability internals, and validating library changes across bindings, while consumer-facing usage skills belong in the top-level `skills/` directory.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-get-started/evals/evals.json
  • skills/nemo-relay-get-started/SKILL.md
📚 Learning: 2026-07-08T21:18:39.923Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/rename-surfaces/SKILL.md:0-0
Timestamp: 2026-07-08T21:18:39.923Z
Learning: Perform a coordinated repository, package, crate, module, or symbol rename across NeMo Relay.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
📚 Learning: 2026-07-08T21:18:39.923Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/rename-surfaces/SKILL.md:0-0
Timestamp: 2026-07-08T21:18:39.923Z
Learning: Use `karpathy-guidelines` alongside this rename workflow, keep changes scoped, surface assumptions, and define focused validation before editing.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
📚 Learning: 2026-08-04T01:50:26.476Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-08-04T01:50:26.476Z
Learning: Applies to **/*.{c,h,cc,cpp} : Prefix C FFI exports with `nemo_relay_`.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
📚 Learning: 2026-07-08T21:17:00.650Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/add-binding-feature/SKILL.md:0-0
Timestamp: 2026-07-08T21:17:00.650Z
Learning: Applies to {python/nemo_relay/**/*.py,python/nemo_relay/**/*.pyi,go/nemo_relay/**/*.go} : Update language wrapper helpers such as Python wrapper modules, Python type stubs, and Go shorthand packages when the new behavior belongs in those helper layers.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-migrate-from-flow/evals/evals.json
  • skills/nemo-relay-get-started/evals/evals.json
📚 Learning: 2026-08-04T01:50:39.584Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: CONTRIBUTING.md:0-0
Timestamp: 2026-08-04T01:50:39.584Z
Learning: Applies to **/*.{c,h} : Prefix C FFI exports with `nemo_relay_`.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
📚 Learning: 2026-07-08T21:18:29.593Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/maintain-packaging/SKILL.md:0-0
Timestamp: 2026-07-08T21:18:29.593Z
Learning: Applies to go/nemo_relay/go.mod : Keep the Go module path in `go/nemo_relay/go.mod` consistent with the project’s public module naming and release surface.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
📚 Learning: 2026-08-04T01:50:26.476Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-08-04T01:50:26.476Z
Learning: Applies to python/nemo_relay/**/*.py : Keep Python wrapper modules under `python/nemo_relay/`; the native extension is built from `crates/python` with `maturin`.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
📚 Learning: 2026-07-08T21:18:17.675Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/maintain-optimizer/SKILL.md:0-0
Timestamp: 2026-07-08T21:18:17.675Z
Learning: Applies to go/nemo_relay/adaptive/** : Keep Go adaptive helpers under `go/nemo_relay/adaptive` synchronized with the shared adaptive config model and lifecycle.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
  • skills/nemo-relay-migrate-from-flow/evals/evals.json
📚 Learning: 2026-07-08T21:20:06.501Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/validate-change/SKILL.md:0-0
Timestamp: 2026-07-08T21:20:06.501Z
Learning: Applies to **/* : During iteration, prefer `uv run pre-commit run --files <changed files...>`.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
📚 Learning: 2026-07-08T21:20:06.501Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/validate-change/SKILL.md:0-0
Timestamp: 2026-07-08T21:20:06.501Z
Learning: Applies to **/* : Before review or handoff, run `uv run pre-commit run --all-files`.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/SKILL.md
📚 Learning: 2026-05-21T22:51:11.713Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/test-node-binding/SKILL.md:0-0
Timestamp: 2026-05-21T22:51:11.713Z
Learning: Applies to crates/node/**/*.{js,ts,jsx,tsx,json} : Format changed Node files with `npm run format --workspace=nemo-relay-node`

Applied to files:

  • skills/nemo-relay-migrate-from-flow/evals/evals.json
📚 Learning: 2026-07-08T21:17:23.220Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/contribute-integration/SKILL.md:0-0
Timestamp: 2026-07-08T21:17:23.220Z
Learning: When contributing a framework integration, preserve the framework's original behavior when NeMo Relay is absent.

Applied to files:

  • skills/nemo-relay-get-started/evals/evals.json
  • skills/nemo-relay-get-started/SKILL.md
📚 Learning: 2026-07-08T21:17:23.220Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/contribute-integration/SKILL.md:0-0
Timestamp: 2026-07-08T21:17:23.220Z
Learning: Relevant integration tests or smoke-path checks must pass.

Applied to files:

  • skills/nemo-relay-get-started/evals/evals.json
📚 Learning: 2026-07-08T21:17:23.220Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/contribute-integration/SKILL.md:0-0
Timestamp: 2026-07-08T21:17:23.220Z
Learning: When contributing a framework integration (for example LangChain, LangGraph, Deep Agents, or OpenClaw), keep NeMo Relay optional.

Applied to files:

  • skills/nemo-relay-get-started/SKILL.md
📚 Learning: 2026-05-26T21:03:12.012Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/review-doc-style/SKILL.md:0-0
Timestamp: 2026-05-26T21:03:12.012Z
Learning: Use alongside karpathy-guidelines for implementation or review work. Keep changes scoped, surface assumptions, and define focused validation before editing.

Applied to files:

  • skills/nemo-relay-get-started/SKILL.md
📚 Learning: 2026-08-07T22:42:28.036Z
Learnt from: CR
Repo: NVIDIA/NeMo-Relay PR: 0
File: .agents/skills/maintain-observability/SKILL.md:0-0
Timestamp: 2026-08-07T22:42:28.036Z
Learning: Applies to **/* : Keep observability changes scoped, surface assumptions, and define focused validation before editing.

Applied to files:

  • skills/nemo-relay-get-started/SKILL.md
📚 Learning: 2026-08-12T17:13:14.808Z
Learnt from: SandyChapman
Repo: NVIDIA/NeMo-Relay PR: 755
File: python/tests/integrations/langchain_tests/test_callbacks_scope_stack.py:185-185
Timestamp: 2026-08-12T17:13:14.808Z
Learning: In Python files, do not report Ruff UP017 findings unless pyproject.toml enables the UP rule set or the individual file explicitly enables UP017. The repository currently enables Ruff rule sets E, F, W, and I only.

Applied to files:

  • skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
🪛 LanguageTool
skills/nemo-relay-migrate-from-flow/SKILL.md

[grammar] ~26-~26: Ensure spelling is correct
Context: ...tomlor.nemo-flow/plugins.tomlinto.nemo-relay`. Move those settings manually to a s...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🪛 Ruff (0.16.1)
skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py

[warning] 336-336: Boolean-typed positional argument in function definition

(FBT001)


[warning] 341-341: Use a list comprehension to create a transformed list

(PERF401)


[warning] 353-353: Avoid specifying long messages outside the exception class

(TRY003)


[warning] 436-436: Avoid specifying long messages outside the exception class

(TRY003)


[warning] 452-452: Boolean-typed positional argument in function definition

(FBT001)


[warning] 503-504: Use a single if statement instead of nested if statements

(SIM102)


[warning] 505-505: Avoid specifying long messages outside the exception class

(TRY003)


[warning] 533-533: Boolean-typed positional argument in function definition

(FBT001)


[warning] 564-564: Too many branches (21 > 12)

(PLR0912)


[warning] 564-564: Too many statements (64 > 50)

(PLR0915)


[warning] 651-651: Abstract raise to an inner function

(TRY301)


[warning] 651-651: Avoid specifying long messages outside the exception class

(TRY003)

🪛 SkillSpector (2.5.1)
skills/nemo-relay-get-started/SKILL.md

[warning] 40: [EA2] Autonomous Decision Making: Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Remediation: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.

(Excessive Agency (EA2))

🔇 Additional comments (6)
skills/nemo-relay-get-started/SKILL.md (1)

69-71: LGTM!

skills/nemo-relay-get-started/references/cli-try-now.md (1)

74-92: LGTM!

Also applies to: 178-180, 243-247

skills/nemo-relay-get-started/evals/evals.json (1)

64-68: LGTM!

Also applies to: 81-83, 139-144

skills/nemo-relay-migrate-from-flow/SKILL.md (1)

24-30: LGTM!

Also applies to: 52-57, 89-91

skills/nemo-relay-migrate-from-flow/evals/evals.json (1)

59-73: LGTM!

skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py (1)

113-199: LGTM!

Also applies to: 236-237, 274-275, 321-322, 345-389, 420-429, 450-475, 482-488, 529-565, 604-608, 640-676

Signed-off-by: nvskills-svc-account <svc-nvskills-signing@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Aug 12, 2026

Copy link
Copy Markdown

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

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@skills/nemo-relay-get-started/skill-card.md`:
- Line 52: Add a blank line immediately after the “Evaluation Metrics Used” and
“Skill Version(s)” headings in the skill card, before their respective content,
to satisfy Markdownlint.

In `@skills/nemo-relay-migrate-from-flow/BENCHMARK.md`:
- Line 1: Add the project-standard SPDX copyright and Apache-2.0 license header
before the title in BENCHMARK.md, then regenerate the signed resource artifact
skill.oms.sig to reflect the document change.
- Line 3: Reconcile the Overall verdict and publication recommendation with the
pass gate in the benchmark report: update the Effectiveness scores if they are
incorrect, or change the PASS verdict and recommendation because neither
supported agent meets the required dimension threshold. Ensure the final result
follows the requirement that every configured dimension passes for at least one
supported agent.

In `@skills/nemo-relay-migrate-from-flow/skill-card.md`:
- Around line 44-47: Resolve the Markdown spacing warnings in the skill card by
adding blank lines before and after the affected headings, including the
headings near “Evaluation Tasks” and “Evaluation Metrics Used,” and by placing
blank lines around the table near the referenced sections. Preserve the existing
heading and table content while ensuring markdownlint rules MD022 and MD058
pass.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: e0e1f537-064b-40fb-8b87-4ab5bcdfb583

📥 Commits

Reviewing files that changed from the base of the PR and between db4ed2e and d193962.

📒 Files selected for processing (6)
  • skills/nemo-relay-get-started/BENCHMARK.md
  • skills/nemo-relay-get-started/skill-card.md
  • skills/nemo-relay-get-started/skill.oms.sig
  • skills/nemo-relay-migrate-from-flow/BENCHMARK.md
  • skills/nemo-relay-migrate-from-flow/skill-card.md
  • skills/nemo-relay-migrate-from-flow/skill.oms.sig
📜 Review details
⏰ Context from checks skipped due to timeout. (1)
  • GitHub Check: request / require-nvskills-ci / require-nvskills-ci
🧰 Additional context used
📓 Path-based instructions (9)
**/*.{md,rst,html,txt}

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

**/*.{md,rst,html,txt}: Always spell NVIDIA in all caps. Do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun because the name starts with an 'en' sound.
Do not add a registered trademark symbol after NVIDIA when 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 with NVIDIA on 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 with s, not an apostrophe, such as GPUs.
In headings, common acronyms can remain abbreviated. Spell out the term in the first or second sentence of the body.
Common terms such as CPU, GPU, PC, API, and UI usually do not need to be spelled out for developer audiences.

Files:

  • skills/nemo-relay-get-started/BENCHMARK.md
  • skills/nemo-relay-get-started/skill-card.md
  • skills/nemo-relay-migrate-from-flow/BENCHMARK.md
  • skills/nemo-relay-migrate-from-flow/skill-card.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:

  • skills/nemo-relay-get-started/BENCHMARK.md
  • skills/nemo-relay-get-started/skill-card.md
  • skills/nemo-relay-migrate-from-flow/BENCHMARK.md
  • skills/nemo-relay-migrate-from-flow/skill-card.md
**/*.{md,rst,txt}

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

Spell NVIDIA in all caps. Do not use Nvidia, nvidia, or NV.

Files:

  • skills/nemo-relay-get-started/BENCHMARK.md
  • skills/nemo-relay-get-started/skill-card.md
  • skills/nemo-relay-migrate-from-flow/BENCHMARK.md
  • skills/nemo-relay-migrate-from-flow/skill-card.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.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once.
Prefer refer to over see when 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:

  • skills/nemo-relay-get-started/BENCHMARK.md
  • skills/nemo-relay-get-started/skill-card.md
  • skills/nemo-relay-migrate-from-flow/BENCHMARK.md
  • skills/nemo-relay-migrate-from-flow/skill-card.md
**/*

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

**/*: Format changed files with the language-native formatter before the final lint/test pass.
If dynamic plugin behavior changed, use maintain-dynamic-plugins and include the native SDK, worker protocol, Python SDK, docs, packaging, and Codecov surfaces in the validation plan.
If code changes alter APIs, bindings, commands, paths, packaging behavior, observability/adaptive semantics, or documented best practices, update any dependent maintainer or consumer skills in the same branch.
During iteration, prefer uv run pre-commit run --files <changed files...>.
Before review or handoff, run uv run pre-commit run --all-files.

**/*: Use release tags in raw Rust-compatible SemVer without a leading v; tags such as v0.1.0 are prohibited.
Use branch prefixes feat/, fix/, docs/, test/, or refactor/ according to the change purpose.
Every commit in a pull request must include a DCO Signed-off-by: sign-off.
Before submitting a pull request, ensure pre-commit hooks, relevant tests, target-specific builds, documentation updates, and a rebase on the latest main are complete.
Use commit messages in the form type: short description, with a valid type and a first line under 72 characters.

**/*: Keep observability changes scoped, surface assumptions, and define focused validation before editing.
Run affected Rust tests and just test-rust for event-field changes; run just test-python, just test-go, and just test-node when binding-native configuration or lifecycle changes; update docs and examples in the same branch.

**/*: The canonical just test-rust, just test-python, and just test-go recipes
prepare plugin fixtures automatically. Run just build-test-plugin-fixtures
before raw focused native or worker plugin tests; fixture compilation must not
happen inside an individual test case.

Files:

  • skills/nemo-relay-get-started/BENCHMARK.md
  • skills/nemo-relay-get-started/skill.oms.sig
  • skills/nemo-relay-get-started/skill-card.md
  • skills/nemo-relay-migrate-from-flow/skill.oms.sig
  • skills/nemo-relay-migrate-from-flow/BENCHMARK.md
  • skills/nemo-relay-migrate-from-flow/skill-card.md
**/*.{md,mdx}

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

If links in documentation change, run just docs-linkcheck.

Use documented public APIs and stable wrapper commands in examples and user-facing documentation; do not rely on internal helpers.

**/*.{md,mdx}: Prefer the documented public API over internal shortcuts in documentation and examples.
Keep package names, repository references, and build commands current.
Contribution workflow documentation must require an issue before external contribution pull requests and note that NVIDIA contributors may use a GitHub or Linear issue.
Update entry-point documentation when examples or reading paths change.
Keep release-process and release-notes guidance in maintainer documentation such as RELEASING.md, rather than user-facing documentation pages or CHANGELOG.md.
Use stable user-facing wrappers at the scripts/ root in documentation and examples; reference namespaced helper paths only for internal maintenance documentation.
When detailed dynamic plugin guides exist, keep Rust native plugin examples, Python worker plugin examples, and grpc-v1 protocol details on separate pages.
Dynamic plugin manifests in documentation and examples should use compat.relay = ">=0.5,<1.0" unless deliberately narrower.
Render images, diagrams, tables, and other visual content at representative page widths, ensuring legibility and complete access without clipping; use responsive scaling, reflow, or overflow as appropriate and scope visual styling narrowly.
Dynamic plugin entry pages should link to native, worker, Rust example, Python example, and protocol pages when those pages exist.
Images, diagrams, tables, and custom visual content must remain legible and fully accessible at representative desktop and narrow page widths.
Release-policy documentation must point to GitHub Releases as the only release-history source of truth.
Run just docs when the documentation site changes; retain ./scripts/build-docs.sh html as the compatibility wrapper.

Files:

  • skills/nemo-relay-get-started/BENCHMARK.md
  • skills/nemo-relay-get-started/skill-card.md
  • skills/nemo-relay-migrate-from-flow/BENCHMARK.md
  • skills/nemo-relay-migrate-from-flow/skill-card.md
**/*.{rs,py,js,jsx,ts,tsx,go,c,h,cc,cpp,md,toml,yml,yaml,sh}

📄 CodeRabbit inference engine (AGENTS.md)

Keep SPDX headers on source, documentation, scripts, and configuration files; the project is Apache-2.0.

Files:

  • skills/nemo-relay-get-started/BENCHMARK.md
  • skills/nemo-relay-get-started/skill-card.md
  • skills/nemo-relay-migrate-from-flow/BENCHMARK.md
  • skills/nemo-relay-migrate-from-flow/skill-card.md
**/*.{rs,py,go,js,jsx,ts,tsx,c,h,html,md,mdx,toml}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Include the appropriate SPDX copyright and Apache-2.0 license header in every source file.

Files:

  • skills/nemo-relay-get-started/BENCHMARK.md
  • skills/nemo-relay-get-started/skill-card.md
  • skills/nemo-relay-migrate-from-flow/BENCHMARK.md
  • skills/nemo-relay-migrate-from-flow/skill-card.md
**/*.{md,mdx,rst}

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

**/*.{md,mdx,rst}: Use title case consistently for technical documentation headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title case.
Format code elements, commands, parameters, package names, expressions, directories, file names, and paths in monospace; represent path placeholders with angle brackets inside monospace.
Format UI buttons, menus, fields, and labels in bold, and separate consecutive UI navigation labels with >.
Use quotation marks for error messages and strings when appropriate, italics for newly introduced terms and publication titles, and plain text for keyboard shortcuts.
Represent GitHub repositories with owner/repository link text, such as [NVIDIA/NeMo](link), rather than generic repository wording.
Introduce every code block with a complete sentence; do not let a code block complete or interrupt the grammar of surrounding prose; use syntax highlighting when supported.
Keep inline method, function, and class references consistent with nearby documentation; omit empty parentheses in prose when no call is shown.
Use descriptive link text matching the destination title when possible; avoid raw URLs, generic anchors, long-sentence links, and unnecessary links that distract from procedures.
Ensure lists have a complete lead-in sentence, more than one item, no more than two levels, parallel construction, one idea or action per item, and appropriate punctuation; use bullets for unordered items and numbers for ordered tasks.
Format definition lists with a bold term followed by a complete, parallel, punctuated definition.
Use tables for reference information, decision support, compatibility matrices, and comparable choices; flag one-row tables, missing captions or lead-ins, sentence-case headers where title case is expected, unexplained empty cells, and code or links that would be clearer as prose.
Write procedure steps as imperative ...

Files:

  • skills/nemo-relay-get-started/BENCHMARK.md
  • skills/nemo-relay-get-started/skill-card.md
  • skills/nemo-relay-migrate-from-flow/BENCHMARK.md
  • skills/nemo-relay-migrate-from-flow/skill-card.md
🪛 markdownlint-cli2 (0.23.2)
skills/nemo-relay-get-started/skill-card.md

[warning] 52-52: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 80-80: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

skills/nemo-relay-migrate-from-flow/skill-card.md

[warning] 44-44: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 47-47: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 65-65: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 66-66: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


[warning] 75-75: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

🔇 Additional comments (12)
skills/nemo-relay-get-started/BENCHMARK.md (2)

12-16: LGTM!


37-42: 🎯 Functional Correctness

Verify the displayed Correctness uplift in both reports.

Both tables display 25% → 95% (+69 points), although the displayed values imply +70 points. If raw unrounded scores produce +69, document the rounding method. Otherwise, update both entries to +70 points.

  • skills/nemo-relay-get-started/BENCHMARK.md#L37-L42: correct or explain the Correctness uplift.
  • skills/nemo-relay-get-started/skill-card.md#L73-L78: apply the same correction or explanation.
skills/nemo-relay-get-started/skill-card.md (4)

12-12: LGTM!


38-38: LGTM!


50-51: LGTM!

Also applies to: 53-61


80-81: LGTM!

skills/nemo-relay-get-started/skill.oms.sig (1)

1-1: 🔒 Security & Privacy

No attestation changes are required.

The resource digests, certificate chain, and DSSE signature are valid.

			> Likely an incorrect or invalid review comment.
skills/nemo-relay-migrate-from-flow/BENCHMARK.md (2)

5-22: LGTM!

Also applies to: 23-36, 45-79, 83-100


37-44: 🎯 Functional Correctness

Verify the displayed uplift arithmetic in both publication artifacts.

Both tables state baseline-to-skill uplift, but the displayed integers yield different deltas for three cells. If evaluator output uses unrounded values, document the rounding order. Otherwise, correct the same cells in both files.

  • skills/nemo-relay-migrate-from-flow/BENCHMARK.md#L37-L44: verify or correct Claude Code effectiveness to -23, Codex overall to +27, and Codex discoverability to +53.
  • skills/nemo-relay-migrate-from-flow/skill-card.md#L66-L73: apply the same verified values and regenerate the card if the benchmark changes.
skills/nemo-relay-migrate-from-flow/skill-card.md (2)

75-76: 🗄️ Data Integrity & Integration

Verify that the recorded source revision matches the signed artifact.

Confirm that db4ed2e resolves to the commit that produced the five resource digests in skill.oms.sig and that its commit date is August 12, 2026. If this field records a different benchmark-generation revision, state that distinction.


12-12: LGTM!

Also applies to: 29-29, 39-43, 48-61

skills/nemo-relay-migrate-from-flow/skill.oms.sig (1)

1-1: 🔒 Security & Privacy

Establish trusted-signer verification for the DSSE bundle.

The five resource digests match the files under skills/nemo-relay-migrate-from-flow. Run the normal NVSkills/Sigstore verifier, including /nvskills-ci, to establish that the DSSE signature chains to the repository’s trusted signer.

Comment thread skills/nemo-relay-get-started/skill-card.md
Comment thread skills/nemo-relay-migrate-from-flow/BENCHMARK.md
Comment thread skills/nemo-relay-migrate-from-flow/BENCHMARK.md
Comment thread skills/nemo-relay-migrate-from-flow/skill-card.md
@willkill07

Copy link
Copy Markdown
Member

/ok to test d193962

@willkill07

Copy link
Copy Markdown
Member

/merge

@rapids-bot
rapids-bot Bot merged commit e20c31f into main Aug 13, 2026
31 checks passed
@willkill07
willkill07 deleted the skills/relay-669-user-skills branch August 21, 2026 01:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lang:python PR changes/introduces Python code size:M PR is medium Skills PR changes are related to skills

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants