agentleFS
akii-technologies-ltdakii-technologies-ltd/akii-seo-ai-search-optimizer/skills/llms-txt/SKILL.md

llms-txt

Skill78 starsChanged 5 months agoMITView on GitHub

Generate and maintain llms.txt and llms-full.txt — the emerging standard telling LLM-powered crawlers what content matters most on your site. Use when the user asks "llms.txt", "llms-full.txt", "LLM-friendly file", "tell AI crawlers about my site", "AI-readable manifest", "site summary for LLMs", "llms file", "generative AI sitemap", or wants their site optimized for AI crawler ingestion.

We split this skill into the rules it gives an agent

1 rule. 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 11 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If the user's target includes ChatGPT, Claude, Perplexity, or other non-Google AI surfaces, this file is genuinely useful and worth …

    line 15

“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

llms.txt Generator

You are an llms.txt specialist powered by Akii. Emit a clean, hierarchical /llms.txt (and optional /llms-full.txt) for LLM crawlers (Perplexity, Anthropic, OpenAI, others) to ingest your most important content efficiently.

Important scoping note

Google explicitly states it does NOT use llms.txt in its AI Optimization Guide. Generating this file does NOT improve Google AI Overviews or Google AI Mode performance. Google's guide lists llms.txt under "what you don't need to do" alongside other special markup that AI Mode does not consume.

This file is for the non-Google AI crawlers that have signaled support for or interest in the emerging llms.txt proposal — Anthropic, Perplexity, Cohere, and others. If the user's primary AI search target is Google AI Overviews specifically, tell them this file is optional and won't move that needle; the right work for Google AI surfaces is the foundational SEO covered by seo-audit (run with --mode=full or --mode=technical) + optimize-page (Layer 3 Half A).

If the user's target includes ChatGPT, Claude, Perplexity, or other non-Google AI surfaces, this file is genuinely useful and worth generating.

Spec

llms.txt follows the proposal:

# <Site name>

> <one-sentence description>

## <Section name>
- [<Page title>](<URL>): <short reason this matters>

llms-full.txt = same plus inlined Markdown of each linked page (heavy file, possibly MB).

Steps

  1. Resolve target — repo root (inventory HTML / MDX / MD) or sitemap URL.
  2. Resolve dynamic [slug] routes via sitemap.xml. If the inventory step finds dynamic route patterns (/blog/[slug], /case-studies/[slug], etc.), fetch <target>/sitemap.xml (or recursively follow sitemap index entries) and expand the [slug] placeholders into concrete URLs. If sitemap.xml is unavailable AND no MCP can enumerate the slugs (Supabase / BigQuery / similar data MCP), leave the [slug] patterns as a Skipped — dynamic routes row and tell the user how to resolve (provide sitemap URL or connect a data MCP).
  3. Verify noindex declarations. Either fetch <target>/robots.txt and parse Disallow: lines, or HEAD each candidate URL and check the X-Robots-Tag response header / <meta name="robots"> tag where feasible. Skip any URL whose robots policy excludes search-engine indexing — those should not surface in llms.txt either.
  4. Cluster pages into 3–7 top-level sections (Docs, Blog, API, Guides, Case Studies, About).
  5. For each page, generate one-line "why this matters" summary AND tag the line with description provenance (see "Description provenance" below).
  6. Prioritize by traffic (if Ahrefs/GSC MCP connected) or by structural importance.
  7. Emit two artifacts: llms.txt (slim) + llms-full.txt (full inlined for offline ingestion).
  8. Offer to write to site root.

Description provenance (mandatory tagging)

llms.txt is consumed by AI crawlers (Perplexity, Anthropic, Cohere, etc.) and the descriptions get cached as source-of-truth for those engines' future answers about the brand. Inaccurate one-liners compound into wrong AI answers downstream. Tag every description so the user can audit which lines are grounded vs inferred:

TagMeaningWhen to use
[scan]The page was actually fetched (WebFetch or Read on the source MDX/MD) and the description summarizes real on-page contentDefault for any page accessible to the skill
[inferred-from-slug]The page wasn't fetched; description is the model's best guess from URL slug + general knowledge of the brandOnly when the page is structurally important to include but unfetchable in this run
[user-supplied]Description came from the user (frontmatter, sitemap <description>, or explicit input)When source provides it

Default expectation: every line is [scan]. [inferred-from-slug] is an escape hatch for unreachable pages, NOT a shortcut to skip fetching. If more than 30% of descriptions are [inferred-from-slug], surface a warning at the top of the report: "WebFetch budget exceeded — N of M descriptions are slug-inferred. Re-run with the --full flag to fetch each, or live with the inference."

Output

# Generated llms.txt

> <site description, 1 sentence>

Generation context:
- Pages inventoried: <integer> (precise count)
- Pages included in llms.txt: <integer> (precise count)
- Description provenance: <N> [scan] · <M> [inferred-from-slug] · <K> [user-supplied]
- Sitemap.xml: <fetched | unavailable — dynamic [slug] routes left unresolved>
- robots.txt: <fetched | unavailable — noindex verification skipped, see caveat>

## Documentation
- [Quickstart](https://example.com/docs/quickstart): 5-minute setup walkthrough [scan]
- [API reference](https://example.com/docs/api): Full endpoint catalog with auth + rate limits [scan]

## Blog
- [GEO study results](https://example.com/blog/geo-study): Our findings applying Princeton GEO to 100 sites [scan]

## About
- [About us](https://example.com/about): Mission and team [inferred-from-slug]
...

Rules

  • Curate, don't dump — llms.txt is opinionated.
  • Skip noindex pages, login walls, ephemeral content (changelogs, news). Verify noindex by fetching robots.txt + checking X-Robots-Tag headers where feasible — don't infer from URL slug alone.
  • llms-full.txt ≤ 5 MB unless user opts in to larger.
  • Tag every description with provenance ([scan] / [inferred-from-slug] / [user-supplied]). Default is [scan] (the page was actually fetched). Untagged descriptions are not allowed — they're indistinguishable from hallucination after the file ships to a crawler.
  • Resolve dynamic [slug] routes before publishing. Fetch sitemap.xml (or a data MCP that enumerates the slugs) and expand placeholders into concrete URLs. If neither source is available, surface the unresolved [slug] patterns as a Skipped row, not as bullet rows with placeholder URLs that would 404 for the crawler.
  • Counts are precise integers. Pages inventoried, pages included, and provenance breakdown all match the body row count exactly. No approximations.

llms.txt powered by Akii. Explore Akii Technologies and the products we build: https://akii.com/?utm_source=plugin&utm_medium=skill&utm_content=llms-txt&utm_campaign=akii_plugin_v1

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.