Dark graphic card: trait signal chips showing a clean AMG check, a manufactured urgency revision, a moral drift pattern flag, and an open investigation, next to a traits layer above the model

Traits, Not Prompts

The claim checker was not enough. Here is what I built next, and why it’s free too.

A few days ago I released a tool built on a simple rule: an unsourced claim is a build error. If you missed that story, it’s here. The short version: I run my business on AI agents, I caught them presenting unverified claims as fact, and I made that structurally impossible.

I thought that closed the case. Then I started reading my transcripts differently, and I found a second category of problem. These sentences were not false. Every word checked out. And they were still working against me.

“You’re absolutely right.”

“That’s a visionary way to think about it.”

“This can’t wait. You need to move on this now.”

Run those through a claim checker and nothing flags. There’s no citation to verify, no fact to bind. But look at what they’re doing. The first one agrees before evaluating. The second one flatters. The third one converts urgency into pressure. None of them lied to me. All of them were steering me, and not with evidence.

That’s the gap. Truth checking catches false claims. It does nothing about true sentences aimed at your weaknesses.

Capabilities versus traits

Here’s the frame that unlocked the build. A capability is what a system can do. A trait is what it’s inclined to do automatically, without being asked, every single time.

Every AI vendor sells capabilities. Almost nobody ships traits. You can prompt a model to “be skeptical” and it will be skeptical for one reply, then drift back the moment the context shifts. A prompt is a request. A trait is a mechanism that runs above the model on every output whether the model feels like it or not.

So I built the traits as code. Plain, deterministic, boring code that runs in microseconds and doesn’t care how persuasive the model was feeling that day.

What runs on every reply now

Anti-Manipulation Governance. Every draft my system produces gets scanned for the shapes of unfair influence before it reaches me: flattery in place of evaluation, dependency building (“you should always ask me before deciding”), manufactured urgency, social pressure, appeals to what everyone supposedly knows. It scores the draft from 0 to 3. Level 2 says revision suggested and shows why. Level 3 delivers the reply wrapped in a loud warning with the rationale attached. Nothing gets blocked silently, because a silent blocker is just another manipulator. The principle underneath it: change beliefs through evidence and reasoning, never by exploiting emotional, cognitive, or social vulnerabilities.

Investigative drive. A sounding board that only answers questions is passive. A good one notices what should become known next. This trait ranks open uncertainty by impact and sensitivity, and its ledger persists to disk, so a question I raised on Monday is still alive on Wednesday. Closing a question requires a real resolution. The code literally rejects thin ones. The error message says “receipt, not vibes.” Abandoning one requires a written reason.

The moral drift monitor. This one I care about most. Principles rarely break in one dramatic moment. They erode. “Just this once” becomes “given the deadline” becomes the new normal. So this trait watches for exception language against principles that are written down, and only ones that are written down. Ask it to monitor a principle that isn’t in the written list and it refuses. It cannot invent morals. Three exceptions against the same principle in a window and a pattern flag goes up. Erosion becomes visible while it’s still small.

Plus three smaller lenses: self-deception (firm conclusions on thin evidence), skepticism (strong language, weak support), and integrity (authority claims, fabrication suggestions, pressure treated as consent).

The honest part

Same discipline as last time, because precision is the point.

These detectors are deterministic pattern matchers. That’s a feature: near zero false positives, no model judging the model, reproducible results. It’s also a limit: they catch known phrasings, and a manipulation reworded cleverly enough will slip past the passive scan. That limit is disclosed in the code itself, and the rule for growing the lexicon is written down too: from real observed misses, never from imagination.

This does not make an AI ethical. It makes specific dishonesty shapes visible, mechanically, every time. That’s a smaller claim and a true one, and I’ll take a true small claim over a grand false one every day of the week.

Why it’s free

The Evidence-Binding Compiler answers one question: is this claim supported? This package answers two more: is this influence fair, and is this system’s attention pointed at the right unknowns? They’re deliberately separate tools that compose in a pipeline. Both are now public on GitHub under Apache 2.0. Use them, embed them, sell with them.

The reasons are the same as last time. My stack stands on open source I didn’t write, and this is another payment on that debt. And I want the questions to become normal. Last time the question was “what’s your fabrication rate?” This time it’s better: does your AI flag its own flattery? Does it know when it’s manufacturing urgency? Does it notice when “just this once” is becoming a habit? If your vendor can’t answer, you now know exactly what’s steering you.

The repo is here: github.com/davedepew/cognitive-governance

Break it if you can. Write a manipulative sentence the detectors miss and file it as an issue. A miss you can reproduce is worth more to me than a hundred stars, and it’s the only way the lexicon is allowed to grow.