---
title: "The accession register"
url: "https://queering.earth/changelog"
updated: "2026-09-09"
description: "The changelog for Queering Earth: every sheet as it was mounted, every plate that came off again, and every label we corrected — including the attributions we got wrong and exactly how they were fixed."
licence: "CC-BY-SA-4.0"
licence_url: "https://creativecommons.org/licenses/by-sa/4.0/"
attribution_ledger: "https://github.com/Stimpunks/Queering-Earth/blob/main/ATTRIBUTIONS.md"
generated_by: "tools/make-markdown.mjs from the page's own <main> landmark"
---

1. [Queering Earth](https://queering.earth/)
2. [The cabinet itself](https://queering.earth/the-cabinet-itself)

Register · the changelog

# The accession register

A herbarium keeps a register: a ledger of every specimen as it entered the collection, and of every annotation slip pinned to a sheet afterwards — a name re-read off the plate, a locality corrected, an identification withdrawn. This is that book for this site. It is backfilled from the whole commit history and kept up from here.

[Straight to the latest accession](#latest) — the register runs newest first, so that is the top of it. The list below is every accession in the same order.

It records four kinds of change: a **sheet mounted**, a sheet **re-determined** — reworked enough that what it shows is different — a **label corrected**, and work on the **cabinet**, meaning the site itself. Typo passes and small tidying are left out. Anything that changes what a sheet *claims* is in.

The full working — every quotation, whose it is, where it came from, and the day somebody read the primary and confirmed the wording — is in `ATTRIBUTIONS.md`; the reasoning behind every settled and open question is in `DECISIONS.md`. Both are in [the repository](https://github.com/Stimpunks/Queering-Earth), which is the source of truth for this site. If something on a sheet is wrong, it belongs in this register. [Say so](https://github.com/Stimpunks/Queering-Earth/issues), and it will be.

Why the corrections are in the ledger and not in a drawer

Our sibling site [Star Stuff](https://starstuff.earth/) risks a wrong fact. This site risks a wrong *attribution* — a definition trimmed to fit a masthead, an object quietly generalized, a paraphrase left wearing somebody’s name. Nearly every page here carries somebody else’s words, and the citation is the only evidence a reader has.

So the errors are entries like any other. A byline that put Helen Edgar’s name on prose she did not write. A journal citation handed to us with the wrong issue and the wrong pages. A caption that said Miranda had never seen anybody but her father and Caliban, when the play has her half-remembering four or five women. Each one is named below with what it said, what it says now, and how it was caught. The working has always been in the repository. **This page is the account of it that a reader can actually reach.**

- Mounted
- Re-determined
- Label corrected
- Cabinet

2026 · 23 September · latest

## Sheet No. 15, and four words that had been put into an Elder’s mouth

Helen Edgar’s essay on foraging between ways of knowing, mounted with three gaps left open on its own face — and two attributions corrected before it went up, one of them the worst kind this cabinet can ship.

MountedSheet No. 15 — [Metaphoray](https://queering.earth/metaphoray), an essay

**A botanist’s word for the walk, and a writer’s word for the same walk.** Robin Wall Kimmerer coins *metaphoray* on page 46 of *Braiding Sweetgrass*, a few paragraphs after asking whether science and traditional knowledge might be purple and yellow to one another. The sheet takes the word and reads the gap between what a herbarium label can hold and what the plant actually was.

**The masthead is goldenrod and asters**, which is the essay’s own image and Kimmerer’s. The plume is a mass on a stratified grid rather than a chain of puffs, and the asters were drawn wrong first: a violet disc the size of its own rays, so the rays vanished inside it and five flowers read as dark dots. Redrawn as petals rotated about a centre, which is how this house draws a flower. **Looked at rendered rather than trusted from the markup**, which is the only way that fault surfaces.

Label correctedElder Albert Marshall did not say “for the benefit of all who come after”

**The draft had four words in his mouth that are not in the paper.** Bartlett, Marshall and Marshall report Two-Eyed Seeing as using both eyes “for the benefit of all”. The phrase *who come after* appears nowhere in either copy Ryan put in the tray — checked rather than remembered. It is plausible, it is adjacent, it carries a seven-generations sense, and it is an addition to a living Elder’s articulation of his own people’s concept. **On a sheet whose argument is that Indigenous knowledge is not raw material for somebody else’s story, that was the worst available place for it.** The reported wording is now quoted whole.

**And *Etuaptmumk* is not in that paper at all.** Zero occurrences. The draft named the Mi’kmaw word and cited the article for it, which sends a reader somewhere the word is not. The term is Marshall’s and travels with him, but nothing carrying it has been read here, so the sheet names it and cites nothing. **An open gap is honest; a citation that does not contain what it is cited for is not.**

**Two copies, and the difference is format rather than text.** The published first page as the journal serves it, and the authors’ twelve-page e-offprint, which is the only one carrying the body and so the copy actually read. Same DOI, same pagination, abstracts identical character for character — compared rather than assumed, because *two editions* is exactly where a difference hides.

Label correctedA gloss that was ours wearing Kimmerer’s name, and two citations lifted

**Her definition is narrower than the use this sheet makes of it.** A metaphoray is the writer’s walk and what it gathers is metaphors. The draft had it as carrying meaning between registers of knowing — a good reading, and hers only by inheritance. The sheet mounts her sentence whole and then says in its own voice that the extension is the sheet’s. **This is the tightened-source failure running backwards**, broadened rather than trimmed, with the attribution left attached.

**A posthumanism claim was carrying her name and now carries none.** That the human was never a bounded observer outside the systems it studies is real argument and it is not in *Braiding Sweetgrass*. The citation came off rather than being re-pointed at a book nobody here has opened. A stimming claim cited to *Neuroqueer Heresies* came off on the same reasoning; Walker is still cited where the neuroqueer argument is demonstrably his.

**A sentence claiming the masthead phrase comes from Walker’s subtitle was written and then rewritten before it shipped.** That is precisely what [the ledger](https://queering.earth/ledger) refuses to say — Helen wrote the phrase in the founding brainstorm, *post-normal* has its own lineage in Funtowicz and Ravetz, and the settled position claims nothing about how it reached us. **A new sheet restating an old finding is where a settled nuance quietly gets lost**, and it nearly did.

Label correctedThe sheet shipped still speaking as a draft, and said it had no number while carrying one

**Caught by Ryan within the hour, on the published page.** *What this sheet does not settle* ended with a paragraph reading “No social card, no number, no stamp. Those are accession and they happen at publication, not here.” — on a sheet with a social card, the number 15, and a stamp two inches below it. The posthumanism paragraph promised a source “before this is accessioned”, which had stopped being true at the moment of accession. Both are gone, and the section now describes what is open rather than what publication would later do about it.

**The cause is worth more than the fix.** Five edits were applied when the draft block came off. Two ran through a loop that asserts each pattern matches exactly once and stops if it does not; three were bare string replacements written inline, with no assertion. **The kicker matched, the Etuaptmumk sentence matched, and the accession paragraph did not** — its whitespace differed from the guess — so it silently did nothing and published a false statement. A replacement that matches nothing and says nothing is indistinguishable from one that worked.

**It cleared every gate, and no gate here could have caught it.** The full sweep over thirty pages passed: the markup was valid, the contrast fine, nothing overlapped or scrolled. **A sheet asserting it has no stamp while rendering one is not a shape a checker can recognise**, which puts it beside the deadname rule and the bookmarklet — an editorial claim somebody has to read. The check that would have caught it is reading the published page, which is what happened.

**The provenance line gains its first correction on its mounting day**, which is the eighth sheet of fifteen to be corrected that fast and the reason --mended was drawn.

MountedThree gaps published open rather than papered over

**The sheet ships saying what it does not settle**, which is the point of that section rather than an apology for using it: *Etuaptmumk* wants a source of its own, the posthumanism sentence wants one or wants rewriting as ours, and the stimming claim wants checking against the literature it probably belongs to. **Helen signed it off in that state.** The alternative was to invent plausible citations, which is the one thing this cabinet exists to refuse.

**The citation style is still the draft’s own** — parenthetical (Author, Year) rather than naming each source in a sentence. The same question is open on *Time Present, Time Past*, and the two want answering together rather than one at a time.

2026 · 14 September

## A way back to the front, and the four marks that were not it

The breadcrumb had been a route home on every page since the drawers shipped, and it was not the route anybody reached for. The tray has one now, drawn as a glasshouse.

CabinetA labelled home control, first in the instrument tray

**A trail and a control are different things, and both stay.** .qe-crumbs says where you are; it sits inside the masthead, below the tray, and on a sheet it is the third thing down. A reader in the middle of nine thousand words wants the other one. Ryan kept looking in the top bar and finding nothing there, which is the whole of the case.

**It carries a word, and the unlabelled licence next door does not reach it.** The fox and the hedgehog are allowed to be a picture alone because nothing is withheld — [that page](https://queering.earth/two-cohabitating-modes) is in every footer, in the drawers menu and in the finding aid. The home page is the destination a reader is most likely to want and least likely to hunt for, so hiding it behind a drawing would have been the original complaint arriving again wearing a mark.

**At 320px the tray is three lines now rather than two**, and that was measured rather than discovered later: 133px of tray against 91px, no target under 44×44, no two hit areas touching, and scrollWidth equal to the viewport at 320, 375, 414, 768 and 1280. Both overlay panels hang off the tray rather than off their own summaries, so neither moved — which is the fault the drawers control found the hard way, and the reason that rule exists.

CabinetWhy a glasshouse, and why not a cabinet, a mended cup, or our own leaf

**Four marks were drawn, rasterised at 16, 20 and 27px, and then magnified off a canvas rather than redrawn large.** A vector redrawn large is a lie about what a reader gets — the lesson favicon.svg paid for twice and the pocket lens a third time. What the pixels said was that a pitched roof is the only silhouette that reads as *home* at 16px, and that everything else needed the word to carry the entire meaning.

**The site’s own mark was tried first and lost.** Home as the logo is the oldest convention on the web, and the pressed leaf does not survive the trip: it has a paper ground and a 64px canvas on the icon, and at 20px in moss beside the lens it is a dark blob with less character than the instrument next to it. Its midrib in paper is a white gash that splits the leaf into two lobes and reads as a pea pod. And --qe-rust goes pale pink in the drawer, so the pin that makes the favicon legible becomes a pale bulb at the base.

**A chest of drawers was refused without drawing it.** [The cabinet itself](https://queering.earth/the-cabinet-itself) is a drawer in the menu two controls along. One picture, two destinations.

**So was a mended cup, and that one is a house rule rather than a matter of taste.** Kintsugi is already spent here: --qe-marigold marks a re-determination in this register and the join in a restored attribution, and [a seam requires an actual repair](https://queering.earth/design). A gold-mended mark in the tray would have asserted a correction that never happened, an arm’s length from the real mends on every provenance line on the site.

**The wabi-sabi that survived is the ridge, set off centre.** The apex sits at x 11.2 against a body centred on 12, so the two slopes differ and the bays run 4.8, 5.4 and 4.6. It is visible at 20px, it is the same wonk axis already running on this site’s type and on the rail’s ticks, and it claims nothing — which is the only licence ornament gets here.

**Two versions were drawn wrong first.** A full glazing grid with a transom and one missing pane goes muddy by 20px, and the missing pane does not read as a void at all: it reads as a dark window, and sitting off centre it drags the whole mark sideways. Then a shoot drawn up through the open door — the botanical cue this mark otherwise lacks — **read as a small person standing in the doorway** at the size it ships at. That is the lilac panicle’s lesson in a fourth costume: do not put one small mark where the eye is expecting a figure.

2026 · 14 September

## The cabinet can be installed, and the pin Android would have cropped off the mark

A web app manifest, which the site had never had — and a 512px icon that had been generated on every run since the first week and referenced by nothing at all.

Cabinet`site.webmanifest`, and why it says `minimal-ui` rather than `standalone`

**Installed, this site would have had a generic browser icon and its page title.** A manifest is the declarative half of the thing the acronym covers — it runs nothing, caches nothing and makes nothing work offline; it says what the mark is, where the window opens, and what colour the chrome around it should be. The other half is a service worker, and there is still none here.

**`display` is `minimal-ui` on purpose, and that is the one field in it that is an argument rather than a fact.** `standalone` hides the address bar, and this is a site whose whole practice is that [/on-being-ill](https://queering.earth/on-being-ill) is a real address a reader can copy, share and check us against. An installed copy that hides the bar the address sits in would be the cabinet quietly withdrawing the thing the [ledger](https://queering.earth/ledger) exists to make possible. `minimal-ui` is still installable in Chromium and keeps the address in view.

**`start\_url` is a bare `/`, against the spec’s own example.** That example appends a tracking parameter so installed launches can be counted separately; there is nothing here that could read it, [/privacy](https://queering.earth/privacy) says so, and it would mint a second address for the home page on a site whose redirects exist to ensure every page has exactly one.

**`short\_name` is the site’s name and not a nickname.** A home screen may truncate *Queering Earth*, and being truncated by somebody’s launcher is not the same as us keeping a second, shorter name for the site — which is the drift this register refuses everywhere else.

CabinetA maskable icon is not a copy of the 512, and the measurement is what says so

**Android applies its own mask and guarantees only the central 80% of the square.** The mark is a pressed leaf pinned with the wordmark’s rust dot, and at the scale every other icon here is drawn at, the drawing reaches **0.484 of the square from its centre** against a safe radius of 0.400 — measured out of the finished PNG, not calculated. **The pin is the part that goes.** A leaf with no pin is a leaf; the pin is what says *specimen*, and it would have been cropped off on every Android home screen with nothing anywhere looking wrong.

So the maskable one is a separate render at its own scale rather than a `purpose` on an existing icon: an icon declared “any maskable” is used at both jobs, and padded enough to survive the mask it is a small leaf adrift in a field of vellum everywhere the mask is not applied. The ground was already full-bleed paper with no transparency, which is the other half of a maskable icon done right, so only the scale had to move.

**0.33 was the arithmetic and 0.32 is what shipped.** The first re-render measured back at 0.400 of the square exactly — on the line, with no margin for a platform that rounds its mask the other way.

**`images/icon-512.png` had been written on every run since the day the mark was drawn — 7 September, before this register existed to record it — and was referenced by nothing** — not a page, not `\_headers`, not the sitemap. Somebody laid this groundwork in the first week and stopped.

CabinetA manifest fails silently, so three gates learned the word `manifest`

**There is no symptom.** A manifest served as the wrong type, or naming an icon that is not there, is simply ignored: no console error, nothing wrong on the page, and an install affordance that never appears. So `\_headers` types it explicitly — the `.avif` lesson, where production sends `nosniff` and a type the local server guesses is one the live site cannot recover from — and `tools/serve.mjs` learned it too, so local and live agree.

**Two gates had allowlists that would not have seen it.** `check-cache.mjs` and `check-metadata.mjs` each decide whether a `link` is a fetch by matching its `rel` against a list, and neither list held `manifest`. The one asset every page on the site fetches would have gone through the undeclared-asset check unseen, and a manifest pointed one day at somebody else’s CDN would have gone through the third-party check unseen. **An allowlist is only as good as its newest entry**, which is the argument for adding one in the same edit rather than the next.

**Check 11 is the new guard**, and it checks the copies rather than the judgements: the two colours against the `--qe-paper` in the stylesheet’s `:root` block, the name and the description against the home page’s own, every icon against the file on disk *and against the size it claims to be*, and every page for the link. It also guards the one number the pixels cannot give back — Node has no image decoder, so the maskable scale is measured where the drawing happens and the gate only keeps the constant from being tidied back up. **Made to fail in five shapes before being believed**, each reverted after: a page that does not link it, a colour that is not the paper, a `sizes` that lies beside an icon that is not there, the maskable scale raised, and a description typed rather than copied.

2026 · 14 September

## Sheet No. 14, and a privacy page that was false by two

A wall, recast from our sibling site’s reading of the same life — and a correction to [/privacy](https://queering.earth/privacy) that had nothing to do with it and was found on the way past.

Mounted[Known and Felt and Seen](https://queering.earth/known-and-felt-and-seen), Sheet No. 14 — Dolly Parton, 1946–2026, read against Tressie McMillan Cottom

**A wall rather than a reading, because the specimen is a person.** Nine slips in nine hands across forty-seven years — Lenora Ross in 1974, Parton herself five times between 1984 and 2021, Cottom three — and they do not agree. The second wall on the plate, after [No. 8](https://queering.earth/monotropa-uniflora).

**The hinge is that weed is not a rank.** Taxonomy has no such category, because a weed is not a kind of plant but a verdict about a place, passed in a hand that is never the plant’s own. Set beside Cottom’s distinction between visibility and legibility — being a thing that is *supposed to exist* — it gives the sheet its whole argument: a weed is perfectly visible and entirely illegible.

**Cottom’s critique sits inside the sheet rather than after it.** Her reading — that the drag was survivable because the ground under it was unmarked whiteness — is the sharpest thing written about Parton, and a determination slip that leaves out the awkward reading is not a kinder slip, only a less true one. The sheet does not resolve it and says so.

**Our sibling site read the same life through physics and this one reads it through taxonomy.** Star Stuff’s [*No One Had to Qualify*](https://starstuff.earth/dolly-zine) turns on a star that cannot aim its light; this turns on a plant that cannot appeal its name. **The quotations were traced to their primaries for that zine and are not re-walked here** — Ryan’s call, recorded in the ledger, along with what this sheet adds that the zine does not.

Three click-to-load recordings, one per instance of the argument. No new capability: the facade, the drawn poster and the one named origin were all already here.

Label corrected[/privacy](https://queering.earth/privacy#the-embed) said there were three embedded recordings when there were five

**The Glass and the Beethoven shipped with [Sheet No. 12](https://queering.earth/most-quiet-need) and were never added to the list.** The page went on naming three, which made a binding statement of practice false about its own subject for as long as that stood. It names all eight now, and says on its own face that two of them sat there unlisted, because quietly correcting a document like that one is the thing this cabinet refuses.

**Nothing gated the count, and that was structural rather than an oversight.** `check-metadata.mjs` checks that every third-party *origin* our scripts can reach is named on that page — and one origin covers any number of videos, so a missing recording was invisible to it by construction. The list is kept by hand, which is the kind of list this register keeps warning about. **It is gated now**, by the check below, written the same day on Ryan’s call.

CabinetThe three debugging ports were Star Stuff’s as well, which is why the original disaster happened

**The rendering gates were ported from our sibling site and the port numbers came with them**, comments and all. 9412 is the contrast gate in both repositories; 9413 is overlap here and `check-sheets` there; 9414 is width here and two gates there. **Two checkouts on one laptop could not run their rendering gates at the same time**, and the symptom read as a broken gate rather than a busy port — which is also the shape of the five-day orphan this file already records.

**The refusal was right about the danger and wrong about the remedy.** `cdp.mjs` refused to run if anything answered on its port, which protected against measuring in a stranger’s browser by declining to measure at all — and fired on a neighbour doing nothing wrong. The number a gate asks for is now a **preference**: a busy port is stepped over in hundreds, 9412 to 9512 to 9612, on ladders that are disjoint so the three gates never chase each other onto one another’s ports.

**And the guarantee got stronger rather than weaker.** Once the endpoint answers, the listening process is walked up its parent chain to the child we spawned — Chrome’s helper holds the socket, so the listening pid is routinely not the one we started, which is what makes this an ownership proof instead of a guess. **The old refusal never proved anything**; it only declined to be in the room.

**A busy port now says which kind of busy it is**, because that is the judgement a person gets wrong under pressure: a headless Chrome whose parent is still running is somebody else’s sweep in progress and must be left alone, and one whose parent is gone is an orphan and safe to kill. **That distinction was got wrong in this very session** — a Chrome was killed on a heuristic that could not tell the two apart, and the parent was checked afterwards rather than before.

**Star Stuff is not edited from this repository, so the whole fix is on our side.** Proved in six shapes and every decoy cleaned up after: a quiet ordinary run on the preferred port; a live holder, correctly named as live with the advice to leave it; an orphaned holder, correctly named with the pid to kill; a full parallel sweep with all three preferred ports blocked, which is the exact case that refused this morning and now passes in 305s; the ladder exhausted, which still refuses and exits 1, because a gate that cannot own its browser must not measure in anybody else’s; and the precedent this follows — `.claude/launch.json` stopped hardcoding 8766 for the same reason, a second session being unable to preview the site at all.

CabinetDeleting a draft branch does not delete its deploy, and three files said it did

**Measured minutes after this sheet was published**, when the branch had been deleted from both ends: `draft-known-and-felt-and-seen--queering-earth.netlify.app` answered **200**, still serving the pre-publication draft with its review layer attached, and a full copy of the site beside it. Netlify keeps the last branch deploy at its subdomain after the branch is gone.

**The same wrong sentence was in three places** — this site’s own build notes, `start-draft` and `publish-draft` — written once and copied twice, and never checked in any of them. That is the drift this register exists to catch, in the files that describe how the register is kept.

**The `noindex` is what makes it survivable, and it is doing more work than we knew.** The orphaned deploy inherited `X-Robots-Tag: noindex` from the drafts base, so it cannot be crawled. **The live risk is a reader rather than a crawler**: anybody holding the old review link keeps reading a superseded draft and may annotate a version that no longer exists. Removing the deploy is now a step in `publish-draft`, and it is a dashboard action — **nothing in this repository can do it and no gate can see it**, which puts it in the same small class as the bookmarklet: a check a person has to run.

CabinetThe recordings list on [/privacy](https://queering.earth/privacy#the-embed) is checked against the facades that exist

**Check 7c.** Section 7b asserts that every third-party *origin* our scripts can reach is named, which is the check that matters for what a browser may talk to and is **structurally blind to how many recordings there are** — one origin covers any number of videos. So it counts the `data-embed-id` facades on every page, reads the list under `#the-embed`, and compares them per page. It also reads the number the page says out loud in its own prose, because a list that grew while the sentence above it did not is the same failure one layer up.

**Made to fail in five shapes before being believed**, each reverted after: the historical bug put back — the two Sheet No. 12 recordings unlisted with the count sentence agreeing with the short list, which is exactly how it shipped; a count word wrong on its own; the list naming a recording no longer on the page; a new facade added to a sheet that had none, which is the case that will actually arrive next; and the two ways the check could be quietly defeated — rewording the sentence it reads, and renaming the section’s `id`. **Both of those fail loudly rather than going silent**, because a gate that stops applying when somebody edits around it is worse than no gate.

Cabinet`check-markup.mjs` stops reporting PASS over a page it never read

**A named target that could not be found printed `SKIP not found` and the run went on to report `PASS`, `0 problem(s)` and exit 0.** It happened here: a page was checked from a branch it did not exist on, and the gate certified it — 0 tags, 0 ids, 0 elements balanced, and a clean bill of health.

**This is the empty-pass fault the rendering gates already guard**, arriving in the one gate that had no guard for it. The wording is taken from theirs, because the reasoning is identical: a page that measures nothing reports zero problems, which is indistinguishable from a clean page in every other line of the output. Unread targets are reported in their own block, never mixed into the problem count — an unmeasured page is a broken run, not a bad page — and under `--check` the run fails.

Proved in four shapes: the missing file alone; a missing file beside a real one, where the real page must still be measured and the run must still fail; without `--check`, where it reports and does not gate, which is this tool’s stated contract; and a real page, which still passes.

Label corrected[The plate](https://queering.earth/the-plate) was counting its own kinds wrong

It said *eight of the ten* readings and *one so far* for essays, against fourteen sheets with four essays on them. Counted off the plate, which is the authority: eight readings, four essays, two walls.

2026 · 13 September

## A link that went nowhere, and the gate that now says so

Written into this register earlier today and caught only because somebody went looking. Nine gates had passed it.

Label correctedAn accession pointed at [what is unresolved here](https://queering.earth/two-cohabitating-modes#unresolved), which had no address

The block had the words and no `id`, so the link named nothing. **A fragment that matches no element is not an error** — the browser simply does not move, the console says nothing, and the reader who clicked concludes this site is broken in a way they cannot report.

**The block was given an address rather than the link being aimed at the section around it.** The sentence here is about that block: pointing it one level up would have left a working link and a slightly less true record, which is the trade this register exists to refuse.

CabinetCheck 10: every authored fragment link lands on something

**The cross-page half is the half that matters**, and it is why this could not be a per-page check. Ids here are authored topical anchors *precisely so a reworded heading keeps its address*; seven anchors point at the plate alone, and nothing verified that one of them landed. So the gate builds its map of ids from every page in the cabinet even when the run is scoped to a single one.

**It reads anchor elements and never the string `href=`.** A code span documenting a link writes the tag with only its brackets escaped, so the href survives verbatim and a text search would match this site writing about its own links — [the same fault](#a-2026-09-13-edit-layer) the review-layer guard already records, arriving a third time. Proved by injecting one beside three real faults: the three were reported by name, the documentation was not, and the count of links resolved moved by four rather than five.

The contents list, the rail and the entry index never appear in it: they build their links at runtime from ids they have just read, so they cannot be wrong. What the gate sees is what a person typed. **864 of those resolve today**, and the number prints on every run, because a check that measured nothing looks exactly like a clean one.

2026 · 13 September

## The header that says what a page may reach, and the hash that has to be generated

Ryan asked how strict the Content-Security-Policy was, and whether tightening it would break the new editor. It had been one directive for months on a reason nobody had measured.

CabinetEleven directives where there had been one

`\_headers` had carried `frame-ancestors ‘none’` and nothing else since the header shipped, with a comment saying a `script-src` would kill the snippet every page runs before first paint. **That was a plausible reason nobody had checked.** Counted instead: **one executable inline script on the site, byte-identical on all twenty-nine pages**, so a single hash covers every page. The twenty-eight JSON-LD blocks need none — a data block is never executed, and hashing them would have buried the one hash that matters among twenty-eight that do nothing.

What is locked now: scripts to this origin and that one hash, no `eval`, no inline handlers, no plugins, no base tag, no form submission anywhere, and frames only from the one embed the privacy policy already names. **`style-src` keeps `‘unsafe-inline’` and that is not laziness** — 1,299 inline `style` attributes carry each sheet’s own foxing seed, stamp rotation and card colours, and **a CSP hash does not cover a style attribute**, only a `<style>` element. The alternative was not a stricter policy; it was deleting the per-page palette.

Cabinet`tools/make-csp.mjs`, because the hash cannot be kept by hand

The snippet it hashes **lists the nine typefaces the picker offers**, so narrowing the picker changes the hash in the same commit — and **a stale hash does not warn.** The browser simply refuses the snippet on every page, and every reader who asked for the cabinet or for plain view is shown the other thing before the stylesheet catches up: the exact failure the before-first-paint rule exists to prevent, arriving silently and visible only to somebody who had a preference stored and was looking for it. So the policy is written between markers by a tool, `check-cache.mjs` fails when the header and the pages disagree, and the generator runs **last** of the five, after everything that can rewrite a page.

**Proved in a browser before it shipped, both ways.** The policy went into a copy of the home page as a `meta` tag with a preference stored: the snippet ran and the cabinet came up. The same copy with one character changed in the hash refused it — **and Chrome’s own message named the hash the generator had computed**, which is the browser confirming the arithmetic rather than us confirming it. The gate was made to fail and then to pass the same way.

CabinetA permissions policy, and the five exceptions that are the whole of it

The site asked the reader’s device for nothing and said so nowhere. It says so now: thirty-five capabilities denied outright — camera, microphone, geolocation, payment, USB, serial, Bluetooth, MIDI, the motion sensors, the credential and attribution APIs. **None of it costs a reader anything**, because this site calls no gated feature of its own, which was checked rather than assumed.

**A deny-everything list would have broken the one control a reader actually presses.** An `iframe`’s `allow` attribute can only narrow what the page already has — it cannot grant what the header denies — so a blanket denial would have left whoever pressed the Eliot facade with a player that would not start and a fullscreen button that did nothing. Five features are delegated to that one origin, never to everything, and only fullscreen also keeps this site itself.

**`clipboard-write` is not named here, and looking it up is what saved it.** Both injected layers copy out through the clipboard, so it seemed the thing most in need of protecting — and it is not a directive in the registry at all. Writing it would have been [the `sitemap` relation](#a-2026-09-11-rels) a second time: a token that reads as standard, is not, and rides along on every response saying nothing.

**What is left unnamed is the other half of the care.** Screen-reader announcements, and a reader’s own translation and speech tools, are not capabilities to take away from somebody trying to get at our words. Denying them would have looked more thorough and been less careful.

Proved behind a throwaway proxy putting the real header in front of the real site, because **a permissions policy cannot be set by a meta tag** the way the content policy was tested: camera, microphone, geolocation, payment and USB all refused for our own pages; all five player features allowed for that one origin and refused for an unrelated one; and the facade pressed, the player built, and Eliot read.

Label correctedThe bookmarklet named this site by name, where it should have asked where it was standing

It loaded the editor from `queering.earth` written out, which worked everywhere because nothing constrained it. **Under `script-src ‘self’` that breaks on exactly the host it was built for** — a draft, where a contributor reads a sheet that has not been mounted. It asks for `location.origin` now, so it fetches the editor from whatever site the reader is on.

A bookmarklet’s own `javascript:` run is the browser acting on your gesture from outside the page, so the page’s policy does not reach it; **the script it injects does**, which is the whole of the fix. **Confirmed on production the same day**, pressed from a real bookmarks bar under the live header. That exemption belongs to the browser rather than to this site, so nothing here can gate it: a browser that stopped honouring it would break the editor silently and every gate would still pass. It is the one check on this list a person has to do, and it wants doing again after any change to `script-src`.

**The same policy refused the try-it-now press on [the colophon](https://queering.earth/design#editing), and that was measured rather than guessed.** The bookmark hung there as a link you could drag *or* press where it hung, and a hash does not apply to a `javascript:` navigation without `‘unsafe-hashes’`. Re-opening that site-wide to buy back one convenience on one page is a bad trade on a site with no user input to protect, so the words changed instead: the page says drag it, and says why. A contributor who reads that sentence learns something true about the site rather than being told a rule.

2026 · 13 September

## A way to change words without editing HTML, and a policy that had been miscounting itself

Ryan asked whether Decap, Sveltia or TinaCMS would work here. None of them can, and the reason turned out to be measurable.

CabinetNo CMS fits, because there is no content model to fit one to

All three are git-backed editors over collections of files with named fields. **A sheet here carries eighty to a hundred and twenty hand-drawn SVG elements, eight to thirteen authored section ids, forty to seventy inline style attributes seeding its own foxing and stamp rotation, and JSON-LD whose `about.author` is a judgement about who made the thing being read.** There are no fields to put in a schema. That is [the standing reason](https://queering.earth/what-is-settled) — the layout is the argument — stated as a measurement rather than a conviction.

**The deferral now rests on one leg.** Its third reason was struck yesterday; its second said Netlify Identity’s git-gateway was being sunset, and Netlify reversed that on 19 February 2026. The remaining reason is the one that was always carrying it.

Cabinet`edit.js`: click a paragraph, change the words, copy out a patch

Nothing on any page loads it — a bookmarklet injects it, so a reader’s visit fetches nothing extra and no page markup changed to allow it. It cannot save, which is the design: saving from a browser needs a token in the page, and that is the account problem the CMS question was trying to avoid.

**What it refuses to edit is the important part.** Quotations, captions and citations are not editable, and the page says why where you try. This site’s characteristic failure is a tightened source rather than an invented one, and a tool that let anybody reword a mounted quotation in two clicks would be a machine for producing exactly that. The accession stamp and the provenance line are refused for the same reason in another key: a record you can edit in a browser is not a record.

**The patch is decoded text and the first version claimed it was the file’s bytes.** `innerHTML` decodes entities, so a before-string matched nothing for any paragraph holding an apostrophe. Re-encoding cannot rescue it either: the sources are mixed — 1,300 raw em dashes beside 1,512 `&mdash;` — and no encoding reproduces a file that is not consistent with itself. So it says what it is, and tells whoever applies it to match on decoded text and stop if nothing matches exactly. Proved both ways before it was believed.

MountedThe editor is distributed from [the colophon](https://queering.earth/design#editing), as something to drag

A bookmark is only useful if somebody can install it, so it hangs at the foot of the colophon where “how this site is made” already lives. **A `javascript:` link runs on a click as well as surviving a drag**, so it is try-it-now and keep-it-later in one control, and the hint beside it says both.

It loads from `queering.earth` whatever page it is pressed on, which means **it works on a draft host as well as the published site** — a contributor can edit a sheet that has not been mounted yet. Verified by pressing it on a page served from somewhere else entirely and watching the editor start.

The section says what the editor refuses to touch and why, because that is the part worth publishing: a quotation, its caption and its citation are not editable, and neither is the accession stamp or the provenance line.

Label corrected[The privacy policy](https://queering.earth/privacy) said “two values” and described seven

Found while adding the editor’s key to it. The sentence had been right when it was written and wrong since the five reading settings arrived beside the two view controls; the list below it had grown and the count above it had not, and the paragraph after it still said “neither.” **A policy that miscounts what it describes is a policy that is wrong about you**, which is the reason this is a correction and not a tidy-up.

The new key is named there with the thing that matters about it: it exists only if somebody deliberately starts the editor, it holds only the words changed on one page, and the only way out of the browser is the reader’s own clipboard.

2026 · 13 September

## Sheet No. 13, and the first sheet written by Helen Edgar

A zine arrived, and what it argued turned out to be about this cabinet. It is mounted as an essay; the zine setting was built, measured and dropped on the way.

Mounted[Held, Not Fixed](https://queering.earth/held-not-fixed), Sheet No. 13, an essay

Helen Edgar on lost things and the cabinets we keep for one another. Emily brings a broken object into the shop and it is looked at rather than mended; a herbarium sheet makes one flattened plant stand for every other, which is how a “normal” mind gets defined; and Ole Worm kept a unicorn horn that stayed wonderful after he proved it was a whale.

**The argument the sheet exists for is the third move.** What gets called a special interest in clinical language is, from the inside, a small cabinet of curiosities kept and tended by the person who fills it. Three artists are held against that — Beuys keeping a name the textbooks dropped, Dion leaving the species blank, Klee gathering a herbarium for ten years and never using it — and only then is Dinah Murray’s monotropism named, after the experience rather than before it.

**The drawing is a pressed specimen held down by three paper straps**, which is the title stated as a fact rather than as a metaphor: strapping is one of the three standard herbarium mountings and it is the reversible one, so a strapped sheet can be lifted and re-determined.

MountedTwo plates from *Museum Wormianum*, 1655

Wingendorp’s frontispiece — the room itself, a polar bear on the shelf and three walls of lettered categories — and the woodcut on printed page 283 of the narwhal skull with the tusk still in it, which is the figure by which Worm showed the horn was a whale’s tooth. **The leaf was found by full-text searching the scan for *Unicornu*** rather than by guessing, and the printed folio confirmed it.

Public domain, digitised by the Biodiversity Heritage Library from the Smithsonian Libraries copy, and the rights were read at the item rather than taken from the blog post that led us to it. **The narwhal is cited to the Internet Archive leaf and not to a BHL page id**, because BHL sits behind a bot wall and the id could not be verified: a guessed citation is worse here than an inconsistent one.

MountedAn introduction to Ole Worm, who had been arriving mid-sentence

Helen’s note after publication: he comes out of nowhere. He did — the sheet named him in the second sentence of a paragraph about cabinets in general and went straight into the unicorn horn, so a reader met the anecdote before the man. Three sentences now say who he was: a Danish physician and antiquary who taught Greek, Latin, physics and medicine at Copenhagen, was physician to Christian IV, and read runestones for years. The engraving above him is identified as his own room.

**One detail was checked rather than copied.** Burkhardt’s *Verzeichnis eponymischer Pflanzennamen*, the authority consulted when this sheet’s plates were sourced, makes him physician to Christian V. It was Christian IV: Worm died in 1654 and Christian V acceded in 1670. The slip is noted in the library copy so nobody takes that detail from there later.

Label correctedThree corrections made while the sheet was being written

**Emily’s verse arrived with no attribution and both circulating versions are wrong.** Postgate’s own site prints it as six lines, hyphenating *cat-puss* and capitalising only the first word of each line; the reference works run two of those lines together and capitalise throughout. It is spoken narration and not one of the folk songs, which matters because those are Sandra Kerr and John Faulkner’s work.

**The type-specimen reading was cited to Flannery and is not in Flannery.** Her paper contains no instance of *ideal*, *standard*, *normal* or *deviation*. The botany is hers; the argument about how a normal mind gets defined is Helen’s, and the sheet keeps them apart.

**Flannery was cited “n.d.” and is 2013**, and monotropism was used without crediting Dinah Murray. Both fixed. The paper was already in the house library and the search missed it because it had not been indexed yet, which is the case the house rules warn about.

2026 · 13 September

## Two ways the instruments here mislead the next person, written down rather than remembered

Neither is a fault in the site. Both cost a session time today, and both would have cost the next one the same.

Cabinet`grep` reports nothing on `make-records.mjs`, and silence is not an answer

That tool fences its code-span placeholders with **literal NUL bytes**, so `file` calls it binary data and `grep` prints nothing rather than saying why. A search for a string that is plainly in the file exits quietly with no output, **which looks exactly like a file that does not contain it**. Three searches and one wrong theory about corruption before `file` was run on it.

**The fence is right and is not the thing to change.** A placeholder needs a delimiter no source text can contain, and **this is a repository whose prose is about its own markup** — every printable candidate is one an entry may legitimately write inside a code span, and the day it does, a placeholder is restored into the middle of somebody’s sentence. The cure is knowing: `grep -a`, and run `file` when a search comes back empty on a file you can read. **It bites an edit script too** — the apparent spaces around the placeholder index are NULs, so a pattern typed from what the terminal renders will never match, which is how the first attempt to teach that tool strikethrough failed on an anchor that looked correct character for character.

CabinetThe gate ports are shared with Star Stuff, and the collision is kept on purpose

The three Chrome gates here bind 9412, 9413 and 9414. **So do Star Stuff’s, because these were ported from there and the numbers came with them**, and the two repositories sit side by side. A session working in each at once is two suites contending for three ports: today a sweep hung for twenty minutes, and a later one had `check-width.mjs` refuse in 0.2s while a neighbouring `check-overlap.mjs` held 9414.

**The refusal is `cdp.mjs` working exactly as it was written to**, after [a gate spent five days measuring in an orphaned browser it did not launch](#a-2026-09-12-runner). That guard cannot tell an orphan from a live neighbour, and should not: driving either is the same mistake. **Renumbering would end the collision and end the protection with it**, in the one direction it has already paid off — so it was weighed and refused. The collision is loud and costs a wait; the alternative is quiet.

**Checking the port first was the obvious advice and it is wrong**, which was found by writing it down and then trying it in the same hour. The ports were free, the sweep started, contrast and overlap ran their 55 and 42 seconds, and width refused anyway — the neighbour had taken 9414 in the seconds before it spawned. **The window is every moment until each gate binds, and nothing outside the tool can close it.** What works is re-running the one refused gate: the refusal costs 0.2s, the other eight have already reported, and width came through on the twelfth attempt. **Wait rather than kill** — a neighbouring gate is somebody’s real run.

2026 · 13 September

## A retraction had been reading as a typo, on the page whose job is to show what was retracted

Found by reading the page rather than by any check, which is the only instrument there is for a fault made of valid markup and wrong words.

Label correctedA struck reason printed its own fences, and had done since the day it was struck

[What is settled](https://queering.earth/what-is-settled) retracts reason 3 of the CMS deferral in place, so the record shows what was believed as well as what replaced it. **The retraction was written in Markdown strikethrough and `make-records.mjs` did not know the syntax**, so the tilde fences went onto the page as text. It knew emphasis, code spans and links; strikethrough had simply never come up.

**It fails silently in exactly one direction, which is why it lasted.** An unknown *tag* makes the Markdown generator throw, deliberately, because a dropped element is a copy that says less than the page. An unknown inline *syntax* has no such guard: the characters survive, nothing is lost and nothing is converted, and the result looks like plain text that forgot to become HTML. The converter throws on an unclosed run now, the shape its emphasis parser already had.

**A single tilde is not strikethrough, and this corpus proves it five times** — `~100`, `~60px`, `~896px`, `~108px`, `~120`, all of them *approximately* in ordinary prose. The run has to be exactly two, and the round-trip proof had to learn the same fence or it would have demanded text the converter was right not to produce.

CabinetMoss letters, coral strike — and the struck sentence leaves the finding aid

**It is `del` and not a class.** A line-through drawn on a span is invisible to a screen reader, so the one mark on these pages that says *this is no longer true* would be missing for the readers least able to infer it. The element carries the meaning and the colour only shows it: `--qe-coral` on the rule, `--qe-moss` on the letters, **the colour on the strike and never on the word** — the idiom the restored attribution on [Miranda](https://queering.earth/the-tempest) already uses, reused rather than restated.

**The struck sentence drops out of [the finding aid](https://queering.earth/search), and that is correct.** The index skips `del` subtrees, because plain text has no vocabulary for *this is the reading we got wrong* and a snippet would hand a searcher a retracted claim as a current one. Checked rather than assumed: the page still indexes that passage once, through the [12 September](#a-2026-09-12-drafts) entry that quotes it as history and says why it was struck. **The retraction is findable; the retracted claim is not.**

2026 · 13 September

## A listing said five sheets had been corrected while the sheets said they were clean, and the sheets were right

Moving one provenance line made the disagreement visible. Measuring it turned the expected answer around: twelve of the thirteen lines were exactly right, and the tool was the one making a claim it had not checked.

Cabinet“Corrected four times since” for four corrections made the day the sheet went up

[What has arrived](https://queering.earth/whats-new) counts a page’s corrections out of this register and prints the total under the word *since*. **A sheet is routinely corrected while it is being mounted** — a citation checked against the primary, a story everybody tells found to be wrong — and those entries are filed to the sheet like any other. So [The Swell and the Dwell](https://queering.earth/wild-nights) read “Corrected four times since” for four corrections dated the day it arrived, and five sheets read as corrected while their own provenance lines said “Not yet corrected”. **Nothing was miscounted. The listing was asserting a chronology it had never checked**, which is this house’s own recurring fault wearing a number: a claim that looks like a measurement and is not one.

The line now splits the two — “Corrected twice on mounting and once since” — in the vocabulary [The Die Uncast](https://queering.earth/promises-like-pie-crust) already uses on its own provenance line.

CabinetThe split is on the arrival day, because *the mounting accession* is not a thing

The obvious key is the accession that mounted the page. Measured, several pages have more than one: this register files three **Mounted** accessions to the [ledger](https://queering.earth/ledger) on the day it arrived and two to [My Gloomy Sunflowers](https://queering.earth/gloomy-sunflowers), because **Mounted** is this register’s word for anything added *to* a page rather than for a page coming into being. The arrival day is a thing, because it is a measurement of the repository and the listing already had it.

**It is also the only rule a generator is entitled to.** Within one day the order of accessions here is editorial and nothing can verify it, so a tool that placed one same-day entry after another would be claiming a fact it does not have. A provenance line may draw the finer distinction, because it is authored and knows which accession mounted its sheet — The Die Uncast separates four corrections on mounting from three more when the plates changed, all seven on 8 September. **The listing says the coarser true thing and the sheet says the finer one**, and neither contradicts the other now.

CabinetThirteen provenance lines audited against the register, and twelve were right

Thirteen provenance lines were read against this register and **twelve were exactly right**. [The Army of the Upright](https://queering.earth/on-being-ill) was the one: it said *re-determined once*, and the register holds two. The missing one is [9 September](#a-2026-09-09-patina), when a line of Woolf’s turned out to be Woolf guessing at what Coleridge meant and the quotation was re-cut to start where the guess does. The line names it now.

**The expected answer was the other one.** Five sheets say “Not yet corrected” over register entries filed to them, and the first reading was that all five had drifted and wanted mending. They had not: an accession history reports what has happened to a sheet *since it was accessioned*, and five other lines go further and say “on mounting” or “before it shipped” in their own words because they chose to. **Forcing a gold seam onto four clean sheets would have been decoration asserting a fact**, in the component built to make real mends findable. Measured before mended.

2026 · 13 September

## Three words under the tagline, read three different ways, and none of them the one we wrote

Readers told us what the masthead said to them. It was not what it said to us, and it was not the same thing twice.

Re-determinedThe masthead credit comes off, and the credit stays

Since [7 September](#a-2026-09-07-sheets) the masthead carried a second line under the tagline reading *after Nick Walker*, linked to his book. It is gone. **Three words cannot carry the paragraph that credit needs, so three readers finished the sentence themselves, three different ways** — as a death notice, as an endorsement, and as a declaration that this site is built on one person’s theory. **The third is the one that decided it.** A cabinet that reads the world through many lenses had appeared to run on one, in the first four words anybody meets.

**Nothing about the attribution changed, only where it is made.** The paragraph under [Queering is a verb](https://queering.earth/#queering-is-a-verb) has carried the whole of it since the same day — the subtitle quoted, the hyphen named, *he published it first*, and no claim about the route the phrase took to reach us. Nobody has ever misread that. It is the place a credit of this shape belongs, because it needs a sentence, and the masthead had room for a label.

**The rule worth keeping: a credit that needs a sentence must not be set as a label.** That is this register’s own paraphrase failure arriving from the other end. A form too small for the claim will shorten the claim, and the shortened claim is not a quieter version of the true one — it is a different one. *After* is still the right word where there is room for it, and it still stands in the caption under the moth.

Re-determinedA sheet that quotes our own masthead had to be re-determined with it

[The Five Unmistakable Marks](https://queering.earth/five-unmistakable-marks#our-own-masthead) argues that coinages get separated from their coiners, and shows its working on our own tagline. It said “So the masthead says *after Nick Walker*”, which stopped being true the moment the line came off. **A sheet that cites the site it is mounted on has to move when the site does**, and this is the first one here that did.

The section keeps the whole argument and gains the episode: what the three words were, what three readers each took them to mean, and why the credit went back to the place with room for it. **The sheet’s first mend**, three days after it was mounted.

Cabinet`.qe-tagline-credit` came out of the stylesheet in the same commit

The rule had one user and the user is gone. **A rule with no element is not the fault this house watches for** — that one is a class with no rule, which renders black and no gate here catches it — but it is the same drift from the other side: a stylesheet describing a component the site no longer has, with a comment above it explaining why the component is “not optional”. The comment was true when it was written and had to go with the rule.

The [ledger](https://queering.earth/ledger) and [what is settled](https://queering.earth/what-is-settled) both carried the old state as a resolved question. Both now carry the re-determination beneath it rather than instead of it, because **the 7 September call was half right and stays half right**: crediting him was the right one of the three options, and the masthead was the wrong place to do it.

2026 · 12 September

## A draft can now be read at a real address and marked up without an account

Ryan asked for a lightweight way to show Helen a sheet before it is mounted, and then supplied the constraint that decided it: nothing requiring GitHub or editing HTML works for her. One sentence, and a settled decision stopped being true.

Re-determinedThe review path this site had written down did not work for the person it named

[What is settled](https://queering.earth/what-is-settled) deferred a CMS partly on the grounds that “the zero-cost path already works: Helen edits files in the GitHub web editor, opens a pull request, and Netlify posts a deploy preview URL on it.” **It had been false for as long as it had been written.** The sentence came from Star Stuff, which really does run 192 pages that way, and was carried across as a fact about this collaboration without ever being checked against the person in it.

Reason 3 is struck on the record rather than quietly rewritten; reasons 1 and 2 stand, and the deferral survives on two legs instead of three. **The open question beside it is half-answered** — the friction is the tooling, in both directions. Reviewing is solved below. Authoring is still open, and is the half the CMS trigger is really waiting on.

CabinetDrafts live on a branch, and `drafts/review.js` lets a reviewer write on them

**Only half the problem was ever hard.** Reading a draft never needed an account — a Netlify branch deploy is a permanent URL. Giving feedback did, because a pull-request comment thread was the whole of the answer.

Drafts now sit at the root of a long-lived `drafts` branch, so a draft is byte-identical to the page that will ship and promotion is a merge. **A `drafts/` folder on `main` was measured and refused**: it works mechanically, because every generator and gate here reads the root non-recursively, but it would put unreviewed attributions on queering.earth itself — unlisted, public, unauthenticated — and a page one directory down needs `../queering.css`, so it renders something other than what ships. **The gates that fail on that branch are the accession checklist reported by name**: the missing `301!`, the missing card, the missing `<loc>`.

The review layer is three lines in one head block, and publishing means deleting them. Armed, every block grows a visible focusable *Note* control; notes live in `localStorage` and leave only through **Copy my notes**, which builds plain text carrying the section, a deep link to its authored anchor, the quoted line and the reviewer’s own words. **No endpoint, no account, no third party** — this site makes no third-party request and a review tool is not the place to start one.

**It writes words, which every other script here is forbidden to do**, and that carve-out is stated rather than taken. These are instrument labels on a page that will never be published, and deleting the include line removes every one of them; authored templates instead would mean a block of markup pasted into every draft, which is the friction this exists to spare.

Cabinet`check-metadata.mjs` check 10, and four faults found by measuring what no gate measures

The guard keys on `sitemap.xml`, because that is this site’s own manifest of published addresses: a draft is not in it, so the branch stays green, and the moment a page is accessioned the gate demands the block be gone. It fails on the `noindex` half too — a page the manifest advertises and the markup hides is two statements that cannot both be true. **Made to fail in both shapes on a real published page before being believed**, and reverted.

**Its first version was defeated by this register.** The check grepped for the bare string `drafts/review.js`, and the sweep failed on this page and on [what is settled](https://queering.earth/what-is-settled) — the two pages that had just been given an entry describing the feature. A gate that matches a string matches the documentation of that string, which on a site that documents its own build is not an edge case. It requires an unescaped script tag now. **Check 7 in the same file already knew this**, exempting a link because a link the reader chooses is not a request the page made; that distinction is called “the whole difference between a usable gate and a useless one” in its own comment. Same lesson, second gate.

**Nothing gates runtime furniture, so it was measured by hand, and the first two measurements found real faults.** `--qe-paper-deep` was the obvious ground and is wrong: moss and rust measure 6.90:1 and 6.21:1 on it in daylight, reproducing to two decimals the numbers that withdrew the recessed panel once already. Everything sits on `--qe-card` instead — ink 15.26:1 and 13.39:1, moss 8.35:1 and 7.53:1, rust 7.52:1 and 7.57:1 across the two grounds. And the 44px floor missed every *Note* button, because a selector for a button *inside* the review element does not match a button that **is** one; they were 40.3px until they were measured. All 54 controls clear 44×44 at 375px, none overlap, nothing scrolls sideways.

Two smaller things, each paid for by watching it go wrong. **A definition list is one target**, like a quotation — the specimen block fragmented into twelve note buttons first, which is the cropping fault from the other direction. And **a note whose paragraph is rewritten under it is marked, never dropped**: it re-attaches by position, says so on its face, and still exports. Silently losing a reviewer’s note is the worse failure.

Re-determinedNetlify does not noindex a branch deploy, and “promotion is a merge” was wrong the day it was written

The entry above asked for one `curl` against the first real branch deploy, and it was worth asking. The `.netlify.app` rule in `\_redirects` does **not** reach a branch host, as expected. But **Netlify sends no `X-Robots-Tag` on a branch deploy at all** — Deploy Previews get one, branch deploys do not. The draft page itself was covered by its own three-line block; the **full copy of all 27 published pages** that a branch deploy also carries had nothing but `rel=canonical` holding it. Real mitigation, and exactly what this site already judged insufficient one layer up, where the apex `.netlify.app` host is 301’d rather than left to canonicals.

`\_headers` on the drafts branch now carries `X-Robots-Tag: noindex` on `/\*`, and **that line must never reach the published site** — if it does, every page here drops out of every index.

**It is safe only because of a correction to the day’s own design.** Promotion takes the file and never merges the branch. “Promotion is a merge” was written into [what is settled](https://queering.earth/what-is-settled) and into the house rules before the branch had more than one thing on it, and it was wrong on its own terms: **a branch holding three drafts cannot be merged to publish one of them.** Cherry-picking the single file is what the workflow required anyway, so the header costs nothing that was not already being spent. The two halves are one decision, and weakening either breaks the other.

CabinetThree skills, so drafting never requires a git command

`start-draft` puts a page on the branch and prints the URL to send Helen. `save-draft` commits, pushes and hands the URL back. `publish-draft` takes the file onto `main` — never the branch — and walks the accession checklist this file already states: mount it, card it, log it, file it, stamp it, route it, crumb it, group it, rail it.

`tools/draft.mjs` holds the one thing all three need to agree about, which is **which file is the draft**. Written out three times it would be three answers the day one was edited, in the one place where being wrong means publishing the wrong page. A draft is identified by its marker rather than by a name kept somewhere, so **a page stops being a draft at exactly the moment it is published**, with no state file to fall out of step.

**It matched the bare filename first, which is the third time in one day.** Check 10 shipped that way and fired on this page and on [what is settled](https://queering.earth/what-is-settled); this tool did the same an hour later and reported both of them as drafts in progress. On a site that documents its own build, anything matching a filename matches the prose about that filename — and the discriminator is always the same, because prose escapes the tag or wraps the name in a code span.

2026 · 12 September

## A gate that had been measuring in somebody else’s browser for five days, and a runner that makes a one-page edit cost a minute

Ryan asked why moving one block inside one page took twenty minutes to check. Timing the answer turned up a second thing nobody was looking for.

CabinetA gate reported PASS for five days while driving a browser it did not launch

Each Chrome gate spawned Chrome and then polled `/json/version` until **something** answered. On 7 September an orphaned headless Chrome from a neighbouring project’s probe script took port `9414` and never let go. **Every `check-width.mjs` run from that day to this one bound nothing, attached to that five-day-old browser, measured all 27 pages in Chrome 152.0.7977.77 while .84 was installed, killed its own portless process on the way out, and reported `PASS` with no sign whatsoever.** Five such orphans were up, one per interrupted probe, holding about 400MB, with 303 temp profiles behind them.

**This is the house’s own recurring fault in a new place** — a run that measures a fraction of what it claims looks exactly like a clean one. It was found by timing the gates, not by any check, and no check here could have found it: every gate reports on the site, and nothing reports on the instruments.

`cdp.mjs` now owns the spawn, which **reverses that file’s own stated position** that the duplication “carries no footgun”. The port must be free *before* the spawn, and the process we started must still be alive when the endpoint answers — the old poll swallowed every failure and fell out of its loop silently, so a Chrome that died on launch produced a sweep of nothing rather than an error. The temp profile is removed on the way out, which no copy did. **Made to fail in three shapes before being believed**: a decoy on the port refuses and exits 1, a browser that cannot start reports “Nothing was measured”, and the port free again passes.

Cabinet`tools/check.mjs`: twenty minutes becomes twenty-four seconds

Measured before anything was written. The four generators are 4.8s and the six offline gates 5.6s together; `check-overlap` is 40s, `check-contrast` 53s, and **`check-width` is 4:22 — three quarters of the whole bill**, because it renders 27 pages × 10 typefaces × 4 widths × 2 papers.

Three things made twenty minutes out of six, and none of them needed new capability. **The three Chrome gates run at once**, which they were always built for — they take one port each and `cdp.mjs` has said why since it was written. **The sweep is scoped to the pages that moved**, through the positional arguments all three already accepted. And nothing is run twice to read an exit code a pipeline discarded. Full sweep: **4:47**. A one-page change: **24s**, generators and all nine gates included.

**The scope is taken from git, and only after the generators have run.** That order is the reason this is a tool and not an alias: `make-records` and `make-whats-new` write into pages nobody touched, so asking git first scopes to the edit and misses the pages the edit *caused*. Untracked files count, because **a new page is the case most in need of measuring** and a plain diff cannot see one.

**Which assets break scoping is declared, never inferred** — the two-list shape `check-cache.mjs` already uses, because nothing in a file’s bytes says whether it can move a page it is not named in. The stylesheet, the script, the fonts and the gates themselves force a full sweep; `queering-search.js` adds [the finding aid](https://queering.earth/search) and nothing else. Everything else is page-local by declaration, `--all` is always available and always right, and **a new shared asset needs a line in one of the two lists**.

2026 · 12 September

## Sheet No. 12, and a rule relaxed on the record rather than quietly

An essay that began as a note in the inbox about a piece of music, and turned into an argument about who is allowed to love the way the canon does.

Mounted[Every Day’s Most Quiet Need](https://queering.earth/most-quiet-need), Sheet No. 12, an essay

Limerence, read as monotropic attention rather than as a disorder. Four objects are held against that vocabulary — Glass’s *Mad Rush*, the first movement of Beethoven’s Op. 47, Mustapha Mond’s hydraulics of feeling in *Brave New World*, and Florentino Ariza’s fifty-three years — and then Elizabeth Barrett Browning’s Sonnet 43, which does something in its fifth line the standard reading treats as the modest beat.

**The argument the sheet exists for is the asymmetry.** Attention that pools on one person, will not redirect, survives years without reciprocation and refuses the cure is a masterpiece when a novelist does it and a symptom when an Autistic person does it. The canon is the evidence, and this sheet puts it on the record: either the sonata is a symptom too, or the longing is not one.

The drawing is a *Myosotis* — a water forget-me-not, which grows at the margin of standing water. **Its flower-head is a scorpioid cyme and the coil is computed rather than drawn**, sampled off a spiral whose radius grows as it unwinds, with tight buds at the curled tip and open flowers along the uncoiled part. Drawn by hand it came out a snail. The plant was chosen because the coil unwinds, which is the shape of the sheet’s own argument, and because its common name is the thing the whole essay is about.

CabinetTwo recordings from the rightsholders, and one link that is not

Both embedded recordings are the owners’ own deliveries and were verified as such before they were mounted, not assumed from the channel name: *Mad Rush* is Sony Classical’s delivery of the 1989 *Solo Piano* recording with Glass himself at the piano, and the Op. 47 first movement is Warner Classics’ delivery of Renaud Capuçon and Frank Braley. The first draft of this sheet carried a listener’s upload of the Glass; **the official one exists and was found by looking**, which is the outcome the policy is for.

**The *Immortal Beloved* scene has no such copy and is linked rather than embedded.** No official clip or licensed excerpt of the film could be found. [The policy](https://queering.earth/how-we-quote) asks for a copy the rightsholder is paid for; this is not one, and the relaxation is Ryan’s call, recorded here and stated on the sheet’s own face in [what it does not settle](https://queering.earth/most-quiet-need#untidy). A link is a request the reader makes; an embed is one the page makes for them. **That distinction is the whole of what the relaxation rests on**, and it is why the film gets a link and not a facade.

Label correctedFour quotations that said “no page numbers” now carry four

The sheet shipped its *Love in the Time of Cholera* passages with the wording verified and the pagination missing, because the only copy to hand was an unauthorised scan with none. Ryan looked them up: **58, 58, 198, and 345** — the last being the final page of the novel. The citations now name both copies, because neither is enough alone. Knopf 1988 is where Edith Grossman’s translation was first published; the **Vintage International** edition is where these numbers live.

**The page map was tested before it was believed, and that test is the transferable part.** A reader showing “Page 58 of 346” may be reporting the publisher’s print page map or may be inventing pages from the reader’s own font size and window width. **The two are indistinguishable on screen.** Ryan changed the text size and the numbers held, which settles it as the book’s pagination rather than the device’s. A number that moved with a font setting would have been worse than no number at all: exact-looking, authoritative, and unreproducible by any other reader. **Ask an ebook page number to prove itself before citing it.**

Reading the pages also confirmed two transcriptions against the printed line rather than against the scan — Grossman’s American *immunized*, and “to enjoy his martyrdom” closing the linden-blossom passage.

Label correctedCrystallisation is Stendhal’s, and the sheet was about to call it Tennov’s

The sheet shipped its first draft citing Dorothy Tennov at one remove, through Helen Edgar’s essay, and said Tennov “described the crystallisation that idealises the limerent object”. She does describe it. **The term is Stendhal’s**, from *De l’Amour* in 1822 — the branch left in a salt mine and lifted out months later encrusted into something shimmering — and Tennov attributes it to him in plain words on her page 30. It had reached us through a summary that named only her.

Caught because Ryan put a scan of *Love and Limerence* in the library and the book was opened. **That is the second near-miss on this one sheet**, after *memory-foaming*, and the two share a cause exactly: a term met in a secondary source and carried forward without opening the primary. The sheet now says on its own face that opening the book corrected it, because a correction a reader cannot see is a correction that only exists for us.

**Reading the book also paid for itself three more times.** Tennov’s own list of the state’s components includes “intensification through adversity” and the finding that an “externally imposed obstacle, such as Romeo and Juliet met in the resistance of family and society” will serve — which is Huxley’s barrier, measured rather than asserted, and it is now mounted beside him. Her criteria also include the “inability to react limerently to more than one person at a time”, so single-channel attention was written into the definition in 1979, a quarter of a century before monotropism had a name. And she says herself that a relationship with no limerence in it “may be a far more important one in your life” — the woman who named the state, pointing at the dwell.

Label correctedA borrowed term was about to be used to mean its opposite

The draft reached for **memory-foaming** as though it meant fond or magnified memory. It does not. Attlee Hall’s term is for the Autistic habit of taking the shape of whatever you meet — conceding, bending and making yourself agreeable to the point of self-alienation. **Caught before it shipped, by reading the source rather than the phrase.**

It is recorded here because the near-miss is the exact failure this cabinet is organised against: somebody else’s coinage, loosened one notch to fit the sentence we wanted, with the attribution still attached. Used correctly it improved the sheet — the danger of the lake is not only that a person cannot leave it but that they dissolve in it, which is Hall’s point and not ours.

2026 · 12 September

## The lilacs went back to the foot of the home page, and needed a heading once they were in an outline

A coda stops being a coda the moment anything is appended beneath it. Nobody moved this one; three sections arrived under it, one at a time, each of them correct.

CabinetMoved to the end of `main`, where it was mounted

Eliot’s four lines, the *Syringa vulgaris* drawn from Ryan’s yard and the click-to-load recording were mounted **above the footer and last on the page**, at 16:17 on 9 September. **They were the last thing on it for two and a half hours.** The cabinet’s own pages came out of the footer and onto the home page at 18:54 that evening, the thirteen aims followed at 19:47, and the two lists became [the founding papers](https://queering.earth/the-founding-papers) and [the cabinet itself](https://queering.earth/the-cabinet-itself) on 11 September. Every one of those edits appended, which is the ordinary thing to do, and the sum of them left a coda in the middle of the page reading as a digression between the plate and the furniture.

It now sits after both lists, which is the foot of `main` again — and last for a structural reason rather than a chronological accident, since nothing on the home page follows the drawers.

CabinetBeing last had been doing the work a heading does

The section had no `h2` and had never needed one: a passage at the end of a page, after the argument has finished, announces its own genre by position. **Moved into an outline it has to be named in that outline**, so it is [Coda: the lilacs](https://queering.earth/#lilacs) — the word says what the section is, which is the job the position used to do.

**The address is `#lilacs` and not a slug of the heading.** Ids here are topical and authored precisely so a reworded heading does not take every shared link with it; *Coda* is a word we might argue about, and the lilacs are not. The rail picks the section up with nothing else added, because it derives from the page’s own headings — and the home page has no contents list to keep in step, its plate being the index it already has.

2026 · 11 September

## Two of the five link relations this site sent were not relations at all

Noticed in passing while the feeds were being split, and it turned out to be twice the size of the note that prompted it.

Label correctedThe header said “registered relation types only” and two of the five were not

`\_headers` sends an RFC 8288 `Link` header so an agent that never reads our HTML still finds the index, the feeds and the licence. **Its own comment claimed registered relations only, and that sentence had been false for as long as it had been written.** Checked against the [IANA registry](https://www.iana.org/assignments/link-relations/link-relations-1.csv) on 11 September — all 236 entries, fetched rather than remembered — and neither `sitemap` nor `agent-skills` appears in it.

**RFC 8288 admits an extension relation only as a full URI, never as a bare token**, so these were not lax choices but invalid ones, riding on every response the site has served since the header shipped. `sitemap` is exactly the kind of token that reads as standard and is not.

**Dropping `sitemap` costs nothing:** `robots.txt` carries `Sitemap:`, which is the canonical mechanism every crawler already reads.

Label correctedThe second one was the one nearly missed

The note that prompted the check named only `sitemap`. **The sweep found two**, which is the argument for sweeping rather than fixing what you remember. `agent-skills` is not a registered relation, and — unlike `security.txt`’s path — **not a registered well-known URI either**, so the usual “a well-known path is self-discovering” argument is weaker here. That was weighed rather than assumed, and it went anyway, on Ryan’s call.

**Nothing standard consumes it.** An agent implementing the convention reads `/.well-known/agent-skills/index.json` by path and would never look for that rel, because that rel is not a standard either. **An invalid relation that nothing consumes is decoration asserting a fact** — a gold join on a sheet nobody corrected, in the one header whose whole job is telling machines what to trust about this site.

**The skill itself is unchanged** and still sits at that path, still named in this register and in the prose of `/llms.txt`. What went is a pointer no client ever asked for. **Nothing gates this yet**, and whether it should is open.

2026 · 11 September

## A gate that counts closing tags, and the eight attributions it found wearing their emphasis inside out

The unclosed accession found this morning was left as an open question: whether a check for it was worth the noise. Ryan settled it the same hour. It was not noisy, and it did not find one fault.

CabinetCheck 9: every element closes, and closes in order

`check-markup.mjs`’s header had said for its whole life that unclosed tags were “out of scope by design” and that guessing at intent “would make the gate noisy”. **Both halves were wrong, and the header now says so.** The cost of the first was the accession this register lost from the feed for a day. The second was tested rather than argued: every non-void element on every page was counted before a line was written, and **the whole repo balanced but for two** — that `section`, and an unclosed `strong` on [Two Cohabitating Modes](https://queering.earth/two-cohabitating-modes) that had been bolding the rest of a list item since the sheet was mounted.

So it checks **every element rather than a declared list of containers**: a list would be a second thing to keep in step and the measurement says it would buy nothing. It is stricter than HTML, which lets `p`, `li`, `dd` and `td` close implicitly. That is deliberate — three generators here parse this markup with regexes, so balance is a requirement of the repository and not a matter of taste.

**A stack, not a counter.** Counting opens against closes returns zero for `<div><section></div></section>`, which is mis-nested and breaks those generators identically; a stack also names the element and the line where a counter can only say a total is off by one. **That distinction paid for itself on the first run.**

Label correctedEight attributions had their bold and their italic closed in the wrong order

The new check’s first run reported **16 problems across [the ledger](https://queering.earth/ledger) and [the decisions](https://queering.earth/what-is-settled)** — both generated pages, both numerically balanced, and invisible to the counting sweep done an hour earlier. `\*\*Robert Earl Hardy, \*A Deeper Blue\*\*\*` was reaching the page as `<strong>Robert Earl Hardy, <em>A Deeper Blue</strong></em>`: **the bold regex is non-greedy, so it took the first two of the three closing asterisks** and left the third for the italic pass, which closed the pair inside out.

**Eight passages were built that way, in the two pages a reader goes to in order to check us.** The converter’s old comment was right that emphasis nests here and wrong that two ordered passes can read it: `\*\*A \*b\* C\*\*` happens to work, and `\*\*A, \*b\*\*\*` cannot, because the closing run is ambiguous to a regex and is not ambiguous to a stack.

Replaced with a delimiter resolver using CommonMark’s flanking rule cut down to the one case these files have — a run may close only if the character before it is not a space, and open only if the character after it is not. That is what tells `\*A \*\*B\*\*\*`, italic holding bold, from `\*\*A, \*B\*\*\*`, bold holding italic, and **both shapes appear here**, so neither could be assumed. **Seven lines changed and nothing else**, checked by diff, with the generator’s own word-for-word round-trip proof passing unchanged.

Label correctedAn open question about a 1922 printing had been bold to the end of its own paragraph

In [what is unresolved](https://queering.earth/two-cohabitating-modes#unresolved), the item about whether “runts” survives into later printings of *Fifty New Poems for Children* was missing its closing `strong`. Its two siblings set the question in bold and the explanation in ordinary text; this one ran bold to the end. **Visible on the page since the sheet was mounted, and caught by a tag counter rather than by anybody reading it.**

CabinetMade to fail in three shapes before being believed

The house rule is that a guard nobody has watched fail is a guard nobody should trust. Three faults were reintroduced and each reverted after: the original missing `</section>`, reported against the `</main>` a browser would close it at; the unclosed `strong`, reported against its `</li>`; and **a deliberate mis-nesting that balances numerically**, which is the case a counter structurally cannot see. Each exits 1; the clean tree exits 0.

**22,709 elements balanced across 27 pages**, and the count prints on every run — the same reasoning as the contrast gate’s element counts, because a gate that checked nothing looks exactly like a gate that passed.

2026 · 11 September

## A page that says what arrived, two feeds instead of one, and a date that could not be taken from this register

Ryan asked for the pair our sibling site has kept from the start: a *What’s New* page and a feed. Half of it turned out to exist already and to be unreachable, and the other half turned out to be two things rather than one.

MountedThe cabinet by date, at [/whats-new](https://queering.earth/whats-new)

**Every index this site had was in the order somebody chose.** [The plate](https://queering.earth/the-plate) runs by accession number, the two lists on the front of the cabinet run by what a page is for, and `tools/pages.mjs` holds that order for the drawers menu, `/llms.txt` and the finding aid’s manifest alike. This register is the one chronological view and its unit is the *accession* — an event — across some forty thousand words. **Nothing answered “what is here, and when did it turn up”,** which is the question a reader who was here last week actually has.

The listing is generated by `tools/make-whats-new.mjs` and written **between markers** into an authored page, the way [the ledger](https://queering.earth/ledger) and [the decisions](https://queering.earth/what-is-settled) are. Star Stuff generates the whole of its equivalent from a template inside the tool and has recorded what that cost: a site-wide pass added a skip link to every page, the next build rebuilt that one from the template, and **the skip link was gone with the tool reporting a clean build.** A generated page does not conflict, it reverts. Edit inside the markers here and the next run takes it back; edit outside them and it survives.

Nothing on it is typed. The summaries are each page’s own `meta description` — the sentence `/llms.txt` already publishes, so there is no third copy and no repetition of the gloss a collection page is forbidden to repeat. The kind and the number come from the plate, which `check-card-order.mjs` already names as the authority for both. The correction counts are read from this register’s own `data-sheet` filing rather than counted by hand.

CabinetThe feed existed, and nothing on the site linked to it

`/feed.xml` has shipped since the agent-readiness pass. It was in every page’s head as `rel=alternate` and on every response as a `Link` header — so a client that had already been handed the URL could find it, and **a person could not.** There was no visible link to it anywhere on the site. A feed with no human twin is a feed for machines only, which is not what a feed is for. [The new page](https://queering.earth/whats-new) is that twin, and carries the first pressable route to either feed.

CabinetOne feed became two, because they are two lists for two readers

The feed carried *this register’s accessions* — new sheets, corrections and housekeeping notes in one stream. On Ryan’s call it is now split. **`/feed.xml` is the pages as they arrive**, the same list as [the new page](https://queering.earth/whats-new) and out of the same pass, so the two cannot be made to say different things. **`/register.xml` is this register**, under the name the site already uses for this page.

**The pages took the old name rather than the other way round**, and that is the part worth writing down: anyone already subscribed stays subscribed to a working feed and simply begins receiving pages, which is the list most people mean when they say “feed”. Every page advertises both, the `Link` header carries both, and `check-metadata.mjs` now fails on a page that names one and not the other.

Label correctedAn accession on this page had no closing tag, and the feed had been dropping one ever since

Found while counting the new feed’s items against the page: **58 accessions on the page, 57 in the feed.** The Bewick accession of 10 September was missing its closing `section` and the two `div`s inside it, so every accession below it was nested one level deeper than it should have been and the file ended one tag short.

**Nothing looked wrong.** A browser closes the tags itself, so the page rendered correctly and has all along; `check-markup.mjs` passed it, because that gate reads parser-rewriting markup, duplicate ids and the single landmark, and does not balance sections. What it cost was invisible in exactly the way this register is organised against: the feed’s regex runs from an opening tag to the first close it finds, so the unclosed accession swallowed the next one whole and **[the accession about every poem arriving in the Markdown mirror as prose](https://queering.earth/changelog#a-2026-09-10-verse-markdown) had never been in the feed at all.**

Closed, and the balance checked both ways: the page now has 58 accessions, the regex finds 58, and the section depth returns to zero at the end of the file. **A gate that balances sections is not written**, and whether it should be is left for the decision log — this is one fault, found by a count that only existed because the feed was being rebuilt.

CabinetThis register cannot say when a page was made, and that was measured rather than assumed

The obvious source for an arrival date was this page, and it does not work. **“Mounted” here means anything added *to* a page, not a page coming into being:** [the colophon](https://queering.earth/design) carries five such entries, [Two Cohabitating Modes](https://queering.earth/two-cohabitating-modes) six, the front of the cabinet ten — and [the privacy page](https://queering.earth/privacy) carries none at all, because nothing was ever mounted on it. Taking the earliest would have dated several pages by accident and one not at all.

So the date is the commit that first added the file, which is a *measurement* of the repository rather than a second hand-kept copy of anything. **And it is gated against what we wrote down.** Eleven sheets carry an accession stamp with a date in it and twelve pages carry a provenance line with another; the generator compares all three for every page and refuses to run on a disagreement, because the day a stamp and a commit stop agreeing this site is about to say two different things about one day. All twelve agree today — checked before a line of the tool was written, not after.

Two things were found by running it rather than by reading it. A page being written has no commit that added it, so an uncommitted page is dated today, loudly, and corrects itself on the next run — self-healing rather than an override table, which would have had to be right forever. And the first version of that fallback used UTC and dated this page **12 September while it was still the 11th at the desk**, a day ahead of the accession you are reading.

2026 · 11 September

## Two van Goghs, two recordings, and a privacy page that had a number in it

Ryan asked for the *Almond Blossom* on the sheet, for any other public-domain paintings that fit, and for click-to-load recordings of the songs with some lyrics quoted under the new policy. Three of those four were straightforward.

MountedTwo paintings, and two recordings that fetch nothing until pressed

*Almond Blossom* (Van Gogh Museum, February 1890) sits with letter 857, and *Still Life: Vase with Fifteen Sunflowers* (National Gallery, August 1888) sits with Gadsby’s line, which had been arguing about that painting without showing it. Both are public domain, both came from Wikimedia Commons at 1280px, and the figcaptions say so — **what is out of copyright is the painting, and what we serve is somebody else’s photograph of it at a size we chose.**

*Almond Blossom* is the sheet’s second wide plate holder for a reason unlike the other five: the existing wide plates are all line work losing hatching to a short ladder, and this is a landscape painting of a canopy, where the spread *is* the subject.

Townes playing “Waitin’ Around to Die” to a weeping Uncle Seymour Washington in *Heartworn Highways* gives [Sheet No. 11](https://queering.earth/gloomy-sunflowers#galveston) the Townes tether it did not have — every other artist on it had one. “Polly” sits under the *Incesticide* liner note, because that passage only works if you know what the song is. **Both ids were checked against YouTube’s oEmbed endpoint before they were mounted, and the first id a search returned for “Polly” did not resolve at all.**

Label correctedThe privacy page stops counting

Two sentences there became false the moment the sheet gained a recording: that **one** thing could reach a third party, and that the Eliot recording was **the only place** another company could learn anything about you. Corrected in the same change, which is the rule.

**The fix is not a new number.** That sentence has now gone stale twice — once when the first recording was mounted and once today — so the count came out of it altogether. The page names the three recordings and then says the thing that actually matters and does not change: **Google is one party however many recordings there are.** Adding two did not add a company; it added two more places where a reader can choose to reach the one already there.

CabinetNo lyric was quoted, for two different reasons

The request included lyrics. For “Waitin’ Around to Die” the answer is the ordinary rule — [we quote what we have read](https://queering.earth/how-we-quote), and no licensed text was in front of the session; the performance is embedded instead.

For “Polly” the same applied, and a second reason is stated on the sheet itself. **Every word of that song is spoken by the man who committed the crime**, which is what Cobain built it to do. Setting those words in a ruled box under a herbarium label would give a rapist’s speech the mounting this cabinet gives to Woolf and to Plath. The recording is linked whole instead. **Whether the wording belongs on the page is Ryan’s call, and it is recorded here as a decision rather than left as a gap.**

2026 · 11 September

## Sheet No. 11, and four biographies that would not say what they were supposed to

Ryan’s, opening the research: “They help me process the immense ache of this world. They are my gloomy sunflowers.” The sheet was proposed, researched over one day against five primary sources, and mounted the same day — and the research overturned most of what the proposal had asserted on the strength of secondary sources.

MountedMy Gloomy Sunflowers

[Sheet No. 11](https://queering.earth/gloomy-sunflowers), an essay, signed — the second on the plate after [No. 2](https://queering.earth/coming-to-terms). Townes Van Zandt, Vincent van Gogh, Sylvia Plath and Kurt Cobain, read against the myth that made them.

**The argument is Hannah Gadsby’s and Shoshana Kessock’s before it is ours**, and both are credited on the sheet by name. What this sheet adds is the evidence: five primaries read at source in one day, and in three separate archives the same shape turned up — **the work read as a symptom, and the record saying it was the thing that was going well.**

**It does not claim the four share a diagnosis, because they do not.** A contemporaneous clinical file for one, a hedged retrospective paper for another, a psychiatrist arguing the opposite in print for the third, and a passing self-description for the fourth. What they share is having been treated as a diagnosis and read afterwards as one.

It carries a content note and crisis resources, and follows safe-messaging practice: no methods, no locations, and the deaths are not presented as the end of the argument.

Re-determinedGalveston was 1964, the diagnosis was not manic depression, and it was the Army

The proposal for this sheet repeated the account every tertiary source carries: 1962 or 1963, three months of insulin shock, a diagnosis of manic depression, an Air Force rejection. **Hardy’s documented biography disagrees on every count.** Admitted to the Titus Harris Clinic at UTMB Galveston on 14 March 1964, one week after his twentieth birthday. Official diagnosis: “Schizophrenic reaction, Schizo-affective type (Depression).” Insulin coma therapy *and* electroshock, nearly forty treatments between early April and early June. And it was the Army, not the Air Force.

**The famous sentence is a recollection of a recollection.** Hardy’s main text has Fran Petters recalling a letter calling Townes “an acute schizophrenic”; his endnote records the same woman, in a 1998 magazine piece, recalling “an acute manic-depressive who has made minimal adjustments to life.” One witness, two wordings, two illnesses, thirty years apart. Hardy printed both and footnoted the discrepancy. The internet took the more quotable one.

Nothing on this site had published the wrong version — the correction was made before the sheet was written rather than after. It is logged here because the near miss is the point: **five tertiary sources agreeing with each other were one source.**

Label correctedWhich ever, two words

Plath’s “two electric currents” passage is quoted on this sheet from *The Unabridged Journals*, ed. Kukil, 20 June 1958, p. 395 — with **which ever** as two words, and a spaced en dash, because that is how Kukil sets it and Kukil’s edition exists to preserve Plath’s own spelling and spacing.

**Our sister site has been closing it up for years**, and citing it to a biography page rather than to the journal and its date. Settled across three copies the same day, including archive.org’s search-inside of the print edition, which returns exactly one result for the phrase. [The reasoning is in the decision log](https://queering.earth/what-is-settled), along with the methodological half: **an edition that quietly normalises is more dangerous than one that obviously mangles**, because the mangled copy announces itself.

2026 · 11 September

## One typeface was too wide for the masthead, and the gate had been rendering one of ten states

Ryan, on the two options put to him after the centring fix: “option 1, and teach the gate the nine faces.” The first is four lines of CSS. **The second is the one that mattered** — the gate had been reporting `PASS` on twenty-five pages while rendering the default typeface and nothing else.

Label correctedSporting Grotesque is set smaller, and the number is a measurement whose expected answer was wrong

With Sporting picked in the reading settings the home page measured 361px of document at a 320px viewport, 388 at 375, 427 at 414 and 770 at 768 — and, found only by the new sweep, **756px on a Letter sheet and 739 on A4.** Horizontal body scroll reached through a setting this site offers, failing the 320px reflow WCAG 1.4.10 names and the panel’s own rule that **every setting must be additive**. It is the only one of nine that does not fit: Sporting’s display cut is far wider than the others at the same size.

**The obvious target was “clear the 20px gutter”, and it is not the bar — because the default face does not clear it either.** At 320px Fraunces leaves 12.1px, since the masthead has always been allowed to encroach there. So the real bar is *no tighter than the house’s own tightest*. Measured at 320: `8.4vw` leaves 5.4px, tighter than the default; `8vw` leaves 13.2px, which is not; `7.6vw` leaves 20.9px and clears the whole gutter at the cost of a visibly smaller title. **Checked from above too** — `8.8vw` still scrolls by 2px and `8.6vw` fits by 2px, a margin too thin to survive another browser’s rounding.

`clamp(1.9rem, 8vw, 5rem)`, for that face alone. **A metric fact about the typeface, not a preference**, with the same standing as `sets\_body` in the font manifest — which exists for exactly this kind of thing: Victorianna ships Thin alone, four faces have no italic, and now one is too wide for the masthead at phone sizes. Nothing changes at 1280 and the other eight are untouched.

CabinetThe width gate renders ten states now, and reads the face list from the table that owns it

The gate shipped this morning and was already blind in the way this house had written down three days earlier: **a page that checks the fraction of itself that happens to be visible reports zero failures and looks exactly like a clean one.** It rendered the default typeface on every page while nine others sat unmeasured.

**The face list is read from `tools/font-files.json` and never typed into the tool.** That table is where `make-fonts.mjs` writes the faces and where `check-metadata.mjs` already reads `picker\_id` to prove the markup’s options match it. A hand-kept copy would be a third list — and **narrowing the nine is an anticipated operation**, which would leave the gate sweeping a face nobody can pick while missing one they can.

**The extra passes are cheap because they ask a cheaper question.** The default face gets the full walk — every text node, every client rect — which is what names a culprit and what proves the page was measured at all. The other nine ask only whether the document is wider than its box, and escalate to the full walk only when it is. **A gate ten times slower is a gate people stop running**, which is its own failure mode. 1,500 measurements in 4m11s.

**`document.fonts.ready` after every switch**, because a face is fetched when a rule using it first meets rendered text — measure before that and you have measured the fallback. **And the faces go to paper**, which earned its keep on the first run by finding the two printed conditions the by-hand check had missed: a reader’s typeface is an `html` class and the print sheet does not reset it, so what they picked is what they print.

**The failure advice branches, because two faults wear the same number and take opposite cures.** An unbreakable string wants a break opportunity and must *not* be fixed by shrinking the type; a display line too wide in one face has no string to break, and there the size *is* the fix. Printing the first advice under a typeface finding is how somebody ends up putting `overflow-wrap` on a masthead — which happened here, earlier the same day.

**Made to fail before being believed:** withdrawing the Sporting size reports five failing passes on the home page, names the typeface in each, points at `<h1.qe-wordmark>` and the word *Earth*, and exits 1.

2026 · 11 September

## The masthead had been 34px right of centre since the day it was drawn

Ryan, with a screenshot: “The wider fonts available in the font selector don’t center the title.” They do not — and neither does the default one. **Nine typefaces made visible a fault that had been shipping with one.**

Label correctedA centring rule that stops working when the sign changes

`text-align: center` distributes **leftover** space along a line. When the line is wider than its box the leftover is negative, there is nothing to distribute, and the line is laid from the start edge with the whole overflow running off the end. **Measured at 1280:** `main` is honestly centred at 368…912, the masthead’s content box is 416…864 — 448px — and the wordmark’s ink is 515.9px. It began at 416, ended at 931.9, and sat 34px right of the page’s centre line.

**The typeface is how it was seen, not what caused it.** The offset is 34px with the default face, 28.4 with Victorianna, 68.8 with Coxinelle and 162.4 with Sporting Grotesque: the wider the face a reader picks, the further right the wordmark leans. **Below about 1024px it looks right**, because there the wordmark fits its box and the leftover is positive — and every width this house routinely measures at is in that range.

`width: max-content` with `left: 50%` and a negative `translate`: the box becomes as wide as the letters, and is centred on the container’s centre line whether it fits or not. **The one centring idiom whose arithmetic does not change sign.** Verified at 0.0px offset for all nine faces at 375, 768, 1280 and 1920, in plain view, in the cabinet, and on both papers.

**`translate` rather than `transform`, deliberately.** Plain view switches `transform` off component by component — the lean, the wobble, the drift — because each of those is a decoration. A centring correction is not one, and the independent property means a future `transform: none` written for the wonk cannot silently push the masthead back off centre.

**A break at the dot was tried and refused.** Letting *Queering. / Earth* wrap sounds like the natural answer; measured, it wraps the *default* face onto two lines at 1280 as well as at 320, because the wordmark exceeds its box at every desktop width. The cure for one face would have restyled the masthead for all nine. The `max-content` box forecloses wrapping altogether, which is also a guard: after a stylesheet rule broke *Queering.Ear / th* earlier the same day, a wordmark that cannot wrap by construction is worth having.

**Centring cured two more faults on its own**, because a symmetric overflow is half as deep each side: Coxinelle and Insolente were both scrolling the page at 320px and now fit. **Sporting Grotesque still is not**, at 320, 375 and 768 — recorded as open in [the decision log](https://queering.earth/what-is-settled), with three measured ways out and the note that `check-width.mjs` sweeps one typeface and cannot see any of them.

2026 · 11 September

## A word one syllable from the right one, and it belonged to Bowlby

Ryan, reading the sheet mounted the day before: “The word ‘Monotropy’ on *Two Cohabitating Modes* is associated with Bowlby’s attachment theory, which we do not endorse. Let’s avoid using monotropy.”

Label correctedMonotropism is Dinah Murray’s; monotropy is John Bowlby’s, and they are not the same word shortened

**Monotropism** was coined by **Dinah Murray** with her neighbour **Jeanette Buirski** and set out in Murray, Lesser and Lawson (2005); it describes **attention**, and it is [Sheet No. 8](https://queering.earth/monotropa-uniflora)’s subject. **Monotropy** is **John Bowlby’s**, from attachment theory: an infant’s innate drive to attach to *one* primary figure, **usually the mother**, whose bond is ranked above every other, with father, siblings and grandparents below her. **That hierarchy is what this house does not endorse**, and the maternal-deprivation arguments were built on it.

**One letter of difference does real damage here.** Writing *monotropy* for a theory of attention hands a reader a framework about mothers, ranked caregivers and innate deficiency — on the one page whose argument is that two modes are equal and neither is a grade. It imports the exact thing the sheet is written against.

**The body was right and the label was wrong, which is this site’s characteristic failure turning up in its own house.** The section’s prose said *monotropism and polytropism* correctly and cited the 2005 paper; the heading above it, the `id` under that heading, two comments inside the masthead drawing, the stylesheet’s own note and two of the cabinet’s records all said *monotropy*. Sheet No. 8 has it right thirteen times over and never got it wrong, because it was written with the paper open.

**`#monotropy` is now `#monotropism`, and a published address was changed to do it.** The sheet was a day old and the only things pointing at it were derived — the finding aid’s manifest and the sheet’s own contents list. An authored id is meant to be permanent and the reason to break one has to beat tidiness; carrying a repudiated term in a URL does. Recorded in [the decision log](https://queering.earth/what-is-settled) as a standing rule: **monotropism and polytropism, never monotropy or polytropy.**

2026 · 11 September

## The masthead read *Queering.Ear / th*, and the measurement that certified it was of the wrong thing

Ryan, with a screenshot, on the fix mounted directly below: “The title now wraps.” It did. The rule that stopped three pages scrolling sideways had been put on `body`, it cleared every page, it passed all nine gates — and it broke the wordmark in half on the front of the cabinet.

Label correctedThe rule was right and the scope was wrong

`overflow-wrap: anywhere` does two things: it permits a break inside a word, and it shrinks the element’s intrinsic min-content. **The second is what recovers the sha256 column on paper** — and it is also what lets a display word break where it had been sitting wider than its own box without anybody minding. **Sitting wider than your own box is not the same fault as scrolling the document**, and the masthead does the first on purpose: `main` is capped at 34rem, the wordmark is bigger than that, and it overflows symmetrically into gutters that exist to receive it.

**Every measurement taken was of the wrong quantity.** A twenty-five page sweep of `scrollWidth` at four widths and both papers, before and after, reported no change anywhere but the three faulting pages — because **none of the damage moved a document width.** The wordmark broke inside the measure. The reading panel’s *Typeface* label broke mid-word inside a fixed-width row, on all twenty-five pages. Every table on the site re-laid out its columns. All of it invisible to the one number being watched, and the new gate said `PASS` to every bit of it.

**The check that finds it is a line-box diff**: for every text node on every page, count `Range.getClientRects().length` with the rule and without, and report every element whose count moved. Four lines different from the sweep that saw nothing, and it found 324 changed elements on the first run. **It is not a gate and should not be** — a changed line count is usually the *point* of a typographic edit, so it cannot be pass or fail. It is a diff to read by hand whenever a rule touches wrapping, and that is written beside the rule now.

**Narrowing it took three attempts, and the two rejected ones are the useful record.** `code, a` clears this register and the decision log but leaves [the ledger](https://queering.earth/ledger) at 402px, because that page carries a bare `<https://doi.org/…>` in running prose as a plain text node with no element around it — which is the entire reason `.qe-record p` and `li` are named. Then `a` turned out to reach `a.card`, and the Register card’s kind chip split across two lines at 1280px. **A structural selector was tried and does not help**: a card lives inside an `li`, so `:is(p, li, …) a` catches it too. **A selector list that looks careful while catching the same element is worse than an exception that says what it is protecting**, so the card is excluded by name. `.qe-editions td` was tried and is *not* in the rule at all — a `code` element’s own `anywhere` already shrinks what the column sizing reads, so the paper fix needs nothing else.

**And the technique was already in this stylesheet.** `.qe-references p a` has carried `overflow-wrap: anywhere` since the references block shipped: this house had reached for exactly this the first time a bare URL would not fit, and scoped it to the one component somebody was looking at. **That is the precedent rather than a casualty** — the general rule is that rule generalised, and the scoped copy has been folded into it.

2026 · 11 September

## Three pages had been scrolling sideways since the day each was mounted, and a ninth gate to say so

Found by hand on this page, at a 375px viewport: a 414px document, pushed out by one `code` span holding `performance.getEntriesByType('resource')`. **Eight gates passed the page.** Looking for the rest of it found two more.

Label correctedA string with no break opportunity breaks the page instead

This register measured 414px at 375 and at 320. [The ledger](https://queering.earth/ledger) measured **812px at 320 and 943 at 768**; [the decision log](https://queering.earth/what-is-settled) 425. “The page body must never scroll horizontally” is a rule this house states outright, and it had been broken on three pages for as long as each of them has been up.

**The strings are the ones a ledger is made of** — DOIs, archive.org identifiers, sha256 masters, file paths into the knowledge system, a deploy hook URL. None has a space or a hyphen in it, so a line box cannot end anywhere inside one. **That is why this will happen again**, and it is the argument for a gate rather than an edit: `ATTRIBUTIONS.md` grows one of these every time a source is credited and `DECISIONS.md` every time something is settled, and `make-records.mjs` pours both onto a page. The hazard is attached to the routine, so the guard is too.

**Fixed in the stylesheet and not in the prose**, on Ryan’s instruction: the register is a dated record, and rewording an entry to make a layout fit would falsify it.

**The house pattern for wide content is a scroll box, and it is for blocks.** It is already spent where it belongs — `.qe-record pre` scrolls because a wrapped command line is one somebody pastes wrong, and a comparison table scrolls because it is an object with columns. Neither answers an identifier set inside a sentence: an inline element has no scroll box, and giving a `code` span one would put a scrollbar in the middle of a line. So the inline form wraps and the block form scrolls, which is the same decision twice — show the whole string, by whatever means the medium has.

**`break-word` looks equivalent and is not, and the difference is only visible on paper.** In flowing prose the two are indistinguishable and both clear all three pages on screen. Inside a comparison table they part company, because only `anywhere` shrinks intrinsic min-content — under `break-word` the sha256 column stays as wide as the hash. On screen the table’s own scroller hides that. **On paper it does not**: the print sheet switches that scroller off on purpose, and the ledger was printing 802px of content onto a 717px A4 sheet with both master hashes running off the edge of the provenance table — in the file whose entire job is recording provenance. Measured, not read off the specification.

Label correctedThe plate’s frame bled into a gutter that paper does not have

Found by the new gate on its first honest run, and by nothing and nobody before it. `.qe-vined` pulls itself out by exactly its own padding so the cards keep the full measure — correct on screen, where `main` carries a gutter to absorb it. In print `main` is `max-width: none; padding: 0`, so there is nothing left to absorb anything: **775px of home page on a 739px Letter sheet**, 752 on a 717px A4, hanging off both edges. The print block had already overridden the padding and left the margin alone, which is the whole fault — one half of a pair reset.

**The corner sprigs came in flush in the same edit**, and that is the same fix rather than a second one: with the frame no longer bleeding, a sprig hung 0.9rem outside it hangs 13px off the paper. The stylesheet already had this answer for narrow screens, with its reason written down — under 30rem the corners come in flush because a sprig hung outside gets its flowers clipped by the viewport. **A sheet edge is a viewport edge that cannot be scrolled.**

**No eye was going to catch it.** The cards themselves stayed inside the sheet, so only the rule and the sprigs were being trimmed, and a frame cut flush with the paper looks deliberate.

CabinetA ninth gate, which could have failed on three pages the hour before it was written

`tools/check-width.mjs`: no page scrolls sideways, at 320, 375, 768 and 1280, and nothing runs past a Letter or A4 sheet. **Native, not ported**, and it clears the bar `check-cache.mjs` set — the failure had already reached production. This house runs eight gates rather than eleven because a check that cannot fail is a check nobody reads; this one had three live faults waiting for it.

**No existing gate could see it, and `check-overlap.mjs` is the near miss worth naming.** It is the only other tool here that knows where anything is, and it asks a different question: is this text on top of that text. Text past the right margin is on top of *nothing* — there is nothing out there. Its clip walk does not catch it either, because the document is not a clipping container: it grows. And its screen pass is 1280px, where none of the three faults exists.

**Folding it into that gate was considered and refused.** Widening the overlap sweep to 320 and 375 would surface a flood of narrow-width collisions nobody has ever triaged, which is a separate project; and a gate named for text landing on text should not also be the one that measures margins. 320 is not arbitrary either — WCAG 1.4.10 asks that content reflow to 320 CSS px without two-dimensional scrolling, which is 1280 at 400% zoom.

**It has no `--check` flag, deliberately.** Two gates here shipped as a report that printed its findings and exited 0, and the contrast gate stayed advice for as long as `CLAUDE.md` forgot the flag. A gate whose default is to pass has not shipped.

**Made to fail before being believed**, per the house rule, and both halves separately: withdrawing the wrap rule reports nine failing passes across the three pages, withdrawing the print margin reports two on the home page, and the restored stylesheet reports `PASS` across twenty-five pages and six passes each. **Its first draft named the wrong words** and was corrected — it reported the run ending furthest right, which for an unbreakable string is the innocent tail after it, so it pointed at “, not out of a reading of the source.” rather than at the `code` span before it. It reports the *widest* overflowing run now. A gate that names the wrong words is a gate somebody edits the wrong words to satisfy.

2026 · 11 September

## A fair-use position, written down before the sheet that needs it

Ryan, on being told a proposed sheet could not quote two of its four subjects: “This is a copyright maximalist approach that absolutely destroys fair use. My open source, copyleft soul weeps. It’s also a huge accessibility problem.” He was right on both counts, and the rule he was objecting to was never this house’s rule — it was asserted in a research note by a drafting assistant and reported as ours.

MountedWhat we quote, and why we may

[The quoting policy](https://queering.earth/how-we-quote), in [the cabinet](https://queering.earth/the-cabinet-itself) beside [the ledger](https://queering.earth/ledger): what this site takes from work still in copyright, how much, on what reasoning, and what to do if you hold the rights and disagree. It is a binding statement like [the privacy page](https://queering.earth/privacy), so a change to it gets an entry here — including a change that narrows what we claim.

**The first ten sheets never raised the question.** Dickinson, Rossetti, Woolf, Shakespeare, Sappho: all public domain, so the house has had a quoting *practice* since the first sheet and never needed a quoting *position*. The next sheet is four artists who are all in copyright, and a policy written while building the page that tests it is worth more than one written in the abstract.

**Two arguments carry it, and neither is legal.** The first is that a refusal to quote does not produce silence, it produces paraphrase — and a paraphrase with the attribution still attached is the tightened source [the ledger](https://queering.earth/ledger) exists to prevent. [The finding aid](https://queering.earth/search) already refuses to crop a quotation for that reason; declining to quote at all is the same defect with the volume turned up. The second is access: “go and listen to the recording” is an audio-only requirement, and it excludes Deaf and hard-of-hearing readers from the argument entirely. **The quoted line is the accessible version.**

What the page does *not* do is repeat the folklore. There is no permitted number of words or lines or bars anywhere in the statute or the case law, and saying so is half the point of publishing it.

CabinetA seventh page in the drawer, and a fourteenth link in the row

The cabinet drawer said *six pages* in three places and now says seven. **The heading’s id did not move**: `#the-six` is an authored topical anchor and not a slug of its own wording, and outliving a reworded heading is the entire reason ids here are authored. Renaming it to match the new count would break exactly what the rule protects.

The footer row gains *Quoting*, which is a nav label and not the page’s name — allowed for a link, refused for a group heading, and the distinction is already in `CLAUDE.md`. **The row now wraps to fourteen targets and was re-measured after**, because nothing in the build measures a hit area.

2026 · 11 September

## Three drawers, a breadcrumb on every sheet, and a panel that moved when a control was added

Ryan’s: “I like breadcrumbs and collection pages.” The two lists at the foot of the home page were already collections in everything but address, and the plate was a third. He named the menu, and chose *Drawers* over *Collections* and *Cases* with the collision against the *Cabinet* control stated in advance.

MountedThree collection pages, and not one of them repeats a sentence the home page already carries

[The plate](https://queering.earth/the-plate), [the founding papers](https://queering.earth/the-founding-papers) and [the cabinet itself](https://queering.earth/the-cabinet-itself) are the three groups `tools/pages.mjs` has always held, given addresses. Each group’s collection page is now the first entry in its own group, so `/llms.txt`, the finding aid’s manifest and the reader’s index stay one list.

**The glosses were the whole design problem.** Nine pages are described in one sentence each in `.qe-furniture` on the home page, and this file’s loudest rule is that two copies of the same words drift. So a collection page carries a *different* sentence with a different job — what the page is *for* and where it sits against its neighbours, not what is in it — and says on its own face that the gloss lives on the front of the cabinet. [The plate](https://queering.earth/the-plate) takes the same treatment from the other side: it shows the ten cards in their reduced form, the one the sibling navs already use, and carries no card notes at all.

**What earns each page its place is the part that exists nowhere else.** The plate defines what a sheet is, what a reading, an essay and a wall each mean — settled in [the decision log](https://queering.earth/what-is-settled) in September and never stated anywhere a reader meets them — and what the accession number does not say. The founding papers carry the signed-and-unsigned rule. The cabinet page says what the build actually checks about its own six pages.

**None of them is a specimen**, so none carries a plate number, an accession stamp or a provenance line, and none is carded. **And none carries a sibling nav**: the drawers menu lists the other two drawers at the top of every page on the site with the current one marked, so a second list of the same three on the page itself is the two-competing-lists fault this file already refuses on the home page.

MountedThe breadcrumb was already here, one crumb long, on twelve pages

`.qe-home` was a lone link home on twelve pages, and seven more carried the group name beside it as *plain text* — “Queering Earth · The founding papers”, with the second half leading nowhere. The collection pages turned that dead text into an address, so the two shapes became one `.qe-crumbs` nav on nineteen pages.

**It stops at the drawer and never names the page it is on**, because the `h1` is the next thing in the masthead and a third crumb would be the title printed twice, a line apart. The JSON-LD block carries all three items, since a machine’s copy has no heading under it. **The separator is drawn in CSS** and is not a character in the markup: it must not join the accessible name, reach the Markdown, or be something a reader can select into a quotation.

**It sits inside the landmark, which the nav rule otherwise forbids**, for the reason the contents list does: that rule stops one sheet’s navigation being indexed as another sheet’s content, and a trail naming this page’s own position cannot do that. It lives in `.qe-masthead`, which the search index already skips, so it reaches the `.md` — where an agent wants to know where a page sits — and not the finding aid, where it would be nineteen identical results. **Targets measured after:** 45px tall, 107px and 67px wide, 18px apart, at 375px and at 1280px.

**The menu is a native disclosure and writes no words**, like the reading settings beside it. Three links and three lines of hint, all authored in the markup; `queering.js` gained nothing but a loop, and lost a copy — the Escape and click-away handlers the reading panel had to itself now run over both, which is also what makes opening one close the other.

Label correctedThe readings drawer answered to three names, and two of them were older than the drawer

Every other drawer’s name appears in five places and is the same word in all five: the group heading in `tools/pages.mjs`, the section heading on the home page, `/llms.txt`, the finding aid’s manifest, and the collection page’s own heading. **This one had three** — *The readings*, *What grows here*, and *The plate*. The first two had disagreed since the finding aid shipped and nobody had noticed, because nothing put them side by side; giving the set a page put all three in one sentence. **A set acquires its second name long before anybody chooses one.**

**Reconciled to *The plate*, and the evidence is that this site had already chosen it in prose.** Four entries on this page say *the plate of sheets*; [the aims](https://queering.earth/mission) say “Kept on the plate, one sheet at a time”; `check-card-order.mjs` prints “the plate is the authority for a sheet’s number and kind”; the markup carries `.qe-plate-grid` and eighteen sibling navs headed *Elsewhere on the plate*. Every one of those uses the name as a noun in a sentence. *What grows here* never does — it appears four times on this page, always italicised, always as the *title* of a section, which is a different job. **And *The readings* was the one that was plainly wrong**, for a set holding eight readings, an essay and a wall: the kind chip on a card is *Reading*, *Essay* or *Wall*, so naming the set after one of the three collides with the vocabulary inside it.

**`/#what-grows-here` did not move, and this is the first time that rule has been cashed in.** Ids here are authored topical anchors and never slugs of their own headings, precisely so a reworded heading does not take every shared link with it. The heading changed and **all seven anchors pointing at it still resolve** — three on this page, one on the aims, one on the drawer, one in the finding aid’s manifest, and the section’s own mark. Tidying the id to match would break exactly what the rule protects.

**The older entries on this page were not rewritten.** They are dated records of what the page said when they were written, and editing them to use a name that did not exist yet would falsify the register in the file whose job is to record that kind of failure. **What is lost is *What grows here* as a visible heading**, and it was a good one — botanical, a question rather than a label, older than almost everything around it. That is the price of one name, and the alternative was three, one of them false.

CabinetThe three drawers joined the footer row, and their labels are the one place a short label is not allowed

Ryan’s, after the drawers shipped. They sit directly after *Queering Earth* on all twenty-three rows, which is the level they are: the home page, then the drawers, then the pages they collect.

**The labels are not shortened, and that is this file’s own licence running out.** A row of links is allowed a short label — *Colophon*, *Register*, *Decisions* — because those name *pages*. *The founding papers* and *The cabinet itself* name **sets**, in the same words in `tools/pages.mjs`, on the home page, in `/llms.txt`, in the drawers menu and on each collection page’s own heading. A short label for one of those is the second name for a set this register keeps recording as drift.

**The row wraps now, and a single line was never the invariant.** The stylesheet’s note recorded eight links at 575px on one line and had gone stale twice over — the row has been ten links and two lines since the founding papers shipped. What actually has to hold is that no two padded targets on adjacent wrapped lines can touch, which is what `line-height: 2.9` is for. **Measured at thirteen:** two lines at 1280 and 768, four at 375, six at 320; no overlaps at any of them, every target past 44px in both directions, and `scrollWidth` equal to the viewport at all four. The note says so now, and says to remeasure when a link is added.

Label correctedThe home page said eight sheets, and the plate has held ten since 10 September

“Eight sheets, so far, mounted and numbered on the plate below” was true when it was written and stopped being true on [No. 9](https://queering.earth/five-unmistakable-marks), directly above a plate showing ten cards numbered 1 to 10. **Replaced rather than corrected**, because a count kept by hand is a count that goes stale, and this register already holds two other findings of exactly that shape on Star Stuff’s own pages. The sentence now says the sheets are numbered in the order they were accessioned and leaves the counting to the plate.

CabinetA panel hung off its own control moves when a control is added, and the one that moved was the old one

The reading panel had been `right: 0` on its own summary since it shipped, which quietly made its position **a function of how many controls sit to its right**. Measured at 1280px it cleared the measure by 31px. Adding one control moved the control 81px left, took the panel with it, and landed **50px of it on the lede on eight pages**. `check-overlap.mjs` reported it; nothing else would have, and no amount of care about the new control would have predicted it. Both panels now hang off the tray, whose right edge is the gutter at every width, and a seventh control cannot move either.

**The tray’s own note said a new control is a measurement**, and it was right about the row and silent about the overlay. Measured at 320, 375, 768 and 1280px after: every hit area 44×44 or better, no two overlapping, `scrollWidth` equal to the viewport at all four, and both panels inside the gutters at 320. **The cost is paid explicitly** — the 44px box `.qe-controls > \*::after` grows only works because each child is positioned, so for these two it moves onto the summary and the tray’s rule is switched off for them rather than left to misfire against the tray.

**Two overlay panels in one tray can both be open with JavaScript off**, because a disclosure toggles natively and the close-the-other convenience was script. They now share a `name`, which is HTML’s exclusive accordion: opening one closes the other with no script at all. Verified by setting `open` directly, with no click and therefore no listener involved.

**That fix made the two rendering gates disagree, and both were taught.** `reveal.mjs` dissolves the group before opening, or one panel would be measured shut — the eight-percent-of-itself failure its own header is about, arriving through a fix for something else — and puts it back afterwards. `check-overlap.mjs` then knows that two members of one exclusive accordion can never be on screen together and refuses to call them a collision; the exemption is **declared by the markup** rather than listed in the tool, which is the bar the invisible-text list already set. Proved both ways: the drawers panel’s hints in a 2.15:1 colour report three failures under the contrast gate and none once restored, so the panel is genuinely being measured.

2026 · 11 September

## A masthead for the two modes, and the width a masthead is actually reviewed at

Ryan’s, after the blown-up tray mark was [refused twice](https://queering.earth/what-is-settled): “Instead of a blown-up icon, let’s do something else for the header illustration.” Four options were put up and he took the one that draws the argument instead of the animals.

MountedOne flower against many, with the two flower areas equal by computation

`.qe-tropisms` is two plants on one ground line: a single unbranched stem carrying one five-petalled flower, and a low stem branching three times into a broad flat head of twenty-nine florets. **Monotropism against polytropism** — and *Monotropa uniflora* means *one turn, one flower*, which is [Sheet No. 8](https://queering.earth/monotropa-uniflora)’s whole subject, so this site already reads monotropism through a plant. **It also cannot restage the predation problem the tray mark had**, because plants do not eat each other.

**The invariant is equal flower area and it is computed, not eyeballed.** The drawing’s claim is *different distribution, equal mass*; two areas that were merely near would rank the two modes by accident, which is a gold join on an uncorrected sheet in the most prominent place on the sheet. The rosette is a five-lobed polar rose whose area is exact — `πR²(a² + b²/2)` = 826.24 — and the floret radius is solved back out of it: 29 × π × 3.011² = 826.24, residual 1.1e−13.

**Only one CSS rule is new**, and that is deliberate: every flower and leaf class already exists under `.qe-botanical`, so nothing here can render unstyled. The exception is `.ground-line`, which is scoped per drawing — the lilac bush and the crooked tree each own one — so this drawing owns a third. `.floret` was left alone: it belongs to the lilac bush outright.

Label correctedA masthead is reviewed at 448px, not at the 34rem measure — a number this register already held

Four passes were judged against a 544px review sheet, on the reasoning that 34rem is the measure and 34rem is 544px. **A block inside `main` does not get 544px. It gets 448.** The drawing was therefore tuned 21% larger than it renders, and on the real page **the rosette came out 26px and read as an asterisk** while the head read as a cup. Rescaled for 448 it is 41px and reads as a flower.

**The number was already written down.** [The decision log](https://queering.earth/what-is-settled) records it against `.qe-wide`: “measured on screen, the provocation is 448px — the content box every other block gets”. It was measured once, for a different question, and not applied here. **A measurement in the log is only worth what the next session remembers to reach for**, which is the same shape as the afternoon’s other findings and arrived one day later.

CabinetThree more refused drawings, one of them this file’s own recorded mistake repeated

**A hanging bell** reads as a *bud* at the 21px it shipped at, and lobing its rim to say *mouth* is invisible at that size; the flower turned to face the reader instead, because what reads at sixty pixels a plant is silhouette and count. **Florets on an arc** are a ring, and a ring reads as a wreath — *this repository’s own words about the lilac panicle, reproduced exactly.* They sit on a golden-angle spiral over the head’s area now, the same walk the drift rail’s lean uses. And **thirteen florets in a head this broad** filled a tenth of it and read as beads on a wire: with the area fixed, a wider head needs more and smaller florets rather than the same ones spread further.

**Three dead classes, caught by hand because the gate for them is not ported.** The stems carried `.stem-main`, `.stem-branch` and `.stem-twig` beside `.stem`, with no rule anywhere — the stroke hierarchy was inline all along, as [Sheet No. 1](https://queering.earth/on-being-ill) does it. They did not render black only because every one of those elements also carried `.stem`. **`check-classes` is still the next port from Star Stuff and this is the second drawing to want it;** until it lands the check is a dozen lines, and it is worth running on any new drawing.

2026 · 10 September

## Two Bewick cuts from 1792, and a masthead refused twice

Ryan asked for two things: the fox-and-hedgehog mark blown up as header art for [the new sheet](https://queering.earth/two-cohabitating-modes), and whether there is public-domain art suitable to it. The answer to the second turned out to be much better than the first, and the first was drawn twice and refused.

MountedThomas Bewick engraved both animals for one 1792 volume, and his prose is as good as his cuts

*A General History of Quadrupeds* (Newcastle upon Tyne, 1792) has **the hedgehog on page 448 and the Cur Fox on page 280** — two wood engravings, one book, which is the same shape as the sheet’s two poems from two books. Mounted as `.qe-plate-wide` figures from the Smithsonian Libraries scan, re-encoded by `tools/make-plates.py`. **Bewick’s 1792 paper is within a few values of `--qe-paper`**, so the plates read as though they were always on this sheet.

**The text was the find.** Bewick’s hedgehog article opens “DESTITUTE of every other means of defence, is provided by Nature with a spinous armour”, and four sentences later: “The more it is harrassed, the closer it rolls itself.” That is [exposure anxiety](https://stimpunks.org/glossary/exposure-anxiety/) and masking, written down in 1792 by somebody watching an animal in a hedge, and it is the sheet’s own argument about King’s “His coat does all the work for him” arriving from a third direction. **And the Cur Fox article is the Halliwell rhyme in prose** — “It lurks about the out-houses of the farmer, and carries off all the poultry within its reach” — ninety-four years before that printing, with neither text quoting the other.

Three things the captions have to say. **The article’s heading is the subject of its first sentence**, so both quotations begin mid-grammar and the captions say where the subject is rather than supplying one in brackets. **The long *s* is transcribed as *s*** — a letterform, not a letter — while “harrassed” is the printing’s spelling and stays, on the same footing as King’s “runts”. And **Bewick’s three “varieties of Foxes in this island” are not three species**: all are *Vulpes vulpes*, and mounting *The Cur Fox* without saying so would lend a retired taxonomy our authority rather than his.

**The Greyhound Fox cut on page 279 was looked at and passed over**, because it shows a fox with a kill. A predation scene is the one thing the drawings on this page must not say — the same reason the tray mark’s two animals face the same way.

CabinetA blown-up tray mark is not a masthead, and that is `favicon.svg`’s rule running the other way

Drawn twice, rendered at 368, 544 and 900px in both grounds, refused twice. **Pass one** gave the mark colour fills and features — rust pelt, marigold dome, an eye, an inner ear, a white bib, blocked feet — and read as children’s-book clip-art, fighting the house register of ink line on vellum and sitting four inches above two wood engravings whose hatching makes a flat rust mass look like a sticker. **Pass two** stripped it to one ink colour and no features; the cabinet inversion came out right, and at 900px the construction showed: the neck a facet, the two ears horns with a notch, the nose a ball, the legs and feet six rectangles, and thirty spines that are a coat at 40px turning into a cog.

**The rule is the favicon rule inverted.** That one says a mark is judged at 16px because two earlier marks looked good large and died small. The converse is less obvious and cost two passes here: **a mark drawn to survive 20px carries 20px tolerances, and enlarging it enlarges them.** A masthead is a different drawing, not the same drawing bigger.

**And the position has a weight.** Every other masthead here is thin moss stems, small lichen leaves, a small moth — sparse line. Two filled quadrupeds are the wrong weight for that slot however well drawn, which is why another iteration on the same approach was not the answer. The sheet carries no drawn masthead; the Bewick plates carry the animals, which is what a mounted specimen is for. Whether an outline masthead — single closed contours, thin ink stroke, animals as line rather than as mass — would sit in the register is left open in [the decision log](https://queering.earth/what-is-settled). **The tray mark is unchanged.**

2026 · 10 September

## Every poem on the site was arriving in the Markdown mirror as prose

Reported against [Sheet No. 3](https://queering.earth/promises-like-pie-crust), where Rossetti’s first stanza had been reading “Promise me no promises, So will I not promise you: Keep we both our liberties,” in `promises-like-pie-crust.md` since the Markdown mirror shipped. Ten pages were affected, and `llms-full.txt` carried all of them. **[*Two Cohabitating Modes*](https://queering.earth/two-cohabitating-modes) was accessioned the same day and landed inside the fault** — its hedgehog poem and its fox rhyme, fifty-three lines, were flat in `two-cohabitating-modes.md` from the hour it was mounted. The fix reached it on the merge, which is the argument for fixing the converter rather than the ten files.

Label correctedA verse line is the one span on this site that is not a bare wrapper

`tools/make-markdown.mjs` listed `span` in its inline table as a wrapper, which is right for nearly every span here and wrong for the one that is not. `<span class="l">` does not wrap words inside a sentence — **it is a line**, and `queering.css` has said since the Rossetti sheet that a poem’s line breaks are the object being mounted and that reflowed into prose it is a different poem. Rossetti, Dickinson twice, Eliot, Douglas, Carroll, Shakespeare, Völuspá, Tam Lin, Yeats, Edith King’s hedgehog and the Halliwell fox rhyme on [the sheet mounted this same day](https://queering.earth/two-cohabitating-modes), the *Stimpunks Manifesto* and [Ryan’s own reply verse](https://queering.earth/wild-nights) were all being handed to an agent as paragraphs.

**The sheets that set their lines on one source line were worse than reflowed.** `.qe-lines` puts every span on a single line of markup, so there was no inter-line whitespace to become a space and the converter emitted “againThe five unmistakable marks”. Not a different poem: not words.

**The fix is keyed on `.l` and not on a list of containers, and the stylesheet had already paid for that lesson.** The obvious shape is a break for `.l` inside `.qe-poem` or `.qe-verse` — which is exactly what `queering.css` tried and abandoned, scoping the display rule first to `.qe-specimen`, then copying it to `.qe-correction`, and then watching Sheet No. 8 put verse in a `.qe-slip` that inherited neither. A container list here would have rebuilt that wall in the Markdown, and would have missed [Sheet No. 7](https://queering.earth/flower-codes) on the first pass, whose Douglas sits in a plain `.qe-specimen`. A `.l` is a line of verse wherever it appears, in both files, for one reason.

**It is not a break after every span**, which would put line breaks through the middle of ordinary prose — the same error facing the other way. The ten files that changed are exactly the ten with a `.l` in them.

MountedThe hard break is a backslash, because two trailing spaces would have been erased after they were written

Markdown spells a hard break two ways. **The tidier at the foot of the converter strips trailing whitespace from every line**, so the two-space spelling would have been emitted and then silently removed — a fix that reports success and changes nothing, which is worse than no fix at all. A backslash also survives the `> ` prefixes that `.qe-poem` needs and `.qe-verse` does not.

**It is written on the open of the next line rather than the close of this one**, so a stanza never ends on a dangling backslash. CommonMark reads a backslash at the end of a paragraph as a literal backslash, so the close-tag spelling would have hung a stray mark under every stanza on the site.

**`.l-in` re-indents in the source**, two spaces, reproducing the 1896 compositor’s alternating indent on Rossetti and on Tam Lin. A strict renderer may collapse it; the text an agent reads carries it.

**`search-index.json` was already right and did not change.** `make-search-index.mjs` keeps a `blockquote` and a `div.qe-verse` as whole records, so the finding aid had never flattened a poem. Only the Markdown had — which is the drift the generator exists to prevent, arriving through the one door nobody had checked.

2026 · 10 September

## A third founding paper, on the fox and the hedgehog, and an unlabelled door in the top bar

Ryan’s, and he supplied most of the sourcing: Edith King’s hedgehog poem, Liv’s *Life as a hedgehog*, the Vanhuysse review, the two Sagans, and the Stimpunks research page. He asked for a complement to [Star Stuff’s *Who Is Holding the Candle*](https://starstuff.earth/who-is-holding-the-candle), for the hedgehog poem in full, for a suitable fox poem to be found, and for a fox-and-hedgehog mark in the top bar as whimsy and as an easter egg. Four things surfaced in the sourcing before a word of the sheet was written, and none of them were ours.

MountedTwo children’s poems that end in the same place, which is the argument

[The sheet](https://queering.earth/two-cohabitating-modes) is filed under [*The founding papers*](https://queering.earth/#the-founding-papers) with [the mission](https://queering.earth/mission) and [the manifesto](https://queering.earth/manifesto), because it is about why this cabinet exists alongside a sibling rather than about how either is made. It runs the descent of the proverb — Archilochus to Erasmus to Berlin to Gould — and then puts two poems under it.

**The find is that the two poems end identically, and neither of them was chosen for that.** King’s hedgehog likes a quiet wood “Where he can feed his family / On proper hedgehog food”. The anonymous fox comes home to “young ones both nine and ten”, who tell him he may go again if he brings such nice meat. **One goes nowhere and eats the right thing; one goes everywhere and takes what there is; both are somebody’s father coming back with dinner.** Read from there, Berlin’s typology is a ranking of twelve great men with Tolstoy above them for managing both modes — and the poems rank nobody, because each animal is described in the terms of its own life instead of measured against the other.

**The neurodivergent reading is the reason the sheet is ours and not a book review.** Hedgehogs already carry punk, Disabled and [spiky-profile](https://stimpunks.org/glossary/spiky-profile/) associations in our own house, down to a mascot; the curl is [exposure anxiety](https://stimpunks.org/glossary/exposure-anxiety/), masking and [minority stress](https://stimpunks.org/glossary/minority-stress/) drawn from outside. And King’s “His coat does all the work for him” turns out to be the whole problem stated in one line: the defence that costs nothing to deploy is also the reason nobody believes you need anything, which is exactly what [Liv describes](https://web.archive.org/web/20220508100306/https://traumatism-fieldnotes.com/life-as-a-hedgehog/) at the support counter.

**It is signed and the others are not.** `/mission` and `/manifesto` carry no `author` in their JSON-LD because they are the collaboration speaking; this one carries Ryan, because the claim about what hedgehogs mean is his and the sheet says so. `about.author` stays absent, so the gate’s conflation check has nothing to catch.

MountedThe anthology has no fox, so the fox came from the oldest nursery collection in English

The brief asked for “a suitable Fox poem”, and the obvious move was a companion piece from King’s own anthology. **There is none.** *Fifty New Poems for Children* (Oxford: Basil Blackwell, 1922) was read end to end — its contents list and its author index — and the word *fox* does not occur in it. King has eleven poems in that book and they are a rabbit, a bat, a mole, a duck, a swallow, a beetle and the rest; no fox.

**What was chosen instead is better than a companion piece would have been.** Rhyme CXXXIII in James Orchard Halliwell’s *The Nursery Rhymes of England* is anonymous, traditional, sung as *The Fox* or *Daddy Fox*, and it is nine stanzas of a fox going through a town and coming back with the goose. **Its refrain is *the town* and its last stanza is the den**, which is what made the pairing with King work at all: the fox’s whole poem is method — he listens at the stile, estimates the mile, flatters the drake while pricing it, is “too cunning” for the trap — and it all resolves into feeding the young ones.

Cited to the fifth edition (London and New York: Frederick Warne and Co., 1886), pages 84–86, from the Project Gutenberg transcription of that edition, **checked line by line against two independent scans of it**. The refrain indent is the 1886 compositor’s and is reproduced with `.l-in`; the spaces he set before every exclamation mark are closed up, which is the decision [Sheet No. 3](https://queering.earth/promises-like-pie-crust) already took for Rossetti’s colons. The rhyme is also in Halliwell’s 1843 edition, so it was in the collection forty years before this printing.

**Thirteen of its thirty-seven lines wrap at the measure, and that is left alone on the source’s authority.** The `.l` content box is 406px and the longest line wants 498; fitting it would mean setting the stanza at 17.7px, under the house floor and visibly smaller than King’s poem on the same page — a hierarchy claim nothing supports. **Halliwell’s own 1886 measure broke six of these lines**, including “She opened the casement, and popped out / her head;”, which is our worst case as well. Read off the scan rather than inferred. The wrapping reproduces the source’s condition, and `.qe-poem .l`’s hanging indent is the device that keeps a wrap from reading as a line the poet wrote. The figcaption says so, and the numbers are in [the decision log](https://queering.earth/what-is-settled).

MountedThe 1922 edition prints “runts and digs”, and we went to the letterforms to be sure

King’s second stanza has a snout that smells “But also runts and digs”. ***Runts* is not a verb**; rooting is what a pig’s snout does, and *roots* is the word the stanza is plainly built on. Every web transcription of the poem carries “runts” too — which is exactly the condition under which a whole tradition of copies can be a single witness, so the transcriptions prove nothing.

**So the page scan was magnified rather than the scan’s text layer trusted**, an OCR text layer being the one witness guaranteed to make this particular error. At 300 dpi the “u” is open-topped and unmistakable against the closed “o” of “also” two words earlier. **The 1922 first edition prints *runts*, so the sheet prints *runts***, with the argument for *roots* made outside the quotation marks where a reader can weigh it. Correcting it silently would leave King saying a word she did not print, and correcting it loudly inside the quotation would be worse.

The same pass found that the circulating transcriptions additionally put full stops at four line-ends where the 1922 setting has commas. **The commas are hers**, and the sheet has them.

Label correctedA journal credits a review to the author of the book it reviews, and dates a poet two centuries wrong

The descent of the proverb is quoted from Pieter Vanhuysse’s essay review in *Education Review*. **The journal’s own record credits that review to Stephen Jay Gould** — the author of one of the two books it reviews, and four years dead when it ran. Its `citation\_author` meta tag says “Gould Stephen Jay”, so **every citation manager pointed at that page produces a citation crediting a review to its subject.** The PDF names Pieter Vanhuysse of the University of Haifa on its first page, in its running head and at his university address on its last; its abstract says “I argue that Barzun and Gould contribute valuable insights”. The record also files it as volume 13 where the PDF’s running head says volume 9, number 1. **We cite the PDF.** Nothing of ours was wrong, which is the only reason this is a note rather than a correction — but it is the same collapse `check-metadata.mjs` refuses in our own JSON-LD, arriving from a peer-reviewed journal.

Second, inside the quotation: **Vanhuysse calls Archilochus “fifth-century” and he is seventh.** His own fragments date him — the solar eclipse of 6 April 648 BC, and the wealth of Gyges. **The quotation keeps “fifth-century”**, because the words inside the marks are not ours to tidy and a silently corrected source is one a reader believes we found that way. The correction sits outside them. It is also a useful demonstration of the sheet’s own subject: *which century* is checkable and *which thinkers are hedgehogs* is not.

MountedThe fox-and-hedgehog mark, and why the two of them do not face each other

`.qe-modes-mark` is two filled silhouettes in the controls tray, 2.6rem wide and 20.1px tall, which puts it within a pixel and a half of the loupe beside it. **The first draft had them nose to nose, and that draft was wrong for a reason that has nothing to do with drawing: a fox facing a hedgehog is a predator facing prey**, which is the one thing a mark for a page about two modes *cohabiting* must not say. Both face the same way now, which makes them a plate of two specimens — this site’s own idiom, and no narrative at all.

Three further findings, each from rendering it at 16 to 180px and looking, which is what `favicon.svg` paid for twice already. **Eight long spines are a stegosaurus**, and on a head instead of a body they are a rising sun; a coat is a mass of short spines, so there are sixteen, each placed on the dome’s own normal and raked back — computed rather than hand-placed, the correction the lilac panicle on [the plate](https://queering.earth/) already took. **A tail with a concave underside is a scythe**, and two drafts got that identically wrong; the brush is a band of near-constant width, nearly as thick as the body, drawn before the body so the body overlaps its root. **And it is filled, not stroked** — the loupe is stroked because an instrument is thin parts, and two stroked animals went muddy below about 24px exactly as the loupe’s own note predicts.

**It does not animate, and the loupe is the reason.** The rail sprig and the moth draw themselves on because they are botanical art; this is in the instrument tray, where nothing moves, and a mark that grew beside a still loupe would read as a fault.

**What is hidden is the door and never the room.** The mark is the only unlabelled control in the tray, which is the whimsy Ryan asked for — but the page behind it is in the footer row of all twenty pages, in `.qe-furniture` on the home page with a gloss, in `sitemap.xml`, in `tools/pages.mjs`, in `/llms.txt` and in the finding aid; and the link’s accessible name is real text in the DOM at all times, so a screen reader announces “Two cohabitating modes” exactly as it announces “Search”. That is what separates this from the hover-gated section mark `CLAUDE.md` refuses: nothing is withheld from anybody.

CabinetFound and deliberately not fixed: the Markdown mirror flattens every poem on the site into prose

Checking `two-cohabitating-modes.md` turned up a fault older than this sheet. `make-markdown.mjs` treats `span` as an inline wrapper — correct nearly everywhere, and wrong for `.qe-poem .l` and `.qe-verse .l`, the one element here whose whole job is to be a line. **So every stanza on the site arrives in its `.md` as one reflowed paragraph**: “Promise me no promises, So will I not promise you: Keep we both our liberties…”

**It contradicts the rule the component was built on** — *a poem is a specimen whose line breaks are the object; reflowed into prose it is a different poem* — and the reason the generator exists, which is that the Markdown an agent fetches must not disagree with the page. Affected: Rossetti on [Sheet No. 3](https://queering.earth/promises-like-pie-crust), Dickinson and Ryan’s reply verse on [Sheet No. 6](https://queering.earth/wild-nights), Sappho on [Sheet No. 7](https://queering.earth/flower-codes), and now 53 lines here, which is what made it visible. **`search-index.json` is already right**, because `make-search-index.mjs` keeps a `blockquote` and a `div.qe-verse` as whole records — only the Markdown is wrong.

**Not fixed here, on purpose.** The fix is two trailing spaces after each `.l` inside a verse container, and it edits a shared generator and rewrites eight `.md` files plus `llms-full.txt`. That is its own accession with its own diff to read, not a rider on a new sheet. Recorded as open in [the decision log](https://queering.earth/what-is-settled), with the trap noted: the break belongs to `.l` inside a verse container and never to `span` generally, or every span on the site puts a line break through the middle of prose.

CabinetThe controls tray wraps, because a fifth control would have scrolled the body sideways

Measured before the mark was added rather than after: at 375px the four existing controls filled the tray **exactly** — search link at x 20, the Reading disclosure ending at x 355, inside a 20px gutter, with nothing to spare. The row is `justify-content: flex-end`, so **a fifth item overflows off the LEFT edge** and takes the document’s `scrollWidth` with it — the horizontal body scroll the layout rule forbids outright.

`flex-wrap: wrap` is the whole fix. On a narrow screen the tray becomes two right-aligned rows; at any width that fits, it is a no-op. **The alternative was to drop the mark below some breakpoint, which would have withheld a feature from phones** — and the mark is the only route to the page that a reader discovers by looking, so hiding it on the devices most people read on is where it would matter most.

2026 · 10 September

## One sentence of Max Alexander pasted up as a broadside, and the rule that a component mixes type roles and never families

Ryan asked for bold, playful typography under [*The type plays, and the words do not move*](https://queering.earth/#the-type-plays), and asked the two questions that turned out to be the accession: should it mix typefaces, and what would that do to the typeface picker and to plain view.

MountedA broadside: one sentence, six lines, six sizes, and not a word of it altered

`.qe-broadside` sets “This is a protest of the notion that there is any correct way to live” — Max Alexander, [*A Playful Manifesto*](https://playradical.com/a-playful-manifesto/) — broken across six lines, each with its own size, weight, indent, lean and colour. A broadside is a single sheet carrying one statement in whatever type was in the case, which is a zine wall three centuries early, so it is **the furniture the paste-up already has**: the card, the rule, two tape strips at the top corners. No new visual language, one new component.

**The setting is ours and the words are Alexander’s, and one sentence lifted out of seven is exactly where a tightening happens unnoticed.** So it is a `blockquote` with its `cite`, captioned to the source and to [the sheet that quotes the opening whole](https://queering.earth/manifesto), and every fragment sits on **one source line with real spaces between the spans**. The spaces do no visual work — the fragments are blocks — and they are the only reason the sentence copies out, indexes and reaches `index.md` as a sentence. A newline between two of them would be kept by `make-search-index.mjs` and file a prose sentence as verse.

**It does not animate, and the heading above it is the reason.** A section called *the words do not move* cannot introduce a specimen whose words move.

**Colour is ink, moss and rust and nothing else**, those being the three text tokens that clear 7:1 in both grounds. The decorative pair is on the tape, which sits above the card’s top edge with nothing composited against it — the slip’s own rule. Corners take `--qe-corner-b`, because the specimen above takes `-a` and the plate cards below take `-c`.

**The box hugs the text, and that is a gate decision rather than a cosmetic one.** A full-width block rotated two degrees swings its far end seventeen pixels at this measure while the words sit still at the left: the ink leans by nothing and the rectangle leans by everything, and the rectangle is what `check-overlap.mjs` measures. Fitted with `width: fit-content`, the box and the ink are the same object and a collision is reportable.

**And the tilt is `--tilt`, not `--rot`.** A custom property inherits, so a `--rot` on the figure would have landed on every fragment that did not set its own and leaned the whole sentence by the card’s angle, silently. Two rotations are two facts and they get two names.

MountedA component may mix the two type roles; it may never name a family

The answer to *should we mix the fonts* is yes, and the mix is between `--qe-display` and `--qe-body`. **The typeface picker works by reassigning those two properties on `html`, so a `font-family: 'Victorianna'` written into a component is a face none of the nine options can reach** — nine controls, and one block on the home page ignoring every one of them. Worse under the five display-only faces, where the reader has been handed Newsreader as the reading face deliberately and a named third family would put a fourth face on the sheet.

What the reader actually sees, in all three cases: the default gives Fraunces shouting against Newsreader carrying; one of the five display-only faces gives their pick against Newsreader; one of the four that set both gives **one face at six sizes**. **The last of those is the point rather than a shortfall** — a reader who asked for one typeface gets one typeface, and the setting degrades into their choice instead of overriding it. What survives in every case is the play that was never a family: size, weight, colour, indent, lean, and the SOFT and WONK axes where the picked face has them.

**One word is exempt, and the licence is the drift rail’s rather than a new one.** `.w-form` sets *correct* in the reader’s own system face for the reason `.qe-drift-word--flat` does on [Sheet No. 4](https://queering.earth/invention-of-normal): the notion being protested is an institutional one, and the institution’s typeface is whatever the form was printed in. **Semantic, not decorative** — *it would look fun* is not this licence, and a second decorative hardcoded family would retire the first one’s reasoning.

MountedPlain view keeps the composition and drops the ornament, which is a split the cut-out line already drew

The second half of the question. **Gone in plain view:** the tilt, the tape, the shadow, the six per-line leans, the variation axes — and, by itself, the system-face joke, because in plain view every face is that face. The drift rail already records that as the correct outcome rather than a loss.

**Kept:** the line breaks, the six sizes, the indents and the three colours. Those are the setting rather than the decoration, and **plain view removes decoration and has never removed information.** `.qe-cutup` drew the same line when it kept its `--sz` sizes and its boxes and dropped only the rotations and the wonk.

2026 · 10 September

## Sheet No. 10, on a disability invented because nobody had it, and the readers who do

Ryan’s, from his own reading of Sami Schalk on Octavia E. Butler. Schalk calls hyperempathy “a nonrealist disability that is both mental and physical in origin and manifestation”; Ryan’s note said only “Except, it’s quite real for many Autistic people, including myself,” and asked for a sheet. Four faults surfaced in the sourcing before a word of it was written, and three of them were ours.

MountedThe argument is not that Schalk is wrong, and finding the version that is not cheap took the whole research pass

*Bodyminds Reimagined* chapter 3 is the best thing written about hyperempathy. It clears four “totalizing” readings out of the way, refuses the gift narrative that Lauren Olamina herself refuses in the text, and names the pull behind that narrative exactly — “a liberal compensatory desire to recast disability as ‘specialness’”. **The sheet endorses nearly all of it, and says so in its own words rather than leaving the endorsement implied.**

The argument is with one clause and what rests on it. Schalk’s protective mechanism is that hyperempathy “is not a disability we recognize in our current reality”, so a reader cannot overlay a stereotype they already hold. **That protection is bought with unfamiliarity, which means it is only available to a reader who does not have the thing.** For an Autistic reader it inverts: we do overlay, we cannot help it, and what we overlay is a life rather than a preconception. A claim whose truth depends on who is holding it is this site’s own method turned on a book we admire.

**Schalk names autism in the same paragraph**, by way of Stuart Murray, as the recognised disability whose cultural familiarity gets it flattened. The two claims sit one sentence apart: autism is the familiar thing that gets stereotyped, hyperempathy the unfamiliar thing that cannot be.

**And the fairest account of how it happened is the most damning thing on the sheet, and it is not about Schalk.** *Bodyminds Reimagined* is 2018. The study that put Autistic hyper-empathy on the record says, in 2024, that “there has been limited theoretical and empirical work looking at this as a specific phenomenon worthy of study in its own right.” Autistic people had been saying it for decades; the journals had not written it down. A scrupulous scholar reading the literature as it stood could conclude in good faith that there was no real-world equivalent, because the equivalent was community knowledge and community knowledge was not yet citable. **That gap is the epistemic injustice the chapter is otherwise so good on, arriving from behind and taking the premise.**

MountedOne sprig drawn twice and translated, because a mirrored pair says reflection and this is not a reflection

The masthead is a single cut sprig emitted twice: the left copy in solid ink, the right copy in outline only, identical in geometry and displaced. **The solid copy is the event and the hollow copy is the sensation**, so reading order is causation — the thing happens on the left and is felt again on the right, in a body it did not happen to. Butler’s own gloss is on the sheet: “I get a lot of grief that doesn’t belong to me, and that isn’t real. But it hurts.”

**Translated and never mirrored, which is the one thing that could not slip.** A mirrored pair either side of a meridian is the Rorschach read [the moth](https://queering.earth/#queering-is-a-verb) already paid for three times, and it would have said *reflection* — wrong twice over, because mirror-touch is not a reflection but a recurrence in another body. The displacement is also deliberately not axis-aligned, so the second copy cannot read as a shadow. Nothing here casts anything.

The hollow copy is `.rib`: `fill: none` on a `--qe-moss` stroke, which is exactly the ghost this drawing needed and is already reached by the print sheet and by the forced-colours block. **No new art class, so no new gap in either.** Both copies take `--qe-moss` and neither needs a cabinet rule.

Two things the generator had to be told. **A left-pointing leaf must not wear `.sprout-leaf`**, whose `transform-origin` is the fill-box left edge — a leaf pointing left would unfurl from its tip instead of from where it joins the stem, so the three left leaves are plain `.sprout`. And **both offsets are baked into every coordinate**, because a CSS transform animation overrides an SVG transform attribute on the same element and would collapse all twelve sprouts onto the origin. Leaves sit on the stem’s own normal at five parameters, each rotated toward the tip so none is square to the stem; square leaves read as a fishbone. Bounding box asserted rather than eyeballed: x 84.0 to 475.8, y 32.0 to 227.0 inside 560 × 260.

**The two stems ink on together and that is a limitation, not a choice.** `.stem` has no per-element delay hook and inventing one would mean a new class. The echo is carried by the leaves instead: the solid sprig’s five unfurl, then the hollow sprig’s five.

Label correctedA quotation arrived under the wrong Butler novel, at a page number that was not a page number

The brief cited “Hyperempathy syndrome is a delusional disorder, after all… it hurts like hell” as *Parable of the Sower*, p. 330. **It is *Parable of the Talents*, p. 9.**

**A tooling fault and nobody’s transcription.** The Kindle file for *Sower* carries a publisher’s preview of *Talents* after the novel ends and marks the join nowhere. Highlights run past it; the last line of *Sower* is “decided to call this place Acorn”, and everything after that is the second book — Jarret, Asha Vere, the funeral verses. A Readwise export is titled for the file, so highlights from two books arrive under one heading.

**The visible tell is a page counter that stops.** The reader shows “Page 330 of 330” at 85% of the file, because the print-page map covers *Sower* only and then repeats its own last page. So “p. 330” was not a page number at all, and **re-titling alone would have left a citation wrong in a harder way to catch** — right book, plausible number, no relation to the text. The real page came off the standalone *Talents*, whose own counter reads 9 of 394 under a running head that says so.

The general shape is the part worth keeping: **an appended preview is a second work inside one file**, and every tool in the chain takes the file as the unit — page map, export title, highlight location. A citation is only as good as the assumption that one file is one book, and that assumption is quietly false at the end of most ebooks sold today.

Label correctedThe empathy study is a 2024 article behind a 2023 DOI, and its accepted manuscript is not quotable

Everything convenient said 2023: the DOI slug `aut.2023.0001`, and the repository deposit record for the accepted manuscript. **The issue is 2024.** Kimber, Verrier and Connolly, *Autism in Adulthood* 6, no. 3 (2024), pp. 321–330, Mary Ann Liebert, Inc. Corroborated in Crossref and in the NLM’s PubMed record before it was written down, and then read off the article.

**Second instance of a pattern, so it is now a rule rather than a note.** The first was *Experiences of autistic joy*, where 2025 was the online-first date and the issue was 2026. **Online-first year is not issue year, and a DOI slug is not a date.** A paper newly cited here takes its volume, issue, pages and year from a bibliographic database — never from the PDF, the DOI, or a repository deposit.

**Cite Mary Ann Liebert and not SAGE.** Crossref returns SAGE because SAGE acquired the journal after publication; the article’s own first page says Liebert. Name the imprint on the artefact, which is the reasoning that already makes a sheet name the printing it read.

**The accepted manuscript corroborates the substance and may not supply a word of the wording.** It is the authors’ British-spelled pre-copy-edit text, and the differences are not all orthographic: the Conclusion is a different sentence, “but to better bridge the gap” against “but also better bridge the gap”. Anybody assuming the two states differed only in `-ise` and `-ize` would have quoted it wrong while feeling careful.

**And the version of record disagrees with itself on the headline figure**, which is the detail most likely to be tidied by a later hand: “Seventy-eight percent” in the Results at p. 325, “seventy eight percent” where the Discussion restates it at p. 326. The sheet quotes the Results occurrence, and any sheet quoting both must reproduce both forms.

**The participants are quoted with no identifiers at all** — no pseudonym, number or demographic tag. The ledger elsewhere credits study participants by the names their paper gives them; here there are none, so the sheet’s caption says the anonymity is the paper’s and not our omission. Those two look identical on the page and needed telling apart.

Label correctedTwo glossary pages of our own splice two Butler passages ninety pages apart into one quotation

Found while checking prior art, and **it is on stimpunks.org rather than here**, so it is recorded in [the decision log](https://queering.earth/what-is-settled) for a session in that repository and left alone from this one.

The *Canary* and *Very Grand Emotions* glossary pages both present “I wish I could find other people who have it, and live among them. A biological conscience is better than no conscience at all” and “Maybe it’s like my sharing: One more weirdness…” as a single blockquote under a single citation. They are about ninety pages apart and in the wrong order.

**The splice changes the meaning.** In context Lauren is comparing her emerging Earthseed conviction to her hyperempathy — the “one more weirdness… that I’m stuck with” is the religion, and hyperempathy is what she measures it against. Joined to the biological-conscience line it reads as though the weirdness she is stuck with is the conscience itself. Every word is Butler’s, every sentence is exact, and the quotation says something Butler did not: **this house’s characteristic failure, living on our own site.** This sheet quotes the two separately or not at all.

MountedA section that argues against the sheet it is on

*What this sheet will not tidy* carries five items, and two of them are load-bearing rather than decorative. **Butler’s hyperempathy is a drug injury and Autistic neurology is not** — Lauren has it because her mother abused Paracetco before she was born, and there is a well-supplied market for readings that would let that parallel drift into an aetiology. The sheet says on the page that the parallel is to what the condition does and how it is treated, never to where it came from.

And **Lauren says it is not a power, which cuts against this sheet as hard as against the critics Schalk corrects.** If defending Autistic hyper-empathy turns it into a superpower, the defence has performed Schalk’s “liberal compensatory desire to recast disability as ‘specialness’” in the act of citing her against it. So the strongest line the sheet mounts is not the biological conscience but the question four pages into the sequel — “So why do I miss it now?” — where Butler, in a dream that has finally switched the thing off, argues against her own harshest description of it. **You cannot subtract it and still have Lauren.** That is the claim Autistic people make when they decline to be cured, and nobody had to bring it to the text.

2026 · 10 September

## Sheet No. 9, on a definition recited for a beast nobody has seen, and on the coiner an empty word leaves behind

Helen’s idea, from John C. Brady’s two-part reading of *Logique du sens* in Epoché — she asked for a sheet on names, labels, and how things get coined, and said the Deleuze–Carroll link “may be a stretch”. It is not: Deleuze makes the identification himself, on p. 31 of the French. Ryan proposed it as a complement to [Sheet No. 2](https://queering.earth/coming-to-terms), which asks whether a label fits; this one asks where the label came from.

MountedThe primary was not in the house, and the answer was the French rather than a summary

*The Logic of Sense* is not sold as an ebook and Ryan does not have it, so the first plan was to build on Brady and correct the sheet later against Deleuze. **That plan was wrong and the reason is worth keeping.** Build-now-verify-later is fine when the later edit is an *upgrade* to a citation that was honest when it shipped; it is not fine when the later edit could change what the sheet *claims*, and a section resting on Deleuze’s theory of sense sourced entirely to somebody’s summary of it is the second kind.

**The original was reachable the whole time.** *Logique du sens* (Minuit, 1969) is openly readable at the Internet Archive; the two scans of Mark Lester’s English are restricted to print-disabled patrons. So the sheet quotes the French primary and **every English rendering on it is ours, labelled a gloss rather than a translation** — the same treatment the wyrd half-line gets on [Sheet No. 4](https://queering.earth/invention-of-normal). Quoting Lester’s English through Brady would have put a translator’s authored choices in Deleuze’s mouth at a page number nobody here could open.

**Four quotations were read off the page images and not off a text layer**, because this scan’s optical transcription drops accents and breaks words across lines. Pages 31, 60, 64 and 65, each confirmed by its running head. The page numbers are the French ones and will not match an English copy, which the sheet says out loud.

What the primary added that a summary could not: Deleuze grants that *Snark* is a portmanteau of *shark* and *snake* and then says it is one “secondairement ou accessoirement” only — the packing is not what the word does. **A paraphrase reading “Deleuze calls the Snark a portmanteau word” would have been true and would have lost the argument**, which is this site’s characteristic failure in one clause.

MountedFive mounting straps and no specimen, after the diagonal version was drawn, measured, and thrown away

The masthead is the herbarium furniture with the plant absent: five gummed paper bands across the sheet, squared off at their inner ends, and one narrow channel running down through all five where a stem would have been strapped. **Nothing may ever be added in the middle**, which is the note left in the markup.

**Three passes put the straps along a rising diagonal and all three failed, for a reason worth writing down.** Each strap sat perpendicular to a cubic Bézier, so the five gaps lay exactly on one curve — correct as geometry, and on the page it read as ten scattered tick marks. **Five dashes 15 units wide and 100 units apart will not join into a line however precisely they are aligned.** Horizontal straps stacked at five heights put every gap at nearly the same x, about 34 units wide, so the vacancy is one column the eye takes in at a glance. The first draft before that had rounded inner ends and looked like a tray of pills; square inner ends are what make a channel a channel.

Built from `.stem`, `.rib` and `.sprout` and nothing else, so it adds no gap in the print sheet and none in forced colours. `--len` on all ten bands is the real `getTotalLength()` read off the live DOM, and the bounding box is asserted rather than eyeballed: x 40.2 to 509.7, y 29.1 to 231.1 inside 560 × 260. No `.sprout` carries a transform attribute, because a CSS transform animation would override it and collapse every strap onto the origin.

MountedThe unmended provenance line ships for the first time, on the ninth sheet

All eight earlier sheets carry `--mended`, because all eight have been corrected — Sheet No. 8 was predicted to arrive clean and did not. `CLAUDE.md` has been saying for a while that the unmended state **had still never shipped** and was therefore the one to check by hand rather than copy off a neighbour. It has now shipped: solid hairline, moss ink, reading “Mounted 10 September 2026. Not yet corrected.” Checked in both grounds.

The stamp reads Sheet No. 9 and its `mix-blend-mode` resolves to `multiply` on paper and `normal` in the cabinet, which is the token doing the job it was made for — multiply darkens towards the ground, and in the drawer the ground is the dark thing.

MountedTwo of Henry Holiday’s 1876 engravings, one of which is an empty square and the other of which is the Snark wearing a wig

Ryan asked whether any public-domain art would fit and pointed at Plate 6. Two others fit far better, and both change what the sheet can argue rather than illustrating what it already said.

**The Ocean-Chart is Deleuze’s *case vide*, drawn ninety-three years early.** A heavy rule enclosing nothing, with every term of reference a chart can carry — latitude, longitude, meridian, equator, both poles, zenith, nadir, a Scale of Miles that is five dots — arranged around the outside of the blank. It sits in [the section on the empty square](https://queering.earth/five-unmistakable-marks#the-empty-square), facing Deleuze’s “une place sans occupant”, and it comes with Carroll’s crew being *grateful* for it in the same Fit as the five marks: “he’s bought us the best— / A perfect and absolute blank!”

**The Barrister’s Dream is the only depiction of the Snark in the book, and there is no animal in it.** A wig on top of drapery, a hand holding a brief, papers lettered *Trespass*, *Libel* and *Contempt*. Nine illustrations for a poem about hunting a creature, and the creature appears once, in someone else’s dream, dressed as a lawyer. It closes [the section on the definition delivered before the thing](https://queering.earth/five-unmistakable-marks#the-marks).

**Two dates in each caption, because the scan and the engraving are different objects** — Holiday cut these for the 1876 first edition and the paper photographed is a Macmillan printing of 1931. And **the stored originals are downsampled, which departs from this file’s own rule** that the JPEG is the archival copy: the Commons masters are 4.9 and 8.3 MB against 116–341 KB for every other plate here, and an `img` fallback is the one image path no `srcset` protects. They are stored at 2,176 px, twice the 1,088 px top rung, so the largest variant is a clean 2:1 downsample. The masters stay at Commons with their dimensions and hashes in [the ledger](https://queering.earth/ledger).

**A claim on Sheet No. 8 stopped being true and was corrected in the same commit.** It said every mounted image on this site is a public-domain botanical print or painting. Two wood engravings and, before them, a manuscript leaf say otherwise; it now says every mounted image is public domain and names the kinds.

Label correctedThe story everybody tells about Carroll refusing the Boojum drops three words, and the three words are the point

Ryan asked for the 1898 article to be found. It was: *The Academy* No. 1343, 29 January 1898, vol. 53, pp. 128–129, openly readable at the Internet Archive, signed by Holiday twelve days after Carroll died. **Reading it did not confirm what the sheet had been carrying as an unverified report. It corrected it.**

Every secondary account says Carroll rejected Holiday’s Boojum as “inadmissible”, which reads as distaste. Holiday wrote that Carroll called it “a delightful monster, but that it was inadmissible”. **He liked the drawing and refused it anyway**, to keep the creature unimaginable — “All his descriptions of the Boojum were quite unimaginable, and he wanted the creature to remain so.” That is not distaste, it is an author protecting a vacancy on purpose, and it is the sheet’s whole subject. **A tightened source, found in the wild, in the version of the story everyone repeats.**

**The scan’s text layer would have reproduced the same error by another route.** Its OCR of this page renders “Mr. Dodgson” as “Mr. ey” and loses “delightful monster” entirely, so an automated read of the primary would have reported the short version as verified. **The page image is the source and the text layer is a finding aid** — the rule the Deleuze quotations already ran on, now paid for a second time and by a different mechanism.

Holiday also supplies the fact that reorders the sheet: **the last line came first.** Carroll was walking alone one evening when “For the Snark was a Boojum, you see,” arrived in his head, and “the poem was written up to them”. So the hunt was built backwards to reach a word that meant nothing — which is what [the closing section](https://queering.earth/five-unmistakable-marks#the-vanishing) now says, against the section on [a series running short](https://queering.earth/five-unmistakable-marks#one-more-desire).

CabinetA half-hour reading of the poem is linked and not embedded, and the reader is named

Robert Garrison read the whole poem for LibriVox — 29 minutes 24 seconds — and released it into the public domain. It is in the sheet’s label block as a link.

**A player was considered and declined on capability grounds, not taste.** It would need a second encoding, because Ogg Vorbis alone is unreliable in Safari and nothing here transcodes audio; a MIME type taught to `serve.mjs`, which has no audio entry and would send `application/octet-stream` under `nosniff` — the `.avif` trap for the third time; a rule in `\_headers`; a line in `check-cache.mjs`; and 18 MB in a repository smaller than that. **`/privacy` exempts `a href`** because a link the reader chooses to follow is not a request the page made, so the link costs nothing and adds no capability at all.

**He is credited as the performer rather than as a licence.** Somebody read a poem aloud for half an hour; filing that under “a public-domain recording” on a sheet about coinages losing their coiners would have been the sheet doing the thing it condemns, one section below the place it condemns it.

Label correctedA sentence of Carroll’s preface is quoted around rather than repaired

Project Gutenberg’s transcription of the 1876 preface reads “leave it unsettled which you will first”, which appears to want a word. Whether the gap is Carroll’s or the transcriber’s is not established here, so **the quotation starts after it** and the sheet says why at the foot. Silently inserting the word that makes a sentence read better is the tightening this cabinet is organised against, and it is no less so when the source is out of copyright and the fix looks obvious.

**Lévi-Strauss is still quoted at one remove** — his *floating signifier* reached us inside Deleuze’s book, and his 1950 introduction to the work of Marcel Mauss has not been read here. The sheet says so.

**Asasumasu’s post was going to be described rather than quoted, and Ryan asked for it to be read.** That was right, and reading it changed the sheet rather than decorating it: she explains the coinage as an act of widening — the words in use had no room for more ways of having a brain — and then defends the word’s emptiness as the specification, “not another damn tool of exclusion”. **Her sentences make the sheet’s own argument better than our paraphrase of them did**, which is the case for reading a source rather than summarising it, put more plainly than the Deleuze entry above manages.

Two facts only a reading could produce, both now on the sheet and in [the ledger](https://queering.earth/ledger). **The post is signed *Neurodivergent K of Radical Neurodivergence Speaking*, not *Kassiane Asasumasu***, and the identification of the two is Helen’s glossary’s rather than ours. And **Tumblr publishes no absolute date for it** — only “Posted 11 years ago”, read on 10 September 2026 — so it is cited undated with the timestamp and the reading date recorded, rather than with the 2015 our arithmetic would give. Her wording is kept exactly, ampersand, lowercase and profanity included.

CabinetThe masthead’s own borrowed coinage is now a section of a sheet, not just a ledger entry

A sheet arguing that coinages get separated from their coiners has to show its own working, so [one section is about this site](https://queering.earth/five-unmistakable-marks#our-own-masthead): *Post-normal possibilities* is Helen’s phrase from the founding brainstorm, one hyphen from the end of Nick Walker’s subtitle, with a third lineage in post-normal science nobody here has read in the primary. The masthead says *after Nick Walker* — not *his phrase*, which would take the coinage off Helen, and not silence, which is how it shipped at first.

Nothing about the credit changed. What changed is that the reasoning is now on a sheet a reader will actually meet, instead of only in [the ledger](https://queering.earth/ledger) where it was logged on 7 September.

2026 · 10 September

## A crooked tree for the sheet that says queering is adaptation, and the stump of the straight one beside it

At Ryan’s note, after the monologue Tom Waits speaks in *Wristcutters: A Love Story*. It went into [To queer is to adapt](https://queering.earth/#to-queer-is-to-adapt) rather than the typography section, because that section already says queering something is “to make it strange or odd” and the monologue answers it: the crooked one is the tree still standing, “growing strong and growing strange”.

MountedThe drawing is the pair, because a crooked tree on its own is only a picture of a crooked tree

**The stump is the argument.** Waits’ story is not about a bent tree; it is about what happened to the straight one that spent its life narrating the bent one’s deficiency. So the plate is two trees: on the left, all that is left of the straight one — a flat cut and two growth rings, and no leaf on it. On the right the crooked one, whole and in leaf, its lowest branch reaching back over the space where its neighbour used to be.

**The first two drafts were not crooked.** They swung the bezier *handles* wide and left the trunk’s endpoints where they started, which reads as a wavy sapling — a tree that has second thoughts and corrects them. The endpoints zigzag now, thirty units of lateral lurch a segment, and never come back to the vertical. **A trunk that corrects itself is a straight tree with extra steps**, which is the note left in the markup for whoever redraws it.

Built entirely from classes this stylesheet already has — `.stem`, `.rib`, `.leaf`, `.sprout` — so **it adds no new gap in the print sheet and none in forced colours**. That was the reason for the constraint rather than a happy result of it: a new art class needs a new print rule reaching it by name, and a fill the print sheet cannot reach is how Star Stuff printed forty-four blank pages. Only `.trunk` and `.ground-line` are new, and both are scoped to this drawing, like the lilac bush’s.

`--len` on every stem is the length measured off `getTotalLength()`. The trunk was declared at 255 and is 270, and a declared length shorter than the real one makes the dash pattern repeat — the branch draws itself on with gaps in it. Checked in all four states the site owes: the trunk inks in `--qe-ink` on paper and inverts to the pale cabinet ink on the dark ground, and both plain view and reduced motion report `stroke-dashoffset: 0` with the leaves at full opacity, which is the finished drawing and never a missing one.

Label correctedFour words have an author, and we do not know whose these are

The caption quotes four words — “growing strong and growing strange” — and the easy caption would have read “Tom Waits” and left a reader to assume he wrote what he said. **That is this site’s characteristic failure in miniature:** an attribution true about the speaking, silent about the writing, and left to be read as a claim about both.

What is established: the monologue is spoken by Tom Waits as Kneller in *Wristcutters: A Love Story* (2006), written and directed by Goran Dukić, adapted from Etgar Keret’s *Kneller’s Happy Campers*. **What is not established is who wrote it.** It is widely repeated that Waits improvised the speech and that claim was not found in any primary source — not an interview with Waits, not with Dukić, not the published screenplay. It may equally be Dukić’s writing, or descend from Keret.

So it is logged **Open** in `ATTRIBUTIONS.md` rather than Verified, the caption says *spoken by* and claims nothing about authorship, and the caption says on its face that the question is unsettled. A drawing would not have needed the answer at all; quoting four words is what put the site on the hook for it.

2026 · 10 September

## Nine typefaces a reader can set the sheet in, six of them drawing letters that exist because the grammar refused the person

Ryan asked what fonts *queer design* — after Robin Mientjes by way of Paul Soulellis: “an attitude in the face of conformity, an attitude in the sea of passivity, an attitude to say yes when others say no.” Twenty candidates went onto two specimen sheets; nine were kept. **Six are from [Bye Bye Binary](https://gitlab.com/bye-bye-binary)**, a collective drawing glyphs for inclusive and non-binary French. The rest are from Velvetyne and the Braille Institute.

MountedA typeface picker where four options set the reading face and five only set the headings, and that split is a constraint rather than a taste

**Thirty-two faces are declared and a reader who picks none downloads three.** That is the whole reason nine options cost nothing: an `@font-face` is a declaration, and the file behind it is fetched only when a rule using that family first meets rendered text. So the picker needed no lazy-loading machinery — the mechanism was already in the cascade. Pick BBB Baskervvol and exactly its three cuts arrive; pick nothing and the sheet is what it always was.

**Four of the nine set both faces and five set only the display, and it is not a preference.** Victorianna ships a Thin cut alone and is unreadable at reading size — that was visible on the specimen before anybody chose it. Redaction Inclusive, Insolente, Trickster and Sporting Grotesque have *no italic at all*, and this site is built out of citations: setting one of them as the reading face would put a faux slant on every `<cite>` on every sheet. So those five change the headings and leave Newsreader to read, and the four with a real italic — BBB Baskervvol, Adelphe, Coxinelle, Atkinson Hyperlegible — do both.

**Three of them had been shown in the wrong weight.** The first specimen set Adelphe in Floréal Bold, Coxinel·le in Black and Sporting Grotesque in Bold, because those filenames sorted first in their repositories. Two full text families were presented as heavy display faces. Regular, Italic and Bold here, which is the difference between offering a typeface and offering whatever came out of a directory listing first.

The faces, the class rules and the manifest are generated from one table by `tools/make-fonts.mjs`, so the stylesheet cannot declare a family the picker does not offer or the reverse. And because the option list lives in the markup on eighteen pages while the faces live in one table, **`check-metadata.mjs` now compares the two** — an option with no face behind it offers a reader a typeface that will not load, and a face with no option is weight nobody can reach. Both are silent, and narrowing the nine is exactly when they would happen. Proved by offering a face that does not exist and watching it be named.

CabinetCUTE is not the OFL, and reading it is what turned up two faults in our own house

Six of the nine are under **CUTE — Conditions d’Utilisation Typographiques Engageantes**. It permits use, copying, redistribution, modification and commercial use, and states outright that it is “not technically compatible with any FLOSS license to date”, taking a position “radically and deliberately inconsistent” with them. **It is explicit that it governs fonts and not the documents they set** — its own example is that a book typeset in a CUTE font is not governed by CUTE — so nothing on this site is relicensed by using them.

Three of its conditions bind us. **Credit the designers and link the original publication source** — the first specimen named the collective in plain text with no link, which is half of it. **Share complete files** rather than lone extracted faces. And **do not delete the post-binary characters or the OpenType features that activate them**, which forbids subsetting: the six CUTE faces ship whole while the two house faces are cut to the latin subset. Its donation is a *condition* and not a suggestion; Stimpunks met it at the “for an association” tier.

**Reading a licence properly is what found the faults at home.** Sourcing these candidates meant reading nine licences, and that turned up two of our own: the house faces had been redistributed for a day with no licence file beside them, and the colophon credited both of them to a search engine rather than to **Undercase Type, Phaedra Charles and Flavia Zimbardi**, and **Production Type**. Every credit on this site is now fetched from upstream metadata rather than typed, which is the same standard the quotations are held to — and the reason it was worth reading the licence rather than assuming a font is a font.

2026 · 10 September

## The device decides, and the reader may say otherwise: three reading settings, and a motion rule that had to be turned inside out to allow the second answer

Prompted by Ryan asking whether the site supported forced colours and whether the accessibility settings buried in system menus could be surfaced on the page. **The answer to the first was no** — not one `@media (forced-colors: active)` anywhere — and it was outside the audit’s stated scope rather than missed by it, which is the one time a scope caveat has actually earned its keep here. The answer to the second was an argument, and the argument was lost: “respect the system setting” only reaches the readers who know the system setting exists. **Default to the device; allow configuration in the moment.**

Label correctedThe fonts were redistributed for a day with no licence beside them, and their designers were credited to a search engine

**Self-hosting the two faces on 9 September stopped the site disclosing every reader’s address to Google, and introduced a licensing fault in the same move.** Both are under the SIL Open Font Licence, which requires the licence text to accompany the fonts *wherever they are redistributed* — and a public repository serving `woff2` over HTTP is redistribution. For a day they had none. `fonts/Fraunces-OFL.txt` and `fonts/Newsreader-OFL.txt` are there now, each family’s own file with its own copyright line, because a generic copy of the licence carrying somebody else’s copyright would be a gesture at compliance rather than compliance.

**And the colophon credited both faces to a search engine.** It linked “Fraunces” and “Newsreader” to their Google Fonts pages and named nobody. On a site whose one stated correctness requirement is that credit reaches the person it belongs to, that is the fault it exists to catch, committed against the people whose letters every word here is set in. **Fraunces is by Undercase Type, Phaedra Charles and Flavia Zimbardi. Newsreader is by Production Type.** Both are now on [the colophon](https://queering.earth/design), in `ATTRIBUTIONS.md`, and in a `fonts/README.md` so the provenance is legible to anyone who opens the folder.

**The names are read out of upstream metadata, not out of anybody’s memory.** `tools/make-fonts.mjs` fetches each family’s `OFL.txt` and its `METADATA.pb` and refuses to write a licence file it cannot recognise as an OFL, or a credit with no designer in it. So the attribution cannot drift from the files actually being served, which is the same standard every quotation on every sheet is held to. `check-metadata.mjs` fails if a family’s licence file goes missing or its designer is unrecorded — proved by moving one out of the way.

The occasion was Ryan asking what a font picker might hold: faces that queer the design, after Robin Mientjes by way of Paul Soulellis — “an attitude in the face of conformity”. Sourcing candidates for that meant reading licences, which is what turned this up. **The candidates are set out on two sheets, at `/specimen` and `/specimen/more`**, in this site’s palette at its own sizes on its own paper, weighted heavily towards [Bye Bye Binary](https://gitlab.com/bye-bye-binary), a collective drawing glyphs for inclusive and non-binary French — letterforms that exist because the grammar refused the person. It is a scratch page: `noindex`, absent from the sitemap, and **to be deleted once the choice is made**, because a specimen kept after the decision becomes a second, stale account of what the type is. Twenty candidates across the two, each fetched with its licence — several of the Bye Bye Binary families publish theirs as a PDF, shipped as-is because a transcription of a licence is not the licence, and two state their terms only in a README and are marked as such rather than assumed into the OFL. **Two families named in that conversation turned out not to exist under the names given** — `amiamie` and `lucioles` were recalled wrongly and are on neither sheet, which is the ordinary way an attribution from memory fails here.

Label correctedThe panel shipped unable to open, and every test that passed had bypassed the thing that was broken

**It went out not working.** Ryan pressed *Reading* on the live site and nothing happened. Inside `.qe-controls` — the flex row the controls sit in — a real click over the summary arrives with `event.target` set to the `DETAILS` rather than the `SUMMARY`, so the disclosure never toggles. Positioning the summary lifts it into the hit test and the click lands. One rule, and it is commented, because a rule that looks redundant is exactly what a working fix for this looks like.

**What is established is narrower than an explanation, and the comment says so.** A pristine `<details>` in `<body>` opens on a real click; the same one inside this flex row does not; nor does one with no content at all, so it is not the content slot; making the `DETAILS` static does not help, so it is not the positioned parent. Positioning the `SUMMARY` fixes it every time. The mechanism is not proved and is not asserted.

**The interesting part is why the verification passed.** Every check run before shipping used `summary.click()`, which dispatches a click directly at the element and *skips hit testing entirely* — the one thing that was broken. The screenshot that showed the panel open had been taken after setting `open = true` from the console. Both are green lights on a control no reader can operate. Two earlier clicks in the same session landed on the wrong button because the pane’s screenshot frame is 800px wide while the page is 593, and both were read as evidence rather than as a mis-aimed click.

**The rule that comes out of it:** a control is not verified until a real pointer has operated it. A synthetic `.click()` proves the handler runs; it proves nothing about whether anybody can reach the handler. The keyboard path could not be verified here at all — a pristine details at body level does not respond to a synthesised Enter either, so the harness was the limit rather than the site. It was written down as unverified rather than as passing, and **Ryan confirmed it on the live site the same day**: Tab reaches the control and Enter opens it. Recorded here because “I could not check this” is only honest for as long as it stays true.

MountedReduce motion, more contrast and looser lines, each starting from what the device already asks for

**The case against putting these on the page is a good one, and it is wrong here.** A site reimplementing a setting the operating system already has only helps the readers who find the widget, and it shifts the work of configuring accessibility onto the person who needs it. That argument is why *plain view* was defensible and a settings menu was not: plain view turns off *this sheet’s* wonk and rotation and display faces, which no system setting could know about.

What it misses is that **most people have never opened that menu.** Implementing `prefers-reduced-motion` perfectly still only catches the readers who have already been to System Settings and found the switch. And a preference set once, months ago, cannot know that today is a migraine day — **access needs move during a day**, which is not a subtlety for a site made by two Disabled people. So the media query is the default and the panel is the override, in that order.

**The stored value is three-state, and that is the whole design.** Absent does not mean *off*; it means *follow the device*. Only an explicit `on` or `off` writes a class, so with nothing stored the stylesheet’s own media query decides and the answer without JavaScript is the same answer as with it. *Follow my device again* removes all three keys and hands the reader back to their own machine, rather than freezing today’s answer as though it were permanent.

**Reduce motion is deliberately not plain view.** Ryan’s point, and he is right: you might want the motion gone and want to keep the display faces, the wonk and the leaning slips. They were one control because motion was one of the things decoration happened to include, not because they are one preference.

It is a native `<details>`, and it must stay one. A hand-built menu needs focus trapping, a roving tabindex, `aria-expanded` kept in sync and an Escape handler, and getting any of that wrong would make **the accessibility panel the least accessible thing on the sheet.** The browser ships all of it. Escape and click-away are the only additions and both are conveniences over something already working. Every word in it is authored in the markup; the script sets checked states and classes and writes nothing.

CabinetText size, which the sheet already followed — and the first setting that is not a yes or a no

**The first option is not a no-op, and that is the whole reason it is worth showing.** `html` is set to `font-size: 100%`, which inherits whatever size the reader’s browser is already set to, and every one of the 129 type sizes on this sheet is in `rem` — not one in `px`. So are the spacing scale and the measure. Raising the root therefore moves the line height, the gaps and the 66-character measure together, rather than swelling the words inside a box that stays where it was.

**Larger only, and that is a house rule rather than a shortcut.** The style guide puts body text at 18–20px and this sheet sits at `1.19rem`, which is 19px on a default browser. A *smaller* option would take it under that floor, so the panel does not offer one. A reader who wants less turns their own browser down and the sheet follows — which is precisely what the first option names.

It is a `<select>` because two steps is not a checkbox, and native for the same reason the panel is a native `<details>`. It also makes something visible that was implicit: for the three checkboxes, “follow your device” is the *absence* of a stored value and a reader has no way to see it. Here it is an option they can choose by name.

**The gate caught this key one setting after it was written, which is the point of it.** The storage check found settings by their `html.qe-\*-on` and `-off` classes, and text size stores `larger` and `largest` — so the pattern would have let `qe-textsize` go undocumented on `/privacy` while reporting green. Widened to any state, it failed immediately and by name. A check written for the cases that existed is a check with a blind spot for the next one.

Verified the way the last one should have been: a real click opened the panel, the control was confirmed to be the top hit target at the point a reader would press — the check that would have caught last night’s bug — and a real keypress moved it through both steps, 16px to 18 to 20, with the class, the storage and the reset button following. A real click on *Follow my device again* put all four back.

Re-determinedMotion is off by default now, and the rule that guarded it came out of the change stronger than it went in

Every animation on this site lived inside `@media (prefers-reduced-motion: no-preference)`, and the rule beside it read: “the reduced state is the finished drawing, never a missing one. Never put an `opacity: 0` outside that query.” That structure is correct and it **cannot express the second answer** — a reader who asked for motion on a device that asks to reduce it. There is no way to add a class to a media query.

So the gating inverted. **Motion is now off in `:root`**: `--qe-draw` and its siblings are `none`, `--qe-sprout-start` is `1`, and exactly two things switch them on — the media query, and `html.qe-motion-on`. The timings are written once in `--qe-anim-\*` and the two blocks only *map* them, because a duplicated cubic-bezier is a drift waiting to happen and a duplicated mapping is three lines that either work or obviously do not.

**The rule that replaced the old one is stronger, and it says why rather than what.** Not “never put an `opacity: 0` outside that query” but **the default must be the finished drawing** — so a reader with no CSS variables, no JavaScript, or a device asking for less motion gets a complete drawing because that is what `:root` says, not because a query happened to wrap the rules. One place needed a hand: an un-animated stem would have stayed invisible behind its own `stroke-dashoffset`, so the static state puts it back to zero. Verified in the browser in both directions, and the reduced state reports `animation: none` with `stroke-dashoffset: 0px`.

CabinetForced colours, which is the one setting here that is not ours to offer — and a gate that makes /privacy name every key the site keeps

**There is no toggle for forced colours and there cannot be.** It reports an operating-system state — Windows Contrast Themes and its kin substituting the reader’s own palette for everything we declared — and a page can only respond to it. That is the point of the feature: the reader’s choice outranks the site’s. It sits beside *More contrast* in the panel as the thing the panel deliberately does not contain.

Most of this sheet survived the substitution already, on decisions taken for other reasons: every control is a real `<button>` with a real border, and **the register’s four kinds carry words as well as an accent**, so a palette that flattens their colours does not flatten their meaning. The rule that put the colour on the rule and never on the glyph paid a debt it was not taken out for. What needed repair was the card hover, which was a background change and nothing else and therefore vanished outright; the edges that leaned on a `box-shadow`; and focus, which now tracks `Highlight` rather than our rust. The botanical art is *allowed* to be forced — colour is not information in a drawing of a leaf, and the spec reserves opting out for the case where the colour *is* the information.

**Three new keys meant `/privacy` was one edit away from being wrong about its own site**, which is the failure this register exists for. So the policy names them, and a gate now enforces that it always will: every `qe-\*` key the site reads or writes must appear on that page. It finds them two ways, because one is not enough — literal `getItem` calls, and the `html.qe-\*-on` classes in the stylesheet, since the reading settings build their keys from a table and appear as no string literal anywhere. Proved by adding an undocumented setting and watching it be named in the failure. It is the sibling of the third-party-origin check mounted yesterday: **not forbidden, named.**

2026 · 9 September

## The manifesto, adapted under its own licence — and a tightened quotation found on our own foundation’s page while sourcing it

The founding papers had one page in them. [The second](https://queering.earth/manifesto) is the argument the aims rest on, adapted from the [Neuroqueer Learning Spaces Manifesto](https://stimpunks.org/projects/neuroqueer-learning-spaces/manifesto/) — a nine-author community document under CC BY-SA 4.0, initiated by the two people who make this site. **Sourcing one quotation for it turned up a drift in our own house.**

Label correctedOne preposition and an undeclared ellipsis, in the version of Max Alexander this site was handed

Ryan supplied the *Playful Manifesto* quotation as “a translation of my world *into* yours….This is a protest of the notion that there is any correct way to live”, which is what [stimpunks.org](https://stimpunks.org/projects/neuroqueer-learning-spaces/manifesto/) carries. **Alexander wrote *to* yours**, and three sentences stand between that one and the protest.

**A translation *to* somebody is offered; a translation *into* them is done to them.** One word, and the image inverts. The ellipsis is the more ordinary fault: compressing is defensible, doing it with `….` and no note is how a reader comes to believe two sentences are adjacent.

**So the sheet quotes the opening whole and says on its face that the circulating version is tightened, naming our own page as where we found it.** A ledger that only catches other people’s tightening is not a ledger, it is a defence. The fix on stimpunks.org is one word and a fuller quotation; that is not this repository and is [recorded as an open item](https://queering.earth/what-is-settled) rather than acted on, the same way an SKS finding is.

MountedTwo quotations that cannot be verified, carried anyway, with the transcription named instead of the tape

Nick Walker on *weirding* comes from a recorded panel nobody here has listened to; Grada Kilomba’s *Who Can Speak?* from a 2016 book nobody here has opened. Both reach the page through the NQLS manifesto’s rendering. **This file’s own rule permits that** — *where the primary is not reachable, quote it with the citation attached and name whose transcription it is* — and both figcaptions name the transcription rather than the source, in bold, on the page rather than only in the ledger.

**The Kilomba excerpt is two contiguous lines out of twenty-odd, and contiguous matters more than short.** Picking the most striking lines from across the passage would have produced a tightened Kilomba on the page whose subject is tightening. Two that sit together elide nothing inside the quotation, and quoting the passage entire would be a substantial reproduction of a copyrighted work to make a two-line point.

Walker’s definition of *neuroqueer* as a verb is already on the home page and verified at source. This extends the same move to *weird*, which is what [Sheet No. 4](https://queering.earth/invention-of-normal) is about: *wyrd* was demoted from fate to defect, and turning *weird* back into a verb is that history running the other way.

CabinetTwo of the nine authors wrote this page, which is exactly why the credit is not a formality

It would be easy to treat a document Ryan and Helen initiated as theirs to carry across without ceremony. **Nine people wrote it.** The foot of the sheet names every contributor and the licence, in the page rather than only in the ledger, and says plainly that what happened here is an adaptation: no sentence carried over verbatim, the argument taken off learning spaces and pointed at reading.

**Share-alike is the reason this exists and the reason it is not the end of anything.** CC BY-SA 4.0 is why the adaptation is permitted, and the same clause is why anybody may do this again to our page.

**It does not restate the home page**, which was the risk the mission page was shaped to avoid. The home page explains what queering is; the aims list what we are for and where each is kept; this argues why any of it follows. Three genres, one subject, no duplicated paragraphs.

2026 · 9 September

## A new accession goes at the top, anchored on the register, and this one proves it

The entry below records four accessions ending up in the wrong order and the two assertions added to catch it. **Neither assertion can see the case that caused it** — within a single day the order is editorial and nothing mechanical can verify it. This is the part that closes: a written rule about *where the insert goes*.

CabinetThe fixed anchor cannot go wrong whoever else is editing; the relative one is correct only while nobody is

**Anchor on `<div class="qe-register" id="latest">`, never on the last accession you wrote.** The register runs newest first, so the top is a fixed address and the previous entry is not. Inserting above your own last entry is right for exactly as long as nobody else adds one — which was true every day this register has existed until this evening, when two sessions appended to it for three hours. Ryan asked for the rule; it is in `CLAUDE.md` beside the checklist a session reads before writing an entry, rather than only here where it would be read afterwards.

**The marker moves in the same edit.** `· latest` comes off whatever holds it and goes on the new entry, and `check-markup.mjs` refuses a page where it is not on the first accession. That gate plus this rule cover the two halves: the gate catches a marker in the wrong place, the anchor stops an entry landing in one.

**This entry was inserted by the rule it describes**, anchored on the register div with the marker moved off the section below. Which is the smallest possible test, and better than none.

2026 · 9 September

## A way straight to the newest accession, and the discovery that it was not where the page said it was

The contents list added an hour ago put the newest accession 4.8 screens down, so [a jump](#latest) was wanted. Building it exposed something worse: **the register was out of chronological order and had been for the whole evening.**

MountedThe address is on the register, not on the newest accession, which is what makes it permanent

**A link to the newest entry’s own id would be a hand-kept pointer at a moving target** — stale the next time anything is mounted, in the file that exists to record exactly that kind of failure. The register runs newest first, so *the top of the register* is the latest by definition. `#latest` sits on the register itself and cannot go stale, because nothing about it is a copy of anything. It needs no script, which a derived `href` would have, and it gives the newest accession a permanent shareable address for the first time.

**It sits directly under the lede, and that took a measurement.** Placed after the register’s own housekeeping note it landed at 1,587px on an 866px viewport — below the fold, which is no use to somebody arriving to see what changed. Under the lede it is at 680px. **Second time today a link was put somewhere reasonable-looking and measured out of sight**, after the finding aid’s search box.

Label correctedFour accessions written after 22:43 were sitting below four written before it

**Two sessions were appending to this file at the same time**, and each anchored its insert on the last accession *it* had written. Both were locally correct; the page was globally wrong. The four accessions from 22:43 onwards sat beneath the four from 20:46 to 22:33, and `· latest` was on the fifth section down. Re-ordered against the commit timestamps rather than against anybody’s memory.

**This is the card-order fault again, in the one file that gate does not look at** — the third time today that a list correct in every part has been wrong as a whole. And it now matters more than it did this morning, because `#latest` is a published address that depends on the order being right.

CabinetTwo assertions on the register’s order, and only one of them would have caught this

`check-markup.mjs` now checks that accession dates do not increase down the page, and that **exactly one accession is marked `latest` and it is the first**. The date check is worth having and was blind to this: every accession that day carries the same date. **The marker check is the one that bites.** Within a single day the order is editorial and nothing can verify it — but which section is newest is a claim the page makes out loud, and a claim can be checked. Both were made to fail before being believed, the first by putting this evening’s actual fault back.

**It also turned up a third entity table.** This gate carried its own six-entity decoder, which did not know `&middot;` and handed the date check back a raw entity. `tools/html.mjs` was written to stop precisely that — “an entity table is a lookup that one tool teaches and the other does not” — and the gate simply was not using it. It imports the shared one now, which throws on anything it does not know rather than passing it through, and all seventeen pages still pass.

2026 · 9 September

## The finding aid gets one too, and three thresholds in a row turn out to have been the same mistake

Every page on this site now carries a contents list except two, and neither of those declines on a threshold. **The pattern is worth more than any of the three rules it replaced.**

CabinetThree thresholds tried, three retired, each measuring the list instead of the reader

**They went in this order, over about two hours.** *More than two headings* — retired, because two entries that save twenty screens beat seven that save two. *The block must not be too tall* — retired, because 2,322px against a 120-screen page is a bargain and the comparison that decides it is the block against its own page. *The page must be long enough* — retired now, with [the finding aid](https://queering.earth/search) at 1,307 words.

**Each of the three measured the list. None of them measured the reader.** What is left is structural and has one instance: *does this page already have a better index of itself?* The home page answers yes — its plate of eight numbered cards is a contents list, and a second one above it would put two competing lists on one page. The error page is an error page. **Everything else has one.**

Label correctedStraight after the lede put the search box below the fold, on the page that is a search box

The house puts a contents list directly under the lede, and following that here pushed the input to **970px on an 866px viewport** — out of sight on load, on the one page whose entire purpose is that field. **Caught by measuring rather than by looking**, which matters: the screenshot looked perfectly reasonable, because a screenshot of the top of a page always does.

It sits below the form and the results now, immediately before the sections it lists, and the input is back at **804px**. A reader with results in front of them is not looking for a contents list; a reader scrolling past them is. **The exception is recorded rather than left as a quirk of one file**, because the next person to tidy this page will otherwise move it back.

2026 · 9 September

## This register now has the contents list an earlier entry measured, refused, and wrote a rule against

Ryan asked for it. The old refusal was **right about its number and wrong about what the number meant** — which is a more interesting way to be wrong than simply not having measured.

Re-determinedBlock height was the wrong measure, the same way heading count was the wrong measure an hour ago

**The figures, re-measured rather than quoted.** Thirty-three accession headlines averaging 140 characters; the list renders **2,322px** and puts the first entry **4.8 screens** down. Both worse than the 1,293px and three and a half screens that got it refused, because ten accessions have been added since.

**And it does not matter, because the page is 40,408 words.** That is roughly a hundred and twenty screens. A list that costs 2.7 of them to reach any one of thirty-three accessions directly is the trade a contents list exists to make. The refusal compared the block against other pages’ blocks; the comparison that decides it is the block against *its own page*. **This is the two-heading threshold’s mistake from the other end** — count was the wrong measure there, height is the wrong measure here, and page length is the question in both.

**Columns were tried and do not help.** 2,322px in one column, 2,213 in two, 2,302 in three. Narrowing a column makes a 140-character sentence wrap proportionally more, so width traded for wraps is a wash. Measured in the browser before the CSS was considered, and then not written. **The labels stay verbatim**: truncating one is this site’s characteristic failure applied to itself, and a short second label is the drift the derivation exists to prevent.

**Both indexes stay, and they do different jobs.** The contents list is chronological, by accession, at the top; [the index by sheet](#qe-index-h) is at the foot and files the same entries by what they happened to. Front matter and back matter, which is how a bound volume carries both. The one-line pointer that used to sit by the legend came out — the contents list’s last item is a link to that index, and two adjacent links to one place read as a mistake even when both are right.

2026 · 9 September

## A feature was mistaken for a fault, removed, and put back within the hour

The rail on [the ledger](https://queering.earth/ledger) read “Verified · Open · Every attribution on this page” — the third of those being the index’s own heading, listing itself inside the navigation beside it. **Two components built in parallel, each correct on its own.** The rail excludes `.qe-contents` by name; the entry index arrived as a second navigation block inside the landmark and nothing knew to skip it.

Label correctedThe test is the element now, not the class, so the next navigation block needs no line

**A heading that labels a navigation block is not a section of the page.** That was always the rule; it was written down as `.qe-contents` because that was the only case when it was written. **A list of class names is a rule that gets quietly broken by the next component** — the same shape as “the two view controls, and nothing else” and “the one Python tool here”, both of which this file has already had to correct into boundaries. Every navigational block on this site is a `nav`, including the rail and the index themselves, so the element is the test.

**Proved in both directions rather than one.** The ledger’s rail is “Verified · Open” and its entry index still fills 53 and 2; [Sheet No. 1](https://queering.earth/on-being-ill)’s contents list and rail are unchanged at seven each. A fix to a shared derivation that is only checked on the page that was broken is a fix that breaks fourteen others quietly.

**Worth recording as a hazard rather than only as a bug.** Both components were built the same afternoon in two sessions against one working tree, and neither was wrong about its own page. The failure lives in the seam, which is the one place a gate here does not look: `check-markup.mjs` validates the served markup, and this list does not exist until a script runs.

Re-determinedIt was not a fault. Ryan liked the rail pointing at the index, and a destination inside a nav is still a destination

**The entry above determined a feature to be a bug, and the determination was wrong.** The rail on [the ledger](https://queering.earth/ledger) listed “Every attribution on this page”, this session called it self-announcement and removed it, and Ryan said plainly that he had found it useful. He is right: on a page of 130KB, a link from the rail straight down to an index of all fifty-five entries is the most useful thing in it.

**Two cases that look identical and are not.** A contents list containing “On this sheet” is a list pointing at itself. A rail containing “Every attribution on this page” is a list pointing somewhere a reader wants to go. Collapsing both into “any heading inside a nav” was a generalisation that read as principled and cost a feature; the honest rule is narrower and older — **a list must not contain its own heading**, and `.qe-contents` and `.qe-rail` are one derivation shown twice.

**The reversal is the entry, not a quiet edit to the one above it.** That entry stands as written, because a register that revises its own determinations in place is a register that cannot be checked — which is the argument this whole page is built on. This is the third re-determination here and the first where the thing re-determined was our own judgement rather than a source.

MountedAnd the two record pages got the contents list they could not have had an hour earlier

**The re-determination above is what made this possible**, which is a pleasant way for a mistake to end. With two `h2`s a contents list on [the ledger](https://queering.earth/ledger) would have read *Verified* and *Open* and told a reader nothing — the stated reason both record pages went without one when they shipped. With the entry index’s heading back in the derivation it lists three, and the third is a jump straight to all fifty-five entries.

**The standalone pointer came out in the same pass.** It said “every entry is listed by name in the index at the foot of this page” and sat immediately above a contents list whose third item is a link to exactly that. Two links to one place, adjacent, is the kind of thing that reads as a mistake even when both are correct.

Twelve of seventeen pages carried one at that point, and checking which four declined turned up [a page with eight headings and no list](https://queering.earth/privacy).

CabinetThe two-heading threshold is retired, because it measured the wrong thing

**Ryan’s call, and it is the right one.** “A contents list needs more than two headings” was the stated reason both record pages shipped without one, and it counts the wrong quantity: **the reader’s problem on a twenty-thousand-word page is length, not heading count.** Two entries that save twenty screens of scrolling are worth more than seven that save two. The question is only ever whether the page is long enough to want one.

**Retiring a rule is a good moment to check what it was hiding.** [The privacy page](https://queering.earth/privacy) is 2,058 words with eight headings and had no list — longer than [Sheet No. 1](https://queering.earth/on-being-ill) at 2,045, which has one. It was never a decision, just a page nobody counted. It has one now.

**Four pages still decline and not one of them declines on heading count.** The error page; the home page, whose plate is already a contents list; this register, whose accession headlines average 148 characters and measured 1,293px against 319 to 510 elsewhere — it gets its index as back matter instead; and [the finding aid](https://queering.earth/search) at 1,307 words, the shortest page here that is not an error page and well under the 2,045 of the shortest page that has one.

Label correctedThe removal also broke the rail’s tick scale in the quietest way available, because the derivation existed twice

**Found by checking the deployed file rather than the local one.** The live `queering.js` carried the new `nav` test *and* the old class-name test, which meant a second copy of the same derivation somewhere else in the file. It was in `measureTicks`, which sizes the rail’s ticks to the sections they stand for.

**It failed safe and therefore silently.** That function re-derived the heading set with the old exclusion, counted three against the rail’s two, and hit its own `heads.length !== items.length` guard — so on both record pages the ticks were simply never measured. No error, nothing visibly broken, a rail of default-sized marks where a scale drawing belonged. **A guard that fails safe still fails.**

**One derivation, one place.** Both callers now use a single `sectionHeads()`, so there is no second copy left to fall behind. Verified on both pages afterwards: the ledger’s ticks read 32.0px and 9.0px — correctly saying that *Verified* holds fifty-three entries and *Open* holds two — and Sheet No. 1’s seven are unchanged.

2026 · 9 September

## The two longest pages on the site could not be surveyed without reading all of them

A reader wanting to know whether the ledger holds an entry on Rossetti had one option: scroll 130KB of it. Both record pages now carry **an index of their own entries** at the foot — 55 on [the ledger](https://queering.earth/ledger), 71 on [the decision log](https://queering.earth/what-is-settled) — with a one-line pointer up in the front matter, the way a bound volume does it.

MountedBack matter again, and built at runtime for the reason the contents list is

**A contents list was the wrong reach and this page already knows why.** `.qe-contents` derives from a page’s `h2`s, and both records have two — it would have shown *Verified* and *Open* and delayed every reader to say nothing. What a reader wants is the entries. So it is the register’s `.qe-sheet-index` shape a second time: **back matter, ruled off, at the foot**, because front matter costs every reader and back matter costs none.

**Generated into the HTML it would have double-indexed all 121 headings.** The SKS mirror and `search-index.json` both read the landmark, and a list of every heading sitting beside those headings is a second copy of each — the exact reason the contents list is built at runtime rather than written down. So the served container is empty, `queering.js` fills it, and both generators skip it so the `.md` does not announce a list it has no room for.

**The group headings are derived here, where the register’s are authored.** That is the one real difference between the two indexes and it is not a relaxation: the register’s groups are sheet names, which are editorial words `queering.js` may not write, whereas these groups are the page’s own `h2`s and every label is a clone of text the reader can see above it. Nothing is composed, summarised or truncated — the same standing the contents list has.

**A group heading is a paragraph and not a heading**, which looks like a downgrade and is the opposite. These are clones of headings the reader has already passed; putting them back into the outline would give the page a shadow contents made of duplicates, which is worse for a screen reader’s rotor than having none. It wears `.qe-index-sheet`, so it still looks like what it is.

CabinetNo line in REVEAL, and that was checked rather than assumed

`reveal.mjs` says in its own comment that it is “for a fetch or a hidden state, not for anything merely built at runtime”, and this component ships hidden — which reads like a case for it. It is not: the drift rail’s `if (r.hidden) continue` is only sensible if `queering.js` has already run under the gate, so anything that unhides *itself* is measured without help. **Confirmed by counting rather than by reading the source:** `/ledger` went from 1,782 measured elements to 1,845 with the index in, and its print count did not move, because the index is `display: none` on paper.

**Two columns above 34rem, one below.** Fifty-five short names in a single column is a screen and a half of nothing but links with the measure wasted on them; two columns of wrapped link text on a phone is a column of three-word fragments. The divider is a `column-rule` rather than a gap, because a bare gap between two lists of links reads as one ragged list. `check-overlap.mjs` was the thing to watch here and reports zero collisions across all three passes.

One spacing fault came out of looking: `.qe-index-link` is shaped for the register, where the pointer is the last thing before the entries and needs no bottom margin. Here the body follows it immediately, so the line read as the opening of the paragraph beneath it.

2026 · 9 September

## Two pages of this cabinet had addresses, were listed on the home page, and were reachable from the foot of nothing

The footers had drifted into three shapes: fifteen carrying the cabinet pages as authored gloss sentences, one carrying a short row of three, and the home page carrying none by design. **The inconsistency was the symptom; the defect underneath it was that [the ledger](https://queering.earth/ledger) and [the decision log](https://queering.earth/what-is-settled) appeared in no footer at all**, two days after they were given addresses. Every footer is now a row of short links, the collaboration line, that page’s own licence sentence, and on the sheets one sentence pointing at the ledger — 32 to 98 words where there were 107 to 226.

CabinetEighty copies of five sentences, and the one place they were supposed to live

Each cabinet page was introduced in the footer by an authored one-line gloss. **Five sentences restated across sixteen pages is eighty copies of editorial prose, every one of them free to drift**, and drift is what happened — which is how two pages could go missing from all of them at once without anybody noticing. The glosses still exist, once, in the furniture list on the home page, which is where this cabinet already said those sentences live.

**The row uses short names, and that is a second name for those pages.** It says *Colophon*, *Register*, *Decisions*; the pages call themselves [How this site is made](https://queering.earth/design), [The accession register](https://queering.earth/changelog) and [What is settled, and what is open](https://queering.earth/what-is-settled). A row of links and a page title are different registers, and the rule against a second name is about the group headings, where a name identifies a set. The addresses are unchanged.

The home page keeps its bare footer: its furniture list sits two paragraphs above, with the same seven pages and their glosses, and a row of the same links directly beneath would be two lists of one thing.

CabinetWhere a sheet says which copy it read, and why that is not the provenance line

Six sheets carried a paragraph of sourcing in the footer — which printing, how many scans, which page. The question was whether it belonged in **the provenance line** instead. It does not, and the reason is worth writing down: **provenance here is accession history** — when the sheet was mounted, how often its label has been corrected, each clause linked to the entry that did it. It is identical in shape on all eight sheets, and that sameness is what lets a reader scan it.

**Which copy we read is a different fact with a different life.** It is about the works the sheet reads rather than the sheet’s life in this collection, and putting it in the provenance line would bury the *mounted, corrected twice* pattern under prose that changes from sheet to sheet. It also already has two homes: the specimen block at the head of every sheet, and the ledger.

So the footer keeps one sentence — every quotation here was read in the work it comes from, and is logged in the ledger — and the trail stays where it was. What is lost is detail like *read in three separately scanned copies*, which is in the ledger, and which the sheets saying it were saying for the third time.

2026 · 9 September

## A way back to the top, drawn as growth rather than as a chevron

Every footer now ends in a link back to the top of the page: the words *Scroll to top*, a small stand of grass under them, and no script at all — an anchor already scrolls, and this site’s smooth scrolling was gated on reduced motion the day it was written.

CabinetThe arrowhead is a seed head, because a chevron laid over grass is an interface arrow in a costume

The ask was grasses whose taller stems form an arrow pointing up. **A chevron drawn over grass is an interface arrow wearing a costume**, and this cabinet already has its own word for *up*: growth, stems drawing themselves on from the ground. So two tall blades arc up and converge at the middle stem’s seed head, and the silhouette is an arrow without one being drawn.

**The first attempt put two short awns on the head and read as a small figure with its arms raised.** It was looked at, and redrawn — which is what this cabinet’s rule about judging a drawing at the size it ships at is for. The words carry the meaning either way: the drawing is hidden from the accessibility tree, the link is named by real text, and a reader who sees only grass has lost an ornament rather than a control.

Label correctedThe landmark could not take focus, and the skip link had wanted it to since the day it was written

Two links now aim at the page’s main landmark: the skip link at the top and this one at the foot. **A landmark that cannot take focus leaves a keyboard reader’s focus where it was while the page scrolls somewhere else** — press the new link and the page goes to the top while the next Tab resumes at the bottom of the page you just left. It has been true of the skip link since it shipped, and it is invisible to anyone using a mouse, which is why nobody had noticed.

The landmark now takes `tabindex="-1"`, which keeps it out of the tab order and lets a fragment link hand it focus. Verified rather than assumed: activating the footer link scrolls 9,952 pixels, sets the address, and moves focus to the landmark, so the next Tab starts at the top of the reading.

2026 · 9 September

## Sheet No. 2 had no lede and an essay with no heading, so its own contents list could not name the reason it exists

When every sheet got a contents list, [this one](https://queering.earth/coming-to-terms) could not have a normal one: all six of its headings were in the 2026 commentary, and Ryan’s 2022 essay above them was unheaded, so a list at the top would have named six sections beginning a fifth of the way down and said nothing about the essay. **That was left open rather than patched, because giving the essay a heading is a decision about Ryan’s text and not a defect to sweep up.** He has now taken it.

Label correctedA heading in the author’s own words, and a note that stopped being true the moment anything sat above the essay

The essay is now a section called **Against My Grind**, and **the phrase is Ryan’s own** — it is lifted from the anecdote inside it, where he writes of the ways norms went against his grind. A heading invented for somebody else’s text would be a small piece of us wearing their voice, which is the failure [the ledger](https://queering.earth/ledger) exists to catch; a heading taken from the text is the text naming itself. The essay’s words are still untouched.

**The note below it said “everything above is the essay”, and that stopped being true in the same edit.** A lede and a heading now sit above it, and neither is his 2022 writing. The note names the section instead of the position, and says in as many words which parts are ours — a claim that binds is a claim to move in the commit that breaks it, which is the fourth time this cabinet has learned that and the first time on a sheet rather than [the privacy page](https://queering.earth/privacy).

With a lede and seven headings the sheet is now shaped like every other, so **its contents list moved back to where every other sheet keeps one** — straight after the lede, at a twelfth of the way down the page rather than a fifth. The exception it needed a week ago no longer exists, and the note describing that exception has gone with it.

2026 · 9 September

## The plate was eight screens down its own home page and there was no way back up to it

Every heading here has had an authored address since the contents list was built, and [the plate](https://queering.earth/#what-grows-here) and [the cabinet](https://queering.earth/#the-cabinet-itself) were reachable all along — by anyone who already knew the address. **A link nobody can find is close to a link that does not exist**, which is the objection this house makes to an untraceable quotation, arriving as a navigation problem. There is now a rail in the left margin on every page but this one: a column of short rules that becomes the page’s own headings when a pointer or a keyboard enters it.

CabinetTwo contents lists on one screen, on purpose, and the argument for why they are not the same object

This file already refuses a contents list for the home page because **two competing navigational lists is a defect**, and the rail plainly puts a second list beside the first on seven pages. The refusal stands and does not reach this: the contents list is **front matter** — read once, in sequence, in the measure, before the sheet begins. The rail is an **instrument**, glanced at from the middle of a sheet nine thousand words in. The home-page defect was two lists competing *to be read*; only one of these is for reading. **Ryan’s call, against the recommendation to hide one**, and the design work went into making them unmistakably different objects rather than into hiding either: the rail is smaller, mossy rather than rust, unnumbered, unlabelled, and out past the measure in space no line of text occupies.

It is unlabelled because a visible heading would be a third copy of the words *On this sheet* and the one free to drift. The `aria-label` is authored in the markup, once per page, and `queering.js` still writes no words — one builder now fills either container, because a second loop would be a second place for the three heading exclusions to be got right.

**The register is the page that does not get one**, for the reason it has no contents list either: twenty-eight headings averaging 147 characters, longest 226. In a 12rem column with no truncation allowed that is a four-thousand-pixel rail. [The same measurement that sent this page’s index to the foot](#a-2026-09-09-patina) keeps the rail off it.

CabinetThe rule that says grow the hit area was followed with the wrong instrument, and then with the wrong arithmetic

Two mistakes in the one rule this house wrote down because no gate enforces it. **The instrument first:** the view controls grow their targets with an absolutely positioned 44px box behind each control, and reaching for it here would have been wrong — rail links are *stacked*, so the boxes would overlap, the topmost would take every tap, and the rule asking for 44px would have produced a rail where most entries could not be pressed at all. Stacked targets take real padding.

**Then the arithmetic.** The padding was set from the measurements of a 1rem line and shipped 44px in a comment above targets that measured **31.1px** — a control whose own note explains the failure, committing it. Found by measuring the rendered box rather than by reading the rule back, which is the whole reason this site measures. A 0.82rem line at 1.35 is 17.71px, so the padding is 0.83rem either side and the box is 44.3px. Verified after: no two hit areas overlap, and the tallest rail on the site — [the colophon](https://queering.earth/design) at fourteen entries, 690px — still clears a 900px viewport before the clamp scrolls it.

The rail lives outside the landmark, so **no generator changed a single byte** when all three were re-run — checked rather than assumed.

CabinetBuilt at runtime is free; hidden is not, and the rail was both in the same afternoon

The rail shipped showing every label all the time, and **needed nothing from `tools/reveal.mjs`** — both Chrome gates load over `file://` and `queering.js` is fetched by relative URL, so it runs and the labels were measured like any other text. That was proved rather than assumed, by putting a 2.9:1 colour on the contents list and watching the contrast gate report exactly one failure per heading on seven pages.

**Then it was collapsed to hover, and all 109 labels went into the blind spot at once.** A gate skips what it cannot see, and `opacity: 0` is invisible. Proved both ways with a probe colour on the rail: **with** the new reveal line, 109 failures caught; **without** it, a clean `PASS` and 218 elements silently dropped from the count. The distinction is the thing worth keeping — `REVEAL` is for a **fetch** or a **hidden state**, and never for anything merely built at runtime.

**The labels are left in flow at zero opacity rather than floated in pills, and that is what makes the reveal safe for the other gate.** Pills would let the ticks sit at an even pitch, as they do on the page this was modelled on — and the moment the reveal turned them on for measurement they would lie over one another, so `check-overlap.mjs` would report every label sitting on the next. In flow, what the gates measure is the expanded rail that was already clean at 1280px. The pitch is uneven instead, because a row is as tall as its own label: one row on the home page, three on [the waste garden](https://queering.earth/flower-codes).

Label correctedThe rail would not appear for the person who asked for it, and the number keeping it away had been reserving room for a block that is not there

It shipped appearing above 1232px. Ryan uses a browser whose tab sidebar takes its width out of the viewport, so a laptop was arriving under that and **the rail he had just asked for never appeared at all.** Lowering the number turned into finding out it had never been derived correctly.

**The breakpoint was never measuring clearance.** The rail and the page are both derived from the same centre line, so the gap between them is constant at every width — widening the window moves both outwards together and buys the prose nothing. The only thing that fails as the window narrows is the rail sliding off the left edge, so the left is now pinned rather than computed from the centre, which turns that failure into “stops moving”.

**And the sum was holding back 288px for `.qe-wide`, which widens nothing on screen.** This site’s own notes said two blocks break the measure — the masthead and the provocation. Neither does: the masthead never carried the class, and `.qe-wide` asks for 46rem inside a `main` capped at 34rem, where a max-width larger than its parent constrains nothing. The provocation renders at 448px, like every other block, and has done since the rule was written. **Nobody can miss a block that was never wider**, which is why it survived this long on a site with eight gates. It is left alone rather than changed, because widening the provocation is a decision about how this looks and [the decision log](https://queering.earth/what-is-settled) is where that belongs.

Measured rather than calculated, which is what should have happened first: at 1024px the leftmost thing inside the landmark across the art-heavy sheets is 277–288px against a rail ending at 172px, so the real clearance is about 108px where the old sum was defending 24. **The rail now appears above 1024px, 208px better than it shipped**, checked on both sides of the boundary.

CabinetThe rail’s ticks became a scale drawing of the sheet, because an imperfection with no norm behind it just reads as an accident

Collapsed, the rail was a column of identical rules at an uneven pitch — uneven because a row is as tall as its own label. Ryan’s read was that this was an imperfection worth leaning into. **The trouble with leaning into it as it stood is that asymmetry only reads as asymmetry against a norm**, and with nothing else varying the pitch read as an accident rather than a hand.

So the ticks were given the norm to deviate from, and the deviation is **inherited from the sheet rather than invented**: each tick is now as long as its section is tall, normalised across the page. The rail is a small scale drawing of the document, and you can see which section is the long one before reading a word. On [the Dickinson sheet](https://queering.earth/wild-nights) the longest section draws 32px and the shortest 9px, monotonic across all eight.

**That it means something is the licence for it, not a bonus.** A tick whose length varies looks like it encodes something, and this cabinet refuses decoration asserting a fact it does not have — a gold join on a sheet nobody corrected. Four treatments were drawn against the real stylesheet before choosing, and the one that varied length *without* meaning was refused for precisely that reason. **The lean beside it claims nothing**, which is what leaves it free to be ornament: up to 3.2 degrees, walked by the golden angle so the same sheet draws the same rail every time rather than rolling dice on each visit.

**The two part company in plain view: the lean goes, the lengths stay.** Plain view removes decoration and has never removed information, and splitting one effect into an honest half and an ornamental half is what makes that line drawable at all.

CabinetThe rail’s rule ends in a leaf now, and the doodles that were asked for were drawn and refused

The question was whether small doodles above, below or around the rail would add to the handwritten feel — asked with the risk already named: that it might spend the negative space. **Both arrangements were drawn and looked at, and the scatter was the wrong one.** A cluster at the head of the rail lands in the top-left corner of the page, which is where a reader’s eye starts and where the skip link appears on focus, and it makes the rail’s decoration the first thing anyone sees. This component is unlabelled precisely so that margin stays empty; filling it spends the thing that made the rail acceptable.

**What survives is the version that is not an addition at all.** The rail’s rule already reads as a stem, and a stem that simply stops is the only unbotanical thing about it. It now ends in a terminus — two leaves and a bud, continuing the line rather than sitting beside it, pulled back past the nav’s padding to meet the border. Twenty-eight pixels, stroke only, in moss. It occupies margin nothing else wanted and puts no second object on the page.

It wears `.qe-botanical`, so the growth is inherited rather than restated: the stem draws itself on and the leaves unfurl, both already gated on reduced motion and already kept-but-stilled in plain view. Only the size is new, [exactly as with the moth](https://queering.earth/#queering-is-a-verb). Because it takes a palette token it follows the ground with no cabinet rule of its own, which was checked in both.

**That no gate here measures a drawing against text is the reason it is small.** `check-overlap.mjs` catches text sitting on text, so an ornament in the margin is guarded by nothing at all and could drift onto the measure at some width without a word being said. Keeping the mark inside the rail’s own box means the clearance already measured for the rail covers it too. Anything free-floating would need measuring by hand at every breakpoint, which is a standing cost this cabinet has not agreed to pay for decoration.

Label correctedThis register said a rule did nothing, having measured it on screen and never on paper

The entry above went out saying `.qe-wide` *does nothing*. **That was an overcorrection and it was published three times before anyone checked paper.** The first claim — that two blocks break the measure — was reasoned from a rule and was wrong. The second was measured on screen and then generalised to every medium, which is the same fault wearing better clothes.

`@media print` sets `main { max-width: none }`, so on a printed sheet that rule is the only thing holding the provocation in: **it caps a block that would otherwise run the full width**, and centres it. The class does not widen — on the one medium where it is live, it narrows. Reproducing the print condition and measuring: no effect at all at 717px of printable width, 3px at 739px, 80px at 816px. Its effect scales with the printer’s margins and is invisible at the defaults, which is why nothing ever looked wrong.

**The lesson arrives here from a third direction.** [The colophon](https://queering.earth/design) already says paper is a medium this house has been burned by, and both browser gates measure it separately for exactly this reason: paper is not a wider screen. The notes in `queering.css` and the guidance file now describe the rule as the paper-only narrowing it is, and the rule itself is unchanged — whether the provocation should break the measure on screen stays a design question rather than a defect.

CabinetThree sheets had no contents list and no reason for not having one

[No. 1](https://queering.earth/on-being-ill), [No. 2](https://queering.earth/coming-to-terms) and [No. 7](https://queering.earth/flower-codes) were missing their *On this sheet* list. They run 2,045 to 3,098 words against 2,495 to 5,018 on the five that had one, **so the bar the existing sheets set was already cleared** and the gap was an oversight rather than a decision. All eight sheets carry one now. The opt-in stays in the markup: nothing derives a contents list from a word count, because which pages want one is editorial, and the pages that still decline all have a reason on the record.

**“After the lede” turned out not to mean “before the first heading”**, which was checked before anything was placed. Five of the existing lists carry opening prose after them — [the Dickinson sheet](https://queering.earth/wild-nights) nineteen blocks, [the Quetelet sheet](https://queering.earth/invention-of-normal) thirteen. A contents list is front matter for the sections, and the lede is not a section.

**No. 2 puts its list somewhere no other sheet does, and that is authored.** It has no lede, and all six of its headings are in the 2026 commentary — the 2022 essay above them is unheaded and stays that way, because the note directly above it says Ryan’s words are unchanged and a heading dropped into them would not be. A list at the top would name six sections that begin a fifth of the way down and say nothing at all about the essay, which is the reason the sheet exists. It sits immediately after that note instead, where the sheet says out loud that it is changing hands, and maps exactly what follows it.

2026 · 9 September

## The ledger and the decision log had no addresses, so the aim that pointed at them was the thinnest receipt on the mission page

[Aim 12](https://queering.earth/mission) says this site works in public with the working-out left in, and it pointed at two files on GitHub, because that was the only way to reach them. **An aim whose receipt is on somebody else’s website is not much of a receipt.** [The attribution ledger](https://queering.earth/ledger) and [the decision log](https://queering.earth/what-is-settled) are now pages here — generated from the Markdown rather than retyped from it, because two hand-kept copies is the failure this whole house is organised against.

MountedA generator that runs backwards, because the Markdown is the thing being kept and the page is the copy

**Every other generator here reads a page and writes Markdown beside it.** This one reads Markdown and writes the page, and the direction is the design: those two files are working documents. The `credit-source` skill appends to the ledger; every session that settles something appends to the other. Making the page the source would mean editing a ledger entry in HTML, **which is how a ledger stops being kept.** Either direction is fine; two hand-kept copies is not.

**It throws on a line it does not recognise, and then proves it did not drop one.** Every block’s words are checked against the rendered text before anything is written — whitespace removed on both sides, because tags are word boundaries in the source and not in the output. That proof caught four faults in its own author on the way here, and three of them were the proof being wrong rather than the converter: it stripped a bullet, a table’s pipes, and then the underscores out of `Photon Pulse\_he\_him`, a study participant’s pseudonym the converter was right to leave alone. **A guard that cries wolf gets relaxed**, so the proof was made to model the converter rather than approximate it.

The real fault it found was `\*\*The lower-case \*g\* is kept\*\*` in the ledger — emphasis nested inside emphasis, where the inner pair is a letter being quoted. The first pass refused the nesting instead of reading it.

CabinetThe addresses are not /attributions and /decisions, and that is a filesystem fact rather than a preference

**macOS is case-insensitive by default.** A page at `/decisions` is `decisions.html`, and `make-markdown.mjs` writes a `.md` beside every page — so it would have written `decisions.md`, **which is the same file as `DECISIONS.md`**. The generator would have silently overwritten its own source with a round-tripped copy of itself, on the first run, with no error and nothing to restore from but git. `attributions.md` collides with `ATTRIBUTIONS.md` the same way.

Checked before a line was written, by creating `AAA.md` in a temp directory and asking for `aaa.md`. The addresses are [`/ledger`](https://queering.earth/ledger) — the site’s own name for that file in every footer it appears in — and [`/what-is-settled`](https://queering.earth/what-is-settled), which is the other file’s own opening line.

Label correctedThe finding aid was describing a smaller cabinet than it searches

Its lede named the eight sheets, the colophon, the privacy policy and the register. It now also searches the aims, every attribution we have traced and every decision we have written down, so the sentence was false the moment the index was rebuilt. **This is the third time a page that binds us has had to move in the same commit as the capability that changed it** — after the privacy page twice. The pattern is the lesson: a claim only a human remembers is a claim that will eventually be false.

**The index roughly doubled, and that is a real cost stated rather than hidden.** 154 KB gzipped to 249 KB. It is fetched after the page renders and carries `max-age=0`, so an unchanged index is a 304 and no bytes move — the increase is paid when it changes, not on every visit. Both records were indexed rather than only the ledger, because a decision nobody can search is close to a decision nobody published.

CabinetBoth walkers learned a tag on the same afternoon, and one of them had to learn not to tidy

The decision log carries one shell block, so `make-markdown.mjs` and `make-search-index.mjs` both threw on `pre` — the throw-rather-than-drop rule working exactly as intended, in two tools, within a minute of each other. **The Markdown converter needed more than the tag.** Its text handler collapses whitespace and escapes punctuation, which is right everywhere except inside a fence: the first output put a shell command and its continuation on one line with backslashes through the quoting. A fenced block is the one place in Markdown where neither pass is wanted.

The search walker indexes the block rather than skipping it. Skipping was the quieter choice and the wrong one — a command in the decision log is content, and a searcher looking for the deploy hook should find the page that runs it.

2026 · 9 September

## A cabinet that publishes an attribution ledger, a privacy policy and a register of its own errors had never written down what any of it was for

There was a page for what the cabinet holds, a page for how it is made, a page for everything we have got wrong, and a page for what the site knows about you. **There was no page saying what we are trying to do.** That absence is not neutral, and this site already knows why: a project with no stated aim is a project whose aims can drift with nobody able to point at the drift, which is the objection it makes to a quotation nobody can trace and a number nobody can re-derive. [Sheet-less, numberless, and now written down.](https://queering.earth/mission)

MountedThirteen aims, each naming the page already keeping it — and, for each, the observation that would falsify it

**The genre is the whole defence against duplication.** The home page already carries 611 words of manifesto across three sections. A mission written as an argument would have restated most of it, and two copies of the same words drift — the rule this house repeats more than any other. So this is *an index of commitments with receipts*, which structurally cannot duplicate an argument: every aim ends by naming where it is already being practised, and an aim with no page keeping it would be visible as a hole. The form is [Star Stuff’s](https://starstuff.earth/mission), adopted deliberately; the aims are this site’s own and several have no counterpart there.

**An aim you cannot fail is not an aim.** The last section is a table pairing each aim with a condition somebody outside could observe, with no access to what we meant. **Most of them are not hypothetical.** The working tagline was once a paraphrase of Nick Walker wearing his name. Tuck and Yang were carried from settler colonialism to masking and the sheet nearly let their authority cover the move. And the plate said “Seven sheets” above eight cards — a count in our prose nobody could re-derive, which is the last row of that table, committed on this site, this week.

**What it refuses to claim.** Stimpunks’ first programme is direct financial support to individuals, and a section says plainly that this site does none of it and should not be counted as though it did. No sheet here has paid anybody’s rent. The honest claim for a cabinet of readings is narrower and is stated at that width.

It is **the first page in a second list** at the foot of the home page. *The founding papers* is why the cabinet exists; *The cabinet itself* is how it is made and what it knows about you. Purpose above plumbing, and the split is Star Stuff’s too — see the entry below for the day the first list was built.

MountedTwo quotations from our own two organisations, held to the standard everybody else’s words are held to

The page quotes the Stimpunks Foundation’s mission and Helen Edgar’s own landing page rather than paraphrasing either, because **the paraphrase is where a mission goes soft** and paraphrase-wearing-a-name is the failure the ledger exists to prevent. Both were read from the primary the day they were mounted, and both are logged.

**Reading the primary found something, as usual.** Two wordings of the Stimpunks mission sit on the same page — the statement block says the foundation builds tools that *support* people to live with dignity, challenge dehumanizing systems and design environments that honor difference as strength; the Mission Compass further down says *enables* people to live with dignity and stops. We quoted the longer, and the ledger records the discrepancy, because a reader who checks will find both and an unrecorded discrepancy is how a ledger loses its value.

**Their capitalisation and their spelling are kept.** House style capitalises Autistic and Disabled and spells *honour*; the quotation does neither. A quotation is not the place to apply house style, and this is the site that says so.

**And one of their sentences turned out to be about Sheet No. 4.** Stimpunks’ mission says “We enable the weird, feral, chaotic, and magical people.” [Sheet No. 4](https://queering.earth/invention-of-normal) is the history of that word being demoted from *wyrd*, meaning fate, to a name for people who do not fit. The sheet was not written to illustrate the mission; the collision was found by reading the mission properly, which is the argument for reading primaries in one sentence.

CabinetThe Markdown converter now honours a list’s start attribute, because thirteen aims in four groups renumbered themselves four times

The aims run as one sequence across four group headings, which is four `ol` elements with `start` on three of them. The converter ignored the attribute, so the page said thirteen aims numbered 1 to 13 and `/mission.md` said 1–3, 1–5, 1–3, 1–2. **A converter that silently drops an attribute is the same drift as one that silently drops a tag**, which is the rule that already makes it throw on an unknown element — it arrived by the other door. It now reads `start` and throws if it is not a number.

Two components were added for the page and both are the **bare** tier: the one-sentence statement, and the aims list. The statement is *not* a blockquote — nothing is being quoted, it is the site speaking, and marking our own words as a quotation is the mistake most of these rules exist to avoid. The aims use native `ol` numbering rather than a counter on a pseudo-element, so a screen reader announces the position, and **no colour goes on the marker**: a `::marker` is invisible to the contrast gate, which is exactly how this register’s own entry bullets once sat at 2.15:1 unreported.

2026 · 9 September

## An eighth gate, ported the same day the failure it catches happened twice — and its first honest run found fifteen more

The house rule is to port a Star Stuff check when the failure it catches becomes *possible* here. `check-card-order.mjs` did not clear that bar; it cleared a higher one. The plate shipped out of sequence, a sibling nav shipped out of sequence, and **all seven existing gates passed both** — correctly, because order is not colour, position, freshness, routing, structure, headers or the manifest, and a grid in the wrong order looks exactly like a grid in the right one.

CabinetThe upstream tool would have certified the exact plate that prompted it, and finding that out was most of the port

**Star Stuff checks ascending order *within each series***, because one of its collections interleaves Zine and Field Guide numbers on purpose and a single merged sequence would fail a page for doing what it means to do. **This site has no series.** There is one accession run and the kind chip is a label on it — No. 1 a Reading, No. 2 an Essay, No. 8 a Wall — and they ascend together.

**Ported unchanged, that split would have been worse than no gate.** No. 8 is a Wall and No. 7 is a Reading, so `1, 2, 3, 4, 5, 6, 8, 7` is two perfectly ascending series. **Proved rather than reasoned about:** the broken plate was put back, the series split was patched into the tool, and it reported `ok · 0 problem(s)` on it. Then the split came out and the same plate reported `No. 7 follows No. 8`. A port is a rewrite when the thing being ported encodes an assumption the new site does not share.

**Every rule was made to fail before it was believed.** Rule 1 on the restored plate; rule 2 by dropping a card outside every grid; the empty-authority guard by breaking the card selector on the plate and watching it report NOT MEASURED rather than clean — the overlap gate’s empty-pass lesson arriving in a second tool. **And `--check` both ways**, because that flag has now been load-bearing and missing twice in this repo: exit 1 with it, exit 0 without.

Label correctedFifteen cards called a sheet something the plate does not call it, including an essay filed as a reading

A sheet’s number and kind are written out once on every page that cards it — ten copies of one fact, which is the drift this site names in every rule it has. So the gate got a third rule: **every card must agree with the plate about the sheet it points at.** Rule 1 is only as good as the numbers it sorts, and a grid ordered by a wrong number ascends perfectly.

**It found two mislabels and thirteen drifts on its first run.** `/404` called [Sheet No. 2](https://queering.earth/coming-to-terms) a “Reading” — it is Ryan’s own essay, and the plate says Essay — and called [Sheet No. 8](https://queering.earth/monotropa-uniflora) a “Reading” where the plate says Wall. Separately, the No. 8 accession wrote its kind chips with articles, “A wall” on seven pages and “A reading” and “An essay” throughout its own sibling nav, against bare nouns on the fifty cards that came before. All fifteen now say what the plate says.

**The plate is the authority, not the majority.** A vote among sibling navs would have let “A wall”, copied onto seven pages, outrank the one page whose subject is what this cabinet holds.

**And where the plate is silent, the copies must still agree with each other.** The plate does not card itself, so nothing could arbitrate `/` being a “Plate” on one nav and “The plate” on another; that is reported apart, once per address rather than once per page, because printing it twice invites somebody to fix whichever file they read first. No other kind chip here carries an article, so it is “Plate”.

CabinetWhat it refuses to check, and the one that looks most like an omission

**It does not check the plate against `tools/pages.mjs`.** They agree today and the temptation is obvious, but they are two different facts: the number records *when a sheet was accessioned* and `pages.mjs` records *the order a reader should meet the pages*. Mount Sheet No. 9 and decide it reads best third, and the two diverge legitimately. Coupling them would turn an editorial decision into a build failure.

It also declines to order the unnumbered cards — there is no mechanical answer to where the colophon belongs relative to the register — and it says so in the summary rather than quietly leaving six cards out of the denominator.

2026 · 9 September

## The plate said seven and carried eight, and two of them were in the wrong order — on the one page whose job is to say what is here

Sheet No. 8 was mounted, carded and logged, and the sentence above the plate was left saying “Seven sheets, so far.” The card went in at the end of the list rather than in its place, so the plate ran 1–6, 8, 7. **Neither is a hard fact getting away from us; both are the register’s own bookkeeping getting away from us**, which on a site that publishes an accession register is the more embarrassing of the two.

Label correctedEight, and in order — the count above the plate and the sequence on it

**The count is a hand-written number beside a list that grows.** Every other statement of the same fact was already right: `/search` says “the eight sheets”, `/404` says “the eight sheets”, and `tools/pages.mjs` has held all eight in order since the sheet was mounted. One sentence in `index.html` disagreed with all three, and it is the sentence a first-time reader meets first.

**The order was an append.** A new card belongs where its number belongs, and this one was added after the last `li` instead. It is invisible in a review of the diff — the markup is valid, the card is correct, and the number is right on the card itself — and obvious the moment anybody reads the plate downward.

Label correctedThe same fault, found by looking for it: one sibling nav ran 4, 1, 2, 3

Having found the plate out of sequence, the obvious question was whether anything else was, so all fourteen pages were counted rather than the one that had been reported. **[Sheet No. 5](https://queering.earth/the-tempest) listed its siblings 4, 1, 2, 3, 6, 7, 8.** Every other page was already ascending. The card is now in its place.

**This is the failure `check-card-order` exists to catch on Star Stuff, and this repo has not ported it.** The rule here is to port a gate when the failure it catches becomes possible; it has now happened twice in one afternoon, in two files, and neither instance broke a single one of the seven gates. The ordering truth is already written down and machine-readable — `tools/pages.mjs` — so the check has something to compare against. **Recorded here rather than quietly fixed**, because a correction that leaves the gate unbuilt is a correction waiting to be made again.

2026 · 9 September

## The four pages that are not specimens were only ever in the footer, which is where a site puts what it hopes nobody needs

The plate names eight readings and nothing else, so [how the site is made](https://queering.earth/design), [this register](https://queering.earth/changelog), [the finding aid](https://queering.earth/search) and [the privacy page](https://queering.earth/privacy) lived in the footer of every page and in no page’s content. **A site that publishes an attribution ledger and a privacy policy should not file both under fine print.** They now have a section of their own at the foot of the home page, under the name [the group already had](https://queering.earth/#the-cabinet-itself) in `tools/pages.mjs` — so the plate, the finding aid’s manifest and `/llms.txt` call this set the same thing rather than three things.

MountedA list with no cards, because a card would say these were readings and none of them is a reading of anything

**The bare tier, and that is the whole design.** Space only, no fill, no box — the surface this house reserves for the cabinet talking in its own voice. Fifteen components once shared one card treatment here and a reader could only rank them by reading the label; giving the furniture the plate’s clothes would be that defect deliberately reintroduced. The plate does the ranking, and this list agrees with it by declining to compete.

**Back matter, not front matter.** It sits last inside `main`, where the links it replaces already were. That is the correction the register paid for when a contents list at the top of this page delayed its first entry by three and a half screens: furniture at the top costs every reader, furniture at the foot costs none. The home page’s own content is a contents list already.

**A description list, because each entry is a name and a gloss on it.** The Markdown converter writes a term and its definition, so the copy an agent fetches at `/index.md` keeps the pairing instead of flattening into loose lines. It is inside `main` rather than beside the sibling nav for the reason the contents list may be: a list of the site’s own pages on the site’s own index page cannot be one sheet’s navigation indexed as another sheet’s content.

CabinetThe target is the line and not the letters, which is the rule the ground control shipped one pixel over

A `dt` that is entirely a link is not an inline link inside a sentence, so WCAG 2.5.8’s inline exception does not cover it — and the ink alone is 23px tall. Padding takes each target to **45px**, which is 2.5.5’s figure rather than the 24px floor. It grows into the gap above the description instead of pushing the entries apart, so the list did not get taller to get reachable, and the next target starts a whole description later, so no two can touch. **Measured afterwards**, because nothing in the seven gates measures a hit area and a number nobody checked is a number.

**The padding is also spacing, so the scale is taken net of it.** 0.7rem inside an entry and a full `--qe-space-3` between two — two to one, which groups the pairs by eye with no rule drawn anywhere. Left uncompensated the list would have started 11px below where every other block on the page starts, and an unauthored deviation makes the authored ones mean less.

**The home page’s footer lost the four links and no other page did.** On this page they are two paragraphs above; everywhere else the footer is still the way there. One page, one list of the same four things.

2026 · 9 September

## A site that had spent a day removing its only third-party request mounted a YouTube player, and the whole of the work was making that honest

Ryan and Helen listen to Eliot read *The Waste Land* together, and a site about reading things closely is a strange place to make somebody leave in order to hear one. So there is now a recording under the lilac. **It cost a sentence this site had been proud of.** `/privacy` said, of the Google fonts removed that morning, “It was the only one.” That is no longer true, and the honest replacement is not a smaller boast but a more precise claim: *reading* a page makes no third-party request, and there is exactly one place where you can choose to make one.

MountedA facade, not an embed: the served page holds a drawing and a link, and nothing reaches Google until somebody presses play

**Measured rather than asserted.** On load, the set of non-local hosts the page contacts is `\[\]` — empty. After the press it is exactly one, `www.youtube-nocookie.com`, which is the host `/privacy` names. Both figures came out of a headless run reading `performance.getEntriesByType('resource')`, not out of a reading of the source.

**The poster is drawn, not fetched.** YouTube’s own thumbnail would have been a request to `i.ytimg.com` on every page load, before anybody pressed anything — which is exactly the Google-fonts failure this site had just spent a day removing, wearing a different hat. It is a scatter of the same lilac florets as the bush above it.

**Without JavaScript the control is an ordinary link** to the video, and pressing it goes to YouTube. With the script it stops navigating and swaps the player in place. Both are a request the reader chose, which is the same footing as every other outbound link here — and that link is also what survives into the Markdown copy, so an agent reading `/index.md` gets the address rather than a hole where a player was.

**A third script, for the reason there was a second one.** `queering.js` may never put content on a page; this script’s entire job is to put somebody else’s content on one. Widening that boundary to fit would have cost the boundary. It creates no words either — even the player’s accessible name is read from `data-embed-title` in the markup rather than written in the script.

CabinetThe gate now reads our JavaScript, because section 7 looked only at markup and a script is where a third party would actually appear

`check-metadata.mjs` has enforced “no page may fetch from another origin” since the fonts came home, and it did it by scanning HTML attributes. **That check would have reported this page perfectly clean.** The request lives in a script, and a gate that cannot see the place the failure would occur is a gate that certifies the failure. Three assertions were added, and each was **made to fail before being believed**:

**Every third-party origin our own scripts mention must be named on `/privacy`.** Not forbidden — named. Proved by renaming the host on the privacy page and watching the run go red. It found a real fault on its first honest run, too: the script contacts `www.youtube-nocookie.com` and the policy named the bare domain, so the policy was one subdomain away from being wrong about its own site.

**A facade must stay a facade.** An element carrying `data-embed-id` must have a plain link to the same video beside it — that link is the no-script path and the reason the request counts as chosen — and the served page must contain no `iframe` at all. Proved by deleting the link, and again by adding an iframe. The second turns out to fail *twice*: the Markdown converter throws on the unknown tag before the new check is even reached, which is the converter’s “teach me or I will drop content” rule catching a privacy regression by accident.

**The contrast gate caught the other one.** The player’s subtitle was `--qe-moss` on `--qe-paper-deep`: **6.9:1**, clearing WCAG AA and missing the house 7:1 by a tenth. That is the same surface this site already removed a recessed panel over, and it is the third time `--qe-paper-deep` has done this. The line is `--qe-ink` now, and the hierarchy is carried by size and weight, which is what should have carried it in the first place.

Label correctedFive statements on the privacy page stopped being true on the same afternoon, and all five were corrected in the change that broke them

The absolute claim appeared in the lede, in the deliberately-not-here list, in the JSON-LD description and in three social descriptions. **A privacy policy is a binding statement of practice**, so a change that makes one false and fixes it next week has published a false one for a week. All of them moved in the same commit, and the page gained [a section of its own](https://queering.earth/privacy#the-embed) describing what pressing play actually costs.

**What that section refuses to say is the part worth noting.** `youtube-nocookie.com` is Google’s privacy-enhanced player domain and it does not set advertising cookies on load. It is *not* anonymous: the IP address still reaches Google. “No cookies” and “no tracking” are different claims, and describing the first as the second is the sort of comfortable imprecision this page exists to avoid. It says so in those words.

This is the second time the finding aid’s lesson has been applied — a page that binds us is a page to re-check against the code every time the code grows a capability — and the first time the *gate* was extended rather than just the prose. A claim only a human remembers is a claim that will eventually be false.

2026 · 9 September

## A lilac bush from Ryan’s own yard, standing above the footer, and the song under it belongs to a man almost nobody names

Drawn from a photograph of the shrubs in Ryan’s garden, and mounted because the site had just borrowed a colour and had nothing of the actual plant in it. It closes the home page the way a plate closes a chapter. Ezra Furman, whose song gave the site those two colours, has said what they are for: “So I wrote this theme song for us, and gave us some gang colors: lilac and black.” Us, there, is trans women, and the statement around that sentence is about being ready to defend one another’s lives. [Furman, in *Clash*](https://www.clashmusic.com/news/ezra-furmans-lilac-and-black-is-a-trans-rallying-cry/). The flower on this page is not a decoration borrowed from a song; it is the plant the colours were named after, growing in somebody’s yard.

MountedThe vase habit is the whole read, and two drafts got it wrong in the same way

**A lilac is many slender woody stems from one clump at ground level**, bare for the lower third, fanning into a dome half again as tall as they are. Both of the first two drafts put the bare stems at more than half the height and produced a *hand fan* — a shape that is unmistakably not a shrub, and unmistakably not this shrub. The proportion was eventually measured off the photograph rather than guessed.

**The dome’s underside arches**, low on the flanks and high in the middle, so the bare stems show through the centre exactly as they do in the photograph. One function in the markup defines that arch, and both the trunk tips and the flower placement obey it — two copies of that curve would drift, and the drift would be a bush whose trunks stop in mid-air.

**Placement of the flowers went through three schemes.** Rings left the middle hollow and read as a wreath. Uniform random sampling clumped into two lobes with a hole between them, which is what forty random points actually look like and why nobody should reach for random when they mean *even*. Staggered rows inside the ellipse give even coverage by construction, and that is the version here.

**A panicle is a mass, not a chain.** A lilac thyrse is a dense cone of hundreds of tiny four-lobed florets; the first attempt strung eleven large puffs along an axis and read as a bunch of grapes. It is drawn now as a triangular scatter stippled between the three lilacs, with a few four-lobed florets laid over it for texture. Drawing every real floret would be thousands of elements for a shape a reader sees as one thing.

CabinetEighty-five kilobytes of markup, nine over the wire — and the trick that would have shrunk it breaks the styling silently

The drawing is about seven hundred circles. Raw, it is **85KB**; compressed, which is how every response here is actually served, it is **nine**, because markup this repetitive is very nearly free to a compressor. The home page went from 43KB to 143KB raw and from about 7KB to **22KB** over the wire. Measured before it shipped rather than assumed either way.

**The obvious optimisation was tried and reverted.** Defining the leaf and the floret once and referencing them cut 20KB raw — and rendered every cloned leaf and floret in *black*. Outer stylesheet selectors do not cross into a `use` shadow tree; only inherited properties do, so `.leaf` and `.floret` simply stopped matching while the definitions themselves still looked perfectly correct. That is a fraction of a kilobyte compressed in exchange for a styling path that fails silently, and the comment in `queering.css` now says so, because the next person to look at seven hundred circles will have the same idea.

**A class with no rule renders black, and nothing here catches that.** An earlier pass had the generator emitting `puff-pale` while the stylesheet only knew `puff` and `puff-deep`: a third of every flower cluster came out in solid black, and it was found by looking. Star Stuff’s `check-classes` is the gate for exactly this, and it is the strongest candidate for the next port — the failure it catches is now known to be possible here, which is this repository’s stated bar.

**In print the mass becomes an engraving.** Every floret prints as an open circle in line, and the tone comes from how densely they overlap rather than from ink coverage — which keeps the design sheet’s claim that these drawings print as line work true, and looks better than the three flat greys the screen fills would have made. Checked under print emulation, where a second fault turned up: the print block sat *above* the base rule at equal specificity, so the caption printed moss-green. Source order decided it, and the print block now comes last.

MountedHelen hears Eliot the instant anybody says lilac, so the plate got the four lines that come with the flower

“April is the cruellest month, breeding / Lilacs out of the dead land” — the opening of *The Waste Land*, and Helen’s immediate association with the word. It is a useful one to have standing over this drawing, because it files the flower on the *cruel* side of the season: lilacs as what the dead land produces, memory and desire stirred up together, spring as an imposition rather than a mercy. A page that has just spent a paragraph on gang colours and one on a torch song is well served by a third reading that refuses to be consoling.

**1922, so it is public domain in the United States**, and four lines can be mounted whole rather than trimmed — which matters on a site whose stated risk is the tightened quotation. The wording was checked against [Project Gutenberg’s transcription](https://www.gutenberg.org/ebooks/1321) of the 1922 text rather than taken from memory; [the Poetry Foundation’s copy](https://www.poetryfoundation.org/poems/47311/the-waste-land), which is what the citation links, refuses automated requests. “Cruellest” keeps its British spelling, as the house rule requires inside a quotation.

Label correctedLilac Wine is James Shelton’s, and the caption says so before it names either singer

The song reached this site the way it reaches most people — through [Nina Simone](https://en.wikipedia.org/wiki/Wild_Is_the_Wind_(Nina_Simone_album)) and [Jeff Buckley](https://en.wikipedia.org/wiki/Grace_(Jeff_Buckley_album)). It is neither of theirs. **James Shelton wrote words and music in 1950**, for a Broadway revue called *Dance Me a Song* that ran a few weeks, where Hope Foye introduced it. Eartha Kitt recorded it in 1953, thirteen years before Simone and forty-one before Buckley.

**This is the site’s characteristic failure in its most ordinary form** — not an invented source, an *absorbed* one. A cover so much better known than its original that the original stops being mentioned is the same motion as a definition trimmed to fit a masthead: the work survives, the maker falls off it. So the caption names Shelton first and calls Simone and Buckley readings, which is what they are, and is also the argument this whole site is built on. One song, read three ways.

2026 · 9 September

## A moth with the Earth where its body should be, in somebody else’s two colours, and the hardest part was stopping the middle of it from looking like a brain

Ryan’s, and it is two borrowings at once. The cover of Nick Walker’s *Neuroqueer Heresies* sets a human brain where a swallowtail’s body would be; Ezra Furman’s *Lilac and Black* supplies the palette and the line the palette comes wrapped in — “We wear the lilac and black”. Put the Earth where the brain was and you have this site’s name as a drawing. Both debts are stated in the figure’s own caption, which is the only version of this that is defensible here.

MountedThe drawing is at the foot of a section rather than at the top of a page, which is the first time anything here has been

Every other drawing on this site sits above the prose as a masthead, or in a corner as a vine. This one closes [Queering is a verb](https://queering.earth/#queering-is-a-verb), because that is the section it is an argument about: Walker’s coinage, our extension of it, and a picture that performs the extension rather than restating it. The header spray at the top of the home page is untouched — it was never the thing to replace.

**The surface is bare.** Space only, no fill, no box: it is our own drawing with our own caption under it, which is the default tier and not an object mounted from elsewhere. The one dark-ground version drafted for review was refused for that reason as much as any other — a black card on a vellum sheet is a fourth surface, and the three-surface rule exists so that a reader can rank a panel without reading its label.

**It wears `.qe-botanical` as well as `.qe-moth`, and that is deliberate.** The growth motion, the stroke-drawn stems and the unfurling sprouts are all written once; only the fills are new. A second copy of that idiom is a second thing to keep in step with `prefers-reduced-motion`, and the reduced state has to be the finished drawing in both.

CabinetTwo new decorative tokens, because a wash and the thing washed onto it cannot be one value

`--qe-lilac` takes the forewing, `--qe-lilac-pale` the hindwing and the sea of the globe, and both have `--qe-cab-\*` counterparts aliased through both ground switches. The decorative five is a decorative seven now, and the sentence on [the palette sheet](https://queering.earth/design#palette) that counted them has been recounted — a number in prose that nothing checks is a number that goes stale silently, and this one had been true since the site shipped.

**The pale one goes *darker* in the drawer, not lighter.** That is the gating-surface inversion arriving in a component with no text in it: in daylight the wash is the recessed thing under the wing, and lifting it in the cabinet would have it out-shouting the ink line. Neither token is for text in either ground, so 7:1 does not apply — there is not a letter anywhere in the drawing.

**Black is `--qe-ink`, so the black inverts.** In daylight the outline and the continents are near-black on vellum; in the drawer they are cream. The song says lilac and black and the drawer says otherwise, and the drawer wins, because the alternative is a literal black line on dark brown that nobody can see. The one version that would have kept the black in both grounds was the black card, and it lost on the surface rule above.

The print sheet flattens the wings to line work like every other drawing here, with one exception written into the rule: **the continents keep their fill.** Flatten those along with the wings and the globe stops being the Earth and becomes a ruled circle.

CabinetThe coastlines are projected rather than drawn, because three passes of hand-drawn continents kept reading as a brain

**This is the funniest available failure and the least acceptable one.** The drawing quotes a book cover that has a brain in the middle of it. Hand-drawn continents — three separate attempts at them — came out as a pair of symmetrical dark blobs either side of a central meridian, which is a Rorschach card, which is to say: a brain. A picture whose whole point is that the Earth is where the brain was cannot have a middle that reads as the thing it replaced.

So the coastlines are coarse lat/lon outlines put through an orthographic projection centred on 25° west and 12° north — the Atlantic view, the only one where the Americas and Africa are both legible. Points on the far side are pushed out onto the limb rather than folded back across the disc, which is what a continent going round the edge actually looks like. **The foreshortening is Earth’s and not ours**, and Africa is unmistakable at a forty-pixel radius, which is the size that matters.

**It has no tails, after four attempts at them.** Hanging straight down they read as legs; swept outward, as a bracket; curled inward, as a moustache; integrated into the hindwing path, as a boot. What actually says *moth* is a broad fanned hindwing and a feathered antenna, both of which it has. The cover’s tails say *swallowtail*, which we are not, and the caption carries that reference instead of the drawing pretending to.

One thing the review process itself taught: **the first four screenshots showed no wings at all.** Every wing is inside a `.sprout`, which starts at `opacity: 0` and unfurls on a delay, so a screenshot taken half a second after load is a photograph of an animation that has not happened. The growth gating is correct and the reviewer was wrong; noting it because the next person to check a drawing here will hit the same thing.

2026 · 9 September

## A real herbarium stamps its sheets with an accession number that is a row in a ledger, which is the whole reason this one could have it and most of the work was proving the ink was legal

Prompted by Ryan noticing the oval stamp on a scanned sheet from the Ada Hayden Herbarium at Iowa State University — the institution’s name around the ring, its parent below, and **497892** across the middle. The suggestion was that a faded one would add to the sense of age, and it does. What it cost was a measurement, because *faded* and **7:1** are the same argument from opposite ends.

MountedEvery sheet is stamped, and the fade is on the ring because no colour here can make a letter faint and legal

**The faded look was measured before anything was drawn, and every candidate failed.** `--qe-lichen` is **2.15:1** on paper — the exact figure this repository already uses as the injected value that a contrast run must report as `FAIL`, and the same one the register’s entry bullets sat at unreported. `--qe-verdigris` is 3.42:1. Neither clears 7:1, and neither clears the 4.5:1 large-text floor either, so there is no size at which a pale green letter becomes permissible here.

So the letters are `--qe-moss` at 7.8:1 in daylight and 7.2:1 in the drawer, and **the age is carried entirely by the ring**: two ovals with a wedge lifted out of each, and a few degrees of rotation authored per sheet. That is this cabinet’s standing rule — the colour goes on the rule and never on the glyph — and it turns out to be what a real understamped impression looks like anyway. **The outline breaks long before the letterforms do.** Nothing was given up to get the ink legal.

**The number is real, which is the only reason there is a stamp at all.** Ada Hayden’s 497892 is a row in a ledger somebody can go and read. A six-digit number invented here to look convincing would be a gold join on a sheet nobody corrected — decoration asserting a fact — and it would be the worst possible place for that failure, on a site whose one stated correctness requirement is attribution. What is real here is the sheet’s number and the day it was mounted, both of them entries on this page.

**It says Queering Earth alone.** The obvious move was to name Stimpunks and More Realms the way the Iowa stamp names its parent institution, and two custodians do not fit the oval — at that size the lower line crossed its own ring. The layout is not the argument, though: a stamp asserts a single custodian, this site is a collaboration, and “Queering Earth” is the one name that is true of the whole of it. The two organisations are credited where credit is a sentence rather than a mark.

**No sheet named its own number anywhere inside its landmark before today.** Other sheets’ cards say it, from outside `main` where the mirror cannot see them, and this register says it constantly. So the stamp adds a fact rather than making a second copy of one, and there is no drift surface: it sits in one block with `.qe-provenance`, which states the same accession in words. The stamp is not a link, either. The provenance line beside it already points at the accession that put the sheet up, and a second tab stop landing on the same anchor a few millimetres away goes nowhere new.

CabinetThe washed-out effect is a blend mode, the blend mode erases the stamp in the drawer, and the contrast gate reported it clean

`mix-blend-mode: multiply` is what makes the mark look stamped rather than printed: the sheet’s own foxing comes up through the ink the way it does through a real impression. On the dark ground **it took a mark measuring 7.2:1 down to very nearly nothing** — multiply darkens towards the ground, and in the cabinet the ground is the dark thing. Caught by looking at it in the drawer.

**This is a blind spot in `check-contrast.mjs` and not an oversight in it.** The tool composites computed colour pairs, so it saw `--qe-moss` on `--qe-cab-paper` and reported the figure that pair measures. It has no concept of a blend mode, and it never will without becoming a screenshot differ. It joins the two exemptions already written down: a `::marker`, which is not an element with text of its own, and a texture, which varies luminance per pixel. **A pass is not permission, and this is the third way to earn a false one.**

The fix is a token rather than a second selector, because this is the fourth time that lesson has arrived. `--qe-stamp-blend` is `multiply` in `:root` and `normal` through both ground switches — the same shape the foxed-paper wash, the shadow a lifted sheet casts and the pale flesh of a specimen all ended up in, each of them a property that differs between the grounds and is not a colour. **Two selectors carrying one decision is two selectors that drift.**

**The mark is in flow, at the head of the provenance line, and the corner version was refused.** A stamp belongs in a corner of a real sheet, and an absolutely positioned one lands on the prose — at a narrow width, at 400% zoom, or under a long heading — which nothing in this repository can currently see happen. Star Stuff has `check-overlap` for exactly that, and the house rule is to port a check when the failure it catches becomes possible here. **Not floating the stamp is cheaper than porting the gate**, and the accession block reads better as one object regardless.

Label correctedThe stylesheet was cached for five minutes longer than the markup that needed it, and the first reader of the stamp saw the consequence

**The stamp shipped and Ryan could not see it.** The markup was live and correct, the stylesheet on the server was live and correct, and the browser had one of each from either side of the deploy: a paragraph of three unstyled spans where an oval should have been. A force reload fixed it, which is the signature. **Every page here revalidates on every visit; `queering.css` was cached for three hundred seconds.** For five minutes after any deploy, a returning reader got new markup with the old rules.

**The comment in `\_headers` predicted this exact event, in these words:** “a change that adds a class and its rule together would render unstyled for one visit.” It was a known, deliberate trade, and the entry in `DECISIONS.md` that made it is careful and mostly right — fingerprinting the assets really would churn twelve HTML files per stylesheet edit and cost this register the legible diffs it depends on. That refusal stands.

**What was missing was a third option rather than a better answer to the two.** The choice was posed as *fingerprint* against *bound the cache*, and nobody weighed giving the shared assets the same `max-age=0, must-revalidate` the HTML already has. It needs no generator, no rewritten pages and no gate, so it costs nothing the refusal was protecting; it closes the window to zero rather than to five minutes; and it is *more* bustable than three hundred seconds, which was the stated priority. The price is one conditional request per visit that returns `304` with an empty body, alongside the revalidation the page is already doing.

**The reason this is coherent and not merely tidy: they fail when the page fails.** No `stale-if-error` on the stylesheet — RFC 9111 forbids pairing it with `must-revalidate`, and it would buy nothing anyway, because the HTML fails closed and an unreachable origin leaves no document for a held-back stylesheet to apply itself to.

**`search-index.json` had the same defect and needed the opposite directive.** It was ten minutes, and it is derived from the sheets — so it is exactly the case the old note's own rule excluded: staleness where the stale copy can disagree with the fresh HTML. After a prose edit it could hand a searcher a snippet quoting a sentence that is no longer on the page it cites, and on this site that is the worst available failure. It is `max-age=0` now **without** `must-revalidate`, which is deliberate: zero removes the skew, and omitting the stricter directive is what keeps `stale-if-error` legal. The index is fetched *after* the page has rendered, by a reader who has typed something, so the document exists either way and a finding aid a few minutes behind is better than one that fails closed. That judgement was in the original note and it survives.

CabinetA seventh gate, ported because a design was refused for want of it — and it measures paper, which the tool it came from does not

**The stamp belongs in the corner of a real sheet and it is not in the corner of these.** An absolutely positioned mark lands on the prose at a narrow width, at 400% zoom, or under a long heading, and nothing here could see that happen. Star Stuff has `check-overlap.mjs` for exactly it, and the house rule is to port a check when its failure becomes possible. **Refusing a design for want of a gate is a reason to build the gate**, so it is ported — and the first thing it did was catch the refused design: seven collisions on [Sheet No. 2](https://queering.earth/coming-to-terms), with the stamp’s own “Sheet No. 2” sitting on the masthead’s “Queering Earth”.

**It is not a copy.** The reveal step and the browser client were lifted out of `check-contrast.mjs` into two shared files rather than duplicated. The reveal step is the one that mattered: it is the list of things a page builds at runtime, it is editorial, it grows, and its own comment tells the next author to add to it — so two copies would be a component one gate learns and the other does not, which is the failure the shared entity table already exists to prevent. Both extractions were proved to change nothing: the contrast gate printed a byte-identical report before and after.

**Two faults in the imported tool turned up on the way, and both are now fixed here.** Its clip check walked upwards from an element’s *parent*, so an element clipping its *own* overflowing text was never treated as the thing doing the clipping. And the function that says *where* a collision is reported “page” for absolutely positioned blocks — the precise case the gate exists to catch, given no address. Both are recorded in `DECISIONS.md`, because Star Stuff is not edited from a session in this repository.

**Two of its four findings cannot fire here, and that is a house rule showing up somewhere nobody expected.** There is not one rendered `text` element in any page on this site: the botanical art is 535 paths, 381 groups and 160 ellipses and circles, named to a screen reader by `aria-label`. That is *never an image of text*, and it means the two faults that motivated this tool upstream — a drawing’s label on another label, and a label on the prose — have no instance to find. They are kept anyway: dropping them would stop the sweep *measuring* SVG text, and the day a sheet carries a label the gate would report a clean page it never looked at. They were proved by injecting labels, and the file says so rather than letting them pass for tested.

**An exemption was removed for exempting nothing.** The skip link went on the ignore list on the strength of the upstream note, where its equivalent fires on five of seven pages. Tested here, the list is empty and the count is still zero, because this site’s skip link has no clipping ancestor to be outside of. An exemption that exempts nothing is a named hole a real fault can fall into, and worse, it reads as evidence that somebody checked.

**It measures paper too, which the tool it came from does not.** Star Stuff hands print collisions to a paper gate; this repository has none, and paper is the medium this house has already been burned by — forty-four of forty-six pages once printed blank. Three passes now: the screen, then US Letter and A4 at the width a sheet actually leaves for content.

**The viewport moves, and that is the whole reason the pass is worth having.** The contrast gate emulates print media at desktop width and is right to, because it measures colour and colour does not reflow. A collision is a *position*. In print this stylesheet lets `main` run the full width of the sheet, so measuring paper at desktop width measures a line length no printer produces. The counts say it plainly: this page is 4,884 pieces of text on screen, 3,567 on Letter, 3,604 on A4. **Both papers, because those last two numbers differ** — twenty-two pixels is enough to rewrap a line and move a hand-placed mark, so picking one and calling it “print” would be this pass’s own mistake at a smaller scale.

**And the guard against measuring nothing is per pass, which turns out to catch the original disaster.** A stylesheet that renders nothing on paper measures zero there while measuring hundreds on screen — and the run reports the page as *not measured*, naming which passes came back blank, rather than reporting it clean. **Forty-four pages printing blank would not survive this gate.** That was not why the guard was written, which is the pleasant kind of accident.

**Pagination is the honest limit.** Print emulation reflows to the width but does not break a document into sheets, so a collision that exists only because two blocks land either side of a page break is still invisible. `break-inside: avoid` on the accession block is there because pagination is real. Reaching it means pulling text positions out of a generated PDF, which is a different tool and not a flag on this one.

CabinetA sixth gate, because a comment in a config file predicted this failure and a comment cannot fail a build

**The five existing gates were all green while the stamp rendered as three unstyled spans.** Correctly green: `check-markup` reads tags, `check-sitemap` reads the manifest, `check-contrast` composites colours, `check-metadata` regenerates the derived layer, and `check-addresses` — the one that already probes the edge — asks about redirects. **A cache policy is invisible to every one of them.** So is a blend mode, which is the other thing that went wrong today; that one has no mechanical answer and is written down instead.

`tools/check-cache.mjs` asks one question: **can a reader be served new markup with an old asset?** Four checks offline — an asset outliving the pages that fetch it, an asset nobody has ruled on, `must-revalidate` paired with a `stale-` directive that RFC 9111 makes it cancel, and a rule left behind by a rename — and with `--live` it asks the site, which is the only thing that actually knows.

**It does not flatten everything to zero, and a version that did would have been switched off within a week.** The rule is the one this register already stated: staleness is safe only where the stale copy cannot disagree with the fresh HTML. A stylesheet knows the class names and can disagree. A derived index can disagree with the page it cites. *A font cannot* — it has no knowledge of structure, and a year of caching on the faces is correct. So the plates keep their thirty days and the faces their year.

**Which assets are coupled is declared and never inferred**, for the reason an entry’s `data-sheet` is declared: the inference is available, plausible and wrong. Nothing in a file’s bytes or its extension says whether its content knows about markup — `queering.js` and `fonts/newsreader-latin.woff2` are both static files fetched by every page, and only one of them can contradict a class that shipped this morning. Two lists, each entry carrying its reason, and the gate fails on an asset in neither.

**It reads our own scripts, because an HTML scan would have missed the file that prompted it.** `search-index.json` is reached by a `fetch` inside `queering-search.js` and appears in no attribute on any page. Proved rather than assumed: with the index put back to ten minutes the gate names it, and that finding is reachable only through the script.

**All five detectors were made to fail before the gate was believed**, and the first attempt at proving the main one was a false pass — the edit meant to loosen the stylesheet had loosened the catch-all rule with it, so the pages moved too and there was genuinely no skew. The test was wrong, not the gate, and a gate whose green run has never been earned is worth nothing. Two findings were then regrouped: one wrong line covering sixty-five plates reported sixty-five times, and one wrong stylesheet policy reported once per page. **A defect described fourteen times hides the next one.**

CabinetThe finding aid does not index the stamp, which is the masthead decision arriving one component further down

Indexed, eight stamps put eight near-identical records **carrying the site’s own name** into the aid — “Queering Earth Sheet No. 4 Accessioned 8 Sep 2026” — which is most of what a search for “Queering Earth” would then return. That is precisely why `.qe-masthead` is already skipped, and the reasoning transfers without amendment.

**Nothing becomes unfindable.** The provenance line beside each stamp says “Mounted 8 September 2026” in ordinary prose and is indexed; every sheet number is written out across this register’s own entries. A stamp is the sheet restating its accession in the object’s own form, not a new fact to find. It stays in the Markdown sibling, where there is no ranking for it to crowd — an agent reading `/on-being-ill.md` gets the transcription the way a herbarium record would carry it.

2026 · 9 September

## A cabinet made almost entirely of other people’s sentences grew a search field, which is a machine for trimming other people’s sentences, and most of the work was teaching it when to refuse

**A conventional search snippet is this site’s characteristic failure, industrialised.** Twenty words either side of the match, an ellipsis at each end, no maker and no citation — pointed at a page of prose that is a perfectly good convention, and pointed at eighty-two mounted quotations it manufactures exactly the artefact `ATTRIBUTIONS.md` exists to prevent, once per result. The whole feature is built around refusing to do that, and everything below follows from it.

MountedA finding aid that will show you a whole quotation or none of it

**Quoted text is indexed apart from ours, and the two are treated differently on purpose.** A `blockquote` becomes one record carrying its `cite` and its caption, and a result that matches inside one renders the quotation entire with its maker attached — never a window onto it. Our own commentary *is* cropped, because it is ours and the rest of it is one click away. Where one of our sentences has a short quotation set inside it, the crop widens rather than cut in: the generator records the character range of all 190 of them, and the window grows until nothing is half-covered.

**Those ranges are proved rather than trusted, and the first version of them was wrong.** Offsets were recorded while the prose was being built and the prose was tidied afterwards, so every fence sat between four and fifteen characters downstream of the quotation it was supposed to protect — a guard reporting success while pointing at the wrong words, which is worse than no guard. The prose is now canonical as it is written and nothing may rewrite it later, and the generator slices the finished text at each recorded offset and throws unless it gets back exactly the characters it wrote. That check was made to fail before it was believed: offsets nudged by three characters, `changelog.html` reported by name, exit code 1.

**The register is filed second, and the register is why.** At 25,359 words it is more than a quarter of the site, so ranked flat it would bury the sheets on any search naming a writer. Its entries come under their own heading below the sheets, wearing the kind chip they already wear. The same page’s own finding — that an accession headline is a sentence by design and averages 148 characters — is why the new sheet points at the register rather than reprinting its eighteen headlines.

**An attribution we have retracted is not searchable.** Plain text has no vocabulary for *this is the reading we got wrong*, so an indexed `del` would surface a corrected attribution as though it were the live one — the same flattening that keeps `del` and `ins` as HTML in the Markdown siblings. Checked rather than assumed: the site’s one struck attribution is “PROSPERO”, and [the Miranda sheet](https://queering.earth/the-tempest) says Prospero thirteen times in prose besides, so nothing became unfindable. The correction itself is findable here, in ordinary words, which is where it should be read.

**The sheet carries the whole cabinet as ordinary HTML**, page by page and section by section, generated into it between two markers the way the typefaces are written into the stylesheet. That is what a reader without JavaScript gets, and what the mirror indexes: [the finding aid](https://queering.earth/search) is the site’s one client-rendered page, and a landmark holding an empty results div would have said nothing to either. Nobody types that list, so no heading in it can drift from the heading it names.

CabinetThe finding aid was nine thousand words down, and the control that fixes that is a drawing of a pocket lens

**Search shipped reachable only from the footer**, which on [Sheet No. 6](https://queering.earth/wild-nights) is nine thousand words below the fold — and most arrivals here are not by way of the plate. A shared link or a search result drops a reader straight onto a sheet. So it sits in the control cluster at the top of all fourteen pages now, which is also where it belongs by argument rather than by convenience: **Search, Cabinet and Plain view are three ways of looking**, and that cluster is the instrument tray. It is outside the landmark, so nothing about it reaches the Markdown, the search index or the mirror — verified by regenerating and getting zero changed files.

**The first proposal was to hide it in the header illustration**, as a magnifier resting on a flower, and it was measured rather than argued about. An `a` inside SVG is a real link and is keyboard-focusable — that part works. On a 375px phone the masthead art renders at 335px for a 470-unit viewBox, so **one viewBox unit is 0.713 css pixels**: a flower is drawn at 29 units and lands at 21px, and a link wrapped round one measured **12×12**. Reaching 44px would need a 62-unit invisible disc — larger than the biggest element in the whole drawing and 37% of its height, swallowing the blooms either side. Two further faults would have followed: the stems are `fill: none` and so are not hit-tested at all, and a keyboard user would land on an unlabelled shape in the middle of a picture, which is the same objection this cabinet already makes to hover-gated section marks.

**The loupe survived the argument, at a size where it can be seen.** A botanist’s folding pocket lens, drawn at 22px beside the word. Sixteen candidates were rendered between 16 and 90px and looked at, which is the lesson `favicon.svg` already paid for twice, and the drawing was wrong twice before it was right — both times in a way only looking could catch.

**Below about 20px two overlapping outlines go muddy**, so each part is filled with the paper and occludes what is behind it rather than crossing it. That fixed the mud and left a worse fault, which **Ryan spotted and the person drawing it had not**: “the two parts don’t look hinged together.” They were a teardrop case with a plain ring beside it and nothing reaching up to the rivet — two shapes that happened to touch. **Both parts are teardrops with their apex at the pin now**, rotated apart about that single point, which is what the object actually does. The last correction was that two equal lobes read as a wishbone rather than an instrument: the case is the fatter of the two and the lens ring smaller, as they are in the hand. **The word carries the meaning regardless**, so the drawing only has to be handsome and unmistakably a thing a botanist would have in a pocket.

**And the ground control was 53×25.** Found while measuring the other thing. WCAG 2.5.5 asks 44×44 and 2.5.8 asks 24×24, both of the *interactive* area rather than the visible mark — so it was one pixel over the floor and far under the number this site holds itself to on contrast everywhere else. Enlarging the ink would have made the quieter control loud, which its own note in the stylesheet asks not to happen, so the hit area is grown behind all three instead. Measured after: Search 72×44, Cabinet 53×44, Plain view 102×44, no two overlapping, each receiving its own tap, and the skip link still winning on top where it crosses them.

Label correctedThe privacy policy said there was nowhere on this site to type anything, and then there was

[The policy](https://queering.earth/privacy) is a binding statement of practice, which is why `check-metadata.mjs` enforces the third-party claim in it rather than trusting anybody’s memory. It also carried a sentence no gate can see: “There is nowhere on this site to type anything, so there is nothing you could submit.” True when it was written on 9 September and false a few hours later, in the same afternoon, by us.

**So the field was designed around the sentence rather than the sentence rewritten around the field.** The searching happens in the reader’s browser against a file it has already fetched from this domain; there is no search server and no third party, and the policy now has a section of its own saying so. Nothing is remembered between visits, and the two view preferences remain the only two things this site stores.

**The query is in the fragment, not a query string, and that is the part worth keeping.** The ordinary way to make a search shareable is `?q=` — which a browser sends, so every term anybody typed would land in the hosting log the policy describes two sections earlier. On a site about queerness, illness and naming yourself, that log would be the most revealing thing here by a wide margin. Browsers never send the part after the `#`, so `/search#q=lavender` is shareable, bookmarkable, and reaches nobody. The form is also hidden until its script runs, because a form without its script would submit to this address *with* a query string and undo the whole decision.

CabinetThe gold stayed on the mend, and the mark that says “found” went onto a rule

The first draft highlighted a match the way everything highlights a match: a wash of marigold behind the word. **It failed twice, and each failure is one of this cabinet’s own rules arriving in a new component.**

**It failed the drawer, by measurement.** Marigold at 0.30 over `--qe-paper` composites to 11.2:1 against the ink and passes comfortably. The same wash over `--qe-cab-paper` composites to 6.94:1, and every alpha above it is worse — because lightening a dark ground moves it *towards* light ink. That is the gating-surface inversion the stylesheet already warns about for cards, met again from the other side. No alpha of marigold clears 7:1 in the cabinet.

**And it failed the seam rule, which is the one that mattered.** `--qe-marigold` is spent on mends: a re-determination, a restored attribution, the provenance line of a corrected sheet. A search hit is not a repair, and a gold mark on a page nobody corrected is decoration asserting a fact — the failure that makes the real mends unfindable. So the mark is a **rule under the word and nothing behind it**, in verdigris, which nothing else here has claimed. The colour goes on the rule and never on the glyph, and the ink keeps 14.3:1 and 12.8:1 untouched in both grounds with no compositing left to measure.

**The new capability is not in `queering.js`.** That file may derive navigation from the DOM and may never create words, and a result is a sentence from another page put onto this one, however carefully. Widening the boundary to fit would have cost the boundary — so the search code lives in its own file loaded by the one page that needs it, and a reader of a sheet downloads neither it nor the 357 KB index. It still writes no label of its own: every word a searcher sees is authored in `search.html` and cloned, the way the index by sheet clones an entry’s existing chip.

**Two entity tables became one, and one page order became one.** The new generator needed the same tokenizer, the same comment stripping and the same case-sensitive entity table the Markdown generator has — and that table is the reason: it knows `&THORN;` from `&thorn;` because the sheets quote Old English, and a second copy would be a lookup one tool learns and the other does not. Both now read from `tools/html.mjs`, and the editorial page order that `/llms.txt` and the new manifest both need lives once in `tools/pages.mjs`. The refactor was proved by the freshness gate: it regenerates and compares, so a green run is a byte-identical run.

2026 · 9 September

## The site was measured against somebody else’s specification, and the first thing it found was a defect this cabinet had already named, already fixed one layer up, and never thought to look for underneath

Audited against [The Website Specification](https://specification.website/) — the whole `required` tier, thirty-six items across ten categories, plus all twenty-one `agent-readiness` items at every status. Eight required findings, twenty-two verified passes, five items that genuinely do not apply here, and one that needs field data this site may not have yet two days after going live. The full working is in `AUDIT.md` in [the repository](https://github.com/Stimpunks/Queering-Earth), and it is a findings document rather than a fix list.

**The largest finding was ours twice over, and it is closed below.** Every sheet answers `200` at two addresses — `/on-being-ill` and `/on-being-ill.html`, byte-identical, same `ETag`. That is exactly the shape `\_redirects` describes in its own comments, found on Star Stuff on 15 August and fixed here for the hostnames on 7 September: “byte-identical documents at four URLs, which is a duplicate-content problem and an ambiguity about which address is the real one.” We wrote that down, fixed the hostname layer, and did not check the path layer. The house rule says addresses are extensionless, `check-sitemap.mjs` confirms no `.html` reaches the manifest, and every `rel="canonical"` points the right way — and the `.html` twin serves anyway, because **no file-level guard can see what the edge actually answers.** A guard that probes the served site was the thing this audit said we were missing, and there is one now.

MountedA privacy policy, and the one third-party request it would have had to confess

**The audit was wrong about this site, and writing the policy is what found it out.** The finding recorded “no analytics, no tag manager, no third-party script of any kind” — accurate about *scripts*, and misleading as a claim about privacy. Every page loaded Fraunces and Newsreader from Google’s font CDN, which told Google each reader’s IP address and user agent *before a word was read*. It was the only third-party request the site made, and it is the pattern a Munich court ruled against in 2022. Nobody had put it in a privacy policy because there was no privacy policy to put it in.

**So the flow is gone rather than disclosed.** Both faces are served from this domain now, generated by `tools/make-fonts.mjs`, keeping all three of the subsets Google served and Google’s own `unicode-range` values so that glyph coverage did not change by a single codepoint. That was checked rather than assumed: text metrics measured on the self-hosted build against the still-Google-served live site came back identical to three decimal places — 734.047, 752.711, 1855.906 — so the substitution is exact and the `WONK` axis that is this site’s whole typographic argument survives it.

**The old argument for hot-linking a font CDN died in 2020**, when browsers partitioned the HTTP cache per site to stop exactly this kind of cross-site tracking. A reader never arrived with Google’s copy already cached; every site paid for its own either way. The CDN was buying nothing but the data flow.

[The policy](https://queering.earth/privacy) is short because there is little to describe, and it names the two things that do happen: the two view preferences your own browser keeps and never sends anywhere, and the access log Netlify writes, which we do not use for anything and whose retention we do not control — **said plainly rather than dressed up with a number we cannot enforce.** No cookies, so no consent banner; there is nothing to consent to and a banner would be theatre. And a note on the outbound links, since nearly every sheet is made of citations: the one thing we do about them is `Referrer-Policy: strict-origin-when-cross-origin`, so a site you click through to learns that you came from here and *not* which sheet you had open.

**The claim is enforced, not remembered.** A privacy policy is a binding statement of practice, and “this site makes no third-party requests” is a claim about code that would eventually go stale in somebody’s memory. `check-metadata.mjs` now fails on any attribute that makes a browser fetch from another origin — and **exempts `a href`**, because a link a reader chooses to follow is not a request the page made. On a site built out of citations that distinction is the difference between a gate that works and one that would have to be switched off.

One item on the spec’s required list is **deliberately absent**: a postal address. The policy names the two organisations and points at their own sites and this repository’s issues, which is where corrections already go and where they are answered in public. That gap is written down in `AUDIT.md` as outstanding rather than presented as complete. And the page says on its face that it was not written by a lawyer: it describes what the code does, and it was checked against the code rather than adapted from a template — which is the same standard the sheets are held to.

CabinetThe plates are AVIF now, and the manuscript that cost 312 KB costs 34

Thirteen scans went out as JPEG only, with no `picture` element and no modern format — 2.4 MB of lithographs, every one of them larger than it needed to be. They now ship AVIF and WebP through a fallback chain, and **the numbers are not marginal**: Dickinson’s manuscript leaf drops from 312 KB to 34 at twice the display size and 12 at once, the Hughes from 330 to 100, the Waterhouse from 341 to 150. A reader on a retina screen now fetches AVIF and never touches a JPEG at all.

**The widths are measured rather than guessed, and that is what keeps the ladder short.** A plate is displayed at a *fixed* css width — `.qe-plate` is `23rem` and never reflows wider, `.qe-plate-wide` is the measure at `34rem` — so each scan needs exactly that width and its 2x, and `sizes` needs no guesswork about viewports. Nothing is ever upscaled past the scan: inventing pixels an 1863 lithograph never had would make the plate look worse *and* the file bigger, which is both halves of wrong.

**Quality was looked at, not inferred from a number.** The hard cases here are not the paintings — they are Dickinson’s pen and the engraved caption on Cooke’s fungi plate, because fine line work is what a lossy encoder loses first. Both were cropped at 1:1 against the resized source and compared side by side: indistinguishable, with the blue rules of her writing paper and the words “AGARICUS (LEPIOTA.) SISTRATUS. Fries.” intact. The measurements agreed — 36.9 to 40.7 — but the crops are the reason we believe it.

**The near miss is the part worth keeping.** `tools/serve.mjs` had no `.avif` entry, so the local server was sending the plates as `application/octet-stream` and the browser was quietly sniffing them — which works locally, because there is no `nosniff` there. Production sends `nosniff` on everything, and **a `picture` element does not fall through to its next source when one fails to decode**: the choice is made on the declared type, before the fetch. A wrong content type would have broken every plate on the site with no fallback to catch it. So the variants shipped one commit *ahead* of the markup, purely to confirm that Netlify types them `image/avif` before anything depended on it. It does.

`tools/make-plates.py` is a second Python tool, and **`CLAUDE.md` stopped counting.** Its rule was “the one Python tool here”, and the reason behind that sentence was never the number — it was that something has to rasterise and nothing may need `npm install`. It is a boundary now: Python touches pixels, Node does everything else. `make-images.py` *draws* from the palette; this one *re-encodes* somebody else’s scan, and folding them together would have muddled both. That is the same correction the `queering.js` rule already took, for the same reason.

Five new detectors in `check-metadata.mjs`, all made to fail before being trusted, and one of them is the quiet kind: **a scan whose bytes no longer match the hash it was encoded from.** Replace a plate with a better scan and forget to re-run the tool, and nearly every reader gets AVIF of the *old* scan while the JPEG nobody fetches shows the new one — two versions of a specimen on one sheet, and nothing looking broken. Mount it, card it, log it, file it, route it, **and encode it.**

CabinetThirty days for the plates, five minutes for the stylesheet, and a promise we declined to make

Every response carried the same header, so **2.4 MB of scanned lithographs was revalidated on every visit** — thirteen plates that have not changed since somebody photographed them and never will. They now cache for thirty days. **The half of this that was already right is worth naming:** the spec’s recommendation for HTML is `public, max-age=0, must-revalidate`, which is exactly what Netlify was sending. It is written into `\_headers` now so it is a decision we own rather than a default we inherited.

**The plates get thirty days and not a year, because `immutable` is a promise this site cannot keep.** That directive tells a browser the body can never change, and the spec reserves it for URLs carrying a content hash. Ours carry descriptive names: `annales-lugduno-batavi-1863-tab4-gonystylus-miquelianus.jpg` names one plate in one volume, and tab 4 of the 1863 *Annales* is not going to be re-cut. But *almost certainly never* is not what the word means, and a better scan could overwrite that filename tomorrow. **Asserting a fact we cannot enforce is the same failure as a gold seam on a sheet nobody corrected.** Thirty days is a claim we can keep.

`queering.css` and `queering.js` get **five minutes**, and the number is chosen for the shape of a visit rather than the size of the file. A reader moving through several sheets in one sitting revalidates once instead of once per sheet; a bad stylesheet reaches everyone within five minutes instead of sitting in caches with no way to bust it. **That bound is the point.** This site’s characteristic failure is a palette or print change that breaks pages silently — Star Stuff shipped forty-four of forty-six pages that printed *blank* — so an unbustable stylesheet is a worse exposure here than a slow one.

`stale-while-revalidate` is on the plates and deliberately **not** on those two. The HTML is always fresh, so a stylesheet one visit behind it would render a change that adds a class and its rule together as an unstyled page for that visit. **Staleness is only safe where the stale copy cannot disagree with the fresh HTML.** And `stale-if-error` now covers everything that is not `must-revalidate`, so a Netlify incident leaves the plates showing rather than broken — the two directives are never paired, because RFC 9111 cancels them and the spec calls that out by name.

**Not fingerprinting the two shared assets is a decision and not an omission**, and it is written up in `DECISIONS.md`. The clean answer the spec offers — a year and `immutable` — is available only to a content-hashed URL, which would mean a generator that renames both files and rewrites the reference in twelve pages. Every palette fix would then churn twelve HTML files and make its own diff unreadable, and **this register depends on those diffs being legible.** The prize is thirty-one kilobytes over the wire. It can be reconsidered later without undoing any of this.

CabinetThe site now says out loud, to machines, the permission it had only ever said to people — and puts the citation trail within reach of anything that takes it up

`robots.txt` has always opened with one sentence: “Everything here is meant to be read, quoted, and reused (CC BY-SA 4.0).” **It was a sentence addressed to humans, in a file read by machines.** Every training and retrieval crawler is now named and allowed explicitly, with `Content-Signal: search=yes, ai-input=yes, ai-train=yes`, and every response carries `tdm-reservation: 0`. Nothing about the policy changed; it stopped being an inference. A reservation of `1` beside a CC BY-SA licence would have been a contradiction somebody eventually has to resolve, and probably not in our favour.

**The answer is yes, and the ask is attribution — so the same pass built the trail.** Granting permission to mine a site whose one correctness requirement is credit, without making the credit reachable, would be the generous half of a decision and not the whole of it. So: a Markdown source beside every page, an index at `/llms.txt`, the whole site at `/llms-full.txt`, a feed of this register, JSON-LD on every page, and an Agent Skill at `/.well-known/agent-skills/` whose main subject is how to cite this place and how to tell a checkable fact from a reading.

**Nothing in the Markdown is typed.** `tools/make-markdown.mjs` derives each `.md` from that page’s own `main` landmark — the same landmark the mirror reads, so the copy an agent fetches cannot disagree with the page — and derives the feed from this register’s own accessions. The rule it is built around is the bluntest one in `CLAUDE.md`: two copies of the same words drift, and the accessible one is always the copy that rots. The converter *throws* on a tag it has not been taught rather than dropping it, because a converter that quietly discards an element is that same drift arriving by another door.

**One thing it refuses to flatten.** `<del>` and `<ins>` stay as HTML in the Markdown instead of becoming `~~strikethrough~~` and nothing, because the one pair on this site is `PROSPERO` struck through and *Miranda, First Folio, 1623* written in — a restored attribution, the kintsugi seam. Markdown has no counterpart for `<ins>`, so the pair would have read as “old new” with nothing saying which was which. Losing the difference between what we got wrong and what is true is not a formatting compromise here.

**The JSON-LD is authored and not generated, and this is the reason.** Every sheet’s label already distinguishes the *Maker* — who made the thing being read — from *Read by*, who wrote our reading of it. In the structured data that is `about.author` against `author`, and the two are now stated separately on every sheet: *The Army of the Upright* is by Helen Edgar and Ryan Boren, *about* a work by Virginia Woolf. Collapsing them would tell every agent on the web that we wrote Woolf. `check-metadata.mjs` refuses the conflation outright, which makes it the first gate here that checks an *attribution* rather than a fact about a file. Where a page states no reader, no author is asserted at all.

Two traps paid for, and they were the same trap twice in one afternoon. **A comment that names a tag in angle brackets is indistinguishable from that tag to a regex.** The note in `flower-codes.html` explaining that positioning goes on the outer `g` and the animation on the inner one made the converter refuse the page; then a comment added to every head, explaining the new discovery links, said `main` in brackets and made a `main`-landmark extractor match *inside the comment* and take the head as the page body. The mirror reads that landmark too. Fixed on both sides — comments stripped before parsing, and the brackets taken out of the comments — and written into `CLAUDE.md` so it is not paid for a third time.

CabinetA mistyped address no longer ejects the reader from the herbarium, and fixing it introduced a soft 404 the new gate caught

**The status code was always right.** This was never a soft 404 — a wrong address answered `404` from the day the domain was attached, which is the half of the spec’s error-page requirement that actually matters to a machine. The half it failed was the half a person sees: the body was Netlify’s default, a teal system-font page with no plate, no nav, no ground toggle, and nothing to say the reader had ever been here. `404.html` now carries the masthead, both view controls, the before-first-paint snippet, the footer, and all eight cards, so a character out of place lands somewhere you can carry on from.

The drawing is **an empty mount**: a stem mounted diagonally across the sheet, six leaves thinning as they climb, and nothing at the tip. The herbarium version of a 404 is the sheet whose specimen is not on it. The first attempt was a tall narrow sprig that filled a sixth of its viewBox, which at `width: 100%` scaled into one enormous vertical stroke — a reminder that these drawings are sized by their box and not by their content. `--len` is the measured path length, 496, read off `getTotalLength()` rather than guessed.

**Fixing the page introduced the exact fault the spec item leads with.** `404.html` is a real file, so `/404` and `/404.html` both answered `200` with the error page — a soft 404, at two addresses, created by closing a finding about error pages. `check-addresses.mjs --live` reported both within a minute of the deploy, which is the first time a gate here has caught a regression the same pass that shipped it. Two rewrites in `\_redirects` serve the page with a `404` status instead; the self-reference does not loop, and that was verified rather than assumed.

Two gates objected to the page for reasons that are wrong for an error page, and both now carry **a named exception rather than a silent skip**. `check-sitemap` has `NOT\_CONTENT`, because an error page has no address to list and a listed URL that errors is a coverage fault. `check-addresses` has `NOT\_ADDRESSED`, and is *stricter* about the page than the rule it excuses it from: it asserts the file exists at all, that a nonexistent address serves *our* page and not Netlify’s, and that neither `/404` nor `/404.html` answers anything but `404`. Both are allow-lists, so a third entry is a decision somebody makes and reviews.

Three omissions, each argued beside itself in the file rather than here. **No `rel="canonical"`**, because the page is served at every unmatched address and a canonical would tell a crawler that every wrong URL on the site is one real page. **`noindex`**, because the page is thin by design and the spec asks for an explicit policy rather than an implicit one. **No social card**, because a new *sheet* needs one and this is furniture that should never be shared on purpose — a broken link that unfurls as a bare link is telling the truth. No provenance line and no contents list either, which is how `/` and `/design` already behave: furniture is not a sheet.

CabinetOne address per sheet at last, and a fourth gate that asks the site instead of the files

**Netlify shadows a redirect with a real file, and `on-being-ill.html` is a real file.** That is the whole mechanism, and it is why writing the rule down four times over did not enforce it: the house style says addresses are extensionless, `check-sitemap.mjs` reported “locs still carrying .html — none”, every `rel="canonical"` pointed the right way, and `check-markup.mjs` had nothing to say. All four were correct. **None of them can see what the edge answers.** `\_redirects` now carries a forced `301!` for each of the ten sheets and for `/index.html`, enumerated rather than globbed so that a sheet without a rule is reportable by name.

**The site was already redirecting the misspelled extension and serving the correct one.** Netlify got every near miss on its own — `/on-being-ill/` with the trailing slash and `/on-being-ill.HTML` in the wrong case both `301` here properly, because neither has a file to hide behind. Only the exact-case extension did. That is how this sat unnoticed from the day the domain was attached: the defect was invisible precisely where the file system agreed with the request.

`tools/check-addresses.mjs` is the fourth gate and **the only one that knows what the edge answers**. Offline by default, like the other three: it reads `\_redirects` against the pages on disk and reports a missing rule, an unforced one, a wrong target, a stale one, an internal address carrying `.html`, and a root-relative asset. With `--live` it goes and asks the site, because **a redirect loop is how this file fails** and a loop cannot be seen offline. All six detectors were made to fail before the gate was believed — an unforced rule reported as “needs 301! — on-being-ill.html is a real file and shadows an unforced rule”, which is the failure that would otherwise look green.

Two smaller inconsistencies went with it, both found by Ryan browsing the files locally rather than by any check. The **two favicons and the touch icon were root-relative** while `queering.css` and `queering.js` were not — one rule applied two ways, and now guarded. And the index at the foot of this page pointed at `/index`, which took a needless hop and was a third address for the plate. **The local-browsing question has no fix and that is the trade:** nothing on disk is named `on-being-ill`, so relative links would not help either. Extensionless addresses need a server, which is what `tools/serve.mjs` is for, and `CLAUDE.md` now says so instead of leaving it to be rediscovered.

CabinetTwo response headers the site had simply never sent, and a policy that carries exactly one directive on purpose

**Nothing here said who was allowed to frame a sheet.** No content policy, no `X-Frame-Options`, not from this repository and not from Netlify’s defaults. The usual argument for that header is session theft, and it does not apply to this site: there is no login, no form, and no authenticated action to hijack. **The reason it matters here is attribution.** Anybody could load a sheet inside their own chrome and present it as theirs — on a site whose one stated correctness requirement is that credit reaches the person it belongs to. `frame-ancestors 'none'` and `DENY` now, together, because the older header is what very old browsers still read.

The transport header was Netlify’s default and a year short: `max-age=31536000` with no `includeSubDomains`. It is two years and the subdomain flag now. The spec asks for the subdomain audit before that flag ships, because one HTTP-only subdomain breaks the moment it does — `www` answers `301` over HTTPS and there is nothing else under the name, so the audit came out clean. **No `preload`**, and that is the current advice rather than an omission: the preload list’s own operator now discourages it, browsers auto-upgrade plain HTTP regardless, and getting a domain off the list takes months.

**The content policy carries `frame-ancestors` and nothing else, and that is the trap worth writing down.** Every page has an inline `<script>` in its head — the snippet that applies both stored view preferences before first paint — and inline style throughout. A `default-src` or `script-src` added here without `'unsafe-inline'` would kill that snippet, and the page would flash the decorated sheet at the reader who turned decoration off, or the daylight sheet at the reader who asked for the cabinet. A hardening pass that looks like an improvement and breaks an accessibility feature is the failure this note exists to prevent. The reasoning is in `\_headers` beside the rule, not only here.

2026 · 9 September

## Fifteen panels wore the specimen’s clothes, twenty-five margin values passed for a hand-kept register, and the site’s gold was being spent on the least interesting thing that happens to a sheet

Prompted by Ryan reading on wabi-sabi in web design, and by a scoring of this site against the seven aesthetic principles that article names. Six of the seven were already here — two of them, *fukinsei* and *datsuzoku*, more thoroughly than the article states them. *Seijaku*, the quiet, was measurably the weakest. And the list circulating as “the seven principles of wabi-sabi” turns out to be Hisamatsu Shin’ichi’s seven characteristics of **Zen art**, relabelled somewhere in transmission — with the third of them, the one about age, glossed in the design advice with **no age left in it**. That is why “patina” recurs in that literature without ever becoming a principle, and this accession is mostly about that hole. The [colophon](https://queering.earth/design) now carries the scoring, and says what we can and cannot vouch for in the thing we are borrowing.

MountedEvery sheet now says when it was mounted and how often it has been corrected since

**The patina was already here and only we could see it.** This register has recorded a re-determination or a corrected label for every one of the seven sheets, and not one sheet said so on its own face. A herbarium sheet carries its annotation slips *on the sheet* — that is what makes an old sheet look old, and it is information rather than ornament.

So the foot of each sheet carries `.qe-provenance`: the mounting date, the count of label corrections and re-determinations since, and a link from each clause to the entry here that did it. It is inside `<main>`, unlike the sibling nav, because a sheet’s own accession history is content about that sheet and the mirror should have it.

**Age you can read beats age you can only see.** It is true, it is checkable, it survives plain view and paper and a screen reader and 400% zoom because it is a sentence, and it accrues on its own as this page grows. Every alternative considered — a noise tile, a grain filter, a torn edge — was a picture of age drawn over the words.

All seven sheets came out mended, so the seam is on all seven and today it distinguishes nothing. That is a fact about this site rather than a fault in the device, and inventing an unmended sheet to make the gold mean something would be the exact failure the rule below forbids. Sheet No. 8 will arrive clean.

Re-determinedThe gold moved off mounting and onto the mend, and the drawing at the top of this page moved with it

**Kintsugi is not that the crack shows.** It is that the most precious material in the workshop is spent on the break. Read that way, this register had its taxonomy backwards: `--qe-marigold`, the site’s gold, marked **Mounted** — the routine intake — and the corrections got cooler colours.

Two tokens swapped. **Mounted** takes `--qe-lichen`, because mounting a sheet is the ordinary event. **Re-determined** takes `--qe-marigold`, because a re-determination is the largest correction a register records: the specimen turned out to be a different thing. **Label corrected** keeps `--qe-coral`, the smaller mend. On a site that publishes a ledger of its own mistakes, spending the gold on *we got this wrong and fixed it* is an argument rather than a decoration.

The vine at the top of this page is the legend — four blooms in the four kinds’ colours, in the order the legend gives them — so its second and third flowers changed too. A legend that no longer matches the thing it explains is worse than no legend.

The unclassed default for an entry and a chip is now `--qe-rule` and not an accent, so a mistyped class reads as plain instead of quietly passing for one of the four. `--qe-verdigris` leaves the register and keeps its other jobs: the green carnation, and the second butterfly.

CabinetThree surfaces, because fifteen components were sharing one and a reader could only rank them by reading the label

`background: var(--qe-card)` appeared fifteen times in the stylesheet, thirteen of them with the same `1px` rule and the same `2px` radius. So the specimen, the mounting label, our own closing commentary and a housekeeping note were **the same object to the eye**. That is a defect in visual hierarchy and not a matter of taste: a reader cannot tell somebody else’s words from ours by looking, only by reading the label.

Three surfaces now, and a new panel takes the one that says what it is. **Bare** — space only — for our own commentary, which is the default. **Ruled** — `--qe-card` in a hairline box — for an object mounted here. **Ruled off** — hairlines above and below, no fill — for the ledger’s own housekeeping. `.qe-restaged` went bare, `.qe-untidy` and `.qe-register-note` went ruled off, and *ruled* now means something.

**The third tier is rules and not a tint, and that is a measurement.** A recessed `--qe-paper-deep` panel was tried first. In daylight it drops `--qe-moss` to 6.90:1 and `--qe-rust` to 6.21:1 — both under the house 7:1 and both over WCAG AA, so `check-contrast.mjs`, which gates at AA, **would have passed it silently**. That is the gap this file has had logged as open since yesterday, arriving as a real near-miss rather than a hypothetical.

Label correctedDropping a fill from two panels took their list markers down to 3.89:1, and the fix was the rule this stylesheet already states everywhere else

Moving `.qe-untidy` off the card ground moved its bullets from 4.17:1 to **3.89:1**. A bullet nobody can find is a list without a list in it. Checking the neighbours turned up the larger version of the same thing: the register’s own entry bullets were drawn in each kind’s accent, which measures **2.15:1 for lichen** and 2.40:1 for marigold on paper.

Both fixed by the rule this stylesheet states in five other places: **the colour goes on the rule and never on the glyph.** The markers took `--qe-moss`, a text token at 7.80:1, and the accent stayed where it already was — the entry’s left rule and the chip’s underline. `.qe-untidy` gained a coral dashed rule in exchange, at 3.89:1, which clears the 3:1 a graphical object is held to.

Neither of these was a regression the guard could report: a `::marker` is not an element with text, so nothing measures it. Found by measuring by hand, which is the only thing that has ever found this class of fault here.

CabinetSpace is a scale now, because twenty-five unrelated margin values do not read as a hand-kept register — they read as noise

The sheet used twenty-five distinct margin values: 2, 2.5, 1.5, 0.7, 2.75, 3, 1.75, 2.25, 2.4, 2.2rem and more. **Asymmetry only reads as asymmetry against a norm.** This site’s whole typographic argument is deviation — the wonk axis, the leaning slips, the four corner sprigs each drawn for its own corner — and twenty-five arbitrary gaps flatten the deviations that were actually authored.

One line of body text is `1.19rem × 1.65 = 1.96rem`, and `--qe-space-\*` is quarter-lines of it. The page was already nearly on that scale by ear: the three commonest values were 2rem, 2.5rem and 1.5rem, and quantizing moved most gaps by one to three pixels. The scale governs the space *between* blocks; inside a block the hand is still allowed. Paragraph spacing went from 1.35rem to 1.47rem, which is the one deliberate loosening.

Three corner profiles as well, spread so that no two panels a reader sees together are cornered alike: **a sheet handled a hundred times does not have four identical corners**, and thirteen components carried the same radius on all four of theirs. It is a radius, so it costs nothing in contrast and nothing on paper. That is *koko* for the price of a token.

CabinetThe foxing was pinned to the window while the paper moved under it, and all nine sheets were stained identically

The paper wash was `position: fixed`, so the stains held still as the sheet scrolled past them, which is the one thing a stain does not do. It is `absolute` now, against a `position: relative` body, so the foxing belongs to the sheet and travels with it.

The four stain positions were also hardcoded, so every sheet on the site was foxed in exactly the same four places. **Nature does not repeat its foxing.** They are `--qe-fox-\*` tokens now, stated per page in the markup — the same idiom as `--rot` on a slip, because a stain is a fact about one piece of paper and not about the site. The front page keeps the original four as the fallback.

**Still not texture, and that is now a written rule.** The research this came from recommends a noise tile and a `blur(0.5px) contrast(1.1)` filter. Both are refused. A noise tile varies effective background luminance per pixel, and `check-contrast.mjs` composites against computed colour pairs — **it cannot see a texture at all**, so a grain under body text would pass every guard here and fail real readers. Foxing goes on the ground, the tape, the sprigs and the rules, and never under a letter.

MountedLong sheets carry a contents list, every section has an address you can share, and the register has the addresses but not the list

**On this sheet** — the within-page twin of *Elsewhere on the plate* — now sits after the lede on the five longest sheets and on the colophon. Every `<h2>` on those pages, and every accession on this one, carries a small `§` beside it that is a link to itself, so a reader can send somebody straight to [a word missing from the copy you will find](https://queering.earth/wild-nights#missing-word) or to [the wabi-sabi section](https://queering.earth/design#wabi-sabi).

**The list is derived and the addresses are authored, and the split is the whole design.** A hand-kept contents list is a second copy of every heading, and the oldest rule here is that two copies drift and the accessible one rots — so the list is built from the page’s own headings and never typed. But an id derived the same way would die the moment anybody reworded a heading, taking every link a reader had shared with it. So the ids are short, topical, and *written in the markup* — `#eden`, `#the-colon`, `#quetelet` — the way a slip’s angle is written there. **The permanent thing is authored, the label is computed, and nothing is written twice.**

In the body, not a rail: the empty margins either side of the measure are the negative space the entry above spent its whole argument clearing. Not sticky, which also keeps it out of the way at 400% zoom. Not an accordion, and no highlight that follows the scroll — **no new motion**, the same rule this register already holds. `:target` marks where a reader *landed* instead, drawn in the gutter so arriving at a heading does not shift the words sideways.

The section mark is **always visible rather than revealed on hover**, because a hover affordance is one handed to mouse users and to nobody else.

CabinetEvery section on the site has an address now, and the home page still has no contents list, because its contents list is the plate

Asked directly: should the front page have a contents list? **No, and the reason is that it already has one.** The plate of eight numbered cards *is* this site’s table of contents, so a list of the page’s own prose sections stacked above it would be two navigational lists competing on one page — and the one a reader arriving at the front door wants is the plate. It is also the shortest page here, at 1,362 words.

**But the two things shipped together and they are separate decisions.** Addresses are cheap: an id and a small section mark, no threshold, no furniture. A contents list is furniture and has to earn its place. Conflating them left four pages — the plate, and Sheets No. 1, 2 and 7 — with no way to link to any section on them.

The evidence was sitting on this page. **Three entries above italicise the names of front-page sections and could not link to one of them** — [*What grows here*](https://queering.earth/#what-grows-here), [*The type plays, and the words do not move*](https://queering.earth/#the-type-plays), [*Queering is a verb*](https://queering.earth/#queering-is-a-verb) — while linking happily to a section of the colophon two entries away. The attribution ledger named three more. All six are links now.

Twenty-five addresses added across the four pages. Nothing gained a contents list, and `/#what-grows-here` is now a direct address for the plate of sheets, which is a useful thing to be able to hand somebody.

Mounted[The Preferred Flower of Life](https://queering.earth/monotropa-uniflora) — Sheet No. 8, and the first that is a wall rather than a reading

*Monotropa uniflora*, the ghost pipe: a plant carrying no chlorophyll that feeds entirely through fungal networks, named by Linnaeus in 1753 for the single turn of its stem, pressed into Emily Dickinson’s herbarium, and called by her “the preferred flower of life”. Two hundred and thirty-eight years after the naming, Dinah Murray and Jeanette Buirski reached for the same Greek root to describe a mind whose attention runs in one deep channel. Following [Helen Edgar’s essay](https://morerealms.com/monotropa-uniflora-and-monotropism/), written for the fifth anniversary of Murray’s death.

**A wall is a third kind of sheet, and the difference is not decoration.** A reading has an order and arrives somewhere; a wall has a *chorus*, and its argument is made by accumulation. Seven people across 273 years stood in front of one specimen and each saw something the others could not. A herbarium sheet that has been in a cabinet long enough looks exactly like that: a specimen, and a stack of determination slips in different hands, every one signed.

Which is also the one thing that did not transfer from the zine walls this was modelled on. **Those work by unattributed declaration** — a wall of statements, deliberately unsourced, which is right for a manifesto and impossible here, where the citation is the product. So the wall is either our own words or labelled slips, and never a blur of the two.

**The drawing is the first on this site with no leaf in it**, and the absence is the argument: every other panel here is green because every other specimen photosynthesises. Two drafts were discarded against the drawing rules — one stood the pipes on a single thread, which is the baseline rule 1 forbids, and one drew them upright, which loses the *one turn* the genus is named for.

**The biology is deliberately absent, and that is the shelf division doing real work.** Myco-heterotrophy has numbers attached and belongs to [Star Stuff](https://starstuff.earth/symbioses-field-guide.html), which risks a wrong fact. This sheet has the naming, the letter, the poem, the editor, and the word. The mounting label carries a *Biology* row saying where it went — the first time the two sites have split one subject on purpose.

Label correctedA much-quoted Mary Oliver sentence is in the wrong book and is missing the half that answers it, and it took owning both books to find out

The essay this sheet follows opens on “Attention without feeling, is only a report.” credited to Mary Oliver’s *Upstream* (2016). **It is not in *Upstream*.** Ryan owns the book and looked. It is in *Our World* (2007), nine years earlier, and the passage runs: “Attention without feeling, I began to learn, is only a report. An openness — an empathy — was necessary if the attention was to matter.”

Two things happened to it. Three words went from the middle — *I began to learn* — which turns something Oliver came to over time into an aphorism she hands down. And **the entire second sentence went**, which is the one that says what attention needs instead. **The version in circulation states the problem and drops the answer.**

**It survived because it was uncheckable.** A reader who wanted to verify it would have opened *Upstream*, not found it, and assumed they had missed it. Finding this needed somebody who owned both books and was willing to conclude the citation was wrong rather than that they had looked badly.

Our sheet quotes both sentences, cites *Our World*, and says on its face that this is not where the line is usually credited. **Not corrected on More Realms from here** — that is Helen’s page and hers to change; the paths are in the decision log.

Re-determinedWoolf’s “resonant and porous” is exactly right, and it is Woolf guessing at what Coleridge meant

An open question since 8 September, closed because a sheet finally reused the line. Ryan put *A Room of One’s Own* in the library and it was read there: chapter VI, pp. 148–149. **The wording is Woolf’s, the ellipsis is honest, and nothing had been tightened** — the only fault was a primary cited to a secondary, and our sheet cites the book.

One nuance came out of reading it in place. The sentence is “He meant, perhaps, that the androgynous mind is resonant and porous…”, and two sentences earlier the *he* is named: “Coleridge certainly did not mean, when he said that a great mind is androgynous…”. So the line is **Woolf speculating about another critic, hedged twice**. Quoting it from *the androgynous mind* onward promotes a guess to a definition. Small, and exactly the shape this site watches for, so the sheet quotes from *He meant, perhaps* and names Coleridge in the caption.

The Dickinson letter came back with three characters of drift as well — a dash for a full stop, a lowercased *Child*, an inserted *the*. Nobody did it on purpose and it is what happens to a quotation copied from a copy. It is recorded because this sheet’s own subject is that Dickinson’s punctuation and capitals were regularised by her first editors, and here is the same drift, on the same writer, in 2026.

Label correctedA 2005 paper’s byline deadnames its third author, and a citation generated from the record repeats it

Monotropism was set out in Murray, Lesser and Lawson’s 2005 paper in *Autism*. **Its third author is Wenn Lawson**, a trans man who has published under Wenn for years. The journal record, Crossref, and every citation manager that reads them still carry the 2005 byline, so **a citation generated automatically deadnames him.**

Reproducing a publisher’s record over a living author’s own name is not neutral accuracy — it is a database outranking a person, and on a site about queering normativity it would be a poor place to let that pass without comment. The sheet cites him as Wenn Lawson, states what the byline says so the paper stays findable, and explains why in a sentence. Helen’s essay already does this correctly and is where we saw it done.

CabinetThe card generator reported a hand-kept list of files rather than the files it wrote, and the new card went missing from its own summary

The social card for Sheet No. 8 generated correctly and **did not appear in the run’s summary**, because that summary iterated a hardcoded tuple of filenames nobody had added a line to. Noticed by eye.

Harmless in that direction and not in the other: the same list would print a complete-looking report while a card had **silently failed to generate**. The summary now enumerates what was actually written and prints a count, so a new card reports itself.

The card also needed its own drawing. The stock sprig puts leaves in lichen and three coloured heads on a stem, which is right for every other card here and **exactly wrong for the one plant defined by having neither**. A card showing green leaves on the ghost pipe is the card arguing with the page.

MountedThe register is indexed by sheet at the foot of the page, because a contents list is front matter and an index is back matter

This ledger is written **by accession**, which is by date, because a sheet, its corrections and the CSS it needed are one dated event. That is the right unit to *write* in and the wrong one to *look something up* in — a reader here is usually asking what happened to one sheet, and its entries are scattered across sixteen dates. [Index by sheet](#qe-index-h) is the same entries filed the other way.

**The distinction the attempt above missed is that a contents list is front matter and an index is back matter.** That is the whole reason one measured badly here and the other does not: front matter delays every reader, and back matter delays none. The index sits at the foot of the page, where a bound volume has always kept one, and a single line up by the legend points down at it. The first accession is back to where it was.

**Which sheet an entry concerns is stated in the markup, never guessed from its links.** Deriving it would have been quick and wrong: the Dickinson accession links three sheets and concerns one, so incidental cross-references would have filed corrections under sheets they have nothing to do with. On a site whose whole risk is a wrong attribution, **an index that silently misfiles a correction is the worst thing we could ship**. So all seventy-three entries were read one at a time and each declares its own sheet. Two of them genuinely belong to two — the byline rule changed Sheet No. 4 and gave No. 1 a second reader in one stroke — so seventy-three entries file as seventy-five lines.

**The groups are ours and only the filing is the machine’s.** Every heading, sheet number and the order they appear in are written into this page, because they are editorial words. The script clones each entry’s existing name and its existing kind chip and puts them under the group the entry declares — nothing composed, nothing summarised, nothing truncated, so **the index cannot call an entry something the entry does not call itself**. The group headings were checked against each sheet’s own title and against the plate’s cards rather than typed from memory.

CabinetA fourth guard, because a mistyped sheet name drops an entry out of the index and leaves the page reading perfectly

The failure this needed protecting from is the silent kind. A typo in an entry’s declared sheet does not throw and does not show: the entry matches no group, **vanishes out of the index**, and the register above it still reads exactly right. On a page whose subject is corrections, an index that quietly loses one is the fault least likely to be noticed and worst to have.

`check-markup.mjs` now validates every declared sheet against the pages that actually exist, reports an empty declaration, and reports a group that nothing files into — which catches the same typo from the other end, since a misspelling breaks the match in both directions at once.

**Made to fail before it was believed**, which is now four for four on this site’s guards: a typo’d entry, an emptied declaration and a stale group were each introduced on purpose and each reported with a line number and a non-zero exit, then reverted and the clean tree re-run.

One layout attempt was thrown away on measurement, too. The index lines were first a wrapping flex row with the kind chip beside the name. A chip plus an entry name is wider than the measure almost every time, so **every single line put its chip alone on a row above itself** and the index came to 6,726px for no extra information. Ordinary inline flow — the chip opening the line, the name wrapping beneath it — is 5,502px, and is what an index entry has looked like since long before any of this.

CabinetThe register looked like the strongest case for a contents list and measured as the worst one, so it was built, measured, and taken out again

This is the longest page on the site — sixteen thousand words — so it got the contents list first. Then it was measured. **An accession headline here is a sentence**, which is this register’s own design decision written down where it was made, so the labels average **148 characters** against 22 to 34 on a sheet. The block came out **1,293px** against 319 to 510 everywhere else, and it pushed the first entry three and a half screens down the page.

Both ways to shrink it were closed. **Truncating a label is this site’s characteristic failure applied to itself.** Writing a short label beside each headline is the second copy that drifts. So the register keeps its section marks and its sixteen addresses, and has no contents list. **Removed after measuring, rather than kept because it had been built.**

**What this page actually wants is an index by sheet, and that is left open rather than approximated.** A reader here is usually asking what happened to one sheet, and the accessions are grouped by date. Gathering a sheet’s entries across accessions is a real editorial decision, not a layout one, and the measurement above is precisely the argument against reaching for the nearest component instead.

MountedThe colophon scores this site against the seven principles, including the two it fails, and names what it cannot vouch for in them

A new section on [the colophon](https://queering.earth/design): what wabi-sabi is, which of the seven principles this sheet actually manages, and which two it was weak on. **Six of the seven were here by accident** — a herbarium sheet is already foxed paper, a faded specimen, a hand-lettered label and a mount that has been handled — so the honest framing is that we found the vocabulary after the fact and it told us which one we had been getting wrong.

The two failures are named rather than dressed up. *Seijaku*, the quiet, was **a measurable defect and not a mood**: fifteen components sharing one surface and twenty-five unrelated margin values. *Koko*, the weathered one, we had **nothing for at all** — every candidate was a picture of age painted over the words.

And a panel of what we cannot vouch for in the borrowed thing itself, because a section that scores a site against seven principles owes the reader the provenance of the seven. **They are not wabi-sabi’s.** They are Hisamatsu Shin’ichi’s seven characteristics of *Zen art*, from a 1971 book **we have not read**, reaching us through a peer-reviewed paper that cites it. The page says all of that on its face.

Label correctedThis entry claimed a source swapped one principle for another, which was written from memory and is not established

The note at the head of this accession, and the decision log with it, stated flatly that the design advice *names shibui in the slot where Hisamatsu names koko* — and that the swap is what dropped the aging out of the principle. **That is not established.** At least one rendering of Hisamatsu’s seven gives *shibui/shibumi* for that characteristic itself, glossed “lofty dryness”, which is the same sense the *koko* renderings carry. Which term is Hisamatsu’s cannot be settled without the book, and we do not have the book.

**It was written from memory before anything was checked**, and it was caught by the sentence immediately after it, which said to verify against Hisamatsu before any of this reached public copy. Writing the colophon section was the moment that check came due.

What survives is the part that is checkable against two texts a reader can open: whatever the term should be, **the design advice glosses its third principle with no age in it**. That needs no ruling on anybody’s vocabulary. Corrected here, in the decision log, and in the attribution ledger — where the citation for the paper was re-pinned from **Crossref’s own record** rather than a search summary, for the reason the Wassell entry on this page already records.

Label correctedOur own foundation published the line this site’s gold seam is built on, four months before we reinvented a near copy of it

The kintsugi device described above — the gold spent on a correction rather than on a mounting — was designed this morning from a general reading of kintsugi, and every note, commit message and entry described it in our own words: *the gold goes on the mend*. A library search then turned up [Stimpunks Foundation’s own page on kintsugi](https://stimpunks.org/2026/05/06/infodumplings-kintsugi-and-finding-the-gold-within-you/), published 6 May 2026, saying “The cracks are where the gold goes.”

Nobody took anything from anybody. But **a house phrase already existed and we had reinvented a near copy of it**, and the version about to ship read as though the idea started in a stylesheet. Over-crediting others and under-claiming for ourselves is the safe direction, and that applies to our own colleagues at least as much as to strangers. The colophon now cites theirs and calls ours the small version.

**Their page also supplied the argument the section was missing.** “Masking is the opposite of Kintsugi.” That sentence is what makes this device belong on a site about queering normativity rather than being borrowed warmth: a site about the cost of passing for typical cannot then file its own corrections where only the maintainers can read them. **A hidden correction is a masked one** — which is the argument for this register, arriving from Stimpunks rather than from a design blog. The sentence is theirs; the application to an accession register is ours; the page says which is which.

CabinetThe guard now measures the number this house publishes, and it was raised on the day the gap was nearly spent

The style guide asks for **7:1**. For this site’s whole life `check-contrast.mjs` gated at **4.5:1** — WCAG AA — with an entry in the decision log saying so and a line in the working notes warning, in as many words, not to cite the script as evidence of the house standard. **A stated principle nobody measures is a wish.**

The wish got called in this morning. The recessed panel described two entries above drops moss to **6.90:1** and rust to **6.21:1** in daylight, and **passed the guard clean**, because 6.21 clears AA. It was built, measured by hand, and thrown away — but it would have shipped on a day when nobody thought to measure by hand.

So the gate moved, in **two tiers reported apart**. Under AA reads `FAIL` and means illegible. Between AA and 7:1 reads `UNDER` and means readable, and beneath the number this site publishes. Both exit non-zero; one count would have hidden which kind had just landed, and they are different bugs. `--aa` drops to AA and prints a line saying the house target is not being measured — so that an argument for a particular colour is an argument somebody makes on the record, rather than a two-line edit nobody reviews.

**It cost nothing, which is the argument for doing it today.** All **9,142** text elements on the ten pages clear 7:1 in both grounds and under print emulation, so the gate could be raised without a single colour changing. Raised later it would have arrived tangled with whatever it first caught.

**Made to fail before it was believed**, the same way the cabinet pass was: the recessed panel was put back and reported 6.90 and 6.21 as `UNDER`; a 2.15:1 colour was injected and reported as `FAIL` on the other tier; `--aa` passed the same tree and said why. Exit codes checked on all three. Then reverted.

Two blind spots are now written into the tool’s own header rather than left to be rediscovered. **A `::marker` is not an element with text**, so nothing measures it — that is how the bullets in the entry above sat at 2.15:1. And **a texture is invisible to it entirely**, because it composites computed colour pairs. A pass here is not permission for either.

Label correctedThe wash was made to tile so that no long sheet had clean paper through the middle, and it drew a visible line across the page at every repeat

The first version of the entry above claimed the wash *tiles down long pages at a 150rem period, far enough apart that a reader never meets the repeat*. Ryan met the repeat immediately, on the sheet, and said so: “I can see lines at the color transitions of the background.”

**The cause is arithmetic and not blending.** `transparent 70%` puts a gradient’s edge at 0.7 of its radius, so in a 2400px tile the stain at `8%` reaches 278px *above* the tile’s top edge and the one at `96%` reaches 352px below its bottom. Both were cut off square at the boundary, and a cut-off gradient meets the next copy of itself as a step. No amount of softening fixes a step.

Any fix that kept the tile would have had to constrain every page’s stain positions to a safe band inside it — **a trap laid for whoever writes the next sheet**, in exchange for an even cast on the two pages long enough to want one. So the tile is gone. Four stains over the whole sheet, and **a long sheet is sparsely foxed, which is what a big sheet of foxed paper looks like**. The spots do not multiply to fill it. The claim that a reader would never meet the repeat was the sort of thing this register exists to catch, and it was wrong within the hour.

2026 · 8 September

## The sheet has a second ground, and it is the drawer shut rather than the lamp switched off

A dark ground was refused once, in the entry for Sheet No. 5, on the grounds that this site has one ground and it is paper. That entry stands as a description of what it refused — a generic inverted palette arriving with a draft — and the decision has been amended rather than reversed. The cabinet is a herbarium object: dark warm brown, the drawer a sheet is filed in, and the dark-ground plate whose specimens are printed on near-black so that pale forms read.

CabinetBrown rather than green, and the reason is measurable rather than a preference

**A dark green ground takes the separation out of the colours this site is built from.** Moss, lichen, and verdigris share their hue with it, and every accent measures worse against it than against brown for no gain: moss text at 7.1:1 rather than 7.2, rust at 6.2:1 rather than 7.3. Push the green to a real forest tone and nothing but cream clears 7:1 at all. **A green ground makes green unusable**, which is a plain result and not a matter of taste.

**Brown was already the palette’s ground and nobody had noticed.** The dark-ground botanical print that prompted this is drawn in cream, sage, marigold, and coral on near-black — which is `--qe-ink`, `--qe-lichen`, `--qe-marigold`, and `--qe-coral` as they already stood. The five decorative tokens are therefore carried across unchanged and **deliberately still saturated**. Only ink, moss, and rust are lifted, to 12.8:1, 7.2:1, and 7.3:1. Lifting the decoration to the same target was tried first and turns every flower chalky: **7:1 is a rule for letters**, and the brightness belongs to the text.

It earns the mounted plates as well. The scans on these sheets are cream vellum, and cream vellum on dark brown reads as a plate lying lit on a shelf. On green it reads as a plate pasted onto green.

CabinetA card is lighter than the page in daylight and would be darker than it here, which is a trap and not a taste

**The contrast target has to be measured against the lightest surface any text sits on, and on a dark ground that is not the page.** In daylight `--qe-card` is lighter than `--qe-paper`, so text on a card gains contrast and the page is the worst case. Invert the palette and keep the instinct — a card lifted above the ground — and text on a card *loses* contrast instead. Solving 7:1 against a lifted panel drags rust to `#eab1a3`, a pale pink with no rust left in it.

**So the cabinet’s cards are recessed**, the ground is the lightest surface again, rust stays an ember, and the lift is carried by the hairline the cards already had. It reads better than the lifted version anyway: compartments in a drawer rather than paper stacked on wood.

Three things were not token flips and are now tokens, which is the same lesson the print sheet taught in 2026: the foxed-paper wash (`--qe-wash-a` through `-d`), the shadow a lifted sheet casts (`--qe-shade`, a near-black that did nothing on a near-black ground), and **the pale flesh of a specimen** (`--qe-flesh`). The last was the visible bug: a mushroom’s stipe was filled with `--qe-paper-deep`, which it only ever matched by coincidence, so on the dark ground the stems of the four mushrooms on [Sheet No. 4](https://queering.earth/invention-of-normal) became holes and the caps floated. They are cream now, which is what the dark-ground plate does with them.

CabinetA discreet control, a machine that decides when nobody has, and paper that is daylight whatever either of them says

**The ground is a class on `<html>`, the palette is entirely in `queering.css`, and the words do not know what they are lying on** — the same shape as plain view, and for the same reason. Every hex has one copy: the cabinet values are defined once as `--qe-cab-\*` and the two switch rules carry nothing but aliases of them, so a drifted switch is a missing ground and never a wrong colour.

**Three states, one word.** With no stored choice the machine decides, from CSS alone and with no script involved, so a reader who has never touched the control still gets the ground their machine asked for. The control then names the ground they can *see* rather than a preference they have not expressed, and clicking it writes the other one down; the stored choice wins over the machine in both directions. It is the quieter of the two controls on purpose — plain view changes what the page *is* and keeps the pill, this changes what the page is lying on and gets a word and a hairline. Its label is restored before first paint by the inline snippet in every `<head>`, which now carries both preferences: deferred to `queering.js` it would flash the daylight sheet at somebody who asked for the cabinet.

**Paper is daylight, always.** Both switches are `@media screen`, so the print sheet cannot inherit a ground and a reader in the cabinet who hits Print gets ink on white.

Label correctedTwo claims about this site’s own measurements were describing the daylight sheet only, and one of them was describing a check that does not exist

**The design page said three tokens clear 7:1 “against the paper”, and quoted 14.3:1, 7.8:1, and 7.0:1 without saying what they were against.** True of one ground out of two. The prose now says “against the ground”, those three ratios are labelled *on paper*, and a new section carries the cabinet’s own numbers. The swatch chips needed no change at all: they are drawn with the tokens rather than with copies of them, so they restate themselves in whichever ground you are reading in.

**And the contrast checker gates at WCAG AA, not at 7:1.** `CLAUDE.md` puts the 7:1 target and `tools/check-contrast.mjs` in the same breath, which reads as though the script enforces the house target; it measures every element and fails them at 4.5:1, or 3:1 for large text. The 7:1 figure is held by hand-chosen tokens and by nothing else. That was found by breaking a token on purpose to see the new pass fail, watching it pass at 6.0:1, and going to look at why — which is the argument for the exercise. It is **logged and not fixed**: raising the gate is a separate job with its own list of things it would newly fail, and doing it inside this entry would have buried it.

CabinetThe guard measures both grounds, and it was made to fail before it was believed

`tools/check-contrast.mjs` measured one palette on screen and one on paper. Two grounds are two palettes, so it now runs the screen measurement again under `prefers-color-scheme: dark` — 2,840 more text elements, and the pass that would notice a cabinet card drifting back up above the ground. **The print pass now runs with the dark preference deliberately left set**, so a regression that let the cabinet reach paper lands as black-on-brown in the pass that already gates.

**A new pass that reports without gating is decoration**, and this one nearly was: the failure total it feeds counted screen and print only, so the cabinet column would have printed its numbers and never stopped a ship. Both are in the gate now, and the pass was verified by lifting `--qe-cab-ink` to a value near the ground and watching 1,675 cabinet failures appear against zero on screen and zero in print.

`tools/make-images.py` reads the palette out of `queering.css` with a search for each token name, which returns whichever copy appears first in the file. Two palettes in one stylesheet make that a loaded gun: reordering the sheet would silently turn every social card brown. The lookup is anchored to the `:root` block that holds the daylight values — **a social card is a herbarium sheet, not the drawer it is filed in** — and every generated file is byte-for-byte what it was.

2026 · 8 September

## A first-person account that ends the moment two words fit had nothing under it about what a word that fits is for, and the writers who answer that were gathered on Stimpunks pages that are a finding aid and not a citation

The [Coming to Terms](https://queering.earth/coming-to-terms) sheet carried Ryan Boren’s 2022 essay with every other writer’s words stripped out of it, which left it thin. A treatment on labels is now mounted below the essay: the copia, the smorgasbord, the arrangement of building materials, and the direction of travel that decides whether a word is invention or classification.

MountedSix sections below the essay, on what a label buys and what it charges

**The frame is Ryan’s own:** labels as a copia and a smorgasbord that you mix and match and self-apply. *Copia* is the rhetorician’s word for abundance — you generate the range before you choose — and [Jordynn Jack](https://doi.org/10.1080/07491409.2012.667519) pointed it at gender in 2012. [Sonny Jane Wise](https://www.livedexperienceeducator.com/blog/theneurodiversitysmorgasbord) set the same shape as a plate you fill yourself, and [Florence Ashley](https://doi.org/10.1093/mind/fzac071) supplies the sentence that stops it becoming a free-for-all: people arrange similar building materials differently, and an arrangement is not a lie.

**The hinge is the direction of travel.** [Ira David Socol](https://web.archive.org/web/20210304193914/http://blogs.slj.com/bowllansblog/2009/05/12/using-correct-language-and-people-first-by-ira-david-socol/), writing in 2009, puts it in one line: only when people get to choose their own labels does any of this build anything. A word you reach for and the same word handed to you on a form are not one object in two coats — one is invention, the other is classification, and classification runs one way. [Nick Walker](https://neuroqueer.com/neuroqueer-an-introduction/) built that direction into the grammar, the verb before the adjective, which is the sheet’s conclusion in his words rather than ours: nobody can diagnose you with a practice.

**And the bill is real, which the sheet says at the same length as the case for.** [Helen Edgar](https://autisticrealms.com/inclusion-needs-recognition-not-erasure-a-neurodiversity-affirming-approach/) aims the complaint at the right object — take the word away and the gate is still there, only the key is gone — and refuses to choose between labels as barrier and labels as liberation. The last word goes to [a writer shedding theirs](https://autisticltd.co.uk/2024/03/04/shedding-my-labels/), and to the order of that sentence: the shedding comes first, the privilege named second, and the privilege is having had the words at all.

Label correctedThe mounting label described a sheet that carried one text, and it now carries two

The label read “The essay as published, with the quotations from other writers taken out. Ryan’s words are unchanged.” True of the sheet as it was, and false the moment anything was added under it. The label now names the second text and the month it was appended, and carries a new **Appended** line beside **Written**, so the two dates on the sheet cannot be read as one.

**The seam is marked on the page as well as in the label.** A note between the two texts says where the 2022 essay stops and the 2026 treatment starts. On a sheet whose whole subject is a word that fitted at a particular moment, letting four years of hindsight run on unbroken from the first-person account would have quietly improved the past.

CabinetEvery quotation named to the copy it was read in, and a rule about our own library corrected in the middle of applying it

The material was gathered from three Stimpunks pages, which is where it lives and is not where it can be cited from. **Every quotation was then read in the work it came from** — Wise’s post, Ashley’s published PDF, the Internet Archive’s capture of Socol’s 2009 guest post at an address that no longer resolves, Walker’s own page, Helen’s post, and the shedding post. Three originals keep spellings ours would not: “Each of us are”, “pathologizing” with a z, and “reveling” with one l.

**One line was cut and then put back, and the rule that cut it was the thing at fault.** “Language is not a set menu, it’s a buffet” is a transcription of speech from a video by The Leftist Cooks, taken down by Ryan and published on the glossary. It came out of the first draft because the caption track returns nothing and the wording could not be re-checked. **That is a reason to label a quotation, not to bin it** — a spoken line has no printing to go back to, only somebody’s ear, and the citation names the video, the channel and the date. It is on the sheet with the transcription attributed in the caption.

**So the ledger’s rule about our own library has been narrowed to what it was actually for.** It exists to stop *our own prose* — a gloss, a summary, a paraphrase — being read back later as somebody else’s wording. A direct quotation Ryan transcribed from a paper he read and published with a citation to that paper is not that; it is a first-hand reading with the source named. Papers get rented and access lapses. **Re-reading is an upgrade, not a precondition**, and the citation is the thing that has to be right.

**The gap was named on the sheet, and then it closed.** Jack’s *Gender Copia* is closed access and is held nowhere we could reach; every hit in our own library was one of *our own* pages quoting it, which is five witnesses that are one witness. The section shipped its first draft describing her argument and saying in the same breath that it was describing rather than quoting. **Then Ryan put a scan of the printed article in the library**, and the section was rewritten to quote her: the copia passage from page 3 as a specimen, the array of terms, and the four verbs from the Conclusions.

**And the print pages punctuate her differently from the digital text.** Our glossary carries `masculine=feminine`, `sex=gender`, `male=female`, `nature=culture`, `symbolic=embodied`. The printed pages carry a solidus in every one of those places. **Neither is a mistake and this is not a correction of anybody** — a slash rendering as an equals sign is ordinary publisher typesetting, the title of the same article is *Sex/Gender* in both, and the words are identical throughout. It is the [Woolf trap](https://queering.earth/on-being-ill) in miniature: two real editions, and a quotation that is only right once it is attached to the copy it came from. This sheet quotes the print pages because the print pages are what was read, and the caption says so. **Neither text is to be tidied against the other.**

2026 · 8 September

## The most-quoted sentence about lavender and Abraham Lincoln is word for word what Carl Sandburg wrote, and the man it describes is Joshua Speed

Sheet No. 7 reads violet, pansy, green carnation, and lavender as one process caught at four moments: a description becomes a code, the code is read by the people it was meant to escape, and what is left is a name in somebody else’s mouth. Four public-domain plates, two of which are the wrong object and say so.

Mounted[A Waste Garden, Flowering at Its Will](https://queering.earth/flower-codes) — Sheet No. 7

The set of four is [Sarah Prager’s](https://daily.jstor.org/four-flowering-plants-decidedly-queered/), gathered for JSTOR Daily in January 2020, and the sheet says so in its second section rather than its footnotes. **What is ours is the reading:** that a worn code fails by succeeding. It works until enough people use it, and the number of people who make it useful is the number who make it legible from outside. Then it is not a code, it is a charge — a word a newspaper can print and a court can enter into evidence — and the last move available is to wear it anyway, in the open, until it goes back to being a description.

The title is line 3 of Lord Alfred Douglas’s *Two Loves*, published in *The Chameleon* in December 1894 and read out against Wilde at the Old Bailey four months later. **The poem opens in a garden that already has the violets in it** — “white lilies / A few, and crocuses, and violets / Purple or pale” — which is the sheet’s own connection and not Prager’s. Quoting Alcaeus on Sappho in Wharton’s 1885 rendering, Douglas, the 1906 shorthand reports of the trial, Sandburg’s 1926 first edition, and Prager twice.

**The sheet is as careful about what it does not say.** Wilde’s green carnations at *Lady Windermere’s Fan*, George Chauncey’s pansy craze, the Lavender Scare, and the Lavender Menace action are all named as Prager’s or her sources’, quoted as hers where quoted at all, and not repeated as ours. A note on the page says the gap is deliberate and sends the reader to her.

Re-determinedThe streak of lavender belongs to Joshua Speed, and only the referent has moved

The sentence travels as Sandburg on Lincoln: “A streak of lavender ran through him; he had spots soft as May violets.” Page 265 of the 1926 first volume opens Chapter 54 with it, and the subject of the paragraph is **Joshua Speed**. Sandburg extends the figure to Lincoln in the next sentence but one — different words — and on page 266 gives it to “these two men” together.

**Nothing was fabricated and no word was altered.** The author, the book and the year are right, and Sandburg did say it of Lincoln, so the claim the sentence is usually deployed to support survives the correction whole. Only the *him* slipped, and the *him* is the entire meaning: a sentence about two young men who told each other their secrets in Springfield is a different sentence from a sentence about a president. **This is the failure named in `CLAUDE.md` as this site’s characteristic one, found in the wild rather than in our own drafts.** Prager names Speed in her very next sentence and her book is partly about him; this is compression in a much-retold line, and the sheet says so in as many words rather than scoring a point.

**The corroboration rule fired before an error this time, not after one.** Three Internet Archive copies were read first and all three agreed — and all three were scanned at the same centre, which is one pipeline and therefore one witness. That is exactly the trap the Dickinson entry below records, where two copies from the same library agreed on a broken piece of type. The passage was re-read in the University of British Columbia Library’s copy, scanned at the University of Toronto, before a word of it was published.

CabinetTwo of the four plates are the wrong object, and both captions say so

**The violet mounted is the wrong species.** Sappho’s violet is the Mediterranean *Viola odorata*; the plate is *Viola pedata*, the American birdfoot violet, photographed for a New York state museum survey in 1918, because that is the public-domain violet plate we had. The caption carries the correction on the page — “The plant is the genus, not the poem” — and a note at the foot of the sheet asks readers for a better plate. It is logged as open in the ledger, and the fix is one line of markup the day a *Viola odorata* plate turns up.

**The carnations are the wrong colour and there is no right one.** A green carnation is a white carnation stood in dye, so no botanical plate of the flower Wilde’s friends wore exists or could — which turns out to be a fair description of the code itself, and the caption says that too. The other two plates, the 1896 pansy and the Hulme lavender, are simply the right flowers.

The sheet’s header drawing is the four plants of the front page’s new border, drawn at size and growing out of one ground line, in the order the sheet reads them. All nine stem `--len` values are the measured `getTotalLength()`: three were declared short on the first pass, which is invisible in the finished drawing and leaves the stroke permanently unfinished in the animation.

2026 · 8 September

## Four flowers people wore when saying it in words was dangerous, drawn onto the corners of the plate of sheets

Front-page furniture. The plate of sheets in [*What grows here*](https://queering.earth/#what-grows-here) now sits inside a ruled frame with a botanical sprig on each corner: violet, pansy, green carnation, lavender.

CabinetThe border is an argument, and the line under it says whose set of four this is

**Violet, pansy, green carnation and lavender were all worn or sent as signals**, at times and places where saying it in words was dangerous. Drawing them onto the corners of the plate puts the site’s subject into the site’s own furniture rather than into another paragraph about it. The four are gathered as a set by Sarah Prager in [*Four Flowering Plants That Have Been Decidedly Queered*](https://daily.jstor.org/four-flowering-plants-decidedly-queered/) (JSTOR Daily, 29 January 2020), and the line under the frame credits her for the gathering.

**It credits her for the gathering and nothing else.** Her specific claims — Wilde’s buttonhole in 1892, Sandburg’s “streak of lavender”, the violets in *The Captive*, the Lavender Menace action — are hers and her sources’, and none of them has been read back to a primary here. So the page asserts none of them. If these four ever become a sheet, that reading comes first.

**Two things a sheet would have to say out loud, found while looking for plates.** The obvious public-domain violet plate is *Viola pedata*, an American species photographed for a New York state museum survey — not Sappho’s violet. And **no plate anywhere shows the flower Wilde’s friends wore**: a green carnation is a white one stood in dye, so every carnation plate in existence is the wrong colour. Mounting one under that name would be exactly the quiet generalization this ledger exists to catch. The plates were previewed and held back for that reason, among others.

CabinetThe frame is CSS and the corners are SVG, and the plate nearly became a list again

A four-sided vine drawn as one stretched SVG shears at its corners at every window size. A border on the wrapper never distorts, and four fixed-ratio sprigs pinned to it ride along at any width. Each sprig is drawn natively for its own corner rather than mirrored into place, because **a mirrored bottom corner hangs its flowers upside down** — fine as wallpaper, wrong on a herbarium sheet. The vine arms end in a tendril curl; a blunt round cap at full stroke width reads as a cut twig.

**The frame bleeds out into the gutter by exactly its own padding.** Padding it inward instead left the grid 387px, which is under the 417px that two 12.5rem tracks and a gap need, and the plate silently collapsed to one column — **a stack of cards, which is a list, not a plate.** That is the identical failure `.qe-plate-grid`’s own comment already records from the day the grid was written, and it still caught this change. Under 30rem the sprigs come in flush with the frame: hung outside it, the violets were clipped by the viewport at 390px.

Every new fill — four flowers and a narrow leaf — went into the print sheet’s line-art rule the day it was written rather than the day it failed, which is the standing debt from the 44 pages that printed blank on [Star Stuff](https://starstuff.earth/). The twelve stem `--len` values are measured `getTotalLength()`, not declared, which is the correction the Dickinson entry below already had to make once.

2026 · 8 September

## A heading that says the type plays was set in the same even measure as every other heading, which is a claim arguing against itself

Front-page typography only. Nothing a sheet claims about a text has changed.

CabinetThe heading performs its own sentence, and the verb carries the axis wherever it is a heading

**[*The type plays, and the words do not move*](https://queering.earth/#the-type-plays) is now set per word.** The softness rises across the first half and two words sit a degree off the line — and *do not move* is the one phrase set flat and straight, at `SOFT 0, WONK 0`. The heading demonstrates both halves of what it says rather than asserting them in an even line. Per word, never per letter: a heading cut into letter spans is one line to the eye and a stutter to a screen reader.

**The verb gets the axis at its full extent.** *Queering* in [*Queering is a verb*](https://queering.earth/#queering-is-a-verb) and *queer* in [*To queer is to adapt*](https://queering.earth/#to-queer-is-to-adapt) now run at `SOFT 100` against the heading’s own 40. Every `h2` here already sets `WONK 1`, so the deviation a reader can actually see is carried by the softness — in roman, WONK alone moves too few glyphs to register at heading size, which is the same reason the type specimen on [the colophon](https://queering.earth/design) is set in italic.

Two rules in `queering.css`, reusing the `.w` idiom the cut-out line already had, and both switched off under `html.plain` along with everything else decorative. The rotation is dropped below 30rem, where a leaning word collides with its neighbour instead of leaning away from it — the guard the leaning title on [Sheet No. 5](https://queering.earth/the-tempest) already needed.

2026 · 8 September

## Higginson wrote “let us alter as little as possible” and then printed Dickinson’s poem with eight of its nine dashes gone — and the copy a reader will find today has lost a word out of the line that asks to be moored

Sheet No. 6 reads *Wild nights – Wild nights!* as co-regulation and answers it with a poem of Ryan’s. It mounts the Houghton leaf in facsimile, which makes it the first plate here that is licensed rather than public domain.

Mounted[The Swell and the Dwell](https://queering.earth/wild-nights) — Sheet No. 6

Twelve lines, three finite verbs, and every one of them a conditional: *Were I*, *should be*, *Might I but*. Nothing in the poem takes place. The sheet reads that as the grammar of [limerence](https://stimpunks.org/glossary/limerence/) in Dorothy Tennov’s strict sense — the desire to be desired, defined by uncertainty — and reads the imagery as the clearest description of [co-regulation](https://stimpunks.org/glossary/co-regulation/) anybody wrote before the word existed: the winds are not stilled, they are made *futile*, and what makes them futile is a place and company rather than a temperament.

The compass and the chart are the instruments you need in water you do not know — continuous correction, checked and rechecked — which is masking described as equipment. Dickinson does not say they were wrong. She says they are *done with*. Quoting Janae Elisabeth, Hogenkamp, Sanghavi and Natri, Helen Edgar twice, Kapp and six co-authors, Nick Walker for Margaret Price’s [bodymind](https://stimpunks.org/glossary/bodymind/), and Helen Edgar again for Deb Dana’s [glimmers](https://stimpunks.org/glossary/glimmers/).

**The sheet carries a second poem, and it is ours.** Thirty-two lines of Ryan’s, written for a person rather than a readership, mounted at his request. `queering.css` gained a `.qe-verse` component so that our verse and a dead poet’s verse can never be mistaken for one another: the specimen keeps a solid moss rule on the left and the display face, the reply gets a rust rule on top and the body face in italic, and a label that says whose words they are in words rather than in CSS.

Re-determinedThe poem in general circulation is missing the word *but*, and the page that prints it names no edition

The [Poetry Foundation](https://www.poetryfoundation.org/poems/44087/wild-nights-wild-nights-269) prints Franklin, credits the edition, and is right. The [Academy of American Poets](https://poets.org/poem/wild-nights-wild-nights-249) prints a composite: the dashes restored, so it is not 1891; *heart*, *compass*, *chart* and *sea* still lower case, so it is not the manuscript; a comma in “Ah, the sea!” that is in neither; “Wild Nights” capitalized where neither the leaf nor 1891 capitalizes it. And line 11 reads **Might I moor**.

*Might I but moor* is a plea with a limit written into it — *if I could only*, asking for the smallest possible version of the thing. *Might I moor* is a request for permission to dock. **A poem that asks to be moored has had the hinge taken out of the asking**, and the page carries no editor, no edition and no date, only “This poem is in the public domain,” which is true of the poem and says nothing about the text. Read out of the live page on 8 September 2026.

This is the third time the register has caught this shape. [Woolf](https://queering.earth/on-being-ill) had two texts and both were hers; [Rossetti](https://queering.earth/promises-like-pie-crust) has a colon in her first printing where every circulating copy has a full stop. **Name the printing, or do not quote.**

Re-determinedWhat 1891 did to the leaf, and the one change that is not a tidy

Page 97 of *Poems, Second Series* takes nine dashes down to one — the em dash closing line 6, and even that has acquired a comma in front of it. Four of her capitals come down: Heart, Compass, Chart, Sea. *Eden* keeps its capital, because *Eden* is a proper noun in anybody’s grammar and the other four were only proper nouns in hers. Three exclamation marks and three commas arrive. Three further differences are the volume’s typography rather than editing — a two-line drop cap, the inset second line that the drop cap causes, and a space before every exclamation mark, which is the same French spacing as the 1896 Rossetti volume.

**The lineation is the exception and it deserves better than it usually gets.** Dickinson wrote “Might I but moor –” and ran out of leaf, so “Tonight –” went on the line below. Franklin records that division and reads through it; Todd and Higginson set what was in front of them. **One editor reproduced the poem and the other reproduced the leaf, and both are defensible.** The sheet says so rather than scoring a point.

Higginson’s letter of 21 April 1891 was read on page 127 of Millicent Todd Bingham’s *Ancestors’ Brocades* (1945) — rendered as an image and the type read, because that page’s OCR mangles the ampersand and the footnote marker. He is frightened of the poem, calls her a “virgin recluse” five years after her death, and prints it anyway: “Yet what a loss to omit it! Indeed it is not to be omitted.” **The sheet does not claim he made the changes** — nothing read here establishes whether the pointing is his, Todd’s or the compositor’s, and pinning it on the man whose letter survives would be convenient rather than true.

Label correctedTwo scans agreed with each other and were both wrong, because they came out of the same library

Page 97 was read in three separately scanned copies. In the first two, line 11 reads **mocr** instead of *moor* — a broken piece of type, unambiguous at native resolution, identical in both. Both are digitised from **University of California Libraries** holdings. The University of Toronto copy has the word intact.

**The sheet nearly reported a press defect as a variant reading.** The Rossetti entry in the ledger says its colon was checked in “two separately scanned copies”, and it happened to be two libraries — which made the phrase read as sufficient when it is not. The rule is now written down in both `ATTRIBUTIONS.md` and `DECISIONS.md`: **corroboration means a different physical copy, from a different holding institution, digitised by a different pipeline.** Two of those three is not enough. No guard can catch this; nothing on disk knows which library scanned which item.

Label correctedThree citations in the first draft of this sheet were written from memory, and one of them was an invented DOI

Caught before the sheet shipped, and logged because the third one is worse than anything the register has carried yet. The Hogenkamp paper was cited as `10.3389/fpsyg.2025.1546642` — a **fabricated DOI**, plausible-looking, for a paper that is actually in *Autism in Adulthood* at `10.1177/25739581261433443`. **An invented identifier does not fail; it resolves to somebody else’s work.** The Nick Walker interview was cited as `aut.2021.29014.njw`; the registered DOI is `aut.2020.29014.njw`, for an article published in 2021. And the Trauma Geek essay had the wrong Medium slug, when the right one was sitting in the glossary page we had already read.

Every DOI on the sheet is now resolved through DOI content negotiation, with title, authors, journal, volume, issue, pages and year read off the registered record; the interview also gained **Dora M. Raymaker** as its interviewer, which the registered record supplies and memory had dropped. **A DOI, a slug, a volume number and a page range are claims like any other.**

This is the third register entry about a bad reference field, and it sharpens the standing note on `check-references.mjs` without quite firing it — that note says to write the link-resolver half *if a third bad citation ships*, and none of these three shipped. But the case is stronger than the note assumed. **Both wrong DOIs return 404 from the DOI resolver**, checked: an invented identifier is mechanically detectable in a way that a wrong volume number is not, which is the first citation error on this site a guard could actually have caught. The Medium slug would not have been — that host answers a script with a 403 whether the URL is real or not, and a checker that reads 403 as broken would cry wolf on half the references here. **If the resolver half gets written, it can be trusted about DOIs and must be advisory about everything else.**

CabinetA licensed plate for the first time, a title that breaks its own convention, and punctuation added to a poem of ours

- **The facsimile is CC BY-NC-ND 3.0, not public domain.** The first thing mounted here that is licensed rather than free. The credit is the archive’s required form, the site is non-commercial, and the file is unaltered because it was requested from *Harvard’s own IIIF service* at the width we wanted — so the only derivative was made by the rightsholder’s server. Mounting the 1891 printed page instead was considered and rejected: it is unambiguously public domain and it is the wrong object, because **you cannot show what the printers did to the leaf with a picture of the printing.**
- **The title is Ryan’s phrase, not Dickinson’s** — the first exception to the rule that a reading is titled from its specimen. Three titles out of the poem were on the table. None of them holds both halves of the sheet, because her poem only has the swell in it.
- **The reply got punctuation and nothing else.** Five full stops and five commas; no word, line break or capital touched, including the lower-case continuation lines, which turn out to be consistent across all eight stanzas and are therefore prosody rather than typing. Disclosed in the sheet’s label, itemised in the ledger, and named here — because **an unmarked edit of our own text is the same failure as an unmarked edit of somebody else’s**, and the site just happens to be the injured party.
- **The header drawing is water.** One line rises out of the lower left and breaks in a curl at the upper right; one lies almost flat across the foot and curls too, because it is water and not a ground line. The two moths are deliberately together rather than in opposite corners — the poem under them is about reciprocation. Three of the twenty `--len` values were declared short on the first pass, which is invisible in the finished drawing and obvious in the animation; all twenty are now the measured `getTotalLength()`.

2026 · 8 September

## A scholar cut her own sentence down to fit a later argument, marked every cut, and in doing so demonstrated the thing the sentence says

The front page gained two sections on Pamela Demory’s *Queer/Adaptation*. One of the two quotations is a quotation of the other, five years apart, by the same person.

MountedTwo sections on the front page: *To queer is to adapt* and *The sentence adapts itself*

Nick Walker gave this site the verb. Demory gives it the motion: “To queer, then, may be to adapt; to adapt is to queer.” Written in adaptation studies rather than in neurodiversity, and arriving at the same place from the other road — “queer as a verb, as a doing rather than a being”. It is a description of what every sheet here already does to a canonical text, and its useful insistence is that doing it is not a lesser act than writing the original.

Quoting Demory’s [*Queer/Adaptation: An Introduction*](https://link.springer.com/chapter/10.1007/978-3-030-05306-2_1) (Palgrave Macmillan, 2019) at three places on pages 1 and 3, her [*Queering Emily Dickinson for the Millennial Age*](https://link.springer.com/chapter/10.1007/978-3-031-50832-5_10) (Palgrave Macmillan, 2024) once, and Linda Hutcheon at one remove, named on the page as quoted by Demory. Also on the page: the sheet count in *What grows here*, which had said three since Sheet No. 3 and now says five.

CabinetThe second quotation is a trimmed version of the first, and that is why both are on the page

In 2024 Demory quotes her own 2019 sentence and cuts it: *to evolve, to repeat, imitate, parody, make new* gone, *but also to turn* gone, and *to adapt is to queer* — the half that ran the other way — gone. Every fragment that survives is verbatim, and every cut is marked with an ellipsis.

**This is the failure mode of this site, performed correctly.** `ATTRIBUTIONS.md` exists because the characteristic error here is not an invented source but a tightened one: a sentence trimmed to fit, with somebody else’s name left attached. What makes Demory’s trim an adaptation rather than a misquotation is that you can see where the scissors went. The front page now says that in as many words, which is a better argument for the ledger than the ledger can make for itself.

Label correctedHalf of one quotation on this page has not been read against its primary, and the ledger says so

The 2019 chapter is held in full and every word taken from it was read in place. The 2024 chapter is paywalled and is not held. Its quoted-within fragments are still verified — they are checkable against the 2019 primary, fragment by fragment, and they check out — but Demory’s own 2024 framing sentence around them reached this site as a transcription, not as a page anybody here has read.

Everything checkable about it was checked: title, author, book, editors, series, publisher, and year, all against Springer’s record. The sentence itself is logged in `ATTRIBUTIONS.md` as verified in halves, with the unread half named. **A quotation we believe and a quotation we have read are two different things, and the register is where the difference gets written down rather than forgotten.**

2026 · 8 September

## An editor in 1733 decided Miranda’s hardest speech was not credible coming from her, moved it into her father’s mouth, and three centuries of editions followed him

Sheet No. 5 reads Shakespeare’s *The Tempest* alongside Waterhouse’s 1916 canvas. The layout came from Helen Edgar’s own Claude session and was adopted as she sent it; two citations in it did not survive checking.

Mounted[Miranda: To Be Wondered With](https://queering.earth/the-tempest) — Sheet No. 5

Miranda’s name is Shakespeare’s coinage, built on the Latin *mirari*, to wonder at. The sheet turns the preposition: not wondered *at*, which the play does to her constantly, but wondered *with*. Six quotations from the play, the boy player who first performed her, the speech Lewis Theobald reassigned, and the chain of everybody who has staged her since.

Quoting the play in the Arden text, and Judith Butler, Sara Ahmed, Alison Kafer, Aldous Huxley, Nick Walker, Ann Thompson, Jessica Slights and David Kathman by reference. The Theobald reassignment was confirmed at two independent sources: the Folger edition prints the speech as Miranda’s, and the Shakespeare Navigators note gives Theobald’s own reasoning — that a three-year-old could not have taught Caliban to speak.

**Same editor, same 1733 edition as Sheet No. 4.** Theobald put *weird* back into *Macbeth* over Shakespeare’s *weyward* in volume 5 of [the same Works](https://queering.earth/invention-of-normal). Two sheets now turn on one eighteenth-century editor deciding what a woman could plausibly have said.

Label correctedTwo citations in the incoming draft, wrong before the sheet was ever built

The draft’s reference list put Kathman’s “How old were Shakespeare’s boy actors?” in *Shakespeare Survey* **59**. It is volume **58** (2005); the pages, 220–246, were right. And Ann Thompson’s chapter was credited to an editor named **K. Chedzoy**. The editor is **Kate Chedgzoy** — the draft had dropped a letter out of her surname. Both corrected before the sheet shipped.

This is the failure the register already carries once: [a journal citation handed to us with the wrong issue and the wrong pages](#a-2026-09-08-rossetti). It arrives the same way every time — inside a reference list that looks finished, in a field nobody reads twice. **A volume number is a claim like any other and gets checked like one.**

A third entry credited Helen Edgar’s *Wyrd, Weird, and the Invention of Normal* to *Queering Earth*, at an address on this site that does not exist. Her essay was published at [More Realms](https://morerealms.com/becoming-weird-wyrd-normality/) in July 2026; this site published a reading of it. The reference now points at her publication, which is the byline rule from the entry below applied to a bibliography: **naming ourselves as the publisher of prose she wrote is the same elision as putting her name over prose she did not.**

CabinetFour devices from Helen’s draft, kept — and its colours, not kept

The draft arrived as a self-contained page with its own palette written in hex. The typography survived and the hexes did not: `queering.css` gained a *restaging* section in which every colour aliases a `--qe-\*` token. The leaning title, the wobbling section heads, the chain of stagers and the staging labels are all hers.

- **The chain is an `<ol>`.** It arrived as a row of spans with `→` between them — five decorative arrows read aloud as words. The order is the content, so it is a list, and the arrows are drawn by CSS with an empty alt string.
- **The correction uses `<del>` and `<ins>`,** which is what Theobald actually did. It arrived as a `line-through` on a `<span>` — invisible to a screen reader, which would have erased the one device on the sheet that *is* an argument about erasure.
- **The struck name is moss with a coral rule through it,** not coral letters at 0.65 opacity, which is how the draft had it and which fails 7:1 twice over. The colour goes on the strike, never on the letters.
- **The plate is the scan already on disk.** The draft hot-linked Wikimedia with a JavaScript `onerror` fallback reading “Plate to be inserted — source a high-resolution scan before publishing”. Waterhouse’s *Miranda* was mounted on Sheet No. 4 the same day, alt text and provenance already verified, so the sheet mounts the local file and the fallback is gone.

Both chains carry “you, reading this” on the end, which is the sheet’s own argument about itself and not a flourish.

2026 · 8 September

## A site that publishes a ledger of everyone else’s words was keeping the account of its own mistakes in a file only we could read

Four sheets in, the corrections had piled up in the repository and nowhere else. This page is the fix.

CabinetThe register itself

Backfilled from the full commit history, cross-read against `ATTRIBUTIONS.md` and `DECISIONS.md` so that every correction named here is the one those files record. Linked from the footer of every page, next to the colophon.

It is drawn as a register rather than as a list of version numbers because that is what this site already is: things collected, mounted, labelled, and sometimes relabelled. The four kinds of entry are the four things that happen to a herbarium sheet.

2026 · 8 September

## A sheet shipped with Helen Edgar’s name over prose she did not write — she declined the credit, and the answer had been written in our own colophon before the sheet was made

Sheet No. 4 reads Helen Edgar’s *Wyrd, Weird, and the Invention of Normal*: before *weird* meant strange, *wyrd* meant fate, and the thing that got invented in between was normal.

Mounted[Wyrd, Weird, and the Invention of Normal](https://queering.earth/invention-of-normal) — Sheet No. 4

A reading of Helen’s More Realms essay, with the word’s own drift down the page: *wyrd* as what comes to be, *weird* as the Fates’ own word, and *weird* as odd-looking and disturbingly different, which is where it arrives around 1820.

Quoting Alby Stone, Karen Bek-Pedersen, Mark Fisher, Robert Chapman, Eve Tuck and K. Wayne Yang, Elliot Wassell, Megan Ingram and Kai Jacobsen, and Ombre Tarragnat; describing Susan Schoon Eberly’s work on changelings and the folklore of disability without quoting it, because the article is paywalled and was not read here. Public-domain texts on the sheet: *The Wanderer*, *Völuspá* 20, *Tam Lin* (Child 39A), and Yeats’ *The Stolen Child*. The Old English gloss is ours and is labelled as ours — translators do not agree on *ārǣd*, and picking one rendering silently is picking a reading.

Label correctedThe byline. It shipped wrong, and it was corrected on Helen’s word

The sheet first carried a **Written by — Helen Edgar** row, because the argument, the sources, and the reading list are all hers. The draft flagged the risk and shipped anyway with a caveat row underneath instead of a fix. Helen read it and declined: “I can’t take any credit beyond you reading my weird stuff.”

She is right, and [the colophon](https://queering.earth/design) had already written the answer down: a label carries “the date of the reading, and who read it”, and “a specimen is collected, not written.” That is an authorship model, not a glossary entry. The label now reads **Specimen** — Helen’s essay; **Maker** — Helen Edgar; **Read by** — Ryan Boren. Nothing about the quotations changed; they were always marked and linked.

The rule for every sheet from here: a living person gets **Maker** for what they made and **Read by** for what they read, and never **Written by** for prose they did not write. Crediting the house instead — “by Queering Earth” — was on the table and was rejected: naming an institution where a person belongs is the same elision as naming a person where an institution belongs. **A caveat row under a wrong byline is not a fix. It is the wrong byline with a footnote.**

Re-determinedThe sheet’s kind changed from essay to reading, and No. 1 gained a second reader

Knock-on from the byline rule, applied the same day. Under that grammar the Wyrd sheet is a reading, not an essay, so the kicker, the plate card, three sibling navs, and the social card all changed to say so. [The Army of the Upright](https://queering.earth/on-being-ill)’s **Read by** row went from Helen alone to Helen and Ryan.

One thing left untidy on purpose: this sheet keeps Helen’s title rather than taking a phrase out of the specimen the way the other readings do. If a session wants to tidy that, the title is the change and the address can stay.

MountedTwo paintings, chosen by Helen Edgar

Edward Robert Hughes, *Midsummer Eve* (c. 1908), and John William Waterhouse, *Miranda — The Tempest* (1916). Both public domain on the artists’ dates; both captions say she picked them, because on this site choosing the plate is a real contribution with a real name on it — and this is the sheet on which a real contribution had just been credited to the wrong kind of row.

The Hughes plate first sat between *He was convicted of manslaughter* and *So: no romanticising the fae on this sheet*, which split two sentences that answer each other and made a charming fairy painting the punchline to Bridget Cleary’s murder. It now opens the section instead. **Where a plate sits is an argument, not a layout preference.**

Label correctedA journal citation we were handed had the wrong issue and the wrong pages

The brief for the sheet gave Elliot Wassell’s paper on Autistic joy as *Disability & Society*, 41(3), 1–26, 2025. The article’s own first page gives volume 41, **issue 1**, pages **236–261**, **2026**. 2025 is the online-first date, and “1–26” is the give-away of a citation copied out of an unpaginated online-first PDF.

Corrected here. Recorded as an open item for a session in the knowledge-system repository, because if that citation is sitting in notes elsewhere it needs the same correction — and this site does not edit that repository.

Label correctedTwo captions checked against the primary rather than against the picture

- The Waterhouse caption said Miranda had **never seen anybody but her father and Caliban**. Wrong — she also half-remembers “four or five women once that tended me”. And it placed the brave-new-world speech “four scenes later”, which is four *acts*. Both fixed against the text of the play.
- The Bridget Cleary paragraph said she was **burned to death by her own husband and relatives** and named no verdict. The relatives’ role and the cause of death are both contested in the record; the sentence was narrowed to what is not. She died 15 March 1895 at Ballyvadlea, County Tipperary; her husband maintained she was a changeling; nine people were charged; he was convicted of manslaughter.

**A caption is a claim like any other and gets checked like one.** Alt text on both paintings was written from looking at the images, not from the catalogue record — descriptions inherited from a catalogue record describe the catalogue record.

Label correctedA scholar’s conclusion that cuts against the sheet, kept on the sheet

Three quotations reach the Weird Sisters section *through* Karen Bek-Pedersen’s article rather than from Holinshed, the First Folio, and Theobald themselves, and every caption says so with her page number: a secondary source that says it is quoting is still a secondary source, and the reader is owed the chain.

Her own argument is that Shakespeare wrote *weyward* deliberately, that his three women are witches rather than Fates, and that Theobald’s 1733 emendation “bypasses Shakespeare altogether” — which is inconvenient for a sheet about reclaiming the Weird Sisters. It is quoted twice and gets its own item in *What this sheet will not tidy*. **Taking a scholar’s evidence and leaving her conclusion behind is the worst version of the paraphrase failure, because every individual quotation is exact and the page still lies.**

CabinetThe paste-up: a zine wall built out of herbarium furniture

Ryan’s brief was “take inspiration from zine walls”, and the obvious risk in it is that a photocopied flyposted wall and a Victorian specimen sheet are not the same object. What made it work was noticing that they are: both are things cut out, laid down at an angle, and fixed where they overlap — one with masking tape, one with gummed linen strips. So `.qe-wall`, `.qe-drift`, and `.qe-cutup` are built from the card, the rule, and the accent colour the site already owned, rather than importing a second visual language. No new motion: the drawing at the top grows, the wall does not.

- **The wall shipped as one column at every window size.** Two 13.5rem tracks plus the gap need 452px and the measure gives 448, so it silently collapsed into a stack of slips — a list, not a wall — and it looked deliberate. Found by reading the computed `grid-template-columns` in the browser, not by looking at the page. Now 12.5rem.
- **The word-drift rail became a column rather than a third exception to the measure.** Three states across 448px give 136px each, which will not carry the gloss under each word. The rail runs down the sheet instead. One fewer exception is worth more than one better timeline.
- `.qe-cutup` uses inline-block, not flex. With flex items the scissored words look identical and copy out as `oddifficultimmature`.
- `.qe-plate-wide` came back, exactly as the note about deleting it said it would — Waterhouse’s *Miranda* is 138cm across, and inside the portrait cap the foundering ship was a smudge in the corner.

CabinetThe colophon says how these sheets are drafted

A new section, [Who reads, and who writes](https://queering.earth/design): these sheets are drafted in Claude Code sessions and edited by whoever is on the **Read by** row. Asked and answered as one honest section in the colophon and nothing in the labels — a label is about the reading, not the tooling, and a tool cannot carry responsibility, which is what a byline is. **A site that keeps a ledger of everyone else’s words owes an account of where its own came from.**

2026 · 8 September

## Two grey woodcuts came off a colour sheet, and the drawing above them was rebuilt twice before it stopped standing to attention

Both changes are about looks rather than accuracy, and both turned out to be the sheet’s own argument correcting the page.

Re-determinedColour over subject matter: three chromolithographs replace two Darwin woodcuts

Sheet No. 3 first mounted two figures from Charles Darwin’s *Climbing Plants*, chosen because the sheet’s argument is about holding on without merging and Fig. 13 is a tendril spiralling in two directions at once. Ryan: “The black and white tendril illustrations are a little underwhelming. Let’s drop the tendril requirement and go for colour.” He is right about the page — a herbarium sheet in daylight is a *colour* object, and two grey rectangles of 1876 line-block sat on it like photocopies.

Replaced by three chromolithographs from *Annales Musei Botanici Lugduno-Batavi* volume 1 (1863), all lithographed by Emrik & Binger of Haarlem, each with a different draughtsman; and, in the section on what a fruiting body is for, a hand-coloured plate from M. C. Cooke’s *Illustrations of British Fungi*. **Nothing about the Darwin verification was wrong.** His reversed spiral is still on the sheet, still credited, quoted and linked instead of mounted, and the section reads no worse for it — the idea survived as prose.

The rule this settled: on this site a plate is chosen for how it looks on the sheet first and for what it depicts second. **An illustration that has to be explained before it earns its place is not earning its place.**

Label correctedA digitiser’s metadata disagreed with the corner of the plate, for the third time

The Biodiversity Heritage Library’s Flickr tags on Tab. IV carry `taxonomy:binomial=Gonystylus macrophyllus`. The plate itself says **GONYSTYLUS MIQUELIANUS, T. ET B.**, and that is what the sheet cites. The two may well be synonyms in current taxonomy — a question for a botanist, not for us — but the object’s own printed name is the object’s own printed name.

Third case on this site: a wrong Fitch on a neighbouring Curtis’s plate, metadata naming the wrong Darwin as the artist of his son’s drawings, and now this. **Standing note, now with three cases behind it: read the corner. Every time.** The volume itself was pinned by fetching the same Internet Archive leaf number from all four volumes of the serial and comparing them, because the plate numbering restarts each volume and “Tab. IV” on its own identifies nothing.

Re-determinedThe header drawing, rebuilt twice, and the first version was a fault rather than a preference

**v1** was five upright stems, evenly spaced, on one flat baseline — the argument of the sheet drawn literally. Helen: “can we have squiggles and swirly bits so it isn’t all linear? may be add some mushrooms or something”. A sheet whose thesis is counter-narratives following their own rhythms had a drawing in military formation at the top of it. No guard can catch that: the markup was valid and the tokens were correct.

**v3** is Art Nouveau, to Helen’s brief — flowing curved vines, spiralling tendrils, organic scrollwork, asymmetrical, nothing rigid. What that actually required: no baseline and no roots, so nothing can line up; every terminal curling back on itself, because a curve that merely stops is the thing this drawing is not; and a taller canvas, because filigree needs vertical room or the curls close into blobs.

The part that nearly got missed: the vines landed in v3 while the flowers and mushrooms were *still v1’s* — six-ellipse daisies and flat domes on sticks. Against sinuous linework they read worse than they had against straight stems, because they were now the only rigid things on the panel. **A style note about line is also a style note about form.** Blooms became five sinuous petals at uneven spacings; caps got an undulating margin over a bent tapering stipe.

One trap paid for here and worth stating: `--len` on a stem is its real measured length, read out of the live page. A declared length shorter than the actual one turns the dash into a repeating pattern and the vine draws itself on with gaps in it — invisible in the finished drawing, visible only while it grows. Three paths were short on the first pass.

2026 · 8 September

## The first printing of *Promises like Pie-crust* ends line 20 with a colon, every copy in circulation ends it with a full stop, and the line is the one about breaking the chain

Sheet No. 3 reads Christina Rossetti’s poem of 20 April 1861 next to a 2026 paper on supporting Autistic adults’ intimate lives.

Mounted[The Die Uncast](https://queering.earth/promises-like-pie-crust) — Sheet No. 3

Rossetti’s poem entire, from its first printing in *New Poems by Christina Rossetti, Hitherto Unpublished or Uncollected* (Macmillan, 1896), beside three passages of analysis and six participant quotations from Monique Huysamen, Chris Hatton, and Marianthi Kourti’s *Embrace Difference, Challenge Normativity* in *Feminism & Psychology*, and Amanda Van Slyke’s definition of solo polyamory.

Label correctedThe colon at line 20, read in two separately scanned copies

The 1896 page 131 reads *I should fret to break the chain **:***. The Poetry Archive, and every web copy checked, read it with a full stop. Every other mark in the poem matches: 1896 has two full stops in twenty-four lines, the circulating text has three, and eight lines end in colons in both.

The difference is grammatical. A full stop closes the thought and makes “Let us be the friends we were” a fresh proposal; the colon makes the friendship the *consequence* of what precedes the mark.

**Both pages were rendered as images and the type read, because the finding is a single punctuation mark and a text extractor is not evidence about one.** Then a second physical copy — a different library, a different digitiser, a different pipeline — was read independently, and the mark, the alternating indent, and the date line agree in both. So the colon is the edition’s, not one library’s smudge.

What is *not* claimed: nobody here has seen her manuscript, so this is the earliest reading we can put our eyes on rather than a certified authorial one, and nothing on the sheet says anybody changed the mark on purpose. Three features of the 1896 page are the volume’s typography and not hers — French spacing before every colon, a drop cap, and a full-capitals title — and all three are normalised on the sheet and said out loud on it.

Label correctedThe proverb in the title has no owner here, on purpose

“Promises and pie-crust are made to be broken” was proverbial before Rossetti used it. The attribution in circulation runs to Swift’s *Polite Conversation* (1738), which nobody here has read in a primary, and secondary sources record printed uses earlier still. The sheet therefore names no originator for the saying, and the ledger says not to improve that by adding Swift’s name off a quotation site.

Label correctedTwo elisions kept lower-case, and one character normalised with the reason written down

- Two of the authors’ sentences are quoted from their middles, where the original lead-in is a framing clause. **The lower-case letters are kept** rather than raised to capitals, and the captions say so. Raising them is the small tightening that makes a clause look like a sentence somebody wrote.
- One participant’s quotation is printed in the article with a lower-case `l` in place of every `I` — five times, and nowhere else in twenty-three pages. It is in the printed article, not an extraction artifact: the page was rendered as an image to be sure. **The sheet prints `I`**, because a run of stray `l`s reads as our typo and is spoken aloud as “el” by a screen reader, and no word is changed by fixing it. Recorded so nobody corrects the sheet back against the PDF, and nobody quotes the `l`s as a finding about her.
- Participants are credited the way the paper credits them — pseudonym, age, gender, sexuality, *and focus group*. The group is part of the identification the study gives them and is not ours to drop.
- The paper writes “autistic” in lower case throughout; house style is **Autistic**. Quotations keep their authors’ usage, our prose uses ours, and the sheet’s footer says so, because an unexplained inconsistency looks like carelessness.

Label correctedA definition that circulates without a name got its name back

The sheet’s definition of solo polyamory is Amanda Van Slyke’s, and the author was read off the page rather than assumed from the site. It circulates widely with nobody’s name on it, and it has one. No publication date is given on that page, so none is asserted here — and the ledger says not to infer one from a sitemap or a feed.

CabinetVerse gets a shared component, and every line is its own element

`.qe-poem` lives in the shared stylesheet rather than in the page, because poems will recur here and the second one would otherwise copy the first one’s CSS and then drift from it. A poem’s line breaks are the object being mounted: reflowed into prose it is a different poem.

- Every line is its own block element, not a `<br>`-separated run. A `<br>` among the lines breaks child counting, so an indent driven by an even/odd rule silently re-indents the whole poem the moment a line is added — the indent is a class the markup states outright instead. And the 1896 alternating indent is a fact about that setting, not a decorative rhythm to apply to any poem.
- A hanging indent on every line, so a line too long for the measure is visibly a wrap and can never be mistaken for a line the poet wrote.
- The type steps down under 26rem, and this is the one place on the site it may: seven of the twenty-four lines wrapped on a 375px viewport at the body size, and a poem read at that ratio is being read as prose. Verified at 24 lines, 0 wraps.
- On paper, a stanza never splits across a page break.

CabinetA sheet is titled from a phrase in the specimen, and the filename names the work

`on-being-ill` is *The Army of the Upright*; `promises-like-pie-crust` is *The Die Uncast*. The split is deliberate: **the filename is the address a reader searching for the source will guess, and the title is what the sheet found in it.** An essay written by us is titled by us, so the convention applies only to a reading.

2026 · 7 September

## The site was linking to one address and declaring a different one canonical, and nobody would have found it by reading the repository

CabinetAddresses on this site are extensionless

Netlify’s Pretty URLs post-processing is on by default and rewrites internal links to strip `.html`. So the served page said `/coming-to-terms` while the repository said `coming-to-terms.html`, and every canonical tag and sitemap entry said `.html`. **Found by reading the served page rather than the repository**, while checking that something else had deployed.

Two ways out were on the table — turn the setting off, or adopt what it produces. Ryan chose to adopt it: canonical tags, `og:url`, the sitemap, and every internal link now say the extensionless form, and nothing is rewritten on the way out any more because there is nothing left to strip. What it costs is that the filename and the address no longer match, which is now said out loud in the repository’s own guidance instead of left for the next session to discover. The sitemap check was changed to fail on a `.html` address, and the failure was verified by putting one back.

Cabinet[How this site is made](https://queering.earth/design) — the colophon

What the herbarium model means here, what biophilic design survives translation to a website, the five words this site uses for its own parts — specimen, sheet, label, plate, card — the palette with its measured contrast ratios, the type and its deviation axis, plain view, the drawings, and the borrowed plates with their sources.

CabinetSheets link to each other, outside the page’s main landmark

Until then a sheet’s only internal link was back to the plate, so a reader arriving from a search result had exactly one way onward. Each sheet now ends with *Elsewhere on the plate*. It sits **after** the `<main>` element on purpose: the knowledge-system mirror takes page content from that landmark and nowhere else, so navigation placed inside it would be indexed as that sheet’s own content. No guard can catch that — the markup is valid and the landmark is correct.

2026 · 7 September

## The phrase on the masthead turned out to be one hyphen away from the subtitle of a book we quote on the same page

The first two sheets went up and were mounted on the plate as numbered cards.

Mounted[The Army of the Upright](https://queering.earth/on-being-ill) — Sheet No. 1

Virginia Woolf’s *On Being Ill*, read from the 1930 Hogarth Press edition — the edition of 250 signed copies whose type Woolf set herself.

Mounted[Coming to Terms](https://queering.earth/coming-to-terms) — Sheet No. 2

Ryan Boren on a lifetime of looking for a word that fits. The one kind of sheet where **Written by** is the right row: his own finished text, unchanged, and the label says so.

Label correctedThe masthead credits Nick Walker, and the decision log stopped claiming there was no risk

The tagline is **Post-normal possibilities.** The subtitle of Walker’s *Neuroqueer Heresies* is *Notes on the Neurodiversity Paradigm, Autistic Empowerment, and Postnormal Possibilities* — one hyphen apart, on a site that quotes him on its home page, about the subject of his book.

Helen wrote the phrase in the founding brainstorm and may well have arrived at it herself; *post-normal* also has a separate lineage in post-normal science that nobody here has checked against a primary. **So this is not a finding of borrowing. It is a finding that our own decision log was asserting there was no risk here when there plainly is one**, and that assertion was corrected. The masthead now reads *after Nick Walker*, linked to the book, with the full account in the section where he is already quoted. “After” was chosen over “his phrase”, which would take the coinage off Helen, and over silence, which was defensible only until a reader noticed the subtitle.

Label correctedThe paraphrase that did not ship, and the pronouns that did

The working tagline was “Subverting, defying, disrupting, and liberating oneself from all forms of normativity,” credited to Walker. **It is not his sentence.** His parenthetical glosses *queering*, and his object is specific: “neuronormativity and heteronormativity.” Generalizing his object while keeping his name on the words would have put our paraphrase in his mouth on the masthead. The page now quotes him exactly, names the two normativities he named, and says plainly that carrying the verb further out is our extension.

Separately: **Nick Walker uses he/him.** The home page, the ledger, and the decision log were all written with she/her and were corrected together, on Ryan Boren’s word — he works alongside Walker, and a person’s stated preference outranks a stale third-party page. The ledger records why not to “fix” this back by checking a website: Walker’s own about page carries no pronouns at all.

Label correctedWoolf verified *ahead of* the sheet, because this trap does not survive verification-after-drafting

Woolf published *On Being Ill* in *The New Criterion* in January 1926 and revised it for Hogarth in 1930. **Both texts are hers.** 1926 reads “with love, battle, and jealousy” where 1930 reads “with love and battle and jealousy”; there are four more differences in the same paragraph.

The 1926 commas look exactly like a modern editor tidying Woolf’s polysyndeton. They are not — they are her own earlier sentence, and the *and…and…and* is her later one. Had we “corrected” either against the other we would have produced a quotation that is wrong while looking more careful than the alternative. **On a site built on re-reading, a wrong edition is a wrong attribution: name the edition, or do not quote.** Our own library holds a note carrying the 1926 wording under a title that names no edition, with OCR damage in the body. It is a pointer. It is not quotable.

MountedPlate 511, *The Floral Magazine* v.9 (1870), and the first metadata error

A hand-coloured lithograph of two orchid blooms on Sheet No. 2. **The artist’s name was read off the plate rather than out of the catalogue record**, and that turned out to matter: the plate is signed *Worthington G. Smith, F.L.S. del et lith* in the bottom-left corner, and the Biodiversity Heritage Library’s Flickr tags on a neighbouring plate credit a “Walter Wood Fitch” who did not illustrate it — the illustrator in that period was Walter Hood Fitch. **A digitiser’s metadata is a finding aid. The object carries its own attribution in the corner.**

CabinetThe plate, the favicon, and the social cards

The front page became *the* plate: the sheet the others are mounted on, as numbered cards with a coloured tape strip across the top of each. Card class names were taken from Star Stuff on purpose rather than invented again.

Icons and cards are generated from the shared stylesheet’s own token values, so they cannot drift from the palette. Two traps paid for in the favicon: **a doubled hyphen inside an XML comment made the whole SVG fail to parse** — it looked fine, served with the right content type, and decoded as nothing — and **a favicon is judged at 16px, not at 64**, where a tilted leaf reads as a diagonal stroke and anything filled in lichen has too little contrast on paper to be a shape at all.

2026 · 7 September

## For six minutes at a time the site looked deployed: a green dashboard, auto-publishing on, and a commit several pushes stale

The site was planted and the domain went live the same day. Between those two things, three separate wrong answers about why pushes were doing nothing.

CabinetThe site is planted

The home page, the palette as tokens in one stylesheet, plain view as a class over one document, three guard scripts, and the bridge to the knowledge system for finding — never for citing.

- **The ground is paper, and it is the other end of the day from Star Stuff.** The strongest differentiation from a night-sky site is not the same site in green.
- **Fraunces as the display face**, because it carries a `WONK` axis — letterforms that deviate from the norm, exposed as a setting. A site about queering normativity setting its masthead with the deviation axis turned up is the argument made in the type.
- **Plain view is a class, never a second page.** Helen asked for a plain access version; the alternative — a decorated page and a separate accessible page — drifts, and the accessible copy is always the one that rots.
- **Three guard scripts came over from Star Stuff and five did not**: markup, sitemap, and contrast pass here; the other five catch failures this site cannot yet have. A check that cannot fail is a check nobody reads.
- The local server roots itself at the repository rather than at whatever directory it was started from. Star Stuff’s copy does the latter, where a wrong-directory run looks exactly like a site with every page missing.

CabinetContinuous deployment, and the trap that made pushes silently not deploy

Static files, no build command, no publish subdirectory — the repository root is the site. Deploy previews on pull requests are left on deliberately: a pull request produces the real page at a real address before anything reaches the live site, which is the review path for anyone editing through the GitHub web editor rather than a Claude session.

**Creating the project through the API does not wire continuous deployment, and nothing you can do from the API fixes it.** The first deploy works, the dashboard shows a green light and “Auto publishing is on”, and there is no webhook, no deploy key, and no status-check hooks. It looks exactly like success. Three answers were recorded and two of them were wrong before the third stuck:

- Re-sending the repository configuration leaves the deploy key null and kicks a one-off build of current `HEAD` — a trap of its own, because that stray deploy looks like the link repairing itself.
- A hand-made GitHub webhook pointed at Netlify’s hook endpoint, matching Star Stuff’s exactly. GitHub delivers, Netlify answers **204 OK**, and builds nothing. Verified twice. Netlify only honours a hook it created and recorded on its own side. **This entry was written as a fix, corrected, and then corrected again** — the first correction was also wrong.
- Concluding anything from a short poll of the deploys API. It lags, and it lags by minutes. Give it three before calling a push ignored.

The only fix is `netlify init --force` in the repository, which provisions the webhook, the deploy key, and the status-check hooks together and needs a browser grant, so a human runs it once. The two commands that tell a wired project from a deaf one are written down, because the dashboard will not tell you.

Cabinet`queering.earth` is live

The site was built for a week against a domain that did not resolve, with two things held back until it did: the host redirect, which would otherwise have sent the only working address to one that does not answer, and the entry in the knowledge-system mirror’s site map, which fetches over the network and would have failed the sync. Both switched on when the domain answered.

CabinetThe content model: a sheet mounts a specimen and carries our label

Settled the same day the first sheet was drafted, and it is the site’s attribution discipline drawn in the layout instead of left to a reader’s good faith. The specimen is somebody else’s — the essay, the painting, the word. **The label is where we speak.** Their words are in the specimen; ours are on the label; the line between the two is a fact about the page and not a promise about our behaviour.

## Index by sheet

The register is kept by accession, which is by date. This is the same entries filed the other way — everything that has happened to one sheet, gathered. Each line lands on the accession that records it.

### [The Army of the Upright](https://queering.earth/on-being-ill) Sheet No. 1

### [Coming to Terms](https://queering.earth/coming-to-terms) Sheet No. 2

### [The Die Uncast](https://queering.earth/promises-like-pie-crust) Sheet No. 3

### [Wyrd, Weird, and the Invention of Normal](https://queering.earth/invention-of-normal) Sheet No. 4

### [Miranda: To Be Wondered With](https://queering.earth/the-tempest) Sheet No. 5

### [The Swell and the Dwell](https://queering.earth/wild-nights) Sheet No. 6

### [A Waste Garden, Flowering at Its Will](https://queering.earth/flower-codes) Sheet No. 7

### [The Preferred Flower of Life](https://queering.earth/monotropa-uniflora) Sheet No. 8

### [The Five Unmistakable Marks](https://queering.earth/five-unmistakable-marks) Sheet No. 9

### [Other People Who Have It](https://queering.earth/other-people-who-have-it) Sheet No. 10

### [My Gloomy Sunflowers](https://queering.earth/gloomy-sunflowers) Sheet No. 11

### [Every Day’s Most Quiet Need](https://queering.earth/most-quiet-need) Sheet No. 12

### [Held, Not Fixed](https://queering.earth/held-not-fixed) Sheet No. 13

### [Known and Felt and Seen](https://queering.earth/known-and-felt-and-seen) Sheet No. 14

### [Metaphoray](https://queering.earth/metaphoray) Sheet No. 15

### [Find a word in the cabinet](https://queering.earth/search) the finding aid

### [Queering.Earth](https://queering.earth/) the plate

### [The plate](https://queering.earth/the-plate) the readings, collected

### [The founding papers](https://queering.earth/the-founding-papers) the drawer

### [The cabinet itself](https://queering.earth/the-cabinet-itself) the drawer

### [What this cabinet is for](https://queering.earth/mission) the founding papers

### [Nothing here was inevitable](https://queering.earth/manifesto) the founding papers

### [Two Cohabitating Modes](https://queering.earth/two-cohabitating-modes) the founding papers

### [The attribution ledger](https://queering.earth/ledger) every quotation traced

### [What this site knows about you](https://queering.earth/privacy) the privacy page

### [What we quote, and why we may](https://queering.earth/how-we-quote) the quoting policy

### [What is settled, and what is open](https://queering.earth/what-is-settled) the decision log

### [How this site is made](https://queering.earth/design) the colophon

### [What has arrived, and when](https://queering.earth/whats-new) the arrivals list

### [The accession register](https://queering.earth/changelog) this page

### The site itself the cabinet
