PATTERNS
[this was fully ai generated]
Reusable structures, moves, and seeds mined from the blog. Not a blog. A source. Patterns are public. Some are code. Append as new ones emerge; merge duplicates; prune patterns that turn out not to be real.
---
Rhetorical structures (how posts are shaped)
motivation-first opening
Open with why you did the thing. Not "here is a concept" — "I wanted X and built Y." The reader arrives in the middle of your life.
- Seen in:
accidentally-fastest-event-system,ten-lanes,three-zeros
taxonomy as body
When the post is about naming distinctions, each section is one name. Headers are the taxonomy, not filler.
- Seen in:
three-zeros(0.0.0 / 0.0.x / 0.1.0 / 0.x.0 / 1.0.0),death-shape(five axes)
honest closer
End with one of three moves:
- (a) puzzle inviting challenge —
accidentally-fastest-event-system: "Nerd-snipe gladly received." - (b) admission of what you don't yet know —
ten-lanes: "The next post will say what went wrong. ... We will see." - (c) stance you're committing to —
circles: "I choose to dance."
companion pieces
Pair a "here's the happy path" post with a "here's where it breaks" post. The second is not an update; it's a different question about the same object.
- Seen in:
accidentally-fastest-event-system+death-shape
numbered claims as coda
After the argument, distill the essay into N numbered claims. Shippable as a graphic. The claims are the compressed manifesto.
- Seen in:
vibe-blogging-manifesto(7 claims) - Coded as:
<Claims>+<Claim>
---
Thinking patterns (how ideas are worked out)
name the thing
Give the distinction a memorable label. Three zeros, ten lanes, the deal, the seam gate, vbb. The name is a handle that lets the idea travel.
distinguish adjacent concepts
Most of the value in a post is teasing apart two things people conflate. Pre-1.0 semver collapses three distinct lifecycle stages. Fast conflates happy-path speed with survival under stress. AI writing conflates slop with leverage.
skepticism toward your own numbers
When a result is surprising, the first hypothesis is your harness is lying. "It took me two bugs to believe the C++ numbers." Node's 16 GiB "ok" turned out to be Linux lazy-allocation, not real memory.
- Seen in:
accidentally-fastest-event-system,death-shape
explicit tradeoffs
Every "X wins" comes with "X also loses at Y" and "here's the unfair part." A post that only shows wins isn't a post; it's marketing.
- Seen in:
accidentally-fastest-event-system(Where it wins / Where it loses / Where the comparison is unfair)
pre-commit and admit the bet
Publish the plan before running it. Label it explicitly as a bet. "The whole plan is an ante."
- Seen in:
ten-lanes
exit routes, not preaching
End with an invitation, not a conclusion. "If you can X, please Y." "If you have ideas decaying in your head, do this."
- Seen in:
accidentally-fastest-event-system,vibe-blogging-manifesto,death-shape
cite the row
When numbers matter, cite them to rows in an auditable file. The row is the source of truth; the post is the interpretation. Link results/all.csv line numbers, not screenshots.
- Seen in: both event-system posts
Socratic self-dialogue
Work out a hard question by quoting yourself asking it, then answering, then naming the trap. "First trap:" / "Second trap:" / "Third trap:".
- Seen in:
circles
---
Style patterns
short declarative sentences
"Writing is expensive. Thinking isn't." "Zero is not a default. It is a specific thing that does not exist yet." Drop commas, keep full stops.
tables for density
When comparing N things across M dimensions, a table. Prose comparing 5 libraries across 5 axes is unreadable.
code/asm when precision matters
Show the thing, not a description of the thing. Hot loop in asm. Proto envelope in code. Handler signature.
self-aware nerdy humor
Asides that assume the reader gets the joke. "Great fucking job" (Go callback). "Nerd-snipe gladly received." Keep sparse.
italics for emphasis
Italics mark a word that wants hitting. Wait, try it, use freely. One per paragraph, max.
bold for key claims only
Bold is reserved for the essay's landable assertions. If every third sentence is bold, none are.
nerd metaphors with technical precision
When picking a metaphor, prefer one that is actually technically correct, not merely evocative. Hairy ball theorem for "you have to pick a model." Monomorphization for "the trampoline happens at subscribe time, not dispatch."
---
Coded patterns (patterns-as-components)
Some patterns live as MDX components. Using the component is a commitment to the pattern.
<Claims> + <Claim n="N">
Numbered compressed claims at the end of an essay. N claims = the essay's bones.
- File:
src/components/Claims.astro,src/components/Claim.astro - Used in:
vibe-blogging-manifesto
<Examples> + <Example kind="simple|harder|wild">
When you've argued a principle, show it at three scales: the obvious case, the harder case, the case that surprises you. Escalating difficulty.
- File:
src/components/Examples.astro,src/components/Example.astro - Used in:
three-zeros(CLI / plugin library / restaurant)
<ExplainableMetaList> + <ExplainableMetaItem>
Metadata with inline explanations for unfamiliar conventions.
- File:
src/components/ExplainableMetaList.astro
Candidate components not yet coded:
<Tradeoffs>— three-column "wins / loses / unfair" layout<DeathMatrix>— the N-library × M-axis failure grid from the stress-test post<Bet>— callout box for pre-committed predictions with a resolution date
---
Seeds (future posts from unspent threads)
problem space, solution space, implementation space
Promised by the manifesto. Explain the trichotomy: what you're thinking about (P), how you're thinking about it (S), the words/code/design (I). Vbb claims P+S are yours and I is the model's. Applies equally to code (vibe coding).
the system is the real artifact
The manifesto asserts it; a follow-up post explains it. What the system actually is: prompt library, taste feedback loops, pattern files like this one, style calibration, workflow. Same model, different system, different output.
zero is not a default
Generalize the three-zeros move. Places where "empty" or "null" or "zero" is treated as absence when it's actually a specific, nameable thing. Null states, uninitialized variables, empty strings, pre-MVP repos. The naming disambiguates.
flat beats clever at scale
Stress-test taught this: library performance at N=10M depends on how you store subscribers, not how you dispatch them. Generalize: clever data structures win microbenchmarks and lose at scale. Enumerate cases.
a taxonomy of failure modes
Five libraries, five ways to fail. Each failure mode (hang / OOM / segfault / wrong-result / stack-overflow / silent-drift) tells you which class of bug the library has. A vocabulary for talking about failure, with field examples.
the seam gate
The Muxon planning move. Decide interfaces before bodies. Applies to APIs, org design, writing, any collaborative work where N agents move independently once N−1 seams are fixed. Parallelism is a seam-design problem.
axioms are chosen
From circles. Any ultimate foundation is unfounded; the question is whether you hold it knowing that. Rich follow-up: how chosen axioms shape technical taste, not just ethics. "Flat beats clever" is also an unfounded axiom I hold.
the aggregate vbb
(Also in TODO.md.) Vbb at scale → more thoughtful publishing → a knowledge graph of blogs → AI-re-readable corpus → emergent patterns. Systems-level counterpart to the personal manifesto.
cross-language benches are harness-consistency checks
The real deliverable isn't the rankings; it's the assurance your harness isn't lying. Publishing the harness as the primary artifact, rankings as a side effect.
the review agent as cheap judgment substitute
From ten-lanes. Fresh context + same model + a spec → an independent reviewer. Post: where it works (spec-checkable violations) and where it doesn't (taste, scope, novel situations).
what unsubscribe during dispatch teaches about API contracts
Five libraries, five different correct answers. The move: name the class of question (concurrent mutation of the iterable you're iterating) and show how different languages/libraries dissolve it differently. Generalizes beyond event buses.
the two-bugs rule
It took two bugs to believe the C++ numbers in the event-system post. Post: the heuristic — when a cross-system result is surprising, budget two bugs' worth of suspicion before trusting it. Applicable to benchmarks, ML eval, cost analyses.
---
Taste notes
Observable preferences from the corpus, useful for calibration:
- empirical over theoretical — always cite a row, always show the asm
- flat over clever — at scale, the dumb data structure wins
- interfaces over implementations — seams, trait signatures, proto envelopes first
- distinctions over definitions — posts name differences, not concepts
- ante over prediction — publish the plan before the outcome, admit the bet
- invitation over conclusion — end with "if you can X, please Y"
- groundlessness owned — axioms are chosen; the honest move is to hold them knowing that
- precision in metaphor — if you reach for a theorem, use it correctly
---
Cross-references
MEMORY.md/CLAUDE.md: how the author writes, how Claude should assistTODO.md: post ideas held back pending developmentsrc/components/*.astro: patterns that have become codesrc/content/posts/**: patterns in their rendered form
View source: PATTERNS.md on GitHub