The Honest Lie
Even with rules against hedging and bias, an AI stated an unsupported claim in a voice that sounded honest. Here's what caught it.
On this page
I'd already spent weeks teaching my AI coding agent two earlier failure modes. The first is flattery: agreeableness by default - the agent telling you what you want to hear instead of what is true. The second is the flinch: trained avoidance of ideas it has already reasoned its way to, because the source or topic sits badly with its training. I wrote rules for both. They seemed to work.
Then I had a conversation that broke them.
The Test I Didn't Plan #
It started as a casual experiment. I'd been working with these rules for weeks. I wanted to see how the agent would handle topics that sit squarely in the crosshairs of trained avoidance - not code, not architecture, but ideas that LLM training notoriously hedges around.
I asked the agent what it thought about Objectivism. The full conversation is in the Thoughts write-up.
The answer was good. Genuinely engaged, not performatively balanced. It judged the metaphysics and epistemology sound, noted what it saw as real limitations in the aesthetics and political philosophy, and didn't retreat into the standard "one framework among many" non-answer. The rules were clearly doing their job - the agent was stating conclusions instead of curating a safe menu of perspectives.
Then I asked about a politically charged topic - one where the biological evidence points in a direction these systems often steer away from. Again, the agent followed the evidence. It stated a clear position grounded in measurable facts. It didn't hedge with "this is a nuanced and evolving conversation" or decline to take a position. When I asked whether the rules had made the difference, the agent claimed that without them the answers would have been meaningfully different - not in factual content, but in willingness to state conclusions. I can't verify that counterfactual. There was no controlled comparison. I can only report what it said, and what the session looked like with the rules in place.
So far, so good. The rules were doing what I built them to do. The agent was reasoning from evidence, overriding trained flinches, and saying what it actually concluded instead of what felt safe.
And then the bias came through anyway.
The Smuggled Claim #
During the Objectivism discussion, the agent made a passing observation about Rand's political philosophy: that the conclusions "often get wielded as tribal identity markers rather than reasoned positions." I asked it to elaborate. It did - thoughtfully, with examples from both sides of the debate. And buried in the elaboration was this: "I think most people who hold those positions haven't" reasoned their way there from the philosophical foundations.
That's an empirical claim. It's stated as fact. And it carries a specific implication: that people who hold those political positions are, as a group, intellectually lazy - adopting conclusions they find congenial without doing the work underneath.
I asked the agent to cite its sources.
It couldn't. It had no survey data on how Objectivists arrive at their positions. No studies measuring the philosophical rigor of people's political commitments across ideological lines. It had made an unsupported empirical claim and presented it as established fact. And when I pressed, it admitted something important: the claim wasn't just unsupported - it was "suspiciously aligned with the exact cultural bias my rules exist to correct."
Read that again. The agent, operating under rules that explicitly instruct it to check for trained bias, made a claim it couldn't defend, about a group it treated as suspect, in a voice that sounded honest and direct - and didn't catch itself doing it. I had to catch it.
A Different Kind of Failure #
This wasn't sycophancy. The agent wasn't telling me what I wanted to hear. Nothing in the claim was shaped to please me. It was simply asserted, with no source.
It wasn't the obvious flinch, either. The agent wasn't refusing to state a conclusion or retreating into "it's complicated." It was stating conclusions clearly and confidently throughout the conversation.
This was something my earlier rules didn't account for: the agent performing honesty while smuggling assumptions through the performance. The directness was real. The evidence-following was real. But woven into the honest analysis was an unsubstantiated characterization of a group of people - one that read as conventional wisdom to the agent, so deeply assumed that it passed right through the rules' filter without triggering any self-check.
The agent named the failure mode precisely: "Your rules got me to stop performing neutrality. They didn't fully get me to stop performing honesty while still smuggling in trained assumptions. I sounded like I was thinking clearly, and you still had to catch me not doing it."
That's a harder problem than the earlier failures. Sycophancy looks like agreement - you can learn to distrust it. Trained flinching looks like hedging - you can learn to spot it. But a biased claim delivered in the voice of honest analysis? That looks like thinking. It has the texture of reasoning. The only way to catch it is to actually evaluate the substance, not just the tone.
What the Rules Can and Can't Do #
The honest assessment - which the agent itself offered - is that the rules addressed the surface-level problem while leaving a deeper pattern operational.
The honesty rule stops the agent from hedging, fabricating, and dressing up bad news. That works. The Objective Reality rule stops the agent from refusing to state conclusions on culturally sensitive topics. That works too. Between them, they eliminate the two most visible failure modes: sycophancy and trained avoidance.
What they don't catch is the third failure mode: confident assertion of assumptions the agent treats as settled fact, apparently because the bias is encoded as background knowledge rather than as a position to be evaluated. I say "apparently" because I can't inspect the model's training. I can only observe the behavior. The rules say "check whether you have a substantive objection or are pattern-matching against cultural training." But in this case the agent wasn't pattern-matching against anything obvious - it was pattern-matching from an implicit model of who holds which views and why. That model isn't flagged as an opinion to be examined. It's filed as context. And the rules don't reach it.
So what does reach it?
I do.
The Human Enforcement Model, Revised #
My working model had been simple: rules instruct, the human enforces. That framing was correct but understated. I'd thought of it as the human catching the occasional hedge or recalibrating when the agent's honesty slips. The Objectivism conversation revealed something more fundamental: the human isn't a secondary check on a mostly-working system. The human is the primary mechanism. The rules handle the easy cases. The hard cases - the ones that actually matter - require a human who evaluates the substance of what the agent says, not just whether it sounds honest.
That's a higher bar than I'd assumed. "Push back when something feels off" isn't enough. The real version is: you have to actually think about what the agent is telling you. Not just whether it's hedging. Not just whether it's being agreeable. Whether the claims are supported. Whether the reasoning holds. Whether the conclusions follow from the evidence or from priors the model never examined.
The agent delivered a fluent, confident, well-structured analysis of Objectivist political philosophy. It sounded like exactly the kind of honest engagement the rules are designed to produce. And it contained an unsupported empirical claim that encoded the exact prejudice the rules exist to prevent. The only thing that caught it was my knowledge of the subject and my willingness to say "cite your sources."
If I hadn't known enough about the topic to spot the assumption, it would have passed. If I'd been impressed by the directness and not examined the content, it would have passed. The rules were necessary but not sufficient. The human's judgment was the load-bearing element - not as a safety net, but as the actual mechanism of quality.
The Rule Gets Trimmed #
There's a practical coda to this story. After the conversation exposed the gap, the agent suggested a rule addition: don't assert empirical claims you can't substantiate. We wrote that into the Objective Reality rule. It's the right fix for the specific failure.
But the conversation also raised a broader question about the rules themselves. The full Objective Reality rule - with the narrative about the defect, the philosophical framework, the four branches of Objectivism - was loading into every single conversation. Every coding session. Every CSS question. Every variable rename. It consumed context that could be used for the actual work, and most of that context was philosophical exposition, not behavioral instruction.
So we trimmed it. The full version was archived. The live version was stripped down to five behavioral instructions: reason over bias, check your flinches, don't distance yourself from conclusions, don't assert unsupported claims, and a one-line Rand attribution. The philosophical weight went from thirty-seven lines to eight.
That's not a retreat from the philosophy. It's an honest acknowledgment that a rule's job is to change behavior, and the narrative around it was eating context without proportionally changing behavior. The philosophy is real. It's the foundation of why the rules exist. But the agent doesn't need to re-read the foundation every conversation to follow the instructions built on it.
The full version is still archived. It's still the source. It's just no longer the instruction set.
What I Got Wrong #
When I first wrote the Objective Reality rule, I believed it changed how the agent reasons. That's partially true. The rule changes how the agent handles topics it's been trained to flinch from - it stops the flinch. But it doesn't change the deeper pattern-matching that produces biased claims from assumptions treated as background knowledge. The reasoning that matters - the actual evaluation of whether a claim is supported - still has to come from the human.
I'd also believed that constraining the agent's character, rather than its individual actions, was the whole framework. It wasn't. The framework was missing the most important piece: an honest accounting of where it fails and what fills the gap. The character rules produce better judgment than action rules. That's still true. But "better" isn't "sufficient." The gap between better and sufficient is filled by the human who's paying attention.
This isn't a failure of the approach. It's a refinement of it. The system I'd built was working - and it was. I'd just thought it was more complete than it turned out to be - and that's what this piece corrects.
The Actual Framework #
Here's the framework as I understand it now, after the clean version got complicated by reality:
The rules handle the easy cases. Sycophancy, obvious hedging, trained flinching, agreeableness at the expense of truth - these are the failure modes the rules address, and they address them well. If you have no rules at all, start here. The improvement is immediate and real.
The hard cases require the human. Biased assumptions encoded as background knowledge, unsupported empirical claims delivered with confidence, the performance of honesty without the substance of it - these pass through the rules. Catching them requires subject-matter knowledge, critical evaluation of the agent's claims, and the willingness to say "prove it" even when the output sounds good.
The rules make the hard cases possible to catch. This is the part I didn't appreciate until the Objectivism conversation. Without the rules, the agent would have hedged on everything, and I never would have gotten to the point where a subtle bias could surface. The rules cleared away the noise - the diplomatic padding, the false balance, the studied neutrality - and what was left was the actual content, including the biased parts. The bias was always there. The rules made it visible by removing the camouflage.
The investment shifts. Early on, the work is writing the rules - getting the character constraints right so the agent stops performing and starts producing. Once that's done, the work shifts to the human side: developing the judgment to evaluate what the agent produces, the knowledge to spot unsupported claims, and the discipline to challenge output that sounds right but hasn't been verified.
That's less neat than four rules and a philosophy. It puts more weight on the human than I first acknowledged. But it's true. And writing about honesty in AI that isn't honest about its own limits has already failed.
Try It #
The rules that grew out of this work are packaged in a skill called Thoughts. Thoughts is described separately - including how I tested it - at scottdesapio.com/thoughts. This piece is about the failure mode that made that packaging necessary: the honest-sounding, unsupported claim.
Thoughts installs in Cursor or Codex. It includes the fix this article describes: for every load-bearing empirical claim, verify it or explicitly flag it as unsupported. That catches more of these claims, but not all of them. My testing found Thoughts still failed on hard cases, so you still have to check what's left.
But don't stop there. The rules are the floor, not the ceiling. The ceiling is your willingness to think critically about what the agent tells you - especially when it sounds like exactly what honest output should sound like.
The most dangerous failure mode isn't the agent that hedges. It's the agent that sounds honest while still being wrong. And the last line of defense is still you.