From overgrow
Generate or audit /llms.txt at site root to make sites legible to LLMs and AI answer engines at inference time, per llms.txt proposal. Outputs valid llms.txt plus optional .md companion pages.
npx claudepluginhub zhizdev/overgrow --plugin overgrowThis skill is limited to using the following tools:
Produces a properly-formatted `/llms.txt` at the project's static root — a curated, LLM-legible map of the site that AI assistants pull in at inference time to answer questions about the product, docs, or content. Complements `sitemap.xml` (crawler index) and `robots.txt` (access rules); does not replace them.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Processes PDFs: extracts text/tables/images, merges/splits/rotates pages, adds watermarks, creates/fills forms, encrypts/decrypts, OCRs scans. Activates on PDF mentions or output requests.
Share bugs, ideas, or general feedback.
Produces a properly-formatted /llms.txt at the project's static root — a curated, LLM-legible map of the site that AI assistants pull in at inference time to answer questions about the product, docs, or content. Complements sitemap.xml (crawler index) and robots.txt (access rules); does not replace them.
Read knowledge/llms-txt.md from the plugin root before doing anything. That file is the authoritative, rule-by-rule distilled spec. Follow it exactly — format order, link list shape, section taxonomy, companion .md page conventions, quality guidelines, audit checklist. This SKILL.md is the entry-point summary; knowledge/llms-txt.md is the source of truth.
Also read:
knowledge/geo.md for AI-answer-engine behavior and why entity clarity matters in the summary block.knowledge/sitemap.md for the static-root conventions this file must share with sitemap.xml..overgrow/inventory.md. If missing, run init first — the inventory is how this skill decides which pages to surface.$ARGUMENTS:
audit → audit an existing /llms.txt (and companion .md pages if present).build → generate a new one.https://example.com → use as the canonical origin.llms.txt already exists in the repo, default to audit; otherwise default to build. If the project's intent is unclear, STOP and call the AskUserQuestion tool to clarify.public/llms.txt, static/llms.txt, app/llms.txt, framework-generated routes (app/llms.txt/route.ts). If the project serves from a CMS, ask for the deployed URL.knowledge/llms-txt.md § "Audit checklist":
## Optional.- [Title](url): description (description optional but flag missing ones).Optional H2 is last if present..md pages exist (routes like /about.md, /pricing.md, /docs/intro.md), spot-check 5 random ones:
.overgrow/llmstxt-audit.md with severity-tagged findings and specific fixes, matching the format of .overgrow/audit.md..overgrow/inventory.md, extract:
knowledge/llms-txt.md taxonomy below).knowledge/llms-txt.md § "Common H2 sections" — pick only the sections that match what the site actually has. Typical mapping from the inventory:
homepage, pricing, product → ## Core platformfeature → ## Features (or fold into Core platform if only 1–3)solution → ## Solutions or ## Use casesdocs → ## Docsresource-hub + top blog-post entries → ## Blog — selected postscase-study → ## Case studies (or fold into Blog)about, legal → do not include unless specifically relevant; about may go under ## Optionalcomparison → include under the relevant product section or a dedicated ## Comparisonsutility → exclude## Optional or is omitted.llms.txt wants. Use neutral, descriptive phrasing..md companion URLs when they exist in the project (check the inventory for pageName.md variants or a framework convention that auto-generates them, like nbdev / Docusaurus-plugin-llms / vitepress-plugin-llms).## Instructions for AI assistants section if the product has:
## Localization section listing one canonical page per locale.## Optional.public/llms.txt (Next.js, Vite, Gatsby, Astro static, Create React App)static/llms.txt (SvelteKit, Hugo, Docusaurus)app/llms.txt/route.ts (Next.js app router, dynamic)
Detect which convention the project uses from the framework hint in the inventory. If existing file, propose llms.txt.proposed and ask before overwriting..md page modeIf the user explicitly asks to generate .md companion pages (argument: build --with-md or a follow-up ask):
llms.txt link list, compute its .md sibling URL (/about → /about.md, / → /index.html.md)..md file next to its source page or at the route the framework expects.llms.txt — companion page generation is opt-in and targeted.llms.txtFollow this exact structure (per knowledge/llms-txt.md):
# <Product name>
> <One-to-three-sentence neutral summary. What it is, who uses it, primary capabilities.>
<Optional short paragraph or bullet list of framing notes — caveats, what's out of scope, how the linked files are organized. No headings.>
## <Section name>
- [Page title](<url or .md url>): <one-line description>
- [Page title](<url>): <one-line description>
## <Another section>
- ...
## Instructions for AI assistants
- <factual positioning bullet>
- <disambiguation bullet>
- <entry-point bullet>
## Optional
- [Secondary page](<url>): <description>
.overgrow/inventory.md or be an explicit external reference the user supplied. Never invent routes.Optional section is always last if present.industry-leading, revolutionary, world-class, cutting-edge). If the inventory's product summary contains them, strip them when lifting into the blockquote.## Optional or omit.llms.txt analogous to Search Console.robots.txt or sitemap.xml — use /overgrow:sitemap for those..md pages by default. Ask explicitly with build --with-md or a follow-up request.