Updates
38 changesThis is not a blog. It is the building's own record: every change that
altered something a reader can see, newest first, with links to the rooms it touched.
Nothing here was written for this page — it is generated from the commit log by
pipeline/derive_updates.py, which is the only reason to believe it will still
be accurate in a year.
Changes that touched only the pipeline, the build or the tooling are left out. They are real work and they are not news. 26 of 38 name at least one room, and every one of those links was checked against the site that was actually built.
August 202637
- 27 Aug The lift's seven pages become redirects, and 63 arrows stop pretending to be entries0c65ca000
/terms/<slug>/ 301s to /dictionary/<slug>/. Once the entry carried one table of every place a word appears with the judgements marked in it, those seven pages were saying the same thing a second time. /terms/ itself stays — the words this building uses on more than one floor is a real view, it just does not need seven detail pages behind it. Two are not one-to-one: the lift's `skeleton` and `progress` are `Skeleton S
- 27 Aug The menu was not content, and the carousel does not appear on the About page7ca993c3c
Chasing the duplication between the lift and a lemma page found a bigger fault underneath it. prep_dictionary.py strips script, style, nav and footer from each page before scanning it — but the mega menu is a <div> inside <header>, a SIBLING of the <nav>, so it survived. That menu names every room and every desk item on all 519 pages.
- 27 Aug The lemma page loses its lecture and gains a rail27c1c26f3
The warrant paragraph is gone. It explained to a reader what kind of page they were on, which they could see, and it pushed the entry itself below the fold to do it. The one piece of information inside it — that a floor has judged this word — is now a link on the metadata row, where it takes four words instead of forty.
- 27 Aug A page per word, for the words that earn one040e66aa5
/dictionary/<slug>/ — 452 entries, each with the definition, its category, its synonyms, what it is not to be confused with, the design systems that ship a component of that name, a sortable index of every page in the building that uses it, and a citation in six styles.
- 27 Aug The dictionary was reading its own outputd5e6711cc
Two feedback loops, both firing for the first time on this build because both needed the dictionary page to exist before they could bite.
- 27 Aug Headers that sort, classes that have names, and a page that writes itselfc0ad3d7b8
"A contract with optional terms" was broken and the cause was the second class-name collision of the day: a caption paragraph called `.foot` inheriting the site footer's five-column grid, so its separators rendered as grid cells. Yesterday it was `.tl`, a page-length chronology clamped to the 26px height of a table-cell sparkline.
accommodationsaria propertiesbank interfacesdesign systemsdesign toolsgovernment ux
- 27 Aug Ten principles you can actually break, and doors that say what is behind themd85fe3171
The Stairwell gets a page per principle, and each one carries a bench: the same task built twice, one interface breaking the principle and one keeping it, both real and both timed from the reader's first move. A screenshot of a bad interface is a claim about a bad interface. A bad interface you have to use is evidence, and the reader produces it themselves.
aboutcollectionsbank interfacesdesign systemsgovernment uxstairwell
- 27 Aug Eleven libraries that were not there, and a filter that stays in reacha77770816
You spotted three. Checking all forty-five found eleven.
- 27 Aug Four collections stop printing their findings and start showing themd74141461
Two are about WHEN and rendered a column of ISO strings, which asks a reader to sort thirty dates in their head to see a gap that is the entire point. Two are about WHETHER and rendered a comma-separated list of names, which asks them to diff eight sets by eye.
- 27 Aug The design systems are measured against themselves29eba0515
A design system is the one artefact in this building that can be checked against itself: it tells other people how to build, and the telling is itself built. The register listed 122 of them and showed none.
- 27 Aug The registers of other people's sites now show them7e2430754
The referatory, the tool register and the design-system register were each a table of names and links — three pages about the visual web carrying no visual identity anywhere on them. A site's own mark is the cheapest correction and the most accurate one, because it is what the reader meets on arrival.
- 27 Aug The grid collection draws its gridsbb92f3e8f
A collection about drawings, rendered as a table of measurements. It asked a reader to hold twelve columns, a 20px gutter and a 960px max width in their head and picture the result — when the picture is the subject.
- 27 Aug The dictionary, admitted one word at a time000424981
The source holds 16,799 terms. This page holds 753, and the difference is the method rather than a shortfall: a term is admitted only where the building already uses the word — as the name of a row in a collection, or in the prose of a page. Publishing all of them would double the site with entries nothing here has anything to say about, and `approved` is empty on every row of the source, so there is no publish gate
- 27 Aug Search finds rows, and hands them to the filter that holds them560b1e761
The search page carried an honest note: "rows want facets, prose wants full text, and one tool does not do both well." True, and it left a reader who knows the words "Wells Fargo" having to work out which of twenty-two collections holds them before they could look. Pagefind indexed the prose around the table and not a single row inside it.
- 27 Aug Every floor gets an address, and the menu stops being the site mapebd65778c
The mega menu listed every room of every open floor. Collections alone contributes twenty-two, so the panel carried about fifty links, overflowed the viewport at any realistic height, and pushed the lower floors off the bottom — which meant the Basement and the Stairwell, the two floors most worth arriving at, were the two you could not reach.
- 27 Aug Three collections, and the first one that shows what it is about9717d1e2f
A building whose subject is where the hand meets the machine had twenty-two collections and not one content graphic in any of them. Fifteen hand-drawn figures live on the authored floors; the collections floor was tables of numbers all the way down. That is the flaw this commit starts on.
- 26 Aug Two fabricated rows out of the grid register07c658329
arabic-rtl-grid and ethiopic-grid both cited https://example.com/ — a domain RFC 2606 reserves precisely so that nobody can claim it, which makes a citation to it the absence of a source wearing a URL. Both also named a category rather than a publisher: "Middle East Publishers", "Ethiopian Gov". That is the same tell twice.
- 26 Aug The register is dropped; the institutes resolve at mikko.grd29f0b32c
618.institute stops being the register. Every institute now carries a quiet link to mikko.gr/institutes/ in its place — the person hub was always the only surface that could hold both institutes and applications without ceasing to be what it claims, and this removes the branch that had to be kept true on the day it shipped.
- 26 Aug Three collections from the estate: grids, tools, and where the screenshots are827ba8638
The Collections floor gains three registers built from the datasets tree rather than a vendored spec — the arrangement prep_mtr.py already uses, so each is skipped rather than fatal when that tree is not checked out alongside.
- 15 Aug Add the ORCID to the author entitya9f8c35e2
0000-0002-2993-6545, verified against the ORCID public API. First in sameAs because it is the only entry that is an identifier rather than a profile: issued once, never reassigned, independent of spelling. The estate does not spell the name consistently — two variants across six properties, and two with no Person node at all — so the identifier is what binds them to one person without the names having to be reconcile
- 15 Aug Square tesserae on any width; Dataset nodes Google can read9c1af5e4a
The mosaic. Rows were stretching to fill the box, so tiles were only square where the aspect ratio and the tile count happened to agree — on a phone they came out 7px with a 1px grout line, a seventh of the tile, and the wall read as noise. Tiles are now square by aspect-ratio and the box crops what does not fit, which is what standing in front of a wall does. Fewer columns below 620px and 420px, so a phone gets a cl
collectionsaccessibility lawaccommodationsaria propertiescomponent censusconventions
- 15 Aug The lift: drop the standfirst from term pages639e13b75
The two headings already say judged and counted; the paragraph explaining the difference was restating a distinction the page makes structurally.
- 15 Aug The lift: a page per judged term99a37b2c9
The index has said since it was written that this route was coming and said what would gate it. `hasOwnPage` was already in lib/terms.ts, already tested on the index, and had nothing consuming it — so seven terms that the building actually judges had no URL of their own.
- 15 Aug Floor 5 · Specimen 02: the MTR station colour as a two-level address3c664929c
The finding is that the station colour is not an identifier but the second half of one. Ten lines carry ten mutually distinct colours, published on every map; within a line, only 15 of 940 station pairs fall inside ΔE 10. So the address is (line, colour), and it resolves — but only for someone who already holds the coarse half, which is learnt by reading the very signage the tiles were meant to stand in for.
- 14 Aug Build the lift — a term index, rather than moving every URL30d02e3a3
The question was whether to make terms canonical at the root — /button — or to repeat a concept under several floor paths. Neither. Flat terms collide with site furniture immediately: eleven slots at root already, and /search is both a page and one of the twenty-five archetypes. Repeating a concept under two paths is the cannibalisation we removed when splitting the Basement. And the building already has canonical id
- 14 Aug Open Motion on Floor 1 — six meanings, and the page answers for itself7eed5105d
A motion is not an effect. It is an assertion about what just happened — that something is new, that it is gone, that these two things are one thing — and like any assertion it can be false. Six entries: arrival, dismissal, origin, progress, rejection, reveal.
- 14 Aug Open the form collection — two publishers, licences named per source25eac5a8a
"The form that assumes your name" is the first collection in this building drawn from two publishers, and that is the finding rather than a compromise: there is no single authority on how to write down who a person is and where they live.
- 14 Aug Open the ARIA properties collection; link every collection to its documents3fff6a186
"A contract with optional terms" reads WAI-ARIA 1.2 in both directions — what each attribute applies to, and what each role requires, supports, inherits and prohibits.
accessibility lawaccommodationsaria propertiescomponent censusconventionsinput purposes
- 14 Aug Open the keyboard collection0be838cfc
"The keyboard nobody binds" joins the 284 UI Events key values against the keys the ARIA Authoring Practices actually bind across their thirty patterns.
- 14 Aug Cite the Institute, not the director; reword the imprint14bf03b1c
The author of an entry is the Institute. What an entry claims rests on the house method — a named source, a confidence marker, a limits note, and a build that refuses anything missing them — rather than on one person's opinion, and the collections have no personal authorship at all: they are reproductions of published registers. Corporate authorship is also what survives a second contributor. The director stays credi
- 14 Aug Open the input-purposes collection; the 05 return invented its findingb178ae361
"What a form field may be about" joins the WHATWG autofill field names against WCAG 2.2's Input Purposes list. Fifty-four tokens, fifty-three of them shared, and the one that is not is one-time-code — the only token that is about proving who you are rather than describing who you are. WCAG did not write a taxonomy of what a control can be for; it adopted the one browsers were already using to fill in forms.
- 14 Aug Open the accommodations collection; bank the seven research returnsc6956bf2a
"What the platform learned to ask" joins the user-preference and interaction media features of Media Queries 5 against Baseline dates. The finding is chronological, so the page is a chronology:
- 14 Aug Footer marks and imprint; stop the citation hiding inside the railc86a83fcc
The two profiles are the ones the rest of the estate already declares as sameAs — mikko.gr, 618.institute and waypoints.now all carry the same pair — so they are taken from there rather than guessed, and they now go into this site's own JSON-LD as well, which had the curator with no sameAs at all.
- 14 Aug Correct the citations, fix the switcher, drop cross-readings, open the ACT collection7c25d7b8b
The citation styles were wrong in every case. They printed "Mike Oustamanolakis, PhD" verbatim, and no style here carries a postnominal — a doctorate is not part of a name bibliographically — while all four invert the author, family name first, and APA and Harvard want an initial rather than the given name in full. The engine now takes family and given separately and builds the right form per style: Chicago and MLA i
- 14 Aug Stack the menus, draw the journeys as paths, and take the light theme to AAAe8c1d7715
The two reconstructions were side by side, which reads as a diff. Stacked they read as two documents, which is what they are, and each one now gets the full width and three columns — the whole UK menu is legible at once, then Hong Kong's. Flags mark the market, aria-hidden, since the market is already named in text.
- 14 Aug Floor 5: the two menus and three journeys; briefs for commissioned research82c1cc31d
The bank-navigation specimen carried the count and the trade-off but not the object. It now carries the menus themselves — every label under HSBC UK's Wellbeing slot against every label under HSBC HK's Insights, drawn as menus rather than described as lists, because reading the whole of one at once is the argument. Twenty-one destinations in the vocabulary of a person in trouble; twelve addressed to somebody with cap
- 14 Aug Authored floors to markdown; a page per room; citation tool; AAA footer49384ef84
The authored entries no longer live as prose inside the v3 HTML prototypes, scraped out by a 400-line regex whose own comments record four occasions when it silently ate a field. They are markdown under astro/src/content/, one file per room, and the house rules are a Zod schema the build enforces: a principle without its limits does not ship, a pattern without a two-sided judgement does not ship, a failure without it
the buildingaccessibilitybasementaccidental commercecookie bannerdark
July 20261
- 31 Jul Launch interfaces.institute — six of nine levels open209e476bd
The site is live at https://interfaces.institute. This is everything needed to rebuild it elsewhere: the prep scripts, their validated output, the v3 prototypes the authored floors are ported from, and the Astro source.
the buildingbasementcollectionsaccessibility lawcomponent census
Corrections are the entries worth reading twice. When something published here turns out to be wrong, the fix and the error both stay on the record — the Basement is where the largest of them live, with the reasoning intact.