Kristofer Palmvik.

Did I miss something in my writing?

By Kristofer Palmvik ·

Each of my notes now comes with an automatically generated second opinion: the tensions and gaps the note itself never resolves. An AI model finds them, but only if it can quote me and say something that is not an LLM cliché.

Writing is a great way to think. But you will inevitably ignore things, leave gaps, miss tensions you didn't notice were there. What if you could see what went unsaid? What if you published it right next to the text?

I've been exploring how to help both a reader and myself continue thinking beyond what I've already written. The other day I wrote about transforming a note, to step outside the original text, by automatically researching and recording it as a podcast episode while I sleep.

This is the opposite move: going inward, into the text itself, to find what it quietly avoids.

So I set a random AI model loose on a note to find its “seams”. Those are places where the thinking is unresolved, surprising, or pointed somewhere the note never goes.

The pipeline starts with a query to my CMS, Sanity, where all the notes are stored. It finds the five most recently published notes that either have no seams yet, or whose seams are more than 90 days old. That is the queue. It runs every morning, picking up new notes and slowly refreshing the older ones.

For each note, one model is picked at random from five. They come from different families and vary widely in architecture, from dense transformers to Mixture-of-Experts designs: Mistral Large, Google Gemini 3.5 Flash, Meta Llama 3.3 70B, OpenAI GPT-OSS 120B, and Moonshot AI Kimi K2.6.

Three of them run on Cloudflare Workers AI, and all of them route through a single Cloudflare AI Gateway that adds caching, retries, and observability.

Picking at random and rerunning on old notes is very deliberate. Different models notice different things, and as models get better and are replaced by newer ones, the same note can get a sharper read next time around without me changing anything.

What counts as a seam

The model receives the note as plain text and is asked for one to three seams: places where the thinking is unresolved, surprising, or points somewhere the note doesn't go.

For each seam the model also returns an anchor, a short quote from the original note, that can be used to make sure the model didn’t make up a text to analyze.

The prompt is strict about quality. The seam must lead somewhere the note can't avoid, given its own logic. No LLM jargon, no category names.

And the rule I like most: “if a seam would apply to ten other notes, discard it and try harder”.

If a note doesn't have enough surface area for three seams, the model returns fewer. An empty array is a perfectly valid answer, although it rarely happens in practice.

The sharpness test

Before anything is published, every seam from a note has to pass two checks:

It must not contain any of the obvious LLM-generated platitudes. No “delve into”, no “tension between”, please.

The returned anchor must also be from the original text. It has to point at words that are genuinely there.

If a single seam reaches for a platitude or can't ground itself, the whole note's batch is thrown out and nothing is published for it this time. I would rather show nothing than show a faked or generic seam, and the note will be processed tomorrow again with a new random model.

Below the note

The accepted seams are added to the note in Sanity. If the run finds no seams, that empty result is recorded too, and won’t be retried immediately.

On the site each note then gets a collapsed section titled "Where it gets complicated", marked as AI generated.

This is, of course, a much simpler and cheaper process than my self-generating podcast. There is no audio, no relay race of agents, just one model, one strict prompt, and one unforgiving filter. Most of the cost is a few hundred tokens per note, and several of the models run on free tiers.

Sometimes it finds nothing.

Sometimes it names the exact thing I was avoiding but didn’t realize.

Either way, the point isn't for the machine to be right. It's to keep me, and whoever is reading, thinking past the last sentence.

Did I miss something in my writing? was first published 2026‑05‑20



AI-generated Content

Sections marked as AI-generated Content were generated by one or several AI models.

While it may be entertaining and informative, please be aware that it could possibly contain inaccuracies or fabricated information.