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
- Each
hrefandsrcin every built HTML page. - The directory the server publishes as
/, which is not always the directory the pages were written into. - Whether the resolved target exists on disk, as a file or as a directory holding
index.html.
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.