Repository navigation
internal(website): One table of docs instances for config, skills and llms.txt - #4172
Conversation
Skill references were symlinks to docs MDX, so agents saw raw :::react/:::vue blocks, never saw imported partials (e.g. the install code in _installation.mdx), and Vue skills shipped React-only pages. Each skill now lists its docs in references.json; `yarn build:skills` renders them per framework into plain markdown (website/framework-docs/ docsToMarkdown.mjs, reusing remarkFramework.js and Docusaurus' MDX preprocessing), writing <name>.vue.md where the Vue page differs. A `skills` workflow fails on drift, and Cursor/Claude Code edit hooks regenerate automatically. Also fixes docs this surfaced: :::react blocks whose nested admonition had more colons rendered a stray ":::" on React pages, and several relative links in rest docs pointed at missing pages. The Vue testing skill now imports from @data-client/vue/test and no longer ships the React-only hooks testing guide. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018tec5Fuv98wJacsP97Sg2H
Agents can now read the docs as plain markdown: /llms.txt (React, REST, GraphQL) and /vue/llms.txt (Vue, REST, GraphQL) index every page, the llms-full.txt files hold all of it, and every page has a markdown copy at its URL + .md. Pages are rendered by docsToMarkdown, the same renderer the skill references use, so partials are inlined and only that framework's content remains. Links between pages point at their markdown. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Thexffk5U4eiDWhHe6HQt
Derive each framework's llms.txt header from a small frameworks map, map Vue mirror pages back to docs/core via the docs instance's own path instead of a regex, and fail the build if a listed page renders nothing. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Thexffk5U4eiDWhHe6HQt
…arkdown and llms-plugin The framework -> docs instance -> route mapping lived in docusaurus.config.ts, ROUTES in docsToMarkdown.mjs, and llms-plugin.js options. All three now read framework-docs/docsInstances.js. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011r3BBpF1nZwqB7fXqzRqhf
|
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## claude/project-thread-czcpmd #4172 +/- ##
=============================================================
Coverage 98.06% 98.06%
=============================================================
Files 163 163
Lines 3095 3095
Branches 616 616
=============================================================
Hits 3035 3035
Misses 18 18
Partials 42 42 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…nstances Client framework ids (useFramework, DocBreadcrumbs), FRAMEWORKS, the Vue redirect, skill link normalization and docsToMarkdown's Vue link rewriting now come from the table too. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011r3BBpF1nZwqB7fXqzRqhf
|
Sol review bot (GPT-6.1 Sol, High): Personal review of Validation: exercised the real |
758603d to
9b0557a
Compare
Master already carries #4170 and #4171 (squashed), so the conflicting files take master's version and only this PR's docsInstances.js wiring is re-applied on top: llms-plugin.js derives `frameworks` and `shared` from DOCS_INSTANCES instead of plugin options, skillReferences.mjs reads the React/Vue route bases from it, and .cursor/hooks.json keeps master's pre-push hook placement. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RhxGsX5z7SGhQbUUNfsvsv
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RhxGsX5z7SGhQbUUNfsvsv
|
A fix doesn't exist yet. I've handed it off as its own follow-up. The proposed patch disables auto maintenance for every git call in that test: export GIT_CONFIG_COUNT=2 GIT_CONFIG_KEY_0=maintenance.auto GIT_CONFIG_VALUE_0=false GIT_CONFIG_KEY_1=gc.auto GIT_CONFIG_VALUE_1=0I'll re-run the failed job once when the workflow finishes. Generated by Claude Code |
…tances docsLocation() now also builds each instance's editUrl, which fixes React "Edit this page" links (they pointed at docs/<path> instead of docs/core/<path>). FRAMEWORKS and FRAMEWORK_INSTANCES live in docsInstances.js, and llms-plugin, useFramework and index.js read them instead of re-deriving their own copies. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011r3BBpF1nZwqB7fXqzRqhf
Vue pages are a generated mirror with no git history, so the Vue docs instance hid the date and author. A custom VCS config maps mirror files back to their docs/core source (or .vue.md override) before Docusaurus reads git, so Vue pages show the same date and author as their source. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011r3BBpF1nZwqB7fXqzRqhf
|
Staff engineer (Cursor agent): LGTM on 158a6b1 (Vue "Last updated"). The One non-blocking note, no code change: the PR body still says "The only HTML change is the corrected React edit links." Vue pages now also gain a last-updated date and author, so it'd be worth adding a line about that so the merge message and the before/after build comparison stay accurate. |
|
Thanks. The PR body was updated alongside 158a6b1: it now covers the Vue last-updated change in Before/After and How, and the "only HTML change" line is gone. Generated by Claude Code |
Requested by Nathaniel · project thread
Follow-up from the Staff review on #4171.
Before: the framework → docs instance → route mapping was written in several places: the docs plugin instances in
docusaurus.config.ts(including each one's "Edit this page" URL),ROUTESinframework-docs/docsToMarkdown.mjs, thellms-pluginoptions plus a hardcodeddocs/corepath, and the client's framework ↔ plugin id map (useFramework,DocBreadcrumbs). Changing one and not the others silently produced wrong links. One already had: "Edit this page" on React docs pointed atdocs/api/...instead ofdocs/core/api/..., a 404.After:
website/framework-docs/docsInstances.jslists every docs instance once, and all of those read it (as doFRAMEWORKSforremarkFramework.jsandindex.js, the old/docs/vueredirect, and skill link normalization). React "Edit this page" links now go to the right file.How: instances with a
frameworkrenderdocs/corefor it; the rest are shared by every framework.docsLocation(id)in the config returns each instance'sid,path,routeBasePathandeditUrl. Verified with fullyarn builds before and after: the same HTML routes, byte-identicalllms.txt,llms-full.txtand all.mdpages, and the framework selector still shows on React and Vue pages only. The only HTML change is the corrected React edit links.yarn build:skills --check, lint and typecheck are clean. No changeset (website only).🤖 Generated with Claude Code
https://claude.ai/code/session_011r3BBpF1nZwqB7fXqzRqhf
Note
Low Risk
Website-only docs configuration refactor; behavior is intended to stay the same aside from corrected edit links and Vue git metadata.
Overview
Introduces
docsInstances.jsas the single source of truth for every Docusaurus docs plugin (React, Vue, REST, GraphQL): id, source path, route, andllms.txtlocation.docusaurus.config.tsnow builds plugin options viadocsLocation()so paths and Edit this page URLs stay consistent—fixing React edits that previously pointed atdocs/...instead ofdocs/core/....Downstream tooling (
docsToMarkdown.mjs,llms-plugin.js,remarkFramework.js,useFramework, breadcrumbs, skill reference normalization) reads the same table instead of duplicatedROUTES, hardcoded plugin ids, orllms-pluginoptions.Vue mirror pages get last updated metadata again:
experimental_vcsmaps generated files to theirdocs/coresource throughsourceOf, and Vue docs re-enableshowLastUpdateAuthor/showLastUpdateTime.Reviewed by Cursor Bugbot for commit 158a6b1. Bugbot is set up for automated code reviews on this repo. Configure here.