Документация LMS версия 0.1.0

Документация/Для агентов/Машинные выходы

Машинные выходы

Документация отдаётся в четырёх машинных видах. Все четыре собираются той же сборкой, что и сайт, из тех же файлов — не отдельным скриптом сбоку. Приделанное сбоку расходится с сайтом на третьем заходе, и расходится молча.

Точка входа: /llms.txt #

Карта разделов: заголовок, одна строка описания на раздел и перечень страниц со ссылками и описаниями. Небольшой файл, с которого модели стоит начинать.

curl -s https://docs-school.sersidteh.ru/llms.txt

Страницы, которые ещё не написаны, помечены прямо в списке — [страница ещё не написана]. Это сделано намеренно: модель, которая знает, что раздела нет, скажет об этом, а не придумает содержимое.

Всё сразу: /llms-full.txt #

Вся документация одним текстом, страницы подряд, у каждой указан её адрес. Нужен, когда агент читает целиком и не хочет обходить страницы по одной.

curl -s https://docs-school.sersidteh.ru/llms-full.txt

Спецификация API: /openapi.draft.json #

OpenAPI 3.1. Из него собран Каталог ресурсов, из него же будут собраны клиентские библиотеки и MCP-сервер.

curl -s https://docs-school.sersidteh.ru/openapi.draft.json

Обратите внимание на имя файла. /openapi.json — конвенция: агент, который его скачал, обоснованно считает, что перед ним рабочее API, и начинает дёргать адреса. Здесь так делать нельзя, и поэтому конвенциональное имя не занято:

  • публичного API в продукте ещё нет — маршрутов /v1/* ноль;
  • спецификация собрана машинным разбором проектного документа, а не из кода;
  • 60 путей из 226 выведены эвристикой из сокращённой записи каталога и помечены x-lms-shorthand: true — эти адреса могут оказаться другими;
  • тел запросов и состава полей в ответах нет: у таких операций стоит x-lms-unspecified.

У всего документа стоит x-lms-provisional: true. Проверять этот признак — самый дешёвый способ не построить интеграцию на несуществующем API.

Когда API будет написано, спецификация начнёт собираться из zod-валидаторов и переедет на /openapi.json. Адреса страниц справочника при этом не изменятся.

Подробнее — Чего в справочнике ещё нет.

Исходник любой страницы #

К адресу страницы добавляется .md — и вместо разметки сайта отдаётся её исходный текст.

curl -s https://docs-school.sersidteh.ru/api/errors.md

Работают оба написания: /api/errors.md и /api/errors/index.md. В <head> каждой страницы на этот же файл стоит ссылка:

<link rel="alternate" type="text/markdown" href="/api/errors.md">

Почему сайт статический #

Содержимое отдаётся готовым HTML и не собирается скриптом в браузере. Причина простая: страница, пустая без JavaScript, для модели пустая. Из этого же следует остальное устройство сайта:

  • заголовки и якоря стабильные — на них ссылаются и люди, и агенты, и ссылка не должна протухать от того, что мы переставили абзац;
  • одна страница — одна тема: гигантская страница «всё про API» плоха и для поиска, и для контекста модели;
  • поиск работает офлайн: индекс лежит рядом с сайтом, внешнего сервиса нет;
  • ничего важного не спрятано в картинку — скриншот иллюстрирует, но не несёт сведений, которых нет в тексте.

Версия #

Каждая сборка называет версию продукта, на которой собрана: в подвале каждой страницы, в шапке /llms.txt и в поле info.version спецификации.

Эта сборка — версия 0.1.0, сборка из коммита 933ad56 от 8 августа 2026.

Публичный сайт всегда показывает последнюю версию. Если у вас коробка другой версии, её собственный справочник лежит внутри установки и собран на её версии — внешняя документация врала бы половине покупателей.

Эта страница в Markdown