Conversation
… Tutorials Reorganize the Get Started section into Prerequisites → Platform Setup → Quickstart and add a new Tutorials section with a DGX Spark + Local Ollama tutorial. Extend the Architecture reference with a Deployment Topology diagram that shows the host CLI → Docker → gateway container → embedded k3s → sandbox pod stack. Port Spark-specific troubleshooting (CoreDNS, k3s image pull, GPU passthrough, pip system-packages, AI Workbench port 3000) into the central Troubleshooting reference and replace the tutorial's Troubleshooting section with a cross-link. Document `nemoclaw uninstall` vs the hosted `uninstall.sh` curl one-liner, update the source-of-truth `ci/platform-matrix.json` to link the DGX Spark tutorial from the platform matrix, and add Sphinx redirects for the pre-reorg doc URLs. Regenerate agent skills from the updated docs tree. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (5)
🚧 Files skipped from review as they are similar to previous changes (4)
📝 WalkthroughWalkthroughThis PR reorganizes and expands documentation: extracts prerequisites into a dedicated page, clarifies uninstall behavior (CLI-run, version-pinned local script with hosted fallback), adds a host-level deployment topology and DGX Spark troubleshooting, updates Windows prep wording, and adjusts docs-generation scripts and tooling targets. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
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. |
There was a problem hiding this comment.
Actionable comments posted: 10
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
docs/reference/architecture.md (1)
19-20:⚠️ Potential issue | 🟠 MajorSPDX header is not in the required repository format.
Please use the exact markdown SPDX header text with
2026.As per coding guidelines, "
**/*.{js,mjs,ts,tsx,sh,md}: Every source file must include an SPDX license header:... Copyright (c) 2026 ...."🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/reference/architecture.md` around lines 19 - 20, Update the SPDX header in the file to the exact required markdown format and year 2026: replace the current two-line header with the standard SPDX markdown header text including "Copyright (c) 2026" and "SPDX-License-Identifier: Apache-2.0" so the file conforms to the repository rule for files matching *.md; ensure the header matches the exact casing and punctuation used by other repository files.docs/get-started/quickstart.md (1)
19-20:⚠️ Potential issue | 🟠 MajorSPDX header does not use the required canonical format.
Please switch to the exact repository-required SPDX text (
2026).As per coding guidelines, "
**/*.{js,mjs,ts,tsx,sh,md}: Every source file must include an SPDX license header:... Copyright (c) 2026 ...."🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/get-started/quickstart.md` around lines 19 - 20, The SPDX header in the quickstart markdown uses an incorrect year range; update the SPDX license header text so it exactly matches the repository-required canonical form by replacing the existing "Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved." line with the mandated SPDX line that uses "Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved." and keep the SPDX-License-Identifier: Apache-2.0 line unchanged.docs/reference/troubleshooting.md (1)
19-20:⚠️ Potential issue | 🟠 MajorSPDX header format is not the required canonical string.
Please align to the exact repository-required SPDX header with
2026.As per coding guidelines, "
**/*.{js,mjs,ts,tsx,sh,md}: Every source file must include an SPDX license header:... Copyright (c) 2026 ...."🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/reference/troubleshooting.md` around lines 19 - 20, Replace the non-canonical SPDX header lines by updating the SPDX-FileCopyrightText year to 2026 and ensuring the SPDX-FileCopyrightText and SPDX-License-Identifier lines exactly match the repository-required canonical header (use the SPDX-FileCopyrightText and SPDX-License-Identifier tokens to locate the two header lines and change the year to 2026 and keep the license identifier as Apache-2.0).
🧹 Nitpick comments (4)
docs/get-started/platform-setup/index.md (1)
43-44: Remove bold from routine status text (LLM pattern detected).Use plain text for these status words unless this is a genuine warning/UI label.
As per coding guidelines: "Unnecessary bold on routine instructions ... LLM pattern detected."Proposed fix
-Platforms marked **Not required** have everything they need once Docker is installed and running, so you can go directly to the [Quickstart](../quickstart.md). -Platforms marked **Required** have a linked guide that walks through the extra steps before the Quickstart. +Platforms marked not required have everything they need once Docker is installed and running, so you can go directly to the [Quickstart](../quickstart.md). +Platforms marked required have a linked guide that walks through the extra steps before the Quickstart.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/get-started/platform-setup/index.md` around lines 43 - 44, Remove the bold markdown formatting around the routine status words by changing "**Not required**" to "Not required" and "**Required**" to "Required" in the sentence that references the Quickstart link; keep the surrounding text and link unchanged (the phrases "Not required" and "Required" are the unique identifiers to locate the edits).README.md (1)
150-154: Prefer a tagged/manual fallback over pipingmaindirectly tobash.For recovery guidance, using
refs/heads/mainhere can mismatch the installed CLI version and weakens the review step. Consider documenting a “download + review + run” flow with a versioned tag URL.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` around lines 150 - 154, Replace the unsafe "curl ... refs/heads/main/uninstall.sh | bash" fallback in README.md with a documented manual flow: instruct users to download the specific versioned/tagged uninstall script URL (use a tag instead of refs/heads/main), inspect/review the downloaded file, and only then execute it (e.g., download to a local file, review, and run with bash). Reference the CLI name "nemoclaw" and the original URL string "https://raw.githubusercontent.com/NVIDIA/NemoClaw/refs/heads/main/uninstall.sh" so maintainers can update that to a versioned tag URL and provide the three-step guidance: download, review, run.docs/reference/troubleshooting.md (1)
679-679: Use active voice in this troubleshooting instruction.Line 679 uses passive voice (“It is expected to work...”); rephrase in active voice.
As per coding guidelines, "Voice and Tone: Active voice required. Flag passive constructions."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/reference/troubleshooting.md` at line 679, The sentence at line 679 uses passive voice ("It is expected to work when you pass `--gpu`..."); change it to active voice by rewriting the line to directly state the actor and action, e.g., "The application works when you pass `--gpu` and you have configured the NVIDIA Container Toolkit." Update the sentence in docs/reference/troubleshooting.md replacing the passive construction with this active phrasing and keep the existing `--gpu` and NVIDIA Container Toolkit mentions.docs/get-started/tutorials/dgx-spark.md (1)
25-27: Split multi-sentence lines into one sentence per line.Several edited lines contain multiple sentences on the same source line (for example, Line 25 and Line 90), which hurts diff readability.
As per coding guidelines:
One sentence per line in source (makes diffs readable). Flag paragraphs where multiple sentences appear on the same line.Also applies to: 90-103, 146-152
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/get-started/tutorials/dgx-spark.md` around lines 25 - 27, Several source lines in the DGX Spark tutorial contain multiple sentences on the same line (for example the paragraph starting "This tutorial shows you how to set up NemoClaw with Ollama on an NVIDIA DGX Spark." and the sentence beginning "DGX Spark ships with Ubuntu 24.04 and Docker pre-installed...") as well as the later paragraphs flagged in the review; split each multi-sentence source line so each sentence occupies its own line, preserving paragraph breaks and existing punctuation; locate and update the affected paragraphs (the introductory sentences and the later sections the reviewer flagged) to follow the "one sentence per line" guideline to improve diff readability.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/get-started/platform-setup/index.md`:
- Around line 53-60: Add an explicit "Next Steps" section at the bottom of the
page: create a "## Next Steps" header after the existing Quickstart
sentence/toctree and list links (e.g., the existing
[Quickstart](../quickstart.md) and any related pages like windows) so the page
ends with a clear Next Steps block rather than just the transition
sentence/toctree.
- Line 23: The document's H1 "# Platform Setup" does not match the frontmatter
key title.page; update the H1 to exactly match the frontmatter value
(title.page) or modify title.page to exactly match the H1 so they are identical,
ensuring punctuation/capitalization/spacing are the same; check the frontmatter
key "title.page" and the H1 line and make them identical.
In `@docs/get-started/prerequisites.md`:
- Line 23: The H1 heading in the markdown must match the frontmatter title.page
exactly: replace the existing "# Prerequisites" H1 with "# NemoClaw
Prerequisites" so the page-level heading equals the frontmatter title.page
value; update the H1 at the top of the document (the visible page heading) to
match "NemoClaw Prerequisites" precisely, including capitalization and spacing.
- Around line 54-56: Rename the section header "## Next" to "## Next Steps" in
the docs/get-started/prerequisites.md file so the bottom-of-page link follows
the project's page structure guideline; locate the header text "## Next" and
update it to "## Next Steps", leaving the link to the Quickstart intact.
- Around line 19-20: The SPDX header in the Markdown file uses "2025-2026" but
must match the project-required single year "2026"; update the two header lines
in the file (the SPDX copyright line and SPDX-License-Identifier line shown in
the diff) to use the exact required header text with "Copyright (c) 2026" and
"SPDX-License-Identifier: Apache-2.0" so the file matches the project's SPDX
format for Markdown files.
In `@docs/get-started/quickstart.md`:
- Around line 343-345: Replace the CLI code fences that use ```bash with
```console and add a leading "$ " prompt to each command so the examples follow
docs style; specifically update the blocks that contain "nemoclaw uninstall" and
the curl uninstall command (the blocks shown around lines 343–345 and 357–359)
to use ```console and prefix the commands with "$ ".
In `@docs/get-started/tutorials/dgx-spark.md`:
- Around line 67-69: Replace all CLI code fences that use the ```bash (or
```shell) tag with ```console and add a leading $ prompt to each command example
(e.g., the docker run command shown as ```bash ... should become a console block
with lines prefixed by $). Update every listed block (the docker run nvidia/cuda
example and the other blocks referenced) so CLI examples conform to the
guideline: use the console language tag and include the $ prompt on command
lines.
- Line 165: The markdown includes a disallowed third-party repository link to
"github.com/ggml-org/llama.cpp" in the NIM compatibility note; remove that
external link and replace it with non-link text or point readers to an approved
internal resource (or simply mention "llama.cpp (GGUF models)" without a URL) in
the sentence that mentions Nemotron-3-Super-120B-A12B and alternatives like
Ollama, ensuring the text no longer contains any external repository URL.
In `@docs/reference/architecture.md`:
- Line 90: Update the topology paragraph to follow one-sentence-per-line and
remove the colon: change "NemoClaw runs on a Docker daemon" to "NemoClaw uses a
Docker daemon" and then split the rest into separate sentences describing that
the OpenShell gateway runs as a container that embeds a k3s cluster, and that
the sandbox runs as a Kubernetes pod inside that embedded cluster; ensure no
colon is used and each sentence is on its own line, referencing NemoClaw,
OpenShell gateway, k3s cluster, and sandbox to locate the text.
In `@spark-install.md`:
- Around line 2-3: Update the SPDX header in the file's top header so it uses
the exact required year format "2026" instead of the current "2025-2026"; locate
the SPDX header line (the line starting with "SPDX-FileCopyrightText") and
replace the year range with "Copyright (c) 2026" to match repository policy.
---
Outside diff comments:
In `@docs/get-started/quickstart.md`:
- Around line 19-20: The SPDX header in the quickstart markdown uses an
incorrect year range; update the SPDX license header text so it exactly matches
the repository-required canonical form by replacing the existing "Copyright (c)
2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved." line with the
mandated SPDX line that uses "Copyright (c) 2026 NVIDIA CORPORATION &
AFFILIATES. All rights reserved." and keep the SPDX-License-Identifier:
Apache-2.0 line unchanged.
In `@docs/reference/architecture.md`:
- Around line 19-20: Update the SPDX header in the file to the exact required
markdown format and year 2026: replace the current two-line header with the
standard SPDX markdown header text including "Copyright (c) 2026" and
"SPDX-License-Identifier: Apache-2.0" so the file conforms to the repository
rule for files matching *.md; ensure the header matches the exact casing and
punctuation used by other repository files.
In `@docs/reference/troubleshooting.md`:
- Around line 19-20: Replace the non-canonical SPDX header lines by updating the
SPDX-FileCopyrightText year to 2026 and ensuring the SPDX-FileCopyrightText and
SPDX-License-Identifier lines exactly match the repository-required canonical
header (use the SPDX-FileCopyrightText and SPDX-License-Identifier tokens to
locate the two header lines and change the year to 2026 and keep the license
identifier as Apache-2.0).
---
Nitpick comments:
In `@docs/get-started/platform-setup/index.md`:
- Around line 43-44: Remove the bold markdown formatting around the routine
status words by changing "**Not required**" to "Not required" and "**Required**"
to "Required" in the sentence that references the Quickstart link; keep the
surrounding text and link unchanged (the phrases "Not required" and "Required"
are the unique identifiers to locate the edits).
In `@docs/get-started/tutorials/dgx-spark.md`:
- Around line 25-27: Several source lines in the DGX Spark tutorial contain
multiple sentences on the same line (for example the paragraph starting "This
tutorial shows you how to set up NemoClaw with Ollama on an NVIDIA DGX Spark."
and the sentence beginning "DGX Spark ships with Ubuntu 24.04 and Docker
pre-installed...") as well as the later paragraphs flagged in the review; split
each multi-sentence source line so each sentence occupies its own line,
preserving paragraph breaks and existing punctuation; locate and update the
affected paragraphs (the introductory sentences and the later sections the
reviewer flagged) to follow the "one sentence per line" guideline to improve
diff readability.
In `@docs/reference/troubleshooting.md`:
- Line 679: The sentence at line 679 uses passive voice ("It is expected to work
when you pass `--gpu`..."); change it to active voice by rewriting the line to
directly state the actor and action, e.g., "The application works when you pass
`--gpu` and you have configured the NVIDIA Container Toolkit." Update the
sentence in docs/reference/troubleshooting.md replacing the passive construction
with this active phrasing and keep the existing `--gpu` and NVIDIA Container
Toolkit mentions.
In `@README.md`:
- Around line 150-154: Replace the unsafe "curl ... refs/heads/main/uninstall.sh
| bash" fallback in README.md with a documented manual flow: instruct users to
download the specific versioned/tagged uninstall script URL (use a tag instead
of refs/heads/main), inspect/review the downloaded file, and only then execute
it (e.g., download to a local file, review, and run with bash). Reference the
CLI name "nemoclaw" and the original URL string
"https://raw.githubusercontent.com/NVIDIA/NemoClaw/refs/heads/main/uninstall.sh"
so maintainers can update that to a versioned tag URL and provide the three-step
guidance: download, review, run.
🪄 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: f0ee439a-f1b0-4a93-91fe-99f84b84838f
📒 Files selected for processing (23)
.agents/skills/nemoclaw-user-get-started/SKILL.md.agents/skills/nemoclaw-user-get-started/references/prerequisites.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-tutorial/SKILL.md.agents/skills/nemoclaw-user-windows-presetup/SKILL.md.agents/skills/nemoclaw-user-windows-presetup/references/windows.md.pre-commit-config.yamlREADME.mdci/platform-matrix.jsondocs/conf.pydocs/get-started/platform-setup/index.mddocs/get-started/platform-setup/windows.mddocs/get-started/prerequisites.mddocs/get-started/quickstart.mddocs/get-started/tutorials/dgx-spark.mddocs/index.mddocs/reference/architecture.mddocs/reference/commands.mddocs/reference/troubleshooting.mdscripts/generate-platform-docs.pyspark-install.md
…lve to skills Subdirectory index.md pages (for example docs/get-started/platform-setup/ index.md) are real hub content, not Sphinx boilerplate, but the generator was excluding every file named index.md. With the hub page missing from the skill map, inter-doc links targeting it fell through to the file-path fallback and check-docs flagged those paths as broken. Scope the exclusion to the top-level docs/index.md only. The platform-setup hub now becomes its own nemoclaw-user-platform-setup skill, and links to it rewrite to the expected "(use the `<skill>` skill)" form instead of a filesystem path. The former nemoclaw-user-windows-presetup skill is subsumed into the new hub skill. Also preserve fragment anchors across the rewrite (a pre-existing bug) and emit paths relative to the output file as a sound default for links that legitimately do not map to any generated skill. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…es + windows-preparation Simplify the Get Started tree. The short-lived platform-setup hub had only one real pre-setup page (Windows) and a tested-platform matrix; fold the matrix directly into prerequisites.md and move the Windows page up one level as windows-preparation.md. Remove the DGX Spark tutorial — Spark users now follow the standard Quickstart and the end-to-end walkthrough lives on the NVIDIA Spark playbook at build.nvidia.com/spark/nemoclaw. Update everything that linked to the removed pages: - `ci/platform-matrix.json` DGX Spark notes now point to the Spark playbook; README matrix regenerated. - README Documentation table swaps the Platform Setup row for a Prerequisites row; the platform-setup pointer below the matrix now points at Prerequisites. - `docs/reference/architecture.md` deployment-topology Spark callout links the playbook instead of the tutorial. - `docs/reference/troubleshooting.md` DGX Spark section links the playbook; the GPU passthrough note inlines the toolkit check command instead of cross-referencing a tutorial step; Windows links updated to `../get-started/windows-preparation.md`. - `docs/conf.py` drops the obsolete platform-setup/dgx-spark redirects and retargets `get-started/windows-setup` at `windows-preparation.html`. - `docs/get-started/prerequisites.md` Platform row now points at the in-page `#platforms` anchor. Skills regenerated; `nemoclaw-user-platform-setup` and `nemoclaw-user-tutorial` removed, `nemoclaw-user-get-started` now covers prerequisites.md + windows-preparation.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…-per-line Replace the colon-linked compound sentence with five plain sentences on their own lines, and swap "runs on a Docker daemon" for "uses a Docker daemon" to match the project's prose style. The rendered output is identical because CommonMark folds consecutive single-line sentences into one paragraph; only the source diff changes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 2
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)
466-490:⚠️ Potential issue | 🟡 MinorSkill rewrites still drop
#fragmentcontext.When a link like
other.md#sectionresolves throughdoc_to_skill, the return at Line 489 discardsfragand emits only the skill hint. That loses the section pointer this change is trying to preserve. Please carry the fragment through in the emitted hint as well.🤖 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 466 - 490, The rewrite drops the fragment because the return that handles mapped docs (using variables raw_path, frag, path_no_frag, doc_to_skill, skill_name, link_text) omits frag; update the return in that doc-to-skill branch so the fragment is preserved by appending frag to the emitted hint (e.g., include frag immediately after the skill_name inside the parenthetical hint) so links like other.md#section produce a hint that still contains the `#section` fragment.
🧹 Nitpick comments (1)
README.md (1)
148-156: Prefer the versioned uninstall URL in the documented fallback.The CLI’s recovery path is intentionally version-pinned, but this README fallback goes back to
refs/heads/main | bash. That reintroduces version skew in the exact scenario where users are already recovering from a broken install. Consider documenting the tag-based URL form here, or explicitly calling themainform out as a last-resort fallback.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` around lines 148 - 156, Update the README fallback so it prefers a versioned/tag-based uninstall script URL instead of the branch-based refs/heads/main one: change the documented curl from the current "https://raw.githubusercontent.com/NVIDIA/NemoClaw/refs/heads/main/uninstall.sh | bash" to a tag-based form (e.g., using a release tag placeholder like vX.Y.Z or a variable such as ${NEMOCLAW_VERSION:-vX.Y.Z}) and explicitly mention that refs/heads/main is a last-resort fallback only to be used when no versioned CLI is available; ensure the text around the "nemoclaw uninstall" fallback and the example curl command reflect this preference.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/reference/architecture.md`:
- Line 115: The diagram and layer table incorrectly present an "Inference
router" as a separate architectural component that injects credentials; update
the Mermaid diagram and accompanying text to remove or rename the "Inference
router" node and instead indicate that credential injection is performed by the
L7 proxy (the provider/placeholder system) — reference the utility
isInferenceRouteReady (a readiness check, not a component) and the L7 proxy
behavior (rewriting Authorization headers and URL-path segments) when editing
the diagram labels and prose so the diagram reflects the proxy performing
credential injection rather than a distinct inference-router service.
In `@scripts/docs-to-skills.py`:
- Around line 1045-1060: The current _clean function and use of
skill_md_path/primary_skill_dir rewrite links once against output_dirs[0],
causing incorrect relative links for other output roots; fix by moving the
rewrite_doc_paths call to inside the loop that writes to each output directory
so each output tree gets its own target (pass the per-output output_file/path
into rewrite_doc_paths), or alternatively add an explicit assertion that all
entries in output_dirs resolve to the same on-disk location as primary_skill_dir
before reusing skill_md_path; update uses of _clean, skill_md_path,
primary_skill_dir, and the write loop so rewrite_doc_paths is invoked per-output
with the correct output_file rather than reusing a single precomputed result.
---
Outside diff comments:
In `@scripts/docs-to-skills.py`:
- Around line 466-490: The rewrite drops the fragment because the return that
handles mapped docs (using variables raw_path, frag, path_no_frag, doc_to_skill,
skill_name, link_text) omits frag; update the return in that doc-to-skill branch
so the fragment is preserved by appending frag to the emitted hint (e.g.,
include frag immediately after the skill_name inside the parenthetical hint) so
links like other.md#section produce a hint that still contains the `#section`
fragment.
---
Nitpick comments:
In `@README.md`:
- Around line 148-156: Update the README fallback so it prefers a
versioned/tag-based uninstall script URL instead of the branch-based
refs/heads/main one: change the documented curl from the current
"https://raw.githubusercontent.com/NVIDIA/NemoClaw/refs/heads/main/uninstall.sh
| bash" to a tag-based form (e.g., using a release tag placeholder like vX.Y.Z
or a variable such as ${NEMOCLAW_VERSION:-vX.Y.Z}) and explicitly mention that
refs/heads/main is a last-resort fallback only to be used when no versioned CLI
is available; ensure the text around the "nemoclaw uninstall" fallback and the
example curl command reflect this preference.
🪄 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: 1c7ee433-4f2e-4586-95e3-69cf4fdbf590
📒 Files selected for processing (16)
.agents/skills/nemoclaw-user-get-started/SKILL.md.agents/skills/nemoclaw-user-get-started/references/prerequisites.md.agents/skills/nemoclaw-user-get-started/references/windows-preparation.md.agents/skills/nemoclaw-user-reference/references/architecture.md.agents/skills/nemoclaw-user-reference/references/troubleshooting.mdREADME.mdci/platform-matrix.jsondocs/conf.pydocs/get-started/prerequisites.mddocs/get-started/windows-preparation.mddocs/index.mddocs/reference/architecture.mddocs/reference/commands.mddocs/reference/troubleshooting.mdscripts/docs-to-skills.pyspark-install.md
✅ Files skipped from review due to trivial changes (8)
- docs/index.md
- ci/platform-matrix.json
- .agents/skills/nemoclaw-user-get-started/references/windows-preparation.md
- .agents/skills/nemoclaw-user-reference/references/architecture.md
- docs/get-started/windows-preparation.md
- docs/conf.py
- docs/get-started/prerequisites.md
- docs/reference/troubleshooting.md
🚧 Files skipped from review as they are similar to previous changes (3)
- spark-install.md
- .agents/skills/nemoclaw-user-get-started/references/prerequisites.md
- .agents/skills/nemoclaw-user-get-started/SKILL.md
…a router The Deployment Topology diagram showed an "Inference router" node that performed credential injection. The codebase has no such component: - src/lib/services.ts:257 attributes the work to the "OpenShell provider/placeholder/L7-proxy pipeline". - src/lib/onboard.ts:4201–4202, :4324, :4357 describe the L7 proxy rewriting Authorization headers (Bearer/Bot) and URL-path segments with real secrets at egress. - The only `*InferenceRoute*` symbol is `isInferenceRouteReady` (src/lib/onboard.ts:1083), a host-side readiness check used by the resume flow — not a service. Rename the diagram node to "OpenShell L7 proxy", retitle the table row, update the egress edge labels (agent sends placeholder credentials; the proxy egresses with real credentials), and add a short prose note clarifying the provider/placeholder pipeline and the role of `isInferenceRouteReady`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…cs/ paths Skills should be self-contained. The rewriter was emitting filesystem paths back into docs/ whenever a target had no corresponding skill, which coupled the skill tree to the repo layout and broke when the tree moved. Replace that fallback with the published HTTPS URL derived from Sphinx's html_baseurl. Changes: - Add `load_html_baseurl(docs_dir)` that reads the assignment from conf.py via `ast` (no exec side effects). Project-agnostic: any docs tree with an `html_baseurl` works. Falls back to stripping the hyperlink (keep text) if the base URL is missing. - Rewrite precedence in `rewrite_doc_paths` is now: 1. skill reference (`text (use the `<skill>` skill)`) 2. published URL (`[text](<html_baseurl><page>.html#frag)`) 3. plain text (self-containment wins over navigability) - Include placeholders follow the same precedence: emit the published URL if available, else drop the breadcrumb (the content is inlined). - Remove the `output_file` parameter plumbing added earlier and the associated multi-output-dir invariant guard. Since emitted content no longer depends on where it's written, `output_dirs` can safely be any mirrors (symlinks, bind mounts, independent trees) without caveat. - Thread `html_baseurl` through `generate_skill` from `main()`. Also a small editorial touch in docs/reference/architecture.md: drop the Docker daemon version suffix from the deployment-topology diagram. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ericksoa
left a comment
There was a problem hiding this comment.
Clean docs reorganization. No source code changes. All CI green.
The Get Started reorg (prerequisites on their own page, Windows rename with redirect) and the Spark content consolidation to the external playbook are both good moves. The deployment topology mermaid diagram and role table are a valuable addition to the architecture reference.
The docs-to-skills.py improvements are well-done — AST-based conf.py parsing avoids exec side effects, and resolving inter-doc links to published HTTPS URLs (with fragment preservation) makes generated skills properly self-contained.
…DIA#2445) ## Summary Reorganize the Get Started section, document the full runtime topology in the Architecture reference, and clarify how to uninstall NemoClaw. Prerequisites now live on their own page (with the tested-platform matrix included directly from the README), Windows pre-setup is renamed to `windows-preparation.md`, and DGX Spark readers are pointed to the NVIDIA Spark playbook rather than an in-repo tutorial. ## Changes **Get Started reorganization** - New `docs/get-started/prerequisites.md`. Extracts Hardware, Software, and the tested-platform matrix from Quickstart into its own page. The matrix is pulled in via Sphinx `{include}` from the README so there is a single source of truth. - `docs/get-started/windows-setup.md` → `docs/get-started/windows-preparation.md` (renamed to "Prepare Windows for NemoClaw"). Nested under Prerequisites in the toctree. - `docs/get-started/quickstart.md` no longer duplicates the Prerequisites section; it links to the new page instead. - `docs/index.md` Get Started toctree is now `Prerequisites` then `Quickstart`. - `docs/conf.py` redirects `get-started/windows-setup` → `windows-preparation.html` so the pre-reorg URL still resolves. **Architecture reference: Deployment Topology** - New `## Deployment Topology` section in `docs/reference/architecture.md` with a mermaid diagram showing the runtime substrate — host CLI → Docker daemon → OpenShell gateway container → embedded k3s cluster → sandbox pod → OpenClaw agent + plugin — plus the inference router's role on the path to external providers. - Per-layer role table (host CLI, Docker daemon, gateway container, k3s, sandbox pod, inference router). - Points DGX Spark readers to the [NVIDIA Spark playbook](https://build.nvidia.com/spark/nemoclaw) for the Spark-specific variant. **Uninstall documentation** - `docs/reference/commands.md` `nemoclaw uninstall` section corrects a drift bug (the CLI does *not* auto-fall-back to a remote script; it prints the versioned URL for manual review) and adds a comparison table between `nemoclaw uninstall` and the hosted `curl … | bash` form. - README and Quickstart Uninstall sections now lead with `nemoclaw uninstall` (version-pinned, no network fetch) and keep the `curl … | bash` form as a fallback for when the CLI is missing or broken. Both link to the comparison table. **Troubleshooting reference** - New `## DGX Spark` section in `docs/reference/troubleshooting.md` covering CoreDNS CrashLoop, `k3s` image-pull failure after a local build, GPU passthrough (not CI-tested on Spark), `pip install` system-packages errors, and the AI Workbench port 3000 conflict. - Section header points to the Spark playbook for end-to-end walkthroughs. - Windows cross-links retargeted to `../get-started/windows-preparation.md`. **Platform matrix source of truth** - `ci/platform-matrix.json` DGX Spark notes now link the Spark playbook. README matrix regenerated. - README Documentation table gains a Prerequisites row and updates the pointer below the matrix to point at Prerequisites instead of a now-removed hub. - `scripts/generate-platform-docs.py` drops `docs/get-started/quickstart.md` from its patch targets — the matrix moved to `prerequisites.md` and is pulled via `{include}` from README, so only README needs patching. - `.pre-commit-config.yaml` `platform-matrix-sync` hook updated to match (removed the quickstart path from both `git add` and `files`). **Agent skill generator (`scripts/docs-to-skills.py`)** Goal: skill files are self-contained. They never reference repository paths like `../../../docs/…`, and they never couple the skill tree to the repo layout. - Rewrite precedence in `rewrite_doc_paths`: 1. If the link target maps to a generated skill, emit ``text (use the `<skill>` skill)``. 2. Otherwise, if the target is a page inside `docs/`, emit an absolute `[text](<html_baseurl><page>.html#frag)`. 3. Otherwise (target outside `docs/`, or no base URL), strip the hyperlink and keep the link text. Self-containment wins over navigability in the fallback. - New `load_html_baseurl(docs_dir)` reads the `html_baseurl` assignment from Sphinx's `conf.py` via `ast` (no `exec` side effects), so the script is project-agnostic: any docs tree with that assignment works. A warning is printed (and the script continues) if the base URL is missing. - Include placeholders (`> *Content included from … — see the original doc for full text.*`) follow the same precedence: emit a published URL if available, else drop the breadcrumb since the content is already inlined. - Fragment anchors are now preserved across the rewrite (the pre-existing rewrite silently stripped them). - Scope the `index.md` exclusion to the top-level `docs/index.md` only. Subdirectory index pages (for example `docs/get-started/platform-setup/index.md`) are legitimate hub content and can now participate in skill grouping — which is what makes rule 1 above kick in for links to those hubs. - Because emitted content no longer depends on where it is written, the earlier `output_file` parameter plumbing and the multi-output-dir invariant guard are gone. `output_dirs` can be any mirrors (symlinks, bind mounts, independent trees) without caveat. **Repo-root stub** - `spark-install.md` rewritten as a short redirect paragraph pointing to the NVIDIA Spark playbook and the Quickstart. **Agent skills** - `.agents/skills/` regenerated from the new doc tree. `nemoclaw-user-get-started` now covers `prerequisites.md` + `windows-preparation.md`; `nemoclaw-user-reference` picks up the revised architecture, commands, and troubleshooting pages. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [x] Doc only (includes code sample changes) The only non-doc code changes are to the skill-generator script (`scripts/docs-to-skills.py`), the platform-matrix-generator target list (`scripts/generate-platform-docs.py`), and the pre-commit hook entry. Everything else is docs or generated docs. ## Verification - [x] `check-docs.sh --only-links` phase 1 (local links) passes. Phase 2 flags `prerequisites.html` as "unreachable" because it is a new page not yet published; it will resolve after this PR merges and the docs site rebuilds. - [ ] `npx prek run --all-files` passes - [ ] `npm test` passes - [ ] Tests added or updated for new or changed behavior - [x] No secrets, API keys, or credentials committed - [x] Docs updated for user-facing behavior changes - [ ] `make docs` builds without warnings (doc changes only) - [x] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [x] New doc pages include SPDX header and frontmatter (new pages only) Note on unchecked boxes: prek's CLI vitest suite surfaces pre-existing environmental failures on my machine (`nemoclaw/dist/blueprint/private-networks.js` missing and integration tests that try to reach a live gateway). No source file under `src/`, `nemoclaw/src/`, `bin/`, or `test/` is touched by this diff, so those failures are unrelated. `make docs` wasn't run locally. ## AI Disclosure - [x] AI-assisted — tool: Claude Code --- Signed-off-by: Miyoung Choi <miyoungc@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a dedicated Prerequisites page with minimum/recommended hardware, software versions, and platform notes. * Added DGX Spark troubleshooting and an end-to-end local Ollama walkthrough reference. * **Documentation** * Reorganized Get Started to surface Prerequisites and updated Windows preparation wording. * Reworked uninstall guidance to prefer the CLI `nemoclaw uninstall` (local, version‑pinned) and document a hosted-script fallback and comparison. * Replaced a lengthy Spark install guide with an external playbook pointer. * **Reference** * Expanded architecture and commands docs to clarify deployment topology, credential flow, and uninstall behavior. * **Chores** * Updated docs generation/redirect tooling to emit published links and target platform docs appropriately. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…DIA#2445) ## Summary Reorganize the Get Started section, document the full runtime topology in the Architecture reference, and clarify how to uninstall NemoClaw. Prerequisites now live on their own page (with the tested-platform matrix included directly from the README), Windows pre-setup is renamed to `windows-preparation.md`, and DGX Spark readers are pointed to the NVIDIA Spark playbook rather than an in-repo tutorial. ## Changes **Get Started reorganization** - New `docs/get-started/prerequisites.md`. Extracts Hardware, Software, and the tested-platform matrix from Quickstart into its own page. The matrix is pulled in via Sphinx `{include}` from the README so there is a single source of truth. - `docs/get-started/windows-setup.md` → `docs/get-started/windows-preparation.md` (renamed to "Prepare Windows for NemoClaw"). Nested under Prerequisites in the toctree. - `docs/get-started/quickstart.md` no longer duplicates the Prerequisites section; it links to the new page instead. - `docs/index.md` Get Started toctree is now `Prerequisites` then `Quickstart`. - `docs/conf.py` redirects `get-started/windows-setup` → `windows-preparation.html` so the pre-reorg URL still resolves. **Architecture reference: Deployment Topology** - New `## Deployment Topology` section in `docs/reference/architecture.md` with a mermaid diagram showing the runtime substrate — host CLI → Docker daemon → OpenShell gateway container → embedded k3s cluster → sandbox pod → OpenClaw agent + plugin — plus the inference router's role on the path to external providers. - Per-layer role table (host CLI, Docker daemon, gateway container, k3s, sandbox pod, inference router). - Points DGX Spark readers to the [NVIDIA Spark playbook](https://build.nvidia.com/spark/nemoclaw) for the Spark-specific variant. **Uninstall documentation** - `docs/reference/commands.md` `nemoclaw uninstall` section corrects a drift bug (the CLI does *not* auto-fall-back to a remote script; it prints the versioned URL for manual review) and adds a comparison table between `nemoclaw uninstall` and the hosted `curl … | bash` form. - README and Quickstart Uninstall sections now lead with `nemoclaw uninstall` (version-pinned, no network fetch) and keep the `curl … | bash` form as a fallback for when the CLI is missing or broken. Both link to the comparison table. **Troubleshooting reference** - New `## DGX Spark` section in `docs/reference/troubleshooting.md` covering CoreDNS CrashLoop, `k3s` image-pull failure after a local build, GPU passthrough (not CI-tested on Spark), `pip install` system-packages errors, and the AI Workbench port 3000 conflict. - Section header points to the Spark playbook for end-to-end walkthroughs. - Windows cross-links retargeted to `../get-started/windows-preparation.md`. **Platform matrix source of truth** - `ci/platform-matrix.json` DGX Spark notes now link the Spark playbook. README matrix regenerated. - README Documentation table gains a Prerequisites row and updates the pointer below the matrix to point at Prerequisites instead of a now-removed hub. - `scripts/generate-platform-docs.py` drops `docs/get-started/quickstart.md` from its patch targets — the matrix moved to `prerequisites.md` and is pulled via `{include}` from README, so only README needs patching. - `.pre-commit-config.yaml` `platform-matrix-sync` hook updated to match (removed the quickstart path from both `git add` and `files`). **Agent skill generator (`scripts/docs-to-skills.py`)** Goal: skill files are self-contained. They never reference repository paths like `../../../docs/…`, and they never couple the skill tree to the repo layout. - Rewrite precedence in `rewrite_doc_paths`: 1. If the link target maps to a generated skill, emit ``text (use the `<skill>` skill)``. 2. Otherwise, if the target is a page inside `docs/`, emit an absolute `[text](<html_baseurl><page>.html#frag)`. 3. Otherwise (target outside `docs/`, or no base URL), strip the hyperlink and keep the link text. Self-containment wins over navigability in the fallback. - New `load_html_baseurl(docs_dir)` reads the `html_baseurl` assignment from Sphinx's `conf.py` via `ast` (no `exec` side effects), so the script is project-agnostic: any docs tree with that assignment works. A warning is printed (and the script continues) if the base URL is missing. - Include placeholders (`> *Content included from … — see the original doc for full text.*`) follow the same precedence: emit a published URL if available, else drop the breadcrumb since the content is already inlined. - Fragment anchors are now preserved across the rewrite (the pre-existing rewrite silently stripped them). - Scope the `index.md` exclusion to the top-level `docs/index.md` only. Subdirectory index pages (for example `docs/get-started/platform-setup/index.md`) are legitimate hub content and can now participate in skill grouping — which is what makes rule 1 above kick in for links to those hubs. - Because emitted content no longer depends on where it is written, the earlier `output_file` parameter plumbing and the multi-output-dir invariant guard are gone. `output_dirs` can be any mirrors (symlinks, bind mounts, independent trees) without caveat. **Repo-root stub** - `spark-install.md` rewritten as a short redirect paragraph pointing to the NVIDIA Spark playbook and the Quickstart. **Agent skills** - `.agents/skills/` regenerated from the new doc tree. `nemoclaw-user-get-started` now covers `prerequisites.md` + `windows-preparation.md`; `nemoclaw-user-reference` picks up the revised architecture, commands, and troubleshooting pages. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [x] Doc only (includes code sample changes) The only non-doc code changes are to the skill-generator script (`scripts/docs-to-skills.py`), the platform-matrix-generator target list (`scripts/generate-platform-docs.py`), and the pre-commit hook entry. Everything else is docs or generated docs. ## Verification - [x] `check-docs.sh --only-links` phase 1 (local links) passes. Phase 2 flags `prerequisites.html` as "unreachable" because it is a new page not yet published; it will resolve after this PR merges and the docs site rebuilds. - [ ] `npx prek run --all-files` passes - [ ] `npm test` passes - [ ] Tests added or updated for new or changed behavior - [x] No secrets, API keys, or credentials committed - [x] Docs updated for user-facing behavior changes - [ ] `make docs` builds without warnings (doc changes only) - [x] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [x] New doc pages include SPDX header and frontmatter (new pages only) Note on unchecked boxes: prek's CLI vitest suite surfaces pre-existing environmental failures on my machine (`nemoclaw/dist/blueprint/private-networks.js` missing and integration tests that try to reach a live gateway). No source file under `src/`, `nemoclaw/src/`, `bin/`, or `test/` is touched by this diff, so those failures are unrelated. `make docs` wasn't run locally. ## AI Disclosure - [x] AI-assisted — tool: Claude Code --- Signed-off-by: Miyoung Choi <miyoungc@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a dedicated Prerequisites page with minimum/recommended hardware, software versions, and platform notes. * Added DGX Spark troubleshooting and an end-to-end local Ollama walkthrough reference. * **Documentation** * Reorganized Get Started to surface Prerequisites and updated Windows preparation wording. * Reworked uninstall guidance to prefer the CLI `nemoclaw uninstall` (local, version‑pinned) and document a hosted-script fallback and comparison. * Replaced a lengthy Spark install guide with an external playbook pointer. * **Reference** * Expanded architecture and commands docs to clarify deployment topology, credential flow, and uninstall behavior. * **Chores** * Updated docs generation/redirect tooling to emit published links and target platform docs appropriately. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Reorganize the Get Started section, document the full runtime topology in the Architecture reference, and clarify how to uninstall NemoClaw. Prerequisites now live on their own page (with the tested-platform matrix included directly from the README), Windows pre-setup is renamed to
windows-preparation.md, and DGX Spark readers are pointed to the NVIDIA Spark playbook rather than an in-repo tutorial.Changes
Get Started reorganization
docs/get-started/prerequisites.md. Extracts Hardware, Software, and the tested-platform matrix from Quickstart into its own page. The matrix is pulled in via Sphinx{include}from the README so there is a single source of truth.docs/get-started/windows-setup.md→docs/get-started/windows-preparation.md(renamed to "Prepare Windows for NemoClaw"). Nested under Prerequisites in the toctree.docs/get-started/quickstart.mdno longer duplicates the Prerequisites section; it links to the new page instead.docs/index.mdGet Started toctree is nowPrerequisitesthenQuickstart.docs/conf.pyredirectsget-started/windows-setup→windows-preparation.htmlso the pre-reorg URL still resolves.Architecture reference: Deployment Topology
## Deployment Topologysection indocs/reference/architecture.mdwith a mermaid diagram showing the runtime substrate — host CLI → Docker daemon → OpenShell gateway container → embedded k3s cluster → sandbox pod → OpenClaw agent + plugin — plus the inference router's role on the path to external providers.Uninstall documentation
docs/reference/commands.mdnemoclaw uninstallsection corrects a drift bug (the CLI does not auto-fall-back to a remote script; it prints the versioned URL for manual review) and adds a comparison table betweennemoclaw uninstalland the hostedcurl … | bashform.nemoclaw uninstall(version-pinned, no network fetch) and keep thecurl … | bashform as a fallback for when the CLI is missing or broken. Both link to the comparison table.Troubleshooting reference
## DGX Sparksection indocs/reference/troubleshooting.mdcovering CoreDNS CrashLoop,k3simage-pull failure after a local build, GPU passthrough (not CI-tested on Spark),pip installsystem-packages errors, and the AI Workbench port 3000 conflict.../get-started/windows-preparation.md.Platform matrix source of truth
ci/platform-matrix.jsonDGX Spark notes now link the Spark playbook. README matrix regenerated.scripts/generate-platform-docs.pydropsdocs/get-started/quickstart.mdfrom its patch targets — the matrix moved toprerequisites.mdand is pulled via{include}from README, so only README needs patching..pre-commit-config.yamlplatform-matrix-synchook updated to match (removed the quickstart path from bothgit addandfiles).Agent skill generator (
scripts/docs-to-skills.py)Goal: skill files are self-contained. They never reference repository paths like
../../../docs/…, and they never couple the skill tree to the repo layout.rewrite_doc_paths:text (use the `<skill>` skill).docs/, emit an absolute[text](<html_baseurl><page>.html#frag).docs/, or no base URL), strip the hyperlink and keep the link text. Self-containment wins over navigability in the fallback.load_html_baseurl(docs_dir)reads thehtml_baseurlassignment from Sphinx'sconf.pyviaast(noexecside effects), so the script is project-agnostic: any docs tree with that assignment works. A warning is printed (and the script continues) if the base URL is missing.> *Content included from … — see the original doc for full text.*) follow the same precedence: emit a published URL if available, else drop the breadcrumb since the content is already inlined.index.mdexclusion to the top-leveldocs/index.mdonly. Subdirectory index pages (for exampledocs/get-started/platform-setup/index.md) are legitimate hub content and can now participate in skill grouping — which is what makes rule 1 above kick in for links to those hubs.output_fileparameter plumbing and the multi-output-dir invariant guard are gone.output_dirscan be any mirrors (symlinks, bind mounts, independent trees) without caveat.Repo-root stub
spark-install.mdrewritten as a short redirect paragraph pointing to the NVIDIA Spark playbook and the Quickstart.Agent skills
.agents/skills/regenerated from the new doc tree.nemoclaw-user-get-startednow coversprerequisites.md+windows-preparation.md;nemoclaw-user-referencepicks up the revised architecture, commands, and troubleshooting pages.Type of Change
The only non-doc code changes are to the skill-generator script (
scripts/docs-to-skills.py), the platform-matrix-generator target list (scripts/generate-platform-docs.py), and the pre-commit hook entry. Everything else is docs or generated docs.Verification
check-docs.sh --only-linksphase 1 (local links) passes. Phase 2 flagsprerequisites.htmlas "unreachable" because it is a new page not yet published; it will resolve after this PR merges and the docs site rebuilds.npx prek run --all-filespassesnpm testpassesmake docsbuilds without warnings (doc changes only)Note on unchecked boxes: prek's CLI vitest suite surfaces pre-existing environmental failures on my machine (
nemoclaw/dist/blueprint/private-networks.jsmissing and integration tests that try to reach a live gateway). No source file undersrc/,nemoclaw/src/,bin/, ortest/is touched by this diff, so those failures are unrelated.make docswasn't run locally.AI Disclosure
Signed-off-by: Miyoung Choi miyoungc@nvidia.com
Summary by CodeRabbit
New Features
Documentation
nemoclaw uninstall(local, version‑pinned) and document a hosted-script fallback and comparison.Reference
Chores