<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/the-intent-debt-iwe6blcqq" -->

---
title: The Intent Debt | daily.dev
description: Addy Osmani introduces &#x27;intent debt&#x27; — the third type of software debt alongside technical and cognitive debt — defined as the absence of externalized...
canonical: https://daily.dev/posts/the-intent-debt-iwe6blcqq
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: The Intent Debt | daily.dev
og:description: Addy Osmani introduces &#x27;intent debt&#x27; — the third type of software debt alongside technical and cognitive debt — defined as the absence of externalized...
og:url: https://daily.dev/posts/the-intent-debt-iwe6blcqq
og:image: https://api.daily.dev/og/posts/IWE6bLCqQ.png
og:image:alt: The Intent Debt
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# The Intent Debt

**[Addy Osmani](https://daily.dev/sources/addy)** · [@addyosmani](https://daily.dev/addyosmani) · 9 min read · 122 upvotes · 12 comments

## Summary

Addy Osmani introduces 'intent debt' — the third type of software debt alongside technical and cognitive debt — defined as the absence of externalized rationale, goals, and constraints that explain why a system is built the way it is. Unlike technical debt (fixable by refactoring) and cognitive debt (recoverable by asking an AI to explain code), intent debt cannot be resolved by AI agents because intent must originate from humans. The post argues that agentic engineering dramatically amplifies the cost of unwritten intent: each agent session starts cold with no accumulated tacit knowledge, so every undocumented decision becomes a recurring tax paid across every agent run. Practical remedies include writing intent-focused specs, maintaining AGENTS.md as an intent ledger rather than auto-generated config, capturing lightweight ADRs at decision time, and building self-improving agent loops that write learnings back to persistent files.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://addyosmani.com/blog/intent-debt>

## Community discussion

Top comments from developers on daily.dev.

**@jensroland** · 7 upvotes

> A sharp point and increasingly important.
>
> A few months ago I actually built a small tool to capture line-by-line intent for agentic codebases - called it 'blamebot' - which works like `git blame` except it captures the intent behind the change rather than the author.
>
> Blamebot adds non-trivial overhead to the repo of course, since it has to store all of this granular intent data somewhere, but it does pay off when you come across a peculiar design decision and can simply ask "Why did you use foo.bar() here instead of just using the built-in package.utils.bar()?" and you get a concise summary...

**@daniel8000** · 3 upvotes

> The most funny debt of all three :D. I actually worked in projects where we were doing it.. just to have something to do i guess ;)

**@husseinkizz** · 2 upvotes

> I solved this with decision records in my AI workflows, for every session important decisions are documented.

**@pavlom** · 1 upvotes

> The "intent debt" existed on many projects long before LLM and AI Agents, and that is why we have systems "doing something" but nobody knows nor "why doing this way?" nor "why we do this at all?"...
> And especially in all those "Clean code doesn't need comments; the code is the source of truth." mantra: once human author leaves the project without leaving any traces of "why" decisions all those "smart working solution" (even with all tests in green) becomes "human slop"!!!
>
> The next engineer is left looking at a "working system", completely terrified to touch it because they don't know what...

**@agostinadevdc** · 1 upvotes

> **Intent Engineering > Code**. It’s never just about syntax or style—the real design lives in **rules, goals, and the reasoning behind every decision**.
>
> Vibe coding often diverges from intent; humans produce, deploy, and forget objectives. Spec-driven approaches like **OpenSpec** externalize intent upfront, letting AI and teams align without losing sight of **what truly matters**: quality, clarity, and meaningful outcomes.
>
> Code can be generated, refactored, even explained by AI—but **intent is human**. Capture it. Design it. Let it guide everything.

## Similar posts on daily.dev

- [Cognitive debt: The hidden risk in AI-driven software development](https://daily.dev/posts/cognitive-debt-the-hidden-risk-in-ai-driven-software-development-jmlat11si) · Engineering Enablement · 39 upvotes · 4 comments
- [Managing Cognitive Debt in AI-Assisted Development](https://daily.dev/posts/managing-cognitive-debt-in-ai-assisted-development-zpaipid6s) · Medium · 0 upvotes · 0 comments
- [Why AI coding debt is different](https://daily.dev/posts/why-ai-coding-debt-is-different-ne1tftltr) · InfoWorld · 0 upvotes · 0 comments
- [The hidden technical debt of agentic engineering](https://daily.dev/posts/the-hidden-technical-debt-of-agentic-engineering-vknyg3ay3) · The New Stack · 0 upvotes · 0 comments

---

Tags: [#architecture](https://daily.dev/tags/architecture), [#ai-coding](https://daily.dev/tags/ai-coding), [#technical-debt](https://daily.dev/tags/technical-debt)

[View this post on daily.dev](https://daily.dev/posts/the-intent-debt-iwe6blcqq)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"The Intent Debt","url":"https://daily.dev/posts/the-intent-debt-iwe6blcqq","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/the-intent-debt-iwe6blcqq"},"datePublished":"2026-06-06T02:24:29.154Z","dateModified":"2026-06-06T23:00:11.503Z","description":"Addy Osmani introduces 'intent debt' — the third type of software debt alongside technical and cognitive debt — defined as the absence of externalized...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/96291d876294a46915e1b34efca38b8e?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/96291d876294a46915e1b34efca38b8e?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Addy Osmani","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Person","name":"Addy Osmani","url":"https://daily.dev/addyosmani","image":"https://avatars2.githubusercontent.com/u/110953?v=4","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":5320}},"commentCount":12,"discussionUrl":"https://daily.dev/posts/the-intent-debt-iwe6blcqq","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":122},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":12}],"keywords":"architecture,ai-coding,technical-debt","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Addy Osmani","item":"https://daily.dev/sources/addy"},{"@type":"ListItem","position":3,"name":"The Intent Debt"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/the-intent-debt-iwe6blcqq","comment":[{"@type":"Comment","text":"A sharp point and increasingly important.\nA few months ago I actually built a small tool to capture line-by-line intent for agentic codebases - called it ‘blamebot’ - which works like git blame except it captures the intent behind the change rather than the author.\nBlamebot adds non-trivial overhead to the repo of course, since it has to store all of this granular intent data somewhere, but it does pay off when you come across a peculiar design decision and can simply ask “Why did you use foo.bar() here instead of just using the built-in package.utils.bar()?” and you get a concise summary of the exact agentic session that led up to it (referencing both the conversation and the reasoning trace).\nIt worked pretty well, but I didn’t fully finish it. There are other somewhat similar tools out there though.\nIf anyone is curious, it’s here: https://github.com/JensRoland/blamebot","datePublished":"2026-06-06T19:49:02.199Z","dateModified":"2026-06-06T19:49:57.678Z","url":"https://daily.dev/posts/IWE6bLCqQ#c-qxXO4Xb2m","author":{"@type":"Person","name":"Jens Roland","url":"https://daily.dev/jensroland","image":"https://avatars.githubusercontent.com/u/210009?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":7}},{"@type":"Comment","text":"The most funny debt of all three :D. I actually worked in projects where we were doing it… just to have something to do i guess ;)","datePublished":"2026-06-06T10:33:33.026Z","url":"https://daily.dev/posts/IWE6bLCqQ#c-gZiyQzObN","author":{"@type":"Person","name":"Daniel","url":"https://daily.dev/daniel8000","image":"https://media.daily.dev/image/upload/s--F_RltCZK--/f_auto/v1738746891/avatars/avatar_SOwG1kJqf6HK6TkGmZH45"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3}},{"@type":"Comment","text":"I solved this with decision records in my AI workflows, for every session important decisions are documented.","datePublished":"2026-06-07T04:24:07.524Z","url":"https://daily.dev/posts/IWE6bLCqQ#c-HPdqfuoZe","author":{"@type":"Person","name":"Hussein Kizz","url":"https://daily.dev/husseinkizz","image":"https://media.daily.dev/image/upload/s--bqCp79lk--/f_auto/v1704865561/avatars/avatar_WgJOIEdxX"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2}},{"@type":"Comment","text":"The “intent debt” existed on many projects long before LLM and AI Agents, and that is why we have systems “doing something” but nobody knows nor “why doing this way?” nor “why we do this at all?”…\nAnd especially in all those “Clean code doesn’t need comments; the code is the source of truth.” mantra: once human author leaves the project without leaving any traces of “why” decisions all those “smart working solution” (even with all tests in green) becomes “human slop”!!!\nThe next engineer is left looking at a “working system”, completely terrified to touch it because they don’t know what hidden assumptions will break. (and in case if that human author is unreachable or does not remember any of the motivation behind own decisions, then for “the next engineer” there is no principal difference between “Human slop” vs “AI slop” here).\nEven without any AI and LLMs humans also need AGENTS.md with “what the team means - the conventions, the “we don’t do it this way because,” the constraints that aren’t visible in any single file”!","datePublished":"2026-06-07T12:29:37.401Z","url":"https://daily.dev/posts/IWE6bLCqQ#c-YOH4lVfbL","author":{"@type":"Person","name":"Pavlo M","url":"https://daily.dev/pavlom","image":"https://lh3.googleusercontent.com/a/ACg8ocIUVj8gNTLSbuSF73m0AUNHcpl_WUDVafgs220buVSjzPr7VLaq=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}},{"@type":"Comment","text":"Intent Engineering &gt; Code. It’s never just about syntax or style—the real design lives in rules, goals, and the reasoning behind every decision.\nVibe coding often diverges from intent; humans produce, deploy, and forget objectives. Spec-driven approaches like OpenSpec externalize intent upfront, letting AI and teams align without losing sight of what truly matters: quality, clarity, and meaningful outcomes.\nCode can be generated, refactored, even explained by AI—but intent is human. Capture it. Design it. Let it guide everything.","datePublished":"2026-06-10T21:17:02.091Z","url":"https://daily.dev/posts/IWE6bLCqQ#c-kMcQiZHzq","author":{"@type":"Person","name":"Agostina","url":"https://daily.dev/agostinadevdc","image":"https://avatars.githubusercontent.com/u/172528717?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}}]}
```

