Skip to content

docs: expand generated agent variants#4728

Merged
miyoungc merged 6 commits into
mainfrom
docs/variants-clean-up
Jun 3, 2026
Merged

docs: expand generated agent variants#4728
miyoungc merged 6 commits into
mainfrom
docs/variants-clean-up

Conversation

@miyoungc

@miyoungc miyoungc commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

Expands the $$nemoclaw build-time placeholder across shared OpenClaw/Hermes docs and derives generated variant pages from docs/index.yml. This keeps single-variant pages as source pages while routing shared pages through hidden _build/agent-variants output for Fern rendering.

Changes

  • Collapsed alias-only OpenClaw/Hermes docs examples to shared $$nemoclaw placeholders across the user guide.
  • Updated scripts/sync-agent-variant-docs.ts to generate variants for pages shared by both guide navs and fail if placeholders appear on single-variant pages.
  • Pointed shared docs/index.yml entries at generated _build/agent-variants pages while leaving OpenClaw-only and Hermes-only pages as source paths.
  • Fixed source-relative links and added tests for placeholder/frontmatter rendering, generated import/link rewriting, and generated output behavior.

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

git commit --no-verify and git push --no-verify were used at the user's request.

  • 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
  • npm run 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)

Verified locally:

  • npm test -- test/agent-variant-docs.test.ts
  • npm run docs (passes with the existing Fern warning)
  • python3 scripts/docs-to-skills.py docs/ .agents/skills/ --prefix nemoclaw-user --doc-platform fern-mdx --dry-run
  • bash test/e2e/e2e-cloud-experimental/check-docs.sh --only-links --local-only ... on changed source pages
  • Representative generated _build page link checks
  • git diff --check

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

Summary by CodeRabbit

  • Documentation

    • Standardized CLI examples to a unified $$nemoclaw wrapper across onboarding, inference, sandbox management, networking, monitoring, and troubleshooting. Updated release notes, command references, and guidance for both variants; added route-style linking guidance for generated pages.
  • Chores

    • Improved docs build tooling and navigation to emit per-variant generated pages and correctly rewrite relative imports/links; tests and link-checking updated to recognize generated variant routes.

@miyoungc miyoungc added the area: docs Documentation, examples, guides, or docs build label Jun 3, 2026
@miyoungc miyoungc self-assigned this Jun 3, 2026
@coderabbitai

coderabbitai Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR consolidates documentation across the NemoClaw guides to use a unified $$nemoclaw CLI wrapper, refactors the agent-variant page generator to discover shared sources from navigation, updates navigation routing to generated variant pages, and adapts tests for both command-prefix styles.

Changes

Unified CLI documentation and variant generation pipeline

Layer / File(s) Summary
Pipeline documentation, generation script, and test infrastructure
docs/CONTRIBUTING.md, scripts/sync-agent-variant-docs.ts, test/agent-variant-docs.test.ts, test/e2e/e2e-cloud-experimental/check-docs.sh
Contributing guide clarifies agent-variant generation and route-style links; the sync script now parses docs/index.yml to discover shared sources, renders variant-specific frontmatter/CLI names, rewrites relative imports, and generates *.generated.mdx outputs; tests verify placeholder substitution and relative-path rewriting; e2e link-check normalizes both nemoclaw and $$nemoclaw headings and handles generated variant routes.
Navigation routing to generated pages
docs/index.yml
Navigation paths are updated across OpenClaw and Hermes sections to route shared content to generated variant pages under _build/agent-variants/ (e.g., about/, inference/, manage-sandboxes/, network-policy/, monitoring/, security/, reference/, resources/), while keeping variant-specific pages like reference/commands-nemohermes.mdx in-source.
Setup, introduction, and release documentation
docs/about/overview.mdx, docs/about/release-notes.mdx, docs/get-started/prerequisites.mdx, docs/get-started/windows-preparation.mdx, docs/deployment/deploy-to-remote-gpu.mdx
Quickstart, release notes, prerequisites, and deployment docs are updated to use $$nemoclaw command examples consistently, including new v0.0.57–v0.0.38 release-note bullets for lifecycle operations, resource profiling, tunnel management, and recovery flows.
Inference and model-selection documentation
docs/inference/inference-options.mdx, docs/inference/switch-inference-providers.mdx, docs/inference/use-local-inference.mdx
Onboarding, provider switching, and local inference guides are consolidated to use $$nemoclaw for all workflow steps: scripted setup, model tuning, vLLM/NIM configuration, endpoint selection, timeout overrides, and verification.
Sandbox lifecycle, messaging, and workspace documentation
docs/manage-sandboxes/lifecycle.mdx, docs/manage-sandboxes/backup-restore.mdx, docs/manage-sandboxes/messaging-channels.mdx, docs/manage-sandboxes/runtime-controls.mdx, docs/manage-sandboxes/workspace-files.mdx
Lifecycle management, snapshot/restore, messaging channel setup, runtime mutability tables, and workspace preservation docs standardize on $$nemoclaw host-side workflows, including recovered gateway repair, multi-sandbox port management, channel lifecycle, preset application, and data preservation semantics.
Network policy, monitoring, and security documentation
docs/network-policy/customize-network-policy.mdx, docs/network-policy/integration-policy-examples.mdx, docs/monitoring/monitor-sandbox-activity.mdx, docs/security/best-practices.mdx, docs/security/credential-storage.mdx
Policy customization, integration examples, sandbox monitoring, and security guides update command references and examples to the unified wrapper; new guidance on preset application, policy merging, status checking, credential migration, and capability-drop verification all use $$nemoclaw forms.
Command reference, architecture, and troubleshooting guides
docs/reference/commands.mdx, docs/reference/architecture.mdx, docs/reference/cli-selection-guide.mdx, docs/reference/network-policies.mdx, docs/reference/troubleshooting.mdx
The comprehensive command reference is rewritten with $$nemoclaw-prefixed headings and examples for all lifecycle commands (list, connect, recover, status, destroy, etc.), sandbox maintenance (rebuild, update, snapshot, share mount), and auxiliary services (tunnel, inference, channels); architecture diagrams and CLI-selection guidance are updated to distinguish $$nemoclaw (lifecycle) from openshell (live operations); troubleshooting guides cover installation, onboarding recovery, gateway/connect issues, token rotation, policy application, and cloud-platform-specific flows.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#4724: Changes to the agent-variant page-generation pipeline and navigation-driven discovery.
  • NVIDIA/NemoClaw#4632: Related agent-variant infrastructure and component changes.
  • NVIDIA/NemoClaw#4688: Updates to e2e docs link-check and Fern route index handling for generated variant pages.

Suggested labels

documentation

Suggested reviewers

  • cv
  • prekshivyas

🐰 "I hopped through docs both far and near,
Rewrote the commands so the CLI's clear.
Variants built from navigation's song,
Generated pages now all belong.
Cheers from a rabbit — docs ship strong!"

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 10.53% 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 'docs: expand generated agent variants' directly summarizes the main objective of the PR: expanding the use of the $$nemoclaw placeholder and generating agent variant documentation pages from shared sources.
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/variants-clean-up

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

@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor

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

Review findings

🛠️ Needs attention

  • None.

🔎 Worth checking

  • Source-of-truth review needed: ci/platform-matrix.json platform notes: 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: The matrix comment says scripts read it as the single source of truth; line 36 contains `$$nemoclaw onboard`, and `generate_platform_table()` copies `p['notes']` directly into Markdown rows.
  • Keep the CLI placeholder out of the platform matrix source of truth (ci/platform-matrix.json:36): The platform matrix is a canonical data file consumed by scripts and QA/CI, but this PR stores the render-time `$$nemoclaw` placeholder directly in the DGX Spark note. `scripts/generate-platform-docs.py` copies `p['notes']` directly into the platform table, so non-variant consumers of the JSON or generated source docs can expose the literal placeholder instead of a real command.
    • Recommendation: Keep `ci/platform-matrix.json` canonical with a literal command such as `nemoclaw onboard`, or make the table-generation path explicitly variant-aware before generated pages are rendered. Add a regression check that canonical data files do not contain `$$nemoclaw`.
    • Evidence: `ci/platform-matrix.json` line 36 contains `Use the standard installer and `$$nemoclaw onboard``. The generator builds rows with `p['notes']` directly in `scripts/generate-platform-docs.py`, while the matrix comment says it is the single source of truth and docs are derived.
  • Constrain nav-derived generated-doc paths to the docs tree (scripts/sync-agent-variant-docs.ts:199): The variant generator derives source files from `docs/index.yml` navigation paths and joins them with `docsRoot` without an explicit containment check. It also computes generated output paths from the derived source directory. Because docs generation runs in maintainer/CI workflows, malformed navigation should fail closed rather than allowing `..` segments or unexpected paths to read or write outside the intended docs and `_build/agent-variants` trees.
    • Recommendation: Resolve source and output paths and assert they stay under `docsRoot` and `generatedDocsRoot`; reject absolute paths and `..` traversal in both raw and generated navigation paths. Add negative tests for traversal in `docs/index.yml` and generated-path normalization.
    • Evidence: `findAgentVariantSourcePaths()` maps nav-derived strings with `path.join(docsRoot, sourcePath)`, and `renderGeneratedAgentVariantPages()` builds `outputPath` under `generatedDocsRoot` from `path.relative(docsRoot, path.dirname(sourceFilePath))`; no containment validation is present.

🌱 Nice ideas

  • None.
Since last review details

Current findings:

  • Source-of-truth review needed: ci/platform-matrix.json platform notes: 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: The matrix comment says scripts read it as the single source of truth; line 36 contains `$$nemoclaw onboard`, and `generate_platform_table()` copies `p['notes']` directly into Markdown rows.
  • Keep the CLI placeholder out of the platform matrix source of truth (ci/platform-matrix.json:36): The platform matrix is a canonical data file consumed by scripts and QA/CI, but this PR stores the render-time `$$nemoclaw` placeholder directly in the DGX Spark note. `scripts/generate-platform-docs.py` copies `p['notes']` directly into the platform table, so non-variant consumers of the JSON or generated source docs can expose the literal placeholder instead of a real command.
    • Recommendation: Keep `ci/platform-matrix.json` canonical with a literal command such as `nemoclaw onboard`, or make the table-generation path explicitly variant-aware before generated pages are rendered. Add a regression check that canonical data files do not contain `$$nemoclaw`.
    • Evidence: `ci/platform-matrix.json` line 36 contains `Use the standard installer and `$$nemoclaw onboard``. The generator builds rows with `p['notes']` directly in `scripts/generate-platform-docs.py`, while the matrix comment says it is the single source of truth and docs are derived.
  • Constrain nav-derived generated-doc paths to the docs tree (scripts/sync-agent-variant-docs.ts:199): The variant generator derives source files from `docs/index.yml` navigation paths and joins them with `docsRoot` without an explicit containment check. It also computes generated output paths from the derived source directory. Because docs generation runs in maintainer/CI workflows, malformed navigation should fail closed rather than allowing `..` segments or unexpected paths to read or write outside the intended docs and `_build/agent-variants` trees.
    • Recommendation: Resolve source and output paths and assert they stay under `docsRoot` and `generatedDocsRoot`; reject absolute paths and `..` traversal in both raw and generated navigation paths. Add negative tests for traversal in `docs/index.yml` and generated-path normalization.
    • Evidence: `findAgentVariantSourcePaths()` maps nav-derived strings with `path.join(docsRoot, sourcePath)`, and `renderGeneratedAgentVariantPages()` builds `outputPath` under `generatedDocsRoot` from `path.relative(docsRoot, path.dirname(sourceFilePath))`; no containment validation is present.

Workflow run details

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

@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: None
Optional E2E: docs-validation-e2e, skill-agent-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 required E2E is recommended. The changes are documentation, docs-generation tooling, docs tests, and docs-validation script updates; they do not alter installer/onboarding logic, sandbox lifecycle implementation, credential handling, security boundaries, network policy enforcement, inference routing code, deployment runtime code, or real sandbox user flows.

Optional E2E

  • docs-validation-e2e (low): Targeted validation for the changed docs checker, route-style links, docs/reference command parity, and local link validation after navigation now points at generated agent-variant pages.
  • skill-agent-e2e (medium): Optional confidence because Fern docs are the source for generated user skills and the PR changes shared OpenClaw/Hermes variant docs. Run only if maintainers want end-to-end assurance that assistant-facing skill guidance still works after the docs variant rewrite.

New E2E recommendations

  • None.

Dispatch hint

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

@github-actions

github-actions Bot commented Jun 3, 2026

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 E2E jobs are recommended because this PR only changes documentation, docs-generation support/tests, platform docs data, and a legacy non-scenario E2E doc-check script. It does not touch test/e2e-scenario runtime code, scenario metadata, expected-state contracts, suite definitions/scripts, onboarding/install helpers used by scenario E2E, or scenario workflows.

Optional scenario E2E

  • None.

Relevant changed files

  • None.

@miyoungc miyoungc marked this pull request as draft June 3, 2026 22:16
@copy-pr-bot

copy-pr-bot Bot commented Jun 3, 2026

Copy link
Copy Markdown

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

Caution

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

⚠️ Outside diff range comments (1)
docs/reference/commands.mdx (1)

80-1953: ⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

CLI parity is currently broken by the command heading format.

The docs parity job reports that phase 2 extracted 0 headings from this file while CLI help exposes 58 commands. Please restore heading text to the format the parity extractor recognizes (or update the extractor in the same PR) so command docs are discoverable again.

🤖 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/reference/commands.mdx` around lines 80 - 1953, The command headings in
the long commands.mdx block no longer match the parity extractor's expected
heading pattern (hence 0 headings found); restore each command heading to the
extractor's canonical format (for example lines like "### `$$nemoclaw help`",
"### `$$nemoclaw --version`", "### `$$nemoclaw resources`", "### `$$nemoclaw
onboard`", etc.), remove or relocate any surrounding markup that breaks heading
parsing (inline AgentOnly/Warning blocks or extra blank lines before the ###),
and ensure every public command appears as a top-level "### `$$nemoclaw <...>`"
heading so the parity job can detect the 58 commands; alternatively, if you
intentionally changed the heading syntax, update the parity extractor to accept
the new pattern and include tests for headings such as `$$nemoclaw connect`,
`$$nemoclaw list`, `$$nemoclaw inference set`, and `$$nemoclaw onboard` to
validate detection.
🧹 Nitpick comments (3)
docs/reference/commands.mdx (1)

1513-1513: ⚡ Quick win

Split Line 1513 into one sentence per source line.

This line contains multiple sentences on one line, which violates the docs source-format rule.

As per coding guidelines: “One sentence per line in source (makes diffs readable).”

🤖 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/reference/commands.mdx` at line 1513, The long documentation sentence
that begins "When `--sandbox` is supplied explicitly..." should be split so each
sentence lives on its own source line to satisfy the "one sentence per line"
rule; break the text into separate lines for (1) the behavior when --sandbox
(and the env var precedence and flag winning), (2) the requirement that the name
match a registered sandbox and appear in the live gateway if `openshell sandbox
list` succeeds, (3) the error behavior for unknown/stale names (including
reporting the source env var and exiting non-zero and not writing a tarball),
and (4) the fallback behavior for no explicit name for `$$nemoclaw debug`
(including the warning if the registry default is stale). Ensure each resulting
sentence is on its own line and preserves the original wording and referenced
symbols (`--sandbox`, `NEMOCLAW_SANDBOX_NAME`, `NEMOCLAW_SANDBOX`,
`SANDBOX_NAME`, `openshell sandbox list`, `$$nemoclaw debug`).
docs/reference/troubleshooting.mdx (2)

933-933: ⚡ Quick win

Line 933 should be split into separate sentence lines.

This line contains multiple sentences in one source line.

As per coding guidelines: “One sentence per line in source (makes diffs readable).”

🤖 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/reference/troubleshooting.mdx` at line 933, The single source line that
begins "Bot tokens for Telegram (`getUpdates`), Discord (gateway), and Slack
(Socket Mode) only allow one active consumer per token..." contains multiple
sentences and should be split so each sentence is on its own source line; edit
the paragraph (the line starting with "Bot tokens for Telegram (`getUpdates`),
Discord (gateway), and Slack (Socket Mode) ...") and break it into separate
lines such as one line for the sentence about one active consumer per token, one
line for the consequence when two sandboxes use the same token, and one line for
the note about `$$nemoclaw status` still reporting the bridge as running.

27-29: ⚡ Quick win

Use active voice in this troubleshooting instruction.

Line 28 uses passive voice (“is installed”). Rewrite this sentence in active voice.

As per coding guidelines: “Active voice required. Flag passive constructions.”

🤖 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/reference/troubleshooting.mdx` around lines 27 - 29, Update the passive
sentence about the `$$nemoclaw` binary to active voice: replace "The
`$$nemoclaw` binary is installed but the shell session does not know where to
find it." with an active construction that names the actor (installer or you)
and the action, e.g., state that the installer placed the `$$nemoclaw` binary
(or "you installed the `$$nemoclaw` binary") and that your current shell session
can't find it in PATH; modify the sentence in docs/reference/troubleshooting.mdx
where `$$nemoclaw` is mentioned accordingly.
🤖 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/about/release-notes.mdx`:
- Line 35: The release note mixes the variant placeholder and a hardcoded
command which breaks Hermes variants: replace the hardcoded "nemoclaw <name>
skill remove <skill>" string with the variant placeholder "$$nemoclaw <name>
skill remove <skill>" so it matches the other occurrences of "$$nemoclaw" in the
same bullet; search for the exact text "nemoclaw <name> skill remove <skill>"
and update it to use the "$$nemoclaw" prefix, and verify any other commands in
that line also use the "$$nemoclaw" variant placeholder consistently (e.g.,
"$$nemoclaw inference set", "$$nemoclaw <name> status --json", "$$nemoclaw debug
--sandbox").

---

Outside diff comments:
In `@docs/reference/commands.mdx`:
- Around line 80-1953: The command headings in the long commands.mdx block no
longer match the parity extractor's expected heading pattern (hence 0 headings
found); restore each command heading to the extractor's canonical format (for
example lines like "### `$$nemoclaw help`", "### `$$nemoclaw --version`", "###
`$$nemoclaw resources`", "### `$$nemoclaw onboard`", etc.), remove or relocate
any surrounding markup that breaks heading parsing (inline AgentOnly/Warning
blocks or extra blank lines before the ###), and ensure every public command
appears as a top-level "### `$$nemoclaw <...>`" heading so the parity job can
detect the 58 commands; alternatively, if you intentionally changed the heading
syntax, update the parity extractor to accept the new pattern and include tests
for headings such as `$$nemoclaw connect`, `$$nemoclaw list`, `$$nemoclaw
inference set`, and `$$nemoclaw onboard` to validate detection.

---

Nitpick comments:
In `@docs/reference/commands.mdx`:
- Line 1513: The long documentation sentence that begins "When `--sandbox` is
supplied explicitly..." should be split so each sentence lives on its own source
line to satisfy the "one sentence per line" rule; break the text into separate
lines for (1) the behavior when --sandbox (and the env var precedence and flag
winning), (2) the requirement that the name match a registered sandbox and
appear in the live gateway if `openshell sandbox list` succeeds, (3) the error
behavior for unknown/stale names (including reporting the source env var and
exiting non-zero and not writing a tarball), and (4) the fallback behavior for
no explicit name for `$$nemoclaw debug` (including the warning if the registry
default is stale). Ensure each resulting sentence is on its own line and
preserves the original wording and referenced symbols (`--sandbox`,
`NEMOCLAW_SANDBOX_NAME`, `NEMOCLAW_SANDBOX`, `SANDBOX_NAME`, `openshell sandbox
list`, `$$nemoclaw debug`).

In `@docs/reference/troubleshooting.mdx`:
- Line 933: The single source line that begins "Bot tokens for Telegram
(`getUpdates`), Discord (gateway), and Slack (Socket Mode) only allow one active
consumer per token..." contains multiple sentences and should be split so each
sentence is on its own source line; edit the paragraph (the line starting with
"Bot tokens for Telegram (`getUpdates`), Discord (gateway), and Slack (Socket
Mode) ...") and break it into separate lines such as one line for the sentence
about one active consumer per token, one line for the consequence when two
sandboxes use the same token, and one line for the note about `$$nemoclaw
status` still reporting the bridge as running.
- Around line 27-29: Update the passive sentence about the `$$nemoclaw` binary
to active voice: replace "The `$$nemoclaw` binary is installed but the shell
session does not know where to find it." with an active construction that names
the actor (installer or you) and the action, e.g., state that the installer
placed the `$$nemoclaw` binary (or "you installed the `$$nemoclaw` binary") and
that your current shell session can't find it in PATH; modify the sentence in
docs/reference/troubleshooting.mdx where `$$nemoclaw` is mentioned accordingly.
🪄 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: 2984586e-3a57-4131-b7f7-caa2b20e2f64

📥 Commits

Reviewing files that changed from the base of the PR and between 19a17ea and 7e4e6b5.

📒 Files selected for processing (28)
  • docs/CONTRIBUTING.md
  • docs/about/overview.mdx
  • docs/about/release-notes.mdx
  • docs/deployment/deploy-to-remote-gpu.mdx
  • docs/get-started/prerequisites.mdx
  • docs/get-started/windows-preparation.mdx
  • docs/index.yml
  • docs/inference/inference-options.mdx
  • docs/inference/switch-inference-providers.mdx
  • docs/inference/use-local-inference.mdx
  • docs/manage-sandboxes/backup-restore.mdx
  • docs/manage-sandboxes/lifecycle.mdx
  • docs/manage-sandboxes/messaging-channels.mdx
  • docs/manage-sandboxes/runtime-controls.mdx
  • docs/manage-sandboxes/workspace-files.mdx
  • docs/monitoring/monitor-sandbox-activity.mdx
  • docs/network-policy/customize-network-policy.mdx
  • docs/network-policy/integration-policy-examples.mdx
  • docs/reference/architecture.mdx
  • docs/reference/cli-selection-guide.mdx
  • docs/reference/commands-nemohermes.mdx
  • docs/reference/commands.mdx
  • docs/reference/network-policies.mdx
  • docs/reference/troubleshooting.mdx
  • docs/security/best-practices.mdx
  • docs/security/credential-storage.mdx
  • scripts/sync-agent-variant-docs.ts
  • test/agent-variant-docs.test.ts

Comment thread docs/about/release-notes.mdx Outdated
@miyoungc miyoungc marked this pull request as ready for review June 3, 2026 22:51
@miyoungc miyoungc added the v0.0.58 Release target label Jun 3, 2026

@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.

Caution

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

⚠️ Outside diff range comments (1)
scripts/sync-agent-variant-docs.ts (1)

286-304: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Keep rewriting non-route markdown file links.

This change preserves route-style doc links, but it also stops rebasing ordinary markdown links entirely. Shared pages that link to local assets or explicit sibling files with [text](./file.ext) will now keep the source-relative target after generation, so those links break from docs/_build/agent-variants/....

Preserve route-style links, but continue rewriting filesystem-backed markdown links alongside images and imports.

🤖 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/sync-agent-variant-docs.ts` around lines 286 - 304, The current
rewrite only rebases image links (rewriteRelativeImageLinks) but leaves ordinary
markdown links untouched, causing filesystem-backed links like [text](./file.md)
to remain source-relative; update the logic so filesystem-backed markdown links
are rewritten too while still preserving route-style links detected by
shouldKeepLinkTarget. Concretely, either expand rewriteRelativeImageLinks to
also match non-image link patterns (change the regex and keep the same
shouldKeepLinkTarget check and rewriteRelativeLinkTarget call) or add a new
rewriteRelativeMarkdownLinks(body, sourceDirectory, outputDirectory) invoked
alongside rewriteRelativeImageLinks and rewriteRelativeImports in
rewriteRelativePaths; in both cases ensure you reference and reuse
shouldKeepLinkTarget and rewriteRelativeLinkTarget so route-style links stay
unchanged and local ./ or sibling markdown/file links are rebased to
outputDirectory.
🤖 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 `@scripts/sync-agent-variant-docs.ts`:
- Around line 286-304: The current rewrite only rebases image links
(rewriteRelativeImageLinks) but leaves ordinary markdown links untouched,
causing filesystem-backed links like [text](./file.md) to remain
source-relative; update the logic so filesystem-backed markdown links are
rewritten too while still preserving route-style links detected by
shouldKeepLinkTarget. Concretely, either expand rewriteRelativeImageLinks to
also match non-image link patterns (change the regex and keep the same
shouldKeepLinkTarget check and rewriteRelativeLinkTarget call) or add a new
rewriteRelativeMarkdownLinks(body, sourceDirectory, outputDirectory) invoked
alongside rewriteRelativeImageLinks and rewriteRelativeImports in
rewriteRelativePaths; in both cases ensure you reference and reuse
shouldKeepLinkTarget and rewriteRelativeLinkTarget so route-style links stay
unchanged and local ./ or sibling markdown/file links are rebased to
outputDirectory.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 99a37981-a57a-4e7d-8944-9692605813a1

📥 Commits

Reviewing files that changed from the base of the PR and between 7e4e6b5 and d18f824.

📒 Files selected for processing (10)
  • docs/CONTRIBUTING.md
  • docs/about/release-notes.mdx
  • docs/get-started/prerequisites.mdx
  • docs/get-started/windows-preparation.mdx
  • docs/reference/commands.mdx
  • docs/reference/troubleshooting.mdx
  • docs/security/best-practices.mdx
  • scripts/sync-agent-variant-docs.ts
  • test/agent-variant-docs.test.ts
  • test/e2e/e2e-cloud-experimental/check-docs.sh
✅ Files skipped from review due to trivial changes (4)
  • docs/get-started/windows-preparation.mdx
  • docs/get-started/prerequisites.mdx
  • docs/about/release-notes.mdx
  • docs/reference/troubleshooting.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/reference/commands.mdx

@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.

Caution

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

⚠️ Outside diff range comments (1)
ci/platform-matrix.json (1)

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

Enforce SPDX header for ci/platform-matrix.json without breaking strict JSON parsing

  • ci/platform-matrix.json has no // SPDX-FileCopyrightText: ... / // SPDX-License-Identifier: Apache-2.0 header at the start of the file (lines 1-4 currently begin with {).
  • The docs generator loads this file as strict JSON: scripts/generate-platform-docs.pyload_matrix() uses json.load(f). Adding literal // ... comment header lines would make the file invalid JSON unless the loader is updated (e.g., strip leading comment lines or use a JSONC/comment-capable parser).
🤖 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 `@ci/platform-matrix.json` around lines 1 - 4, ci/platform-matrix.json must
remain valid JSON, so do not add // SPDX comment lines; instead add SPDX
metadata as JSON fields (e.g., a top-level "spdx": { "fileCopyrightText": "...",
"license": "Apache-2.0" }) to the existing object so json.load(f) still
succeeds. Update the docs loader reference in scripts/generate-platform-docs.py
→ load_matrix() only if you later decide to accept comment headers; for now
modify ci/platform-matrix.json to include the SPDX info as JSON properties and
ensure any code that reads matrix keys (in generate-platform-docs.py) uses the
new "spdx" object if present.
🤖 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 `@ci/platform-matrix.json`:
- Around line 1-4: ci/platform-matrix.json must remain valid JSON, so do not add
// SPDX comment lines; instead add SPDX metadata as JSON fields (e.g., a
top-level "spdx": { "fileCopyrightText": "...", "license": "Apache-2.0" }) to
the existing object so json.load(f) still succeeds. Update the docs loader
reference in scripts/generate-platform-docs.py → load_matrix() only if you later
decide to accept comment headers; for now modify ci/platform-matrix.json to
include the SPDX info as JSON properties and ensure any code that reads matrix
keys (in generate-platform-docs.py) uses the new "spdx" object if present.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 7fe3fe22-e67a-4770-8756-8870d7cf2627

📥 Commits

Reviewing files that changed from the base of the PR and between d18f824 and 39f7ea2.

📒 Files selected for processing (2)
  • ci/platform-matrix.json
  • scripts/sync-agent-variant-docs.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • scripts/sync-agent-variant-docs.ts

@miyoungc miyoungc merged commit 2bb11ac into main Jun 3, 2026
33 checks passed
@miyoungc miyoungc deleted the docs/variants-clean-up branch June 3, 2026 23:32
@coderabbitai coderabbitai Bot mentioned this pull request Jun 4, 2026
12 tasks
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 -->
@wscurran wscurran added the chore Build, CI, dependency, or tooling maintenance label Jun 8, 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 chore Build, CI, dependency, or tooling maintenance v0.0.58 Release target

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants