Skip to content

Craft · research february 2026 · published 2026-08-03 · v1 · 3 min read

The competence illusion

A prototype that runs is evidence of fluency, and fluency is not soundness

Why the ordinary quality signals go quiet exactly when a generated system is structurally wrong, and what to check instead. The canonical treatment of the competence illusion.

In brief
The problem

directional

The evidence points this way but is not settled.

  • "Generation optimizes for coherence rather than correctness, so a false premise adopted early propagates consistently through everything built on it."

    directional. The training objective and the hallucination-cascade pattern documented in both of our engineering research records; a mechanism claim about how the failure is shaped, not a measured error rate.

Open the complete evidence in the structured publication.

Generated work arrives carrying every signal a decade of practice taught practitioners to trust, and those signals were all calibrated against human error, which looks nothing like this.
The mechanism

directional

The evidence points this way but is not settled.

  • "Artifacts built on a false premise are internally consistent and pass conventional checks, including linters, type checks, and model-written tests."

    directional. Practitioner reports in both research records; the mechanism is straightforward, since each of those checks validates internal agreement rather than correspondence with the world, but the frequency is not measured here.

Open the complete evidence in the structured publication.

A false premise adopted early is built on consistently, so the artifact ends up internally coherent with its own error, and each conventional check confirms that coherence instead of catching the premise.
The move

position

This is the publication's stated position, not an empirical claim. It rests on the argument rather than graded evidence.

Open the complete evidence in the structured publication.

Verify the premises rather than the behaviour, read the tests before the implementation, and ask a separate session to explain the work back rather than to approve it.

A human first draft announces itself. It is uneven, it hesitates at the hard part, the naming goes slack in the third file, and a reader can feel where the author stopped understanding. Generated work does none of that. It arrives uniformly fluent, consistently named, plausibly structured, and confident throughout, and the confidence is flat across the parts the model had grounds for and the parts it did not. Every instinct a reviewer developed reading human drafts is calibrated to a signal that is no longer being transmitted.

The failure this produces has a specific shape. A model adopts a false premise early, that an endpoint returns a timestamp when it returns a string, that a library exposes a method it never had, that a column is unique when nothing enforces it. Everything downstream is then built to agree with the premise, because agreement is what generation optimizes for, and the result is a subsystem that is internally consistent with its own mistake. The linter has no opinion about premises. The type checker validates the shapes the code declares, not the ones the world supplies. The tests, frequently written by the same model in the same session from the same assumption, pass emphatically and prove only that the code agrees with itself. Every conventional quality signal confirms the error rather than catching it, which is a strictly worse position than the one those signals were built for, because a signal that stays silent is at least honest about knowing nothing.

Then the prototype runs, and running is the strongest illusion of all. The thing does what you asked, in front of you, on the demo path. Behind the demo path sit the plural case, the empty case, the concurrent case, the hostile case, and a security posture assembled from whatever was most common in the training data, which is not the same as whatever is correct for your data. Confidence in the artifact tracks how convincing the demo was, and how convincing the demo was tracks nothing that matters.

What survives contact with this is a small and slightly boring set of habits, all of which move the check upstream of the artifact. Verify the premises before the behaviour, which usually means checking the actual response, the actual signature, the actual constraint, rather than the code’s belief about them. Read the tests first, since a generated test that mocks away the logic or asserts that true is true will pass forever and cheerfully, and a valid test is worth more than the implementation it guards. Put the critique in a different session from the authoring, because a critic that shares a conversation with the author shares the author’s premises and will defend them with the same fluency. Ask that session to explain the code back rather than to approve it, and listen for the sentence where the explanation quietly asserts something about the world that you know to be untrue.

The underlying correction is a small one and it costs nothing to make. Working is not a verdict, it is a symptom, and it has always been a weaker one than we let ourselves believe. What we lost was the accident that used to protect us, the fact that writing a thing slowly by hand made a person understand it. What we get to do instead is understand it on purpose.

Evidence and lineage

Research trail

Follow the sources, inspect how the claims are graded, or propose a correction at the exact record it concerns.

Sources 3
  1. MNSTRY engineering research record (2026). AI-assisted development best practices (2026), which names the competence illusion as functional prototypes masking structural fragility

    The term's home in our own record and the source of the failure inventory the brick works from: hallucinated premises, security naivety, and local optimization that violates global patterns.

    Comment on this source
  2. MNSTRY engineering research record (2026). AI-augmented solo spiral development methodology (2026), on hallucination cascades and cross-examination testing

    The cascade mechanism, a false premise built on until the artifact is internally consistent with its own error, and the separate-session cross-examination the brick recommends in its place.

    Comment on this source
  3. Barry Boehm (1981). Software Engineering Economics

    Why premise errors are the expensive class. A false premise adopted at specification time is the earliest possible defect and therefore the costliest to discover late, which is exactly what the illusion arranges.

    Comment on this source
Claims and confidence 3
  1. directional

    Generation optimizes for coherence rather than correctness, so a false premise adopted early propagates consistently through everything built on it.

    The training objective and the hallucination-cascade pattern documented in both of our engineering research records; a mechanism claim about how the failure is shaped, not a measured error rate.

    Respond to this claim
  2. directional

    Artifacts built on a false premise are internally consistent and pass conventional checks, including linters, type checks, and model-written tests.

    Practitioner reports in both research records; the mechanism is straightforward, since each of those checks validates internal agreement rather than correspondence with the world, but the frequency is not measured here.

    Respond to this claim
  3. directional

    Models generate tautological or logic-mocking tests often enough that generated tests must be read before the code they guard.

    Repeated practitioner observation in our research records; a practice rule with observational support rather than a measured rate.

    Respond to this claim

Read next

Or survey the topics.

Concepts in this piece 1

Add to the work

Contribute to The competence illusion

Write the useful part. Identity, provenance, and review history are attached when you submit. The published source stays unchanged.

Target The competence illusion

Contribution intent
Use an agent instead

The interface is ready. Public authenticated intake remains off until the hosted migration and feature flag are deployed together.