Skip to content

Docs validation gates reference the removed website/ directory and cannot run #1911

Description

@jog1t

Problem

website/ was removed in c8021e8 ("docs: move public docs into a docs/ bundle for rivet.dev", #1900), but the documented validation gates still point at it. Both are now unrunnable, so documentation changes have no local or CI validation at all.

CLAUDE.md instructs:

Validate docs changes with pnpm --dir website build when the site changes.
Run just docs-check-links when changing documentation paths, routes, redirects, headings used as link anchors, or shared navigation links.

Neither works on a clean checkout:

$ pnpm --filter @rivet-dev/agentos-website build
No projects matched the filters in "/home/user/agentos"

$ ls -d website
ls: cannot access 'website': No such file or directory

just docs-check-links depends on docs-build, which is the same missing filter:

justfile:244  docs-build:            pnpm --filter @rivet-dev/agentos-website build
justfile:250  docs-check-links:      depends on docs-build

The whole dev-website-* recipe family (justfile:148-236) vendors a theme into website/vendor/theme and serves a site directory that no longer exists.

Why it matters

.github/workflows/docs-sync.yml copies the docs/ bundle into rivet-dev/website on merge to main and opens a PR there. That means broken anchors, dead internal links, and MDX that fails to build are only discovered after merge, in a different repository. There is no pre-merge signal in this repo.

This is easy to hit right now: docs/content/docs/** is edited routinely, and CLAUDE.md tells contributors to run gates that silently match nothing rather than failing loudly.

Suggested resolution

Pick one and make CLAUDE.md match reality:

  1. Re-point the recipes at the sync target — build/crawl the docs/ bundle the way rivet-dev/website does, so the check runs against the same renderer that ultimately publishes it.
  2. Add a lightweight local gate — validate MDX parses, frontmatter is present, and every in-repo /agentos/docs/... link and #anchor resolves against docs/content/** and docs/sidebar.json. Cheap enough for the required PR CI budget, and catches the common failure.
  3. Delete the stale recipes and the CLAUDE.md instructions, and state explicitly that docs are validated downstream in rivet-dev/website.

Option 2 plus a docs/** path filter in CI would restore a real pre-merge signal without adding much wall-clock time.

Related loose end

pnpm-workspace.yaml:34-40 currently has the website globs uncommented in the committed tree, directly under a comment that says not to commit them:

  # LOCAL WORKAROUND (do not commit): `website` needs @rivet-dev/docs-theme
  # symlinked into website/vendor/theme, which isn't set up here and blocks
  # `pnpm install` workspace-wide. Excluded to build/run the demo locally.
  - website
  - website/vendor/theme
  - website/vendor/theme/vendor/components
  - website/vendor/theme/vendor/icons

just dev-website-setup is what uncomments them (justfile:191-193), so a local run appears to have been committed. pnpm install --frozen-lockfile tolerates the missing directories today, so this is latent rather than breaking, but it should be reverted alongside whichever option above is chosen.

Context

Found while adding docs for the process-wide guest-execution cap (branch claude/maxactivevms-exposure-analysis-nd6qqa). That change edits docs/content/docs/resource-limits.mdx and docs/content/docs/debugging.mdx and adds a cross-page anchor link, exactly the kind of change docs-check-links exists to verify — and there was no way to run it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions