Group release notes and tutorials properly in llms.txt - #1929
Group release notes and tutorials properly in llms.txt#1929jborlase-snowplow wants to merge 3 commits into
Conversation
Release notes and tutorials both fell through grouping logic that assumed a docs-shaped route tree, so each of the 96 release notes became its own section heading and all 115 tutorial steps sat in one flat list ordered by filesystem walk rather than step order. Release notes now collapse into a single section, newest first, with the date and components read back from source frontmatter. Those also appear in each per-page .md and in llms-full.txt, so a superseded release note can't read as current documentation. Tutorials use progressive disclosure: llms.txt lists one entry per tutorial rather than per step, linking to a new combined .md holding every step in order. Individual steps stay addressable at their own URLs. Sections drop from 161 to 66 and llms.txt from 323KB to 296KB, with all 1027 docs entries unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The combined tutorial files don't follow the documented "swap the trailing slash for .md" pattern, because tutorials have no page of their own on the site. Without this, there is no way to discover that they exist. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Wiz Scan Summary
To detect these findings earlier in the dev lifecycle, try the Wiz Code extension for VS Code, JetBrains, or Visual Studio. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
documentation | ba255c5 | Commit Preview URL Branch Preview URL |
Aug 28 2026, 12:57 PM |
|
Style review — scope was prose, style guide compliance, frontmatter, links, and MDX usage. The only prose in this PR is the new The new section is in good shape: sentence-case H3, preceded by prose, sits correctly under an existing H2, list introduced with a colon, no marketing language, present tense, active voice. Two small things. 1. "Tutorials have no page of their own on the site" is ambiguous (
There is a Suggested fix: 2. Optional: the release-note metadata change isn't documented The plugin now emits Checks that passed
|
Greptile SummaryThe PR reorganizes generated LLM documentation so release notes form one dated section and each tutorial is represented by a combined, correctly ordered Markdown document.
Confidence Score: 5/5The PR appears safe to merge, with no concrete current correctness or security failures identified. The current tutorial routes, metadata shapes, generated paths, dependency resolution, and release-note source layout satisfy the assumptions introduced by the changed generation pipeline.
|
| Filename | Overview |
|---|---|
| plugins/docusaurus-plugin-llms-txt/src/content-metadata.js | Adds source metadata loading, page classification, tutorial grouping, and deterministic ordering consistent with the repository’s current content shapes. |
| plugins/docusaurus-plugin-llms-txt/src/generate-index.js | Replaces generic grouping with dedicated documentation, tutorial, and release-note sections and generates valid links for both Markdown-enabled and route-only configurations. |
| plugins/docusaurus-plugin-llms-txt/src/write-pages.js | Generates one ordered Markdown document per tutorial while preserving individual page output and enriching release-note headers. |
| plugins/docusaurus-plugin-llms-txt/src/index.js | Integrates metadata enrichment, sorting, and combined tutorial generation into the existing post-build pipeline. |
| docs/llms-support/index.md | Documents the intentionally distinct URL convention used by combined tutorial Markdown files. |
| package.json | Makes the already resolved gray-matter package a direct dependency of the build implementation. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
HTML[Built documentation HTML] --> Convert[Convert pages to Markdown]
Sources[Source frontmatter and tutorial meta.json] --> Metadata[Attach source metadata]
Convert --> Metadata
Metadata --> Sort[Sort tutorial steps and release notes]
Sort --> Pages[Write per-page Markdown]
Sort --> Tutorials[Write combined tutorial Markdown]
Sort --> Index[Generate grouped llms.txt]
Sort --> Full[Generate llms-full.txt]
Tutorials --> Index
Reviews (1): Last reviewed commit: "Document combined tutorial Markdown file..." | Re-trigger Greptile
The site serves .txt and .md with no charset in the Content-Type, so clients that fall back to Latin-1 render every multi-byte character as mojibake. The middot and em-dash separators turned into "·" and "—" on all 116 tutorial and release-note lines. Semicolons and a plain space read the same and are immune. This does not fix the underlying charset problem, which still affects content-derived characters in llms.txt and, more seriously, 702 of the per-page .md files. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>




What changed?
Release notes collapse from 96 individual
##headings into one dated section, newest first:The date and components also go into each per-page
.mdand intollms-full.txt.Tutorials use progressive disclosure —
llms.txtlists one entry per tutorial instead of all 115 steps:Each links to a new combined
tutorials/<slug>.mdcontaining every step in order (~27KB average). Individual step.mdfiles are unchanged and still addressable.A new
content-metadata.jsmodule reads the metadata Docusaurus doesn't carry into built HTML —dateandcomponentsfrom release-note frontmatter,positionfrom tutorial steps, and eachtutorials/*/meta.json.gray-matteris now declared inpackage.json; it was already in the tree via Docusaurus.llms.txtWhy?
Both content types fell through grouping logic that assumes a
/docs/<section>/<subsection>/route shape. Release notes live one per directory, so each became its own section heading with a mangled title ("Snowplow dbt unified v0 5 1 released") and no date — a model had no way to tell a 2023 note from last week's. Tutorials were the one special case in the grouping code, so all 115 steps landed in a single flat list ordered by filesystem walk:abandoned-browse-ccdpreadbraze-campaign, conclusion, data-modeling, introduction, …, with the introduction fourth.Reviewer guidance
llms.txt./for.md" convention, since/tutorials/<slug>/has no route on the site. The second commit documents this on the Working with AI page.contentDirsentry would need the same treatment.llms-full.txt.AI reviews
Claude will automatically review this PR against the docs style guide.
If you have questions or want it to look again at something specific, tag
@claudein a comment.