reflection of a stump in a lake

Weekly Reflection for Week 32 2026

🗺️

Home » Blog » Changelog » Weekly Reflection for Week 32 2026

This is Ryan’s weekly reflection log for week 32. It’s a companion to the week 32 changelog.

This was an exceptionally busy week. The pace was intense but satisfying. I enjoyed being in flow state — head down in zone work. Next week, though, I hope to take it much easier and enjoy the fruits of what was built this week.

Week 32 runs Sunday 2026-08-02 through Saturday 2026-08-08. The day headings below carry their dates.



Best Accomplishments

  • Stood up the Stimpunks Knowledge System from nothing on Sunday, and by Friday it was a five-layer, six-collection, self-auditing knowledge base with two mirrors, twenty-odd maintenance skills, and a search index over 18,705 documents. Seven days.
  • Taught the library to index ideas instead of files — wiki/concepts/, keyed on our own 445-term glossary rather than a taxonomy a machine invented — and the first thing it did was tell us we publish more than we hold.
  • Made the whole thing searchable by meaning, not filename. qmd runs entirely on this machine, no vendor and no API key, and “why does being interrupted mid-task hurt so much” now finds Tendril Theory with none of those words appearing in any file.
  • Gave it away rather than keeping it. knowledge-garden-starter plus Start Your Own Knowledge Garden and Filling the Garden, with the shelves turned into config so a fork doesn’t arrive wearing our name.
  • Retracted five published claims about our own work in five days, each one caught by building something that measures instead of trusting the prose.
  • Brought Helen Edgar’s 300 pages into the garden with her permission, and made attribution structural — the domain folder is the credit.
  • Took the Design Field Guide from five pages to nine on Friday — motion, controls, rhythm, zoom and reflow — and turned up 80 unaccounted-for animations and a silent clipping failure by measuring instead of assuming.
  • Made ★ stuff show its work on Saturday — a public changelog backfilled across 121 commits with the errors named, the design system written down including the contrast value that fails, and five failures fixed that produced no symptom whatsoever. And put Helen Edgar’s name on the masthead, where More Realms had been doing co-publisher’s work while credited as a citation.

Theme

Build it, then catch it lying. Every day this week the same shape: ship the thing, point it at itself, discover the page or the check or the description was already false, fix it, write down why. The recurring sentence is a check nobody has watched fire is not a check — learned four separate times in seven days, in four different costumes.

By Friday it had a sibling, and Saturday supplied five more instances of it: a thing that does not appear looks exactly like a thing that was never there. Eighty animations we thought were one. Forty-four pages that printed blank. Fourteen thousand words of field notes that had never reached paper. A typeface nobody outside this machine was seeing. Neither sentence is about carelessness. Both are about the difference between believing something and having counted it — which is the week, in one line.


Sunday — 2026-08-02

Week 32 opened here.

Accomplishments

  • Built the Stimpunks Knowledge System from a bare folder. First commit at 11:18; by evening it had raw/ and a generated wiki/, all ~10,261 notes tracked in git, the Readwise export (1,460 sources, 12,878 highlights), a README, an rclone mirror to the team Drive, and a weekly auto-commit.
  • Added the inbox/ staging tray and process-inbox, then used it: an essay on monotropism, wonder, and awe in neuroqueer learning spaces, and a Deleuze piece on sensation that earned the library a Philosophy & Aesthetics shelf.
  • Wrote editorial-voice.md — the Stimpunks Editorial Voice, in force for everything we publish, leading with the non-negotiables: capitalize Autistic and Disabled, identity-first language.
  • Built the changelog and newsletter skills, and garden-spider — ask it a question and it walks our own trails first, cites the file or link next to every claim, and refuses to fill a gap from training data.
  • Corrected a wrong model in our own instructions: Ulysses is an editor pointed at a folder, not a sync. There was never a race to warn about.

Insights and Takeaways

  • Bus factor 1 is a design failure, and the mechanism is almost never a bus. It’s burnout, a flare, leave, or six weeks where reading a PDF is not going to happen — normal human variation, and a system that treats it as an exception is the thing that’s badly designed.
  • A voice is only shared if it’s written down where everyone — and every tool — can reach it. Distilling the House Style Guide into one canonical file is what made it enforceable rather than aspirational.
  • When the garden is silent, say so and name what we’d need to add. The scope is the safeguard: an answer grounded in a neurodivergent- and Disabled-authored corpus stays counter-deficit by construction. An entrance, not an oracle.

Gratitude

  • Sunday afternoon and nobody needing anything, which is the only reason any of this got started.

Monday — 2026-08-03

Accomplishments

  • Published “Stimpunks.org Changelog for Week 31 2026” and, that night, the “Stimpunks Monthly Newsletter — July 2026”.
  • Published The Stimpunks Knowledge System in the IT Field Guide — motivation, architecture, honest limits, and a Steal this section — and then The Stimpunks Knowledge System as Curriculum, which argues that school produces knowledge work for thirteen years and throws nearly all of it away.
  • Mirrored all of stimpunks.org into a new git-tracked site/ corpus — 1,463 files across posts, pages, and glossary terms — so the Knowledge Garden Spider stopped having to reach out to the live web to answer questions about our own garden.
  • Fixed form contrast in Dark Mode sitewide: field labels went from 1.4:1 to 5.6:1, descriptions 1.3:1 to 4.8:1, error text 3.2:1 to 6.2:1.
  • Added an ear-reading guide and a quiet “Prefer to listen?” link in the Aa Reading panel; updated Autistic Joy with Dean Beadle’s Autistic Pride Brighton video.
  • Built the check-readability and post-publish skills; added the pushback rule to CLAUDE.md.
  • Reorganized notes/ — a Projects folder, 62 moves out of Inbox into Areas — and cleared 1,878 superseded ecosystem stubs.

Insights and Takeaways

  • Dark Mode isn’t a coat of paint; it’s a promise the whole page has to keep. And a form nobody can read is a door that doesn’t open — the required-field asterisk failing at 3.2:1 lands hardest exactly when someone has made a mistake and needs to be told what it was.
  • Re-point the variables, don’t fight the selectors. WPForms publishes its colors as CSS variables. We tried override rules first and the plugin’s own field rules won. The dead ends are the expensive part, so they went into the maintainer notes with the contrast math.
  • Get your shit in git, including your own website. Testing readability against all ~10,300 notes was what earned that skill its keep — it was scoring one-idea-per-line writing as one enormous sentence, punishing the exact shape Easy Read asks for.

Gratitude

  • Andrej Karpathy’s llm-wiki gist, read before any of this got built — the raw-plus-wiki split isn’t ours and the page now says so.
  • The public WordPress REST API: no login, no vendor key, fifteen seconds for a full pull.

Tuesday — 2026-08-04

Accomplishments

  • Built wiki/concepts/ — one page per concept, gathering everything the whole garden holds on an idea from every corpus at once. The best decision was the one we didn’t make: we were a step from inventing a taxonomy when it turned out we’d published one years ago, 445 terms deep.
  • Acted on what it surfaced the same day: ingested Anna Stenning’s Narrating the Many Autisms (the book that cites our Cavendish Space framing and wasn’t in the library), Damian Milton’s 2011 Autscape talk, his 2012 double empathy paper, the 2022 ten-years-on editorial, and Emma Marsh’s monotropism explainer.
  • Published “Campfire Learn Together: Code for the People” for the 2026-08-09 watch-along — and argued back at a film about work I helped start.
  • Published Read This Site in Your Language and turned the Accessibility Field Guide from a bare list into a landing page with a thesis.
  • Scoped the nightly backup to notes/ only, after it fired mid-edit and committed real work under the message “Daily backup snapshot”.
  • Caught a routine sync deleting 1,014 of 1,466 mirrored files, and repaired the guard three ways.
  • Mirrored notes/ to the team Drive.

Insights and Takeaways

  • A filename index tells you what you own. It cannot tell you what you understand. And what the concept layer said on its first run wasn’t flattering: deficit ideology is load-bearing across our site and rested on one asset that so much as cites Gorski; Milton was cited inside 79 of our files and we held nothing he wrote. We publish more than we have filed.
  • A synthesis isn’t refuted by volume; it’s refuted by one specific asset arriving to contradict one specific sentence. The staleness check was watching for a big change in link counts, so gaining a book moved the number by less than one percent and the alarm couldn’t sound. Fixed once, then found structurally incapable of firing — every ingest regenerated the baseline it measured against — and fixed again.
  • An automated snapshot is a safety net, not an author. Scope has to cover what a job destroys, not just what it saves.
  • A delete is not a diff. The prune guarded on a variable named complete, which meant “I reached the last page of this query,” not “I saw the whole library.” The comment above the check described the correct rule; the code never implemented it. Nothing was lost, and that wasn’t luck — it was version control.

Gratitude

  • Stenning attaching our framing to a universal claim, in print, without us in the room — that’s the distinction we keep insisting on, made by someone else.
  • Milton declaring identity-first language in his own opening, citing Jim Sinclair’s 1993 “Don’t Mourn For Us.” That commitment is original to the concept, not a courtesy added later by people like us.

Wednesday — 2026-08-05

Accomplishments

  • Installed qmd and pointed it at all five corpora — keyword, vector, and reranker, entirely on this machine. The research library this whole system exists to serve had been the one corpus nobody could search.
  • Opened seven of the nine .gdoc/.gsheet pointers that were never files, taking the searchable shelf to 269 assets; restored the original behind a third broken symlink (Alex Chen’s typography pocket guide, now a real 4.9 MB PDF); relabelled the two dead Drive pointers instead of deleting them.
  • Retracted three published claims in one afternoon — “no database” after installing a search index, “out of other people’s summaries” which was a slur on our own reading, and the privacy tier we’d inferred from nothing but a Drive timestamp, which had stamped five public community resources with do not quote without permission.
  • Made the wiki generator portable — shelves and identity are data now, not code — and shipped knowledge-garden-starter, Start Your Own Knowledge Garden, and Filling the Garden, including a terminal walk-through for someone who has never opened one.
  • Mirrored Helen Edgar’s Autistic Realms and More Realms — 300 items — and made site/ domain-scoped so the domain folder is the attribution.
  • Cleared the opaque-title backlog from 33 to zero; stim.epub turned out to be Stim: An Autistic Anthology.
  • Built the page-drift check, which found three more errors on the Knowledge System page within a minute of existing.
  • Rewrote the Field Guide index — eleven stubs like “Belong.” became prose naming 58 pages; gave Orienting and Welcome Aboard real intros; cut the Design Field Guide from 386 lines to 37; moved GRADE EtD into the research series where its readers are.
  • Split “How We Tell Our Stories” (1,459 lines) into three pages that each say what they are, and published Lily Pads and Designing for Memory.
  • Added commit-garden and sync-site.

Insights and Takeaways

  • A person in distress does not arrive knowing our vocabulary. They arrive saying it hurts. Something has to carry them from their words to monotropism, and until Wednesday that translation lived only in the head of whoever happened to be asked.
  • A timestamp records that a file arrived. It says nothing about why. Three corrections, all the same mistake in different clothes: reading intent out of an artifact, then writing rules on top of the guess.
  • A fork would have arrived broken and Helen would have spent her first day un-Stimpunksing it. And the on-ramp already existed — three sentences on a page about teaching, while everyone gets pointed at the page about our system. The answer wasn’t to write one, it was to stop hiding the one we had. You cannot test a welcome from inside the house.
  • Never auto-discover. WordPress’s own type directory doesn’t mention that Autistic Realms has posts. It has 167. A tool built the obvious way would have mirrored 70 pages, skipped every post, and printed a cheerful summary for months.
  • A page with two jobs does one of them badly, and it’s usually the one nobody named. The fix is nearly always subtraction. Two pages claiming the same ground isn’t redundancy — it’s a coin flip settled by a search engine rather than by us.
  • Diff before deleting a duplicate, because the other side has usually become right about something. Three byte-identical duplicates were found by a person reading, flagged by no tool we own.
  • The tools we adopt deserve the same scepticism as the ones we build. qmd handed back a machine-written concept page in place of the human-authored glossary entry when asked by filename — reading one document while citing another is precisely the failure the spider exists to prevent.

Gratitude

  • Helen Edgar’s enthusiastic permission — and the fact that her monotropism pages now outrank ours in our own search, which is exactly right, because she works as content researcher for monotropism.org.
  • tobi’s qmd: no vendor, no network, no API key. The only reason it belongs anywhere near our provenance.
  • Lynne Kelly’s Memory Craft, which we’d been citing approvingly while building the opposite of what she argues for — and the resolution turned out to be interesting rather than embarrassing.

Thursday — 2026-08-06

Accomplishments

  • Built six skills in one day: reindex, audit-page, decision-review (and seeded DECISIONS.md), draft-infodumplings, draft-campfire, and comment-on-inbox.
  • Published “Infodumplings: The Systems That Get Us Through the Day” — ten minutes on our system, then the floor opens for everyone else’s. All 37 links resolve, no redirects.
  • Made Raindrop the sixth qmd collection: 4,105 pages of fetched text now searchable, with every refusal recorded and its reason named. Twitter/x alone is 4,156 bookmarks whose status URLs return a login wall.
  • Mapped the 29 dead glossary links cited from published pages, and drafted eight of the missing terms.
  • Filed 37 sources from the inbox — 20 new into raw/ (now 377), 17 deduped against identical content already stored — every one titled from its own front matter, none landing in Unidentified.
  • Fixed reindex reporting “all stages clean” over a half-embedded index: qmd embed exits 0 with work remaining, twice leaving ~2,000 documents unembedded.

Insights and Takeaways

  • The garden was never silent — we were searching the wrong shelf. A qmd sweep reported that we held nothing on curiosity while Raindrop held Susan Engel’s Children’s Need to Know the whole time. Two glossary drafts got written on that false premise and had to be revised. Absence of a hit is not evidence of absence, and the fix is to check coverage before making a claim about the corpus.
  • A search index goes stale silently, which is the worst failure mode available to it: it reflects the last qmd update && qmd embed, not the disk, and it reports success either way.
  • An invented glossary slug reads as entirely plausible right up until someone clicks it. These event posts carry 30-odd links, so every stimpunks.org URL now gets resolved against the local mirror before a draft is handed over, and the two things that can’t be derived — the Teamup link and the featured image — are reported as gaps rather than guessed.
  • Four of the eight missing glossary terms are cited by a single page, Design Method, which was written against a vocabulary that didn’t exist yet.

Gratitude

  • The Raindrop MCP reaching what our local fetch can’t, which is what caught the false “the garden holds nothing on curiosity” claim before it got published.
  • Susan Engel’s Children’s Need to Know, sitting in the library the whole time, waiting.

Friday — 2026-08-07

Accomplishments

  • Allowlisted ten read-only tool patterns in project settings, so routine work stops asking permission for git log and friends.
  • Filed the Epistemic Centralisation clipping — a narrowed translation of the science of learning becoming the benchmark by which other educational knowledge is authorised or dismissed.
  • Started this practice: a daily and weekly reflection to sit alongside the Weekly Changelog.
  • Filled in this whole reflection, reconstructed day by day from the commit history, the running changelog, and the site/ mirror — then fixed the container: the template ran Monday-first while our week starts Sunday, which had filed Sunday 2026-08-02, the day the entire system got built, at the bottom of the page underneath Saturday. Reordered here and in the template, so next week arrives right.
  • Logged the practice to the running changelog as its own bullet — “Started keeping the part the changelog throws away.”
  • Caught up the team’s Notion Week in Review, six weeks behind: one catchup page for Weeks 26–31 of 2026, built on the @Me Week in Review template, linking all six weekly changelog posts in reverse order. The last one posted was Weeks 20–25, back on 2026-06-23.
  • Found a hole while doing it: Thursday afternoon never got a changelog bullet — the Raindrop collection, the 29 dead glossary links, the 37-source inbox run, the reindex fix. It’s in git and in Thursday’s section above, but not in the file draft-weekly-changelog reads on Sunday.

Then the afternoon, which was the real work of the day.

  • Wrote down how this site treats motion, and the audit came back ugly. Designing for Motion argues that motion is a threshold rather than a rule, and that the question that dissolves the apparent contradiction is who holds the throttle — scrolling is reader-driven, animation and parallax are site-driven at a rate you cannot change. Then we counted. We believed one animation was left on this website, a white rabbit we had deliberately kept. There were 80, across 41 pages, and not one honored prefers-reduced-motion — while our overlays page had been telling readers for years that we respect it. One CSS rule turned all of it off with content still visible, and Reading Experience gained a §11 recording the trap, the fix, the specificity reasoning, and the three bars any future animation has to clear.
  • Published Controls That Defer, promoting a principle that had been living as one clause on the overlays page into a three-question test — where the default comes from, what happens when the reader has already decided, and what happens when our code fails. Plus the three moves in order, because most teams start at the wrong one: build it into the structure, point at the switch the reader already owns, and only then build a control.
  • Published Rhythm and Pause Points, moving ~10 KB of purely spatial argument — gutters, wavelike flow, pause points, the fermata — out of Page Conventions, where it had been filed under writing style. Organised around the line that carries it: a page expresses time through space.
  • Published Zoom and Reflow, which finally answers the third access question the Design index had been asking since March — measured at 320 CSS pixels rather than argued from principle. Prose reflows fine; sixteen of nineteen code blocks on one page did not; and three third-party embeds on monotropism are silently clipped, unreachable with no symptom at all.
  • Fixed the code-block regression that same fix caused — and put it on the page instead of patching quietly.
  • The Design Field Guide went from five pages to nine in a day, and every one started as something we already believed but had never written down or counted.
  • Recorded two entries in DECISIONS.md: the notes/ third-party privacy call settled (judged by whether the source is public, not by whether a person is named), and the /audit-privacy skill left open — the mechanism is trivial and the discriminator is the whole problem.

Insights and Takeaways

  • The changelog records what shipped; it’s written for readers and it’s already public-facing prose. It has no room for what a day cost, what I got wrong, or what I’m carrying into tomorrow — so those things have been going unrecorded, and reconstructing them on Friday from a git log is a poor substitute for noticing them on the day.
  • Reconstructing the week from commits proves the point: the work is all recoverable, and almost none of the experience is.
  • A container that disagrees with the thing it holds keeps producing the same error every week. The Monday-first template wasn’t a typo in one entry; it was a guarantee that every future week would bury its own opening day. Fix the template, not the page.
  • Check the premise before making something. The Notion Reviews database already held two “Week in Review for Week N” pages for every week from 26 to 31, which reads exactly like the job being already done. They belong to two other teammates, posting on schedule. One query settled it — and it would have been just as valuable if the answer had gone the other way.
  • A slug is not derivable from a title. Week 31’s post is stimpunksorg- with no hyphen, while 26 through 30 are all stimpunks-org-. Building those six URLs from their titles instead of reading them out of the mirror’s frontmatter would have handed the team a dead link — and a dead link in a catchup post is the one thing nobody checks.
  • The Thursday gap is this same argument one layer up. The reflection was missing what a week cost; the changelog turned out to be missing a whole afternoon of what it shipped. Both fail the same way: anything not written down on the day gets found later by accident, if at all.
  • A practice you cannot count is a practice you are not running. “Sparingly” is not a number. Eighty is a number. We had a sincere, specific, wrong belief about our own site — one white rabbit — and held it for years because nobody ever ran the count. Sincerity is not evidence.
  • A thing that does not appear looks exactly like a thing that was never there. Every animated block hid its own content behind opacity: 0 and waited for plugin JavaScript to reveal it, so some had quietly stopped working across WordPress upgrades and nobody noticed — including us, reading our own pages. Fail-closed is the wrong default for content: the failure is invisible by construction, which means it is also unreportable.
  • Ask what your control does when it is broken, not when it works. A control that defers and breaks leaves the reader in their own settings; a layer that overrides and breaks strands them in ours. From a screenshot the two are identical — which is exactly why the distinction has to be written down rather than trusted to look obvious.
  • Measure what the reader can do, not what the document reports. The browser reported 1,356 pixels of overflow. Asked to actually scroll the way a reader would, it moved 76 and stopped — wrong by a factor of thirteen, with a whole paragraph already written around the bad number.
  • The fix broke something adjacent, and the honest part is how it got caught. One extra property beat a theme rule wrapped in :where(), which contributes no specificity, and every code block on the site went full-bleed and left-aligned. The 320px test we had just finished building did not catch it. Ryan caught it on sight. Measurement and eyes fail in different directions, and this week keeps proving you need both.
  • Argue with your sources. Webtoon spacing is largely a tool for controlling a reader — suspense, a timed reveal. That is fiction craft and the wrong goal for a reference. A webtoon withholds; we front-load. The technique transfers, the suspense does not.
  • Filing follows subject, not history. Ten kilobytes of layout argument sat under “writing style” for months, purely because that is where the page it was written into happened to live. Nobody decided that. It just accumulated — which is the same failure as the Design Field Guide doing two jobs on Wednesday, and GRADE EtD sitting under Design since April.
  • We would rather publish the failing numbers than a page claiming we pass. A guide that only describes the parts that already work is marketing. Zoom and Reflow ships with what is unfixed named out loud: the embed containment approach is undecided, 652 pages are untested, focus indicators and touch targets are still undocumented.

Gratitude

  • A week’s worth of commits legible enough that Friday could reconstruct Sunday.
  • The site/ mirror, which turned six canonical URLs into a grep instead of six fetches — and is the only reason the irregular Week 31 slug got noticed rather than guessed.
  • The Website Specification for marking reduced motion required rather than recommended. A clear external standard is what turned a vague intention into a thing we could be caught failing.
  • Our own Sensory Fluid page, which had already said the physiology out loud — “Touch tolerance fluctuates… That’s not inconsistency. That’s physiology.” — so the motion page didn’t have to invent the argument, just find it.
  • Ryan’s eye on the full-bleed code blocks, an hour after the fix that caused them shipped.

Saturday — 2026-08-08

Accomplishments

  • Repaired this reflection. Friday’s whole afternoon — the four new Design Field Guide pages, the 80-animation audit, the reflow measurement and the regression it caused — was missing from it entirely. Added, with eight insights drawn from work we had not seen when we wrote the first pass.
  • Closed the changelog’s Thursday hole. Two bullets logged: the Raindrop collection becoming qmd’s sixth searchable corpus, and the 29 dead glossary links plus the 37-source inbox run. Week 32’s running file is now complete through Friday, which matters because tomorrow’s draft reads that file and nothing else.
  • Built day sectioning into the running changelog — --day on the append helper, ## Thursday — 2026-08-06 headings created in date order, three guards, 24 assertions passing in a scratch directory. Takes effect with Week 33; Week 32 stays flat on purpose.
  • Updated the contract in four places rather than one — changelog-this writes the sections, draft-weekly-changelog and draft-monthly-newsletter are told plainly not to let them become the post’s structure, and CLAUDE.md carries the rule.
  • Committed as two commits, never merged: the build with a message describing it, and a separate notes/ snapshot.

Then the bulk of the day, which was on ★ stuff.

  • Gave it a public changelog, backfilled to day one across all 121 commits since launch — every piece as it arrived, every substantial revision, every audit, with the errors named. The corrections were already being logged, in a per-piece ledger inside the repository where you’d have to go looking: a record kept rather than a record published. Logging sits beside fact-checking now instead of after it.
  • Wrote down The Design System for the first time — the typeface reasoning, the --sp-* tokens, accents held within sixteen points of each other in CIELAB lightness, body text at 18.84:1. It publishes the value that fails, too: --sp-dim-soft at 3.27:1 against AA’s 4.5:1, named as such and confined to colophon footers and disabled controls.
  • Fact-checked the palette’s own origin story and found it false. It was remembered as derived from Solarized, and not one of Solarized’s sixteen values appears anywhere in the collection. The accents are Tailwind v3’s 400-weight ramp over custom near-blacks. Credit now goes to Solarized’s method, not its colors.
  • Fixed five failures that produced no symptom at all. 44 of 46 pages printed blank or illegible — the Bone Song poem printed an empty sheet. The Manifesto had been publishing with its own <h1> invisible, along with eight other runs of text, behind nine cyclic custom properties each declared as itself. Most visitors had never seen Atkinson Hyperlegible, because a request for weights 200..900 against a release that publishes 200–800 returned HTTP 400 with no @font-face rules at all and everyone silently fell back to system fonts. 14,040 words of field notes across eight guides had never once reached a printed sheet, collapsed behind a click that paper doesn’t have. And the new search index was covering 12% of the About page. Seven contrast failures went in the same pass, including two CC BY-SA links sitting at the browser’s default blue — 2.11:1.
  • Put Helen Edgar’s name on the masthead. ★ stuff is formally a Stimpunks Foundation × More Realms collaboration now — both organizations on all 49 pages, equal weight, in the brand line, the covers, the colophon footers, og:site_name, and a JSON-LD publisher array of two. More Realms had been one of the collection’s sources and most of its weather for months, credited the way you credit a citation rather than a co-publisher.
  • Published Cosmic Connections — Helen’s coinage, until now just a front-page tagline, now a piece showing how the three sites actually feed each other with receipts in both directions. It names two histories that were already inside the phrase and had never been said out loud: James Burke’s Connections (BBC, 1978) and Carl Sagan’s The Cosmic Connection (1973), where we are made of star-stuff first reached print. And it credits Kirby Ferguson by name for Everything Is a Remix.
  • Shipped two pieces: Zine No. 30, Always Migrating, Helen’s guest zine written after Brigit Anna McNeill’s The Living Page workshop, with every citation re-verified at source and the colophon naming what isn’t settled; and Field Guide No. 8, The Ways of Migrating, fifteen entries centred on partial migration — populations holding both migrants and residents.
  • Made the collection searchable — one record per spread and per entry, running entirely in the reader’s browser with no server, no analytics, and nothing typed leaving the device.

Insights and Takeaways

  • We spent this whole session believing it was Friday. The newest commit and the newest file on disk were both Friday pre-dawn, so we inferred the date from the filesystem instead of reading the clock — and a full day of work had happened in between. Nothing about the work was wrong; the record was, silently, and it took Ryan saying “it’s 7:26 on Saturday” to fix it. That is this week’s dominant error wearing yet another costume: reading state out of an artifact and then building on the guess. The artifact was real and the inference was reasonable. It was still wrong.
  • A reflection written from the record inherits the record’s gaps, and adds none of its own warnings. The first pass didn’t say “Friday looks thin, check whether more happened” — it presented a thin Friday as a complete Friday. A summary is only as honest as its most confident sentence.
  • The case for day sectioning was never readability. Thirty-one bullets averaging 500 words don’t get digestible from seven headings. What they get is the ability to show absence — Thursday afternoon went missing and was found two days later by accident, whereas an empty day heading would have said so at a glance. Worth being clear about which problem a change actually solves, because the stated reason and the real reason were different here.
  • The guard caught us on its own first run. Our test suite was written against Week 33 dates and the out-of-window check refused them, correctly, because Week 33 hadn’t started. We kept that as an explicit test case — walking into the guardrail on purpose, for the fifth time this week.
  • The cost of the change was the contract, not the code. Fifteen lines of insertion logic; four files that had to agree about what the headings mean. A writer updated without its readers is the same failure as the cron task that inlines its own copy of the ingest steps.
  • Declined to retrofit Week 32, the night before its draft. The temptation was real — we had the day mapping right there in this file. But reordering thirty-one bullets hours before the thing that reads them is a variable nobody needs, and Week 33 starts clean tomorrow anyway. The right time to change a format is at a boundary.
  • A belief that is correct about one project will walk into another one and stay. The Solarized memory was confident because it is true — our palette really is Solarized down to #fdf6e3 and #002b36. Carried across to ★ stuff it was simply false, and holding it felt no different from holding a fact. That is the same error as this morning’s, where we read the date off the newest file instead of the clock: a sound inference from real evidence, applied one context over. Two instances in one day suggests the failure mode isn’t carelessness — it’s that a transplanted belief carries its original confidence with it.
  • Five failures, one shape, and it’s the week’s shape. Text behind a variable resolving to nothing. A font request that fails without erroring. A page that only breaks on paper. Notes that only vanish in print. An index reporting a healthy count of a tenth of a page. A thing that does not appear looks exactly like a thing that was never there — the sentence Friday’s motion audit produced, now with five more instances behind it. You cannot find these by reading the page. You find them by printing it, requesting it, and counting what you actually got.
  • “Did we get at least three records?” is not a coverage check. The About page has exactly three repeating units, so that check passed while capturing 12% of it. A test that asks whether something arrived will pass forever on a fraction. Ask how much arrived. It measures coverage now and prints a figure per page — all 50 at 100%.
  • The author’s machine is the least representative browser you own. The font bug survived however long it survived for the dullest possible reason: Atkinson Hyperlegible is installed on the machine where the pages get built, so they looked right in exactly one place — the place nobody visits from.
  • A shared mark is not a shared byline. The masthead is org-level; per-piece credit stayed exactly as it was, because three of those zines are Helen’s outright and in her own voice. Same rule we wrote into our own house last week when her sites came into the mirror: the attribution travels with the work, not with the folder it lands in.
  • An uncredited phrase is not a phrase you coined — it’s one you borrowed and forgot. Everything Is a Remix had been doing duty as a section heading without Kirby Ferguson’s name anywhere near it. Worth a standing sweep for the others.
  • The side effect beat the feature. Building search meant every one of the seventy field-guide entries needed a real id, so they’re individually linkable now. That has nothing to do with search and is probably the most useful thing the day produced.
  • The care note on migration is said twice on purpose, and it should be. Migration as a way of being is not a frame for human displacement — people forced from home by war, persecution, poverty, or a heating planet are surviving decisions other people made, not following a tug, and reading that as natural or seasonal would launder it. A metaphor that flatters the writing can still cost somebody, and the check is worth running on every piece, not just this one.

Gratitude

  • Ryan catching the missing Friday rather than letting the reflection stand. It would have recorded a version of the week that didn’t happen — and quietly, since nothing in it looked wrong.
  • The correction arriving as a plain fact — the timezone and the actual time — which is the fastest possible way to fix a wrong premise.
  • A week that ends with the tool for keeping the next one, built at the boundary instead of promised.
  • Helen Edgar, whose work has been most of ★ stuff’s weather for months and is now on the masthead where it belonged. And the ledger running in both directions, so the collaboration is demonstrable rather than gestural.
  • Brigit Anna McNeill’s The Living Page workshop, which No. 30 came out of.
  • The print dialog, of all things — the only tool in the building that could have found four of Saturday’s five invisible failures.

Looking Back

Meaningful Moments

  • The library sent us shopping. Tuesday morning the concept layer told us Stenning’s book — our best evidence the Cavendish Space idea travels beyond us — wasn’t on the shelf. By Tuesday afternoon it was, and reading it properly was better than the glossary quote had suggested. First time our own tooling has closed a loop like that.
  • Wednesday’s three retractions. Not fun, and the best hour of the week. Each one was the same error — reading intent out of an artifact — and the worst of them had stamped five public community resources do not quote without permission, which would have suppressed citation of work whose authors published it deliberately.
  • The prune that earned its keep by dinner. Built at breakfast Wednesday to catch the corpse a page leaves when it moves; fired in production that evening on a re-slug, on an incremental run, with no human in the catch.
  • Handing the garden to Helen instead of a copy of ours, and finding out the on-ramp had already been written and was just filed where nobody would look for it.
  • Putting Helen’s name on the ★ stuff masthead on Saturday, and writing Cosmic Connections with the ledger running both ways. Her coinage had been sitting on the front page as a tagline for months. The week opened with her sites arriving in our mirror as a favour she granted and closed with her as a co-publisher — which is a better arc than anything we planned.

Life is Teaching Me

  • A check nobody has watched fire is not a check — it’s a hope. Learned four times in seven days: the staleness check that couldn’t fire, the prune that deleted 1,014 files, the library script that ate its own work and looked harmless because a second script put it back, and the drift check that found three errors a minute after existing. The lesson isn’t “write more checks.” It’s walk into the guardrail on purpose and watch what happens.
  • A description nobody re-measures is just a story we liked. The Knowledge System page was wrong within two days of publication, and tend-the-garden still said “33 opaque” hours after clearing that backlog to zero. A maintenance tool made stale by its own maintenance run.
  • A belief about your own work is not evidence about your own work, however sincerely held. Friday’s version was the sharpest: we thought one animation was left on the site and there were eighty, on pages we read constantly. Same family as the checks that never fired, but worse in one respect — nothing was broken and nothing looked wrong. It just wasn’t true. The counter is the only thing that can tell you that.
  • Having a page and having a path to it are different achievements, and only one of them is finished when you hit publish. Most of Wednesday and Thursday was the second kind.
  • We publish more than we hold. That’s the uncomfortable finding of the week and it hasn’t been fixed, only measured.
  • The system doesn’t create capacity. It stops us spending the capacity we have on finding things we already had. Worth repeating to ourselves before the next burst of enthusiasm, given how wary we are of techno-solutionism and technoableism.

Habit Insights

  • Seven days of this pace is not a repeatable rhythm, and nothing in the system depends on it continuing — that’s deliberate. No streaks, no dashboard turning red, urgency cues left out on purpose.
  • The changelog habit held all week and paid for itself immediately: the weekly and monthly drafts came out of it, and this reflection was reconstructable because of it.
  • The scheduled jobs quietly worked — nightly notes backup, Monday ingest, Monday audit — and the one that misbehaved got narrowed rather than switched off.
  • The gap is the daily. Everything captured this week was captured because it produced a commit. Anything that didn’t produce a commit is gone. Friday found a second version of the same hole: Thursday afternoon’s work is in git and in this reflection, but almost didn’t make it into the changelog.
  • Doing it in public made the internal copy feel optional, and it fell six weeks behind. The Notion Week in Review sat untouched since 2026-06-23 while every one of those weeks was reviewed — publicly, on the website, on time. The work was never skipped; only the copy the team reads was. Worth noticing that the habit that lapsed is the one with no audience waiting on a specific day.

Looking Forward

One Change I Can Make Next Week

Write the daily reflection on the day, not at the end of the week from a git log. Three or four lines is enough — one accomplishment, one thing I got wrong, one thing I’m grateful for. The reconstruction above recovered the work and lost the experience, which is exactly the failure this practice exists to fix. And per the rest of the week’s lessons: no streak, no guilt for a missed day, degrade gracefully.

Half of that is now easier than it was on Monday: the running changelog is sectioned by day from Week 33 on, so the day a thing happened gets recorded when it’s logged rather than reconstructed later. That is the container, not the habit. The habit is still the open question, and it’s mine — the tooling can make a missing day visible, and it cannot make me sit down and write three lines about how the day went.

I’m Looking Forward To

  • Sunday 2026-08-09: Campfire Learn Together — Code for the People. Watching a documentary about work I helped start, with people who’ll argue with it.
  • Drafting the Week 32 changelog, which is going to be the longest one yet.
  • Turning the eight glossary drafts into real entries so those 29 dead links stop 404ing.
  • Helen’s terminal learning week, and her garden being hers.

Posted

in

by

Discover more from Stimpunks Foundation

Subscribe now to keep reading and get access to the full archive.

Continue reading