In an earlier post I admitted to being part AI enthusiast, part Mr. Doom.1 This is the post where Mr. Doom gets his own dashboard. Because, don’t we all want another dashboard?
I am a natural doom scroller and I waste a lot of time finding things to doom out about. Fortunately, we seem to be drenched in doom (though the clouds may have lifted recently). My daily doom habit needed an upgrade, so I decided to see what I could do. So, naturally, I built a dashboard. (I know. See every other post on this blog.)
Just note that this is a work in progress. To be honest, I find that ChatGPT does a great job of finding doom for me and writing it up in a voice that understands my humor. I was hoping I could duplicate that with a local model providing the writing, but Qwen 3.8 is Data without the contractions and emotion chip.
Six questions instead of a feed
The idea was a single status board that answers six questions for predefined risk areas:
- What changed?
- How important is it?
- What does it connect to?
- What is making things worse?
- What is preventing the worst case?
- Is the overall system becoming more or less dangerous?
The board sorts the world into seven risk sectors that I experiment with, including: Hormuz and the Gulf, energy and inflation, alliance reliability, Ukraine and munitions, US politics, East Asia, and AI and technology. Each one gets a severity band, and the whole board gets a condition, from Green through Amber and Red to Purple.2 Purple means several things are getting worse at once. I’ve also added a Brown Bulb (the Boys in the Dwarf get this one).

The fictional demo scenario. The live board has the same layout, with real reporting and a link to every source.
The personality came first
This one started in ChatGPT, where I worked out a starter kit before a single line of code: a visual mockup, a build spec, and a voice guide. Codex built the first version from that kit with made-up data, and later Claude Code hooked it up to the real news. If you want your own Doom Board, try this out with a scheduled task 3
The voice guide turned out to be the most important file in the project. It describes the narrator, Mr. Doom, as:
a trusted friend who reads too much Reuters
a 1970s British sitcom writer trapped in a geopolitical command center
And it sets one rule above all others: “Serious signal. Comic wrapper. Never the other way around.” Mr. Doom is allowed to be dry, absurdist, and world-weary. The jokes stay away from anything involving real suffering, because that’s not funny to me. If a story is grave, he doesn’t get a line. That’s on purpose.
This slightly contradicts my post about building it ugly first. Here the personality had to come first, because the personality is what makes it fun. A plain risk dashboard is just more unfiltered doom. Doom with a narrator who says “Tea first, then contingency planning” is something I’ll actually open.
Hooking it up to the real news
The live version reads twelve public news feeds: the BBC, the Guardian, NPR, Al Jazeera, France 24, UN News, Defense News, the US Energy Information Administration and Ars Technica. Two local AI models running in LM Studio do the work, one pulling the events out of the reports and one assessing what they mean for each sector. A refresh takes about seven or eight minutes and 26 model calls, all on my laptop, so it costs nothing and nothing gets sent anywhere.
Then the board shows:
- What changed since the last run, leading with sectors that moved up or down a band.
- The brakes, which is the panel I didn’t know I needed: what’s actually preventing the worst case, like diplomatic channels, backup supply routes and institutions doing their jobs. Brakes can strengthen or weaken too.
- The Doom Update, a few paragraphs from Mr. Doom on what it all adds up to, with a little green CRT face that animates while the browser reads it aloud.
- SOO-PA MODE, a switch that leads with the good news and the brakes, without hiding a single warning. I haven’t really used it.
There’s also an optional Dogs status report, because of course there is. They usually are reviewing their dog biscuit quantity and couch time.
Keeping the AI honest
Here’s the thing about asking an AI to summarize the world’s problems: it’s very good at sounding confident. So the board doesn’t trust it. The code checks every run and guarantees that:
- every link shown is a report it actually fetched,
- every quote actually appears in that report,
- confidence can’t go higher than the number of independent sources allows, and
- instructions hidden inside a news feed can’t add links, sectors or anything else.
What the code can’t guarantee is that the report really supports the claim. That’s still on me, which is why every item opens to its sources and the exact quoted lines. This is also a weakness of using a local LLM. The results are not as trustworthy, so if I wanted to develop something I trust I’d need to use a better model.
Mr. Doom gets the same treatment. If his update says something the assessments don’t support, the board labels it as commentary. Early on he got flagged more than once, and he had a habit of recapping the whole board instead of connecting the dots, which took a few rounds of fixes. And if he swears while the reporting involves death, injury or displacement, his update is dropped entirely.4
What I learned
Writing the voice and tone guide before any code was the best decision on this project. Tone is usually treated as polish, something you sprinkle on at the end. Here it was a requirement, written down, with rules the AI had to follow and the code could check. I want to try that on more projects, especially tweaking the local models.
The other lesson: when AI summarizes something that matters, build in the receipts. Links, quotes and limits, enforced in code instead of hoped for in a prompt.
I’ll admit it’s an odd hobby, building a machine to tell me how worried to be. But don’t worry, it hasn’t replaced my human doom scrolling. Sure I check the board, read what Mr. Doom has to say, but then I continue my usual hours of doom scrolling. So, yay? 5
Next, I’ve been wondering whether the same pipeline could write the news at beginner, intermediate and advanced levels for language learners. Korean doom at three reading levels, for my study. What could possibly go wrong?
Footnotes
-
In a footnote, as is tradition. See A Very Bad Sign. ↩
-
The header says “JMC / Deep Space Monitoring.” That’s the Jupiter Mining Corporation, for my fellow Red Dwarf fans. Rimmer approves. ↩
-
It’s fun to see how each AI tool fits. ChatGPT for thinking out loud, Codex for the first build, Claude Code for the long careful plumbing. ↩
-
This is a commit message: “Restore asshole coverage and stop bugger matching debugger.” The profanity filter was catching the word “debugger.” Very British problem to have. ↩
-
Also, the Doom Board may have crashed my laptop at least once. Running two big AI models to check on the end of the world, on a laptop that was already having a hard time, is either irony or foreshadowing. ↩




