---
title: "AIs aren’t good rule followers"
description: "!https://x.com/unclebobmartin/status/2044065822067282396"
date: 2026-04-14
published: true
tags:
  - ai
  - llm
  - thought
template: link
---


<div class="embed-card embed-card-external">
  <a href="https://x.com/unclebobmartin/status/2044065822067282396" class="embed-card-link" target="_blank" rel="noopener noreferrer">
    <div class="embed-card-image">
      <img src="https://pbs.twimg.com/profile_images/2037262183751704577/54AiU968_200x200.jpg" alt="Uncle Bob Martin (@unclebobmartin) on X — @ThePrimeagen AIs aren’t good rule followers. The older the rule in the context window, the less priority it is given. So the best way to enforce the rules is with external tools that communicate failure to the AI. Acceptance testers, Linters, dependency checkers, C.R.A.P. analysis. Mutation" loading="lazy">
    </div>
    <div class="embed-card-content">
      <div class="embed-card-title">Uncle Bob Martin (@unclebobmartin) on X</div>
      <div class="embed-card-description">@ThePrimeagen AIs aren’t good rule followers. The older the rule in the context window, the less priority it is given. So the best way to enforce the rules is with external tools that communicate...</div>
      <div class="embed-card-meta">X (formerly Twitter) &middot; x.com</div>
    </div>
  </a>
</div>


I've gotta agree with bob on this one, the first thing I did to my biggest brownfield project I wanted to use agents on BEFORE they did work was a hardened pre-commit.yaml, ci, hardened type checking and linting. SECOND get rid of bad inconsistent patterns, let them replicate consistency, force them to pass checks.  Agents will follow all of your markdown suggestions _most_ of the time, enough for you to become complacent if you let it.  They are goal seeking, if you put them to a task you thought was possible that is not given your constraints, they will try to find a way given enough tokens.  I dont see this ever changing, its one thing that makes them great, it just needs to be kept in check.
