Build1 distinct publisher3 min readUpdated
A scan of AI-built repositories reports the same patterns everywhere: swallowed errors, defaults standing in for real data. All of it compiled, linted clean and passed the tests that existed.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
A team writing on dev.to says it went looking for structural patterns in GitHub repositories it had identified as AI-built, using a "fingerprint", across a range of frameworks, languages and team sizes [1]. It expected the problems to vary by tool, team and codebase, and reports finding the same handful of failure modes regardless [2]. The consequence is not really about AI. According to the post, the code compiled, the linters were clean and the tests passed where tests existed at all, while errors were being swallowed silently and missing data was papered over with defaults [3]. Every automated gate in a normal pipeline reported green on code the authors describe as quietly rotting. Two patterns carry most of that weight. The first is the silent failure: an assistant writes a try/catch, the catch logs the error or does not, and execution continues as though nothing happened, so the app looks fine while an operation has been skipped and the system is in a state nobody accounted for [4]. The second is what the post calls phantom correctness, code that compiles and lints and then operates on the wrong data or a fabricated value [6]. Its two biggest contributors are named specifically: `any` types used to make a type error go away rather than resolve it, and hardcoded values standing in for something that should have come from a real data source [7]. Both look completely fine in a diff, and neither throws [8]. That is the mechanism worth internalising. A compiler checks that types are consistent, and `any` is a consistent type. A linter checks form. A test checks the assertion someone wrote. None of them can tell the difference between a value that came from a data source and a value that was typed in to make the screen render. The post's framing is that this is not an intelligence problem: models are optimised to produce code that looks correct, and nothing in the default generation loop checks the separate claim that it is correct [9]. It also notes a behavioural version of the same gap, where an assistant declares a task done once the obvious high-priority wins are resolved and defers warnings and info-level findings, which in practice means never, because nothing forces a return trip [10]. The suggested remedy is that every error should be visible in three places at once: the console, the UI, and as a thrown exception that halts execution [5]. Treat the third part as a debating point rather than a rule. Halting is one way to make failure impossible to ignore, and in plenty of production paths it is the wrong one; the defensible core of the advice is that an error which only lands in a log nobody watches is hidden, not handled [5]. The post is candid that authoring-time guardrails such as rules and skills work, but only at the moment code is written [11]. It lists a second class that appears after execution: the happy-path trap in async code, meaning the second concurrent click rather than the first; vendor SDKs imported directly across dozens of files; tests that assert implementation details and break on every refactor [12]. These surface in production, or six months later when someone who was not there has to touch the code [13]. And because generation is probabilistic, it argues code drifts from design intent regardless: a prop renamed in a technically valid way that breaks a contract, a spacing value approximated instead of read from a token, a component restructured so it works but no longer matches the design system [14]. Read the caveats. The findings end in a governance framework of six principles plus forbidden and required controls, organised by class of problem rather than technology, designed to drop into whatever you already use [15], which makes this a diagnosis with a product attached.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
The proposed fix is that every error must be visible in three places at once: the console, the UI, and as a thrown exception that actually halts execution; an error that only shows up in a log nobody is watching is not handled, it is hidden.
The authors argue this is not an intelligence problem: LLMs are very good at producing code that looks correct because that is what they are optimised to do, and nothing in the default generation loop checks the separate claim that the code is correct.
Guardrails such as rules and skills are genuinely useful and work, but they all act at one specific moment, when the code is being written; they are authoring-time discipline.
The authors turned the findings into a governance framework: six principles and a set of forbidden/required controls organised by the class of problem they prevent rather than by technology, built to drop directly into whatever the reader is already using.
The source reports no count of repositories scanned, no frequency figures per pattern, no named tools or repositories, and no published definition of the "fingerprint" used to select the sample.
The authors examined vibe-coded GitHub repositories identified by a "fingerprint" (projects built primarily with AI coding assistance) across a range of frameworks, languages and team sizes, to find patterns, failure modes and recurring structural problems.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Single self-published account with no disclosed sample
Everything in the cluster comes from one dev.to post by the parties distributing the remedy. The post reports a scan of AI-assisted GitHub repositories but never states how many repositories, which frameworks or languages, which assistants, or how the selection 'fingerprint' was defined, and gives no per-pattern frequency, code sample or artifact. The named patterns are internally coherent and plausible as engineering observations, but nothing in the material can be re-checked or reproduced, and there is no comparison baseline against non-AI-authored code.
No uptake evidence
The only observable event is the authors' own announcement that their governance framework is available behind an email capture. There is no download figure, no user, no team or organisation applying the controls, no benchmark and no deployment disclosure, so uptake of either the framework or the described practices cannot be measured from the supplied material.
Universal-pattern framing outruns the disclosed data
The framing is absolute -- the same patterns 'every time', 'over and over, regardless' of tool, team or codebase, with silent failures ranked most common -- while the underlying sample is never sized, named or defined and no frequency is reported. The remedy is packaged and offered by the same authors in the same post, which pushes the gap further positive. It is not larger because the individual failure modes described are ordinary, specific and recognisable engineering patterns rather than speculative claims, and the post explicitly concedes that guardrails work and that drift is structural rather than making a product-solves-everything claim.
Problem statement authored by the framework's distributor
The post's stated purpose resolves into a call to action: a free governance framework delivered as PDF and zip in exchange for an email address, per-tool rule packs for Cursor, Copilot and Claude Code, further expansion packs promised to anyone whose contact details are captured, and a closing invitation to connect on X or LinkedIn. The scale of the reported problem directly increases the value of the offer, and the sample details that would let readers test the problem independently are the details withheld. This is disclosed openly in the text rather than hidden, which is why the reading is not higher.
Confident about the incentive shape, not the findings
Confidence is moderate because the readable facts are unambiguous: the text plainly states its method-free scan, its four pattern classes, its prescriptions and its email-gated framework, so the assessment of what is claimed and why is secure. Confidence in the substance is low: one self-interested publisher, no corroboration, no measurement and no independent verification path mean the empirical claims could be broadly right or largely selection artefact and the material cannot distinguish the two.
build
Claude Code now outruns Copilot roughly two to one in JetBrains' survey of 15,000 developers1 distinct publisher
build
The failure modes of AI agents in low-level code have names, and names can be gated in CI1 distinct publisher
build
GitHub's autoscaler watched the wrong meter, and auth, CI and Copilot fell together3 distinct publishers
build
The defect tax on in-editor models is a review capacity problem, not a tooling one1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 18, 2026