Skip to content

docs(skills): improve docs to skills conversion to take in priority, and refresh skills#2793

Merged
cv merged 3 commits into
mainfrom
docs/improve-docs-to-skills
May 1, 2026
Merged

docs(skills): improve docs to skills conversion to take in priority, and refresh skills#2793
cv merged 3 commits into
mainfrom
docs/improve-docs-to-skills

Conversation

@miyoungc

@miyoungc miyoungc commented May 1, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds skill.priority to docs frontmatter so the docs-to-skills converter can choose the intended lead procedure page for each generated skill. Refreshes the generated user skills so primary how-to pages stay in SKILL.md and secondary how-to pages move into references/.

Related Issue

None.

Changes

  • Updated scripts/docs-to-skills.py to parse skill.priority, default missing values to 100, and select the lowest-priority procedure page as the generated SKILL.md lead.
  • Documented skill.priority in docs/CONTRIBUTING.md and explained that smaller numbers have higher priority.
  • Set the OpenClaw quickstart ahead of the Hermes quickstart so nemoclaw-user-get-started/SKILL.md leads with OpenClaw and folds Hermes into references/quickstart-hermes.md.
  • Regenerated affected nemoclaw-user-* skills and references from the updated docs.

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

  • npx prek run --all-files passes
  • npm test passes
  • Tests added or updated for new or changed behavior
  • No secrets, API keys, or credentials committed
  • Docs updated for user-facing behavior changes
  • make docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Additional checks run:

  • python3 -m py_compile scripts/docs-to-skills.py
  • python3 scripts/docs-to-skills.py docs/ .agents/skills/ --prefix nemoclaw-user --dry-run

AI Disclosure

  • AI-assisted — tool: Cursor

Signed-off-by: Miyoung Choi miyoungc@nvidia.com

Summary by CodeRabbit

  • Documentation
    • Added new guides for runtime inference provider switching, local inference configuration (Ollama, vLLM, NVIDIA NIM), and OpenClaw plugin installation.
    • Added Telegram bridge setup and Hermes quickstart documentation.
    • New network policy customization guide with preset and custom policy configuration.
    • Enhanced Windows Ollama support and improved troubleshooting guidance with automatic dashboard port selection.
    • Updated credential handling documentation for remote deployments with Hugging Face model support.

@coderabbitai

coderabbitai Bot commented May 1, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

This pull request reorganizes NemoClaw skill documentation by breaking large guides into focused reference documents, introduces a skill prioritization system for determining primary guides, and updates multiple skill sections to reflect new onboarding behaviors, security practices, and deployment workflows.

Changes

Cohort / File(s) Summary
Inference Configuration
.agents/skills/nemoclaw-user-configure-inference/SKILL.md, references/inference-options.md, references/switch-inference-providers.md, references/use-local-inference.md
Restructures inference setup documentation: main SKILL.md now focuses on NemoClaw sub-agent configuration; new references document runtime model switching, local server setup (Ollama, vLLM, NIM), and endpoint validation behavior including streaming-events fallback for OpenAI-compatible endpoints.
Security Documentation
.agents/skills/nemoclaw-user-configure-security/references/best-practices.md, references/credential-storage.md
Updates gateway token handling from startup-generated files to entrypoint-driven persistence, revises /sandbox/.openclaw permissions documentation (mode 700), expands memory secret scanner coverage, and documents HF_TOKEN forwarding in remote deployments.
Remote Deployment
.agents/skills/nemoclaw-user-deploy-remote/SKILL.md, references/install-openclaw-plugins.md, references/set-up-telegram-bridge.md
Consolidates detailed deployment workflows into main skill and dedicated references: extracts OpenClaw plugin installation (Dockerfile-based) and Telegram bridge setup into separate guides, adds HF_TOKEN/HUGGING_FACE_HUB_TOKEN documentation for gated model workflows.
Getting Started
.agents/skills/nemoclaw-user-get-started/SKILL.md, references/quickstart-hermes.md, references/windows-preparation.md
Transforms skill from prerequisite verification to full quickstart guide; adds Hermes-specific quickstart with nemohermes alias and OpenAI-compatible API on port 8642; updates Ollama setup to support single instance across Windows/WSL, dynamic dashboard port selection (18789–18799 range), and expanded onboarding prompts.
Policy Management
.agents/skills/nemoclaw-user-manage-policy/SKILL.md, references/customize-network-policy.md
Significantly condenses main skill documentation and extracts full workflow details into dedicated reference: documents static policy edits via nemoclaw-blueprint/policies/openclaw-sandbox.yaml, dynamic updates with policy-add merging and openshell policy set, custom preset YAML structure, and non-interactive operation.
Reference Documentation
.agents/skills/nemoclaw-user-reference/references/architecture.md, references/commands.md, references/troubleshooting.md
Updates architecture to document TypeScript plugin context injection (sandbox name, phase, policy summaries at agent turn start); expands CLI reference with new SSHFS filesystem sharing commands (`share mount
Workspace Management
.agents/skills/nemoclaw-user-workspace/SKILL.md, references/workspace-files.md
Clarifies snapshot/restore behavior for legacy symlinks and adds safety rejection of unsafe symlinks/hard links; updates next-steps to reference sub-agent configuration skill.
Build System & Documentation Config
docs/CONTRIBUTING.md, docs/get-started/quickstart.md, docs/get-started/quickstart-hermes.md, scripts/docs-to-skills.py
Implements skill prioritization system: adds skill.priority frontmatter field (lower values win), updates docs build script to select primary procedure by lowest priority rather than document order, enabling conditional selection of OpenClaw vs. Hermes quickstart as lead guide.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 With prioritized prose and references neat,
Sub-agents dance where guides once stood complete,
From Ollama to NIM, we've reorganized the way,
Skills now bloom in order, faster every day!

🚥 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 PR title accurately describes the main changes: improving the docs-to-skills conversion system to support priority-based lead procedure selection and refreshing skills documentation accordingly.
Docstring Coverage ✅ Passed Docstring coverage is 80.00% which is sufficient. The required threshold is 80.00%.
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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/improve-docs-to-skills

Review rate limit: 9/10 reviews remaining, refill in 6 minutes.

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

@cv cv enabled auto-merge (squash) May 1, 2026 00:43

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@scripts/docs-to-skills.py`:
- Around line 289-294: When fm.get("skill") yields a dict but that dict lacks a
"priority", the current branch passes only skill.get("priority") into
_parse_skill_priority which yields the default 100 and loses any legacy
fm["skill_priority"]; update the logic around skill (the variables skill and
page.skill_priority and the call to _parse_skill_priority) so that when skill is
a dict you pass skill.get("priority") if present, otherwise fall back to
fm.get("skill_priority") (e.g., compute priority_value = skill.get("priority")
if skill.get("priority") is not None else fm.get("skill_priority") and call
_parse_skill_priority(priority_value, path)).
🪄 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: 069208e8-96ce-452d-9fdf-06cba7b42114

📥 Commits

Reviewing files that changed from the base of the PR and between fdc405b and 7617057.

📒 Files selected for processing (23)
  • .agents/skills/nemoclaw-user-configure-inference/SKILL.md
  • .agents/skills/nemoclaw-user-configure-inference/references/inference-options.md
  • .agents/skills/nemoclaw-user-configure-inference/references/switch-inference-providers.md
  • .agents/skills/nemoclaw-user-configure-inference/references/use-local-inference.md
  • .agents/skills/nemoclaw-user-configure-security/references/best-practices.md
  • .agents/skills/nemoclaw-user-configure-security/references/credential-storage.md
  • .agents/skills/nemoclaw-user-deploy-remote/SKILL.md
  • .agents/skills/nemoclaw-user-deploy-remote/references/install-openclaw-plugins.md
  • .agents/skills/nemoclaw-user-deploy-remote/references/set-up-telegram-bridge.md
  • .agents/skills/nemoclaw-user-get-started/SKILL.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/references/customize-network-policy.md
  • .agents/skills/nemoclaw-user-reference/references/architecture.md
  • .agents/skills/nemoclaw-user-reference/references/commands.md
  • .agents/skills/nemoclaw-user-reference/references/troubleshooting.md
  • .agents/skills/nemoclaw-user-workspace/SKILL.md
  • .agents/skills/nemoclaw-user-workspace/references/workspace-files.md
  • docs/CONTRIBUTING.md
  • docs/get-started/quickstart-hermes.md
  • docs/get-started/quickstart.md
  • scripts/docs-to-skills.py

Comment thread scripts/docs-to-skills.py
Comment on lines +289 to +294
skill = fm.get("skill", {})
if isinstance(skill, dict):
page.skill_priority = _parse_skill_priority(skill.get("priority"), path)
else:
page.skill_priority = _parse_skill_priority(fm.get("skill_priority"), path)

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 | 🟡 Minor | ⚡ Quick win

Preserve legacy skill_priority when skill.priority is absent.

Line 290–Line 293 currently default to 100 whenever skill is a dict without priority, which drops a valid legacy skill_priority and can pick the wrong lead procedure.

Suggested fix
-    skill = fm.get("skill", {})
-    if isinstance(skill, dict):
-        page.skill_priority = _parse_skill_priority(skill.get("priority"), path)
-    else:
-        page.skill_priority = _parse_skill_priority(fm.get("skill_priority"), path)
+    skill = fm.get("skill")
+    if isinstance(skill, dict) and "priority" in skill:
+        raw_priority = skill.get("priority")
+    else:
+        raw_priority = fm.get("skill_priority")
+    page.skill_priority = _parse_skill_priority(raw_priority, path)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@scripts/docs-to-skills.py` around lines 289 - 294, When fm.get("skill")
yields a dict but that dict lacks a "priority", the current branch passes only
skill.get("priority") into _parse_skill_priority which yields the default 100
and loses any legacy fm["skill_priority"]; update the logic around skill (the
variables skill and page.skill_priority and the call to _parse_skill_priority)
so that when skill is a dict you pass skill.get("priority") if present,
otherwise fall back to fm.get("skill_priority") (e.g., compute priority_value =
skill.get("priority") if skill.get("priority") is not None else
fm.get("skill_priority") and call _parse_skill_priority(priority_value, path)).

@cv cv merged commit 8cd670e into main May 1, 2026
17 of 18 checks passed
@miyoungc miyoungc deleted the docs/improve-docs-to-skills branch May 27, 2026 20:51
@wscurran wscurran added feature PR adds or expands user-visible functionality area: skills Skills, agent behaviors, prompts, or skill packaging area: docs Documentation, examples, guides, or docs build and removed enhancement: skill labels Jun 3, 2026
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 feature PR adds or expands user-visible functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants