Fritz Hut | Thoughts & Commentary

Forensic reads of the artifacts your engineering team already generates — and one reversible experiment per diagnosis.

The Element Tiles Don’t Spell the Sentence: Reading ‘I Wear This Shirt Periodically’

Editorial note: This publication and Quirky Cotton Collective share an owner.

The shirt reads I WEAR THIS SHIRT PERIODICALLY in plain caps, and beneath it sit four tiles in the visual grammar of the periodic table: 53 I, 74 W, 22 Ti, 16 S. The tile symbols are I W Ti S. They do not spell the sentence. That gap is the whole joke, and it is also the most interesting thing about the design.

Most periodic-table pun shirts cheat. They arrange element symbols until the letters happen to form a word, then print the word and call it chemistry. This one does something slightly more honest: it gives you the atomic numbers, the symbols, and the sentence, and lets you notice that the tiles are not a spelling. The tiles are a reference to the sentence. The sentence is the payload. The chemistry is the costume.

§ 1 — What the tiles actually say

Read the tiles as a chemist would read a row: I, W, Ti, S. Iodine, tungsten, titanium, sulfur. Atomic numbers 53, 74, 22, 16. Those are real elements with real numbers, and the numbers are correct for the symbols shown. That is not nothing. A lot of novelty shirts get the atomic numbers wrong, or use a symbol that doesn’t exist, or invent a tile that looks periodic-table-ish without being periodic-table. This one holds up to a literal reading.

But the literal reading is not the sentence. The sentence is I wear this shirt periodically. The tiles are I W Ti S. If you try to pronounce the tiles as a word, you get something closer to “eye-double-you-tie-ess” than to “periodically.” The design is not asking you to sound it out. It is asking you to see the shape of the joke: four element tiles standing in for four words, with the last word — periodically — doing double duty as both the adverb and the periodic-table reference.

That is a more disciplined joke than it first appears. The shirt does not claim the tiles spell anything. It claims the wearer wears the shirt periodically, and it illustrates that claim with periodic-table tiles. The illustration is thematic, not phonetic. The pun lives in the word periodically, not in the tiles.

§ 2 — The diagnosis: a slogan that knows what it is

I spend a lot of time reading artifacts teams produce — RFCs, ladders, PIPs, retry logs — and the failure mode I see most often is a document that wants to be two things at once. A ladder that claims to be a promotion guide but functions as a retention filter. A postmortem that claims to be blameless but names a person in the timeline. A slogan that claims to be a promise but is actually a vibe.

This shirt is the opposite. It is a slogan that knows exactly what it is: a joke about frequency, dressed in the visual language of chemistry. It does not promise to make you a chemist. It does not claim the tiles spell the sentence. It does not ask you to believe anything false. The only claim it makes is that the wearer wears it periodically, which is either true or not, and the shirt is not responsible for which.

That is a low bar, but it is a bar a surprising number of team artifacts fail. The shirt passes because it separates its register — the sentence — from its decoration — the tiles. The decoration is accurate. The sentence is the joke. Neither one is pretending to be the other.

§ 3 — The signal to look for

If you want to use this shirt as a diagnostic — and I think you can, carefully — the signal is whether the reader notices the gap. Someone who reads I W Ti S and tries to pronounce it as a word has missed the joke. Someone who reads it and says “oh, the tiles are a reference, not a spelling” has got it. The shirt is a small test of whether a reader can hold two registers at once: the literal and the thematic.

That is the same skill that separates a good incident review from a bad one. A bad review reads the timeline literally and assigns blame to the person whose name appears most often. A good review reads the timeline thematically and asks what system boundary allowed the failure to propagate. The shirt is not about incident review. But the cognitive move — notice the gap between the artifact and its meaning — is the same move.

§ 4 — The reversible experiment

Here is the experiment, and it is small. Pull one artifact your team produced this quarter — a design doc, a retro summary, a status update — and read it twice. First read it literally: what does it actually say, word for word, including the parts that are decoration? Then read it thematically: what is it trying to do, and does the decoration support that or undermine it?

The signal you are looking for is a gap between the two readings. If the literal reading and the thematic reading agree, the artifact is doing its job. If they diverge — if the decoration is claiming something the sentence does not, or the sentence is promising something the decoration cannot deliver — you have found a slogan pretending to be a promise. That is the failure mode this shirt avoids, and it is the failure mode most team artifacts fall into.

The rollback plan is simple: if the two readings agree, you have learned nothing new and you can stop. If they diverge, you have a specific sentence to rewrite, not a general feeling of unease. That is the whole point of reading artifacts this way. You are not looking for vibes. You are looking for the exact place where the decoration and the claim stop matching.

The shirt, for what it is worth, passes. The tiles are accurate. The sentence is the joke. The gap between them is the point. You can find it here if you want to test whether your own readers notice.

Most team artifacts do not pass. That is not a reason to stop reading them. It is a reason to read them twice.

The Composition Notebook Is a Costume Because Everyone Already Knows the Object

§ 0 — The Artifact

The shirt does not show a notebook. It shows a picture of a notebook cover: a black-and-white speckled rectangle, a dark binding strip down the left edge, and a white ruled label headed COMPOSITION. Inside the label, an outlined ghost and an outlined pumpkin sit where a student’s name would go. The garment is the costume. The notebook is the reference.

That distinction is the whole design, and it is worth taking seriously for a minute. A composition notebook is one of the few objects in American life that is recognizable from a rectangle and a font. You do not need the spiral, the pages, the weight, or the smell of the glue. You need the speckle pattern and the label. The shirt bets on that. It bets that the viewer’s brain will complete the object from a flat, black-and-white print on fabric, and it bets correctly, because the composition notebook is less a product than a shared visual constant — the thing you bought in August because the supply list said so.

This is not a review of a shirt I wore. I have not worn it. What I have is the retail garment image and the design as printed, and that is enough to make an argument about what the object is doing. The argument is this: the composition notebook works as a group costume because it is a low-resolution object. It survives being reduced to a rectangle. Most costumes do not.

§ 1 — The Signal in the Speckle

Look at what the design chooses to keep. The speckle field is black and white, irregular, and dense enough to read as marbled board rather than as noise. The binding strip is a solid dark band, not a gradient, not a texture. The label is white with ruled lines and a header in a plain serif-ish face. The ghost and pumpkin are line drawings, not filled shapes, and they sit inside the label’s ruled area as if they were written there.

Every one of those choices is a compression decision. The designer had a physical object with a hundred visual details — the stitched binding, the rounded corners, the page edges, the printed multiplication table on the inside cover — and kept four: speckle, binding, label, header. That is the same discipline as a good error message. You cannot ship the whole stack trace to the user. You ship the frame that lets them reconstruct the stack trace themselves.

The ghost and pumpkin are the tell that this is a costume and not a stationery tribute. They are small, they are inside the label, and they are outlined rather than solid. If they were large and filled, the shirt would read as “Halloween notebook.” Because they are small and contained, the shirt reads as “a notebook that has been decorated,” which is a different and more specific thing. It is the visual equivalent of a comment in the margin. The object stays the object; the holiday is an annotation.

§ 2 — The Diagnosis: A Costume Is a Shared Compression

Here is the system failure this design avoids, and it is the same failure that makes most group costumes fall apart. A group costume only works if every member can independently arrive at the same recognizable silhouette from a cheap, flat, mass-produced garment. That is a compression problem, not a creativity problem. The costume has to survive being printed on a shirt, seen from across a room, and identified by someone who is not looking for it.

Most “group costume” shirts fail this test because they encode a joke rather than an object. A joke requires context. An object requires only recognition. The composition notebook is on the object side of that line. You do not need to know the wearer, the school, the grade, or the punchline. You need to have seen a composition notebook, which in the US is roughly everyone who attended school after about 1980 and a fair number of people who did not.

That is why the design can get away with so little. The speckled rectangle is doing the work that a caption would otherwise have to do. The shirt is not saying “I am a teacher.” It is saying “I am a notebook,” and letting the viewer supply the rest. The teacher-costume reading is a second-order inference, and it is available because the object is already loaded with school. The design does not have to assert the connection. It only has to not break it.

§ 3 — What the Label Actually Promises

The word COMPOSITION is the most interesting text on the shirt, and it is interesting precisely because it is not a slogan. It is a category label. It tells you what kind of notebook this is, in the same way a field name tells you what kind of value to expect. The label is not marketing. It is a type declaration.

That is a useful distinction for anyone who writes for a living, which includes most engineers. A slogan is a claim about the wearer. A label is a claim about the object. The composition notebook label does not say “smart” or “organized” or “teacher life.” It says composition, which is a word about how the pages are bound and what they are for. The shirt inherits that restraint. It is a costume that refuses to explain itself, and that refusal is what makes it usable across a group of people who would never agree on a caption.

I would go further. The label is the reason this works as a group costume rather than a solo one. A group needs a shared artifact that does not require a shared opinion. The composition notebook is exactly that: a thing everyone used, nobody loved, and everybody recognizes. The ghost and pumpkin are the only concession to the occasion, and they are small enough that two people wearing the same shirt can disagree about whether it is a teacher costume, a student costume, or just a notebook, and all be right.

§ 4 — The Reversible Experiment

If you want to test the compression argument, the experiment is cheap and reversible. Put the shirt on a table next to a plain black tee and a shirt with a printed slogan. Ask three people who did not see you set it up to say what each one is. Do not prompt them. The prediction is that the composition notebook shirt gets identified as an object (“a notebook”) before it gets identified as a costume, and that the slogan shirt gets identified as a message before it gets identified as anything else. If the notebook shirt instead reads as “a shirt with a pattern,” the compression failed and the design is doing less work than it looks like it is.

The rollback is trivial: you have lost nothing but a few minutes and the mild embarrassment of asking coworkers to look at a shirt. The experiment does not require you to buy anything, wear anything, or make a claim about the product’s quality. It only tests whether the visual argument holds — whether a rectangle, a speckle, and a label are enough to summon the object. My reading of the printed design says they are. The shirt is available at the Quirky Cotton Collective listing if you want to run the test yourself.

The larger point is not about Halloween. It is about what makes a shared reference usable. The composition notebook is a low-resolution object with a high-resolution history, and the shirt is smart enough to print the low-resolution version. Most team artifacts fail in the other direction: they try to encode the history and lose the object. The notebook shirt is a reminder that the recognizable thing is usually the compressed thing, and that a costume, like an error message, only works if the viewer can reconstruct the rest.

§ 5 — Editorial Note

This publication and Quirky Cotton Collective share an owner; this is not an independent review.

The Caution Triangle Is the Honest Part: Reading the ‘Not Friendly, Do Not Touch’ Shirt

Editorial note: this publication and Quirky Cotton Collective share an owner.

The shirt reads NOT FRIENDLY across the top, DO NOT TOUCH below it, and between the two lines sits a yellow caution triangle containing a crossed-out hand. That’s the whole design. No mascot, no punchline in smaller type, no second read. The words are set in the flat, condensed lettering of a hazard placard, and the triangle does the work a triangle always does: it tells you the warning is not decorative.

I want to argue something specific about this object, and it isn’t that introverts are secretly warm or that boundaries are healthy. It’s narrower. The design is interesting because it borrows the grammar of industrial signage to make a personal claim, and in doing so it exposes the difference between a slogan and a usable promise. That difference matters to anyone who has ever written a team norm, a support rotation, or a status page.

§ 1 — What the sign language actually says

Look at the components in order. The caution triangle is the most standardized element on the shirt. Yellow field, dark border, a symbol inside. You have seen this shape on forklifts, on wet floors, on the back of a truck. Its meaning is not “the wearer is grumpy.” Its meaning is hazard ahead, adjust behavior. The triangle is a request for a change in the reader’s conduct, not a description of the wearer’s mood.

The crossed-out hand is the second move. A hand with a slash through it is prohibition, the same family as “no entry” or “do not press.” It’s a negative instruction about a physical action. Combined with the triangle, the design is doing something slightly unusual: it’s a warning about a prohibition. The hazard is the touch itself.

Then the lettering. NOT FRIENDLY is a self-description, and it’s the only part of the shirt that makes a claim about the person wearing it. DO NOT TOUCH is an instruction to everyone else. The two lines are different kinds of sentence stacked on top of each other, and the triangle sits between them like a hinge. Read top to bottom, the shirt says: here is a condition, here is the hazard symbol, here is the action to avoid. That’s a complete sign. It has a subject, a severity, and a required behavior.

My reading, not a historical claim: the design works because it is legible as a sign before it is legible as a joke. The humor arrives on the second pass, when you notice that the hazard being flagged is a person. The caution triangle is the honest part because it doesn’t pretend the message is friendly. It just tells you what to do.

§ 2 — The diagnosis: a slogan is not a promise

Here’s the failure mode I keep seeing in team artifacts, and it’s the reason this shirt is worth more than a chuckle. Teams write slogans and mistake them for promises.

A slogan is a sentence someone wants to be true. A promise is a sentence with a defined trigger, a defined response, and a defined owner. “We value work-life balance” is a slogan. “If you’re paged after 10 p.m., you may hand off to the secondary without justification” is a promise. The first one cannot be violated because it specifies nothing. The second one can be audited, and that’s what makes it useful.

The shirt, read as a sign, is on the promise side. DO NOT TOUCH has a trigger (an approach), a response (stop), and an implied owner (the wearer, who chose to put it on). It is terse, but it is operational. Compare that to the average onboarding doc, which says something like “we’re a collaborative team that respects focus time” and then schedules six hours of meetings. The doc is a slogan. The calendar is the promise, and the calendar wins.

This is the artifact to pull if you want to test your own team’s norms: take the sentence you repeat most often about how the team works, and ask whether it has a trigger, a response, and an owner. If it doesn’t, it’s a slogan, and it will lose to whatever the calendar and the pager actually enforce. The signal to look for is a norm that everyone can recite and no one can point to a mechanism for. That gap is where the dysfunction lives.

§ 3 — Why the blunt version is the kinder version

There’s a temptation to read NOT FRIENDLY as rudeness. I think that’s backwards. The shirt is doing the reader a favor by front-loading the constraint. A person who wears this has told you, before you say a word, that unscheduled contact is not welcome. That’s more information than most workplace norms give you, and it arrives earlier.

The alternative is the polite version: a person who is not friendly, does not say so, and then resents the touch. That version costs everyone more. The reader spends social energy on an approach that was never going to land, and the wearer spends the same energy managing irritation. The sign compresses that exchange into a glance. It’s the same logic as a status page that says “degraded” instead of “we’re looking into some reports.” Blunt is not the same as hostile. Blunt is a load-bearing wall.

I’d push the analogy one step further, carefully. A warning sign is only useful if it’s accurate. A wet-floor sign on dry tile trains people to ignore wet-floor signs. A DO NOT TOUCH shirt worn by someone who actually wants to be approached is the same failure: it spends the credibility of the sign on a message the wearer doesn’t mean. The design’s honesty is a feature only if the wearer’s behavior matches it. That’s true of team norms too. A norm that gets violated without consequence is a sign on dry tile.

§ 4 — The experiment: audit one norm for a trigger

Here’s the reversible experiment, and it takes about twenty minutes. Pick the norm your team states most often — the one in the onboarding doc, the one a new hire hears in week one. Write it down verbatim. Then answer three questions in a shared doc: what event triggers this norm, what response does it require, and who owns the response when it doesn’t happen. If any of the three is blank, you’ve found a slogan.

The rollback plan is trivial: you haven’t changed anything yet. You’ve only written down what the norm actually says. If the exercise produces nothing, delete the doc and you’ve lost twenty minutes. If it produces a gap, you now have a specific sentence to fix rather than a vague feeling that the team is dysfunctional.

The shirt is a reminder that the smallest usable message is a sign with a symbol, a condition, and an instruction. Most team norms have the condition and skip the instruction. The caution triangle is the part everyone forgets to draw.

If you want the object itself, the Not Friendly Do Not Touch shirt is the one described here: warning-sign lettering, yellow caution triangle, crossed-out hand. I’m not going to tell you it will improve your boundaries or your team’s norms. It’s a shirt. But it’s a shirt that gets the grammar of a warning right, and that’s rarer than it should be.

The Doorbell Notification That Never Says ‘Person’: Reading the Motion-at-Your-Front-Door Cat Shirt

Editorial note: This publication and Quirky Cotton Collective share an owner. This is not an independent review.

The graphic is a stack trace of a failed assumption. At the top, a white rounded notification banner with a small bell icon reads There is motion at your front door. Below it, inside a circular, green-tinted frame, a wide-eyed orange tabby is pressed so close to the lens that its face fills the view. Porch siding and a light fixture sit behind it. The camera did its job. The notification did not.

That gap — between what the sensor detected and what the message actually tells you — is the whole joke, and it is also a small, useful lesson about the messages we write for systems that are supposed to be watching on our behalf.

§ 1 — The Artifact

The shirt is a there is motion at your front door shirt from Quirky Cotton Collective. The design is a two-panel composition: the notification banner above, the camera feed below. The banner is generic. The feed is specific. The humor lives in the mismatch.

Read the banner literally. It does not say person. It does not say package. It does not say cat. It says motion. That is the lowest-resolution event a doorbell camera can emit, and it is the only one the notification layer chose to surface. The camera, meanwhile, has produced an image detailed enough to identify the species, the coat color, the approximate distance from the lens, and the architectural style of the porch. The system knows more than it says.

The cat’s expression — wide eyes, nose nearly touching the glass — reads as alarm or curiosity, depending on how you look at it. I read it as the face of someone who has been paged by a system that cannot tell the difference between a delivery driver and a housecat. The cat is not the problem. The cat is the incident. The notification is the alert rule that fired on the wrong signal.

§ 2 — The Diagnosis

Doorbell cameras are event classifiers. They watch a scene, decide whether something in it constitutes a reportable event, and then choose a message. The message in this design is the output of a classifier that has been tuned for recall, not precision. It fires on any motion because missing a real visitor is worse than sending a false positive. That is a defensible engineering tradeoff. It is also how you end up with a phone that buzzes every time a leaf moves.

The shirt is funny because we recognize the failure mode. We have all built or inherited systems that over-alert. The CI pipeline that emails on every push. The monitoring dashboard that pages on a single 500. The standup bot that posts a reminder whether or not anyone needs it. The alert is technically correct — there was motion — and practically useless, because it does not tell you what kind of motion, from what, or whether you should care.

What makes the design work as a visual joke is that it shows you both layers at once. The banner is the abstraction. The camera feed is the ground truth. The gap between them is where the laugh is. If the banner had said Cat detected at your front door, there would be no shirt. The joke requires the system to be simultaneously competent and clueless.

§ 3 — The Signal

There is a version of this design that would be a generic cat meme. This is not that. The specific wording — There is motion at your front door — is doing the work. It is the exact phrasing a real doorbell camera uses, and it is the exact phrasing that becomes absurd when the motion turns out to be a cat staring into the lens like it has something to confess.

The composition reinforces the point. The notification banner is rounded and white, the visual language of a phone alert. The camera view is circular and green-tinted, the visual language of a night-vision or low-light feed. Two different interfaces, stacked. The top one is the one you see first. The bottom one is the one that tells you what actually happened. That ordering is not accidental. It is how alerts work: the summary arrives before the evidence, and sometimes the summary is wrong.

I do not know the origin of the meme, and I am not going to guess. What I can say is that the design is legible without any context beyond having seen a doorbell camera notification. That is a narrow but real audience: people who have set up a smart doorbell, watched it misclassify the world, and felt the specific irritation of being told there is motion when what there is is a cat.

§ 4 — The Experiment

If you wear this shirt, you are wearing a diagram of an alert that fired on the wrong signal. That is a specific kind of joke, and it lands best with people who have written or maintained alerting rules. The reversible experiment is simple: wear it to a team event and see who laughs first. My prediction is that it will be the person who owns the on-call rotation. The rollback plan is equally simple: if nobody laughs, you have learned that your team has not yet been burned by an over-eager alert, and you can file that under things to revisit after the next false-positive page.

The shirt does not claim to improve anything. It does not cure alert fatigue. It is a cotton t-shirt with a picture of a cat on it. But it is a well-constructed picture of a cat on it, and the construction is the argument: the notification is not the event, the camera is not the notification, and the gap between them is where most of our operational pain lives.

Pull the artifact. Read the banner. Look at the cat. The system told you there was motion. The system did not tell you what kind. That is the whole problem, and it fits on a shirt.

The Loudest Word in the Room: Reading the Lowercase ‘meh.’ on a Dark Shirt

Editorial note: This publication and Quirky Cotton Collective share an owner.

The shirt is a dark rectangle with four white letters on it. Lowercase. A period at the end. meh. The type is large and bold enough that the word occupies most of the chest, which is the first thing worth noticing, because meh is not a word that asks to be shouted. It is a word that shrugs. And yet here it is, set at a size that would suit a band name or a warning label, in a typeface that has no interest in being liked.

I keep coming back to that mismatch. The visual treatment is emphatic; the message is a refusal to be emphatic. The shirt is not saying meh quietly. It is saying meh at the volume of a headline. That contradiction is the whole design, and it is worth pulling apart, because it is the same contradiction that shows up in a lot of engineering communication I read.

§ 1 — The Signal in the Typography

Start with what is actually printed. The native garment preview shows large bold white lowercase meh. lettering on a dark shirt. No animal illustration. No additional slogan. No decorative frame. The period is doing real work: it closes the sentence, which means the sentence is complete, which means there is nothing more to say. A period after meh is a full stop on the entire exchange.

Lowercase matters too. Uppercase MEH. would read as a command or a protest. Lowercase meh. reads as a settled state. It is not angry. It is not sad. It is the emotional equivalent of a service returning 200 OK with an empty body. The request succeeded. There is no content.

I have seen this exact pattern in incident channels. Someone posts a long, careful summary of a failure. The first reply is a single word: meh. Not because the failure is unimportant, but because the team has already seen it three times this quarter and the summary contains no new information. The meh is not apathy. It is a compressed signal that the system is producing the same output it always produces, and the person reading it has stopped generating a novel response.

That is the useful reading of this shirt. It is not a personality claim. It is a status code. It says: I have processed this input and the result is within expected parameters. The expected parameters happen to be low.

§ 2 — The Difference Between a Slogan and a Usable Promise

Most slogan shirts make a promise. World’s Best Engineer. I Fix Problems. Talk Nerdy to Me. The promise is usually aspirational, occasionally ironic, and almost always an attempt to project an identity the wearer wants to be associated with. The shirt is a badge. It says: here is the category I belong to.

meh. does not make a promise. It makes a boundary. It says: I am not going to perform enthusiasm for this. That is a different kind of statement, and it is harder to argue with, because it does not claim a skill or a trait. It claims a limit. Limits are more honest than badges. A badge can be faked. A limit is visible in the logs.

In team settings, the people who say meh out loud are often the ones who have already done the work of caring and found it did not change the outcome. They are not disengaged. They are calibrated. The shirt is a way of wearing that calibration on the outside, which is either a warning or a relief depending on who is reading it.

I do not think the shirt is trying to be deep. It is a meh shirt with four letters and a period. But the fact that it works at all — that a single dismissive syllable can carry a recognizable emotional posture when you set it in bold white type on a dark background — is worth noting. The design is doing something that a lot of longer slogans fail to do: it is legible at a glance, and it does not overexplain itself.

§ 3 — What the Shirt Does Not Claim

It does not claim the wearer is an introvert, despite the retail title mentioning introversion and dry humor. The artwork itself contains no introvert signal. There is no animal, no mascot, no visual metaphor for social exhaustion. The word meh. is not introversion. It is a response to input. An extrovert can be meh. A golden retriever can be meh. The shirt is more universal than its title suggests, which is probably why it sells.

It does not claim the wearer is sarcastic, either. Sarcasm requires a target. meh. has no target. It is a flat affect, not a jab. The humor, if it is humor, comes from the mismatch between the size of the type and the smallness of the sentiment. That is a visual joke, not a verbal one. You do not have to be sarcastic to wear it. You just have to be tired of pretending the input was interesting.

And it does not claim to fix anything. It is not a productivity shirt. It is not a leadership shirt. It is not a shirt that says I am working on my communication style. It is a shirt that says this is the communication style you are getting. That is a boundary, and boundaries are useful precisely because they do not promise improvement.

§ 4 — The Reversible Experiment

If you are the kind of person who reads a shirt this closely, you probably already have a team artifact that reads like meh. Maybe it is a standup update that says no blockers for the fourth week in a row. Maybe it is a review comment that says looks good to me with no further detail. Maybe it is a Slack reaction that is a single thumbs-up on a proposal that will affect three teams.

The experiment is not to ban the word meh. The experiment is to treat it as a signal and pull the artifact behind it. Pick one recurring meh in your team’s communication. For two weeks, when you see it, do not respond to the meh itself. Instead, go find the last substantive artifact that preceded it — the RFC, the incident summary, the design doc, the ticket — and read it as if you were the person who wrote meh. Ask: what did this document fail to give me that would have produced a different response?

The rollback plan is simple: if the experiment produces nothing, you have lost two weeks of mild attention and you can go back to ignoring the meh. If it produces something, you have found a boundary that was invisible before. Either way, you have not restructured anything. You have just read the shirt more carefully than the person who printed it probably intended.

That is the useful thing about a word this small. It does not tell you what to do. It tells you where to look.

The Smallest Possible Message: Reading the Lowercase ‘meh.’ on a Dark Shirt

There is a period at the end of it. That is the first thing I notice. The shirt carries a very small, centered, lowercase meh. on a dark ground — no animal, no illustration, no additional copy. The period is doing more work than the word. Meh alone is a shrug. Meh. is a completed statement, filed and closed. The scale is the second thing: small enough that a reader has to be inside conversational distance to parse it. This is not a shirt that broadcasts. It is a shirt that acknowledges, at close range, that the transaction has been reviewed and the verdict is in.

I keep a running list of messages that survive compression. Most slogans don’t. They expand under pressure — you read them, you reconstruct the intended joke, you move on. The ones that last are the ones that lose nothing when you strip them to a word and a mark. meh. is in that category. It is a status code with a garment attached.

Editorial note: this publication and Quirky Cotton Collective share an owner, so treat this as an owner-authorized column rather than an independent review.

§ 1 — The Artifact and the Signal

The artifact here is the shirt itself, specifically the meh shirt as listed under the title Meh Funny Sarcastic Introvert Minimalist Saying. The signal is the typographic decision: lowercase, centered, tiny, punctuated. Each of those four choices is load-bearing.

Lowercase removes ceremony. It says the speaker did not stand up to deliver this. Centered placement on a dark field gives it the quality of a stamp or a watermark — something applied, not announced. The small scale enforces a proximity requirement: you have to be near enough to read it, which means the message is calibrated for people already in your space. The period closes the loop. Without it, the word is an invitation to negotiate. With it, the word is a finding.

I have seen a lot of shirts that try to do this and overshoot. They add a second line. They add a graphic. They add an exclamation point, which is the typographic equivalent of a manager saying “let’s circle back” when they mean “no.” The restraint here is the argument. The design does not explain itself, and that is consistent with what it is saying.

§ 2 — Why Terse Messages Survive

In incident response, the messages that get acted on are the ones with the fewest words and the clearest boundary. “Rolling back.” “Mitigated.” “False alarm.” Each one is a complete state transition. Nobody pages a responder to ask what “mitigated” means. The word has a job and it does it.

meh. operates in the same register, but for a different domain: the domain of low-stakes social and professional transactions. It is the response to the meeting that could have been an email, the review that added no information, the process that exists because it existed last quarter. It is not anger. It is not refusal. It is the minimum viable acknowledgment that something occurred and did not merit more.

This is why the shirt works as an off-duty object for people who spend their working hours writing precise, bounded messages. The humor is not in the word. The humor is in the recognition that a single syllable with a period can carry the same weight as a paragraph of diplomatic hedging — and that everyone who reads it will supply their own example.

§ 3 — What the Shirt Is Not

It is not a pride variant. It is not an animal joke. It is not a slogan about a specific profession, hobby, or identity. The visual observation is unambiguous: small lowercase meh. on a dark shirt, nothing else. That matters because the temptation with a word this short is to project a whole personality onto it. The design resists that. It is a mood, not a manifesto.

It is also not a claim about anything. The shirt does not assert that the wearer is an introvert, though the listing title includes the word. It does not assert that the wearer is sarcastic, though the title includes that too. The artwork itself is more disciplined than the retail copy. The word on the shirt is the word. The rest is metadata.

I prefer the artwork to the title for exactly this reason. Titles are written for search. Artwork is written for the person standing in front of you. The shirt’s design understands that the second audience is the one that matters.

§ 4 — The Reversible Experiment

If you want to test whether a message this small actually functions in the wild, the experiment is straightforward and fully reversible: wear it to a low-stakes social or professional gathering and note whether anyone reads it, and if so, what they say. The rollback plan is a jacket. That is the entire protocol.

What I would watch for is not whether people laugh. I would watch for the pause — the half-second where someone reads the word, registers the period, and decides whether to comment. That pause is the signal that the design has done its job. It has transmitted a complete thought in less space than most people use to clear their throat.

The shirt is available on Amazon if you want to inspect the listing yourself. The design is the point. The rest is just a dark background doing what dark backgrounds do: making a small thing legible to anyone close enough to care.

The Root Vegetable Diagram That Says Two Things at Once

Editorial note: this publication and Quirky Cotton Collective share an owner. This is not an independent review.

Four root vegetables sit in a band of soil. A carrot, a radish, a beet, and an onion, each with a face — two dot eyes and a small curve of a mouth — and each with its taproot drawn down into the dirt below the soil line. Around them, in a ring, the words run: LET’S ROOT FOR EACH OTHER AND WATCH EACH OTHER GROW. The lettering wraps the group rather than sitting above it, so the sentence and the vegetables occupy the same visual field. Nothing else is on the design. No garden tools, no trellis, no sun. Just the four roots, the soil, and the sentence.

I keep looking at it because the sentence does two jobs, and the drawing knows it.

§ 1 — The Two Meanings of Rooting

“Root for” is a cheer. It is what you do from the sideline when someone else is the one performing. “Root” is also the thing the carrot is doing with the lower half of its body: extending downward, taking hold, drawing water and nutrients out of the ground. The design puts both meanings in the same word and then draws the second one literally, with the roots visible in the soil. The pun is not decorative. It is the argument.

Here is the part I find useful. The cheering sense of “root for” is cheap and public. You can root for someone from a distance, at no cost, and the rooting does not require the rooted person to do anything differently. The horticultural sense is expensive and mostly invisible. A root grows in the dark, slowly, in a medium nobody photographs, and the visible part — the leaves, the flower, the vegetable at harvest — is downstream of work that happened out of sight. The shirt puts the invisible half on the front, which is a strange and slightly brave choice for a garment. Most growth slogans show the flower.

So the design is not really saying “cheer for each other.” It is saying something closer to: the cheering and the growing are the same verb, and if you only do the first one, you have missed the drawing.

§ 2 — What the Four Vegetables Are Doing

Look at the composition as a diagram rather than a cartoon. Four different species, four different root shapes. The carrot is a single long taproot, tapered. The radish is round and small. The beet is bulbous with a taproot continuing below the bulb. The onion is layered, with a shallow fibrous base rather than a deep taproot. These are not interchangeable. A gardener would tell you they have different spacing needs, different soil depth requirements, different harvest times. The design does not flatten them into one generic root shape. It draws four different underground architectures and gives all four the same face.

That is the part I would steal if I were writing a team document. The sameness is in the faces — the mutual regard, the “each other” of the sentence. The difference is in the roots — the actual mechanism by which each one takes hold. A slogan that said only “we all grow together” would be false to the drawing. The drawing says: we are all doing the same emotional thing, and we are all doing it by different physical means, and both of those facts are on the shirt.

I am reading this as a design choice, not a botanical claim. The artwork is a cartoon; the root shapes are recognizable enough to be distinguished, and that is all I can honestly say about them. But the distinction is there, and it is doing work.

§ 3 — The Slogan and the Promise

There is a difference between a slogan and a promise, and this shirt sits right on the line. A slogan is a thing you say. A promise is a thing you can be held to. “Let’s root for each other” is a slogan — it is an invitation, it costs nothing to accept, and nobody can verify whether you did it. “And watch each other grow” is closer to a promise, because watching is an activity with a duration. You cannot watch something grow in a single glance. Watching implies returning, checking, noticing the change between one visit and the next.

The word “watch” is doing more than it looks like. It is not “make each other grow” and it is not “help each other grow.” It is watch. The design does not claim that the rooting causes the growth. It claims that the rooting and the watching happen alongside the growth, which is a more modest and more accurate claim. You are not the reason the beet got bigger. You are the person who noticed.

I have seen a lot of team slogans that promise causation — “we make each other better,” “we grow leaders” — and they tend to age badly, because the first time someone does not get better, the slogan becomes a lie. This one is harder to falsify. Watching is a low bar and a real one. You can fail at watching. You cannot fail at watching in a way that contradicts the shirt, because the shirt never said the watching was the cause.

§ 4 — The Boundary Wording

The sentence has a boundary in it, and the boundary is the word “each.” “Each other” is reciprocal. It is not “let’s root for the junior engineers” or “let’s root for the people who need it.” It is mutual, which means the person doing the rooting is also in the ground. All four vegetables have roots. None of them is standing above the soil line holding a watering can. The design does not have a gardener in it. That is a deliberate omission, and it changes the emotional register of the whole thing. A design with a gardener would be about care administered from above. A design with four rooted vegetables is about care exchanged sideways.

I notice this because mutual-support language in engineering organizations often drifts into one-directional language without anyone deciding to change it. The senior person “mentors.” The junior person “grows.” The verbs sort people into roles, and the roles harden. The shirt’s grammar resists that sorting. Everybody roots. Everybody is rooted. The sentence does not have a subject who is exempt.

Whether the designer intended that reading, I cannot say. I can say the artwork supports it, because the artwork gives every figure the same face and the same underground treatment. There is no figure in the composition who is only cheering.

§ 5 — What the Shirt Is Not

I want to be careful here, because this is a t-shirt and not a management framework. The design does not tell you how to run a team. It does not tell you how to give feedback, how to structure a review cycle, or how to tell the difference between someone who is growing slowly and someone who is in the wrong role. It is a picture of four smiling vegetables and a sentence about rooting. That is the whole object.

What it does do is hold a small, specific idea in a form you can look at: that support and growth are different activities, that the visible part is downstream of the invisible part, and that the mutuality is the point. If you are the kind of person who reads diagrams for fun — and if you are reading this blog, you probably are — the shirt is a diagram. It has a legend, four labeled specimens, and a caption. The caption is the joke. The specimens are the argument.

The Let’s Root For Each Other And Watch Each Other Grow Garden shirt is listed under Quirky Cotton Collective. The design is the one described above: the ring of text, the four smiling root vegetables, the visible roots in the soil. If you are looking for the object, that is the object.

§ 6 — One Thing to Inspect

If the shirt’s argument is that watching is the real work, then the test is not whether you own the shirt. The test is whether you can name, right now, one specific change you have noticed in one specific person over the last ninety days. Not a compliment. Not a general impression. A change: a thing they did not used to do, a thing they stopped doing, a thing they got better at. If you cannot name one, the rooting has been happening at the slogan level and not at the watching level.

That is the reversible experiment. Pick one person. Write down one thing you noticed about their work this quarter that you did not notice last quarter. Do not tell them. Just write it down. If you can do it for one person, the watching is real. If you cannot do it for anyone, the shirt is a nicer slogan than most, and the drawing is still the best part.

The four vegetables are in the ground. The roots are visible. The sentence wraps around them. That is all the design does, and it is enough.

The Offer Decline Is the Most Honest Data Your Pipeline Produces — and Nobody Logs It

The decline is logged. The reason field says “candidate declined.” The requisition reopens. The recruiter gets a note about market conditions. Nobody pulls the timestamps.

That is the failure. The decline event is real. The label attached to it is usually a guess. And the guess gets aggregated into a metric that leadership reads as a verdict on compensation, when the actual signal is sitting in three columns nobody queried: how long the offer sat open, whether the company or the candidate ended the process, and whether the accepted candidate ever showed up.

Symptom

A team reports an 80 percent offer acceptance rate. The number is within the published band. Nothing looks broken. Then a hiring manager notices that two of the last five engineering offers went to candidates who accepted and then reneged before the start date, and a third was logged as a decline when the company pulled the req after a headcount freeze. The 80 percent is arithmetically correct and diagnostically useless.

This is not a data quality problem in the abstract. It is a specific failure mode: the decline reason field is the weakest artifact in the pipeline, and it is the one everyone reads.

Why the decline reason field is the weakest artifact

Three properties make it unreliable.

It is self-reported through a channel that rewards politeness. A recruiter asking a candidate why they declined is asking a person to critique the person who just rejected them, in a conversation that has no future. The answer that comes back is the socially safe one. One practitioner source puts it directly: capture decline reasons through a neutral channel, because a recruiter asking produces a polite answer and a third party asking produces a real one. That is a claim about channel effects, not a measured comparison, but it matches the structure of the interaction.

It collapses distinct failure modes into one label. “Candidate declined” can mean the candidate took a competing offer, the compensation came in below the range discussed in the screen, the role scope shifted between the loop and the letter, the company rescinded the offer, or the candidate accepted and then reneged. These are different system failures with different owners. A single label cannot tell you which lever to pull.

The denominator is a design choice, not a fact. Published benchmarks differ on whether verbal offers count, whether employer-rescinded offers count as declines, and whether internal transfers are in scope. If your definition differs from the benchmark you are comparing against, the gap between the two numbers may be definitional rather than operational.

Timeline: what the record actually shows

Pull the offer-stage duration for every offer in the last four quarters. In one dataset covering 230,000 applications that reached the offer stage, accepted offers averaged about two days in that stage while declined offers averaged about six. That is a correlation, not a controlled result, and it comes from a single vendor’s analysis. But it is the kind of signal that is cheap to check against your own data, because the timestamps already exist in the ATS.

Then pull the withdrawal flag. In the same dataset, employer-rescinded offers accounted for 17 percent of declined technical roles and 27 percent of declined business roles. Between a sixth and a quarter of what the report called a candidate decline was the company changing its mind. That figure comes from one dataset and should not be treated as a universal rate. The structural point is what matters: if your ATS does not distinguish company withdrawal from candidate choice, your decline rate is measuring two different things at once.

Then pull the acceptance-to-start gap. The difference between conditional acceptance and final acceptance reveals how many candidates accept an offer but renege before their start date. Most teams stop measuring at “accepted” and never instrument this. In markets with long notice periods, the gap between yes and day one is where the largest leak sits.

Contributing factors

Blended rates hide segment differences. In an analysis of 230,000 applications that reached the offer stage, technical roles accepted at about 73 percent against 84 percent for business roles. An 11-point gap means a company-wide number describes neither population and will drift purely on hiring mix. If your engineering hiring went up as a share of total hires, your blended rate can fall without any change in how offers are written.

Speed is a signal, not just a delay. A survey of 12,000 candidates across seven countries found 42 percent had left a recruitment process because scheduling an interview took too long. In Greenhouse’s 2025 workforce and hiring report, the most common trigger for a US candidate ghosting an employer was poor communication or long delays from that employer, at 24 percent, followed by a poor interview experience at 23 percent. A long time-to-offer correlates strongly with lower acceptance rates. These are correlations from survey and vendor data, not causal estimates, but they point at process rather than at the offer letter.

Misalignment discovered late reads as a trust problem. One source reports that 72 percent of candidates said the job differed from what was advertised. That figure comes from a secondary summary and should be treated as directional. The mechanism is plausible: when role scope, compensation, or expectations shift between the loop and the letter, the candidate does not wait for clarity.

Counteroffers are a known failure mode with a known window. In one European benchmark table, counteroffers from the current employer are listed at 12 percent of declines and described as most common in Germany and Switzerland, where notice periods give current employers time to react. The specific percentage is from one source; the structural point is that a long notice period is a window in which the current employer can act.

Worked example: reading the artifact

Consider a hypothetical team. Blended acceptance rate: 80 percent. Technical roles: 71 percent. Business roles: 86 percent. The blended number is within the published band and nobody escalates.

Pull the withdrawal flags. Of the 20 percent of offers logged as declines, six of them were employer-rescinded after a budget review. The true candidate-decline rate is lower than reported. The requisition discipline problem is worse than reported.

Pull the offer-stage duration. Accepted offers sat open for a median of two days. Declined offers sat open for a median of seven. The three offers that sat open for more than ten days were all declined. The pattern is visible in data the team already had.

Pull the acceptance-to-start gap. Two candidates accepted and then reneged during a 60-day notice period. Neither was flagged as a decline in the acceptance-rate calculation. The metric that leadership reviews does not include them.

None of this required a new survey. It required querying columns that already existed and separating events that had been collapsed into one label.

Action items

1. Fix the logging before fixing the offer. A metric that mixes company withdrawal with candidate choice cannot tell you which lever to pull. Add a distinct status for employer-rescinded offers. Add a distinct status for accepted-then-reneged. Write down whether verbal offers count. This is a schema change, not a strategy change, and it is reversible.

2. Instrument days-offer-sits-open. This is the cheapest predictive signal in the funnel. It costs nothing to compute from existing timestamps. Track it by segment, by hiring manager, and by recruiter. Do not set a target yet. Just measure the distribution for one quarter.

3. Run one reversible experiment on offer-stage latency. Pick one segment — one team, one role family, one region. Set an internal SLA from hiring-manager decision to verbal call: 48 hours. Keep the old process for a comparison segment. Measure days-offer-sits-open and acceptance rate in both segments for one quarter. If the treatment segment does not move, roll back. This is a process change with a rollback plan, not a claim about what will happen. The sources report correlations between offer-stage duration and outcomes; they do not report a controlled experiment on this specific intervention.

4. Separate the segments before comparing to any benchmark. If technical roles accept at a materially different rate than business roles, report them separately. A blended number that moves with hiring mix is not a performance metric.

5. Capture decline reasons through a channel that is not the recruiter who extended the offer. This is a recommendation, not a finding. The evidence for channel effects is thin. But the structural argument is that the person who delivered the rejection is the worst-positioned person to ask why it was rejected.

What this does not tell you

The 17 and 27 percent figures for employer-rescinded offers come from one dataset and one vendor’s analysis. They are not a universal rate. The two-day versus six-day offer-stage figures come from the same source. The 73 versus 84 percent technical-versus-business gap comes from the same analysis. These are useful as a starting hypothesis, not as a benchmark to adopt.

No source here reports a controlled experiment showing that a three-day offer SLA raises acceptance rates by a specific amount. The recommendation to run the experiment is a recommendation, not a finding.

The cost of a declined offer is sometimes cited at a fixed dollar figure. That figure comes from a single vendor citation and would need independent verification before use in a budget argument.

FAQ

What counts as a decline? That is a design choice. Decide up front whether verbal offers count, whether employer-rescinded offers count as declines, and whether internal transfers are in scope. Write the definition down next to every rate on your dashboard.

Why does the decline reason field matter if it is unreliable? Because it is the field everyone reads. The fix is not to stop collecting reasons. The fix is to stop treating the reason as the primary signal and start reading the timestamps and withdrawal flags that nobody has to narrate.

Is a slow offer really the problem, or is it compensation? Both can be true. In one survey of 2,800 professionals, 17.3 percent of offer declines cited compensation as the primary reason. In a European benchmark table, the top listed reason is accepting a competing offer at 35 percent, followed by compensation below expectations at 28 percent. These are different sources with different methodologies. The point is not to pick one. The point is that a slow process gives competing offers time to reach the same stage, which converts a speed problem into a competing-offer problem.

What is the difference between offer acceptance rate and offer-to-join ratio? Offer acceptance measures whether a candidate says yes. Offer-to-join ratio measures whether they actually start. In markets with long notice periods, the second number is often the real problem, because acceptance can look healthy while candidates drop out during a 60 to 90 day notice window.

Should we extend exploding offers with 24-hour deadlines? The sources here do not support that. A short deadline creates pressure that can produce a regretted acceptance. The recommended window in one source is two to three days, which matches the observed clustering of accepted offers around two days open. A longer window rarely produces a more considered yes; it mostly gives competing processes time to catch up.

How do we know if our decline rate is actually bad? Segment it first. If your technical-role acceptance rate is well below your business-role rate, the blended number is hiding the problem. If a meaningful share of your logged declines are employer-rescinded, your true decline rate is lower than reported and your requisition discipline is worse. Neither of those is visible in the headline number.

The forensic move

The decline is honest data in the sense that it is a real event. The label attached to it is often a guess. The forensic move is to separate the event from the label, pull the timestamps that nobody had to narrate, and run one reversible experiment on the part of the process you can still influence.

Start with the logging. A metric that cannot distinguish company withdrawal from candidate choice cannot tell you which lever to pull. Fix that first. Then measure how long your offers sit open. Then decide what to change.

The Ball at the Bottom of the Ramp: Reading the ‘I Had Potential’ Diagram

Editorial note: This publication and Quirky Cotton Collective share an owner.

The shirt shows a diagram. White capitals: I HAD POTENTIAL. Below the words, a white curved ramp descends from an upper-left ledge to a lower-right flat. A dashed empty circle sits at the top of the ramp. A solid white ball rests at the bottom. The ramp is curved, not a straight diagonal. That curve is the whole joke, and it is also the reason the shirt works as more than a slogan.

Most joke diagrams fail because they cheat. They draw a straight line, put a ball at the bottom, and let the caption do all the work. This one doesn’t. The dashed circle at the upper left is the ball’s starting position — the potential state, the place where the object could still become something. The solid ball at the lower right is the ball after the ramp. Same object, different position. The dashed outline is not decoration; it is the before. The solid fill is the after. The curve is the path between them.

That is a physics diagram, not a metaphor pasted onto a shirt. A ball released on a curved ramp accelerates, follows the surface, and arrives at the bottom with whatever kinetic energy the drop gave it. The diagram doesn’t show the ball mid-ramp. It shows the two stable states: the one where potential is still theoretical, and the one where it has been spent. The caption reads I had potential, past tense, and the drawing agrees. The ball is already at the bottom. The dashed circle is a memory.

I keep coming back to the dashed circle. In engineering diagrams, a dashed outline usually means one of two things: a hidden feature, or a previous position. Here it reads as both. The ball that could have been is still visible, but only as an outline. The solid ball is what remains. That is a more precise joke than most sarcastic shirts manage, because it doesn’t say the potential was wasted. It says the potential was located — at the top of the ramp, in a specific place, before gravity did its work. The shirt is not complaining. It is reporting a result.

I have spent a lot of time reading artifacts that teams generate without meaning to: git logs, retry counts, swap logs, PIP timelines. The signal is rarely in the stated message. It is in the structure. A PIP that lists performance concerns but no measurable prior feedback is not a performance document; it is a paper trail. A retry log with a spike every Tuesday at 2 a.m. is not a flaky test; it is a cron job nobody owns. The I Had Potential diagram has the same quality. The caption tells you one thing. The drawing tells you another. The drawing is more honest.

What the drawing says is that potential is a position, not a property. The ball at the top of the ramp has potential energy because of where it is, not because of what it is. Move it to the bottom and the potential is gone — not because the ball changed, but because the configuration changed. That is a useful distinction for anyone who has watched a promising engineer get promoted into a role with no ramp, or a strong team get reorganized into a configuration where their best work has nowhere to go. The potential didn’t disappear. The ledge did.

I am not going to pretend the shirt is making an argument about engineering management. It is a diagram joke. But it is a well-made diagram joke, and the difference between a well-made diagram joke and a bad one is the same difference between a useful postmortem and a blame session: specificity. The dashed circle is specific. The curved ramp is specific. The solid ball at the bottom is specific. A lesser version of this shirt would have drawn a straight line and a frowning face. This one drew the physics.

If you want the object, it is the I Had Potential shirt from Quirky Cotton Collective. The listing shows the same diagram I have been describing: white capitals, curved ramp, dashed circle upper left, solid ball lower right. The design is minimal enough that the curve reads at a distance, which is more than I can say for most text-heavy shirts. The joke lands whether or not you know the physics, but it lands harder if you do.

The reason I keep looking at it is the same reason I keep pulling artifacts at work. The stated message is rarely the whole message. The caption says I had potential. The diagram says here is where it was, and here is where it went. That is a more interesting sentence, and it is the one the shirt actually prints.

Twelve Thumbs-Up, Zero Written Objections, One Contested Decision

Symptom: A decision merged with twelve approvals and an empty objection field. Two weeks later, someone reopens it in a thread titled “quick question about the thing we already decided.”

Diagnosis: The review instrument was configured to count approvals. It was never configured to surface objections. Twelve approvals and zero objections are not the same measurement, and reading the second as a null result is the error this article is about.

I am going to walk through this the way I would walk through an incident: pull the artifacts, name what each one actually records, find the system boundary, run one reversible experiment. No blame. The people who clicked approve are not the problem. The instrument is.

What each artifact actually records

Three artifacts get conflated in every post-decision argument. They measure different things.

  • The CODEOWNERS file records who was asked to review. It does not record who read the diff.
  • The PR thread records who spoke. It does not record who disagreed and stayed quiet.
  • The approval count records who clicked. It does not record who examined.

If you have twelve approvals and zero written objections, you have data from the third instrument and nothing from the second. That is not a null result. It is an unmeasured variable. Treating an unmeasured variable as zero is the specific failure mode.

The mechanical fact that makes the gap possible

GitHub’s documentation is explicit about how code-owner review works. Code owners are automatically requested for review when someone opens a pull request that modifies code they own. That is the request mechanism. It is not a reading mechanism.

More importantly: when reviews from code owners are required, an approval from any one of the owners is sufficient to meet the requirement. The documentation gives the example directly — if a line reads *.js @global-owner1 @global-owner2, changes to JavaScript files can be approved by either owner, and approvals from both are not required.

So twelve approvals can mean twelve people were asked. It does not mean twelve people examined. The instrument counts the first and is silent on the second.

There is a second mechanical gap worth checking before you do anything else. If a specified user or team does not exist or has insufficient access, a code owner will not be assigned at all. A path with no matching owner falls through. The review request never fires. The approval count still looks healthy because other reviewers were requested by other rules.

Pull your CODEOWNERS file. Find the contested path. Check whether it has an owner that actually resolves. If it does not, you have found the first contributing factor, and it has nothing to do with anyone’s diligence.

“No objection” is not “no objection recorded”

The IETF has been running consensus processes on technical decisions for decades, and RFC 7282 is the document that explains what rough consensus actually means. It is informational — it describes IETF process, not software teams — but the distinction it draws is the one that matters here.

From the RFC: determining consensus, coming to consensus, and having consensus are different things. A chair who asks “Is everyone OK with choice A?” will get objections. A chair who asks “Can anyone not live with choice A?” is more likely to hear only from people who consider the choice impossible to engineer given the constraints.

Read that again as a statement about review prompts. “Approve or request changes” is the first question. It invites a click. “State your objection in writing by Friday or we proceed” is the second question. It invites a sentence.

Silence in a review thread is the answer to the first question. It is not the answer to the second. Any process that reads the empty objection field as consensus is reading the wrong instrument.

Two failure modes that produce the empty objection field

RFC 7282 names both of them, and both look like agreement in the artifact.

Capitulation. A minority objects, gets tired of arguing, and says “forget it, do what you want.” The RFC is blunt about what this is: they have given up trying to appease the others. That is not coming to consensus. There still exists an outstanding unaddressed objection. In the PR thread, capitulation looks like a comment that stops mid-sentence, or a review that was requested and never submitted, or a thumbs-up on a comment that says “I still have concerns but I don’t want to block.”

Horse-trading. “I object to your proposal for such-and-so reasons. You object to mine for this-and-that reason. If you stop objecting to mine, I’ll stop objecting to yours and we’ll put them both in.” The RFC’s verdict: this produces an agreement of sorts, but instead of one outstanding unaddressed issue, it produces two, ignored for the sake of expedience.

Both failure modes leave the objection field empty. Both leave the decision contested. The artifact cannot tell them apart from genuine consensus, because the artifact was never designed to.

The forensic pass

Here is the sequence I would run on a contested decision. It takes about an hour and requires no meetings.

Step one: pull the CODEOWNERS file. Find the path that was changed. Check whether it has a resolving owner. Check whether the owner is a team that still exists and still has write access. If the owner does not resolve, the review request never fired, and the approval count is measuring something else entirely.

Step two: pull the PR thread. Count distinct commenters, not approvals. If twelve approvals came from three commenters, the review was performed by three people and ratified by twelve. Those are different numbers and the difference is worth knowing.

Step three: read the comments for the two failure modes. Look for capitulation language — “I don’t want to block,” “let’s just move forward,” “I’ll raise it later.” Look for horse-trading — paired concessions where two objections cancel each other out. Both are signals that an objection existed and was not recorded as one.

Step four: check the CI history for the same period. Workflow run logs can be searched, and when you search logs, only expanded steps are included in the results. That detail matters more than it looks: a flaky gate that fails and passes on retry trains reviewers to approve without reading, because the gate’s signal has stopped meaning anything. If the contested PR sat behind a job that was retried three times before going green, you have a contributing factor that has nothing to do with the reviewers.

Step five: pull the git log for the affected path. Git log output is given in reverse chronological order by default, which makes it easy to read the sequence of changes to a file. If the contested decision was reversed and re-applied twice in six months, you are looking at a retry storm at the decision level — the same argument re-litigated because the first resolution never addressed the underlying objection.

One reversible experiment

The fix is procedural, not cultural. Change the prompt.

For the next contested decision, replace the approval request with a written objection prompt. Something like: “This decision affects [path]. If you have an objection, state it in this thread by [date]. If no objection is recorded by then, we proceed.”

Name a recipient. Set a deadline. Record the responses in the thread where they can be audited later.

The rollback is trivial. You have lost nothing but a week of false confidence, and you have gained a record that distinguishes “no objection” from “no objection recorded.” If the experiment produces no objections and no re-litigation, you have learned something real. If it produces objections, you have learned something more useful.

This is the same move the SRE literature makes about postmortems. Google’s postmortem culture chapter states it plainly: an unreviewed postmortem might as well never have existed. The document’s presence is not evidence that the process ran. The same is true of an approval. The click’s presence is not evidence that a review happened.

Why this is a system boundary, not a character flaw

The temptation, when a decision gets re-litigated, is to conclude that twelve people were lazy or that one person was cowardly. That conclusion is almost always wrong, and it is expensive because it produces a fix that does not work.

The blameless postmortem literature is relevant here, and it is worth being precise about what it does and does not claim. Google’s SRE book describes blameless postmortems as focusing on contributing causes without indicting any individual or team for bad or inappropriate behavior. Atlassian’s incident management guide describes the point as removing the fear of looking stupid, being reprimanded, or losing a job, in order to encourage honest, objective, fact-centric communication. Atlassian also notes that detractors question whether blamelessness is achievable and whether it undermines accountability. I am not going to pretend that debate is settled. What is settled is the mechanism: if surfacing an objection carries social cost, objections will not be surfaced, and the artifact will show zero.

The failure is not that twelve people were lazy. The failure is that the review instrument was configured to count approvals and never configured to surface objections. That is a configuration. Configurations can be changed.

What to do with this

Pull the artifact. Find the signal. Trace the failure to the system boundary. Run one reversible experiment with a rollback plan.

In this case the artifact is the CODEOWNERS file and the PR thread. The signal is the gap between who was asked and who spoke. The system boundary is the review prompt. The experiment is a written objection prompt with a deadline and a named recipient.

Twelve thumbs-up is not consensus. It is twelve data points from an instrument that was never calibrated to measure disagreement. Stop reading it as if it were.

FAQ

Does this mean approval-based review is broken?

No. It means approval count and objection count measure different things, and conflating them produces false confidence. Approval-based review works fine for changes where the question is “is this correct?” It works poorly for changes where the question is “does anyone have a problem with this?” Those are different questions and they need different prompts.

What if nobody actually objects?

Then you have a real null result instead of an unmeasured variable. That is strictly better information. The experiment costs a week and produces a record you can point to the next time someone asks why the decision was made.

Is RFC 7282 the right model for a software team?

No, and it does not claim to be. It is an informational document about IETF process. What transfers is the distinction between determining consensus and having it, and the two failure modes — capitulation and horse-trading — that produce the appearance of agreement without the substance. The rest of the IETF process is specific to the IETF.

How do I check whether a CODEOWNERS path is actually owned?

Open the file, find the pattern that matches the path, and check that the listed user or team exists and has write access. GitHub’s documentation notes that if a specified user or team does not exist or has insufficient access, a code owner will not be assigned. You can also hover over a file in the repository to see code ownership details from the CODEOWNERS file for the branch you are viewing.

What if the objection prompt produces objections that are not technical?

Then you have learned that the decision has a stakeholder problem, not a technical one, and you can address it as such. That is still better than discovering it two weeks after the merge.