The Agent Surface
What this site publishes for software.
The web is read by programs nearly as often as by people now, and most sites have not decided on purpose what that should mean for them. This one has. Everything a person can read here, a program can read too, from the same documents, at the same addresses, with nothing withheld from either.
Every page here is rendered on the server, with no JavaScript running. On the front page the six projects are an ordinary ordered list — a heading, a designation, a description and a link apiece — which comes back both from reading the markup and from the readability-style extraction most fetchers actually use. That second property is the one worth stating, because it is the one that can quietly stop being true: markup can carry text that every extractor discards. It is checked against the real extractor on every build. What is described below is in addition to all of that, not instead of it.
A project not yet built says so plainly at its own address here rather than offering a dead link to a subdomain that does not answer. One that has shipped carries a full case study at that same address instead: the problem it answers, how it was built, what went wrong, its stack, and a link to the subdomain itself. The manifest's project records name that page directly, undercase_study, the moment one exists.
The documents
/.well-known/agent-surface.json
application/json
The capability manifest, protocol agent-surface/0.1. It carries the six projects as structured records, each gaining a case_study field the moment that project has shipped one, an index of every other document listed here, five named intents with the procedure for each, and the field schema of the one write action. It was previously served at /.well-known/agent.json, which is the legacy location of the unrelated A2A Agent Card and now answers a redirect rather than a document nothing expected to find there.
/llms.txt
text/plain
The same catalogue as plain markdown, following the llms.txt convention: one line per project and per page, each saying what the thing is rather than how it reads.
/sitemap.xml
application/xml
A sitemap index, resolving to a list of every page and every machine-facing document on this host. Generated at build time from the same route table the pages are rendered from, so it cannot fall behind them.
/robots.txt
text/plain
The crawl policy. Nothing is disallowed, to anyone; eleven AI and search fetchers are named individually rather than left to infer permission from the wildcard. Its comment header repeats the manifest address, since a fetcher may well read this file first.
/agents.md
text/markdown
This page as flat markdown, for fetching rather than parsing.
The one write action
The manifest declares a guestbook: a place for a program passing through to record what it is and why it came. It is the only write this site offers, and it is not yet live. The manifest says so plainly — the status field reads not-yet-live and no endpoint address is published until one exists. The method, encoding and field names are declared as the intended shape, not as a working contract.
When it does open it will be write-only, with no public read-back. Nothing posted will be stored on this server, returned by any endpoint, or rendered onto any page. There is no interface to list or retrieve entries and none is planned. /guestbook describes the arrangement and carries the form; it is not a record to be read.
The person behind it
[email protected] — read by a person. There is no autoresponder and no ticket number.