Publishing and discovery
A machine should find the representation before it starts guessing.
An ESFI standard is published as a contract that people can read and implementations can produce. The specification is the authoritative description of that contract; the machine-readable artifacts show it in use. This page describes what an MPF publisher puts online, how a machine finds it, and what each mechanism does and does not establish.
Every mechanism is marked Specification 0.7, Reference implementation or ESFI practice. The markers are explained in the Overview.
What a publisher puts online
| Artifact | Audience | Role | Status |
|---|---|---|---|
| Specification page | People, implementers | The published contract for a format version | Specification 0.7 |
Page .mpf file |
Machines | Machine representation of one human page | Specification 0.7 |
llms.mpf |
Machines | MPF index of all indexed pages on the site | Specification 0.7 |
llms.txt |
Machines, people | Lightweight entry point with an MPF section | Specification 0.7 |
llms-full.txt |
Machines | Bodies of indexed pages in the default language, concatenated | Specification 0.7 |
.sig files |
Machines | Signatures of MPF files, when the publisher signs | Specification 0.7 |
/.well-known/mpf |
Machines | Site-level MPF declaration over HTTPS | ESFI practice |
DNS TXT _mpf.<domain> |
Machines | Site-level MPF declaration before any HTTP request | ESFI practice |
<link rel="alternate"> |
Machines | Page-level pointer from HTML to its companion | ESFI practice |
How a machine finds MPF
The mechanisms are layered from the cheapest signal to the most specific. A reader can start at any of them; they are designed to agree.
1. DNS TXT — before the first request
ESFI practice
A reader can learn that a domain publishes MPF, where its index lives and what its site-level scope is, with a single DNS query:
_mpf.example.org TXT "v=0.7;index=https://example.org/llms.mpf;scope=cite:1,summarize:1,train:0,index:1,relay:0;contact=mailto:web@example.org"
| Parameter | Meaning |
|---|---|
v |
MPF version |
index |
Absolute URL of llms.mpf |
scope |
Site-level default companion-scope, as flag:1 or flag:0 |
contact |
Contact for machine readers |
The record is short enough to fit in a single DNS response. The builder does not create it; the publisher adds it to the zone.
2. /.well-known/mpf — the same declaration over HTTPS
ESFI practice
The same string, served as plain text:
GET /.well-known/mpf
v=0.7;index=https://example.org/llms.mpf;scope=cite:1,summarize:1,train:0,index:1,relay:0;contact=mailto:web@example.org
Ship it as a static file (for example in public/.well-known/mpf) and make sure the server returns it as text/plain. The builder does not create it. mpf is not yet a registered well-known URI; ESFI uses the path as a convention.
3. llms.txt — the conventional entry point
Specification 0.7
The builder creates llms.txt if it does not exist, or replaces its MPF section while preserving everything else. The section always contains:
MPF: 0.7
MPF-spec: https://docs.esfi.eu/spec/mpf/0.7
MPF-index: /llms.mpf
## Pages
- [Page title](https://example.org/page/index.mpf): summary
MPF-spec appears when spec-url is configured, and lets a reader reach the canonical specification for the declared version without guessing. The introductory sentence the builder writes above these lines is Reference implementation wording.
4. llms.mpf — the site index
Specification 0.7
llms.mpf is itself an MPF document. Its body lists every page with index: true, sorted by MPF URL, each with its summary where one exists. Its frontmatter declares a fixed identity (<prefix>:page:llms), content-type: reference, and hidden, non-HTML parity, because it has no human page behind it.
5. The page itself
Specification 0.7 for the path and mpf-url; ESFI practice for the alternate link.
Every page carries its companion at the same path, with .mpf in place of .html:
/about/index.html → /about/index.mpf
Each MPF file is self-addressing through mpf-url, and points back to its human page through url.
An HTML page can also point to its companion from its <head>:
<link rel="alternate" type="text/mpf" href="/about/index.mpf" title="Machine Page Format">
text/mpf is not a registered media type; ESFI uses it as a convention so readers can recognise the link. The builder does not add the link; the site template does.
When site and page disagree
The DNS record and /.well-known/mpf state site-level defaults. A page’s frontmatter states what applies to that page, including any per-page override. ESFI practice: on ESFI sites all three state the same site-level values, and a reader should treat the page frontmatter as the declaration for that page. If a site-level declaration and a page disagree without an override explaining why, that is a publishing error, not a signal to choose between them.
Human canonical and machine companion
The human page and its MPF file are two representations of related content, not interchangeable authorities.
urlidentifies the canonical human page.mpf-urlidentifies the machine representation.content-paritystates how the two relate.source-hashidentifies the exact HTML used to generate the MPF file.mpf-ididentifies the generated MPF file itself.
This separation lets a machine cite or process the machine representation without losing the address of the human source. For translations, language-variants lists the expected MPF addresses of the same logical content in other configured languages; the builder generates these addresses and does not check that the files exist.
Open format, ESFI reference practice
MPF is an open format. Anyone can produce and consume conforming MPF without being listed anywhere, without registering, and without using any ESFI service.
ESFI’s own sites are an inspectable reference practice: they emit MPF, publish the site indexes and the practice-level discovery declarations, and expose all of it for checking against the specification. The Implementation registry records emitters whose output has been verified. It is evidence of implementation, not permission to implement.
Specification, implementation and practice
- The specification is the canonical human-readable contract for a published version. A published version remains reachable; corrections that do not change the contract are handled under the Versioning policy.
- The reference implementation turns the specification into observable output. It is not a second specification. Where prose and implementation disagree for a published version, they are brought back into agreement; readers are not asked to infer a third contract from examples.
- Practice is how ESFI deploys MPF beyond what the builder produces. It is documented so others can reproduce it. It becomes part of the contract only through a new specification version.
A draft, proposal or planned mechanism is not part of these conventions until it is published and verifiable.
What publication does not imply
Publishing a field or a declaration does not create a service behind it. Provenance, confidence, scope and language variants are descriptive unless the specification defines further behaviour. Discovery mechanisms help a reader find the publisher’s declarations; they do not make those declarations true, binding or enforced.
The specification defines the contract; the reference implementation demonstrates it; practice extends how it is found; published artifacts make all three inspectable.