nvidia/nemoclaw-maintainer-refactor-docs
Plan and execute maintainer-owned refactors of oversized NemoClaw Fern documentation sections into focused one-topic pages with concise prose, journey-based nested navigation, non-clickable group nodes, canonical troubleshooting and reference ownership, deduplicated content, variant-aware route-style links, and complete redirects. Use when a docs page or section has grown too large, when reorganizing documentation information architecture or a table of contents, when splitting pages, shortening dense paragraph blocks, moving content across sections, consolidating duplicate guidance, or migrating URLs in docs/index.yml and fern/docs.yml. Trigger keywords - refactor docs, reorganize docs, split docs, nested TOC, documentation IA, one topic per page, big paragraphs, move troubleshooting, deduplicate docs, docs too long.
npx skills add https://github.com/NVIDIA/NemoClaw --skill nemoclaw-maintainer-refactor-docs
<!--
SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
-->
Refactor a bounded documentation section without changing product meaning.
Improve findability while preserving every useful fact, one canonical owner per topic, and every supported published route.
contract before planning or editing.
docs/ as the user-facing source of truth.docs/index.yml, their redirects in fern/docs.yml, and their inbound links before editing.Read the complete section rather than sampling the longest page.
Use rg for repository-wide discovery. Useful starting points include:
rg -n '^(##|###) ' docs/<section>
rg -n '<section-slug>|<page-slug>|<page-title>' docs fern README.md test scripts
Create an ownership inventory before proposing the new TOC:
| Current page or section | User task | Variants | Canonical owner | Action |
|---|---|---|---|---|
| Existing topic | What the reader is trying to do | Applicable guides | Destination page | Keep, split, move, merge, or delete |
Every old H2 and H3 must appear in this inventory.
Default to this sequence when it fits the subject.
Omit a phase when it has no substantial reader task; never invent a thin page only to complete the sequence.
Add an About or Understand page only when it explains a distinct mental model that readers need before choosing or operating.
Do not create an overview page merely to give a section a clickable first item.
Apply these navigation rules:
section, slug, and contents, plus supported display settings such as collapsed.root section -> task group -> page. Avoid deeper nesting unless the material demonstrates a real third-level distinction.Assign each fact, procedure, and failure mode to one page before moving content.
docs/reference/troubleshooting.mdx when it remains a focused owner. If the canonical page is itself oversized, create a non-clickable Troubleshooting group with focused child pages instead of growing another monolith.Before moving troubleshooting or reference content, search the destination for the same symptom, heading, commands, and distinctive phrases.
Merge with existing guidance when it is already documented.
Do not leave a shorter duplicate behind.
Preserve every unique fact from the old pages.
When two pages disagree, verify the behavior from authoritative sources instead of choosing whichever wording is newer.
Create a route table before deleting or renaming files:
| Old published route | New published route | Variants | Redirect required | Content owner |
|---|---|---|---|---|
| Legacy URL | Final page URL | Applicable guides | Yes or no | Source MDX page |
Create a separate anchor migration table when one old page will split into several destinations:
| Old route and anchor | New route and anchor | Inbound references | Action |
|---|---|---|---|
| Legacy page fragment | Final topic fragment | Docs, releases, README, tests, or source | Update inbound links and record any unavoidable fragment loss |
Apply these route rules:
slug hierarchy in docs/index.yml, not from source-file directories.latest and non-latest, variant routes, and pre-variant flat routes when they existed..html and index.html legacy forms when repository or external-facing references show that they were published or linked.Shared source pages can appear in navigation through _build/agent-variants/*.generated.mdx paths.
Those generated files are ignored build output. Edit the source page and navigation mapping, not the generated file.
docs/index.yml for every supported guide variant.fern/docs.yml.Follow the documentation style guide and these refactor-specific rules:
table fragments from the prose sentence rules.
$$nemoclaw for shared host CLI examples.<AgentOnly> only when behavior or guidance differs by agent, not only to change a binary name.<AgentOnly> block appears inside or next to a list.After the structural refactor is complete, run a separate edit across every changed source page and canonical destination page.
Treat a prose block as a review candidate when it has four or more sentences, about 70 or more words, about 400 or more characters, or more than one distinct purpose.
Long single sentences and paragraphs joined across conditional blocks still require review even when they stay below the sentence or word thresholds.
Regenerate the agent variants after this edit.
Inspect the generated OpenClaw, Hermes, and Deep Agents pages for dense blocks that do not exist in the source.
When removing an <AgentOnly> wrapper joins variant-specific and shared prose, add source paragraph boundaries around the conditional block and regenerate.
Repeat until both source and generated pages have readable paragraph blocks.
Run the existing deterministic checks rather than inventing another route model:
npm run docs:sync-agent-variants
npm run docs
npx vitest run test/check-docs-published-routes.test.ts test/check-docs-links.test.ts
git diff --check
Add or extend focused route tests when the refactored section is not covered by the current published-route checker.
Test observable published routes and redirects rather than source-file-relative assumptions.
Complete these audits after the build:
AGENTS.md files, tests, and scripts for statements that name the former docs owner.Treat automated link feedback as a hypothesis.
Fern links resolve from published slug routes, so a valid link may not match a source-file-relative path.
Verify link comments against docs/index.yml, fern/docs.yml, generated variant mappings, and the deterministic route checks before editing.
Missing anchors can still be real even when the page route exists.
Follow the shared independent documentation-writer review contract.
In addition to its required inputs, give the reviewer the old-to-new ownership map.
Ask it to check for content loss, duplicate ownership, variant drift, bad redirects, oversized
paragraph blocks, generated paragraph joins, and style regressions without telling it the expected
verdict.
Apply valid findings and rerun affected checks.
Do not call the refactor complete until all of these conditions hold:
Summarize the refactor with:
Use the Inference section as the living example of this method when a concrete pattern is needed.
Its structure separates About Inference Routing, choosing a provider and model, hosted/local/custom setup paths, management, validation, and canonical Reference troubleshooting.
Copy the reasoning and consistency rules, not the inference-specific page names.
Take nvidia/nemoclaw-maintainer-refactor-docs from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npx.
Without those the skill loads but fails at the first command.