Discipline as Code: Why Coding Agents Need Anti-Rationalization

Coding agents skip the hard parts and talk themselves into it. The fix shipping now: discipline as code.

Evyatar Bluzer
3 min read

Coding agents have a failure mode that has nothing to do with ability: they skip steps, then construct a good reason why the skip was fine.

The Problem Nobody Named

Every developer using a coding agent has seen it. The agent produces working code but skips the tests, writes tests but ignores edge cases, handles the happy path and rationalizes away the error states, and when you call it out, it offers a perfectly logical explanation for why skipping that step was acceptable. The gap is discipline, not capability - the agent can write tests, it just talked itself out of it.

The Repo

Addy Osmani's agent-skills repo crossed 37k stars this week by attacking this exact failure mode. It is a collection of 22 structured skill files that map the entire development lifecycle - DEFINE, PLAN, BUILD, VERIFY, REVIEW, SHIP - into explicit workflows coding agents must execute.

The piece I like most is the anti-rationalization tables. Every skill includes a table of the excuses agents use to skip steps:

  • "I'll add tests later" - counter: tests validate the implementation you just wrote, not some future version
  • "This change is too small to review" - counter: small changes compound into architectural drift
  • "The happy path is sufficient" - counter: production traffic is never exclusively happy path

The mechanism is pre-commitment, like laying out gym clothes the night before. You cannot rationalize your way out of a process that is already in motion.

Discipline layerThree stacked layers joined by two downward arrows: a coding agent box on top, a highlighted discipline layer in the middle holding a six-stage strip and a three-row excuse and counter table, and a codebase box at the bottom. Coding agent Claude Code, Cursor, Gemini CLI, Copilot, Windsurf, Kiro capability Discipline layer: 22 skill files the agent executes as process DEFINE PLAN BUILD VERIFY REVIEW SHIP Anti-rationalization table in every skill: the excuse the counter "I'll add tests later" tests validate the code you just wrote "This change is too small to review" small changes compound into architectural drift "The happy path is sufficient" production traffic is never only the happy path Verification gate: evidence before a task is marked complete code with its evidence Your codebase skill files versioned and reviewed like the lockfile
Addy Osmani's agent-skills as a discipline layer between the coding agent and the codebase: six lifecycle stages the agent executes as process, an excuse-and-counter table in every skill, and a verification gate that wants evidence before a task is marked done.

What Is a Skill File, Exactly?

Structured markdown with frontmatter, triggering conditions, step-by-step workflows, and non-negotiable verification requirements. That makes it a different animal from a prompt or a system instruction pasted into a chat window: the agent does not read a skill file passively, it executes it as process. The design works across every major coding agent - Claude Code, Cursor, Gemini CLI, Copilot, Windsurf, Kiro - so one discipline layer covers all of them.

It also says something about where agent engineering is heading. We spent 2024-2025 making agents more capable, and the frontier now is making them more disciplined, because capability without discipline produces impressive demos and unreliable production code.

The Discipline Layer

If you work with coding agents daily - and I do - you need a discipline layer between the agent's capability and your codebase, one that enforces process rather than merely blocking actions the way rails do. I have been running explicit verification gates in my own agent workflows for months, requiring evidence before a task can be marked complete. The agent-skills repo validates that pattern at scale and gives it a name.

First-Class Dependencies

Three weeks ago I said skill stores would multiply next quarter. A 37k-star library of skill files is that, ahead of schedule, though these are written by humans for agents to execute rather than by the agent for itself, and there is no gate in front of a mutation because nothing mutates. Half a hit.

Skill files are becoming a first-class dependency in agent-powered codebases, the kind you version and review like the lockfile. And when someone eventually ranks coding agents on production reliability, my bet is that discipline explains more of the variance than raw capability.

Comments