Add or update public Next.js pages so they stay visible to LLMs and AI agents via the shared markdown registry, page-local Markdown modules, Accept negotiation, and llms.txt.
Instal·la
npx skillscat add dgattey/dg/llm-visibility Instal·la des del registre de SkillsCat.
SKILL.md
LLM visibility
Use this skill when adding a public page, changing public routes, or auditing
agent/LLM readability of the site.
Goal
LLMs and coding agents should get clean Markdown for public content — not HTML
chrome.
Single registry + page-local content
Registry (paths, titles, sitemap, llms index):
packages/shared-core/routes/app.ts → markdownPages
Page Markdown lives next to the page:
apps/web/src/app/home/homepageMarkdown.tsapps/web/src/app/music/musicMarkdown.ts
Wire generators in apps/web/src/app/llm-markdown/pageMarkdown.ts.
Derived from the registry:
.mdURL convention (/→/index.md, elsepath.md)- Proxy Accept negotiation +
Link/Vary sitemap.xml,/llms.txt,/llms-full.txt- Internal rewrite target
/llm-markdown/...
Checklist for a new public page
- Registry — append to
markdownPages(export a route constant if useful). - Page Markdown — add
*Markdown.tsbeside that page’s UI/data. - Wire — add
pageMarkdownGenerators[path]inllm-markdown/pageMarkdown.ts. - HTML page —
markdownAlternates(path)in metadata. - Skip private surfaces —
/dev-console,/api/*, OAuth, webhooks.
Do not add per-page .md/route.ts files or edit the proxy matcher per page.
Anti-patterns
- Generic Markdown services for page-specific content
- Hand-authored Markdown that drifts from the React page
- User-Agent sniffing / cloaking
- Invented meta tags (
ai-content,llms)
Quick verification
curl -sI https://dylangattey.com/llms.txt
curl -s https://dylangattey.com/index.md | head
curl -sI -H 'Accept: text/markdown' https://dylangattey.com/
curl -sI -H 'Accept: application/pdf' https://dylangattey.com/ # expect 406