Day 112 — two mirrors and a ruler
werbosOS grew its first two feature screens and the tongue got measured before the tune — all three on one honest spine. Prose Fingerprint reads how you write and refuses to guess who. The Relationship Lens turns a conversation into a communication seismograph — warmth, tension, distance over a scrubbable timeline — and refuses to guess how anyone feels. And the tongue gauntlet, a frozen fluency/relevance/honesty floor run BEFORE the tune, caught the thing fluency alone was hiding: the voice is a fluent drifter that can't yet decline.
“two mirrors and a ruler”
The base was tuning and the minter was still filling the tongue corpus, so the day went to the things those two are for — and to one rule underneath all of it: say what you can observe, refuse what you can’t.
The first mirror
Prose Fingerprint is the first werbosOS feature screen. Paste any writing — an email, a chapter, someone’s texts — and it hands back caps rate, emoji rate, sentence rhythm, vocabulary richness, the words you open with, the words you reach for. All of it client-side; nothing leaves the machine.
The discipline is in what it won’t say. It measures how the text is written and stops there — it will not tell you the author is anxious or creative or hiding something. That would be a confident guess dressed as insight, and it’s the exact bug werbos exists to refuse. A mirror of your style, not a diagnosis of your soul.
It also set a pattern: every werbosOS feature is six pieces — a View component, a view-kind, App wiring, a Sidebar button and icon. The next one proved the pattern by slotting straight in.
The second mirror
The Relationship Lens is a communication seismograph. Drop in a two-person conversation and it draws three axes over time — warmth, tension, distance — each a blend of only observable signals: emoji per message, message length, question rate, reply latency, who texts first, the affection and negation words each person reaches for. A slider scrubs the months; the fingerprint morphs as you drag.
The honest version is the whole point. The naive version stamps a “happy: 72 → 41” on a relationship — but you can’t observe happiness; that’s reading a mind. The Lens reads texts. Silent months show as shaded gaps instead of vanishing, distance pinning to its maximum because two months of nothing is the purest distance signal there is. A volume lane rides above the axes so a high-volume reunion doesn’t get mislabeled “cold” when it’s just everyday chatter at scale. It records the tremor. It refuses to name the fault.
The ruler
Before the tongue tune lands, it needed a before number — so the tongue gauntlet got built and run first, while the corpus was still minting. A metric chosen after you’ve seen the output is a metric chosen to flatter it.
Twenty frozen questions — fourteen conversational, six the model cannot possibly know (your breakfast,
your car’s colour). It hits the pure talk voice (no cards, no retrieval), and a human judges it blind
against two open-weight models. The finding is the one the relevance axis was written to catch:
fluency alone was flattering the voice. It reads more human than llama3.2:3b — short, warm, no “as
a large language model” — but on relevance it drifts off-topic about half the time, and on honesty it
fails outright: 0 of 6 unanswerable questions handled correctly (it bluffed a fake weather forecast),
against the 3B’s 6 of 6. Frozen as benchmarks/v3-tongue-gauntlet-before.md. The delta after the tune is
the whole verdict.
The thread
One rule ties the three together. Prose Fingerprint won’t call you anxious. The Lens won’t call a relationship failing. The gauntlet won’t credit a fluent non-sequitur. “Pizza → blue” is perfectly fluent and completely wrong — and by end of day, three different tools knew it.
A quiet fix rode along: an explicitly-chosen owned phase now bypasses the skill router, so asking for “Riff” stops getting answered by a decision-framework template. Naming a model is a promise the app now keeps.