Build Log: One Evidence Standard, Two Surfaces
Studio and product sites run one evidence standard: status labels drawn from a closed vocabulary, machine-facing files generated from source data, and no claim published without a source.
How stelixx.com and the product surfaces ended up under a single claims discipline — one status vocabulary, generated discovery files, and no shipped claim without a source.
Two Surfaces, One Rulebook
Stelixx.com and the product surfaces — Geolify first among them — carry different content for different readers. The studio site explains what we build and why. The product surface explains what the product does. Early on, they were edited under different habits, and the habits diverged in exactly the place where divergence is expensive: what each site claimed.
The correction was to treat claims discipline as shared infrastructure rather than editorial preference. One rulebook governs both surfaces: a claim needs a source before it ships, status words come from a closed set, and machine-facing files are generated from the same data as the pages they describe. A claim that cannot survive on one surface cannot ship on the other — the standard does not relax because the page is a marketing page.
Status Vocabulary as Shared Infrastructure
The most load-bearing piece is the smallest: a closed enum for status. Geolify is labeled Live Product. Outflow is labeled Operational Experiment. Those strings mean the same thing on every surface that renders them — the studio portfolio, the product pages, the machine-readable files, this writing corpus.
This matters because status language is where overstatement hides. Free-form labels drift toward flattering near-synonyms: an experiment becomes "launched," a direction becomes "available." A closed vocabulary makes that drift impossible at the data layer — the value either comes from the enum or the field does not exist. Status stops being a prose decision made under deadline and becomes a property of the data model, which is the only place it is reliably honest.
The same discipline extends to what the labels forbid. Neither surface carries customer counts, revenue figures, adoption numbers, or performance claims. Direction and mechanism may be asserted; outcomes may not, without verifiable evidence. A missing source is treated as a do-not-publish condition on both sites alike.
Generated, Not Hand-Written
The second mechanism is generation. The machine-facing discovery files — llms.txt, llms-full.txt, ai.txt — are produced at build time from the same source data that renders the visible pages. They are never hand-edited. A continuous-integration check fails the build if a generated file drifts from its source, which makes inconsistency a compile error rather than a review finding. The public AGENTS.md is the deliberate exception: a short policy file a human maintains by hand under the same claims policy, because its content is policy rather than data.
source data → rendered pages
↘ generated machine-facing files (drift-checked in CI)
↘ AGENTS.md (hand-maintained policy, same claims rules)The reason for this shape is a failed alternative: we maintained the AI-facing files by hand at first, and they drifted within a single round of page edits. Not by much — a stale description here, an outdated status there — but drift compounds, and a file that exists to tell machines the truth about the site cannot afford to be a round behind it. The generator is the enforcement mechanism. Discipline that lives in a style guide lasts until the first deadline; discipline that lives in the build survives them.
What Did Not Work
Hand-maintained files were the first failure — well-intentioned, promptly stale. The second was subtler: two surfaces with the same intentions produced different vocabularies anyway, because intentions are per-editor and vocabularies are per-data-model. Aligning the people did not align the strings. Aligning the schema did.
The third lesson was about inheritance. Once the standard lived in shared source data, product copy inherited studio constraints automatically — including the uncomfortable ones. A product claim drafted without a source does not ship, regardless of which surface it was drafted for or how good it sounded. The mechanism has no exceptions, which is what makes it a mechanism rather than a mood.
What the Standard Does Not Claim
A shared evidence standard is a claim about honesty, not about polish. The two surfaces differ in maturity, in audience, and in finish; the standard does not pretend otherwise, and the status labels exist precisely to keep those differences visible rather than smoothed over.
Generation guarantees consistency with source — it does not guarantee that the source was right. And the standard prevents overstatement; it does not manufacture evidence. What it buys is narrower and more durable: a reader, human or machine, can trust that the claims on both surfaces were made under the same constraint — and that the constraint is enforced where it cannot be talked around.