Skip to content

feat(skills): add NeMo Intake guidance - #1096

Merged
BrianNewsom merged 3 commits into
mainfrom
add-nemo-intake-skill/brnewsom
Aug 5, 2026
Merged

feat(skills): add NeMo Intake guidance#1096
BrianNewsom merged 3 commits into
mainfrom
add-nemo-intake-skill/brnewsom

Conversation

@BrianNewsom

@BrianNewsom BrianNewsom commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a focused nemo-intake skill for local or remote Intake requirements, ingest-path selection, instrumentation, and the customer-facing telemetry model
  • require OpenInference or OTel GenAI semantic conventions for OTLP, with direct chat-completions ingestion as the fallback
  • narrow nemo-experiments-upload to Experiments/Evaluations and leaderboard rollups, update routing, and refresh the vendored SDK copy

Testing

  • uvx uv@0.9.14 run --frozen pytest packages/nemo_platform_ext/tests/cli/commands/skills/test_skill_content.py -q (11 passed)
  • uvx uv@0.9.14 run --frozen pre-commit run -a (all applicable hooks passed; Studio lint-staged could not run because the host has Node 24 instead of required Node 22.23.x and the workspace lacks lint-staged)

Summary by CodeRabbit

  • New Features

    • Added support for NeMo Intake workflows, including setup, readiness checks, telemetry ingestion, verification, and evaluator-result submission.
    • Added NeMo Experiments guidance for leaderboard and evaluation-trace workflows.
    • Improved automatic routing for observability and evaluation requests with read-only platform checks.
  • Documentation

    • Expanded guidance for OTLP, chat-completions, ATIF, and evaluator-result ingestion.
    • Added clearer endpoint validation, security safeguards, troubleshooting, and platform reachability instructions.
  • Tests

    • Added coverage for Intake requests and routing, including negative cases for unrelated evaluation and health queries.

Signed-off-by: Brian Newsom <brnewsom@nvidia.com>
@BrianNewsom
BrianNewsom requested review from a team as code owners August 5, 2026 16:12
@github-actions github-actions Bot added the feat label Aug 5, 2026
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 6ee5c562-38c0-439f-9c70-438851722934

📥 Commits

Reviewing files that changed from the base of the PR and between 138a1b6 and 43d6164.

⛔ Files ignored due to path filters (3)
  • sdk/python/nemo-platform/src/nemo_platform/skills/nemo-experiments-upload/SKILL.md is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/skills/nemo-intake/SKILL.md is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/skills/nemo-skill-selection/SKILL.md is excluded by !sdk/**
📒 Files selected for processing (3)
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-experiments-upload/SKILL.md
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-intake/SKILL.md
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-skill-selection/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-intake/SKILL.md

📝 Walkthrough

Walkthrough

Changes

NeMo skill workflows

Layer / File(s) Summary
Intake telemetry workflow
packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-intake/...
Added Intake endpoint setup, ingestion-path selection, instrumentation guidance, data model details, verification steps, shared references, and routing tests.
Experiments publishing workflow
packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-experiments-upload/...
Refined Experiments publishing guidance, endpoint validation, readiness handling, shared Intake references, troubleshooting, and routing tests.
Skill selection integration
packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-skill-selection/SKILL.md, AGENTS.md
Added routing and fallback entries for both skills, permitted a redacted read-only host scan, and documented their telemetry and evaluation workflows.

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: adding NeMo Intake guidance as a new skill.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch add-nemo-intake-skill/brnewsom

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 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
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-experiments-upload/SKILL.md`:
- Around line 102-105: Correct the OTLP guidance in the ingest endpoint section
to require setting nemo.experiment.id and nemo.test_case.id as attributes on the
root span, not as resource attributes. Preserve the stated mapping of the
experiment attribute to the Evaluation name and the test-case attribute to the
task ID.

In
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-intake/SKILL.md`:
- Around line 31-33: Require HTTPS validation in both skill docs so remote
platform targets cannot use plain http:// before telemetry or evaluation
commands run. Update the guidance in
packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-intake/SKILL.md#L31-L33
and
packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-experiments-upload/SKILL.md#L30
to explicitly reject non-loopback http:// NMP_BASE_URL values, while still
allowing http://localhost and http://127.0.0.1 for local use, and note that
authentication must not be sent across an HTTP redirect.

In
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-skill-selection/SKILL.md`:
- Around line 58-59: Resolve the command-execution contradiction in the skill
instructions: update the handoff flow around the `lsof`, `curl`, `ps`, and `ls`
scan so responsibility is consistent with the skill’s no-command policy. Either
move the scan requirements to the caller and remove them from this skill, or
explicitly permit this skill to run them and remove the conflicting prohibitions
near the command rules; ensure the `nemo-intake` and `nemo-experiments-upload`
handoffs remain actionable.
🪄 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: CHILL

Plan: Enterprise

Run ID: 2e8fac5a-ddef-463c-b651-72c60fb8ea9d

📥 Commits

Reviewing files that changed from the base of the PR and between 603b97b and 862de4c.

⛔ Files ignored due to path filters (5)
  • sdk/python/nemo-platform/src/nemo_platform/skills/nemo-experiments-upload/SKILL.md is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/skills/nemo-experiments-upload/references/troubleshooting.md is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/skills/nemo-intake/SKILL.md is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/skills/nemo-intake/references/ingest-formats.md is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/skills/nemo-skill-selection/SKILL.md is excluded by !sdk/**
📒 Files selected for processing (8)
  • AGENTS.md
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-experiments-upload/SKILL.md
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-experiments-upload/references/troubleshooting.md
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-experiments-upload/tests.json
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-intake/SKILL.md
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-intake/references/ingest-formats.md
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-intake/tests.json
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-skill-selection/SKILL.md

Comment thread packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-intake/SKILL.md Outdated
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 30746/39237 78.4% 62.7%
Integration Tests 18060/37189 48.6% 21.0%

Signed-off-by: Brian Newsom <brnewsom@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 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
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-intake/SKILL.md`:
- Around line 22-25: Update the NMP_BASE_URL validation case to parse the URL
before permitting HTTP loopback access: allow HTTP only when the parsed hostname
is exactly localhost or 127.0.0.1 and no userinfo is present, while requiring
https:// for every other hostname. Apply the same validation to the related
checks near the alternate references, preserving rejection of
attacker-controlled hosts such as userinfo@hostname.

In
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-skill-selection/SKILL.md`:
- Around line 23-29: Update the process-scan and matching-inventory reporting
flow in the nemo-skill-selection skill to avoid exposing command arguments from
ps output. Report only each process PID, user, and executable name, or redact
everything after the executable before returning results; preserve the existing
selection behavior.
- Around line 25-29: Remove the unsupported allowed-tools declaration from the
skill metadata and update the surrounding skill documentation to state that Bash
access is unrestricted, including potential state-changing commands. Do not
claim read-only runtime enforcement unless an actual execution-time allowlist or
sandbox is implemented.
🪄 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: CHILL

Plan: Enterprise

Run ID: 09ce75b7-1422-49f4-9dcd-a025f0662b3f

📥 Commits

Reviewing files that changed from the base of the PR and between 862de4c and 138a1b6.

⛔ Files ignored due to path filters (3)
  • sdk/python/nemo-platform/src/nemo_platform/skills/nemo-experiments-upload/SKILL.md is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/skills/nemo-intake/SKILL.md is excluded by !sdk/**
  • sdk/python/nemo-platform/src/nemo_platform/skills/nemo-skill-selection/SKILL.md is excluded by !sdk/**
📒 Files selected for processing (3)
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-experiments-upload/SKILL.md
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-intake/SKILL.md
  • packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-skill-selection/SKILL.md

Signed-off-by: Brian Newsom <brnewsom@nvidia.com>
@BrianNewsom
BrianNewsom enabled auto-merge August 5, 2026 17:22
@BrianNewsom
BrianNewsom added this pull request to the merge queue Aug 5, 2026
Merged via the queue into main with commit 9fa8b8a Aug 5, 2026
97 of 98 checks passed
@BrianNewsom
BrianNewsom deleted the add-nemo-intake-skill/brnewsom branch August 5, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants