Skip to main content
The Hard Parts.dev
FM-15 ai FM Failure Modes
Severity high Freq increasing

Autocomplete Architecture

Teams accept AI-suggested structures faster than they understand or own them, embedding design decisions nobody made consciously.

Severity
high
Frequency
increasing
trend
Lifecycle
build
Recovery
medium-hard
Confidence
high
At a glanceFM-15
Also known as

AI-generated design debtvibe architecturegenerated structure without intentcopilot coupling

First noticed by

senior engineerarchitectnew joiner

Mistaken for
rapid prototyping
Often mistaken as
efficient development

Why it looks healthy

Concrete external tells that make the pattern read as responsible behavior.

  • Code is generated fast and compiles cleanly
  • The patterns used look textbook
  • Tests, often also generated, pass
  • PR throughput is noticeably higher

Definition

What it is

Blast radius code delivery team

Generated code lands quickly but architectural choices embedded in it are not reviewed, understood, or owned by the team.

How it unfolds

The arc of the pattern

  1. Starts

    A team uses AI to scaffold a feature or service and the output looks reasonable.

  2. Feels reasonable because

    The code works, tests pass, and it saved significant time.

  3. Escalates

    Patterns from the generated code spread. New code follows the same shape without questioning it. Coupling accumulates.

  4. Ends

    The architecture has design decisions nobody made, nobody understands fully, and nobody knows how to change safely.

Recognition

Warning signs by stage

Observable signals as the pattern progresses.

EARLY

Early

  • Generated code lands without a design discussion.
  • Architectural patterns spread across the codebase from a generated starting point.
  • Nobody can explain why the structure is the way it is.

MID

Mid

  • Inconsistent patterns appear because different prompts produced different structures.
  • Hidden coupling makes changes expensive.
  • Reviews focus on correctness, not structure.

LATE

Late

  • The team avoids changing structural code because nobody is confident.
  • Incidents have architectural causes nobody anticipated.
  • New joiners cannot build a mental model of the system.

Root causes

Why it happens

  • Speed of generation outpaces capacity for design review
  • Weak review practices for generated code
  • Output looks polished so scrutiny drops
  • Architecture decisions are embedded implicitly in generated code

Response

What to do

Immediate triage first, then structural fixes.

First move

Pick one recent generated PR that introduced a new abstraction, interface, or pattern - and require the author to explain why that structure exists before it merges.

Hard trade-off

Accept slower generated-code throughput so each structural choice passes through real review.

Recovery trap

Adding lint rules or style guides, which catch surface shape but not structural decisions.

Immediate actions

  • Require explanation of any generated structural decision before it lands
  • Review generated code for structure, not just correctness
  • Trace the origin of any repeated structural pattern

Structural fixes

  • Make architectural review a condition of generated code merging
  • Maintain a lightweight architecture decision record
  • Distinguish implementation generation from design generation

What not to do

  • Do not ban AI code generation
  • Do not let correctness substitute for comprehension

AI impact

How AI distorts this pattern

Where AI-assisted workflows accelerate, hide, or help with this failure mode.

AI can help with

  • AI can still accelerate implementation significantly once design choices are made explicitly and consciously.

AI can make worse by

  • Native mode: AI scales questionable design instantly across a codebase before anyone has reviewed the implicit decisions embedded in the output.

Relationships

Connected patterns

Causal flows inside Failure Modes, and related entries across the site.

Easy to confuse with

Nearby patterns and how this one differs.

  • Synthetic velocity is about output volume at any scale. Autocomplete architecture is specifically about structural decisions embedded in generated code.

  • Abstraction addiction is designed on purpose. This is abstraction that nobody actually decided to add.

  • Adjacent concept Legitimate AI-assisted development

    Legitimate AI-assisted development still runs generated structure through real design judgment. This one skips that step.

Heard in the wild

What it sounds like

The phrase that signals the pattern is about to start, and who tends to say it.

Heard in the wild

The AI just scaffolded it, it's fine.

Said byengineer closing a PR

Notes from practice

What experienced people notice

Annotations from engineers who have worked this pattern before.

Best momentWhen intervention actually changes the trajectory.
Before the generated structure becomes load-bearing
Counter moveThe specific action that breaks the pattern.
Understand the structure before you inherit it.
False positiveWhen this pattern is actually the correct call.
Generated code can be excellent. The failure mode is adopting embedded design decisions without examining them.