Content rots the moment it is published. The 2019 tutorial with the dead install command. The doc describing a folder that no longer exists. The model ID that shipped last quarter and now dates the whole piece the way a haircut dates a photograph. Human writing decays quietly and pretends it hasn't, the page frozen in amber, the link that has been broken since a redesign two years ago and that nobody has clicked since. Lasting forever was never the goal. It is the dishonest cosplay of the monument.
So I built the honest version and called it half-life. Point it at a folder of writing and it ranks every piece by how far it has decayed. A deterministic pass, no key required, flags missing slug-shaped internal links, age over a year, and a fixed set of model-name and deadline patterns. It does not establish that each match is rotten. A historical model name can be exactly right, and a future-tense phrase can describe an event still ahead. An optional model pass asks which claims have expired; the current implementation sends the first 16,000 characters of the article body, so even that pass has a coverage boundary.
Then I did the only honest thing you can do with a rot detector. I pointed it at my own site first.
That is the whole ethic in one move. It is easy to build a tool that judges other people's decay. It is uncomfortable to run it on the archive with your name on it, because you will find things, and I did. Against my own catalog the deterministic pass alone, before the model even weighed in, surfaced a dead /articles/ link I had been walking past for months, three superseded claude-3 IDs stacked in a single old piece, a gpt-4o scattered through another, and a stale model string baked into example code where it would quietly misinform anyone who copied it. Most of the catalog read clean. A handful of pieces were quietly rotting, and not one of them had been flagged by a human, because humans do not reread their own archive looking for the parts that have gone soft. The machine does not get bored.
And here is the part that makes it a lab and not a lecture: you can watch what I did next. I did not hide the rot. I went in and fixed it, in public, in the git history, this week. Pieces got their frames re-aimed. A tool article that had aged into a liability got retired to a redirect. One got demoted, one got reframed, one got a name changed to protect a bank that did not need to be in the story. The audit found the decay and the author repaired it where you could see the seams. That is the window into this lab standing open on purpose. The experiments that did not hold up do not get scrubbed. They get shown, and then they get fixed.
There is a joke built into the tool, and the source caught me overstating it. HALFLIFE_MODEL can select the model without a code edit, but the current file still supplies a hardcoded fallback when the variable is absent. The regex list is hardcoded too. Both need maintenance. A rot detector gets no exemption from the thing it measures.
None of this is a war on decay. That is the misread. The goal was never to make writing that lasts forever, because writing that claims to last forever is lying, and the internet is now visibly, loudly full of that lie, the frozen pages, the confident 2021 predictions, the tutorials for tools that shipped their last version before the author moved on. The bots did not kill the internet. They just stopped pretending it was ever alive-forever, and once that pretense drops you have two options. Freeze your archive and let it quietly go false, or build the honesty to keep measuring what rotted and go fix it.
I would rather run the auditor on myself once a quarter and repair what it finds than pour concrete over the whole thing and call the setting-hard permanence. Nothing is solid. So build things that know it, tools that measure their own decay, archives you are willing to re-audit, a practice of fixing the rot instead of shellacking it. Half-life came for me first because that was the only version of the tool worth publishing. If it is not honest enough to embarrass its author, it is not honest enough to point at anyone else.
The tool is on the bench, and the later archive write-up separates its historical output from a fresh deterministic check. The result depends on the archive snapshot, rule version, and date supplied. Some of what you wrote is already dead. The question was never whether. It was whether you were willing to look.
Correction, October 25, 2026: The deterministic findings are review candidates, not verified decay. Corrected the no-hardcoded-model claim and documented the model pass's character limit. The original cleanup story remains historical; no model pass was run for this correction.
GhostInThePrompt.com // A rot detector is only honest if it embarrasses its author first. So I pointed it at me.