docs(commands): route Install OpenClaw Plugins link to published section (#5445) - #6385
Conversation
The OpenClaw commands reference linked to ../deployment/install-openclaw-plugins, mirroring the target's source directory. Fern publishes that page under the manage-sandboxes nav section (docs/index.yml), so the link 404s on the live site even though the source file exists on disk. PR #6290 reverted a previously correct link because fern check and source-path checks both pass on it. Restore the published-route link and add a route-level regression guard: scripts/check-docs-published-routes.ts derives the published route map from docs/index.yml and resolves the commands page's relative links route-relative (as Fern serves them), failing if any resolves to no published route. It is wired into 'npm run docs:strict' and covered by a Vitest regression that fails on upstream/main and passes after the fix. Verified against Fern's own 'fern docs broken-links': the commands-page error is gone (26 -> 24), none added. Fixes #5445 Signed-off-by: Yimo Jiang <yimoj@nvidia.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 (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughUpdates one docs link, adds a published-route validation script, wires it into npm checks, and adds regression tests covering route resolution and markdown link extraction. ChangesDocs Link Fix and Route Validation Tooling
Sequence Diagram(s)sequenceDiagram
participant scripts/check-docs-published-routes.ts
participant docs/index.yml
participant docs/reference/commands.mdx
participant package.json
scripts/check-docs-published-routes.ts->>docs/index.yml: buildPublishedRouteIndex()
scripts/check-docs-published-routes.ts->>docs/reference/commands.mdx: findBrokenPublishedRoutes()
package.json->>scripts/check-docs-published-routes.ts: npm run docs:check-routes
Estimated code review effort: 3 (Moderate) | ~25 minutes Related issues: Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning Review ran into problems🔥 ProblemsGit: Failed to clone repository. Please run the Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in the Show a code coverage summary of the most covered files.
TypeScript / code-coverage/cliThe overall coverage in the Show a code coverage summary of the most covered files.
Updated |
|
🌿 Preview your docs: https://nvidia-preview-pr-6385.docs.buildwithfern.com/nemoclaw |
E2E Advisor RecommendationRequired E2E: None Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
|
E2E Target RecommendationRequired E2E targets: None Full E2E target advisor summaryE2E Target AdvisorBase: Required E2E targets
Optional E2E targets
Relevant changed files
|
PR Review Advisor — No blocking findingsMerge posture: No blocking advisor findings This is an automated, non-binding review; it still expects maintainers and agents to respond to each required or warning item. Treat suggestions as current-PR improvements when they touch changed code; defer only with maintainer rationale or a linked follow-up. A human maintainer must make the final merge decision. |
PR Review Advisor (Nemotron Ultra) — InformationalMerge posture: Informational / low confidence Action checklist
Findings index
Review findings by urgency: 0 required fixes, 1 item to resolve/justify, 0 in-scope improvements
|
The route regression read docs/reference/commands.mdx directly in the test and asserted on the extracted link, which the source-shape budget gate (scripts/find-source-shape-tests.ts) flags as source-text coupling (budget 0). Move the docs read into an exported resolvePageLinkByText() in the checker and assert on its returned resolved route + published flag instead. Behavior is unchanged: the test still fails on upstream/main (link resolves to the deployment route) and passes after the fix. Signed-off-by: Yimo Jiang <yimoj@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
cv
left a comment
There was a problem hiding this comment.
Substantive review passed. All 43 checks are green, the published-route behavior and regression guard are correct, and the exact-head primary GPT-5.5 advisor returned merge_as_is with no findings. The secondary Nemotron result is info_only because that lane timed out and contains no code finding; its earlier Hermes warning is inapplicable because the OpenClaw-only AgentOnly block is stripped from the generated Hermes page. No actionable CodeRabbit item remains.
…ion (NVIDIA#5445) (NVIDIA#6385) ## Summary The OpenClaw commands reference page linked to the Install OpenClaw Plugins page using its **source directory** (`../deployment/install-openclaw-plugins`), but Fern publishes that page under the **`manage-sandboxes`** nav section. The link therefore 404s on the live site even though the source file exists on disk. This restores the published-route link and adds a route-level regression guard so the drift cannot recur. ## Related Issue Fixes NVIDIA#5445 ## Changes - `docs/reference/commands.mdx`: link `Install OpenClaw Plugins` via its published nav section (`../manage-sandboxes/install-openclaw-plugins`) instead of its source directory (`../deployment/install-openclaw-plugins`). - `scripts/check-docs-published-routes.ts`: new checker that derives the published route map from `docs/index.yml` (variant + section slugs) and resolves the commands page's relative links **route-relative, the way Fern serves them**, failing if any resolves to a route that is not published. Scoped to the commands reference page, which has regressed repeatedly (NVIDIA#5445, NVIDIA#6290, NVIDIA#5465, NVIDIA#5460). - `package.json`: add `docs:check-routes` and wire it into `npm run docs:strict`, so a source-path-valid but published-route-broken link fails docs validation. - `test/repro-5445-docs-published-route.test.ts`: Vitest regression that derives the route from `docs/index.yml`, asserts the commands link resolves to `/user-guide/openclaw/manage-sandboxes/install-openclaw-plugins` and **not** `/user-guide/openclaw/deployment/install-openclaw-plugins`, plus resolver/extractor robustness cases. ## Root cause PR NVIDIA#6290, tasked with fixing this link, reasoned from the source file path (`docs/deployment/install-openclaw-plugins.mdx`) and "corrected" a previously-working `manage-sandboxes` link back to `deployment`. `fern check` and source-path checks both pass on the broken form because the source file exists — the missing validation was published-route resolution. ## Type of Change - [x] Code change with doc updates ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: the changed page is the doc; the link target and its content are unchanged, only the route it points to is corrected. ## Verification - [x] PR description includes the DCO sign-off declaration and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run check:diff` passed when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set — command/result: `npx vitest run test/repro-5445-docs-published-route.test.ts` (8 passed; fails on upstream/main pre-fix, passes post-fix); `npm run docs:strict` (0 errors). - [x] No secrets, API keys, or credentials committed - [x] `npm run docs` builds without warnings (doc changes only) ### Route-level reporter-workflow evidence Ground truth from Fern's own link resolver (`fern docs broken-links`), the same resolution the reader navigates: - **Before (upstream/main):** 26 broken links, including the commands page → `/user-guide/openclaw/deployment/install-openclaw-plugins` (404). - **After (this branch):** 24 broken links — the commands-page install-plugins error is gone, and **none added**. The remaining 24 are pre-existing, unrelated broken links (nested-page relative links, hermes-variant structural gaps) outside this issue's scope. `fern check` alone does not catch this (it passed in NVIDIA#6290); the new `docs:check-routes` gate does. --- Signed-off-by: Yimo Jiang <yimoj@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Corrected a documentation link to point to the published “Install OpenClaw Plugins” page under the correct route. * Improved doc link validation to ensure links resolve to published routes (including correct route selection). * **Tests** * Added/expanded regression coverage for the plugin installation link, published-route mapping, and robust markdown link resolution. * **Chores** * Enhanced the strict documentation checks to also verify published-route correctness and route mappings. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Yimo Jiang <yimoj@nvidia.com> Signed-off-by: Carlos Villela <cvillela@nvidia.com> Co-authored-by: Carlos Villela <cvillela@nvidia.com>
Summary
The OpenClaw commands reference page linked to the Install OpenClaw Plugins page using its source directory (
../deployment/install-openclaw-plugins), but Fern publishes that page under themanage-sandboxesnav section. The link therefore 404s on the live site even though the source file exists on disk. This restores the published-route link and adds a route-level regression guard so the drift cannot recur.Related Issue
Fixes #5445
Changes
docs/reference/commands.mdx: linkInstall OpenClaw Pluginsvia its published nav section (../manage-sandboxes/install-openclaw-plugins) instead of its source directory (../deployment/install-openclaw-plugins).scripts/check-docs-published-routes.ts: new checker that derives the published route map fromdocs/index.yml(variant + section slugs) and resolves the commands page's relative links route-relative, the way Fern serves them, failing if any resolves to a route that is not published. Scoped to the commands reference page, which has regressed repeatedly ([All Platforms][Docs] commands.mdx has broken internal link and hardcoded OpenClaw version strings #5445, docs(commands): fix broken plugin link and drop hardcoded agent versions #6290, docs: fix broken link and hardcoded version strings in commands.mdx #5465, docs: fix stale links and skill listing #5460).package.json: adddocs:check-routesand wire it intonpm run docs:strict, so a source-path-valid but published-route-broken link fails docs validation.test/repro-5445-docs-published-route.test.ts: Vitest regression that derives the route fromdocs/index.yml, asserts the commands link resolves to/user-guide/openclaw/manage-sandboxes/install-openclaw-pluginsand not/user-guide/openclaw/deployment/install-openclaw-plugins, plus resolver/extractor robustness cases.Root cause
PR #6290, tasked with fixing this link, reasoned from the source file path (
docs/deployment/install-openclaw-plugins.mdx) and "corrected" a previously-workingmanage-sandboxeslink back todeployment.fern checkand source-path checks both pass on the broken form because the source file exists — the missing validation was published-route resolution.Type of Change
Quality Gates
Verification
Verifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailablenpx vitest run test/repro-5445-docs-published-route.test.ts(8 passed; fails on upstream/main pre-fix, passes post-fix);npm run docs:strict(0 errors).npm run docsbuilds without warnings (doc changes only)Route-level reporter-workflow evidence
Ground truth from Fern's own link resolver (
fern docs broken-links), the same resolution the reader navigates:/user-guide/openclaw/deployment/install-openclaw-plugins(404).fern checkalone does not catch this (it passed in #6290); the newdocs:check-routesgate does.Signed-off-by: Yimo Jiang yimoj@nvidia.com
Summary by CodeRabbit
Bug Fixes
Tests
Chores