docs(commands): document nemoclaw internal:* command family#3968
docs(commands): document nemoclaw internal:* command family#3968laitingsheng wants to merge 2 commits into
Conversation
Add an Internal Commands section to docs/reference/commands.mdx listing the nine `nemoclaw internal <topic> <action>` commands. The commands are already registered as hidden in oclif (static hidden = true), so they do not appear in `nemoclaw --help`, but they were not documented anywhere — including the CLI Reference — so operators who became aware of them had no canonical description of what they do or who calls them. The new section maps each command to its calling wrapper (uninstall.sh, fix-coredns.sh, setup-dns-proxy.sh, npm-link-or-shim.sh, or install.sh planning steps) and a one-line purpose, and states up front that the internal family is not part of the supported public CLI surface and that flags/output/exit codes may change without notice. Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
📝 WalkthroughWalkthroughAdds a new "Internal Commands" section to ChangesInternal Commands Documentation
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint skipped: no ESLint configuration detected in root package.json. To enable, add Comment |
|
🌿 Preview your docs: https://nvidia-preview-pr-3968.docs.buildwithfern.com/nemoclaw |
E2E Advisor RecommendationRequired E2E: None Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
docs/reference/commands.mdx (1)
1131-1131: ⚡ Quick winUse second person for reader guidance.
Line 1131 addresses the reader as “Operators”; prefer direct second person (“you”) to match docs voice consistency.
As per coding guidelines, "Second person ("you") when addressing the reader."
🤖 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 1131, Replace the impersonal phrasing "Operators should not invoke them directly; use the user-facing commands or wrapper scripts above instead." with a second-person version addressing the reader—e.g., "You should not invoke these directly; use the user-facing commands or wrapper scripts above instead."—so update that sentence in docs/reference/commands.mdx to use "you" and adjust "them" to "these" for clarity and voice consistency.
🤖 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.
Nitpick comments:
In `@docs/reference/commands.mdx`:
- Line 1131: Replace the impersonal phrasing "Operators should not invoke them
directly; use the user-facing commands or wrapper scripts above instead." with a
second-person version addressing the reader—e.g., "You should not invoke these
directly; use the user-facing commands or wrapper scripts above instead."—so
update that sentence in docs/reference/commands.mdx to use "you" and adjust
"them" to "these" for clarity and voice consistency.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 95715cd1-088f-41e6-a805-5c6fd2392e13
📒 Files selected for processing (1)
docs/reference/commands.mdx
PR Review AdvisorRecommendation: blocked This is an automated advisory review. A human maintainer must make the final merge decision. Limitations: Review is based on trusted metadata and the provided diff; no commands, scripts, tests, package-manager operations, or docs builds were executed.; CI was still pending for the exact head SHA at review time, so final pass/fail status could not be verified.; Review thread state was not fully available; CodeRabbit remained pending in the status rollup.; An E2E Advisor comment was found recommending no E2E, but the current head SHA also shows an E2E recommendation check still in progress, so the E2E advisor status is treated as ambiguous.; Linked issue acceptance was mapped from the provided issue bodies and comments; no additional issue timeline events were fetched. Full advisor summaryPR Review AdvisorBase: Docs-only change appears low risk and aligned with the linked issues, but merge is blocked by pending CI and GitHub BLOCKED merge state for the current head SHA. Gate status
🔴 Blockers
🟡 Warnings
🔵 Suggestions
Acceptance coverage
Security review
Test / E2E status
✅ What looks good
Review completeness
|
The previous version of the Internal Commands section attributed three
`nemoclaw internal installer ...` commands to `install.sh` planning
steps, but install.sh and scripts/install.sh keep their own Bash
implementations (resolve_release_tag, resolve_installer_version) and
do not invoke the TS planning commands. Similarly, `internal uninstall
plan` and `internal uninstall classify-shim` are not invoked by any
shell script — the runtime path calls the underlying lib functions
directly via run-plan.
Rewrite each of those rows as an internal planning/inspection helper
with a brief note that they expose the logic for external tooling and
inspection but are not part of the active runtime flow. Also switch
the imperative voice ("Operators should not invoke them directly") to
the second-person form ("You should not invoke these directly") per
docs style.
Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
There was a problem hiding this comment.
🧹 Nitpick comments (2)
docs/reference/commands.mdx (2)
1142-1142: ⚡ Quick winUse active voice in the purpose description.
The second sentence uses passive voice ("Called as a library function by"). Active voice is required per the style guide.
Suggested rewording
-| `nemoclaw internal uninstall classify-shim` | Internal inspection helper | Classify whether a NemoClaw shim path is safe to remove. Called as a library function by `internal uninstall run-plan`, not via this command. | +| `nemoclaw internal uninstall classify-shim` | Internal inspection helper | Classify whether a NemoClaw shim path is safe to remove. `internal uninstall run-plan` calls this as a library function, not via this command. |As per coding guidelines, active voice is required; the example shows "The CLI creates a gateway" instead of "A gateway is created by the CLI."
🤖 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 1142, The purpose sentence for the `nemoclaw internal uninstall classify-shim` command currently uses passive voice; change the second sentence to active voice by stating who calls it. Update the description for `nemoclaw internal uninstall classify-shim` to something like "Classify whether a NemoClaw shim path is safe to remove. The `internal uninstall run-plan` command calls this as a library function," ensuring the command names `nemoclaw internal uninstall classify-shim` and `internal uninstall run-plan` are referenced exactly as in the diff.
1138-1140: ⚡ Quick winUse active voice for these descriptions.
The purpose descriptions for these three internal planning helpers use passive voice ("exposed for external tooling and inspection"). Active voice is required per the style guide.
Suggested rewording
For each of these three rows, replace "exposed for external tooling and inspection" with "This command exposes the logic for external tooling and inspection."
For example, line 1138:
-| `nemoclaw internal installer plan` | Internal planning helper | Build a deterministic installer plan from environment and probe inputs without applying it. Not currently invoked by `install.sh` (which has its own Bash equivalents); exposed for external tooling and inspection. | +| `nemoclaw internal installer plan` | Internal planning helper | Build a deterministic installer plan from environment and probe inputs without applying it. Not currently invoked by `install.sh` (which has its own Bash equivalents); this command exposes the logic for external tooling and inspection. |Apply the same change to lines 1139 and 1140.
As per coding guidelines, active voice is required; the example shows "The CLI creates a gateway" instead of "A gateway is created by the CLI."
🤖 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 1138 - 1140, Update the three table rows for the internal installer helper commands (`nemoclaw internal installer plan`, `nemoclaw internal installer resolve-release-tag`, `nemoclaw internal installer normalize-env`) to use active voice by replacing the phrase "exposed for external tooling and inspection" with "This command exposes the logic for external tooling and inspection."; keep the rest of each description unchanged so only the voice changes.
🤖 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.
Nitpick comments:
In `@docs/reference/commands.mdx`:
- Line 1142: The purpose sentence for the `nemoclaw internal uninstall
classify-shim` command currently uses passive voice; change the second sentence
to active voice by stating who calls it. Update the description for `nemoclaw
internal uninstall classify-shim` to something like "Classify whether a NemoClaw
shim path is safe to remove. The `internal uninstall run-plan` command calls
this as a library function," ensuring the command names `nemoclaw internal
uninstall classify-shim` and `internal uninstall run-plan` are referenced
exactly as in the diff.
- Around line 1138-1140: Update the three table rows for the internal installer
helper commands (`nemoclaw internal installer plan`, `nemoclaw internal
installer resolve-release-tag`, `nemoclaw internal installer normalize-env`) to
use active voice by replacing the phrase "exposed for external tooling and
inspection" with "This command exposes the logic for external tooling and
inspection."; keep the rest of each description unchanged so only the voice
changes.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 870c9165-d51a-4f4e-87bf-94a0452b5579
📒 Files selected for processing (1)
docs/reference/commands.mdx
|
These commands are internal and mostly in a transitional state while we try to get more stuff moved over from long and badly vibed out bash scripts into typescript with slightly better quality. Documenting these gives these commands an air of legitimacy I don't think they should have! |
Summary
Adds an "Internal Commands" section to docs/reference/commands.mdx listing the nine
nemoclaw internal <topic> <action>commands. The commands are already registered as hidden in oclif (static hidden = true, added in #3074/#3075/#3083/#3090/#3108 on 2026-05-06), so they are absent fromnemoclaw --help, but they had no documented description anywhere — operators who became aware of them through other paths had no canonical reference.Related Issue
Fixes #3782
Closes #3938
Changes
nemoclaw uninstalland "Environment Variables". Lists each of the nine commands, the wrapper script that calls it, and a one-line purpose. Header explicitly states the family is not part of the supported public CLI surface and that flags/output/exit codes may change without notice.Note: the orthogonal "
_commandIDsleak via oclif validation stack trace" symptom called out in #3782 is not addressed here — that is the separate UX bug the original report flagged as out of scope for the hide/document fix.Type of Change
Verification
npx prek run --all-filespassesnpm testpassesmake docsbuilds without warnings (doc changes only)Signed-off-by: Tinson Lai tinsonl@nvidia.com
Summary by CodeRabbit