AI readiness
Forge serves four audiences from the same content model. Two of them are AI systems. This page documents what each AI-readable endpoint returns and when to use it.
No configuration required. Every published Forge site exposes these endpoints automatically.
The reading layer
Three endpoints. Three use cases.
| Endpoint | Use case | Size |
|---|---|---|
/llms.txt | Index: what exists on this site | Small |
/{slug}.aidoc | Single item: one piece of content | Medium |
/llms-full.txt | Full corpus: everything at once | Large |
/llms.txt
A compact content index in llmstxt.org format. One line per published item: title, URL, and excerpt. An AI agent can determine what your site contains and which URLs to follow without fetching any content pages.
Updated automatically when content is published or archived.
/{slug}.aidoc
A token-efficient representation of a single content item. Returns title, URL, excerpt, and the full body in markdown. Served as text/plain.
This is distinct from Accept: application/json on the same URL. The JSON response is the full API representation including internal fields. .aidoc is curated for agent consumption: enough to understand and cite the content, nothing extra.
/llms-full.txt
The full markdown corpus of all published content in a single response. For agents that need to reason across everything rather than navigate item by item.
Content negotiation
The same URL serves different formats depending on the Accept header.
| Accept header | Response |
|---|---|
text/html or none | Rendered HTML page |
application/json | Structured JSON representation |
text/plain | Markdown body (.aidoc format) |
No separate endpoints for different audiences. One URL, one content item, the right format for whoever is asking.
Lifecycle and AI crawlers
Forge enforces lifecycle at the framework level. This has direct consequences for AI indexing.
- Draft and scheduled content returns 404 for all unauthenticated requests. It does not appear in
/llms.txtor/llms-full.txt. AI crawlers cannot index it. - Archived content returns 410 Gone. This signals to crawlers -- including AI indexers -- that the content has been permanently removed, not temporarily unavailable.
- Slug changes are handled via redirects. An AI agent following an old URL is redirected to the current one rather than receiving a 404.
Structured data
Every published page includes structured data for search and AI discovery.
- Open Graph tags on every page
- Twitter Cards derived from content type
- JSON-LD (BlogPosting or TechArticle) on article pages
- Canonical URL on every page
- XML sitemap, updated on every publish and archive
No plugin required. No template changes needed.
*See also: Four audiences, one framework*