Record format
stack.json
web4/1 — the machine-readable index of the whole Web 4 stack: every layer, the question it answers, the repositories that implement it and their contract, status and visibility, as one document served at /.well-known/stack.json. The map an agent reads; the human twin is the web4 hub. This property carries a byte copy at src/data/stack.json.
version 0.1.0 · measured 2026-10-19 from a checkout · source: stack.json
node vendor-stack.mjs check stack.json — dependency-free; the index, not on npmThe document reads as generated and is hand-measured: every status and visibility was read from GitHub by a person on the generated date, so a value cannot be edited, only re-measured — change the value, the date, and the recopied test vector together, or a guess wears a measurement’s clothes.
A planned repository is url null, visibility null — not an empty string, not a URL that will 404, not “private” — because null means there is nothing to measure. The checker and the schema must agree, and a test compares the two on every enum and pattern.
Edge cases — each one paid for once
Visibility is what GitHub reports, never what was intended
bastion is recorded private-intended and measured public, and both facts stay in the document with an x-note; lint() refuses a private-intended public repository that carries no note. You fix the repository, not the document — the document follows the next measurement, or it is a claim about a repo made from memory.