docs: align user skills with config layering removal - #739
Conversation
Update the public get-started and NeMo Flow migration skills for RELAY-669. The quick start now treats repository-local Relay config as unsupported while preserving local ATOF and ATIF output artifacts, and the migration helper reports legacy project .nemo-flow config for manual migration instead of converting it into unsupported .nemo-relay project config. Validation: python3 JSON parse for affected evals; python3 AST parse for migrate_from_nemo_flow.py; migration helper dry-run and write-mode fixtures for legacy project config; .venv/bin/ruff check skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py; git diff --check Signed-off-by: Allan Enemark <exactly.allan@gmail.com>
|
@coderabbitai review |
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughThe change defines repository-local Relay configuration as unsupported. It updates onboarding guidance and evaluations, and modifies Flow migration to report project-local configuration for manual migration without rewriting or renaming it. ChangesProject Configuration Handling
Estimated code review effort: 3 (Moderate) | ~20 minutes Suggested labels: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Add docstrings for the legacy project configuration helpers introduced by the RELAY-669 migration skill update. This addresses the CodeRabbit pre-merge docstring coverage warning without changing migration behavior. Validation: python3 AST parse for migrate_from_nemo_flow.py; .venv/bin/ruff check skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py; git diff --check Signed-off-by: Allan Enemark <exactly.allan@gmail.com>
Document the small migration helper data structures and utility functions so CodeRabbit docstring coverage no longer flags the RELAY-669 helper update. Validation: python3 AST parse for migrate_from_nemo_flow.py; .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; migration helper dry-run fixture for legacy project config; git diff --check Signed-off-by: Allan Enemark <exactly.allan@gmail.com>
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py (3)
519-526: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winReject negative
max_reportvalues.When
--max-report -1is used,legacy_configs[:max_report]omits the final warning and reports an incorrect omitted count. Validateargs.max_report >= 0inmainbefore callingprint_report. Update the help text to mention legacy configuration warnings as another capped output.Proposed validation
args = parser.parse_args() + if args.max_report < 0: + parser.error("--max-report must be non-negative")🤖 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 `@skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py` around lines 519 - 526, Validate that args.max_report is non-negative in main before calling print_report, rejecting invalid negative values. Update the --max-report help text to state that it caps legacy configuration warnings in addition to the existing output.
607-620: 📐 Maintainability & Code Quality | 🔵 TrivialRun the required Python validation before handoff.
Run the repository's Python test target and
uv run pre-commit run --all-filesafter the migration fixture checks.As per coding guidelines, run tests for each affected language and
uv run pre-commit run --all-filesbefore handoff.Also applies to: 632-632
🤖 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 `@skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py` around lines 607 - 620, The migration changes are missing the required validation workflow. After the migration fixture checks, run the repository’s Python test target and execute `uv run pre-commit run --all-files`; ensure both complete successfully before handoff.Source: Coding guidelines
607-620: 🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy liftRevalidate legacy project configuration before each mutation.
legacy_configsis collected once beforeiter_files()andcollect_path_changes(). If.nemo-flow/config.tomlorplugins.tomlis created or moved after that scan,rewrite_file()can modify it. With--rename-paths,collect_path_changes()can also move.nemo-flowand its late-created configuration into.nemo-relay. Revalidate protected paths during each mutation and abort when the filesystem tree changes.🤖 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 `@skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py` around lines 607 - 620, The migration flow around collect_legacy_project_configs, rewrite_file, and collect_path_changes must revalidate protected legacy configuration paths before every mutation. Detect filesystem changes after the initial scan, prevent rewrite_file from modifying newly created or moved .nemo-flow/config.toml and plugins.toml files, and abort the operation when the tree changes before or during path renaming.
🤖 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.
Outside diff comments:
In `@skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py`:
- Around line 519-526: Validate that args.max_report is non-negative in main
before calling print_report, rejecting invalid negative values. Update the
--max-report help text to state that it caps legacy configuration warnings in
addition to the existing output.
- Around line 607-620: The migration changes are missing the required validation
workflow. After the migration fixture checks, run the repository’s Python test
target and execute `uv run pre-commit run --all-files`; ensure both complete
successfully before handoff.
- Around line 607-620: The migration flow around collect_legacy_project_configs,
rewrite_file, and collect_path_changes must revalidate protected legacy
configuration paths before every mutation. Detect filesystem changes after the
initial scan, prevent rewrite_file from modifying newly created or moved
.nemo-flow/config.toml and plugins.toml files, and abort the operation when the
tree changes before or during path renaming.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: 717f29d6-7fbf-421c-b894-b2632570b13a
📒 Files selected for processing (1)
skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
📜 Review details
⏰ Context from checks skipped due to timeout. (1)
- GitHub Check: Check / Run
🧰 Additional context used
📓 Path-based instructions (11)
**/*
📄 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, usemaintain-dynamic-pluginsand 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, preferuv run pre-commit run --files <changed files...>.
Before review or handoff, runuv run pre-commit run --all-files.
**/*: Use release tags in raw Rust-compatible SemVer without a leadingv; tags such asv0.1.0are prohibited.
Use branch prefixesfeat/,fix/,docs/,test/, orrefactor/according to the change purpose.
Every commit in a pull request must include a DCOSigned-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 latestmainare complete.
Use commit messages in the formtype: short description, with a valid type and a first line under 72 characters.
Files:
skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{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.
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,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-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{rs,py}
📄 CodeRabbit inference engine (AGENTS.md)
Use
snake_casenaming in Rust and Python.
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 setsE,F,W, andI.
Format Python with the Ruff formatter, using a 120-character line length and double quotes.
Runtyfor Python type checking.
Use Pythonsnake_casenaming 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.
UseSONAR_IGNORE_START/SONAR_IGNORE_ENDonly 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,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-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{rs,py,go,js,ts,mdx}
📄 CodeRabbit inference engine (.agents/skills/maintain-observability/SKILL.md)
**/*.{rs,py,go,js,ts,mdx}: When changing observability event fields, exporter behavior, subscriber configuration, or binding parity, keep the core event model, ATIF, typed OpenTelemetry projections, FFI wrappers, language bindings, configuration, and documentation synchronized.
Examples and documentation must use each exporter's documented flush/deregister order before shutdown.
Files:
skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{py,go,js,ts}
📄 CodeRabbit inference engine (.agents/skills/maintain-observability/SKILL.md)
**/*.{py,go,js,ts}: Ensure Python, Go, and Node.js configuration objects and subscriber/exporter methods expose the same logical knobs and semantics as the core implementation.
Runjust test-python,just test-go, andjust test-nodewhen binding-native configuration or lifecycle changes.
Files:
skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
🔇 Additional comments (2)
skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py (2)
113-144: LGTM!Also applies to: 156-163, 173-183, 199-199, 237-237, 275-275, 322-322, 336-344, 380-380, 411-412, 446-447, 460-460, 533-534, 632-632
412-427: 🎯 Functional CorrectnessNo stale callers found. The repository-wide references contain only the updated
maincall sites and the helper definitions.> Likely an incorrect or invalid review comment.
Address CodeRabbit review feedback for the RELAY-669 migration helper. Reject negative --max-report values and revalidate protected legacy project configuration before write and path-rename mutations so late-created .nemo-flow config cannot be rewritten or moved into unsupported Relay project configuration. Validation: .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; python3 skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py /tmp --max-report -1 (expected parser failure); migration helper write-mode fixture for legacy project config; git diff --check Signed-off-by: Allan Enemark <exactly.allan@gmail.com>
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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 640-652: The current eager file_changes comprehension invokes
rewrite_file before validating the protected legacy configuration set. Separate
rewrite planning from application, recollect and compare legacy configurations
immediately after planning and before any write-mode mutations, then apply the
planned changes only when validation succeeds while preserving the existing
MutationError behavior.
- Around line 431-447: Update directory_contains_legacy_config_at to raise
MutationError when os.open fails, instead of returning False, so an
uninspectable child directory cannot be treated as configuration-free. Preserve
the existing scan and return behavior after the directory is opened
successfully, and include the underlying open failure details in the raised
error if consistent with the surrounding error-handling conventions.
🪄 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: db677023-0d3b-4b90-bd41-acfd31ad8c7c
📒 Files selected for processing (1)
skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
📜 Review details
🧰 Additional context used
📓 Path-based instructions (10)
**/*
📄 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, usemaintain-dynamic-pluginsand 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, preferuv run pre-commit run --files <changed files...>.
Before review or handoff, runuv run pre-commit run --all-files.
**/*: Use release tags in raw Rust-compatible SemVer without a leadingv; tags such asv0.1.0are prohibited.
Use branch prefixesfeat/,fix/,docs/,test/, orrefactor/according to the change purpose.
Every commit in a pull request must include a DCOSigned-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 latestmainare complete.
Use commit messages in the formtype: short description, with a valid type and a first line under 72 characters.Run the prescribed plugin validation commands, including fixture building, focused Rust and Python package tests, integration tests, documentation checks, and the broader
validate-changematrix for broad runtime or public API changes.
**/*: 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.
Files:
skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{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,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-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{rs,py}
📄 CodeRabbit inference engine (AGENTS.md)
Use
snake_casenaming in Rust and Python.
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 setsE,F,W, andI.
Format Python with the Ruff formatter, using a 120-character line length and double quotes.
Runtyfor Python type checking.
Use Pythonsnake_casenaming 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.
UseSONAR_IGNORE_START/SONAR_IGNORE_ENDonly 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,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-migrate-from-flow/scripts/migrate_from_nemo_flow.py
**/*.{toml,md,rs,py}
📄 CodeRabbit inference engine (.agents/skills/maintain-dynamic-plugins/SKILL.md)
Treat plugin Relay compatibility as normal SemVer; use
>=0.5,<1.0in examples unless a plugin intentionally declares a narrower range.
Files:
skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
🪛 Ruff (0.16.1)
skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py
[warning] 353-353: Avoid specifying long messages outside the exception class
(TRY003)
[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] 651-651: Abstract raise to an inner function
(TRY301)
[warning] 651-651: Avoid specifying long messages outside the exception class
(TRY003)
Address the remaining CodeRabbit findings by planning file rewrites before write-mode mutation, validating protected legacy project configuration before applying planned changes, and treating failed directory inspection as a mutation safety error. Validation: .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; python3 -m py_compile skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py; python3 skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py /tmp --max-report -1 (expected parser failure); migration helper write-mode fixture; git diff --check Signed-off-by: Allan Enemark <exactly.allan@gmail.com>
|
/nvskills-ci |
|
Superseded by #774, which recasts the same RELAY-669 skills update onto a direct NVIDIA/NeMo-Relay branch so the updated NVSkills/NVCARPS CI flow can run. |
|
Thank you, @exactlyallan |
#### 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. - [x] I confirm this contribution is my own work, or I have the right to submit it under this project license. - [x] 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 #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) - Relates to: RELAY-669 - Relates to: #720 - Relates to: #739 ## 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. Authors: - Allan (https://github.com/exactlyallan) - https://github.com/svc-nvskills-signing Approvers: - Will Killian (https://github.com/willkill07) URL: #774
Overview
Updates the public NeMo Relay user skills for the RELAY-669 follow-up to RELAY-667. The get-started quick start 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 now reports legacy project-local configuration for manual migration instead of converting it into unsupported Relay project configuration.
Details
.nemo-relay/config.tomland.nemo-relay/plugins.toml..nemo-relay/atofand.nemo-relay/atifoutput directories from configuration layers..nemo-flow/config.tomland.nemo-flow/plugins.tomlare left unchanged and reported as manual migration items.Validation:
python3JSON parse for affected eval filespython3AST parse forskills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.py.venv/bin/ruff check skills/nemo-relay-migrate-from-flow/scripts/migrate_from_nemo_flow.pygit diff --checkKnown follow-up:
skill-card.md,BENCHMARK.md, andskill.oms.sigwere 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 reviewskills/nemo-relay-get-started/references/cli-try-now.mdfor the user-facing configuration guidance.Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)
Summary by CodeRabbit
Documentation
Bug Fixes