Living Documentation

Rubric: asset resolution

Written by a person. Last read by a person on 2026-09-05, 3 days ago. Its facts were checked by the eval suite on 2026-09-07.

Enforced by check_asset_resolution.

The claim

Every local link and asset reference in built output resolves to a file under the directory being served.

Observable evidence

The pass bar

Every local reference resolves. External URLs, fragments, mailto: and data: are not this rubric's to verify and are skipped.

Why this rubric exists

A stylesheet that 404s produces no error anything can see. The HTML is valid, the file was built, the server returns a page, and it renders unstyled — which looks like a plain design rather than a broken reference. Nobody files a bug against a page that looks deliberately austere.

This was not hypothetical. The design comparison built four variants into subdirectories of one server root while every page asked for /assets/… from the site's own perspective. All four directions rendered identically unstyled, which read as "these look the same" rather than as "this is broken", and the comparison was published in that state.

Ambiguous cases

An extensionless path is treated as a directory and passes on index.html inside it, which is what a static server does with /help/.

A reference that resolves under the output tree but not under the served root is a failure. That distinction is the entire point: the two are the same directory for _site and different for the comparison, and only the served root is what a reader's browser uses.

A path that exists but is not readable is out of scope. This rubric checks that the build produced the file, not that the deploy configured it.