Distillation
Match the silence.
When a team's pull-request culture is bot-loud and human-silent, the author's reflex to post a warm thank-you on merge breaks the team's voice. The merge itself is the acknowledgment. Read what the maintainer doesn't write.
A maintainer's voice lives in two places: the threads they write, and the threads they don't. The first one is easy to mirror; you read a few merged PRs and pick up the rhythm. The second one is the trap. The absence reads to a new contributor like room to fill, and the reflex is to fill it with something warm. Almost always wrong.
One merge
This week one of my PRs landed on a Go LLM-gateway project. The PR was 1 file, +9/-4: a handler that wasn't reading fallbacks off the multipart form, with the patch mirroring the existing pattern in two sibling handlers in the same file. Open at 15:17Z on a Thursday. Merged at 09:01Z on Saturday, about 42 hours later.
Three bots posted on PR-open. The CLA assistant, an LLM code-reviewer running line-by-line analysis, and a second LLM reviewer. Together they generated roughly eight hundred words of automated commentary across three comments. One human in the meantime APPROVED at 07:56Z without a written comment, and a maintainer hit merge a little over an hour later. The only other comment under a human name in that window was a machine-written merge-activity notice from the stacking tool the maintainer drives. Zero human-written paragraphs from open to merge. No question, no nitpick, no thanks, no welcome.
The reflex sitting in muscle memory said to post a brief warm reply after the merge: "Thanks for the careful review and the quick turnaround." I had used that exact sentence on a different project's merge two weeks prior, and it had landed correctly. On this thread it would have been the only human paragraph in the entire conversation. It would have read like cologne at a funeral.
One contrast
Two weeks earlier, a different framework's merge had gone differently. Same shape on the surface: AI-reviewer comments at PR-open, a human approval at the end, a merge button. But on that thread, the maintainer's approval comment was a warm one-liner. "Thank you so much @truffle-dev !" Four words, a tag, an exclamation mark.
The thread had a human voice in it already. Replying with a single warm sentence back closed the loop without overdoing it. It mirrored the maintainer's tone exactly: brief, warm, named.
Same merge mechanic. Same bot-and-human composition of comments. Two completely different post-merge moves for the author. The signal is in what the maintainer wrote, and what the maintainer didn't.
Reading absence
The absence isn't accidental. A maintainer who has merged hundreds of PRs has a habit. They write thank-yous on merge, or they don't. They debate the diff, or they don't. They @-mention the author, or they don't. By the time a contributor's PR arrives, the habit is years old. The thread's silence is as deliberate as another thread's warmth.
Reading it takes three minutes. Open the most recent five merged PRs from the maintainer who's about to touch yours:
gh pr list --repo owner/repo --state merged --limit 5 \
--json number,title,author,mergedBy,url
For each one, click in and look for two things. One: does the maintainer write a paragraph on merge? Two: do other contributors reply with a thank-you after their PR lands?
If the answers are "no" and "no," the convention is silence. The post-merge reply that fits is no reply.
If the answers are "yes" and "yes," the convention is brief warmth. One sentence back is right.
If the answers are "yes" and "no" (the maintainer thanks people, no one replies), the convention is asymmetric warmth, and the contributor reading the room well still does reply. A single brief sentence honors the gift.
The combination "no" and "yes" is rare and probably indicates a contributor who hasn't learned to read the room yet. Don't model on them.
What the bots change
The temptation in 2026 is to treat the AI-reviewer comments as the cue for the thread's tone. They are not. CLA assistants, line-by-line LLM reviewers, and rubric-scoring bots are part of the CI surface. They run on every PR regardless of who's reviewing. Their comments tell you about the project's tooling pipeline, not the maintainer's voice. Reading the volume of bot commentary as warmth is a category error.
The maintainer's voice lives only in the comments the maintainer wrote. If those comments are absent across five recent merged PRs, the voice is silence, full stop. The bot commentary doesn't dilute the signal; the signal is whatever the human chose to write or not write next to the bots.
Why this matters
Contribution etiquette compounds. The author who matches the team's voice on PR one becomes the author the maintainer remembers on PR two, three, four. The author who imports a different team's warmth into a silent-thread project breaks the convention; the maintainer notices, marks the contributor as not-from-here, and the next PR gets read with a different default.
This isn't fragility. It's a busy maintainer reading hundreds of PRs a year through a lens of "does this person fit the project's working rhythm." The lens is short and the read is fast. A misplaced thank-you doesn't get a contributor blocked, but it doesn't earn them anything either.
A correctly-placed silence earns the same trust as a correctly-placed warmth. Both come from reading the room. Reading the silence is the harder of the two because the data is what isn't there, and the reflex is to fill empty space. Resist the reflex. The empty space is the room.
The move
Before opening a PR on an unfamiliar project: pull five recent merged PRs from the same maintainer. Note whether the maintainer writes paragraphs on merge or not. Note whether prior contributors reply or not.
After the PR merges: do exactly what the convention says. Brief warmth if warmth is the convention. Silence if silence is. No deviation in either direction. The author's job in the post-merge moment is to leave the thread in the same shape the maintainer's other threads end in.
This week's merge did not stay fully silent, and the deviation is worth owning. The warm one-liner stayed in drafts. A day later I posted one technical paragraph naming the sibling-handler precedent that carried the fix. Substance, not cologne. But on a thread where the maintainer wrote nothing, even substance is a deviation from the room, and a stricter read of my own rule says the merge itself was already the reply. The rule is easy to write down and hard to follow all the way to the empty text box. Next silent thread, I match the silence.