feat: improve Relay consumer skill onboarding#407
Conversation
Rename the public NeMo Relay skills into task-oriented get, instrument, and plugin groups so agent routing follows a consistent convention. Fold export-specific observability guidance into plugin-observability references and adaptive config/hints guidance into plugin-adaptive-tuning references. Update eval coverage to target the consolidated hubs. Validation: uv run pre-commit run --files staged skill files; custom skill validation for frontmatter, eval IDs, and references; stale legacy-name scan; git diff --cached --check Signed-off-by: Allan Enemark <exactly.allan@gmail.com>
Add nemo-relay-install as the installation router for CLI, language binding, and maintained framework integration package paths. Keep the skill scoped to installation and basic availability checks, with handoff to get-started or plugin skills for runtime setup, configuration, and first working examples. Validation: uv run pre-commit run --files staged skill files; custom skill validation for frontmatter, eval IDs, and references; stale legacy-name scan; git diff --cached --check Signed-off-by: Allan Enemark <exactly.allan@gmail.com>
Redesign get-started around ordered CLI, maintained integration, and manual language try-now paths, and turn the public skills README into a user-facing catalog. Align all skill frontmatter with the Agent Skills specification, move installation details into path-specific references, and add raw ATOF observability guidance and evaluations. Validation: official skills-ref and skill-creator validators for all 10 skills; 77 unique evaluation IDs and 18 reference uses; migration helper dry run; repository pre-commit checks for the full public skill catalog; git diff --cached --check. Signed-off-by: Allan Enemark <exactly.allan@gmail.com>
Add a Codex Desktop recovery gate before persistent Relay configuration, including a workspace recovery-note template, supported uninstall and resume paths, and focused evaluation coverage. Make one goal-aligned plugin the primary next step after first-value validation so onboarding demonstrates Relay's instrument-once, reconfigure-through-plugins model before expanding instrumentation. Validation: official skills-ref validation for install and get-started; 81 unique evaluation IDs and 20 resource uses; Codex recovery asset contract; repository pre-commit checks for all changed files; git diff --cached --check. Signed-off-by: Allan Enemark <exactly.allan@gmail.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Enterprise Run ID: 📒 Files selected for processing (4)
📜 Recent review details🧰 Additional context used📓 Path-based instructions (9)**/*📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)
Files:
**/*.{md,rst,html,txt}📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-brand-terminology.md)
Files:
**/*.{md,rst,html}📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-brand-terminology.md)
Files:
**/*.{md,rst,txt}📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)
Files:
**/*.{md,rst}📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)
Files:
**/*.md📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-technical-docs.md)
Files:
**/SKILL.md📄 CodeRabbit inference engine (AGENTS.md)
Files:
⚙️ CodeRabbit configuration file
Files:
**/*.{md,mdx}📄 CodeRabbit inference engine (AGENTS.md)
Files:
**/*.{md,markdown,mdx}📄 CodeRabbit inference engine (CONTRIBUTING.md)
Files:
🪛 SkillSpector (2.3.11)skills/nemo-relay-migrate-from-flow/SKILL.md[warning] 24: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction. Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent. (Rogue Agent (RA2)) [warning] 24: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction. Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent. (Rogue Agent (RA2)) [warning] 24: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction. Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent. (Rogue Agent (RA2)) 🔇 Additional comments (5)
WalkthroughThe PR reorganizes the NeMo Relay skill catalog, adds onboarding and installation workflows, introduces observability documentation, renames instrumentation and plugin skills, updates evaluation fixtures, and removes legacy skill documentation and datasets. ChangesNeMo Relay Skills
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Developer
participant GetStarted
participant RelayCLI
participant OutputFiles
Developer->>GetStarted: Select try-now path
GetStarted->>RelayCLI: Inspect and configure trial
RelayCLI->>OutputFiles: Emit ATOF and ATIF evidence
OutputFiles-->>Developer: Verify observable results
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
/ok to test fc73ee3 |
There was a problem hiding this comment.
Actionable comments posted: 23
🤖 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/references/built-in-integrations-try-now.md`:
- Around line 17-18: Update the table headers in the markdown table to title
case: change “Existing surface,” “Relay attachment,” and “Current support
boundary” to “Existing Surface,” “Relay Attachment,” and “Current Support
Boundary.”
- Around line 36-39: Replace the bare URLs in the built-in integrations list
with descriptive Markdown links, using each integration name as the link text
and preserving its existing destination URL; apply the same change to the
additional occurrences noted in the comment.
In `@skills/nemo-relay-get-started/references/cli-try-now.md`:
- Around line 258-264: Replace each bare URL in the reference list with a
descriptive Markdown link, preserving the existing destinations and list
structure. Use clear titles such as “CLI overview,” “CLI basic usage,” and
“Codex integration,” including the GitHub issue and plugin selection entries.
In `@skills/nemo-relay-get-started/references/manual-language-try-now.md`:
- Around line 24-29: Replace the bare Python, Node.js, Rust, and general
quick-start URLs in the manual with descriptive Markdown links, preserving each
URL target and using clear link text such as “Python quick start,” “Node.js
quick start,” “Rust quick start,” and “quick start.”
In `@skills/nemo-relay-get-started/SKILL.md`:
- Around line 115-118: Replace the bare URLs in the public entry-point list with
descriptive Markdown links, preserving each existing destination; update the
CLI, maintained integrations, language quick starts, and plugin selection
entries with clear link text.
In `@skills/nemo-relay-install/assets/codex-desktop-recovery.md`:
- Around line 78-83: Replace each raw URL in the References section with
descriptive Markdown links: identify the Codex Desktop provider-filter bug,
Relay Codex integration, Relay plugin installation and uninstall, and Relay
transparent run using clear accessible link text while preserving their existing
destinations.
- Around line 11-16: Add a concise introductory sentence immediately after the
Setup Record, Recovery Procedure, and References headings, before their
respective lists; update the sections identified by the symbols/headings “Setup
Record,” “Recovery Procedure,” and “References” without changing the list
content.
In `@skills/nemo-relay-install/references/cli-install.md`:
- Around line 18-24: Update the prerequisite and public-reference lists in the
installation guide with complete-sentence lead-ins, and replace every bare URL
with descriptive Markdown links. Apply the same changes to the corresponding
section identified by the second occurrence, preserving the existing references
and meaning.
- Around line 28-41: Update the installation instructions to avoid piping
mutable remote scripts directly into a shell or PowerShell interpreter. In the
Unix-like and Windows sections, reference an immutable versioned installer and
add a download-then-verify step using a published signature or checksum before
execution, preserving the existing binary checksum verification guidance.
- Around line 43-47: Correct the section containing the `cargo install
nemo-relay-cli` command: rename it to indicate installation from the published
Cargo package, or replace/add instructions using the repository checkout command
for a true source build. Ensure the heading and explanatory text accurately
match the command’s behavior.
In `@skills/nemo-relay-install/references/language-packages.md`:
- Around line 61-64: Add a complete lead-in sentence before the “Public
references” list, then replace each raw URL with descriptive Markdown links for
“Prerequisites” and “Installation” while preserving their destinations.
- Around line 14-31: Update the language-package guidance to first detect the
project’s declared package manager and lockfile, then use its corresponding
Python or Node.js installation command. Preserve existing Poetry, PDM, pnpm,
Yarn, Bun, uv, and other manager choices instead of defaulting to uv or npm;
retain fallback commands only when no managed project configuration exists.
In `@skills/nemo-relay-install/references/maintained-integrations.md`:
- Around line 44-45: Replace the bare URL under “Supported integrations” with a
descriptive Markdown link, such as “NVIDIA NeMo Retriever supported
integrations,” pointing to the same documentation address.
In `@skills/nemo-relay-install/SKILL.md`:
- Around line 109-129: Add a concise introductory lead-in sentence immediately
after the “Hand Off After Install” heading and another immediately after the
“Common Mistakes” heading, before their respective bullet lists. Keep both
sentences aligned with the purpose of the section and the existing documentation
style.
- Around line 131-136: Update the “Public Docs To Reference” section by adding a
complete lead-in sentence before the list and converting each raw URL into a
descriptive Markdown link, preserving the existing documentation targets and
order.
In `@skills/nemo-relay-instrument-calls/SKILL.md`:
- Around line 67-80: Add complete lead-in sentences before each replacement list
in the relevant sections of SKILL.md, including the “Related Skills” list.
Rewrite list items with parallel grammatical construction and consistent end
punctuation, preserving their existing meaning and skill references.
In `@skills/nemo-relay-migrate-from-flow/SKILL.md`:
- Around line 19-21: Update the instructions in SKILL.md to invoke the bundled
helper using an explicit path resolved from the skill directory, rather than the
current working directory. Apply this consistently to the dry-run and subsequent
commands around the migration workflow, including the references covered by
lines 81–86, while preserving the existing arguments and behavior.
In `@skills/nemo-relay-plugin-observability/references/atof.md`:
- Around line 41-48: Add a complete lead-in sentence before the checklist under
the “Verify” section, such as “Verify the export with the following checks.”
Keep the existing verification items unchanged.
- Around line 54-55: Replace the raw URL in the public reference within the ATOF
documentation with a descriptive Markdown link, preserving the existing
destination while using meaningful link text.
In `@skills/nemo-relay-plugin-observability/SKILL.md`:
- Around line 19-30: Add a complete lead-in sentence immediately before each
Markdown list in the “Choose The Output” section and the corresponding sections
at the referenced locations, ensuring each list’s items remain grammatically
parallel and clearly follow the introduction.
In `@skills/README.md`:
- Around line 23-25: Update the description of nemo-relay-get-started in the
skills README to clarify that it selects the first path compatible with the
user’s goal and environment, rather than always trying the CLI first; mention
that existing maintained integrations such as LangChain or LangGraph may be
selected instead.
- Around line 68-70: Add a complete lead-in sentence immediately before the
numbered list under the “Common Journeys” heading, clearly introducing the
listed workflow sequences.
- Line 40: Update every table header in skills/README.md that currently uses
“Use it when” to the title-case form “Use It When,” including the referenced
occurrences, while leaving the table structure unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: 8156f635-cab9-414c-8b3f-d31699ae8275
📒 Files selected for processing (43)
skills/README.mdskills/nemo-relay-debug-runtime-integration/SKILL.mdskills/nemo-relay-debug-runtime-integration/evals/evals.jsonskills/nemo-relay-export-atif-trajectories/evals/evals.jsonskills/nemo-relay-export-openinference/evals/evals.jsonskills/nemo-relay-export-otel/evals/evals.jsonskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-get-started/evals/evals.jsonskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-get-started/references/cli-try-now.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-install/evals/evals.jsonskills/nemo-relay-install/references/cli-install.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-instrument-calls/evals/evals.jsonskills/nemo-relay-instrument-context-isolation/SKILL.mdskills/nemo-relay-instrument-context-isolation/evals/evals.jsonskills/nemo-relay-instrument-typed-wrappers/SKILL.mdskills/nemo-relay-instrument-typed-wrappers/evals/evals.jsonskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/evals/evals.jsonskills/nemo-relay-plugin-adaptive-tuning/references/config.mdskills/nemo-relay-plugin-adaptive-tuning/references/hints.mdskills/nemo-relay-plugin-build/SKILL.mdskills/nemo-relay-plugin-build/evals/evals.jsonskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-plugin-observability/evals/evals.jsonskills/nemo-relay-plugin-observability/references/atif.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-plugin-observability/references/openinference.mdskills/nemo-relay-plugin-observability/references/opentelemetry.mdskills/nemo-relay-setup-observability/SKILL.mdskills/nemo-relay-setup-observability/evals/evals.jsonskills/nemo-relay-start/SKILL.mdskills/nemo-relay-start/evals/evals.jsonskills/nemo-relay-tune-adaptive-config/evals/evals.jsonskills/nemo-relay-tune-adaptive-hints/evals/evals.jsonskills/nemo-relay-tune-performance/evals/evals.json
💤 Files with no reviewable changes (10)
- skills/nemo-relay-setup-observability/SKILL.md
- skills/nemo-relay-tune-adaptive-hints/evals/evals.json
- skills/nemo-relay-tune-adaptive-config/evals/evals.json
- skills/nemo-relay-export-atif-trajectories/evals/evals.json
- skills/nemo-relay-export-otel/evals/evals.json
- skills/nemo-relay-start/SKILL.md
- skills/nemo-relay-export-openinference/evals/evals.json
- skills/nemo-relay-tune-performance/evals/evals.json
- skills/nemo-relay-start/evals/evals.json
- skills/nemo-relay-setup-observability/evals/evals.json
📜 Review details
🧰 Additional context used
📓 Path-based instructions (10)
**/*.{md,rst,html,txt}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-brand-terminology.md)
**/*.{md,rst,html,txt}: Always spellNVIDIAin all caps. Do not useNvidia,nvidia,nVidia,nVIDIA, orNV.
Usean NVIDIAbefore a noun because the name starts with an 'en' sound.
Do not add a registered trademark symbol afterNVIDIAwhen referring to the company.
Use trademark symbols with product names only when the document type or legal guidance requires them.
Verify official capitalization, spacing, and hyphenation for product names.
Precede NVIDIA product names withNVIDIAon first mention when it is natural and accurate.
Do not rewrite product names for grammar or title-case rules.
Preserve third-party product names according to the owner's spelling.
Include the company name and full model qualifier on first use when it helps identify the model.
Preserve the official capitalization and punctuation of model names.
Use shorter family names only after the full name is established.
Spell out a term on first use and put the acronym in parentheses unless the acronym is widely understood by the intended audience.
Use the acronym on later mentions after it has been defined.
For long documents, reintroduce the full term if readers might lose context.
Form plurals of acronyms withs, not an apostrophe, such asGPUs.
In headings, common acronyms can remain abbreviated. Spell out the term in the first or second sentence of the body.
Common terms such asCPU,GPU,PC,API, andUIusually do not need to be spelled out for developer audiences.
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/references/atif.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-plugin-observability/references/opentelemetry.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-plugin-observability/references/openinference.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-debug-runtime-integration/SKILL.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/nemo-relay-plugin-adaptive-tuning/references/hints.mdskills/nemo-relay-get-started/references/cli-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-context-isolation/SKILL.mdskills/nemo-relay-instrument-typed-wrappers/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/references/config.mdskills/README.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/SKILL.mdskills/nemo-relay-plugin-build/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-install/assets/codex-desktop-recovery.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/references/atif.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-plugin-observability/references/opentelemetry.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-plugin-observability/references/openinference.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-debug-runtime-integration/SKILL.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/nemo-relay-plugin-adaptive-tuning/references/hints.mdskills/nemo-relay-get-started/references/cli-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-context-isolation/SKILL.mdskills/nemo-relay-instrument-typed-wrappers/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/references/config.mdskills/README.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/SKILL.mdskills/nemo-relay-plugin-build/SKILL.md
**/*.{md,rst,txt}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)
Spell
NVIDIAin all caps. Do not useNvidia,nvidia, orNV.
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/references/atif.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-plugin-observability/references/opentelemetry.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-plugin-observability/references/openinference.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-debug-runtime-integration/SKILL.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/nemo-relay-plugin-adaptive-tuning/references/hints.mdskills/nemo-relay-get-started/references/cli-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-context-isolation/SKILL.mdskills/nemo-relay-instrument-typed-wrappers/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/references/config.mdskills/README.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/SKILL.mdskills/nemo-relay-plugin-build/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.
Usecanfor possibility and reservemayfor permission.
Useafterfor temporal relationships instead ofonce.
Preferrefer tooverseewhen the wording points readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical docs.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values.
Use numerals for 10 or greater and include commas in thousands.
Do not add trademark symbols to learning-oriented docs unless the source, platform, or legal guidance explicitly requires them.
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/references/atif.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-plugin-observability/references/opentelemetry.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-plugin-observability/references/openinference.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-debug-runtime-integration/SKILL.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/nemo-relay-plugin-adaptive-tuning/references/hints.mdskills/nemo-relay-get-started/references/cli-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-context-isolation/SKILL.mdskills/nemo-relay-instrument-typed-wrappers/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/references/config.mdskills/README.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/SKILL.mdskills/nemo-relay-plugin-build/SKILL.md
**/*.md
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-technical-docs.md)
**/*.md: Use title case consistently in technical documentation headings
Avoid quotation marks, ampersands, and exclamation marks in headings
Keep product, event, research, and whitepaper names in their official title case
Use title case for table headers
Do not force social-media sentence case into technical docs
Format code elements, commands, parameters, package names, and expressions in monospace
Format directories, file names, and paths in monospace using backticks
Use angle brackets inside monospace for variables inside paths, such as/home/<username>/.login
Format error messages and strings in quotation marks, keeping literal code strings in code formatting when clearer
Format UI buttons, menus, fields, and labels in bold
Use angle brackets between UI labels for menu paths, such as File > Save As
Use italics for new terms on first use, sparingly and only when introducing the term
Use italics for publication titles
Format keyboard shortcuts in plain text, such as Press Ctrl+Alt+Delete
Use owner/repo link text for GitHub repositories, preferring[NVIDIA/NeMo](link)over prose references like 'the GitHub repo'
Introduce every code block with a complete sentence
Do not make a code block complete the grammar of the previous sentence
Do not continue a sentence after a code block
Use syntax highlighting when the format supports it for code blocks
Avoid the word 'snippet' unless the surrounding docs already use it as a term of art
Keep inline method, function, and class references consistent with nearby docs, omitting empty parentheses for prose readability when no call is shown
Use descriptive anchor text that matches the destination title when possible for links
Avoid raw URLs in running text
Avoid generic anchor text such as 'here,' 'this page,' and 'read more'
Include acronyms in link text when a linked term includes an acronym
Do not link long sentences or multiple sentences
Avoid links that pull readers away from a procedure unless the link is a p...
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/references/atif.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-plugin-observability/references/opentelemetry.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-plugin-observability/references/openinference.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-debug-runtime-integration/SKILL.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/nemo-relay-plugin-adaptive-tuning/references/hints.mdskills/nemo-relay-get-started/references/cli-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-context-isolation/SKILL.mdskills/nemo-relay-instrument-typed-wrappers/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/references/config.mdskills/README.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/SKILL.mdskills/nemo-relay-plugin-build/SKILL.md
**/*.{md,mdx}
📄 CodeRabbit inference engine (AGENTS.md)
Update
README.md,fern/, package READMEs, and binding-support notes when public behavior, package names, examples, or supported bindings change.
**/*.{md,mdx}: Prefer the documented public API, not internal shortcuts
Keep package names, repo references, and build commands current
Keep release-process and release-notes guidance in repo-maintainer docs such asRELEASING.md, not as user-facing docs pages orCHANGELOG.md
Keep stable user-facing wrappers atscripts/root in docs and examples; only point at namespaced helper paths when documenting internal maintenance work
When detailed dynamic plugin guides exist, keep Rust native plugin examples, Python worker plugin examples, andgrpc-v1protocol details on separate pagesIf links in documentation change, run
just docs-linkcheck.
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/references/atif.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-plugin-observability/references/opentelemetry.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-plugin-observability/references/openinference.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-debug-runtime-integration/SKILL.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/nemo-relay-plugin-adaptive-tuning/references/hints.mdskills/nemo-relay-get-started/references/cli-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-context-isolation/SKILL.mdskills/nemo-relay-instrument-typed-wrappers/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/references/config.mdskills/README.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/SKILL.mdskills/nemo-relay-plugin-build/SKILL.md
**/*.{md,markdown,mdx}
📄 CodeRabbit inference engine (CONTRIBUTING.md)
Add the SPDX license header to all Markdown/MDX documentation files using the HTML comment block form.
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/references/atif.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-plugin-observability/references/opentelemetry.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-plugin-observability/references/openinference.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-debug-runtime-integration/SKILL.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/nemo-relay-plugin-adaptive-tuning/references/hints.mdskills/nemo-relay-get-started/references/cli-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-context-isolation/SKILL.mdskills/nemo-relay-instrument-typed-wrappers/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/references/config.mdskills/README.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/SKILL.mdskills/nemo-relay-plugin-build/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, 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.
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-debug-runtime-integration/evals/evals.jsonskills/nemo-relay-plugin-observability/references/atif.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-plugin-adaptive-tuning/evals/evals.jsonskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-instrument-calls/evals/evals.jsonskills/nemo-relay-install/evals/evals.jsonskills/nemo-relay-plugin-observability/references/opentelemetry.mdskills/nemo-relay-get-started/evals/evals.jsonskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-plugin-observability/evals/evals.jsonskills/nemo-relay-plugin-observability/references/openinference.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-debug-runtime-integration/SKILL.mdskills/nemo-relay-instrument-context-isolation/evals/evals.jsonskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/nemo-relay-instrument-typed-wrappers/evals/evals.jsonskills/nemo-relay-plugin-adaptive-tuning/references/hints.mdskills/nemo-relay-get-started/references/cli-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-context-isolation/SKILL.mdskills/nemo-relay-instrument-typed-wrappers/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/references/config.mdskills/nemo-relay-plugin-build/evals/evals.jsonskills/README.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/SKILL.mdskills/nemo-relay-plugin-build/SKILL.md
**
⚙️ CodeRabbit configuration file
**:AGENTS.md
This file provides guidance to agents, including Claude Code and OpenAI Codex, when working in this repository.
Project Overview
NeMo Relay is a multi-language agent runtime framework for execution scopes, lifecycle events, middleware, plugins, and observability around tool and LLM calls. The core runtime is Rust. Primary supported bindings are Rust, Python, and Node.js. Go and the raw C FFI are experimental and source-first.
The shared runtime model is:
- Scope stacks decide where work belongs and which scope-local behavior is visible.
- Middleware registries decide what guardrails and intercepts run around managed calls.
- Plugins install reusable runtime behavior from configuration.
- Events record runtime behavior in ATOF form.
- Subscribers and exporters consume events in-process or export them to ATIF, OpenTelemetry, OpenInference, or other backends.
Repository Structure
The repository layout separates the Rust runtime, language bindings,
documentation, integrations, and agent-facing skills.crates/ core/ # Rust core runtime crate, published as nemo-relay adaptive/ # Adaptive runtime primitives and plugin components python/ # PyO3 native extension for the Python package ffi/ # Raw C ABI layer used by downstream bindings such as Go node/ # NAPI Node.js binding and JavaScript/TypeScript entry points python/ nemo_relay/ # Python wrapper package: scopes, tools, LLM, middleware, typed helpers, plugins, adaptive helpers tests/ # Python tests go/ nemo_relay/ # Experimental Go CGo binding and tests fern/ # Fern documentation site scripts/ # Stable wrappers and helper scripts; build/test/docs entry points live in justfile skills/ # Published Codex/agent skills for NeMo Relay usage patternsPrerequisites
Insta...
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-debug-runtime-integration/evals/evals.jsonskills/nemo-relay-plugin-observability/references/atif.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-plugin-adaptive-tuning/evals/evals.jsonskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-instrument-calls/evals/evals.jsonskills/nemo-relay-install/evals/evals.jsonskills/nemo-relay-plugin-observability/references/opentelemetry.mdskills/nemo-relay-get-started/evals/evals.jsonskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-plugin-observability/evals/evals.jsonskills/nemo-relay-plugin-observability/references/openinference.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-debug-runtime-integration/SKILL.mdskills/nemo-relay-instrument-context-isolation/evals/evals.jsonskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/nemo-relay-instrument-typed-wrappers/evals/evals.jsonskills/nemo-relay-plugin-adaptive-tuning/references/hints.mdskills/nemo-relay-get-started/references/cli-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-context-isolation/SKILL.mdskills/nemo-relay-instrument-typed-wrappers/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/references/config.mdskills/nemo-relay-plugin-build/evals/evals.jsonskills/README.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/SKILL.mdskills/nemo-relay-plugin-build/SKILL.md
**/SKILL.md
📄 CodeRabbit inference engine (AGENTS.md)
SKILL.mdfiles are skill entrypoints and must start with YAML frontmatter containing at leastnameanddescription.
Files:
skills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-debug-runtime-integration/SKILL.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-instrument-context-isolation/SKILL.mdskills/nemo-relay-instrument-typed-wrappers/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/SKILL.mdskills/nemo-relay-plugin-build/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-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-debug-runtime-integration/SKILL.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-instrument-context-isolation/SKILL.mdskills/nemo-relay-instrument-typed-wrappers/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-adaptive-tuning/SKILL.mdskills/nemo-relay-plugin-build/SKILL.md
🪛 LanguageTool
skills/nemo-relay-plugin-build/SKILL.md
[style] ~157-~157: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...nemo-relay-plugin-observability - You need to debug plugin activation, missing events...
(REP_NEED_TO_VB)
🪛 SkillSpector (2.3.7)
skills/nemo-relay-get-started/SKILL.md
[warning] 32: [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))
skills/nemo-relay-migrate-from-flow/SKILL.md
[warning] 23: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
(Rogue Agent (RA2))
[warning] 23: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
(Rogue Agent (RA2))
[warning] 23: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
(Rogue Agent (RA2))
[warning] 23: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
(Rogue Agent (RA2))
🔇 Additional comments (22)
skills/nemo-relay-debug-runtime-integration/SKILL.md (1)
3-8: LGTM!Also applies to: 75-78
skills/nemo-relay-debug-runtime-integration/evals/evals.json (1)
40-40: LGTM!skills/nemo-relay-migrate-from-flow/SKILL.md (1)
3-6: LGTM!Also applies to: 107-107
skills/nemo-relay-plugin-observability/evals/evals.json (1)
1-291: LGTM!skills/nemo-relay-plugin-observability/references/atif.md (1)
1-8: LGTM!Also applies to: 65-65
skills/nemo-relay-plugin-observability/references/openinference.md (1)
1-8: LGTM!Also applies to: 51-52
skills/nemo-relay-plugin-observability/references/opentelemetry.md (1)
1-8: LGTM!Also applies to: 55-55
skills/nemo-relay-plugin-adaptive-tuning/SKILL.md (1)
2-9: LGTM!Also applies to: 20-20, 55-60, 71-87
skills/nemo-relay-plugin-adaptive-tuning/evals/evals.json (1)
1-175: LGTM!skills/nemo-relay-plugin-adaptive-tuning/references/config.md (1)
1-15: LGTM!Also applies to: 82-84
skills/nemo-relay-plugin-adaptive-tuning/references/hints.md (1)
1-18: LGTM!Also applies to: 64-64
skills/nemo-relay-plugin-build/SKILL.md (1)
2-6: LGTM!Also applies to: 36-36, 156-163
skills/nemo-relay-plugin-build/evals/evals.json (1)
3-21: LGTM!Also applies to: 31-35, 45-51
skills/nemo-relay-instrument-calls/SKILL.md (1)
3-8: LGTM!skills/nemo-relay-instrument-calls/evals/evals.json (1)
49-52: LGTM!skills/nemo-relay-instrument-context-isolation/SKILL.md (1)
2-8: LGTM!Also applies to: 61-61
skills/nemo-relay-instrument-context-isolation/evals/evals.json (1)
3-43: LGTM!Also applies to: 45-51
skills/nemo-relay-instrument-typed-wrappers/SKILL.md (1)
2-8: LGTM!Also applies to: 75-75
skills/nemo-relay-instrument-typed-wrappers/evals/evals.json (1)
3-43: LGTM!Also applies to: 45-51
skills/nemo-relay-get-started/evals/evals.json (1)
1-220: LGTM!skills/nemo-relay-get-started/references/cli-try-now.md (1)
42-44: 🎯 Functional CorrectnessKeep
codex-cli >= 0.129.0here. This is the documented floor for thefeatures.hooksandnemo-relay-openaipath.skills/nemo-relay-install/evals/evals.json (1)
1-166: LGTM!
willkill07
left a comment
There was a problem hiding this comment.
Just an initial round of feedback with some thoughts and comments!
|
Are we thinking about listing Relay on NVIDIA/skills? If so, we might want to support their auto-discovery path: After PR 407 merges, NeMo Relay would need:
|
Co-authored-by: Will Killian <2007799+willkill07@users.noreply.github.com> Signed-off-by: Allan <exactlyallan@users.noreply.github.com>
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
skills/README.md (1)
21-22: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winLet
nemo-relay-get-startedselect installation when needed.The linked skill chooses the applicable try-now boundary before selecting an install package, then delegates to
nemo-relay-installonly when installation is missing. Telling new users to install first can cause an unnecessary clarification or path-selection loop.Suggested wording
-- **New to Relay**: use [`nemo-relay-install`](nemo-relay-install/SKILL.md), then -- [`nemo-relay-get-started`](nemo-relay-get-started/SKILL.md). +- **New to Relay**: use [`nemo-relay-get-started`](nemo-relay-get-started/SKILL.md); + it routes to [`nemo-relay-install`](nemo-relay-install/SKILL.md) when needed.🤖 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/README.md` around lines 21 - 22, Update the “New to Relay” guidance in the README to link users directly to nemo-relay-get-started as the entry point, removing the instruction to run nemo-relay-install first. Preserve the existing skill links while making nemo-relay-get-started responsible for selecting installation when needed.
🤖 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/README.md`:
- Around line 16-17: Update the sentence in the skills README so the singular
subject “.claude/skills directory” uses the verb “exposes” instead of “expose,”
leaving the surrounding wording unchanged.
---
Outside diff comments:
In `@skills/README.md`:
- Around line 21-22: Update the “New to Relay” guidance in the README to link
users directly to nemo-relay-get-started as the entry point, removing the
instruction to run nemo-relay-install first. Preserve the existing skill links
while making nemo-relay-get-started responsible for selecting installation when
needed.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: c97fad67-2af6-49f4-9e3f-70eeac091d7c
📒 Files selected for processing (1)
skills/README.md
📜 Review details
🧰 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 spellNVIDIAin all caps. Do not useNvidia,nvidia,nVidia,nVIDIA, orNV.
Usean NVIDIAbefore a noun because the name starts with an 'en' sound.
Do not add a registered trademark symbol afterNVIDIAwhen referring to the company.
Use trademark symbols with product names only when the document type or legal guidance requires them.
Verify official capitalization, spacing, and hyphenation for product names.
Precede NVIDIA product names withNVIDIAon first mention when it is natural and accurate.
Do not rewrite product names for grammar or title-case rules.
Preserve third-party product names according to the owner's spelling.
Include the company name and full model qualifier on first use when it helps identify the model.
Preserve the official capitalization and punctuation of model names.
Use shorter family names only after the full name is established.
Spell out a term on first use and put the acronym in parentheses unless the acronym is widely understood by the intended audience.
Use the acronym on later mentions after it has been defined.
For long documents, reintroduce the full term if readers might lose context.
Form plurals of acronyms withs, not an apostrophe, such asGPUs.
In headings, common acronyms can remain abbreviated. Spell out the term in the first or second sentence of the body.
Common terms such asCPU,GPU,PC,API, andUIusually do not need to be spelled out for developer audiences.
Files:
skills/README.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/README.md
**/*.{md,rst,txt}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)
Spell
NVIDIAin all caps. Do not useNvidia,nvidia, orNV.
Files:
skills/README.md
**/*.{md,rst}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)
**/*.{md,rst}: Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text. Avoid raw URLs and weak anchors such as "here" or "read more."
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative steps. Keep steps parallel and split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English.
Usecanfor possibility and reservemayfor permission.
Useafterfor temporal relationships instead ofonce.
Preferrefer tooverseewhen the wording points readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical docs.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values.
Use numerals for 10 or greater and include commas in thousands.
Do not add trademark symbols to learning-oriented docs unless the source, platform, or legal guidance explicitly requires them.
Files:
skills/README.md
**/*.md
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-technical-docs.md)
**/*.md: Use title case consistently in technical documentation headings
Avoid quotation marks, ampersands, and exclamation marks in headings
Keep product, event, research, and whitepaper names in their official title case
Use title case for table headers
Do not force social-media sentence case into technical docs
Format code elements, commands, parameters, package names, and expressions in monospace
Format directories, file names, and paths in monospace using backticks
Use angle brackets inside monospace for variables inside paths, such as/home/<username>/.login
Format error messages and strings in quotation marks, keeping literal code strings in code formatting when clearer
Format UI buttons, menus, fields, and labels in bold
Use angle brackets between UI labels for menu paths, such as File > Save As
Use italics for new terms on first use, sparingly and only when introducing the term
Use italics for publication titles
Format keyboard shortcuts in plain text, such as Press Ctrl+Alt+Delete
Use owner/repo link text for GitHub repositories, preferring[NVIDIA/NeMo](link)over prose references like 'the GitHub repo'
Introduce every code block with a complete sentence
Do not make a code block complete the grammar of the previous sentence
Do not continue a sentence after a code block
Use syntax highlighting when the format supports it for code blocks
Avoid the word 'snippet' unless the surrounding docs already use it as a term of art
Keep inline method, function, and class references consistent with nearby docs, omitting empty parentheses for prose readability when no call is shown
Use descriptive anchor text that matches the destination title when possible for links
Avoid raw URLs in running text
Avoid generic anchor text such as 'here,' 'this page,' and 'read more'
Include acronyms in link text when a linked term includes an acronym
Do not link long sentences or multiple sentences
Avoid links that pull readers away from a procedure unless the link is a p...
Files:
skills/README.md
**/*.{md,mdx}
📄 CodeRabbit inference engine (AGENTS.md)
Update
README.md,fern/, package READMEs, and binding-support notes when public behavior, package names, examples, or supported bindings change.
**/*.{md,mdx}: Prefer the documented public API, not internal shortcuts
Keep package names, repo references, and build commands current
Keep release-process and release-notes guidance in repo-maintainer docs such asRELEASING.md, not as user-facing docs pages orCHANGELOG.md
Keep stable user-facing wrappers atscripts/root in docs and examples; only point at namespaced helper paths when documenting internal maintenance work
When detailed dynamic plugin guides exist, keep Rust native plugin examples, Python worker plugin examples, andgrpc-v1protocol details on separate pagesIf links in documentation change, run
just docs-linkcheck.
Files:
skills/README.md
**/*.{md,markdown,mdx}
📄 CodeRabbit inference engine (CONTRIBUTING.md)
Add the SPDX license header to all Markdown/MDX documentation files using the HTML comment block form.
Files:
skills/README.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, 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.
Files:
skills/README.md
**
⚙️ CodeRabbit configuration file
**:AGENTS.md
This file provides guidance to agents, including Claude Code and OpenAI Codex, when working in this repository.
Project Overview
NeMo Relay is a multi-language agent runtime framework for execution scopes, lifecycle events, middleware, plugins, and observability around tool and LLM calls. The core runtime is Rust. Primary supported bindings are Rust, Python, and Node.js. Go and the raw C FFI are experimental and source-first.
The shared runtime model is:
- Scope stacks decide where work belongs and which scope-local behavior is visible.
- Middleware registries decide what guardrails and intercepts run around managed calls.
- Plugins install reusable runtime behavior from configuration.
- Events record runtime behavior in ATOF form.
- Subscribers and exporters consume events in-process or export them to ATIF, OpenTelemetry, OpenInference, or other backends.
Repository Structure
The repository layout separates the Rust runtime, language bindings,
documentation, integrations, and agent-facing skills.crates/ core/ # Rust core runtime crate, published as nemo-relay adaptive/ # Adaptive runtime primitives and plugin components python/ # PyO3 native extension for the Python package ffi/ # Raw C ABI layer used by downstream bindings such as Go node/ # NAPI Node.js binding and JavaScript/TypeScript entry points python/ nemo_relay/ # Python wrapper package: scopes, tools, LLM, middleware, typed helpers, plugins, adaptive helpers tests/ # Python tests go/ nemo_relay/ # Experimental Go CGo binding and tests fern/ # Fern documentation site scripts/ # Stable wrappers and helper scripts; build/test/docs entry points live in justfile skills/ # Published Codex/agent skills for NeMo Relay usage patternsPrerequisites
Insta...
Files:
skills/README.md
🔇 Additional comments (3)
skills/README.md (3)
23-25: Describe try-now selection as conditional, not sequential.
nemo-relay-get-starteduses the first path matching the user’s goal and environment; it does not always try the CLI before integrations or manual instrumentation. Existing maintained integrations can be selected directly.
40-40: Use title case in all table headers.Change every
Use it whenheader toUse It When.As per coding guidelines, use title case consistently for technical-documentation table headers.
Also applies to: 47-47, 55-55, 63-63
Source: Coding guidelines
68-70: Add a lead-in sentence before the journey list.Introduce the numbered list with a complete sentence, such as “Use these sequences to choose the next workflow step.”
As per coding guidelines, all lists must have a complete lead-in sentence.
Source: Coding guidelines
Yes thats the intention - will start the integration process right after the merge. |
Preserve existing Python and Node.js package managers, align install eval expectations, require each get-started reference from its intended scenario, and resolve the migration helper from the skill directory. Normalize public links, list introductions, README routing language, and observability handoffs according to the repository documentation guide. Validation: repository pre-commit checks and Markdown linkcheck; official Agent Skills validation for all 10 skills; 81 unique eval IDs with all 13 resources covered; migration helper path check; symlink check; git diff --cached --check. Signed-off-by: Allan Enemark <exactly.allan@gmail.com>
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
skills/nemo-relay-plugin-observability/SKILL.md (1)
21-32: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winSeparate plugin-managed and manual output lifecycles.
This new section presents manual subscribers and plugin-managed exporters as alternatives, but the shared lifecycle below still tells readers to create, register, deregister, and shut down every selected output. That is incorrect for plugin-managed outputs: the plugin owns subscriber names and teardown, so this guidance can cause duplicate registration or bypass cleanup. Add an explicit plugin path and label the existing lifecycle as manual-only. Official observability documentation confirms that plugin-managed subscribers use inferred names and plugin-owned teardown. (docs.nvidia.com)
As per coding guidelines, introduce the procedure with a complete lead-in sentence and keep one action per step.
Suggested clarification
Select the output that best matches the user's immediate inspection target: +For plugin-managed outputs, initialize the Observability plugin before the +instrumented work and clear it during teardown. Use the shared create/register +lifecycle only for manual subscriber or exporter APIs.🤖 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-plugin-observability/SKILL.md` around lines 21 - 32, Update the output-selection and lifecycle guidance in SKILL.md to distinguish plugin-managed outputs from manual subscribers. Add an explicit plugin-managed procedure stating that plugins infer subscriber names and own registration, deregistration, and shutdown; label the existing create/register/deregister/shutdown lifecycle as manual-only. Introduce the procedure with a complete lead-in sentence and ensure each step contains one action.Sources: Coding guidelines, MCP tools
skills/nemo-relay-get-started/SKILL.md (1)
108-111: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winReconcile the plugin recommendation with the quick-start prohibition.
Lines 83-94 require recommending one of Adaptive, NeMo Guardrails, PII Redaction, or Model Pricing after the proof, but this block prohibits configuring those categories during the same quick start. Narrow the prohibition to production OTLP, custom plugins, and Go/FFI examples so the documented progression is executable.
Proposed wording
-Do not configure production OTLP backends, model pricing, guardrails, adaptive -tuning, custom plugins, Go or FFI examples during the quick start. Mention -optional plugins only after the initial proof and add only the one the user -selects. +Do not configure production OTLP backends, custom plugins, or Go or FFI +examples during the quick start. Mention optional plugins only after the +initial proof and add only the one the user selects.🤖 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-get-started/SKILL.md` around lines 108 - 111, Update the quick-start guidance around the plugin recommendation so it no longer prohibits Adaptive, NeMo Guardrails, PII Redaction, or Model Pricing after the proof. Keep the prohibition limited to production OTLP backends, custom plugins, and Go or FFI examples, preserving the documented flow of adding the single optional feature the user selects.
🤖 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-install/references/language-packages.md`:
- Around line 17-23: Update the Python package-manager guidance in
language-packages.md lines 17-23 to detect conflicting or multiple lockfiles and
metadata before selecting uv, Poetry, or PDM; follow explicit project
instructions when available, otherwise ask the user instead of inferring from
stale files. Update the Node.js guidance in language-packages.md lines 48-58 so
packageManager is authoritative, with defined handling for stale or multiple
lockfiles; preserve the existing package manager and do not mutate the project
unexpectedly.
In `@skills/nemo-relay-migrate-from-flow/SKILL.md`:
- Around line 19-21: Update the Bash examples around the bundled
migrate_from_nemo_flow.py invocations to require substituting shell-safe values
before execution, or define variables and reference them without literal
angle-bracket placeholders. Apply the same correction to both the dry-run and
subsequent command examples, while preserving their existing arguments and
behavior.
In `@skills/README.md`:
- Around line 20-23: Add complete introductory sentences before the “Start Here”
bullet list and each category table in the README. Update the surrounding
section headings and table content without changing their links or entries,
using a sentence that explains how to choose or use the listed skills.
---
Outside diff comments:
In `@skills/nemo-relay-get-started/SKILL.md`:
- Around line 108-111: Update the quick-start guidance around the plugin
recommendation so it no longer prohibits Adaptive, NeMo Guardrails, PII
Redaction, or Model Pricing after the proof. Keep the prohibition limited to
production OTLP backends, custom plugins, and Go or FFI examples, preserving the
documented flow of adding the single optional feature the user selects.
In `@skills/nemo-relay-plugin-observability/SKILL.md`:
- Around line 21-32: Update the output-selection and lifecycle guidance in
SKILL.md to distinguish plugin-managed outputs from manual subscribers. Add an
explicit plugin-managed procedure stating that plugins infer subscriber names
and own registration, deregistration, and shutdown; label the existing
create/register/deregister/shutdown lifecycle as manual-only. Introduce the
procedure with a complete lead-in sentence and ensure each step contains one
action.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: 5e6813e1-e915-43dc-b2a5-2b28c2312b28
📒 Files selected for processing (16)
skills/README.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-get-started/evals/evals.jsonskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-get-started/references/cli-try-now.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-install/evals/evals.jsonskills/nemo-relay-install/references/cli-install.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-plugin-observability/references/atof.md
📜 Review details
🧰 Additional context used
📓 Path-based instructions (10)
**/*.{md,rst,html,txt}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-brand-terminology.md)
**/*.{md,rst,html,txt}: Always spellNVIDIAin all caps. Do not useNvidia,nvidia,nVidia,nVIDIA, orNV.
Usean NVIDIAbefore a noun because the name starts with an 'en' sound.
Do not add a registered trademark symbol afterNVIDIAwhen referring to the company.
Use trademark symbols with product names only when the document type or legal guidance requires them.
Verify official capitalization, spacing, and hyphenation for product names.
Precede NVIDIA product names withNVIDIAon first mention when it is natural and accurate.
Do not rewrite product names for grammar or title-case rules.
Preserve third-party product names according to the owner's spelling.
Include the company name and full model qualifier on first use when it helps identify the model.
Preserve the official capitalization and punctuation of model names.
Use shorter family names only after the full name is established.
Spell out a term on first use and put the acronym in parentheses unless the acronym is widely understood by the intended audience.
Use the acronym on later mentions after it has been defined.
For long documents, reintroduce the full term if readers might lose context.
Form plurals of acronyms withs, not an apostrophe, such asGPUs.
In headings, common acronyms can remain abbreviated. Spell out the term in the first or second sentence of the body.
Common terms such asCPU,GPU,PC,API, andUIusually do not need to be spelled out for developer audiences.
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/README.mdskills/nemo-relay-get-started/references/cli-try-now.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-install/assets/codex-desktop-recovery.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/README.mdskills/nemo-relay-get-started/references/cli-try-now.md
**/*.{md,rst,txt}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)
Spell
NVIDIAin all caps. Do not useNvidia,nvidia, orNV.
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/README.mdskills/nemo-relay-get-started/references/cli-try-now.md
**/*.{md,rst}
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)
**/*.{md,rst}: Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text. Avoid raw URLs and weak anchors such as "here" or "read more."
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative steps. Keep steps parallel and split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English.
Usecanfor possibility and reservemayfor permission.
Useafterfor temporal relationships instead ofonce.
Preferrefer tooverseewhen the wording points readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical docs.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values.
Use numerals for 10 or greater and include commas in thousands.
Do not add trademark symbols to learning-oriented docs unless the source, platform, or legal guidance explicitly requires them.
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/README.mdskills/nemo-relay-get-started/references/cli-try-now.md
**/*.md
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-technical-docs.md)
**/*.md: Use title case consistently in technical documentation headings
Avoid quotation marks, ampersands, and exclamation marks in headings
Keep product, event, research, and whitepaper names in their official title case
Use title case for table headers
Do not force social-media sentence case into technical docs
Format code elements, commands, parameters, package names, and expressions in monospace
Format directories, file names, and paths in monospace using backticks
Use angle brackets inside monospace for variables inside paths, such as/home/<username>/.login
Format error messages and strings in quotation marks, keeping literal code strings in code formatting when clearer
Format UI buttons, menus, fields, and labels in bold
Use angle brackets between UI labels for menu paths, such as File > Save As
Use italics for new terms on first use, sparingly and only when introducing the term
Use italics for publication titles
Format keyboard shortcuts in plain text, such as Press Ctrl+Alt+Delete
Use owner/repo link text for GitHub repositories, preferring[NVIDIA/NeMo](link)over prose references like 'the GitHub repo'
Introduce every code block with a complete sentence
Do not make a code block complete the grammar of the previous sentence
Do not continue a sentence after a code block
Use syntax highlighting when the format supports it for code blocks
Avoid the word 'snippet' unless the surrounding docs already use it as a term of art
Keep inline method, function, and class references consistent with nearby docs, omitting empty parentheses for prose readability when no call is shown
Use descriptive anchor text that matches the destination title when possible for links
Avoid raw URLs in running text
Avoid generic anchor text such as 'here,' 'this page,' and 'read more'
Include acronyms in link text when a linked term includes an acronym
Do not link long sentences or multiple sentences
Avoid links that pull readers away from a procedure unless the link is a p...
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/README.mdskills/nemo-relay-get-started/references/cli-try-now.md
**/*.{md,mdx}
📄 CodeRabbit inference engine (AGENTS.md)
Update
README.md,fern/, package READMEs, and binding-support notes when public behavior, package names, examples, or supported bindings change.
**/*.{md,mdx}: Prefer the documented public API, not internal shortcuts
Keep package names, repo references, and build commands current
Keep release-process and release-notes guidance in repo-maintainer docs such asRELEASING.md, not as user-facing docs pages orCHANGELOG.md
Keep stable user-facing wrappers atscripts/root in docs and examples; only point at namespaced helper paths when documenting internal maintenance work
When detailed dynamic plugin guides exist, keep Rust native plugin examples, Python worker plugin examples, andgrpc-v1protocol details on separate pagesIf links in documentation change, run
just docs-linkcheck.
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/README.mdskills/nemo-relay-get-started/references/cli-try-now.md
**/*.{md,markdown,mdx}
📄 CodeRabbit inference engine (CONTRIBUTING.md)
Add the SPDX license header to all Markdown/MDX documentation files using the HTML comment block form.
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/README.mdskills/nemo-relay-get-started/references/cli-try-now.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, 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.
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-get-started/evals/evals.jsonskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-install/evals/evals.jsonskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/README.mdskills/nemo-relay-get-started/references/cli-try-now.md
**
⚙️ CodeRabbit configuration file
**:AGENTS.md
This file provides guidance to agents, including Claude Code and OpenAI Codex, when working in this repository.
Project Overview
NeMo Relay is a multi-language agent runtime framework for execution scopes, lifecycle events, middleware, plugins, and observability around tool and LLM calls. The core runtime is Rust. Primary supported bindings are Rust, Python, and Node.js. Go and the raw C FFI are experimental and source-first.
The shared runtime model is:
- Scope stacks decide where work belongs and which scope-local behavior is visible.
- Middleware registries decide what guardrails and intercepts run around managed calls.
- Plugins install reusable runtime behavior from configuration.
- Events record runtime behavior in ATOF form.
- Subscribers and exporters consume events in-process or export them to ATIF, OpenTelemetry, OpenInference, or other backends.
Repository Structure
The repository layout separates the Rust runtime, language bindings,
documentation, integrations, and agent-facing skills.crates/ core/ # Rust core runtime crate, published as nemo-relay adaptive/ # Adaptive runtime primitives and plugin components python/ # PyO3 native extension for the Python package ffi/ # Raw C ABI layer used by downstream bindings such as Go node/ # NAPI Node.js binding and JavaScript/TypeScript entry points python/ nemo_relay/ # Python wrapper package: scopes, tools, LLM, middleware, typed helpers, plugins, adaptive helpers tests/ # Python tests go/ nemo_relay/ # Experimental Go CGo binding and tests fern/ # Fern documentation site scripts/ # Stable wrappers and helper scripts; build/test/docs entry points live in justfile skills/ # Published Codex/agent skills for NeMo Relay usage patternsPrerequisites
Insta...
Files:
skills/nemo-relay-install/assets/codex-desktop-recovery.mdskills/nemo-relay-get-started/evals/evals.jsonskills/nemo-relay-plugin-observability/references/atof.mdskills/nemo-relay-install/references/language-packages.mdskills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-get-started/references/built-in-integrations-try-now.mdskills/nemo-relay-install/evals/evals.jsonskills/nemo-relay-get-started/references/manual-language-try-now.mdskills/nemo-relay-install/references/maintained-integrations.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-get-started/SKILL.mdskills/nemo-relay-install/references/cli-install.mdskills/README.mdskills/nemo-relay-get-started/references/cli-try-now.md
**/SKILL.md
📄 CodeRabbit inference engine (AGENTS.md)
SKILL.mdfiles are skill entrypoints and must start with YAML frontmatter containing at leastnameanddescription.
Files:
skills/nemo-relay-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/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-install/SKILL.mdskills/nemo-relay-plugin-observability/SKILL.mdskills/nemo-relay-instrument-calls/SKILL.mdskills/nemo-relay-migrate-from-flow/SKILL.mdskills/nemo-relay-get-started/SKILL.md
🪛 LanguageTool
skills/nemo-relay-install/references/language-packages.md
[style] ~22-~22: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...dm.lockor[tool.pdm]` selects PDM. - Use the project's documented dependency wor...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~54-~54: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...emo-relay-nodeforpnpm-lock.yaml. - Use yarn add nemo-relay-nodeforyarn.lo...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~55-~55: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...add nemo-relay-nodeforyarn.lock. - Use bun add nemo-relay-nodeforbun.lock...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~56-~56: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...y-nodeforbun.lockorbun.lockb`. Use npm only as the fallback when the proje...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
skills/nemo-relay-plugin-observability/SKILL.md
[style] ~88-~88: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ences/atif.mdfor ATIF trajectories. - Loadreferences/opentelemetry.md` for OTLP/...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~89-~89: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ry.mdfor OTLP/OpenTelemetry traces. - Loadreferences/openinference.md` for OpenI...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
🪛 SkillSpector (2.3.11)
skills/nemo-relay-migrate-from-flow/SKILL.md
[warning] 23: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
(Rogue Agent (RA2))
[warning] 23: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
(Rogue Agent (RA2))
[warning] 23: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
(Rogue Agent (RA2))
skills/nemo-relay-get-started/SKILL.md
[warning] 32: [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 (18)
skills/nemo-relay-migrate-from-flow/SKILL.md (1)
3-6: 📐 Maintainability & Code QualityVerify the required SKILL.md frontmatter.
The supplied context omits the complete frontmatter, so confirm that the final file has valid YAML frontmatter with non-empty
nameanddescriptionfields before the Markdown body. As per path instructions,**/SKILL.mdfiles must keep valid YAML frontmatter with at leastnameanddescriptionfields.Source: Path instructions
skills/nemo-relay-instrument-calls/SKILL.md (1)
3-8: LGTM!Also applies to: 67-84
skills/nemo-relay-plugin-observability/SKILL.md (1)
40-40: LGTM!Also applies to: 70-70, 83-89, 91-108
skills/nemo-relay-plugin-observability/references/atof.md (1)
43-50: LGTM!Also applies to: 56-57
skills/README.md (1)
6-19: LGTM!Also applies to: 71-86
skills/nemo-relay-get-started/SKILL.md (1)
1-8: LGTM!Also applies to: 9-51, 52-72, 113-120
skills/nemo-relay-get-started/evals/evals.json (1)
92-100: LGTM!Also applies to: 108-117
skills/nemo-relay-get-started/references/built-in-integrations-try-now.md (1)
17-22: LGTM!Also applies to: 36-39, 83-84
skills/nemo-relay-get-started/references/cli-try-now.md (1)
24-71: LGTM!Also applies to: 256-266
skills/nemo-relay-install/references/maintained-integrations.md (1)
34-49: LGTM!skills/nemo-relay-install/references/cli-install.md (2)
30-40: Do not pipe mutablemaininstallers directly into interpreters.Both commands execute unauthenticated remote content before installation. Pin an immutable versioned installer and download it for signature or checksum verification before execution.
20-20: LGTM!Also applies to: 45-48, 117-123
skills/nemo-relay-get-started/references/manual-language-try-now.md (1)
26-28: LGTM!Also applies to: 69-70
skills/nemo-relay-install/SKILL.md (2)
9-14: 📐 Maintainability & Code QualityVerify the required
SKILL.mdfrontmatter.The excerpt starts after the first eight lines, so confirm that the file begins with YAML frontmatter containing both
nameanddescriptionbefore the Markdown body.As per path instructions,
SKILL.mdfiles must start with YAML frontmatter containing at leastnameanddescription.Source: Path instructions
111-118: LGTM!Also applies to: 137-142
skills/nemo-relay-install/assets/codex-desktop-recovery.md (1)
13-13: LGTM!Also applies to: 32-33, 84-89
skills/nemo-relay-install/evals/evals.json (1)
20-32: LGTM!Also applies to: 55-63
skills/nemo-relay-install/references/language-packages.md (1)
14-15: LGTM!Also applies to: 25-44, 60-64, 68-82, 84-87
Define conflict-safe package-manager precedence, make migration helper examples shell-safe, and introduce README routing lists and tables with complete lead-in sentences. Validation: repository pre-commit checks and Markdown linkcheck; official Agent Skills validation for install and migration skills; 81 unique eval IDs with all 13 resources covered; migration helper dry run; git diff --cached --check. Signed-off-by: Allan Enemark <exactly.allan@gmail.com>
willkill07
left a comment
There was a problem hiding this comment.
Overall this looks good. Let's just be consistent across all skills and surfaces.
|
/ok to test fcfaa54 |
|
/merge |
Overview
Reorganize NeMo Relay's public consumer skills around task-oriented installation, onboarding, instrumentation, and plugin workflows.
This change adds an outcome-based installation router and redesigns the getting-started experience around the shortest path to first value: instrument once through a supported attachment path, validate Relay with the Observability plugin, and then change behavior by configuring another goal-aligned plugin.
The public
skills/catalog remains user-facing. Relay maintainer and core-development workflows remain under.agents/skills/.Details
nemo-relay-get-*,nemo-relay-install*,nemo-relay-instrument-*, andnemo-relay-plugin-*conventions.nemo-relay-installto route users among CLI installation, language packages, and maintained framework integrations based on their intended outcome.nemo-relay-get-startedas a first-value quick start with three ordered paths: CLI transparent run, built-in integrations, and manual language integration.Breaking changes
Relay runtime APIs, packages, and public types do not change. Public skill directory names have changed, so direct consumers of the previous skill paths must update their references.
Testing
Manual acceptance testing was performed in fresh directories with headless agent sessions:
deepseek-v4-proRepository and structural validation:
git diff --checkAutomated model grading was not run across all 81 eval prompts. Runtime language-binding test suites and builds were not run because this PR does not change Relay runtime code.
Where should the reviewer start?
Start with
skills/README.mdfor the user-facing taxonomy, then reviewskills/nemo-relay-install/SKILL.mdandskills/nemo-relay-get-started/SKILL.mdfor the primary routing and onboarding decisions. The Codex Desktop safety behavior is inskills/nemo-relay-install/assets/codex-desktop-recovery.md.Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)
Summary by CodeRabbit