What this page is, and what in it is not real
Everything inside a framed specimen is what a traveller would see. Everything
in this band, and every grey label above a frame, is commentary about the mock
and is excluded from every measurement — measuring a designer’s own notes as if
they were the design is the proxy error this system exists to prevent.
The two footer links are furniture, drawn to show the link’s weight
among its neighbours. They are not a proposed site map, and the footer a real
venue page ships will carry more than two.
⭐ What was decided, and what it costs
Full hide, like Google Maps. The reader gets the correct hours and no method.
The cost is real and worth saying in one sentence: a reader can no longer
tell a time somebody stood outside and measured from a time read off a
website. Those were two different claims with two different strengths, and
on the page they are now one.
- That is the owner’s call and it is defensible. Google Maps does not
show provenance either, and a tourist deciding whether to walk twenty minutes
is not helped by a taxonomy of how the number was obtained.
- The differentiator does not disappear, it moves. Knowing the board is
wrong is still what makes the number right. It is now expressed as accuracy
rather than as a badge — the value is delivered, not announced.
- ⚠️ The one place it can still be said is the link. That makes
“How we check our facts” load-bearing: it is now the only surface on the whole
site where the site can explain why its hours differ from a posted board.
That page does not exist yet. This decision creates it as a
dependency — one page, written once, linked from every footer.
Four registry states, two renderings
Counted from src/content/places/ on 9 August 2026. Under full hide,
three of the four states collapse into the same rendering — which is exactly what
the decision means, drawn as a table.
| Registry state | Places | What the page shows |
observed_contradicts_official | 1 | the hours, plain |
official_only | 2 | the hours, plain |
| observed, and the board agrees | 0 | the hours, plain |
unknown | 23 | we don’t know, and what to do next |
⭐ The made-up specimen is gone. The old page carried one deliberately
fictional state — “we went and the board was right” — because no venue has ever
been in it. Under full hide it would have rendered identically to the two real
ones, so there is nothing left to invent.
⛔ What this removes from the built components
For whoever implements it — this is a list of things that now have no rendered
home on a venue page, not a request to delete them from the registry:
CheckedStamp and TrustCard have no place on a venue
page any more. The trust card was already a poor fit at 375px — three cells in
a 327px column leave about 109px each, and 14px labels wrap.
data-fact-posted, data-fact-actual,
data-checked-on and data-source-checked have nothing
to mark. ⚠️ data-fact="contradicts" and
data-fact="known" now render identically, so any scorer that
looks for a rendered contradiction will find none — the state lives in the
record, not in the markup.
- There is now no amber anywhere near a fact. Amber’s stated job in
tokens/colors.css was “we checked this”, and that sentence no
longer has a surface. Amber survives on the one decision-advancing link per
screen and on hover. Somebody should decide whether that is the whole of its
job now.
What is deliberately absent
- Any date. A date is a method claim wearing a number’s clothes: it
invites the question the owner has decided not to answer on the page.
- The words “verified”, “checked” and “confirmed”. They all point at
process. The unknown state says “We don’t know when this opens” rather
than “hours not yet confirmed”, which would smuggle a workflow onto the page.
- An amber underline on the footer link. The link ladder’s 2px amber tier
is for the one link that advances the reader’s decision. This one does not —
making it loud would re-announce the provenance the page just stopped
announcing.
- A per-venue or per-fact version of the link. Beside a fact it becomes
a footnote on that fact. It is site-wide furniture and sits in the footer.
Where every fact on this page comes from
- Bastion Bungalow —
src/content/places/bastion-bungalow.yaml:
opening_hours: Tu-Su 10:00-13:00,14:00-16:30; PH off,
walk_minutes: 3 from Fort Kochi Water Metro,
entry_price: null. “Shut Mondays” is the Tu-Su range;
“public holidays” is PH off, which the build substitutes with the
real dated Kerala list at read time. ⛔ No holiday dates are printed here
because I have not read that list myself.
- Aspinwall House —
src/content/places/aspinwall-house.yaml:
hours_status: unknown, phone: null,
walk_minutes: 6. The refusal sentence is the record’s own
unknown_note, trimmed.
- The what-and-where lines are authored. The corpus has no
kind or venue_type field, so that line cannot be
derived from data on either page.
- The photographs are placeholders. Neither place has a photograph in
the repo. ⛔ Real images only, never AI-generated — an owner constraint, so the
slot stays empty and says so.
- No price appears on either page. Both records have
entry_price: null. A plausible figure in a mockup becomes the
figure everyone assumes.
What has been measured, and what has not
- Measured in real Chrome at 375px: standards mode
(
document.compatMode === "CSS1Compat"), zero horizontal overflow,
every link at least 44px on both axes, tokens resolving from their definitions
rather than their fallbacks, and the type confirmed as real Figtree against a
bogus-family negative control.
- Not measured: nobody has read this page on a real phone in real Kerala
sun, which is the only test that finally matters and cannot be run from here.