Skip to content

[WIP] Prepare LLMs files#2169

Open
serg wants to merge 13 commits intokubermatic:mainfrom
serg:prepare-llm-tmpls
Open

[WIP] Prepare LLMs files#2169
serg wants to merge 13 commits intokubermatic:mainfrom
serg:prepare-llm-tmpls

Conversation

@serg
Copy link
Copy Markdown
Contributor

@serg serg commented Apr 29, 2026

/hold

Making the docs site AI agent-friendly

1. llms.txt improvements

The llms.txt index files had HTML entities scattered throughout (" instead of , > instead of >, etc.), making content hard to read for agents. Added a decode-entities template helper that cleans up all of these automatically.

Added /.well-known/llms.txt as an alternative discovery path (some agent frameworks check there), served as a transparent rewrite from /llms.txt.

Improved the homepage llms.txt to show a brief description of each product pulled from products.yaml, so agents immediately understand what each product is about. Only last version is included for the products.

llms.txt / llms-full.txt — follows the llmstxt.org standard. It’s a curated index for LLMs to discover what documentation exists. The homepage /llms.txt lists all products; section-level /llms.txt files list pages; /llms-full.txt files concatenate entire sections into one file for bulk ingestion. These are purpose-built for offline/batch use — an AI agent that wants to understand the whole KKP docs would fetch /llms-full.txt once and process it.

2. Markdown for Agents (per-page content negotiation)

Implemented the Cloudflare Markdown for Agents standard. Hugo now generates an index.md alongside every index.html — 4,700+ pages across all products. When an AI agent sends Accept: text/markdown in its request, a Netlify Edge Function intercepts it and returns the markdown version with the correct Content-Type: text/markdown and x-markdown-tokens headers, rather than HTML.

Pages marked as sitemapexclude or with empty content are skipped (the edge function falls through to the normal HTML response).

3. Discovery headers

Added Link response headers on the homepage pointing agents to /llms.txt, /sitemap.xml and /search.json — following RFC 8288, which is what isitagentready.com checks for.

4. Build fix

The Netlify build was failing because a {{< render_external_markdown >}} shortcode in the main branch used a placeholder URL (CHANGELOG-<RELEASE>.md) that was never substituted. Changed the error from fatal (errorf) to a warning (warnf) so the build continues instead of aborting.

Signed-off-by: serg <contact@sergfurtak.com>
@kubermatic-bot kubermatic-bot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. dco-signoff: yes Denotes that all commits in the pull request have the valid DCO signoff message. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Apr 29, 2026
@kubermatic-bot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign simontheleg for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

serg added 12 commits April 30, 2026 11:06
Signed-off-by: serg <contact@sergfurtak.com>
…t for md version of the page

Signed-off-by: serg <contact@sergfurtak.com>
…e CHANGELOG-<RELEASE>.md part

Signed-off-by: serg <contact@sergfurtak.com>
Signed-off-by: serg <contact@sergfurtak.com>
Signed-off-by: serg <contact@sergfurtak.com>
Signed-off-by: serg <contact@sergfurtak.com>
Signed-off-by: serg <contact@sergfurtak.com>
Signed-off-by: serg <contact@sergfurtak.com>
Signed-off-by: serg <contact@sergfurtak.com>
Signed-off-by: serg <contact@sergfurtak.com>
Signed-off-by: serg <contact@sergfurtak.com>
Signed-off-by: serg <contact@sergfurtak.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dco-signoff: yes Denotes that all commits in the pull request have the valid DCO signoff message. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants