Skip to content

docs: remove prompt markers from Windows setup commands#3909

Open
chengjiew wants to merge 1 commit into
mainfrom
fix/3847_windows-copy-command-prefix-dco
Open

docs: remove prompt markers from Windows setup commands#3909
chengjiew wants to merge 1 commit into
mainfrom
fix/3847_windows-copy-command-prefix-dco

Conversation

@chengjiew
Copy link
Copy Markdown
Contributor

@chengjiew chengjiew commented May 20, 2026

Summary

  • Replace copyable Windows preparation commands with powershell and bash fences that omit leading $ prompt markers.
  • Update docs contributor guidance, CodeRabbit rules, and markdownlint comments so copyable command examples no longer require prompt prefixes.
  • Regenerate the affected nemoclaw-user-get-started Windows preparation skill reference and add a regression test for the Windows page/style guidance.

Fixes #3847.

Verification

  • npm test -- test/windows-preparation-doc-copy.test.ts
  • python3 scripts/docs-to-skills.py docs/ .agents/skills/ --prefix nemoclaw-user --doc-platform fern-mdx --dry-run
  • npx prek run check-yaml --files .coderabbit.yaml .markdownlint-cli2.yaml
  • npx prek run markdownlint-cli2 --files docs/get-started/windows-preparation.mdx docs/CONTRIBUTING.md .agents/skills/nemoclaw-user-get-started/references/windows-preparation.md .agents/skills/nemoclaw-contributor-update-docs/SKILL.md
  • npm run checks
  • git diff --check
  • npm run docs (0 errors, 2 warnings reported by Fern without warning details)

Note: the normal pre-commit hook was stopped after the broad CLI coverage command hung in Vitest for over two minutes; the commit was created with --no-verify after the focused checks above passed.

Signed-off-by: Chengjie Wang chengjiew@nvidia.com

Summary by CodeRabbit

  • Documentation

    • Improved command example formatting throughout documentation using language-specific code blocks for easier copying and clarity.
    • Updated Windows preparation guide with clearer, more consistent command instructions.
    • Standardized documentation conventions to better distinguish between copyable commands and interactive console transcripts.
  • Tests

    • Added tests to verify documentation formatting standards.
  • Chores

    • Updated documentation review and linting rules to enforce consistent code block formatting.

Review Change Stack

Signed-off-by: Chengjie Wang <chengjiew@nvidia.com>
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented May 20, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 20, 2026

📝 Walkthrough

Walkthrough

This PR standardizes command-block formatting across NemoClaw documentation by removing $ prompt markers from copyable command blocks and using language-specific code fences (powershell, bash, sh) instead. The console language is now reserved for terminal transcripts. Updates apply to style guides, contributing documentation, code review automation, Windows preparation docs, and include new validation tests.

Changes

Documentation style guide and tooling update

Layer / File(s) Summary
Style guide and review tooling
docs/CONTRIBUTING.md, .coderabbit.yaml, .markdownlint-cli2.yaml, .agents/skills/nemoclaw-contributor-update-docs/SKILL.md
Updates the contributing guide to require language-specific copyable command blocks without prompt markers and reserves console for transcripts. Updates code review automation rules to enforce the new convention, adds clarifying comments to the linter configuration, and updates the skill documentation to reflect the new formatting rules.

Windows and getting-started documentation refactoring

Layer / File(s) Summary
Windows preparation MDX refactoring
docs/get-started/windows-preparation.mdx
Converts Windows and Linux command examples from console blocks with $ prefixes to language-specific fenced blocks (powershell, bash) without prompt markers. Covers bootstrap invocation, Ubuntu installation, WSL setup commands, verification, Docker-in-WSL verification, and Ollama installation.
Windows preparation skill markdown refactoring
.agents/skills/nemoclaw-user-get-started/references/windows-preparation.md
Mirrors the primary documentation refactoring by converting inline console snippets to language-specific fenced blocks for consistency across generated skill outputs.

Documentation formatting validation

Layer / File(s) Summary
Windows preparation formatting tests
test/windows-preparation-doc-copy.test.ts
Adds a fenced-code block parser utility and test coverage asserting that Windows preparation MDX contains no $ prompt-prefixed lines and uses appropriate language tags (powershell, bash) instead of console blocks. Includes a test verifying that documentation style sources no longer reference legacy prompt-prefix guidance patterns.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#3807: Overlaps with the reformatting of command snippets in docs/get-started/windows-preparation.mdx by changing from console-style examples to powershell/bash fenced blocks in the same file.
  • NVIDIA/NemoClaw#3823: Both PRs modify docs/CONTRIBUTING.md command formatting; this PR removes legacy $ prompt-style examples in favor of language-tagged fenced blocks, while the related PR updates the same documentation sections.

Suggested labels

documentation, Platform: Windows/WSL, fix

Suggested reviewers

  • miyoungc
  • ericksoa

Poem

🐰 A rabbit hops through docs so fine,
Removing prompts from every line,
powershell, bash—no $ in sight,
Copy buttons work exactly right!
Windows users smile with glee,
Commands run so perfectly! 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs: remove prompt markers from Windows setup commands' directly and clearly summarizes the main change: removal of $ prompt markers from documentation code examples.
Linked Issues check ✅ Passed The PR successfully addresses all primary coding objectives from issue #3847: language-specific fenced blocks, prompt marker removal, console block reservation, style guide updates, review automation changes, markdownlint configuration, and generated skill regeneration.
Out of Scope Changes check ✅ Passed All changes are directly related to the PR objectives. Updates to SKILL.md, windows-preparation.md, .coderabbit.yaml, .markdownlint-cli2.yaml, CONTRIBUTING.md, windows-preparation.mdx, and the test file all support the single objective of removing prompt markers and reformatting commands.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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 fix/3847_windows-copy-command-prefix-dco

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

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


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

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions
Copy link
Copy Markdown
Contributor

PR Review Advisor

Recommendation: info only
Confidence: low
Analyzed HEAD: d373fad24797bc31b901b2a4aa3c4b9b48779f8b
Findings: 0 blocker(s), 1 warning(s), 0 suggestion(s)

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

Limitations: Advisor execution failed: Could not configure advisor model openai/openai/gpt-5.5

Workflow run

Full advisor summary

PR Review Advisor

Base: origin/main
Head: HEAD
Analyzed SHA: d373fad24797bc31b901b2a4aa3c4b9b48779f8b
Recommendation: info only
Confidence: low

PR review advisor failed: Could not configure advisor model openai/openai/gpt-5.5

Gate status

  • CI: fail — 1 status context(s) appear failed.
  • Mergeability: fail — mergeStateStatus=BLOCKED
  • Review threads: unknown — No review thread state was available.
  • Risky code tested: pass — No risky code areas detected by path heuristics.

🔴 Blockers

  • None.

🟡 Warnings

  • PR review advisor unavailable: The automated advisor could not complete: Could not configure advisor model openai/openai/gpt-5.5
    • Recommendation: Re-run the PR Review Advisor or perform a manual review.
    • Evidence: Could not configure advisor model openai/openai/gpt-5.5

🔵 Suggestions

  • None.

Acceptance coverage

  • No linked acceptance clauses were analyzed.

Security review

  • warning — Secrets and Credentials: Advisor unavailable; human review required.
  • warning — Input Validation and Data Sanitization: Advisor unavailable; human review required.
  • warning — Authentication and Authorization: Advisor unavailable; human review required.
  • warning — Dependencies and Third-Party Libraries: Advisor unavailable; human review required.
  • warning — Error Handling and Logging: Advisor unavailable; human review required.
  • warning — Cryptography and Data Protection: Advisor unavailable; human review required.
  • warning — Configuration and Security Headers: Advisor unavailable; human review required.
  • warning — Security Testing: Advisor unavailable; human review required.
  • warning — Holistic Security Posture: Advisor unavailable; human review required.

Test / E2E status

  • Test depth: e2e_required — Runtime/sandbox/infrastructure paths need real execution coverage: .agents/skills/nemoclaw-contributor-update-docs/SKILL.md, .agents/skills/nemoclaw-user-get-started/references/windows-preparation.md, .coderabbit.yaml, .markdownlint-cli2.yaml, docs/CONTRIBUTING.md, docs/get-started/windows-preparation.mdx.
  • E2E Advisor: not_found (not found)

✅ What looks good

  • No positives were identified by the advisor.

Review completeness

  • Advisor execution failed: Could not configure advisor model openai/openai/gpt-5.5
  • Human maintainer review required: yes

@github-actions
Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: None
Optional E2E: None

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • None. No E2E is recommended because this PR is limited to documentation, generated/agent-facing documentation copy, docs review/lint guidance, and a docs-copy unit test. It does not change installer/onboarding logic, sandbox lifecycle code, credentials, security boundaries, network policy, inference routing, deployment scripts, or real assistant user-flow implementation.

Optional E2E

  • None.

New E2E recommendations

  • None.

@HanClinto
Copy link
Copy Markdown

@chengjiew This looks very good, thank you. Much better

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

🤖 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 `@test/windows-preparation-doc-copy.test.ts`:
- Around line 70-77: The test currently bans all `console` blocks by asserting
expect(consoleBlocks).toEqual([]); remove that assertion and instead enforce
only that no copyable console blocks include shell prompt markers: keep
expect(promptLines).toEqual([]) and replace the consoleBlocks assertion with a
filtered check that scans blocks (or consoleBlocks) for lines starting with "$ "
or other prompt markers (e.g. ">") and assert that filtered list is empty;
reference the existing variables blocks, consoleBlocks and promptLines to locate
and update the assertion.
🪄 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: aa8d07c6-c231-4b56-aa8b-6f29e4d3cc1b

📥 Commits

Reviewing files that changed from the base of the PR and between 25aa446 and d373fad.

📒 Files selected for processing (7)
  • .agents/skills/nemoclaw-contributor-update-docs/SKILL.md
  • .agents/skills/nemoclaw-user-get-started/references/windows-preparation.md
  • .coderabbit.yaml
  • .markdownlint-cli2.yaml
  • docs/CONTRIBUTING.md
  • docs/get-started/windows-preparation.mdx
  • test/windows-preparation-doc-copy.test.ts

Comment on lines +70 to +77
const consoleBlocks = blocks
.filter((block) => block.language === "console")
.map((block) => `${path.relative(repoRoot, windowsPreparationDoc)}:${block.line}`);
const languages = new Set(blocks.map((block) => block.language));

expect(promptLines).toEqual([]);
expect(consoleBlocks).toEqual([]);
expect(languages.has("powershell")).toBe(true);
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

Do not ban all console blocks in this test.

expect(consoleBlocks).toEqual([]) is stricter than the documented rule and will fail valid transcript examples later. Keep console allowed for transcript-style blocks, and only enforce “no $ prompt markers in copyable command blocks.”

Suggested adjustment
-    const consoleBlocks = blocks
-      .filter((block) => block.language === "console")
-      .map((block) => `${path.relative(repoRoot, windowsPreparationDoc)}:${block.line}`);
     const languages = new Set(blocks.map((block) => block.language));

     expect(promptLines).toEqual([]);
-    expect(consoleBlocks).toEqual([]);
     expect(languages.has("powershell")).toBe(true);
     expect(languages.has("bash")).toBe(true);
🤖 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 `@test/windows-preparation-doc-copy.test.ts` around lines 70 - 77, The test
currently bans all `console` blocks by asserting
expect(consoleBlocks).toEqual([]); remove that assertion and instead enforce
only that no copyable console blocks include shell prompt markers: keep
expect(promptLines).toEqual([]) and replace the consoleBlocks assertion with a
filtered check that scans blocks (or consoleBlocks) for lines starting with "$ "
or other prompt markers (e.g. ">") and assert that filtered list is empty;
reference the existing variables blocks, consoleBlocks and promptLines to locate
and update the assertion.

@wscurran wscurran added documentation Improvements or additions to documentation fix Platform: Windows/WSL Support for Windows Subsystem for Linux labels May 20, 2026
@wscurran
Copy link
Copy Markdown
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation fix Platform: Windows/WSL Support for Windows Subsystem for Linux

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"Copy" Shortcut for Quick Install Commands Include $ Prefix (Windows)

3 participants