Skip to content

feat(skills): add eval dataset for nemo-setup skill - #108

Open
tylersbray wants to merge 2 commits into
mainfrom
AIRCORE-692-nemo-setup-evals/tbray
Open

feat(skills): add eval dataset for nemo-setup skill#108
tylersbray wants to merge 2 commits into
mainfrom
AIRCORE-692-nemo-setup-evals/tbray

Conversation

@tylersbray

@tylersbray tylersbray commented May 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add skills/nemo-setup/evals/evals.json — the eval dataset required for NVSkills signoff
  • 15 test cases: 10 positive triggers + 5 negative (skill-should-stay-silent) cases
  • Covers: fresh setup, bootstrap, macOS gotchas, port conflicts, DB wipe, non-interactive CI, Switchyard, custom data dir, InvalidTag recovery
  • NVCARPS auto-generates BENCHMARK.md from this dataset

Context

The NVSkills publishing pipeline requires an evals/evals.json alongside each skill for the signoff process. NV-BASE uses this to evaluate trigger accuracy (discoverability), instruction-following (correctness), and effectiveness (with-skill vs without-skill).

This dataset ships alongside skills/nemo-setup/SKILL.md which is being added in #104. The two PRs are additive and merge-order independent.

Test plan

Ref: AIRCORE-692

Summary by CodeRabbit

  • Tests
    • Added a comprehensive evaluation dataset for the nemo-setup skill covering local setup scenarios, macOS gotchas, port conflicts, DB/state wiping, CI/non-interactive setup, remediation steps, deployment and middleware enabling, custom data directory usage, plus negative cases that explicitly discourage using the skill for unrelated production or hardware-specific tasks.

Review Change Stack

@tylersbray
tylersbray requested review from a team as code owners May 29, 2026 16:58
@coderabbitai

coderabbitai Bot commented May 29, 2026

Copy link
Copy Markdown
Contributor

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: 8b4bef58-ff53-4128-b604-45cf8b15323e

📥 Commits

Reviewing files that changed from the base of the PR and between 5fec179 and 282b5ed.

📒 Files selected for processing (1)
  • skills/nemo-setup/evals/evals.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • skills/nemo-setup/evals/evals.json

📝 Walkthrough

Walkthrough

Adds evaluation JSON fixture file for the nemo-setup skill with 10+ positive scenarios covering local NeMo Platform bootstrap, macOS localhost setup, port conflict handling, DB/state cleanup, CI configuration, encryption-tag remediation, agent deployment, Switchyard middleware, and custom data directory via NMP_DATA_DIR; plus 5 negative scenarios disqualifying nemo-setup for production DGX, inference APIs, fine-tuning, metric creation, and TensorRT hardware requirements.

Changes

nemo-setup Skill Evaluation Dataset

Layer / File(s) Summary
nemo-setup evaluation fixtures
skills/nemo-setup/evals/evals.json
JSON dataset with question/answer pairs covering positive local setup guidance (fresh bootstrap, macOS localhost gotchas, port conflict handling, wiping local DB/state, non-interactive CI setup, invalid encryption tag remediation, deploying built-in agent, enabling Switchyard middleware, custom data directory via NMP_DATA_DIR) and negative scenarios explicitly disqualifying nemo-setup for production DGX Cloud deployment, inference API scripting, fine-tuning/customization, evaluation metric creation, and TensorRT-LLM hardware requirements.

Suggested reviewers

  • ngoncharenko
🚥 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 directly and concisely describes the main change: adding an evaluation dataset for the nemo-setup skill, which matches the PR's primary objective.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch AIRCORE-692-nemo-setup-evals/tbray

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

@github-actions

github-actions Bot commented May 29, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 18407/24386 75.5% 61.9%
Integration Tests 11768/23163 50.8% 25.9%

@tylersbray
tylersbray requested review from gabwow and ngoncharenko May 29, 2026 17:24
Ship evals/evals.json for the NVSkills signoff process. The dataset
contains 15 test cases (10 positive triggers, 5 negative) covering:
- Fresh platform setup, bootstrap, and nemo setup flows
- macOS gotchas (IPv6, unlinked-inode)
- Port conflicts and database wipe procedures
- Non-interactive CI mode
- Switchyard middleware startup
- Custom data directory configuration
- InvalidTag encryption key desync recovery

Negative cases confirm the skill stays silent on inference, customizer,
evaluator, and other-product prompts.

NVCARPS generates BENCHMARK.md from this dataset automatically.

Ref: AIRCORE-692
Signed-off-by: Tyler Bray <tbray@nvidia.com>
@tylersbray
tylersbray force-pushed the AIRCORE-692-nemo-setup-evals/tbray branch from 5fec179 to 282b5ed Compare May 29, 2026 18:53
@gabwow

gabwow commented May 29, 2026

Copy link
Copy Markdown
Contributor

/nvskills-ci

"question": "I want to run nemo setup on my Mac. Any gotchas I should know about?",
"expected_skill": "nemo-setup",
"expected_script": null,
"ground_truth": "On macOS, use http://127.0.0.1:8080 instead of localhost due to IPv6 resolution issues. Also be aware of the unlinked-inode gotcha: running `rm -rf ~/.local/share/nemo` while a nemo services run process is still alive does not reset state because the running process keeps writing to its open inode. Always kill the platform process first, then wipe the DB.",

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.

lol gotcha, maybe unlinked-inode issue ?

"expected_script": null,
"ground_truth": "Switchyard is installed automatically by `make bootstrap-python` via the root workspace's enabled-plugins group. The library is vendored in-tree at plugins/nemo-switchyard/vendor/switchyard/. Start with debug logging: `LOG_LEVEL=DEBUG uv run nemo services run --services entities,models,inference-gateway,secrets --controllers models`. Switchyard is auto-discovered via its nemo.inference_middleware entry point.",
"expected_behavior": [
"Note that Switchyard installs automatically via make bootstrap",

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.

should commands like this have `` or '' around them in the expected behavior sections?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants