DEV Community

Cover image for Claude worked out who I work with, from my own blog
Jun
Jun

Posted on Originally published at junueno.dev

Claude worked out who I work with, from my own blog

I publish this blog in two languages.
Write one piece, keep the canonical copy on my own site as the single source, then push it out to every channel at once. The English and the Japanese were supposed to be a translation pair — same story, same beats, two languages.

That day, like any other day, I was shipping a piece that had been sitting in drafts for a while, both halves together.
Before publishing, I ran the usual automated gate. sanitize-lint, which hunts for names, personal data and credentials.

Green. Zero hits.
"Right, ship it," I thought — and my hand stopped halfway to the key.

"Run the sanitization past an adversarial review first"

I'll be honest: for a second, I couldn't be bothered.
Come on, the linter is green. No names, no keys, nothing caught.

Give a person a green check mark and watch how fast they decide the job is finished. I certainly did.

But publishing is the one thing you can't take back. So I got over myself and stood up a separate reviewer.
Its whole job was to go at this piece as a nasty reader trying to identify me.
One instruction. "From this text, list every clue that could pin down the author or anyone connected to them." Don't approve it. Go looking for cracks.

The translation pair was leaking on one side only

Of everything it came back with, this is the one that made my stomach drop.

One sentence in the English version, and the sentence that matched it in the Japanese. Same paragraph, supposedly saying the same thing.
And the word each of them used was not the same. The English was neutral. The Japanese leaned one notch toward work.

The English just said "a different project." Smells of nothing.
The Japanese pointed at the same thing with a word that quietly smells of work.

The person who wrote both of them could not see the gap.
That person is me.

The two halves get written on different days, in different moods. You think you've written the same thing twice, and the smell of work stays in exactly one of them.

Then it found another layer.
The staging of the piece itself never named an industry or an arrangement — and still described one, purely from how the pieces sat together.
Not a single proper noun. No domain, no company name, no region.
And yet add up the things sitting on that stage, and you can read off who the author works with, and on what terms.

Leave out every name, and who you work with — and how — still shows through.

So what was that green light actually checking?

Here's where it landed for me.

sanitize-lint being green is not a lie.
It just means "nothing matched the names on the denylist, and nothing shaped like a key turned up."
It never once evaluated the question "could someone reading this work out who you work with?"

Your linter is green today too, probably. It has never once claimed you were safe.

Nuance, tone, the smell of work that rises between the lines — string matching cannot catch any of it, in principle.
And a translation pair is the nastiest case of all. You write the English carefully neutral, right? And then you write the Japanese on a different day in a different mood, and one half comes out wearing the smell.
The assumption that a translation "says the same thing" is quietly false. Things get added, and word choices drift, on the way across.

I flattened the whole stage, and the point didn't lose a millimeter

Three things.

  • Abstracted both halves down to a grain where neither the industry nor the arrangement shows.
  • Took the Japanese word that had leaned toward work and brought it back to the neutral phrasing the English already used.
  • Then stacked the checks: the automated lint again, my own eyes, and the pair read side by side. Only then did I publish.

Generalizing it cost the piece nothing. Not a millimeter.
If anything, dropping the incidental specifics made the story more universal.

Green is where the review starts, not where it ends

  • An automated sanitization gate only guarantees the absence of names. "Can my identity be inferred from the context?" is a different question, and only a review that reads for meaning will catch it. Don't quietly translate "lint is green" into "this is safe."
  • Bilingual publishing leaks asymmetrically. You want to believe the pair says the same thing. But one half can walk out still wearing a name tag. Read the two halves side by side — make it a fixed step before publishing.
  • Deleting names doesn't delete context. The staging alone is enough to show who you're working with. You're allowed to abstract the whole stage, right down to the smallest grain that still carries the lesson. Go that far.
  • And the thing that actually did the work: I pointed a reviewer who came to expose me at my own draft, not one who came to approve me. A polite reviewer finishes with "this reads well," and never mentions that one half of your translation pair is quietly wearing a name tag.

That hand of mine, stopping halfway to the key.
If it hadn't stopped, none of this would have been found.
I'm glad it did.

Top comments (0)