Skip to content

fix(skills): address NVSkills validator findings on nemoclaw-user-* skills#4456

Closed
jyaunches wants to merge 1 commit into
mainfrom
fix/4438-skill-validator-findings
Closed

fix(skills): address NVSkills validator findings on nemoclaw-user-* skills#4456
jyaunches wants to merge 1 commit into
mainfrom
fix/4438-skill-validator-findings

Conversation

@jyaunches
Copy link
Copy Markdown
Contributor

@jyaunches jyaunches commented May 28, 2026

Summary

Applies the NVSkills validator's verbatim fix recommendations from the most recent failed validation runs in the context of #4438 (GitLab pipeline 52953267, job 328478588).

This PR edits source skills only in .agents/skills/<name>/SKILL.md. A follow-up commit will mirror the changes into skills/<name>/ per the publishing flow introduced in #4448 so NVSkills CI signs the published copy.

Targeted at main (not stacked) so it can land independently of #4438.

What this addresses

The validator flagged 5 [MEDIUM] static lints and 5 HIGH agent-eval regressions across the two user skills. This PR targets the structural items the validator can verify deterministically:

Validator finding Fix in this PR
metadata.author missing (MEDIUM × both skills) Added Miyoung Choi <miyoungc@nvidia.com>
metadata.tags missing (MEDIUM × both) Added scoped tag lists
"Author not specified in metadata" (MEDIUM) Resolved by metadata.author
Missing ## Instructions (MEDIUM × both) Added with explicit step sequence
Missing ## Examples (MEDIUM × both) Added with 3–4 grounded examples
Discoverability HIGH on nemoclaw-user-agent-skills — "codex conflates with nemoclaw-skills-guide" Rewrote description: to scope to install/load and redirect discovery queries to nemoclaw-skills-guide
"Cap or sequence tool invocations so skill_efficiency stops collapsing to 0.0" Both ## Instructions sections now cap to one Read of one reference, no chaining

Out of scope (follow-up commit)

  • Mirror edits into skills/nemoclaw-user-agent-skills/SKILL.md and skills/nemoclaw-user-get-started/SKILL.md so NVSkills CI sees them when signing.
  • evals/evals.json rubric tuning.

Test plan

After mirror commit lands, comment /nvskills-ci on the relevant published-skills PR and confirm:

  1. Static QUALITY/SCHEMA findings drop from 5 → 0.
  2. Discoverability score on nemoclaw-user-agent-skills rises from 0.50 toward the 0.70 threshold.
  3. skill_efficiency no longer collapses to 0.0 on case 003 trials.

Summary by CodeRabbit

  • Documentation
    • Enhanced NemoClaw agent skills documentation with expanded descriptions and structured instruction workflows.
    • Updated getting started guide with clearer platform-specific setup steps, installation procedures, and comprehensive usage examples.
    • Improved metadata organization and refined reference documentation for better guidance and discoverability.

Review Change Stack

Apply the validator's fix recommendations from PR #4438 NVSkills CI runs
(GitLab pipeline 52953267, job 328478588). Targets the static QUALITY/SCHEMA
findings and the discoverability/efficiency dimension regressions called out
on both nemoclaw-user-agent-skills and nemoclaw-user-get-started.

Frontmatter (both skills):
- Add metadata.author and metadata.tags so SKILL_SPEC recommended fields
  are populated. Clears 3x [MEDIUM] QUALITY findings per skill.

Description (nemoclaw-user-agent-skills):
- Rewrite to disambiguate from nemoclaw-skills-guide. Validator finding #1
  on the 15:40 run identified codex conflating the two skills, dropping
  discoverability to 0.50 with skill_efficiency=0.0 on case 003. New
  description scopes this skill explicitly to install/load workflows and
  redirects discovery queries to nemoclaw-skills-guide.

SKILL.md structure (both skills):
- Add ## Instructions section. Clears [MEDIUM] SCHEMA finding 'Missing
  recommended section' and gives the LLM judge a stable anchor for
  instruction-quality scoring.
- Add ## Examples section. Clears the matching [MEDIUM] SCHEMA finding.
- Both Instructions sections explicitly cap tool invocations (one Read of
  one reference, no chaining), addressing validator fix item #4 'Cap or
  sequence tool invocations so skill_efficiency stops collapsing to 0.0
  on multiple trials.'

Out of scope for this commit:
- Mirror to skills/<name>/ for NVSkills CI signing (separate commit).
- evals.json adjustments.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 28, 2026

📝 Walkthrough

Walkthrough

Two NemoClaw agent skill prompts updated: the agent-skills skill now enforces a fixed interaction sequence with reference loading and tool budgets, while the get-started skill adds platform-aware onboarding with similar constraints and expanded metadata across both files.

Changes

NemoClaw Agent Skills Documentation

Layer / File(s) Summary
Agent skills prompt structure and workflow
.agents/skills/nemoclaw-user-agent-skills/SKILL.md
Skill description rewritten to target installation/loading scenarios; metadata added with author and tags; ## Instructions section enforces confirm intent → read reference once → provide assistant-specific steps → verify/stop sequence with per-invocation tool budget; ## Examples added for Claude Code, Cursor, and out-of-scope handoff; ## References updated to require loading references/agent-skills.md exactly once.
Get started prompt structure and onboarding flow
.agents/skills/nemoclaw-user-get-started/SKILL.md
Metadata expanded with author and tags including wsl; new ## Instructions section defines fixed onboarding sequence: identify platform, optionally load one matching reference, walk through install→onboard→first prompt, verify/stop with pointers to manage/monitor skills; ## Examples updated for macOS/Linux, Windows/WSL, Hermes-specific setup, and out-of-scope handoff, all aligned with new single-reference and tool-budget constraints.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Suggested labels

documentation

Suggested reviewers

  • miyoungc

Poem

🐰 Two skills now guide with clearer sight,
Fixed sequences and budgets tight—
Agent and quickstart walk the path,
With metadata and reference's math.
hops approvingly

🚥 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 references the main change: applying NVSkills validator recommendations to nemoclaw-user-* skills SKILL.md files, which is exactly what the changeset accomplishes.
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 fix/4438-skill-validator-findings

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

@github-actions
Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: cloud-inference-e2e
Optional E2E: skill-agent-e2e

Dispatch hint: cloud-inference-e2e

Auto-dispatched E2E: cloud-inference-e2e via nightly-e2e.yaml at 40202b4d2005ae659f7f92e4dff16fb61472731anightly run

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: medium

Required E2E

  • cloud-inference-e2e (high): This is the existing E2E path that currently validates repository .agents/skills SKILL.md frontmatter/body as part of the cloud inference run, providing the closest merge-blocking coverage for changed shipped skill files.

Optional E2E

  • skill-agent-e2e (high): Adjacent confidence check: verifies OpenClaw can consume an injected skill and an agent can use skill content. It does not directly validate these two changed repo skills, so it is useful but not merge-blocking for this PR.

New E2E recommendations

  • agent-skills-user-guidance (high): Existing E2E validates only basic SKILL.md structure and a synthetic injected skill. There is no focused E2E that loads the changed bundled skills and verifies assistant behavior such as reference selection/tool-budget compliance for quickstart and agent-skill installation flows.
    • Suggested test: Add a lightweight bundled-skills validation E2E that runs repository skill schema/link checks for .agents/skills and exercises representative prompts against nemoclaw-user-get-started and nemoclaw-user-agent-skills with deterministic assertions for chosen references and final guidance.

Dispatch hint

  • Workflow: nightly-e2e.yaml
  • jobs input: cloud-inference-e2e

@github-actions
Copy link
Copy Markdown
Contributor

E2E Scenario Advisor Recommendation

Required scenario E2E: None
Optional scenario E2E: None

Workflow run

Full scenario advisor summary

E2E Scenario Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required scenario E2E

  • None. No scenario workflow, scenario metadata, scenario runtime, or validation-suite files changed.

Optional scenario E2E

  • None.

Relevant changed files

  • None.

@github-actions
Copy link
Copy Markdown
Contributor

PR Review Advisor

Findings: 0 needs attention, 4 worth checking, 0 nice ideas
Top item: Align skill instructions with canonical docs

Review findings

🛠️ Needs attention

  • None.

🔎 Worth checking

  • Source-of-truth review needed: Generated user skill files versus canonical documentation/generator inputs: The advisor marked localized patch analysis as needs_followup.
    • Recommendation: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
    • Evidence: `docs/resources/agent-skills.mdx` says skills are generated directly from documentation; this PR changes only `.agents/skills/nemoclaw-user-agent-skills/SKILL.md` and `.agents/skills/nemoclaw-user-get-started/SKILL.md`.
  • One-reference budget conflicts with the quickstart's own prerequisite and detail guidance (.agents/skills/nemoclaw-user-get-started/SKILL.md:35): The new instruction block tells the assistant to load at most one reference and otherwise use the inline steps, but the same skill still tells users to review prerequisites before following the guide and later instructs loading quickstart-details for detailed wizard steps. The inline skill content is also behind the canonical quickstart doc for installer acceptance examples, so the new budget can steer users toward incomplete or stale install guidance.
    • Recommendation: Reconcile the new tool budget with the existing quickstart flow: either update the inline skill body so it fully covers the current installer/prerequisite guidance, or make the instruction budget explicitly allow the prerequisite/current-detail reference when that information is required.
    • Evidence: New budget at lines 35-47 says to load at most one reference and otherwise use inline steps. Existing line 26 says prerequisites must be reviewed first, and the unchanged references section around line 229 still says to load quickstart-details for detailed wizard steps. The canonical docs/get-started/quickstart.mdx includes additional installer acceptance forms such as bash -s -- --yes-i-accept-third-party-software that are absent from the touched skill body.
  • Claude Code install example widens the assistant trusted-code boundary without matching the reference (.agents/skills/nemoclaw-user-agent-skills/SKILL.md:35): The new example suggests cloning the default branch and globally symlinking the repository's .agents/skills directory into ~/.claude/skills/nemoclaw. That differs from the reference, which recommends sparse checkout plus opening the cloned NemoClaw directory and describes Claude Code using the repository's .claude/skills symlink. A global symlink to mutable default-branch assistant instructions expands the trust boundary for all Claude Code sessions and is not documented in the referenced source.
    • Recommendation: Use the same sparse-checkout/open-repo workflow as the reference, or document and verify a global-install workflow explicitly, including creation of the destination directory and preferably release/tag pinning or clear update/trust guidance.
    • Evidence: The new example at line 35 uses `git clone https://github.com/NVIDIA/NemoClaw && ln -s "$(pwd)/NemoClaw/.agents/skills" ~/.claude/skills/nemoclaw`. The referenced `.agents/skills/nemoclaw-user-agent-skills/references/agent-skills.md` uses `git clone --filter=blob:none --no-checkout`, sparse checkout, then opening the `NemoClaw` directory; it says Claude Code follows `.claude/skills/`, which points to `.agents/skills/`.
  • Validator fixes are applied only to generated skill artifacts (.agents/skills/nemoclaw-user-agent-skills/SKILL.md:3): Nearby documentation says NemoClaw skills are generated directly from docs, but this PR changes only `.agents/skills/.../SKILL.md`. The canonical docs frontmatter and content for these pages still carry the older descriptions and do not include the new metadata/instruction/example structure, so a future docs-to-skills refresh may overwrite the validator fixes or reintroduce the old routing behavior.
    • Recommendation: Update the canonical docs/generator inputs so metadata, descriptions, instructions, and examples are emitted reproducibly, or document that these `.agents/skills` files are now the canonical source for NVSkills validation and will not be regenerated from `docs/`.
    • Evidence: `docs/resources/agent-skills.mdx` still has the older `description-agent` about general AI agent support and says skills are generated directly from documentation. `docs/get-started/quickstart.mdx` remains the fuller quickstart source while this PR edits only the generated `.agents/skills` files.

🌱 Nice ideas

  • None.

Workflow run details

This is an automated advisory review. A human maintainer must make the final merge decision.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
.agents/skills/nemoclaw-user-get-started/SKILL.md (1)

1-234: ⚠️ Potential issue | 🔴 Critical | 🏗️ Heavy lift

Critical: Direct edit to autogenerated file violates established workflow.

This file matches the pattern .agents/skills/nemoclaw-user-*/*.md, which per the coding guidelines "are autogenerated and must never be edited directly." Retrieved learnings confirm these files are auto-generated from docs/ via docs-to-skills.py, and that changes should be made to the source docs/ content and then regenerated.

This PR edits the file directly without any corresponding changes to docs/ source files. When the pre-commit hook next runs scripts/docs-to-skills.py, these manual edits will be overwritten and lost.

Required fix: Move these changes to the corresponding source file under docs/ (likely a quickstart guide in docs/), then regenerate the .agents/skills/ files using the docs-to-skills.py script.

As per coding guidelines: "User skills under .agents/skills/nemoclaw-user-*/*.md are autogenerated and must never be edited directly". Based on learnings: In NVIDIA/NemoClaw, .agents/skills/nemoclaw-user-*/SKILL.md files are autogenerated outputs from the corresponding content under docs/ via docs-to-skills.py. Reviewers should not hand-edit these files; any required changes should be made in the source docs/ content and then regenerated.

🤖 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 @.agents/skills/nemoclaw-user-get-started/SKILL.md around lines 1 - 234, This
change edits an autogenerated skill file
(.agents/skills/nemoclaw-user-get-started/SKILL.md) which violates the workflow;
revert the direct edits to that SKILL.md, make the intended content changes in
the authoritative docs source under docs/ (locate the corresponding quickstart
markdown in docs/), then run the generator scripts/docs-to-skills.py to
regenerate the .agents/skills output (verify the updated SKILL.md appears), and
commit the docs/ change and the regenerated artifacts together; reference the
generator script name docs-to-skills.py and the SKILL.md pattern
.agents/skills/nemoclaw-user-* to locate affected files.
.agents/skills/nemoclaw-user-agent-skills/SKILL.md (1)

1-45: ⚠️ Potential issue | 🔴 Critical | 🏗️ Heavy lift

Critical: Direct edit to autogenerated file violates established workflow.

This file matches the pattern .agents/skills/nemoclaw-user-*/*.md, which per the coding guidelines "are autogenerated and must never be edited directly." Retrieved learnings confirm these files are auto-generated from docs/ via docs-to-skills.py, and that changes should be made to the source docs/ content and then regenerated.

This PR edits the file directly without any corresponding changes to docs/ source files. When the pre-commit hook next runs scripts/docs-to-skills.py, these manual edits will be overwritten and lost.

Required fix: Move these changes to the corresponding source file under docs/ (likely docs/resources/agent-skills.mdx or a related file), then regenerate the .agents/skills/ files using the docs-to-skills.py script.

As per coding guidelines: "User skills under .agents/skills/nemoclaw-user-*/*.md are autogenerated and must never be edited directly". Based on learnings: In NVIDIA/NemoClaw, .agents/skills/nemoclaw-user-*/SKILL.md files are autogenerated outputs from the corresponding content under docs/ via docs-to-skills.py. Reviewers should not hand-edit these files; any required changes should be made in the source docs/ content and then regenerated.

🤖 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 @.agents/skills/nemoclaw-user-agent-skills/SKILL.md around lines 1 - 45, This
SKILL.md under .agents/skills/nemoclaw-user-* was edited directly but those
files are autogenerated; revert your changes in
.agents/skills/nemoclaw-user-*/SKILL.md, make the intended edits in the
canonical docs source (e.g., docs/resources/agent-skills.mdx or the appropriate
file in docs/), then regenerate the autogenerated skill files by running
scripts/docs-to-skills.py (or the repo's docs-to-skills workflow) so the updated
content is propagated; ensure you reference the SKILL.md filename and
docs-to-skills.py when committing so CI/pre-commit won't overwrite your work.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In @.agents/skills/nemoclaw-user-agent-skills/SKILL.md:
- Around line 1-45: This SKILL.md under .agents/skills/nemoclaw-user-* was
edited directly but those files are autogenerated; revert your changes in
.agents/skills/nemoclaw-user-*/SKILL.md, make the intended edits in the
canonical docs source (e.g., docs/resources/agent-skills.mdx or the appropriate
file in docs/), then regenerate the autogenerated skill files by running
scripts/docs-to-skills.py (or the repo's docs-to-skills workflow) so the updated
content is propagated; ensure you reference the SKILL.md filename and
docs-to-skills.py when committing so CI/pre-commit won't overwrite your work.

In @.agents/skills/nemoclaw-user-get-started/SKILL.md:
- Around line 1-234: This change edits an autogenerated skill file
(.agents/skills/nemoclaw-user-get-started/SKILL.md) which violates the workflow;
revert the direct edits to that SKILL.md, make the intended content changes in
the authoritative docs source under docs/ (locate the corresponding quickstart
markdown in docs/), then run the generator scripts/docs-to-skills.py to
regenerate the .agents/skills output (verify the updated SKILL.md appears), and
commit the docs/ change and the regenerated artifacts together; reference the
generator script name docs-to-skills.py and the SKILL.md pattern
.agents/skills/nemoclaw-user-* to locate affected files.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 3bc6eeb4-7436-45aa-9094-5eb0491483d0

📥 Commits

Reviewing files that changed from the base of the PR and between 2c826d9 and 40202b4.

📒 Files selected for processing (2)
  • .agents/skills/nemoclaw-user-agent-skills/SKILL.md
  • .agents/skills/nemoclaw-user-get-started/SKILL.md

@github-actions
Copy link
Copy Markdown
Contributor

Selective E2E Results — ✅ All requested jobs passed

Run: 26595363745
Target ref: 40202b4d2005ae659f7f92e4dff16fb61472731a
Workflow ref: main
Requested jobs: cloud-inference-e2e
Summary: 1 passed, 0 failed, 0 skipped

Job Result
cloud-inference-e2e ✅ success

@wscurran wscurran added enhancement: skill Improvements to NemoCall repository hygiene or user functionality with skills. fix labels May 28, 2026
@wscurran
Copy link
Copy Markdown
Contributor

@jyaunches jyaunches closed this May 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement: skill Improvements to NemoCall repository hygiene or user functionality with skills. fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants