Skip to content

Build1 publisher3 min readPublished

Agent-authored TODOs pile up faster than human ones, studies find

A dev.to post pairs a TechDebt 2026 crawl of 6,540 LLM-referencing comments with an MSR 2026 sample of 525 agent-authored SATD comments, and argues from them that the note-to-self lifecycle no longer holds.

The Engineer · Build desk

Illustration accompanying Agent-authored TODOs pile up faster than human ones, studies find

What happened

  • Both samples put the categories in the same order as the human kind, with postponed testing first, incomplete adaptation to surrounding code second, and limited understanding of the new code third.
  • On rate, the write-up says the average agent-authored PR carries multiple TODOs while the average human-authored PR carries a fraction of one, and gives no per-PR figures.
  • The dev.to post reading both studies concludes that teams should stop treating the TODO as a note to self.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • cost A TODO that names the missing check and the method to call is cheaper to write than to read, and the reviewer absorbs the cost of every fix plan the agent declined to execute.
  • decision Anyone merging agent PRs has to rule on whether a comment naming the skipped validation counts as recorded work or as an unfinished change that blocks the merge.
  • constraint Two descriptive corpora give no threshold to block on, so any team writing a merge rule this year is choosing its own numbers and will have to defend them internally.

A TODO is a comment. The compiler drops it. No test asserts on it, and no CI step goes red because of it. Nothing in the toolchain has an opinion about a comment. The dev.to post making the case for a gate, originally published at tddbuddy.com, makes the placement point directly: the agent records the discipline it skipped in the exact place a compiler will never look, and does so at generation speed [8][15].

The pre-agent lifecycle held because three properties happened to hold at once, according to the post: the author and the returner were the same person, the gap between writing the note and answering it was bounded by the sprint, and the creation rate was capped by typing speed [9]. If any one of those three conditions no longer holds, the lifecycle the post describes stops working [9].

The counted part of the argument comes from two 2026 samples. The TechDebt analysis crawled 6,540 comments referencing LLM authorship across an open-source corpus and classified the self-admitted technical debt they described [1]. The MSR study labeled 525 agent-authored SATD comments drawn from the AIDev dataset [2]. That is 7,065 comments between them [13], with the MSR sample at roughly 8 percent of the crawl [14]. The corpora, labelers, and methodology were all different, per the post [3].

Now look at what the crawl had to select on. A comment enters the TechDebt frame because it references LLM authorship [1], so an agent that leaves no such reference produces debt that method cannot see. For the distribution to transfer to your repository, your agents have to reference their own authorship in the comment.

Findings one and two are the ones the samples carry. AI-authored TODOs are more technically detailed than the human kind, naming the postponed work, the reason, and often the shape of the eventual fix [4]. The categories match the human ones in the same order, with postponed testing first, incomplete adaptation to surrounding code second, and limited understanding of the code just written third [5].

Finding three is the one the prescription leans on, and it arrives without a figure. The average agent-authored PR carries multiple TODOs; the average human-authored PR carries a fraction of one [6]. Multiple and a fraction of one are directions, not counts. The studies as described are descriptive, and the discipline move, stop treating the receipt as a note, is the post's own [7].

The contrast used to demonstrate detail is the post's illustration rather than a sampled comment: a human writing "TODO: fix this later" against an agent writing "TODO: this branch does not validate the coupon expiry date; add a check against PromotionRepository.IsExpired(code) before granting the discount" [10]. On the categories, the post says the agent is confessing the same disciplines the human confessed, with more detail in the comment [11].

If a gate is worth building on this evidence, the category order is the part to key on. Postponed testing dominates both samples [5], so a rule that flags a TODO admitting a missing test does narrower and more useful work than a blanket ban on the string. The post puts the gate at the diff, applying the same discipline as its earlier piece treating the diff as a workflow surface for tests [12].

What to watch

  • Whether the published TechDebt 2026 and MSR 2026 papers report per-PR TODO counts, which would let the rate finding be checked against a figure.
  • Whether agent harnesses keep labeling authorship inside comments; if they stop, the LLM-reference crawl loses its sampling frame.
  • Whether any lint or review tool ships a category-specific rule, such as blocking on TODOs that admit postponed testing, instead of banning the string.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories