Skip to content

chore(skills): improve the user skill generation flow for NVSkills#4744

Merged
miyoungc merged 15 commits into
mainfrom
skills/sync-root-nemoclaw-user-0.0.58
Jun 4, 2026
Merged

chore(skills): improve the user skill generation flow for NVSkills#4744
miyoungc merged 15 commits into
mainfrom
skills/sync-root-nemoclaw-user-0.0.58

Conversation

@miyoungc
Copy link
Copy Markdown
Collaborator

@miyoungc miyoungc commented Jun 4, 2026

Summary

Improves the NemoClaw user skill generation flow for NVSkills.
This keeps generated .agents/skills/nemoclaw-user-* skills concise, updates eval datasets to the NVSkills CI schema, and updates the docs-to-skills pipeline to skip pages that opt out of skill generation.

Changes

  • Rebalanced source docs so generated skills stay below the validation token budget:
    • Shortened docs/get-started/quickstart.mdx by moving provider-specific onboarding detail into inference docs.
    • Shortened docs/inference/use-local-inference.mdx by moving local-compatible provider, vLLM, NIM, API path, and timeout detail into docs/inference/inference-options.mdx.
    • Shortened docs/manage-sandboxes/lifecycle.mdx by moving upgrade and rebuild detail behind backup and command-reference links.
  • Updated generated .agents/skills/nemoclaw-user-* output from the revised docs.
  • Updated eval datasets to keep one eval per skill, with ground_truth plus expected_behavior as a list of strings.
  • Added exclude-from-skills-gen support to scripts/docs-to-skills.py and applied it to the generated docs/reference/commands-nemohermes.mdx output.
  • Updated docs-to-skills guidance so contributor docs do not ask contributors to regenerate user skills.
  • Removed generated SPDX comment blocks from generated user-skill markdown. This is due to NVSkills CI recognizing these lines as duplicate, which leads to CI failure.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Verification

  • npm run docs:sync-agent-variants
  • python3 scripts/docs-to-skills.py docs/ .agents/skills/ --prefix nemoclaw-user --doc-platform fern-mdx
  • npm run docs
  • bash test/e2e/e2e-cloud-experimental/check-docs.sh --only-links --local-only
  • bash test/e2e/e2e-cloud-experimental/features/skill/lib/validate_repo_skills.sh --repo .
  • npm test -- --run test/skills-frontmatter.test.ts
  • npm test -- --run test/sync-agent-variant-docs.test.ts
  • Eval schema script confirmed each eval has id, question, expected_skill, ground_truth, and expected_behavior: string[].
  • Generated skill size check confirmed all root nemoclaw-user-* SKILL.md files are under the 5000-token threshold.

Notes

Root skills/ output has been reverted from this PR so follow-up per-skill PRs can handle exported skill packages separately.

Summary by CodeRabbit

  • New Features

    • Windows preparation guide (WSL2 + bootstrap)
    • Runtime model-switching guide for inference providers
    • Messaging channels docs (Telegram, Discord, Slack, WeChat, WhatsApp)
    • Tool-calling reliability guide for local inference
    • Network policies reference and integration policy examples
  • Documentation

    • Consolidated inference provider selection table
    • Expanded inference options and setup details (vLLM, NIM, timeouts)
    • Enhanced workspace files and remote-deploy environment-variable docs
    • Streamlined sandbox upgrade/rebuild guidance

miyoungc added 3 commits June 3, 2026 18:41
Document the 0.0.58 release-facing behavior changes.
Refresh generated user skills for release prep.
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented Jun 4, 2026

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 4, 2026

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 0b2e377d-38bb-4b3e-8681-8af46805b1c6

📥 Commits

Reviewing files that changed from the base of the PR and between 0155dc5 and 8ccae06.

📒 Files selected for processing (4)
  • .agents/skills/nemoclaw-user-reference/references/commands.md
  • .agents/skills/nemoclaw-user-reference/references/troubleshooting.md
  • docs/reference/commands-nemohermes.mdx
  • docs/reference/commands.mdx

📝 Walkthrough

Walkthrough

Centralizes inference/setup docs into a reference, trims many per-skill evals to a single entry with added expected_behavior rules, removes generated SPDX headers from SKILLs/references, updates docs-to-skills to support frontmatter opt-out, and adjusts tests and link extraction to match.

Changes

Docs & Tooling Updates

Layer / File(s) Summary
docs-to-skills generator & sync
scripts/docs-to-skills.py, scripts/sync-agent-variant-docs.ts
Add _as_bool and _is_excluded_from_skills_gen, remove SPDX header generation, upsert exclude-from-skills-gen frontmatter during sync, and skip pages opted out.
Tests: link extraction and SKILL frontmatter
test/check-docs-links.test.ts, test/e2e/e2e-cloud-experimental/check-docs.sh, test/skills-frontmatter.test.ts, test/sync-agent-variant-docs.test.ts
Strip inline backtick spans during link extraction; assert generated SKILL files do not contain <!-- SPDX- comments; expect exclude-from-skills-gen: true in rendered variant frontmatter.
Inference documentation consolidation
.agents/skills/nemoclaw-user-configure-inference/*, docs/inference/inference-options.mdx, docs/get-started/quickstart.mdx, docs/inference/use-local-inference.mdx
Move detailed provider onboarding/setup to inference-options.md; condense local-inference SKILLs and quickstart to reference the central doc; add runtime model-switch and tool-calling reliability pages.
Eval fixtures pruning and expected_behavior
.agents/skills/nemoclaw-user-*/evals/evals.json
Truncate many evals.json files to the first evaluation object and add expected_behavior arrays requiring use of expected_skill and forbidding fabricated answers when the skill cannot provide them.
Remove generated SPDX headers & add references
.agents/skills/nemoclaw-user-*/SKILL.md, .agents/skills/nemoclaw-user-*/references/*, docs/reference/*
Remove SPDX comment blocks from generated SKILL and reference files; add new reference pages (network policies, messaging channels, workspace files, Windows prep, switch-inference-providers, tool-calling-reliability) and extend commands reference with OpenClaw remote-deploy env vars and channels add --force.
Sandbox lifecycle simplification
.agents/skills/nemoclaw-user-manage-sandboxes/SKILL.md, docs/manage-sandboxes/lifecycle.mdx
Condense upgrade/rebuild instructions to a core workflow; generalize rebuild preservation semantics and point to Backup/Restore reference.
Contributor guidance & CI hook
docs/CONTRIBUTING.md, .agents/skills/nemoclaw-contributor-update-docs/SKILL.md, .pre-commit-config.yaml
Instruct contributors not to regenerate generated skills in doc PRs; update release-prep example and pre-commit dry-run hook to include the skills/ output path.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

chore, documentation, area: ci

Suggested reviewers

  • cv
  • prekshivyas

"I hopped through docs and pruned the rest,
Evals slimmed down to one honest test,
SPDX gone from pages, tidy and bright,
Inference guides gathered to guide the light,
A rabbit's cheer—docs polished and blessed!" 🐇✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 53.85% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly relates to the main objective: improving the user skill generation flow for NVSkills by updating docs-to-skills tooling and generated skill output.
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 skills/sync-root-nemoclaw-user-0.0.58

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

E2E Advisor Recommendation

Required E2E: None
Optional E2E: docs-validation-e2e

Dispatch hint: docs-validation-e2e

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • None. No merge-blocking E2E is required: the PR is documentation, generated agent-skill content, docs generation tooling, and validation-test changes only. It does not modify runtime source paths that control installer/onboarding, sandbox lifecycle, credentials, network policy enforcement, inference routing, deployment, or real assistant execution.

Optional E2E

  • docs-validation-e2e (low): Optional confidence check because the PR touches command reference docs and the shared check-docs.sh validation script; this job runs CLI/docs parity and markdown link validation without exercising sandbox runtime.

New E2E recommendations

  • agent-skills-content (medium): Existing skill E2E jobs validate installing a fixture skill and agent access to that fixture, but they do not appear to validate the repository-shipped generated NemoClaw user skills or their eval metadata after docs-to-skills transformations.
    • Suggested test: Add a lightweight E2E or CI validation that loads the shipped .agents/skills/nemoclaw-user-* skills, verifies frontmatter/eval schema, checks internal reference links, and confirms at least one representative user skill can be discovered by an OpenClaw sandbox or skill loader.

Dispatch hint

  • Workflow: .github/workflows/nightly-e2e.yaml
  • jobs input: docs-validation-e2e

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

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. Changes are limited to documentation, generated/user agent skills, docs-to-skills synchronization helpers, docs/link/frontmatter tests, pre-commit config, and a legacy non-scenario E2E docs check. No files under test/e2e-scenario/, scenario workflows, scenario runtime/catalog metadata, expected states, suite definitions, or scenario suite scripts were changed.

Optional scenario E2E

  • None.

Relevant changed files

  • None.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

@miyoungc miyoungc changed the base branch from main to docs/0.0.58-release-docs June 4, 2026 01:56
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

PR Review Advisor

Findings: 0 needs attention, 2 worth checking, 0 nice ideas
Since last review: 1 prior item resolved, 0 still apply, 1 new item found

Review findings

🛠️ Needs attention

  • None.

🔎 Worth checking

  • Source-of-truth review needed: Root skills/ versus .agents/skills generation instructions: 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: Covered by the finding: .agents/skills/nemoclaw-contributor-update-docs/SKILL.md and scripts/docs-to-skills.py still include `.agents/skills/ skills/` examples, while the PR body says root skills/ output was reverted.
  • Release-prep instructions still regenerate root skills/ directly (.agents/skills/nemoclaw-contributor-update-docs/SKILL.md:226): The PR notes say the root skills/ output was reverted so follow-up per-skill PRs can handle exported packages separately, and docs/CONTRIBUTING.md describes docs-to-skills as generating user skills under .agents/skills/. However, the contributor release-prep skill still tells maintainers to run docs-to-skills with both .agents/skills/ and skills/ outputs, and scripts/docs-to-skills.py includes the same root skills/ examples. The existing root skills/ tree is an exported catalog with catalog-metadata.json and README guidance for a separate exporter, so following these instructions can mix direct docs-to-skills output into the catalog/export surface.
    • Recommendation: Align the release-prep instructions with the intended source of truth: if root skills/ is out of scope, remove skills/ from the docs-to-skills examples in the contributor skill and script docstring, and keep catalog export guidance separate. If direct multi-output generation is intended, update the root skills/ export artifacts in this PR and document how it coexists with the catalog exporter/signing flow.
    • Evidence: PR body note: “Root skills/ output has been reverted from this PR so follow-up per-skill PRs can handle exported skill packages separately.” But .agents/skills/nemoclaw-contributor-update-docs/SKILL.md step 7 says `python3 scripts/docs-to-skills.py docs/ .agents/skills/ skills/ --prefix nemoclaw-user --doc-platform fern-mdx`, while docs/CONTRIBUTING.md says docs-to-skills converts docs into user skills under `.agents/skills/`; scripts/docs-to-skills.py Usage examples also include `.agents/skills/ skills/`.

🌱 Nice ideas

  • None.
Consider writing more tests for
  • **Runtime validation** — docs-to-skills omits pages with exclude-from-skills-gen from generated skills and doc_to_skill mapping. The changed implementation is mostly docs/generation tooling with targeted tests for link parsing, generated skill frontmatter, and NemoHermes rewrite boundaries. Because the docs describe high-risk onboarding, credential, inference, and network-policy surfaces, behavioral validation of generated docs/skills is still useful, but no sandbox runtime code changed.
  • **Runtime validation** — release-prep instructions mention only .agents/skills when root skills export is out of scope. The changed implementation is mostly docs/generation tooling with targeted tests for link parsing, generated skill frontmatter, and NemoHermes rewrite boundaries. Because the docs describe high-risk onboarding, credential, inference, and network-policy surfaces, behavioral validation of generated docs/skills is still useful, but no sandbox runtime code changed.
  • **Runtime validation** — generated user eval files all contain expected_behavior:string[] and exactly one eval per generated user skill. The changed implementation is mostly docs/generation tooling with targeted tests for link parsing, generated skill frontmatter, and NemoHermes rewrite boundaries. Because the docs describe high-risk onboarding, credential, inference, and network-policy surfaces, behavioral validation of generated docs/skills is still useful, but no sandbox runtime code changed.
  • **Runtime validation** — docs-to-skills writes identical generated skill files to each requested output directory without deleting non-generated catalog metadata, if multi-output to root skills/ remains intended. The changed implementation is mostly docs/generation tooling with targeted tests for link parsing, generated skill frontmatter, and NemoHermes rewrite boundaries. Because the docs describe high-risk onboarding, credential, inference, and network-policy surfaces, behavioral validation of generated docs/skills is still useful, but no sandbox runtime code changed.
  • **Acceptance clause:** Improves the NemoClaw user skill generation flow for NVSkills. — add test evidence or identify existing coverage. scripts/docs-to-skills.py accepts multiple output directories and generated .agents/skills content is rebalanced, but the root skills/ instruction/export boundary remains inconsistent with the PR note.
  • **Acceptance clause:** updates the docs-to-skills pipeline to skip pages that opt out of skill generation. — add test evidence or identify existing coverage. scripts/docs-to-skills.py adds _is_excluded_from_skills_gen() for exclude-from-skills-gen/exclude_from_skills_gen, and docs/reference/commands-nemohermes.mdx includes exclude-from-skills-gen: true. I did not find a direct unit test that proves opted-out pages are omitted from generated skills/doc_to_skill mappings.
  • **Acceptance clause:** Updated docs-to-skills guidance so contributor docs do not ask contributors to regenerate user skills. — add test evidence or identify existing coverage. docs/CONTRIBUTING.md says most contributor doc PRs should only change docs/ and maintainers refresh generated user skills during release prep, but the contributor skill still includes a direct root skills/ generation command in its release-prep summary.
  • **Acceptance clause:** Root `skills/` output has been reverted from this PR so follow-up per-skill PRs can handle exported skill packages separately. — add test evidence or identify existing coverage. The diff does not modify root skills/, but release-prep instructions in .agents/skills/nemoclaw-contributor-update-docs/SKILL.md and scripts/docs-to-skills.py still tell maintainers to generate into skills/ directly.
Since last review details

Current findings:

  • Source-of-truth review needed: Root skills/ versus .agents/skills generation instructions: 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: Covered by the finding: .agents/skills/nemoclaw-contributor-update-docs/SKILL.md and scripts/docs-to-skills.py still include `.agents/skills/ skills/` examples, while the PR body says root skills/ output was reverted.
  • Release-prep instructions still regenerate root skills/ directly (.agents/skills/nemoclaw-contributor-update-docs/SKILL.md:226): The PR notes say the root skills/ output was reverted so follow-up per-skill PRs can handle exported packages separately, and docs/CONTRIBUTING.md describes docs-to-skills as generating user skills under .agents/skills/. However, the contributor release-prep skill still tells maintainers to run docs-to-skills with both .agents/skills/ and skills/ outputs, and scripts/docs-to-skills.py includes the same root skills/ examples. The existing root skills/ tree is an exported catalog with catalog-metadata.json and README guidance for a separate exporter, so following these instructions can mix direct docs-to-skills output into the catalog/export surface.
    • Recommendation: Align the release-prep instructions with the intended source of truth: if root skills/ is out of scope, remove skills/ from the docs-to-skills examples in the contributor skill and script docstring, and keep catalog export guidance separate. If direct multi-output generation is intended, update the root skills/ export artifacts in this PR and document how it coexists with the catalog exporter/signing flow.
    • Evidence: PR body note: “Root skills/ output has been reverted from this PR so follow-up per-skill PRs can handle exported skill packages separately.” But .agents/skills/nemoclaw-contributor-update-docs/SKILL.md step 7 says `python3 scripts/docs-to-skills.py docs/ .agents/skills/ skills/ --prefix nemoclaw-user --doc-platform fern-mdx`, while docs/CONTRIBUTING.md says docs-to-skills converts docs into user skills under `.agents/skills/`; scripts/docs-to-skills.py Usage examples also include `.agents/skills/ skills/`.

Workflow run details

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

@miyoungc
Copy link
Copy Markdown
Collaborator Author

miyoungc commented Jun 4, 2026

/nvskills-ci

@miyoungc miyoungc marked this pull request as ready for review June 4, 2026 02:03
Base automatically changed from docs/0.0.58-release-docs to main June 4, 2026 02:22
@miyoungc
Copy link
Copy Markdown
Collaborator Author

miyoungc commented Jun 4, 2026

/nvskills-ci

@miyoungc miyoungc marked this pull request as draft June 4, 2026 02:23
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: 9

🤖 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/nemoclaw-user-configure-inference/SKILL.md`:
- Around line 20-21: In the SKILL.md openclaw variant block there are two
duplicated prerequisite bullets with conflicting wording; remove the redundant
line so only one prerequisite remains and standardize the wording—keep a single
bullet like "NemoClaw installed. Refer to Quickstart with Hermes (use the
`nemoclaw-user-get-started` skill) if you have not installed yet." to replace
the two current lines in the variant="openclaw" section.
- Around line 18-25: Remove the duplicated prerequisite line under the AgentOnly
block by keeping a single "NemoClaw installed…" bullet (remove the redundant
second line that references Hermes), and ensure the remaining bullets include
the local model server / Ollama/vLLM/NIM item; optionally move the import
statement for AgentOnly so imports appear before the JSX/MDX usage for
consistency, but that reorder is not required for correctness. Reference:
AgentOnly in SKILL.md and the duplicated "NemoClaw installed" bullets.

In `@skills/nemoclaw-user-manage-sandboxes/references/runtime-controls.md`:
- Line 81: The sentence currently reads "every `nemoclaw` and `nemoclaw`
command" which duplicates the CLI name; edit the line in runtime-controls.md to
reference a single, correct CLI scope by removing the duplicate or replacing the
second backtick-delimited token with the intended CLI name (e.g., change "every
`nemoclaw` and `nemoclaw` command" to either "every `nemoclaw` command" or
"every `nemoclaw` and `OTHER_CLI` command" after confirming the intended CLI),
ensuring the bullet references the correct command name and no duplicate token
remains.

In `@skills/nemoclaw-user-manage-sandboxes/SKILL.md`:
- Line 25: The sentence in SKILL.md duplicates the CLI name "nemoclaw" — update
the Hermes variant guidance so the three CLIs read "nemoclaw, hermes, and
openshell" (replace the second duplicated "nemoclaw" with "hermes") in the CLI
Selection Guide sentence to correctly list the Hermes alias and avoid confusion.

In `@skills/nemoclaw-user-monitor-sandbox/SKILL.md`:
- Line 73: Replace the incorrect command namespace "nemoclaw sandbox exec <name>
-- ls -lh /sandbox/.openclaw/agents/main/sessions" in the SKILL.md snippet with
the consistent "openshell sandbox exec" form used across the repo; locate the
literal snippet "nemoclaw sandbox exec" in SKILL.md and update it to "openshell
sandbox exec <name> -- ls -lh /sandbox/.openclaw/agents/main/sessions" so
examples and troubleshooting remain consistent.

In `@skills/nemoclaw-user-overview/references/ecosystem-hermes.md`:
- Around line 17-19: The Mermaid architecture node labels NC, OS, and HM
currently include emoji (e.g., "🦞 NVIDIA NemoClaw", "🐚 NVIDIA
OpenShell")—remove the emoji characters from those labels so they read plain
text (e.g., "NVIDIA NemoClaw", "NVIDIA OpenShell", "Hermes") and update the NC,
OS, and HM entries accordingly to comply with the no-emoji technical prose rule.

In `@skills/nemoclaw-user-overview/references/overview.md`:
- Line 77: The Hermes-only quickstart line currently tells users to "run your
first Hermes sandbox with `nemoclaw`" which mixes CLI names; update that
sentence to use the Hermes CLI name `nemohermes` instead of `nemoclaw` so it
reads e.g. "Quickstart with Hermes (use the `nemoclaw-user-get-started` skill)
to install NemoClaw and run your first Hermes sandbox with `nemohermes`,"
leaving the skill reference (`nemoclaw-user-get-started`) unchanged.

In `@skills/nemoclaw-user-overview/SKILL.md`:
- Line 3: Update the front-matter trigger keywords in the description field so
every occurrence of the vendor token uses all-caps "NVIDIA" instead of lowercase
"nvidia" (e.g., change "nvidia openshell" and "nvidia nemotron" to "NVIDIA
openshell" and "NVIDIA nemotron"); edit the trigger keywords list in SKILL.md's
description block to replace each lowercase instance with "NVIDIA" to satisfy
the repository guideline.

In `@skills/nemoclaw-user-reference/references/architecture.md`:
- Line 94: Remove the emoji from the diagram node label: locate the SANDBOX node
declaration SANDBOX["Sandbox container 🔒<br/><small>Landlock + seccomp +
netns<br/>Compatible agent + NemoClaw integration</small>"]:::sandbox and change
the visible title to plain technical text (e.g., "Sandbox container") while
keeping the HTML line-breaks and small text unchanged; ensure no other emoji
appear in that node string.
🪄 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: CHILL

Plan: Enterprise

Run ID: 4f55cd18-6c12-4b12-9e9a-db4509021ad6

📥 Commits

Reviewing files that changed from the base of the PR and between 17734b1 and 4511902.

📒 Files selected for processing (61)
  • .agents/skills/nemoclaw-user-agent-skills/evals/evals.json
  • .agents/skills/nemoclaw-user-configure-inference/evals/evals.json
  • .agents/skills/nemoclaw-user-configure-security/evals/evals.json
  • .agents/skills/nemoclaw-user-deploy-remote/evals/evals.json
  • .agents/skills/nemoclaw-user-get-started/evals/evals.json
  • .agents/skills/nemoclaw-user-manage-policy/evals/evals.json
  • .agents/skills/nemoclaw-user-manage-sandboxes/evals/evals.json
  • .agents/skills/nemoclaw-user-monitor-sandbox/evals/evals.json
  • .agents/skills/nemoclaw-user-overview/evals/evals.json
  • .agents/skills/nemoclaw-user-reference/evals/evals.json
  • skills/nemoclaw-user-agent-skills/SKILL.md
  • skills/nemoclaw-user-agent-skills/evals/evals.json
  • skills/nemoclaw-user-configure-inference/SKILL.md
  • skills/nemoclaw-user-configure-inference/evals/evals.json
  • skills/nemoclaw-user-configure-inference/references/inference-options.md
  • skills/nemoclaw-user-configure-inference/references/set-up-sub-agent.md
  • skills/nemoclaw-user-configure-inference/references/switch-inference-providers.md
  • skills/nemoclaw-user-configure-inference/references/tool-calling-reliability.md
  • skills/nemoclaw-user-configure-security/SKILL.md
  • skills/nemoclaw-user-configure-security/evals/evals.json
  • skills/nemoclaw-user-configure-security/references/best-practices.md
  • skills/nemoclaw-user-configure-security/references/credential-storage.md
  • skills/nemoclaw-user-configure-security/references/openclaw-controls.md
  • skills/nemoclaw-user-deploy-remote/SKILL.md
  • skills/nemoclaw-user-deploy-remote/evals/evals.json
  • skills/nemoclaw-user-deploy-remote/references/brev-web-ui.md
  • skills/nemoclaw-user-deploy-remote/references/install-openclaw-plugins.md
  • skills/nemoclaw-user-deploy-remote/references/sandbox-hardening.md
  • skills/nemoclaw-user-get-started/SKILL.md
  • skills/nemoclaw-user-get-started/evals/evals.json
  • skills/nemoclaw-user-get-started/references/prerequisites.md
  • skills/nemoclaw-user-get-started/references/quickstart-hermes.md
  • skills/nemoclaw-user-get-started/references/windows-preparation.md
  • skills/nemoclaw-user-manage-policy/SKILL.md
  • skills/nemoclaw-user-manage-policy/evals/evals.json
  • skills/nemoclaw-user-manage-policy/references/approve-network-requests.md
  • skills/nemoclaw-user-manage-policy/references/integration-policy-examples.md
  • skills/nemoclaw-user-manage-sandboxes/SKILL.md
  • skills/nemoclaw-user-manage-sandboxes/evals/evals.json
  • skills/nemoclaw-user-manage-sandboxes/references/backup-restore.md
  • skills/nemoclaw-user-manage-sandboxes/references/install-plugins-hermes.md
  • skills/nemoclaw-user-manage-sandboxes/references/messaging-channels.md
  • skills/nemoclaw-user-manage-sandboxes/references/runtime-controls.md
  • skills/nemoclaw-user-manage-sandboxes/references/workspace-files.md
  • skills/nemoclaw-user-monitor-sandbox/SKILL.md
  • skills/nemoclaw-user-monitor-sandbox/evals/evals.json
  • skills/nemoclaw-user-overview/SKILL.md
  • skills/nemoclaw-user-overview/evals/evals.json
  • skills/nemoclaw-user-overview/references/ecosystem-hermes.md
  • skills/nemoclaw-user-overview/references/ecosystem.md
  • skills/nemoclaw-user-overview/references/how-it-works.md
  • skills/nemoclaw-user-overview/references/overview.md
  • skills/nemoclaw-user-overview/references/release-notes.md
  • skills/nemoclaw-user-reference/SKILL.md
  • skills/nemoclaw-user-reference/evals/evals.json
  • skills/nemoclaw-user-reference/references/architecture.md
  • skills/nemoclaw-user-reference/references/cli-selection-guide.md
  • skills/nemoclaw-user-reference/references/commands-nemohermes.md
  • skills/nemoclaw-user-reference/references/commands.md
  • skills/nemoclaw-user-reference/references/network-policies.md
  • skills/nemoclaw-user-reference/references/troubleshooting.md
💤 Files with no reviewable changes (20)
  • skills/nemoclaw-user-monitor-sandbox/evals/evals.json
  • skills/nemoclaw-user-get-started/evals/evals.json
  • .agents/skills/nemoclaw-user-monitor-sandbox/evals/evals.json
  • skills/nemoclaw-user-configure-security/evals/evals.json
  • skills/nemoclaw-user-configure-inference/evals/evals.json
  • .agents/skills/nemoclaw-user-reference/evals/evals.json
  • skills/nemoclaw-user-manage-policy/evals/evals.json
  • skills/nemoclaw-user-agent-skills/evals/evals.json
  • skills/nemoclaw-user-overview/evals/evals.json
  • .agents/skills/nemoclaw-user-get-started/evals/evals.json
  • .agents/skills/nemoclaw-user-configure-security/evals/evals.json
  • .agents/skills/nemoclaw-user-configure-inference/evals/evals.json
  • .agents/skills/nemoclaw-user-deploy-remote/evals/evals.json
  • .agents/skills/nemoclaw-user-overview/evals/evals.json
  • .agents/skills/nemoclaw-user-agent-skills/evals/evals.json
  • .agents/skills/nemoclaw-user-manage-sandboxes/evals/evals.json
  • skills/nemoclaw-user-reference/evals/evals.json
  • skills/nemoclaw-user-manage-sandboxes/evals/evals.json
  • skills/nemoclaw-user-deploy-remote/evals/evals.json
  • .agents/skills/nemoclaw-user-manage-policy/evals/evals.json

Comment thread skills/nemoclaw-user-configure-inference/SKILL.md Outdated
Comment thread skills/nemoclaw-user-configure-inference/SKILL.md Outdated
Comment thread skills/nemoclaw-user-manage-sandboxes/references/runtime-controls.md Outdated
Comment thread skills/nemoclaw-user-manage-sandboxes/SKILL.md Outdated
Comment thread skills/nemoclaw-user-monitor-sandbox/SKILL.md Outdated
Comment thread skills/nemoclaw-user-overview/references/ecosystem-hermes.md Outdated
Comment thread skills/nemoclaw-user-overview/references/overview.md Outdated
Comment thread skills/nemoclaw-user-overview/SKILL.md Outdated
Comment thread skills/nemoclaw-user-reference/references/architecture.md Outdated
Move detailed setup content into source reference pages so generated skills stay concise.
Update skill eval datasets with expected behavior metadata.
@miyoungc
Copy link
Copy Markdown
Collaborator Author

miyoungc commented Jun 4, 2026

/nvskills-ci

@miyoungc
Copy link
Copy Markdown
Collaborator Author

miyoungc commented Jun 4, 2026

/nvskills-ci

@miyoungc miyoungc changed the title chore(skills): sync root nemoclaw user 0.0.58 chore(skills): Improve the user skill generation flow for NVSkills Jun 4, 2026
@miyoungc miyoungc changed the title chore(skills): Improve the user skill generation flow for NVSkills chore(skills): mprove the user skill generation flow for NVSkills Jun 4, 2026
@miyoungc miyoungc changed the title chore(skills): mprove the user skill generation flow for NVSkills chore(skills): improve the user skill generation flow for NVSkills Jun 4, 2026
@miyoungc miyoungc marked this pull request as ready for review June 4, 2026 05:35
@miyoungc miyoungc added area: docs Documentation, examples, guides, or docs build area: skills Skills, agent behaviors, prompts, or skill packaging needs: review PR is conflict-free and awaiting maintainer review v0.0.59 Release target labels Jun 4, 2026
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: 1

Caution

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

⚠️ Outside diff range comments (1)
.agents/skills/nemoclaw-user-manage-sandboxes/SKILL.md (1)

1-6: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add the required SPDX header to this Markdown file.

This file is missing the mandatory SPDX license header for Markdown sources.

Proposed fix
 ---
 name: "nemoclaw-user-manage-sandboxes"
 description: "Explains operational tasks after the quickstart: listing sandboxes, status and health checks, logs, diagnostics, port forwards, multiple sandboxes, credential reset, rebuilds, network presets, upgrades, and uninstall. Trigger keywords - manage nemoclaw sandboxes, nemoclaw status, nemoclaw list, nemoclaw dashboard port, nemoclaw rebuild, nemoclaw upgrade sandboxes, nemoclaw uninstall, sandbox mutability, sandbox runtime configuration, sandbox rebuild, nemoclaw backup, nemoclaw restore, workspace backup, openshell sandbox download upload, nemoclaw messaging channels, nemoclaw telegram, nemoclaw discord, nemoclaw slack, nemoclaw wechat, nemoclaw whatsapp, openshell channel messaging, install hermes plugins, hermes plugins nemoclaw, nemoclaw hermes plugins, nemoclaw workspace files, soul.md, user.md, identity.md, agents.md, sandbox persistence."
 license: "Apache-2.0"
 ---
+<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
+<!-- SPDX-License-Identifier: Apache-2.0 -->

As per coding guidelines: all *.md files must include SPDX headers, using HTML comments for Markdown.

🤖 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-manage-sandboxes/SKILL.md around lines 1 - 6,
This Markdown is missing the required SPDX header—add an HTML comment SPDX
license header at the top of the file containing the license identifier (e.g.,
<!-- SPDX-License-Identifier: Apache-2.0 -->) so the file beginning with the
YAML frontmatter (the name/description/license block in SKILL.md) includes the
SPDX header immediately above it; ensure the identifier matches the existing
license field ("Apache-2.0") and use HTML comment syntax so it remains a valid
Markdown comment.
🤖 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 `@docs/inference/inference-options.mdx`:
- Around line 230-234: The docs text about endpoint probing is inconsistent with
the actual onboarding logic in src/lib/onboard/inference-selection-validation.ts
(the probe/fallback implemented around lines 149-186); update the two paragraphs
in docs/inference/inference-options.mdx (around the current spans 230-234 and
257-269) to match that code path: state that the validator probes /v1/responses
first (and selects it only if it returns the streaming events OpenClaw
requires), then falls back to /v1/chat/completions (unless
NEMOCLAW_PREFERRED_API forces a different preference), and keep the note that
route/config/auth failures fail immediately so the doc and the validation table
reflect the same probe order as implemented.

---

Outside diff comments:
In @.agents/skills/nemoclaw-user-manage-sandboxes/SKILL.md:
- Around line 1-6: This Markdown is missing the required SPDX header—add an HTML
comment SPDX license header at the top of the file containing the license
identifier (e.g., <!-- SPDX-License-Identifier: Apache-2.0 -->) so the file
beginning with the YAML frontmatter (the name/description/license block in
SKILL.md) includes the SPDX header immediately above it; ensure the identifier
matches the existing license field ("Apache-2.0") and use HTML comment syntax so
it remains a valid Markdown comment.
🪄 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: CHILL

Plan: Enterprise

Run ID: f7049d84-ea09-4401-ae72-d1222e834327

📥 Commits

Reviewing files that changed from the base of the PR and between 4511902 and 65a2433.

📒 Files selected for processing (66)
  • .agents/skills/nemoclaw-contributor-update-docs/SKILL.md
  • .agents/skills/nemoclaw-user-agent-skills/SKILL.md
  • .agents/skills/nemoclaw-user-agent-skills/evals/evals.json
  • .agents/skills/nemoclaw-user-configure-inference/SKILL.md
  • .agents/skills/nemoclaw-user-configure-inference/evals/evals.json
  • .agents/skills/nemoclaw-user-configure-inference/references/inference-options.md
  • .agents/skills/nemoclaw-user-configure-inference/references/set-up-sub-agent.md
  • .agents/skills/nemoclaw-user-configure-inference/references/switch-inference-providers.md
  • .agents/skills/nemoclaw-user-configure-inference/references/tool-calling-reliability.md
  • .agents/skills/nemoclaw-user-configure-security/SKILL.md
  • .agents/skills/nemoclaw-user-configure-security/evals/evals.json
  • .agents/skills/nemoclaw-user-configure-security/references/best-practices.md
  • .agents/skills/nemoclaw-user-configure-security/references/credential-storage.md
  • .agents/skills/nemoclaw-user-configure-security/references/openclaw-controls.md
  • .agents/skills/nemoclaw-user-deploy-remote/SKILL.md
  • .agents/skills/nemoclaw-user-deploy-remote/evals/evals.json
  • .agents/skills/nemoclaw-user-deploy-remote/references/brev-web-ui.md
  • .agents/skills/nemoclaw-user-deploy-remote/references/install-openclaw-plugins.md
  • .agents/skills/nemoclaw-user-deploy-remote/references/sandbox-hardening.md
  • .agents/skills/nemoclaw-user-get-started/SKILL.md
  • .agents/skills/nemoclaw-user-get-started/evals/evals.json
  • .agents/skills/nemoclaw-user-get-started/references/prerequisites.md
  • .agents/skills/nemoclaw-user-get-started/references/quickstart-hermes.md
  • .agents/skills/nemoclaw-user-get-started/references/windows-preparation.md
  • .agents/skills/nemoclaw-user-manage-policy/SKILL.md
  • .agents/skills/nemoclaw-user-manage-policy/evals/evals.json
  • .agents/skills/nemoclaw-user-manage-policy/references/approve-network-requests.md
  • .agents/skills/nemoclaw-user-manage-policy/references/integration-policy-examples.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/SKILL.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/evals/evals.json
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/backup-restore.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/install-plugins-hermes.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/messaging-channels.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/runtime-controls.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/workspace-files.md
  • .agents/skills/nemoclaw-user-monitor-sandbox/SKILL.md
  • .agents/skills/nemoclaw-user-monitor-sandbox/evals/evals.json
  • .agents/skills/nemoclaw-user-overview/SKILL.md
  • .agents/skills/nemoclaw-user-overview/evals/evals.json
  • .agents/skills/nemoclaw-user-overview/references/ecosystem-hermes.md
  • .agents/skills/nemoclaw-user-overview/references/ecosystem.md
  • .agents/skills/nemoclaw-user-overview/references/how-it-works.md
  • .agents/skills/nemoclaw-user-overview/references/overview.md
  • .agents/skills/nemoclaw-user-overview/references/release-notes.md
  • .agents/skills/nemoclaw-user-reference/SKILL.md
  • .agents/skills/nemoclaw-user-reference/evals/evals.json
  • .agents/skills/nemoclaw-user-reference/references/architecture.md
  • .agents/skills/nemoclaw-user-reference/references/cli-selection-guide.md
  • .agents/skills/nemoclaw-user-reference/references/commands-nemohermes.md
  • .agents/skills/nemoclaw-user-reference/references/commands.md
  • .agents/skills/nemoclaw-user-reference/references/network-policies.md
  • .agents/skills/nemoclaw-user-reference/references/troubleshooting.md
  • .pre-commit-config.yaml
  • docs/CONTRIBUTING.md
  • docs/get-started/quickstart.mdx
  • docs/inference/inference-options.mdx
  • docs/inference/use-local-inference.mdx
  • docs/manage-sandboxes/lifecycle.mdx
  • docs/reference/commands-nemohermes.mdx
  • docs/reference/commands.mdx
  • scripts/docs-to-skills.py
  • scripts/sync-agent-variant-docs.ts
  • test/check-docs-links.test.ts
  • test/e2e/e2e-cloud-experimental/check-docs.sh
  • test/skills-frontmatter.test.ts
  • test/sync-agent-variant-docs.test.ts
💤 Files with no reviewable changes (34)
  • .agents/skills/nemoclaw-user-deploy-remote/references/brev-web-ui.md
  • .agents/skills/nemoclaw-user-deploy-remote/references/install-openclaw-plugins.md
  • .agents/skills/nemoclaw-user-configure-security/references/openclaw-controls.md
  • .agents/skills/nemoclaw-user-get-started/references/quickstart-hermes.md
  • .agents/skills/nemoclaw-user-overview/references/overview.md
  • .agents/skills/nemoclaw-user-manage-policy/SKILL.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/backup-restore.md
  • .agents/skills/nemoclaw-user-reference/references/network-policies.md
  • .agents/skills/nemoclaw-user-overview/SKILL.md
  • .agents/skills/nemoclaw-user-reference/references/architecture.md
  • .agents/skills/nemoclaw-user-overview/references/ecosystem.md
  • .agents/skills/nemoclaw-user-overview/references/ecosystem-hermes.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/install-plugins-hermes.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/runtime-controls.md
  • .agents/skills/nemoclaw-user-get-started/references/prerequisites.md
  • .agents/skills/nemoclaw-user-configure-security/references/credential-storage.md
  • .agents/skills/nemoclaw-user-manage-policy/references/approve-network-requests.md
  • .agents/skills/nemoclaw-user-agent-skills/SKILL.md
  • .agents/skills/nemoclaw-user-configure-security/references/best-practices.md
  • .agents/skills/nemoclaw-user-configure-inference/references/tool-calling-reliability.md
  • .agents/skills/nemoclaw-user-reference/references/cli-selection-guide.md
  • .agents/skills/nemoclaw-user-configure-inference/references/set-up-sub-agent.md
  • .agents/skills/nemoclaw-user-manage-policy/references/integration-policy-examples.md
  • .agents/skills/nemoclaw-user-configure-security/SKILL.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/workspace-files.md
  • .agents/skills/nemoclaw-user-deploy-remote/SKILL.md
  • .agents/skills/nemoclaw-user-reference/references/troubleshooting.md
  • .agents/skills/nemoclaw-user-deploy-remote/references/sandbox-hardening.md
  • .agents/skills/nemoclaw-user-get-started/references/windows-preparation.md
  • .agents/skills/nemoclaw-user-overview/references/release-notes.md
  • .agents/skills/nemoclaw-user-overview/references/how-it-works.md
  • .agents/skills/nemoclaw-user-configure-inference/references/switch-inference-providers.md
  • .agents/skills/nemoclaw-user-monitor-sandbox/SKILL.md
  • .agents/skills/nemoclaw-user-manage-sandboxes/references/messaging-channels.md
✅ Files skipped from review due to trivial changes (5)
  • docs/reference/commands-nemohermes.mdx
  • .agents/skills/nemoclaw-contributor-update-docs/SKILL.md
  • .agents/skills/nemoclaw-user-reference/SKILL.md
  • docs/reference/commands.mdx
  • .agents/skills/nemoclaw-user-reference/references/commands.md
🚧 Files skipped from review as they are similar to previous changes (5)
  • .agents/skills/nemoclaw-user-monitor-sandbox/evals/evals.json
  • .agents/skills/nemoclaw-user-get-started/evals/evals.json
  • .agents/skills/nemoclaw-user-overview/evals/evals.json
  • .agents/skills/nemoclaw-user-manage-sandboxes/evals/evals.json
  • .agents/skills/nemoclaw-user-configure-security/evals/evals.json

Comment on lines +230 to +234
NemoClaw validates the endpoint by sending a test inference request before continuing.
The wizard probes `/v1/chat/completions` by default for the compatible-endpoint provider.
If you set `NEMOCLAW_PREFERRED_API=openai-responses`, NemoClaw probes `/v1/responses` instead and only selects it when the response includes the streaming events OpenClaw requires.
If a reasoning model returns only reasoning content before producing a final answer, NemoClaw retries the smoke request with a larger response budget.
Route, configuration, and authentication failures still fail immediately.
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.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Align the compatible-endpoint probe order with the actual onboarding behavior.

These paragraphs say NemoClaw probes /v1/chat/completions by default and only tries /v1/responses when NEMOCLAW_PREFERRED_API=openai-responses is set, but the Validation table just above still says compatible endpoints try /v1/responses first and fall back to chat completions. The supplied onboarding snippet in src/lib/onboard/inference-selection-validation.ts:149-186 also describes a probe/fallback path. Please make this section match the real probe order so users do not troubleshoot the wrong endpoint behavior.

Also applies to: 257-269

🤖 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 `@docs/inference/inference-options.mdx` around lines 230 - 234, The docs text
about endpoint probing is inconsistent with the actual onboarding logic in
src/lib/onboard/inference-selection-validation.ts (the probe/fallback
implemented around lines 149-186); update the two paragraphs in
docs/inference/inference-options.mdx (around the current spans 230-234 and
257-269) to match that code path: state that the validator probes /v1/responses
first (and selects it only if it returns the streaming events OpenClaw
requires), then falls back to /v1/chat/completions (unless
NEMOCLAW_PREFERRED_API forces a different preference), and keep the note that
route/config/auth failures fail immediately so the doc and the validation table
reflect the same probe order as implemented.

@prekshivyas prekshivyas self-assigned this Jun 4, 2026
Copy link
Copy Markdown
Contributor

@prekshivyas prekshivyas left a comment

Choose a reason for hiding this comment

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

The docs rebalancing, exclude-from-skills-gen support (_as_bool + _is_excluded_from_skills_gencontinue in scan_docs), and SPDX removal from generated artifacts all look correct. But mirror_generated_skill_outputs is a data-loss footgun that blocks merge.

Blocking — the mirror destroys NVSkills catalog artifacts. The PR makes skills/ a second output dir (canonical command in the script header, docs/CONTRIBUTING.md, and the pre-commit entry) and adds:

def mirror_generated_skill_outputs(output_dirs, skill_names):
    primary_root = output_dirs[0]          # .agents/skills/
    for skill_name in skill_names:
        ...
        if target_dir.exists():
            shutil.rmtree(target_dir)      # nukes skills/<name>/ wholesale
        shutil.copytree(source_dir, target_dir)

.agents/skills/ and skills/ are not the same shape. On this branch:

  • .agents/skills/nemoclaw-user-agent-skills/ = {SKILL.md, evals/}
  • skills/nemoclaw-user-agent-skills/ = {SKILL.md, evals/, references/, BENCHMARK.md, skill-card.md, skill.oms.sig}

docs-to-skills.py never emits BENCHMARK.md, skill-card.md, or skill.oms.sig (grep is clean), so running the now-documented python3 scripts/docs-to-skills.py docs/ .agents/skills/ skills/ ... would rmtree each skills/<name>/ and copy back only the minimal .agents version — deleting the NVSkills catalog files and the .oms.sig signature. That breaks skill signing.

Two corroborating signs this path was never exercised: the PR diff doesn't touch skills/ at all, and the verification checklist ran the old single-output command (docs/ .agents/skills/), not the new two-output one. So the mirror ships untested against the committed tree.

Recommendation: don't rmtree the target. Sync only the files docs-to-skills.py actually owns (SKILL.md, references/, and the eval dataset) into skills/<name>/, leaving catalog/signature artifacts intact — or drop skills/ as a copytree target and let the NVSkills tooling own that tree. Then regenerate with the new command and commit the resulting skills/ delta so the round-trip is verified in-PR.

Also worth folding in (CodeRabbit): two Major doc-accuracy items — skills/nemoclaw-user-monitor-sandbox/SKILL.md:73 (nemoclaw vs openshell sandbox exec) and docs/inference/inference-options.mdx:234 (compatible-endpoint probe order) — plus several Minor content nits (duplicated CLI name in Hermes guidance, emoji in diagram labels, lowercase nvidia keywords). Those originate in the source docs, so fix-at-source then regenerate.

Happy to re-review once the mirror is non-destructive and the skills/ regen is committed.

@miyoungc
Copy link
Copy Markdown
Collaborator Author

miyoungc commented Jun 4, 2026

This PR isn't supposed to push /skills yet. Its scope is to update docs-to-skills and the source skills at .agents/skills.

@miyoungc
Copy link
Copy Markdown
Collaborator Author

miyoungc commented Jun 4, 2026

BENCHMARK.md, skill-card.md, or skill.oms.sig are auto-committed by the NVSkills CI bot. We don't generate them.

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: 1

Caution

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

⚠️ Outside diff range comments (1)
scripts/docs-to-skills.py (1)

1897-1902: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Handle both exclusion aliases without short-circuit ambiguity.

If both frontmatter keys are present, the current or can ignore a truthy second key when the first key is an explicit false-ish string/boolean. Evaluate both keys independently and treat exclusion as true if either key resolves true.

Suggested fix
 def _is_excluded_from_skills_gen(page: DocPage) -> bool:
     """Return whether a parsed page opted out of skill generation."""
-    return _as_bool(
-        page.frontmatter.get("exclude-from-skills-gen")
-        or page.frontmatter.get("exclude_from_skills_gen")
-    )
+    return _as_bool(page.frontmatter.get("exclude-from-skills-gen")) or _as_bool(
+        page.frontmatter.get("exclude_from_skills_gen")
+    )
🤖 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 `@scripts/docs-to-skills.py` around lines 1897 - 1902, The current
_is_excluded_from_skills_gen uses a single _as_bool call over an 'or' expression
which short-circuits and can mis-evaluate when the first frontmatter key exists
but is a false-ish value; instead call _as_bool separately for each alias
(page.frontmatter.get("exclude-from-skills-gen") and
page.frontmatter.get("exclude_from_skills_gen")) and return the logical or of
those two boolean results so either alias evaluating true yields exclusion;
update the function _is_excluded_from_skills_gen to apply _as_bool to each key
independently.
🤖 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 @.agents/skills/nemoclaw-contributor-update-docs/SKILL.md:
- Around line 181-182: Update the "Summary of Steps" section to use the exact
same docs-to-skills command shown in this file (python3
scripts/docs-to-skills.py docs/ .agents/skills/ --prefix nemoclaw-user
--doc-platform fern-mdx) so both places reference the single output directory
".agents/skills/" instead of "skills/"; locate the inconsistent instruction in
the "Summary of Steps" text and replace the second output dir with
".agents/skills/" to keep the commands consistent.

---

Outside diff comments:
In `@scripts/docs-to-skills.py`:
- Around line 1897-1902: The current _is_excluded_from_skills_gen uses a single
_as_bool call over an 'or' expression which short-circuits and can mis-evaluate
when the first frontmatter key exists but is a false-ish value; instead call
_as_bool separately for each alias
(page.frontmatter.get("exclude-from-skills-gen") and
page.frontmatter.get("exclude_from_skills_gen")) and return the logical or of
those two boolean results so either alias evaluating true yields exclusion;
update the function _is_excluded_from_skills_gen to apply _as_bool to each key
independently.
🪄 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: CHILL

Plan: Enterprise

Run ID: b172d9ba-1bdd-4975-bb4e-cc2f18f83096

📥 Commits

Reviewing files that changed from the base of the PR and between 65a2433 and 0155dc5.

📒 Files selected for processing (2)
  • .agents/skills/nemoclaw-contributor-update-docs/SKILL.md
  • scripts/docs-to-skills.py

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.

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

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)
scripts/docs-to-skills.py (1)

1897-1902: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Handle both exclusion aliases without short-circuit ambiguity.

If both frontmatter keys are present, the current or can ignore a truthy second key when the first key is an explicit false-ish string/boolean. Evaluate both keys independently and treat exclusion as true if either key resolves true.

Suggested fix
 def _is_excluded_from_skills_gen(page: DocPage) -> bool:
     """Return whether a parsed page opted out of skill generation."""
-    return _as_bool(
-        page.frontmatter.get("exclude-from-skills-gen")
-        or page.frontmatter.get("exclude_from_skills_gen")
-    )
+    return _as_bool(page.frontmatter.get("exclude-from-skills-gen")) or _as_bool(
+        page.frontmatter.get("exclude_from_skills_gen")
+    )
🤖 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 `@scripts/docs-to-skills.py` around lines 1897 - 1902, The current
_is_excluded_from_skills_gen uses a single _as_bool call over an 'or' expression
which short-circuits and can mis-evaluate when the first frontmatter key exists
but is a false-ish value; instead call _as_bool separately for each alias
(page.frontmatter.get("exclude-from-skills-gen") and
page.frontmatter.get("exclude_from_skills_gen")) and return the logical or of
those two boolean results so either alias evaluating true yields exclusion;
update the function _is_excluded_from_skills_gen to apply _as_bool to each key
independently.
🤖 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 @.agents/skills/nemoclaw-contributor-update-docs/SKILL.md:
- Around line 181-182: Update the "Summary of Steps" section to use the exact
same docs-to-skills command shown in this file (python3
scripts/docs-to-skills.py docs/ .agents/skills/ --prefix nemoclaw-user
--doc-platform fern-mdx) so both places reference the single output directory
".agents/skills/" instead of "skills/"; locate the inconsistent instruction in
the "Summary of Steps" text and replace the second output dir with
".agents/skills/" to keep the commands consistent.

---

Outside diff comments:
In `@scripts/docs-to-skills.py`:
- Around line 1897-1902: The current _is_excluded_from_skills_gen uses a single
_as_bool call over an 'or' expression which short-circuits and can mis-evaluate
when the first frontmatter key exists but is a false-ish value; instead call
_as_bool separately for each alias
(page.frontmatter.get("exclude-from-skills-gen") and
page.frontmatter.get("exclude_from_skills_gen")) and return the logical or of
those two boolean results so either alias evaluating true yields exclusion;
update the function _is_excluded_from_skills_gen to apply _as_bool to each key
independently.
🪄 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: CHILL

Plan: Enterprise

Run ID: b172d9ba-1bdd-4975-bb4e-cc2f18f83096

📥 Commits

Reviewing files that changed from the base of the PR and between 65a2433 and 0155dc5.

📒 Files selected for processing (2)
  • .agents/skills/nemoclaw-contributor-update-docs/SKILL.md
  • scripts/docs-to-skills.py
🛑 Comments failed to post (1)
.agents/skills/nemoclaw-contributor-update-docs/SKILL.md (1)

181-182: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Keep docs-to-skills command consistent across this skill.

This step now uses a single output dir, but the “Summary of Steps” section still instructs running with skills/ as a second output dir. Please align both sections to the same command to avoid contributor confusion.

Based on learnings, maintainer/contributor skills are hand-authored source-of-truth and should be reviewed directly.

🤖 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-contributor-update-docs/SKILL.md around lines 181 -
182, Update the "Summary of Steps" section to use the exact same docs-to-skills
command shown in this file (python3 scripts/docs-to-skills.py docs/
.agents/skills/ --prefix nemoclaw-user --doc-platform fern-mdx) so both places
reference the single output directory ".agents/skills/" instead of "skills/";
locate the inconsistent instruction in the "Summary of Steps" text and replace
the second output dir with ".agents/skills/" to keep the commands consistent.

Resolve docs/inference/use-local-inference.mdx by keeping this PR's
shortened version (detail moved into inference-options), and regenerate
the two nemoclaw-user-reference references so they pick up the
channels-add --force flag now on main.

Co-authored-by: Miyoung Choi <miyoungc@nvidia.com>
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@prekshivyas prekshivyas left a comment

Choose a reason for hiding this comment

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

Approving. Thanks @miyoungc for reverting the mirror function — that fully resolves my earlier data-loss concern: generate_skill now writes in place per output dir, so skills/<name>/'s BENCHMARK.md, skill-card.md, and skill.oms.sig are preserved.

To save you a round-trip I pushed a small merge commit (b9b10950, co-authored to you) that just gets it green:

  • resolved the one conflict in docs/inference/use-local-inference.mdx by keeping your shortened version (the detail you moved into inference-options)
  • regenerated the two nemoclaw-user-reference references so they pick up the channels add --force flag that landed on main — only those two files changed; skills/ is untouched

Branch is conflict-free now. Please give it a glance to confirm the resolution matches your intent. Nice cleanup overall.

@miyoungc miyoungc enabled auto-merge (squash) June 4, 2026 20:51
@miyoungc miyoungc merged commit f18b9aa into main Jun 4, 2026
29 of 30 checks passed
@miyoungc miyoungc deleted the skills/sync-root-nemoclaw-user-0.0.58 branch June 4, 2026 20:55
cv pushed a commit that referenced this pull request Jun 5, 2026
## Summary
- Add the v0.0.59 release notes from the GitHub announcement discussion.
- Refresh local inference and credential-storage guidance for the
current release behavior.
- Regenerate the user skills from the updated Fern docs.
- Tighten release-prep and docs review guidance for generated skills, PR
labels, and shared `$$nemoclaw` command placeholders.

## Verification
- `python3 scripts/docs-to-skills.py docs/ .agents/skills/ --prefix
nemoclaw-user --doc-platform fern-mdx`
- `rg "permissive mode|shields down|shields up|shields status|config
rotate-token|rotate-token" --glob '*.{md,mdx}'`
- `git diff --check`
- `npm run docs` (rerun outside sandbox after sandbox-only `tsx` IPC
permission failure)
- `npm run typecheck:cli`
- Pre-commit hooks during commit passed, including markdownlint,
docs-to-skills verification, gitleaks, commitlint, and skills YAML
tests.

## Source Summary
- #3679, #4437, #4681, #4766, #4772, #4775, #4786 ->
`docs/about/release-notes.mdx`, `docs/reference/commands.mdx`,
`docs/reference/troubleshooting.mdx`: Summarize OpenClaw 2026.5.27
compatibility, runtime path pinning, plugin registry recovery, live
gateway reconciliation, and clearer host-alias/startup diagnostics.
- #4332, #4402, #4769, #4776, #4779 -> `docs/about/release-notes.mdx`,
`docs/inference/inference-options.mdx`,
`docs/inference/use-local-inference.mdx`,
`docs/inference/switch-inference-providers.mdx`: Document the release
inference changes covering Local NIM waits, Hermes Anthropic routing,
Nemotron 3 Ultra, the current Ollama starter fallback, and Spark
managed-vLLM context length.
- #4628, #4652, #4733, #4745 -> `docs/about/release-notes.mdx`,
`docs/security/credential-storage.mdx`,
`docs/manage-sandboxes/messaging-channels.mdx`,
`docs/reference/troubleshooting.mdx`: Capture permission healing,
gateway-stored credential reuse, cross-sandbox messaging credential
conflict checks, and CDI preflight diagnostics.
- #4728, #4737, #4743, #4744, #4782 -> `.agents/skills/nemoclaw-user-*`:
Regenerate the user skill references from the updated source docs.
- Follow-up maintenance ->
`.agents/skills/nemoclaw-contributor-update-docs/SKILL.md`,
`.coderabbit.yaml`: Add release-prep area labels for docs and skills
PRs, and teach docs review guidance that `$$nemoclaw` is the correct
shared command placeholder for examples that work across agent aliases.

Note: the `documentation` label was not present in the repository, so
this PR is labeled with `v0.0.59` only.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
  * Updated default model for local Ollama inference setup to qwen3.5:9b
  * Added Nemotron 3 Ultra 550B as an NVIDIA Endpoints model option
* Clarified credential storage and reuse behavior for post-deployment
(day-two) operations
* Added v0.0.59 release notes covering OpenClaw compatibility, inference
options, Hermes messaging sync, and troubleshooting
* Clarified CLI selection guidance and updated OpenClaw version example
in status output
* Revised release-prep instructions and docs review guidance for CLI
alias usage
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: docs Documentation, examples, guides, or docs build area: skills Skills, agent behaviors, prompts, or skill packaging needs: review PR is conflict-free and awaiting maintainer review v0.0.59 Release target

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants