Repository navigation
feat(seo): split llms.txt and close agent discovery gaps - #639
Merged
Merged
Conversation
Picks up the 2026-10-13 patch releases of robots, sitemap, og-image, schema-org, link-checker, site-config, ai-ready and skew-protection, plus unhead 3.4.3. Each new version is excluded from the minimum release age, as the previous patches were.
Accept negotiation sends /skills/planning to /skills/planning.md, and the skills route policy answered that path with a JSON 404. Every track and board page lost its Markdown version.
The module's llms.txt listed every ai_ready_pages row: 1.48M characters and 11,872 links, most of them retired /skills URLs. The root index now lists the pages sitemap and links one nested file per sitemap, so it follows the search admission rules. It also sets the Content Signals for robots.txt.
An Author page rendered an empty 200 for any login, which agent checkers read as a soft 404. h3 routes HEAD only to a handler with no method, so the .get AI sitemap route answered HEAD with the 404 page.
Merged
5 of 6 tasks
AI Ready 3.1.0 writes the Content-Signal line into robots.txt. 3.0.4 dropped it because of the module order inside @nuxtjs/seo.
harlan-zw
force-pushed
the
fix/agentic-seo
branch
from
October 13, 2026 12:29
36ab33b to
17395a9
Compare
1 of 6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
❓ Type of change
📚 Description
The 2026-10-13 agent readiness audit found four gaps that agents and their checkers hit on skilld.dev.
ai_ready_pagesrow: 1,478,365 characters and 11,872 links. Most were retired/skills/<owner>/<repo>/<name>URLs that answer 301, 404 or 410. It also linked/llms-full.txt, which redirects back to/llms.txt. Nowserver/middleware/llms-txt.tsserves/llms.txtahead of the module's route. It lists the pages sitemap, the setup and API links, and one nested file per sitemap:/llms/skills.txtand/llms/demos.txt. It never reads the retired sitemap, so the files follow the same admission rules as search. Titles and descriptions come fromai_ready_pages. The AI sitemap link stays, so agents still find noindex pages./skills/planningto/skills/planning.md, and the skills route policy answered that path with a JSON 404. A.mdURL now passes whenever its page does./@<login>was a soft 404. Any login rendered an empty 200 page. The page now answers 404 when skilld.dev has no account and no Skills for the login. A collection needs an account, so every Author keeps a page. The newGET /api/users/:loginanswers whether an account exists./ai-sitemap.xmlanswered 404. h3 routes a HEAD only to a handler with no method. The route drops its.getsuffix and accepts GET and HEAD.The pull request also sets
aiReady.contentSignalto allow search, AI input and AI training. nuxt-ai-ready 3.1.0 writes it to robots.txt asContent-Signal: ai-train=yes, search=yes, ai-input=yes, which the local preview serves. The Nuxt SEO packages move to their latest releases: nuxt-ai-ready 3.1.0,@nuxtjs/sitemap9.1.0, and the 2026-10-13 patches of the rest. unhead moves to 3.4.3.contentNegotiationstaysfalse. The site's own handler varies onAccept, Sec-Fetch-Dest, Host. Workers Cache keys on the path, soHostkeeps www and apex apart. The module would vary onAcceptonly. The build prerenders no pages, so every page already negotiates in the Worker.