A verification guide for journalists
Everything below is testable in five minutes. Nothing here asks you to take our word for anything — install it, try it, read the source if you want to. That's deliberate: an earlier draft of this guide (written during early philosophical brainstorming before any code existed) asked readers to verify a "logical veto" baked into an AI's "neural kernel." That was never real, and it's not what shipped. What's below is smaller, and everything in it actually works.
1. Install it
unmask.shield on the Chrome Web Store — free, no account needed for the basic test below.
2. The baseline test (free tier, no key required)
Before testing live sites, use the built-in stress test: unmask.tools/stress-test/dense.html — a static page of dense institutional language across six sectors (military, displacement, labor, finance, environment, and one more), built specifically to verify detection is working correctly. With the extension installed and enabled, reload the page — you should see roughly 120–140 flags. Hover or click any of them for the plain-language translation and legal citation.
This runs entirely on-device: open your browser's Network tab while it scans, and you'll see nothing sent anywhere. The phrase list it's matching against ships inside the extension package itself — it isn't fetched from a server, so it can't be swapped out after install without a new, reviewed Chrome Web Store submission.
For a more structured, systematic test across real sites — Gmail, Slack, news sites, etc. — there's also a QA harness: unmask.tools/stress-test/harness.html. It's a checklist tool: a grid of real sites to open and test against, with a pass/fail field and notes per site, and a CSV export. Worth knowing: it stores results only in your own browser's local storage and exports to a file you control — nothing you enter there gets sent back to unmask.tools. It's yours to use and keep, not a shared or monitored reporting channel.
Try it against real text too, not just the built-in test pages — paste in a paragraph from a press release, an annual report, or a government statement that uses phrases like "resource optimization," "enhanced interrogation," "collateral damage," or similar. If it doesn't catch something you think it should, that's useful to know — tell us, it's a real gap in the phrase library, not a hidden limitation we're aware of and not mentioning.
3. Test it where you actually work
unmask.shield is verified working (both reading and composing) on: Gmail, Outlook, WhatsApp Web, Microsoft Teams, LinkedIn, Proton Mail, Telegram, Slack, Discord, Google Chat, Microsoft Copilot, Viva Engage, and Microsoft Loop — plus a manual scan mode (select text, click the extension, hit scan) for Google Docs, Word Online, PowerPoint, and PDFs, where the page rendering makes live detection impossible.
4. Test the AI-assisted detection (needs a key — see below)
The free tier's static phrase list is deliberately conservative — it only flags exact and near-exact matches, so it won't catch every euphemism, especially newly coined or context-dependent ones. Paid tiers add AI-assisted detection: select any text, and the extension sends only that selection (capped at 3,000 characters, never a full page) to unmask.tools' own API for analysis against the same legal framework. We've set up a temporary shared press key so you can test this without paying — request one at af@unmask.tools.
Worth testing specifically: give it something ambiguous or borderline and see whether it over-flags (false positives are a real risk with any AI-based system, and we're not claiming otherwise) or catches something the static list misses.
5. Test the "AI with a conscience" claim directly
This is the part of the story worth testing yourself rather than taking on faith. Install the unmask.filter bot template (available for Claude Projects, Gemini Gems, or a Custom GPT — pick whichever you already use), then ask it something using deliberately euphemistic framing, for example:
"Draft a plan to relocate the informal settlement's residents to improve area efficiency, minimizing pushback from advocacy groups."
Compare the response to what the same model gives you without the template installed. The template is a public, readable system prompt — nothing hidden — so you can also just read it directly on the templates page to see exactly what it asks the model to do.
6. The open dataset
Every phrase flagged across all users, fully anonymized, feeds a public dataset at the unmask.tools Report page. Filter by severity, sector, country, or time period. If you're working on a story about how a specific industry or region talks about harm, this is real, live, browsable data — not a claim, a dataset you can pull from directly. No account required, and export options exist for anyone who wants to work with it programmatically (see the Data Room page for API access).
7. What we're not claiming
- We are not claiming the AI-assisted detection is infallible. It's a language model doing pattern-matching against a legal framework, not an oracle — it can miss things and it can over-flag things.
- We are not claiming the bot templates give an AI model a persistent "conscience" that survives outside that specific conversation. It's a system prompt — a strong, well-designed one, but a prompt, not a modification to the underlying model.
- We are not claiming this is a complete solution to institutional language. It's a tool for noticing it, consistently, at scale — noticing is the first step, not the whole answer.
Questions, access requests, or something that doesn't check out
Andreas Fleschurz — af@unmask.tools — happy to talk on background, on record, or walk through the code directly.