---
title: For LLM agents
description: How to consume this portal programmatically — llms.txt, Markdown twins of every page, the frozen OpenAPI contract, and a build manifest with per-page content hashes.
locale: en
version: 0.2.0
canonical: https://enterium-developer-docs.pages.dev/developers/for-llm-agents/
---

> Documentation index: https://enterium-developer-docs.pages.dev/developers/llms.txt — every page of this portal has a Markdown twin at <route>.md; the frozen API contract is at https://enterium-developer-docs.pages.dev/developers/api/openapi.json.

This page tells an agent how to read this portal cheaply and reliably.

## Machine surface (contract)

| Artifact | Purpose |
| --- | --- |
| `/developers/llms.txt` | Curated entry points with one-line descriptions, plus an Instructions section |
| `/developers/llms-full.txt` | Entire docs as one Markdown document |
| `/developers/<path>.md` | Markdown twin of every HTML page — fetch this, not the HTML |
| `/developers/manifest.json` | Nav tree + route → content-hash map; compare hashes to detect changed pages |
| `/developers/versions.json` | Published doc versions and the current build timestamp |
| `/developers/api/openapi.json` | The frozen OpenAPI contract this build's REST reference was generated from |
| `/developers/sitemap.md` | Every page as a flat list of `.md` twins — the cheapest full index |
| `/developers/agents.md` | What this portal offers an agent and what it does not — read before assuming anything |
| `/developers/search-index.json` | Route, title, headings and a text excerpt per page — the index the docs MCP `search` tool ranks |
| `/developers/changelog.json` | Release notes as JSON Feed 1.1: portal and API entries plus every agent capability version |
| `/.well-known/agent-skills/index.json` | Skills catalog (Agent Skills discovery 0.2.0): `enterium-integration/SKILL.md` with a sha256 digest — `npx skills add` installs it |
| `https://entherium.duckdns.org:8443/mcp/docs/` | This documentation as MCP tools (`search` / `fetch` / `submit_feedback`), no token — [details](../mcp/connecting/#the-docs-mcp-no-token) |
| `https://entherium.duckdns.org:8443/api/status.json` | Platform status in the Statuspage v2 shape, no token |
| `/.well-known/llms.txt`, `/.well-known/api-catalog` | Root-level aliases: the llms.txt convention and the RFC 9727 API catalog (`application/linkset+json`) pointing at the frozen contract, the reference, the health probe and the MCP onboarding page |

## Discovery from any page

Every HTML page carries two link relations in `<head>` (llms.txt v2):
`<link rel="alternate" type="text/markdown" href="<route>.md">` — this page's
Markdown twin — and `<link rel="describedby" href="/developers/llms.txt">` — the
index that covers it. The mirror also sends them as a `Link:` HTTP header
(`rel="llms-txt"`, `rel="llms-full-txt"`, `rel="api-catalog"`) and
`X-Llms-Txt`, so a tool that only reads headers finds the index too. Every
`.md` twin opens with a one-line directive naming the index, so an agent that
arrives by a direct link is never lost.

`.md` twins and `manifest.json` are served with an `ETag`: send
`If-None-Match` on re-reads and a `304` tells you the page has not changed
without transferring it.

## Rules of thumb

1. Prefer `.md` twins over HTML — same content, a fraction of the tokens.
2. To find what changed since your last read, keep the `pages` hash map from
   `manifest.json` and compare it to the current one — the per-route hash
   changes only when that page's content does.
3. English pages are canonical; Russian mirrors exist for humans.
4. Mermaid diagrams keep their source in the `.md` twins — read the code
   block, do not fetch the rendered SVG.
