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 branch is 96%. Coverage data for the branch is not yet available. Show a code coverage summary of the most covered files.
TypeScript / code-coverage/cliThe overall coverage in the branch is 75%. Coverage data for the branch is not yet available. 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.
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