<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Hyperdev]]></title><description><![CDATA[HyperDev is a technical publication exploring practical agentic AI development and AI-powered coding tools. As a veteran technology executive with 25+ years of experience, I provide honest, hands-on reviews and strategic insights about which AI coding too]]></description><link>https://hyperdev.matsuoka.com</link><image><url>https://substackcdn.com/image/fetch/$s_!j9a7!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab665959-5546-4469-9e93-9e1518976e2b_1024x1024.png</url><title>Hyperdev</title><link>https://hyperdev.matsuoka.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 05 May 2026 08:10:56 GMT</lastBuildDate><atom:link href="https://hyperdev.matsuoka.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Robert Matsuoka]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[hyperdev@matsuoka.com]]></webMaster><itunes:owner><itunes:email><![CDATA[hyperdev@matsuoka.com]]></itunes:email><itunes:name><![CDATA[Robert Matsuoka]]></itunes:name></itunes:owner><itunes:author><![CDATA[Robert Matsuoka]]></itunes:author><googleplay:owner><![CDATA[hyperdev@matsuoka.com]]></googleplay:owner><googleplay:email><![CDATA[hyperdev@matsuoka.com]]></googleplay:email><googleplay:author><![CDATA[Robert Matsuoka]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[What’s In Your Second Brain?]]></title><description><![CDATA[Tooling for the modern CTO]]></description><link>https://hyperdev.matsuoka.com/p/whats-in-your-second-brain</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/whats-in-your-second-brain</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Mon, 04 May 2026 13:26:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oH6q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30309841-bfd3-4d55-a5d2-03d8d872cc9b_1024x649.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oH6q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30309841-bfd3-4d55-a5d2-03d8d872cc9b_1024x649.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oH6q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30309841-bfd3-4d55-a5d2-03d8d872cc9b_1024x649.png 424w, https://substackcdn.com/image/fetch/$s_!oH6q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30309841-bfd3-4d55-a5d2-03d8d872cc9b_1024x649.png 848w, https://substackcdn.com/image/fetch/$s_!oH6q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30309841-bfd3-4d55-a5d2-03d8d872cc9b_1024x649.png 1272w, https://substackcdn.com/image/fetch/$s_!oH6q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30309841-bfd3-4d55-a5d2-03d8d872cc9b_1024x649.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oH6q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30309841-bfd3-4d55-a5d2-03d8d872cc9b_1024x649.png" width="1024" height="649" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30309841-bfd3-4d55-a5d2-03d8d872cc9b_1024x649.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:649,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1458693,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/196419582?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25c8af5-4b58-4f5d-b775-532bd485770e_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oH6q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30309841-bfd3-4d55-a5d2-03d8d872cc9b_1024x649.png 424w, https://substackcdn.com/image/fetch/$s_!oH6q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30309841-bfd3-4d55-a5d2-03d8d872cc9b_1024x649.png 848w, https://substackcdn.com/image/fetch/$s_!oH6q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30309841-bfd3-4d55-a5d2-03d8d872cc9b_1024x649.png 1272w, https://substackcdn.com/image/fetch/$s_!oH6q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30309841-bfd3-4d55-a5d2-03d8d872cc9b_1024x649.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The modern CTO toolkit isn&#8217;t just apps and coding tools. The real differentiator is a custom knowledge layer &#8212; databases, search indices, memory graphs, behavioral instructions that compound over time. No product gives you this. You build it.</p><p><a href="https://karpathy.ai/">Andrej Karpathy</a> gestured at something similar last month when he posted a <a href="https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f">GitHub Gist</a> he called &#8220;LLM Wiki.&#8221; His framing: stop using LLMs <em>just</em> to write code, use them to build and maintain a personal knowledge base instead. <em>&#8220;Obsidian is the IDE, the LLM is the programmer, the wiki is the codebase.&#8221;</em> Three folders, structured Markdown, a large context window, a few Python scripts. No RAG, no vector database. He concluded with: <em>&#8220;I think there is room here for an incredible new product.&#8221;</em></p><p>He&#8217;s right that there&#8217;s room. But the product comment is where I&#8217;d push back, and I&#8217;ll get to that. What Karpathy is describing isn&#8217;t a note-taking system. It&#8217;s a personal operational knowledge layer. For CTOs specifically, that layer needs to be broader than a personal wiki &#8212; it needs live organizational data, agent-connected search, and context that persists across months of decisions. No app hands you that.</p><h2>TL;DR</h2><ul><li><p>Karpathy&#8217;s LLM Wiki shows the direction: LLMs as knowledge compilers, not just code generators</p></li><li><p>A modern CTO&#8217;s &#8220;second brain&#8221; is more than PKM &#8212; it&#8217;s live databases, custom agents, and contextual search across organizational data</p></li><li><p>When I joined Duetto as CTO, my custom toolkit let me synthesize a 150-person R&amp;D org in weeks instead of months</p></li><li><p>The power isn&#8217;t Obsidian. It&#8217;s what you connect to it &#8212; MCP servers, search indices, knowledge graphs</p></li><li><p>Productizing this is theoretically possible and practically very hard, because the schema is the moat</p></li></ul><h2>The toolkit article got it half right</h2><p>In <a href="https://hyperdev.matsuoka.com/p/whats-in-my-claude-code-toolkit">What&#8217;s In My Toolkit: Claude Code and Family</a>, I wrote about vanilla Claude Code&#8217;s core limitations: context evaporates, code search is keyword-based, memory doesn&#8217;t persist, execution is single-threaded. The tools I built &#8212; <a href="https://github.com/bobmatnyc/claude-mpm">Claude MPM</a>, <a href="https://github.com/bobmatnyc/mcp-vector-search">mcp-vector-search</a>, <a href="https://github.com/bobmatnyc/kuzu-memory">kuzu-memory</a> &#8212; address each of those gaps.</p><p>But that article was about coding workflows. The real story is broader.</p><p>The same architecture that makes a coding session more effective &#8212; persistent memory, semantic search, specialized agents pulling from structured data &#8212; turns out to be extraordinarily useful for executive work. Understanding an organization, tracking decisions over time, querying data across systems, maintaining context across months of meetings and analysis. The toolkit I built for software development became the toolkit I used to onboard as a CTO.</p><p><a href="https://hyperdev.matsuoka.com/p/i-built-a-coding-tool-then-i-used">That onboarding story</a> is documented in detail elsewhere. Short version: I pointed a multi-agent framework at GitHub, JIRA, Slack, Confluence, and budget spreadsheets, and synthesized a 150-person R&amp;D organization in the weeks before my start date. The difference between doing that with a chat interface versus a CLI-based orchestration layer with parallel agents and persistent memory wasn&#8217;t 2x or 5x. It was closer to 10x.</p><p>But the onboarding was just the starting gun. The second brain I assembled keeps compounding.</p><h2>What&#8217;s actually in my second brain</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ICJf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86cffcd-de7a-4db2-8ab3-ec6f86df65db_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ICJf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86cffcd-de7a-4db2-8ab3-ec6f86df65db_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ICJf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86cffcd-de7a-4db2-8ab3-ec6f86df65db_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ICJf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86cffcd-de7a-4db2-8ab3-ec6f86df65db_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ICJf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86cffcd-de7a-4db2-8ab3-ec6f86df65db_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ICJf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86cffcd-de7a-4db2-8ab3-ec6f86df65db_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d86cffcd-de7a-4db2-8ab3-ec6f86df65db_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1082407,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/196419582?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86cffcd-de7a-4db2-8ab3-ec6f86df65db_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ICJf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86cffcd-de7a-4db2-8ab3-ec6f86df65db_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ICJf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86cffcd-de7a-4db2-8ab3-ec6f86df65db_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ICJf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86cffcd-de7a-4db2-8ab3-ec6f86df65db_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ICJf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86cffcd-de7a-4db2-8ab3-ec6f86df65db_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Let me be specific. Because when people (now) hear &#8220;second brain&#8221; they usually think Obsidian vaults with color-coded tags and pretty Markdown files. That&#8217;s part of it. It&#8217;s the surface layer.</p><p>The actual power comes from what&#8217;s underneath.</p><h3>The memory layer</h3><p><a href="https://github.com/bobmatnyc/kuzu-memory">kuzu-memory</a> is a KuzuDB-backed knowledge graph that persists across every AI session. It stores learnings from conversations, code commits, decisions, patterns. When I start a new Claude Code session on a problem I&#8217;ve touched before, the context isn&#8217;t blank &#8212; it&#8217;s enriched with what was learned the last time.</p><p>This is the thing people underestimate. A project-specific memory that accumulates over months of work develops a kind of organizational intelligence you can&#8217;t replicate in a single conversation. It knows why a particular architectural decision was made. It knows that a vendor was evaluated and found lacking. It knows the terminology your team uses internally that differs from industry standard.</p><p>KuzuDB isn&#8217;t a product choice for its own sake &#8212; it&#8217;s graph-native, which means it handles relationships well. The connections between people, systems, decisions, and code are as important as the facts themselves.</p><h3>The search layer</h3><p><a href="https://github.com/bobmatnyc/mcp-vector-search">mcp-vector-search</a> provides semantic search across all project files. Not keyword search &#8212; semantic search with AST parsing. When I ask &#8220;where is the analysis I did on contractor productivity last quarter,&#8221; it finds it even if the document never uses those exact words.</p><p>At Duetto, this covers everything in my CTO project: architecture records, meeting notes pulled from Granola, emails I&#8217;ve synthesized, analysis documents, planning artifacts. Months of accumulated context, all searchable in seconds. The underlying code intelligence for the engineering organization runs as a separate service &#8212; mcp-vector-search is for my working knowledge, not the codebase itself.</p><h3>The databases</h3><p>My CTO project has three:</p><ul><li><p><strong>cto.db</strong> &#8212; SQLite. Work classification, people analysis, contributor data, commit history. The operational database for running analyses and reports.</p></li><li><p><strong>analytics.duckdb</strong> &#8212; DuckDB. OLAP queries and analytics. When I need to slice engineering output data in different ways or run something that would be painful in SQLite, it goes here.</p></li><li><p><strong>duetto_knowledge.db</strong> &#8212; The RAG-queryable knowledge base backing a Flask web app for interactive exploration.</p></li></ul><p>These aren&#8217;t a product I bought. They&#8217;re a schema I designed, built incrementally, and own completely. The schema reflects how I think about the organization, which is precisely why it&#8217;s useful.</p><h3>The connectors</h3><p><a href="https://github.com/bobmatnyc/gworkspace-mcp">gworkspace-mcp</a> handles Drive, Docs, Sheets, Gmail, Calendar, and more. I wrote my own rather than using the off-the-shelf options &#8212; Google&#8217;s first-party integration and Anthropic&#8217;s default both have significant tool coverage gaps. Mine exposes substantially more of the Workspace API surface and integrates transparently with Claude MPM, so agents can use Google Workspace tools without any special configuration at the call site.</p><p>Beyond Workspace: Notion API for product specs and planning documents. Extraction scripts for JIRA, Confluence, Slack, Datadog, and AWS. Each system outputs to as raw data, which feeds analysis pipelines that generate reports stored in a project directory.</p><p>For company-wide memory, two more tools: duetto-memory and duetto-directory. These handle shared organizational context &#8212; information that needs to flow between tools and across team members rather than staying in a single session. Memory persists within our VPC, encrypted to individual users&#8217; OAuth keys. Not even our own IT has access to it. Context shared from Claude Code shows up in Claude.ai, and vice versa, without any manual sync.</p><p>The entire flow is queryable. From a single Claude session, I can ask about budget trends, team velocity, specific architectural decisions, or what a particular engineer has been working on for the last three months. Because it&#8217;s all in the same context-addressable system.</p><h3>Obsidian as the front door</h3><p>Yes, I use Obsidian. But it&#8217;s a front door, not the building. The vault holds my personal notes, research captures, and synthesized analysis. The Obsidian Web Clipper feeds raw material into the knowledge pipeline. Templates enforce consistent structure.</p><p>Karpathy&#8217;s insight about Obsidian as IDE is right in the narrow sense: it&#8217;s the interface you use to read and organize. But the interesting work happens outside it &#8212; in the databases, the agents, the search indices, the custom scripts.</p><h2>CLAUDE.md files everywhere</h2><p>The context layer isn&#8217;t just data. It&#8217;s also behavioral instructions.</p><p>Every major directory in my project has a CLAUDE.md. The root CTO project one is 400 lines of conventions, routing logic, document lifecycle rules, and architectural decisions. Every subdirectory has a more focused version. Every specialized agent has its own constraints.</p><p>These files are my second brain&#8217;s schema, expressed as instructions rather than data. A single routing rule &#8212; &#8220;if the prompt mentions meeting notes, save to <code>projects/meetings/2026-W##/</code>&#8220; &#8212; sounds trivial. But it means twelve months of meeting notes accumulate in consistent, queryable locations rather than wherever an agent happened to save them. Multiply that by forty routing rules across fifteen subdirectories, and the entire corpus becomes navigable. The CLAUDE.md files are what make the databases useful. Without them, the data is just data.</p><p>Karpathy put it well: &#8220;You share the schema, not the code.&#8221; The schema is the valuable part. The schema is what compounds.</p><p>My schema took months to build. It will keep getting better. No product ships with the right schema for my organization, because no product knows what I know about how Duetto&#8217;s R&amp;D works.</p><h2>The productization question</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-gqt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87551032-97c3-4a89-8697-729269302cfa_1024x708.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-gqt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87551032-97c3-4a89-8697-729269302cfa_1024x708.png 424w, https://substackcdn.com/image/fetch/$s_!-gqt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87551032-97c3-4a89-8697-729269302cfa_1024x708.png 848w, https://substackcdn.com/image/fetch/$s_!-gqt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87551032-97c3-4a89-8697-729269302cfa_1024x708.png 1272w, https://substackcdn.com/image/fetch/$s_!-gqt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87551032-97c3-4a89-8697-729269302cfa_1024x708.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-gqt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87551032-97c3-4a89-8697-729269302cfa_1024x708.png" width="1024" height="708" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/87551032-97c3-4a89-8697-729269302cfa_1024x708.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:708,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1454118,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/196419582?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85bbeb78-8523-459e-9cb0-e65b1d5bce18_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-gqt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87551032-97c3-4a89-8697-729269302cfa_1024x708.png 424w, https://substackcdn.com/image/fetch/$s_!-gqt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87551032-97c3-4a89-8697-729269302cfa_1024x708.png 848w, https://substackcdn.com/image/fetch/$s_!-gqt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87551032-97c3-4a89-8697-729269302cfa_1024x708.png 1272w, https://substackcdn.com/image/fetch/$s_!-gqt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87551032-97c3-4a89-8697-729269302cfa_1024x708.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Karpathy said there&#8217;s room for an incredible product. He&#8217;s not wrong about the gap. He might be wrong about the solution.</p><p>The structural problems with productizing a second brain:</p><p><strong>Context compounds, products don&#8217;t.</strong> My system gets smarter with every commit, meeting, and conversation. A SaaS product serves thousands of customers and maintains no one&#8217;s specific context. The more I use my system, the wider the gap between it and any off-the-shelf alternative.</p><p><strong>The schema is the moat.</strong> My knowledge architecture reflects how I think about engineering organizations. Someone else&#8217;s knowledge architecture would be different. Products that force their schema on you &#8212; and every product does &#8212; are imposing someone else&#8217;s way of thinking on your problem. That friction is small at first and grows over time.</p><p><strong>Privacy is structural, not incidental.</strong> My databases contain org structures, salary data, performance patterns, vendor negotiations. Routing that through third-party infrastructure creates risk that&#8217;s practically impossible to contain. When I built duetto-memory for enterprise use, the entire stack stays within our VPC, with memories encrypted to individual users&#8217; OAuth keys. Not even IT can read them. That level of isolation is nearly impossible to provide as a multi-tenant SaaS.</p><p>Some layers could be productized &#8212; the infrastructure, not the intelligence. A well-designed memory MCP with sensible defaults. Semantic search that works without configuration. Privacy-preserving graph storage you don&#8217;t have to host yourself. The plumbing.</p><p>The schema, the decisions, and the accumulated context can&#8217;t be productized. Those are yours. That&#8217;s the point &#8212; and it&#8217;s also why the product gap Karpathy sees will remain open even after someone tries to fill it.</p><h2>Can anyone do this?</h2><p>There&#8217;s an access problem here, and I&#8217;d be dishonest not to acknowledge it.</p><p>Building what I&#8217;ve described requires knowing Python well enough to write extraction scripts, understanding enough about graph databases to design a schema, and being comfortable with CLI-based tooling and MCP server configuration. Not every CTO has that background. Not every technical leader wants to spend weekends building personal infrastructure.</p><p>The irony is that the people who most need better organizational intelligence &#8212; executives without deep engineering backgrounds &#8212; are least equipped to build these systems. And the people who are most capable of building them are often less interested in the executive problems the systems could solve.</p><p>Tiago Forte, who wrote <em><a href="https://www.buildingasecondbrain.com/">Building a Second Brain</a></em>, has been making this point for years. His PARA method and CODE framework are accessibility layers &#8212; ways to make the underlying ideas approachable without requiring you to build a graph database. The methodology is sound. But it was designed for knowledge workers, not for CTOs running engineering organizations who need live data pipelines, not filing systems. Well-designed for whom?</p><p>Karpathy&#8217;s LLM Wiki is explicitly a system for someone comfortable writing Python and working with file systems. His Gist has code in it. That&#8217;s a feature for his audience and a barrier for everyone else.</p><h2>What I&#8217;d watch for</h2><p>A few trends that will determine whether this remains a DIY space or gets productized:</p><p><strong>MCP as infrastructure.</strong> The <a href="https://hyperdev.matsuoka.com/p/the-mcp-cat-is-out-of-the-bag">Model Context Protocol</a> creates a standard interface for exactly this kind of knowledge infrastructure. Memory servers, search servers, database connectors &#8212; they all expose the same interface to any compatible AI client. The ecosystem is growing fast. As more MCP servers mature, the configuration burden drops.</p><p><strong>Searchable context beats raw window size.</strong> Karpathy argues for plain Markdown because ~400K words fit in a modern context window. That&#8217;s true, and the window is getting larger. But the more important shift is that structured, searchable context doesn&#8217;t have a ceiling. A well-organized knowledge base that spans years of meetings, decisions, and analysis delivers more than any single context window can hold &#8212; and the value scales with the quality of the organization, not the size of the model.</p><p><strong>Local model quality.</strong> Karpathy runs Anthropic agents via Claude Code. But local model quality is improving fast. A system that uses the cloud API for synthesis and queries but runs a local model for routine indexing tasks would be significantly cheaper and more private. Not ready yet. Getting closer.</p><p>The product Karpathy thinks exists &#8212; if it gets built &#8212; probably looks like a well-designed local MCP server with clean configuration, sensible defaults, and a plugin ecosystem for connectors. Not a SaaS. Not a cloud database. Something you install and own.</p><p>The people who need it most will have already built their own before any product ships. And in the process of building it, they&#8217;ll have accumulated the one thing no product can give them: months of their own operational context, organized the way their own mind works.</p><p>That&#8217;s not a consolation prize. That&#8217;s the whole point.</p><div><hr></div><p><em>Bob Matsuoka is CTO of <a href="https://www.duettocloud.com/">Duetto</a> and writes about AI-powered engineering at <a href="https://hyperdev.substack.com/">HyperDev</a>.</em></p><p><strong>Related reading:</strong></p><ul><li><p><a href="https://hyperdev.matsuoka.com/p/whats-in-my-claude-code-toolkit">What&#8217;s In My Toolkit: Claude Code and Family</a> &#8212; The coding layer of the stack</p></li><li><p><a href="https://hyperdev.matsuoka.com/p/i-built-a-coding-tool-then-i-used">I Built a Coding Tool. Then I Used It to Onboard as CTO</a> &#8212; Applying agent orchestration to organizational analysis</p></li><li><p><a href="https://aipowerranking.com/">AI Power Ranking</a> &#8212; Tool comparisons and benchmarks for AI practitioners</p></li><li><p><a href="https://www.linkedin.com/newsletters/ai-power-ranking-7345782916301418496/">LinkedIn Newsletter</a> &#8212; Strategic AI insights for CTOs and engineering leaders</p></li></ul>]]></content:encoded></item><item><title><![CDATA[You weren't imagining things...Claude Code was dumber this month]]></title><description><![CDATA[Unintended consequences of optimization]]></description><link>https://hyperdev.matsuoka.com/p/you-werent-imagining-thingsclaude</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/you-werent-imagining-thingsclaude</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Fri, 24 Apr 2026 13:53:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JH1l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960004b8-63a5-4f9b-98b1-ee35085cd059_1024x779.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JH1l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960004b8-63a5-4f9b-98b1-ee35085cd059_1024x779.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JH1l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960004b8-63a5-4f9b-98b1-ee35085cd059_1024x779.png 424w, https://substackcdn.com/image/fetch/$s_!JH1l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960004b8-63a5-4f9b-98b1-ee35085cd059_1024x779.png 848w, https://substackcdn.com/image/fetch/$s_!JH1l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960004b8-63a5-4f9b-98b1-ee35085cd059_1024x779.png 1272w, https://substackcdn.com/image/fetch/$s_!JH1l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960004b8-63a5-4f9b-98b1-ee35085cd059_1024x779.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JH1l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960004b8-63a5-4f9b-98b1-ee35085cd059_1024x779.png" width="1024" height="779" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/960004b8-63a5-4f9b-98b1-ee35085cd059_1024x779.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:779,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1738565,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/195350759?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bc7c126-0147-4eb2-8a84-d2fa3808f4b4_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JH1l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960004b8-63a5-4f9b-98b1-ee35085cd059_1024x779.png 424w, https://substackcdn.com/image/fetch/$s_!JH1l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960004b8-63a5-4f9b-98b1-ee35085cd059_1024x779.png 848w, https://substackcdn.com/image/fetch/$s_!JH1l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960004b8-63a5-4f9b-98b1-ee35085cd059_1024x779.png 1272w, https://substackcdn.com/image/fetch/$s_!JH1l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960004b8-63a5-4f9b-98b1-ee35085cd059_1024x779.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So if you&#8217;ve been using Claude Code and noticed it felt... off... you weren&#8217;t imagining it.</p><p><a href="https://www.anthropic.com/engineering/april-23-postmortem">Anthropic published a full breakdown</a> yesterday and it&#8217;s actually three separate bugs that compounded into what looked like one big degradation. The developer community was right to be concerned, and the evidence they collected was instrumental in getting this fixed.</p><p>Here&#8217;s what actually happened:</p><h2>1. They silently downgraded reasoning effort (March 4)</h2><p>They switched Claude Code&#8217;s default from high to medium reasoning to reduce latency. Users noticed immediately. They reverted it on April 7.</p><p>Classic &#8220;we know better than users&#8221; move that backfired. From their postmortem:</p><blockquote><p>&#8220;This was the wrong tradeoff. We reverted this change on April 7 after users told us they&#8217;d prefer to default to higher intelligence and opt into lower effort for simple tasks.&#8221;</p></blockquote><p>The UI was appearing frozen in high reasoning mode, so they made an executive decision to sacrifice quality for speed. Developers immediately felt the difference and pushed back hard.</p><h2>2. A caching bug made Claude forget its own reasoning (March 26)</h2><p>This one was particularly insidious. They tried to optimize memory for idle sessions&#8212;clear old thinking after an hour of inactivity to speed up resumption. Sounds reasonable, right?</p><p>A bug caused it to wipe Claude&#8217;s reasoning history on EVERY turn for the rest of a session, not just once. So Claude kept executing tasks while literally forgetting why it made the decisions it did.</p><p>The cascading effects were brutal:</p><ul><li><p>Every request became a cache miss</p></li><li><p>Usage limits drained faster than expected</p></li><li><p>Claude appeared &#8220;forgetful and repetitive&#8221;</p></li><li><p>Sessions felt like they were constantly resetting</p></li></ul><h2>3. A system prompt change capped responses at 25 words between tool calls (April 16)</h2><p>They added this seemingly innocent instruction: &#8220;keep text between tool calls to 25 words. Keep final responses to 100 words.&#8221;</p><p>It caused a measurable 3% drop in coding quality across both Opus 4.6 and 4.7. They caught this through ablation testing&#8212;removing the instruction and measuring the performance difference.</p><p>Reverted April 20.</p><h2>The community evidence was damning</h2><p>While Anthropic was investigating internally, the developer community was building their own case. <a href="https://github.com/anthropics/claude-code/issues/42796">Stella Laurenzo from AMD&#8217;s AI group</a> published the most comprehensive analysis&#8212;6,852 Claude Code sessions and over 234,000 tool calls.</p><p>Her findings:</p><ul><li><p>Median visible thinking length collapsed 73% (2,200 &#8594; 600 characters)</p></li><li><p>API calls per task spiked up to 80x from February to March</p></li><li><p>Claude was choosing &#8220;simplest fix&#8221; over correct solutions</p></li></ul><p><a href="https://venturebeat.com/technology/mystery-solved-anthropic-reveals-changes-to-claudes-harnesses-and-operating-instructions-likely-caused-degradation">BridgeMind&#8217;s testing</a> showed Opus 4.6 accuracy dropping from 83.3% to 68.3%.</p><p>The data was undeniable.</p><h2>The perfect storm effect</h2><p>Here&#8217;s what made this particularly hard to pin down: all three bugs affected different traffic slices on different schedules. The combined effect looked like random, inconsistent degradation.</p><p>Hard to reproduce internally. Hard for users to isolate the exact cause. It just felt... wrong.</p><p>Some sessions hit the reasoning downgrade. Others hit the caching bug. The unlucky ones hit multiple issues simultaneously. No wonder it seemed like Claude was having random bad days.</p><h2>What this reveals about AI product development</h2><p>This postmortem is actually refreshing in its transparency. Most AI companies would have quietly fixed the issues and moved on. Anthropic owned the mistakes publicly.</p><p>But it also highlights a fundamental tension in AI product development: users often prefer maximum capability over convenience optimizations. The reasoning effort downgrade was done for user experience (reduce perceived latency), but developers would rather wait for better output.</p><p>The lesson: don&#8217;t optimize away what users value most without asking them first.</p><h2>All fixed now (v2.1.116)</h2><p>As of April 20, all three issues are resolved:</p><ul><li><p>Default reasoning is now &#8220;xhigh&#8221; for Opus 4.7, &#8220;high&#8221; for others</p></li><li><p>Caching bug squashed</p></li><li><p>Verbosity limits removed</p></li><li><p>Usage limits reset for all subscribers</p></li></ul><p>Anthropic is also committing to more transparency going forward with a <a href="https://x.com/claudedevs">dedicated </a><a href="https://github.com/ClaudeDevs">@ClaudeDevs</a> account for deeper technical communication with developers.</p><p>The community was right to raise hell about this. And Anthropic&#8217;s response&#8212;full transparency with concrete fixes&#8212;sets a good precedent for how AI companies should handle quality regressions.</p><p>Your coding assistant is back to full strength.</p><h2>Independent Validation</h2><p>The technical analysis backing this story comes from multiple independent sources. <a href="https://github.com/anthropics/claude-code/issues/42796">Stella Laurenzo&#8217;s comprehensive audit</a> of 6,852 sessions provided the quantitative foundation. <a href="https://venturebeat.com/technology/mystery-solved-anthropic-reveals-changes-to-claudes-harnesses-and-operating-instructions-likely-caused-degradation">BridgeMind&#8217;s testing</a> offered controlled benchmark data. These weren&#8217;t isolated complaints&#8212;they were systematic investigations with reproducible findings.</p><p>When a company publishes a detailed postmortem acknowledging specific engineering decisions that degraded their product, and that postmortem aligns with community-gathered evidence, we&#8217;re seeing transparency in action. The developer community did the work to document the problems. Anthropic owned the solutions.</p><div><hr></div><p><em>Bob Matsuoka is CTO of <a href="https://www.duettocloud.com/">Duetto</a> and writes about AI-powered engineering at <a href="https://hyperdev.substack.com/">HyperDev</a>.</em></p><p><strong>Related reading:</strong></p><ul><li><p><a href="https://aipowerranking.com/">AI Power Ranking</a> &#8212; Tool comparisons and benchmarks for AI practitioners</p></li><li><p><a href="https://www.linkedin.com/newsletters/ai-power-ranking-7345782916301418496/">LinkedIn Newsletter</a> &#8212; Strategic AI insights for CTOs and engineering leaders</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Opus 4.6 vs 4.7: The Real Cost of Incremental AI Improvements]]></title><description><![CDATA[Opus 4.7 dropped last week.]]></description><link>https://hyperdev.matsuoka.com/p/opus-46-vs-47-the-real-cost-of-incremental</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/opus-46-vs-47-the-real-cost-of-incremental</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Wed, 22 Apr 2026 11:31:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RRSE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6e9ba8e-5560-47ed-89a3-105c294e2cba_1024x631.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RRSE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6e9ba8e-5560-47ed-89a3-105c294e2cba_1024x631.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RRSE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6e9ba8e-5560-47ed-89a3-105c294e2cba_1024x631.png 424w, https://substackcdn.com/image/fetch/$s_!RRSE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6e9ba8e-5560-47ed-89a3-105c294e2cba_1024x631.png 848w, https://substackcdn.com/image/fetch/$s_!RRSE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6e9ba8e-5560-47ed-89a3-105c294e2cba_1024x631.png 1272w, https://substackcdn.com/image/fetch/$s_!RRSE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6e9ba8e-5560-47ed-89a3-105c294e2cba_1024x631.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RRSE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6e9ba8e-5560-47ed-89a3-105c294e2cba_1024x631.png" width="1024" height="631" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6e9ba8e-5560-47ed-89a3-105c294e2cba_1024x631.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:631,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1088319,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/194980096?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed99c244-332a-4c81-baa4-bc05b22811bb_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RRSE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6e9ba8e-5560-47ed-89a3-105c294e2cba_1024x631.png 424w, https://substackcdn.com/image/fetch/$s_!RRSE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6e9ba8e-5560-47ed-89a3-105c294e2cba_1024x631.png 848w, https://substackcdn.com/image/fetch/$s_!RRSE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6e9ba8e-5560-47ed-89a3-105c294e2cba_1024x631.png 1272w, https://substackcdn.com/image/fetch/$s_!RRSE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6e9ba8e-5560-47ed-89a3-105c294e2cba_1024x631.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Opus 4.7 dropped last week. Lots of excitement. Then the other shoe dropped. I ran identical coding tasks against both Opus 4.6 and 4.7 to see if the capability improvements justify the cost increase. Both models passed all 10 tests. The quality difference is real &#8212; but Opus 4.7 consumed 3.6&#215; more tokens and cost 3.6&#215; more for the same outcome.</p><p>That&#8217;s not a typo. Same task, same success rate, nearly 4&#215; the cost.  I have the receipts.</p><p>Anthropic says &#8220;pricing unchanged&#8221; because the per-token rates stayed the same. What they don&#8217;t mention is that Opus 4.7 systematically burns through more tokens to complete identical work. The model writes, then revises. Opus 4.6 writes correctly the first time. Both approaches work. Only one bills you for the revision process.</p><h2>TL;DR</h2><ul><li><p><strong>Both models passed 10/10 tests</strong>: Quality improvements are measurable but incremental (better typing, more thorough code)</p></li><li><p><strong>3.6&#215; cost increase for identical outcomes</strong>: $0.38 vs $1.38 for a 30-minute coding task in controlled testing</p></li><li><p><strong>Token consumption drives cost, not capability</strong>: Opus 4.7&#8217;s iterative working style consumes 2.9&#215; more output tokens per task</p></li><li><p><strong>Agentic mode required</strong>: One-shot testing shows 4.7 fails 9/10 tests without tool access, while 4.6 passes perfectly</p></li><li><p><strong>Per-token rates unchanged, real bill moved anyway</strong>: 4.7 burns 4.8&#215; more cache tokens per task &#8212; the rate card stays flat, your invoice doesn&#8217;t</p></li></ul><h2>The Controlled Test</h2><p>Last week I ran a head-to-head benchmark using the same Level 1 coding task for both models: build a complete Python CLI tool (Markdown Table Formatter) from scratch with full test coverage.</p><p><strong>Test setup:</strong></p><ul><li><p>Framework: <code>claude_agent_sdk</code> v0.1.64, full agentic mode</p></li><li><p>Models: <code>claude-opus-4-6</code> vs <code>claude-opus-4-7</code></p></li><li><p>Success criteria: Pass all 10 provided pytest tests</p></li><li><p>Execution: Concurrent runs with identical prompts</p></li></ul><p>Both models succeeded. The difference was entirely in how they got there.</p><h3>The Numbers</h3><p>Metric Opus 4.6 Opus 4.7 Ratio Wall clock time 114.8s 259.1s 2.3&#215; slower Agent turns 17 23 35% more Output tokens 6,384 18,289 <strong>2.9&#215; more</strong> Cache read tokens 215,853 1,034,165 4.8&#215; more <strong>Total cost</strong> <strong>$0.38</strong> <strong>$1.38</strong> <strong>3.6&#215; more expensive</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t0xC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f2c7bf-9b23-4a7a-bf78-c32f92ffb159_1024x461.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t0xC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f2c7bf-9b23-4a7a-bf78-c32f92ffb159_1024x461.png 424w, https://substackcdn.com/image/fetch/$s_!t0xC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f2c7bf-9b23-4a7a-bf78-c32f92ffb159_1024x461.png 848w, https://substackcdn.com/image/fetch/$s_!t0xC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f2c7bf-9b23-4a7a-bf78-c32f92ffb159_1024x461.png 1272w, https://substackcdn.com/image/fetch/$s_!t0xC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f2c7bf-9b23-4a7a-bf78-c32f92ffb159_1024x461.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t0xC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f2c7bf-9b23-4a7a-bf78-c32f92ffb159_1024x461.png" width="1024" height="461" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94f2c7bf-9b23-4a7a-bf78-c32f92ffb159_1024x461.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:461,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:408227,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/194980096?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8c51309-ac37-4b87-99c4-8b119ee71742_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t0xC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f2c7bf-9b23-4a7a-bf78-c32f92ffb159_1024x461.png 424w, https://substackcdn.com/image/fetch/$s_!t0xC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f2c7bf-9b23-4a7a-bf78-c32f92ffb159_1024x461.png 848w, https://substackcdn.com/image/fetch/$s_!t0xC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f2c7bf-9b23-4a7a-bf78-c32f92ffb159_1024x461.png 1272w, https://substackcdn.com/image/fetch/$s_!t0xC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f2c7bf-9b23-4a7a-bf78-c32f92ffb159_1024x461.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>The Behavioral Fingerprint</h3><p>The tool usage patterns reveal why 4.7 costs more:</p><p>Tool Opus 4.6 Opus 4.7 Write 6 7 Bash 6 9 Read 4 1 <strong>Edit</strong> <strong>0</strong> <strong>5</strong></p><p>Opus 4.7 made 5 Edit calls to revise files after writing them. Opus 4.6 made zero &#8212; it wrote all 6 source files correctly in a single pass, ran pytest once, passed 10/10 tests.</p><p>The cache token burn (4.8&#215; more) suggests 4.7 does extended internal reasoning between each tool call. It&#8217;s thinking harder, which shows up in better code quality &#8212; more type hints (35 vs 25 function definitions), more thorough coverage (820 vs 471 lines of code). But you pay for that thinking process.</p><h3>Quality vs Cost Trade-off</h3><p>The output quality difference is genuine. Opus 4.7&#8217;s code was more defensively written &#8212; better typed, more thorough on edge cases. When you&#8217;re in the middle of debugging a genuinely hairy distributed system problem or making an architectural call with real downstream implications, that extra care is worth something.</p><p>But for this Level 1 coding challenge, both approaches delivered identical functionality. The question becomes: is 40% better typing and 74% more comprehensive coverage worth 260% higher costs?</p><h2>When the Premium Isn&#8217;t Optional</h2><p>I tested both models in one-shot mode (no tools, single response) to see if you could avoid the iterative cost overhead.</p><p>Metric Opus 4.6 Opus 4.7 Output tokens 4,725 23,907 Cost $0.27 $0.94 Tests passed <strong>10/10</strong> <strong>1/10</strong></p><p>Opus 4.7 failed catastrophically without tool access. It generated 5&#215; more tokens but couldn&#8217;t follow output format instructions &#8212; most files were unparseable and 9 of 10 tests failed. Opus 4.6 passed perfectly on the first attempt.</p><p>This reveals a structural dependency: Opus 4.7&#8217;s quality advantages require the full agentic feedback loop. You can&#8217;t switch to a cheaper execution mode to control costs. The iterative self-correction that makes it better is also what makes it expensive &#8212; there&#8217;s no cheaper version of how this model works.</p><h2>Scale It Out</h2><p>Scale these numbers to something realistic:</p><p><strong>100 equivalent coding tasks per day:</strong></p><ul><li><p>Opus 4.6: ~$38/day &#8594; ~$13,870/year</p></li><li><p>Opus 4.7: ~$138/day &#8594; ~$50,370/year</p></li><li><p><strong>Annual cost increase: +$36,500</strong></p></li></ul><p>This matches what production teams are reporting. The <a href="https://www.finout.io/blog/claude-opus-4.7-pricing-the-real-cost-story-behind-the-unchanged-price-tag">Finout analysis</a> documented overnight cost jumps from $500 to $675/day after deploying 4.7. My testing provides a mechanistic explanation: the model&#8217;s working style is token-intensive by design.</p><p>The cost increase compounds with Anthropic&#8217;s separate tokenizer changes that <a href="https://byteiota.com/claude-opus-4-7-tokenizer-35-cost-inflation-hits-api-users/">increase consumption up to 35%</a> for identical prompts. You get hit twice: more tokens per task, plus each token costs more to count.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Fa_P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4b637c7-4d0e-444b-87c0-ec3089be81af_900x664.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Fa_P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4b637c7-4d0e-444b-87c0-ec3089be81af_900x664.png 424w, https://substackcdn.com/image/fetch/$s_!Fa_P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4b637c7-4d0e-444b-87c0-ec3089be81af_900x664.png 848w, https://substackcdn.com/image/fetch/$s_!Fa_P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4b637c7-4d0e-444b-87c0-ec3089be81af_900x664.png 1272w, https://substackcdn.com/image/fetch/$s_!Fa_P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4b637c7-4d0e-444b-87c0-ec3089be81af_900x664.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Fa_P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4b637c7-4d0e-444b-87c0-ec3089be81af_900x664.png" width="900" height="664" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4b637c7-4d0e-444b-87c0-ec3089be81af_900x664.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:664,&quot;width&quot;:900,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1101576,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/194980096?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56b5641-d94f-4ea0-bbd8-d6c9a8f2643a_900x900.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Fa_P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4b637c7-4d0e-444b-87c0-ec3089be81af_900x664.png 424w, https://substackcdn.com/image/fetch/$s_!Fa_P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4b637c7-4d0e-444b-87c0-ec3089be81af_900x664.png 848w, https://substackcdn.com/image/fetch/$s_!Fa_P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4b637c7-4d0e-444b-87c0-ec3089be81af_900x664.png 1272w, https://substackcdn.com/image/fetch/$s_!Fa_P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4b637c7-4d0e-444b-87c0-ec3089be81af_900x664.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>This Is Anthropic&#8217;s Move, Not the Industry&#8217;s</h2><p>Other providers aren&#8217;t doing this. <a href="https://www.swebench.com/">GPT-5.4 achieves comparable benchmark performance</a> without the tokenizer change. Anthropic can pull this off because they&#8217;re ahead on benchmarks right now &#8212; that&#8217;s the advantage, and they&#8217;re using it.</p><p>Which means this is actually a model selection problem, not a budget problem.</p><p>I&#8217;m not upgrading my agentic workflows to 4.7 by default. For complex architectural work where the reasoning depth matters &#8212; distributed systems debugging, refactoring decisions with downstream implications &#8212; yes, 4.7 earns the premium. For routine code generation, test writing, documentation? 4.6 passes the same tests at a quarter of the cost, as I just demonstrated.</p><p>Sonnet is even more aggressive on cost for work that doesn&#8217;t need Opus-level reasoning at all. I&#8217;ve been pushing more of my day-to-day agentic tasks there.</p><p>GPT-5.4 is worth keeping in rotation too. Comparable coding benchmark performance, no tokenizer games, and the competitive pressure helps if you ever need to push back on Anthropic pricing.</p><p>The <a href="https://www.reddit.com/r/MachineLearning/">Reddit community</a> caught the tokenizer changes within hours of release while Anthropic&#8217;s communications stayed focused on &#8220;unchanged pricing.&#8221; That&#8217;s the early warning system. Watch community cost reports when a new model drops, not the vendor announcement.</p><p>Anthropic will keep doing this as long as they&#8217;re leading. The way you stay ahead of it is knowing your actual token consumption per task &#8212; not the rate card, the real burn &#8212; and routing work to the cheapest model that gets the job done.</p><div><hr></div><p><em>Bob Matsuoka is CTO of <a href="https://www.duettocloud.com/">Duetto</a> and writes about AI-powered engineering at <a href="https://hyperdev.substack.com/">HyperDev</a>.</em></p><p><strong>Related reading:</strong></p><ul><li><p><a href="https://aipowerranking.com/">AI Power Ranking</a> &#8212; Tool comparisons and benchmarks for AI practitioners</p></li><li><p><a href="https://www.linkedin.com/newsletters/ai-power-ranking-7345782916301418496/">LinkedIn Newsletter</a> &#8212; Strategic AI insights for CTOs and engineering leaders</p></li></ul>]]></content:encoded></item><item><title><![CDATA[It’s The Harness, Stupid!]]></title><description><![CDATA[Why AI tool orchestration now matters more than foundation model quality]]></description><link>https://hyperdev.matsuoka.com/p/its-the-harness-stupid</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/its-the-harness-stupid</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Mon, 13 Apr 2026 17:17:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!376u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1f4dab-a192-4b50-bbbb-5c889e29af13_1024x523.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!376u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1f4dab-a192-4b50-bbbb-5c889e29af13_1024x523.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!376u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1f4dab-a192-4b50-bbbb-5c889e29af13_1024x523.png 424w, https://substackcdn.com/image/fetch/$s_!376u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1f4dab-a192-4b50-bbbb-5c889e29af13_1024x523.png 848w, https://substackcdn.com/image/fetch/$s_!376u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1f4dab-a192-4b50-bbbb-5c889e29af13_1024x523.png 1272w, https://substackcdn.com/image/fetch/$s_!376u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1f4dab-a192-4b50-bbbb-5c889e29af13_1024x523.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!376u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1f4dab-a192-4b50-bbbb-5c889e29af13_1024x523.png" width="1024" height="523" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c1f4dab-a192-4b50-bbbb-5c889e29af13_1024x523.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:523,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1201765,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/193459844?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4af78c41-cc16-45d4-abb7-f0e0ee92722b_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!376u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1f4dab-a192-4b50-bbbb-5c889e29af13_1024x523.png 424w, https://substackcdn.com/image/fetch/$s_!376u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1f4dab-a192-4b50-bbbb-5c889e29af13_1024x523.png 848w, https://substackcdn.com/image/fetch/$s_!376u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1f4dab-a192-4b50-bbbb-5c889e29af13_1024x523.png 1272w, https://substackcdn.com/image/fetch/$s_!376u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c1f4dab-a192-4b50-bbbb-5c889e29af13_1024x523.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>It&#8217;s The Harness, Stupid!</h2><p><strong>Why AI tool orchestration now matters more than foundation model quality</strong></p><p><em>Author: Bob Matsuoka, CTO @ Duetto Research</em> <br><em>April 6, 2026</em></p><h2>TL;DR</h2><ul><li><p>Same-model testing reveals 0.82-point quality spread (3.93 to 4.75) and 7x efficiency differences&#8212;orchestration dominates outcomes</p></li><li><p>Market validation: Claude maintains 70% developer preference despite GPT-5.4 achieving model parity through superior harness quality</p></li><li><p>Reddit analysis confirms Codex efficiency gains come from orchestration improvements, not just model upgrades</p></li><li><p>Competitive advantage has shifted permanently from model superiority to ecosystem superiority</p></li></ul><p><strong>Bottom line: The harness era has begun. Choose tools based on workflow fit, not benchmark claims.</strong></p><h2>The $50B Model Myth</h2><p>The AI industry has a fixation problem. Every week brings breathless announcements about parameter counts, training costs, and benchmark scores. &#8220;GPT-6 has 50 trillion parameters!&#8221; &#8220;Our model scored 94.7% on SWE-bench!&#8221; &#8220;We spent $2 billion on compute!&#8221;</p><p>Three converging pieces of evidence prove this approach is fundamentally wrong.</p><div class="callout-block" data-callout="true"><p><strong>Evidence #1:</strong> I tested eight AI coding agents across five programming challenges. Four agents used identical Claude Sonnet 4.6 models. Quality scores ranged from 3.93 to 4.75&#8212;a 0.82-point spread on the same foundation model.</p></div><div class="callout-block" data-callout="true"><p><strong>Evidence #2:</strong> GPT-5.4 achieved parity with Claude Sonnet 4.6 on coding benchmarks. Yet Claude maintains 70% developer preference through superior ecosystem quality.</p></div><div class="callout-block" data-callout="true"><p><strong>Evidence #3:</strong> Reddit developer communities confirm Codex&#8217;s efficiency improvements come from orchestration architecture changes, not just model upgrades.</p></div><p><strong>The harness matters more than the model.</strong> Choosing an AI coding tool is now primarily an engineering decision, not a model selection decision. The next competitive advantage isn&#8217;t bigger models&#8212;it&#8217;s better orchestration.</p><h2>Evidence Pillar #1: The Smoking Gun Laboratory Data</h2><h3>The Bake-Off Setup</h3><p>I designed five programming challenges ranging from 30-minute tasks to 8-hour full-stack builds:</p><ul><li><p><strong>Level 1-2:</strong> Simple scripts and basic applications</p></li><li><p><strong>Level 3:</strong> API integration with Docker containerization</p></li><li><p><strong>Level 4:</strong> Extensible data processing pipeline (architecture test)</p></li><li><p><strong>Level 5:</strong> Full-stack web application with authentication</p></li></ul><p>Eight agents competed: Claude Code, Claude MPM, Codex, Gemini CLI, Auggie, Qwen+Aider, DeepSeek+Aider, and Warp AI. Each received identical prompts. A panel of expert developers blind-reviewed all submissions across eight criteria: functionality, correctness, best practices, architecture, code reuse, testing, error handling, and documentation.</p><h3>The Harness Advantage Data</h3><p><strong>Table 1: Same Model, Different Worlds</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TErH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d85d71-6503-4452-ad8c-957585385133_867x409.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TErH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d85d71-6503-4452-ad8c-957585385133_867x409.png 424w, https://substackcdn.com/image/fetch/$s_!TErH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d85d71-6503-4452-ad8c-957585385133_867x409.png 848w, https://substackcdn.com/image/fetch/$s_!TErH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d85d71-6503-4452-ad8c-957585385133_867x409.png 1272w, https://substackcdn.com/image/fetch/$s_!TErH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d85d71-6503-4452-ad8c-957585385133_867x409.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TErH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d85d71-6503-4452-ad8c-957585385133_867x409.png" width="867" height="409" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47d85d71-6503-4452-ad8c-957585385133_867x409.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:409,&quot;width&quot;:867,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:74882,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/193459844?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d85d71-6503-4452-ad8c-957585385133_867x409.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TErH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d85d71-6503-4452-ad8c-957585385133_867x409.png 424w, https://substackcdn.com/image/fetch/$s_!TErH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d85d71-6503-4452-ad8c-957585385133_867x409.png 848w, https://substackcdn.com/image/fetch/$s_!TErH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d85d71-6503-4452-ad8c-957585385133_867x409.png 1272w, https://substackcdn.com/image/fetch/$s_!TErH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47d85d71-6503-4452-ad8c-957585385133_867x409.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Four agents using identical Claude Sonnet 4.6 models. Quality scores from 3.93 to 4.75&#8212;a 0.82-point spread. <a href="https://github.com/bobmatnyc/claude-mpm">claude-mpm</a> finished in 45 minutes while warp took 313 minutes. Almost <strong>7x longer for lower quality results</strong>.</p><h3>The Scaling Pattern</h3><p>The harness advantage compounds with complexity:</p><ul><li><p><strong>Levels 1-2:</strong> All agents performed similarly. Simple tasks don&#8217;t reveal orchestration differences.</p></li><li><p><strong>Level 3:</strong> API integration and Docker setup separated agents that plan from those that code-and-fix. Clear gaps emerged.</p></li><li><p><strong>Levels 4-5:</strong> Architecture and full-stack challenges broke most agents. Only well-orchestrated systems completed the complex workflows.</p></li></ul><p>The pattern is clear: as complexity increases, harness quality becomes the primary determinant of success.</p><h2>Evidence Pillar #2: Market Validation &#8212; GPT-5.4 Caught Up</h2><h3>Model Parity Achievement</h3><p>February-April 2026 benchmarks confirm <strong>GPT-5.4 has achieved parity with Claude Sonnet 4.6</strong>:</p><p><strong>Core Benchmarks:</strong></p><ul><li><p><strong>SWE-bench Verified</strong>: GPT-5.4 ~80% vs Claude 79.6% (statistical tie)</p></li><li><p><strong>SWE-bench Pro</strong>: GPT-5.4 57.7% vs Claude 43.6% (GPT leads complex problems)</p></li><li><p><strong>Terminal-Bench</strong>: GPT-5.4 75.1% vs Claude ~65% (DevOps advantage)</p></li><li><p><strong>Context handling</strong>: Both models feature 1M token windows</p></li></ul><h3>Yet Claude Still Dominates Through Harness Advantages</h3><p>Despite achieving model parity, the competitive landscape tells the harness story:</p><p><strong>Market Reality:</strong></p><ul><li><p><strong>Developer preference</strong>: Claude 70% (superior workflow integration)</p></li><li><p><strong>Enterprise share</strong>: Anthropic +4.9% MoM growth, OpenAI -1.5% decline</p></li><li><p><strong>Revenue</strong>: Claude Code $2B ARR in 6 months</p></li></ul><p><strong>Even when models reach parity, harness quality determines adoption.</strong></p><h3>The Multi-Model Strategic Reality</h3><p>Leading organizations aren&#8217;t choosing between models anymore&#8212;they&#8217;re deploying <strong>three-tier strategic architectures</strong> based on cost-performance optimization:</p><p><strong>Tier 1: Daily Workhorse (60-70% of requests)</strong></p><ul><li><p><strong>Claude Sonnet 4.6</strong>: <a href="https://medium.com/@mkteam/gpt-5-4-vs-claude-sonnet-4-6-2026-the-ultimate-ai-model-comparison-49526cac8b14">$3/$15 per million tokens</a></p></li><li><p>High-volume development, routine coding tasks</p></li><li><p><a href="https://www.nxcode.io/resources/news/claude-sonnet-4-6-vs-gpt-5-4-coding-comparison-2026">95%+ of premium model quality at half the cost</a></p></li><li><p>Default choice for most enterprise development work</p></li></ul><p><strong>Tier 2: Specialized Operations (20-30% of requests)</strong></p><ul><li><p><strong>GPT-5.4</strong>: <a href="https://medium.com/@mkteam/gpt-5-4-vs-claude-sonnet-4-6-2026-the-ultimate-ai-model-comparison-49526cac8b14">$2.50/$15 per million tokens</a></p></li><li><p>Terminal operations, DevOps workflows, CI/CD debugging</p></li><li><p><a href="https://www.morphllm.com/best-ai-model-for-coding">75.1% Terminal-Bench score (10-point lead over competitors)</a></p></li><li><p><a href="https://medium.com/@ricardomsgarces/openai-codex-vs-github-copilot-why-codex-is-winning-the-future-of-coding-f9a2767695b0">Inherited Codex&#8217;s terminal operation dominance</a></p></li></ul><p><strong>Tier 3: Premium Analysis (10-20% of requests)</strong></p><ul><li><p><strong>Claude Opus 4.6</strong>: <a href="https://medium.com/@mkteam/gpt-5-4-vs-claude-sonnet-4-6-2026-the-ultimate-ai-model-comparison-49526cac8b14">$5/$25 per million tokens</a></p></li><li><p>Complex reasoning, architectural decisions, high-stakes analysis</p></li><li><p><a href="https://help.apiyi.com/en/gpt-5-4-vs-claude-opus-4-6-comparison-2026-en.html">World leader in abstract reasoning (87.4% vs GPT-5.4&#8217;s 83.9%)</a></p></li><li><p>When cost justifies maximum capability</p></li></ul><p>This confirms the core thesis: when models are &#8220;good enough,&#8221; teams optimize for <strong>strategic cost-performance fit</strong>, not raw capability or marketing claims.</p><h2>Evidence Pillar #3: Community Validation &#8212; The Codex Orchestration Story</h2><h3>Reddit Confirms Orchestration Improvements</h3><p>Reddit research explains Codex&#8217;s impressive efficiency results (42 minutes, 4.49 quality score). The evidence confirms improvements come from orchestration, not just model upgrades.</p><p><strong>Architectural Evolution Evidence:</strong></p><ul><li><p><a href="https://medium.com/@aliazimidarmian/openai-codex-from-2021-code-model-to-a-2025-autonomous-coding-agent-85ef0c48730a">Codex evolved from &#8220;embedded assistant&#8221; &#8594; &#8220;independent agent with multi-agent orchestration&#8221;</a></p></li><li><p><a href="https://www.digitalapplied.com/blog/gpt-5-2-codex-openai-model-guide-2026">GPT-5.2-Codex (Jan 2026) with 192K context + MCP tool orchestration</a></p></li><li><p><a href="https://developers.openai.com/blog/openai-for-developers-2025">&#8220;Command center for agents&#8221; interface launched Feb 2026</a></p></li></ul><p><strong>Workflow Efficiency Improvements:</strong></p><ul><li><p><a href="https://reelmind.ai/blog/openai-codex-code-generation-features-reddit-developer-insights">Developers report queuing &#8220;4-5 Codex tasks before diving into manual work&#8221;</a></p></li><li><p><a href="https://reelmind.ai/blog/openai-codex-code-generation-features-reddit-developer-insights">&#8220;2-3 completed PRs waiting for review&#8221; after a coffee break</a></p></li><li><p><a href="https://www.nxcode.io/resources/news/openai-codex-app-review-2026">P99 response time 45ms vs Copilot&#8217;s 55ms through better context management</a></p></li><li><p><strong>Parallel processing capabilities</strong> that enable true background orchestration</p></li></ul><p><strong>Enterprise Orchestration Benefits:</strong></p><ul><li><p><strong><a href="https://www.quantumrun.com/consulting/openai-codex-statistics/">70% more pull requests</a></strong><a href="https://www.quantumrun.com/consulting/openai-codex-statistics/"> merged weekly at OpenAI</a></p></li><li><p><strong><a href="https://www.quantumrun.com/consulting/openai-codex-statistics/">50% reduction</a></strong><a href="https://www.quantumrun.com/consulting/openai-codex-statistics/"> in code review times at Cisco</a></p></li><li><p><strong><a href="https://www.quantumrun.com/consulting/openai-codex-statistics/">67% reduction</a></strong><a href="https://www.quantumrun.com/consulting/openai-codex-statistics/"> in median turnaround time at Duolingo</a></p></li><li><p><strong><a href="https://www.quantumrun.com/consulting/openai-codex-statistics/">90% Fortune 100 adoption</a></strong><a href="https://www.quantumrun.com/consulting/openai-codex-statistics/"> validates orchestration value at scale</a></p></li></ul><h3>The Community Strategic Deployment Pattern</h3><p>Reddit developers now recommend <strong>different tools for different purposes</strong>:</p><ul><li><p><strong>Claude Code</strong>: Code quality and reasoning</p></li><li><p><strong>Cursor</strong>: Daily coding integration</p></li><li><p><strong>OpenAI Codex</strong>: Complex multi-agent workflows and long-horizon autonomy</p></li></ul><p>This matches exactly what the market data predicted: teams use orchestrated tools strategically rather than seeking one universal solution.</p><h2>The Harness Quality Ladder</h2><p>Based on all three evidence pillars, I see four tiers of orchestration quality emerging:</p><p><strong>Tier 1: Basic Wrappers</strong></p><ul><li><p>Simple API access, minimal context management</p></li><li><p>Examples: Raw ChatGPT interface, basic API wrappers</p></li><li><p>Limitation: No file coordination, poor context retention</p></li></ul><p><strong>Tier 2: Workflow Tools</strong></p><ul><li><p>File awareness, some context management</p></li><li><p>Examples: GitHub Copilot, basic IDE extensions</p></li><li><p>Capability: Single-file optimization, limited cross-file understanding</p></li></ul><p><strong>Tier 3: Orchestrated Systems</strong></p><ul><li><p>Multi-file coordination, workflow integration</p></li><li><p>Examples: Cursor, Claude Code, well-configured aider</p></li><li><p>Advantage: Understands project structure, handles complex tasks</p></li></ul><p><strong>Tier 4: Agentic Frameworks</strong></p><ul><li><p>Multi-agent coordination, planning, verification</p></li><li><p>Examples: claude-mpm, advanced orchestration systems</p></li><li><p>Power: Full project lifecycle, quality assurance, architectural thinking</p></li></ul><p>The performance cliff between tiers is exponential, not linear. Bad orchestration can make great models perform poorly; great orchestration can make good models perform excellently.</p><h2>Academic and Industry Validation</h2><p>This isn&#8217;t just empirical observation. Multiple 2026 research papers and industry studies support the harness thesis:</p><p><strong>Academic Consensus:</strong><br>The arXiv paper <a href="https://arxiv.org/html/2511.14136v1">&#8220;Beyond Accuracy: A Multi-Dimensional Framework for Evaluating Enterprise Agentic AI Systems&#8221;</a> shows that domain-tuned models with better orchestration achieve superior cost-normalized accuracy despite using smaller base models.</p><p><a href="https://pricepertoken.com/leaderboards/benchmark/humaneval">SWE-bench data</a> reveals the same pattern. Cursor, Claude Code, and Auggie all use similar base models yet score between 50.2% and 55.4%, while the raw model score is only 45.9%. The 5.9-point improvement comes entirely from better context retrieval and agent design.</p><p><strong>Business Reality Check:</strong><br><a href="https://claude5.com/news/enterprise-ai-adoption-2026-how-businesses-deploy-claude-gpt">Enterprise adoption surveys</a> show a clear shift in CTO priorities. &#8220;Model performance&#8221; is dropping in tool evaluation criteria, replaced by governance, integration quality, and workflow fit. As one 2026 McKinsey report put it: &#8220;CTOs are realizing their biggest bottleneck isn&#8217;t model performance&#8212;it&#8217;s governance.&#8221;</p><h2>What This Means for Engineering Leaders</h2><h3>Stop Optimizing for Benchmarks</h3><p>The old procurement mindset was model-first: &#8220;We need access to GPT-6 for competitive advantage.&#8221; The new reality is that benchmark performance doesn&#8217;t predict practical utility. SWE-bench scores don&#8217;t tell you whether a tool will integrate with your existing workflow, handle your codebase size, or recover gracefully from errors.</p><p>Start evaluating harness quality:</p><ul><li><p><strong>Context management:</strong> How well does it understand your project structure?</p></li><li><p><strong>File coordination:</strong> Can it work intelligently across multiple files?</p></li><li><p><strong>Error recovery:</strong> Does it handle failures gracefully or require constant babysitting?</p></li><li><p><strong>Workflow integration:</strong> How does it fit with your team&#8217;s existing development process?</p></li></ul><h3>Budget for Orchestration Quality</h3><p>The three evidence pillars show that investing in better orchestration yields measurable returns:</p><ul><li><p><strong>Quality per minute:</strong> claude-mpm achieved 4.75 quality in 45 minutes; warp achieved 3.94 in 313 minutes</p></li><li><p><strong>Market validation:</strong> Claude maintains dominance despite model parity through superior developer experience</p></li><li><p><strong>Enterprise results:</strong> 70% more PRs, 50% faster code review, 67% faster turnaround</p></li></ul><p>The ROI case for harness investment is clear and quantifiable.</p><h3>Team Productivity Focus</h3><p>Tool choice impacts your entire development pipeline. The 7x speed difference between well and poorly orchestrated tools using the same model means tool selection is a productivity multiplier, not just a capability decision.</p><p>Better tools also reduce onboarding time and increase adoption rates. A tool that works reliably gets used; one that requires constant troubleshooting gets abandoned.</p><h2>The Competitive Landscape Evolution</h2><h3>Codex Deserves Recognition</h3><p>Codex&#8217;s performance has significantly improved. At 42 minutes for all five levels with a 4.49 quality score, it achieved by far the best efficiency in my study. GPT-5.4+ combined with the orchestration improvements OpenAI made represents a compelling package. The Reddit research confirms this wasn&#8217;t just a model upgrade&#8212;it was an architectural evolution toward multi-agent orchestration.</p><h3>Claude Code&#8217;s Harness Moat</h3><p>While Claude Code performed well (4.53 quality score), the market validation shows its true strength: <strong>ecosystem superiority</strong>. Despite GPT-5.4 achieving model parity, Claude maintains 70% developer preference through superior harness quality. This is exactly what sustainable competitive advantage looks like in the post-parity era.</p><h3>The Multi-Model Future</h3><p>All evidence points to the same conclusion: the era of picking one model is over. Leading organizations deploy <strong>three-tier cost-performance architectures</strong>, optimizing for specific strengths rather than seeking universal solutions.</p><p>Real enterprise case studies validate this pattern:</p><ul><li><p><strong><a href="https://www.datastudios.org/post/claude-in-the-enterprise-case-studies-of-ai-deployments-and-real-world-results">TELUS (57,000 employees)</a></strong><a href="https://www.datastudios.org/post/claude-in-the-enterprise-case-studies-of-ai-deployments-and-real-world-results">: Uses Sonnet as core engine across developer teams</a></p></li><li><p><strong><a href="https://www.datastudios.org/post/claude-in-the-enterprise-case-studies-of-ai-deployments-and-real-world-results">Zapier</a></strong><a href="https://www.datastudios.org/post/claude-in-the-enterprise-case-studies-of-ai-deployments-and-real-world-results">: 800+ internal agents using strategic model selection</a></p></li><li><p><strong><a href="https://devtk.ai/en/blog/claude-api-pricing-guide-2026/">Financial Services</a></strong><a href="https://devtk.ai/en/blog/claude-api-pricing-guide-2026/">: Monthly costs ~$80 at massive scale through optimized routing</a></p></li></ul><p>The successful pattern: <strong>Sonnet for volume, GPT-5.4 for DevOps, Opus for complexity</strong>.</p><h2>The Token Economics Reality</h2><p>claude-mpm achieved the highest quality score (4.75) but used 87 million tokens versus codex&#8217;s 120K. This looks expensive until you consider the output: 262 comprehensive tests (vs codex&#8217;s 32), complete documentation, 100% verification rates, and multi-file coordination (note: this was also a wake-up call to me to focus on token optimization, current version is much stingier)</p><p>The 700x token multiplier isn&#8217;t overhead&#8212;it&#8217;s the cost of work a solo agent skips. <strong>Orchestration doesn&#8217;t waste tokens&#8212;it spends them on comprehensive deliverables.</strong></p><p>The optimization question: Could you achieve 80% of the quality benefits at 30% of the token cost? The opportunity isn&#8217;t eliminating orchestration&#8212;it&#8217;s finding the minimal viable team size for maximum impact.</p><h3>The Vendor Bias Problem: &#8220;Opus for Everything&#8221;</h3><p>Boris Cherny, the Claude Code lead, recently advocated for using &#8220;Opus for everything.&#8221; This perfectly illustrates the disconnect between vendor recommendations and practical deployment reality.</p><p><strong>Only someone working for Anthropic can say that.</strong></p><p>When your employer provides unlimited access to premium models, of course you&#8217;d recommend the most expensive option for every task. But real organizations operating with P&amp;L responsibility make strategic decisions about when premium capability justifies premium cost.</p><p>This vendor bias actually <strong>validates the multi-model thesis</strong>:</p><ul><li><p><strong>Vendors say:</strong> &#8220;Use our premium model for everything&#8221;</p></li><li><p><strong>Users do:</strong> Strategic model selection based on task complexity and budget constraints</p></li><li><p><strong>Market reality:</strong> 70% prefer Claude for daily coding (cost/speed), GPT-5.4 for complex reasoning (quality ceiling)</p></li></ul><p>Cherny&#8217;s comment inadvertently proves that <strong>cost-conscious orchestration</strong> is the real competitive battleground. Companies that figure out optimal model routing&#8212;not maximal model usage&#8212;will have sustainable advantages.</p><p>The vendors push premium. The market chooses strategically. <strong>The harness makes both possible.</strong></p><h2>The Future: Welcome to the Harness Era</h2><h3>What Changes for Developers</h3><p>Tool selection framework:</p><ol><li><p><strong>Workflow fit:</strong> Does it match how your team works?</p></li><li><p><strong>Integration quality:</strong> Plays well with existing tools?</p></li><li><p><strong>Reliability:</strong> Can you trust it with production code?</p></li><li><p><strong>Model quality:</strong> Fourth priority</p></li></ol><h3>What Changes for the Industry</h3><p>Foundation models are becoming commodities. Differentiation shifts to integration, context management, and user experience. The next unicorns will be harness companies, not model companies.</p><p>Major funding flows to orchestration companies. Enterprise procurement evaluates integration first, model second.</p><h3>The Competitive Moat Shift</h3><p>The old game was: train bigger models, claim benchmark superiority. The new game is: build better orchestration, solve real workflow problems. Model access becomes a utility; workflow mastery becomes the moat.</p><h2>Practical Recommendations</h2><h3>For CTOs and Engineering Leaders</h3><ul><li><p><strong>Audit orchestration quality</strong>: Test tools with your actual codebase for 2-week trials</p></li><li><p><strong>Budget 60/40</strong>: Spend more on harness development than model subscription fees</p></li><li><p><strong>Measure real metrics</strong>: Track pull request velocity and code review time, not benchmark scores</p></li><li><p><strong>Evaluate integration first</strong>: How well does it fit your existing CI/CD pipeline?</p></li></ul><h3>For Developers</h3><ul><li><p><strong>Test with real projects</strong>: Spend 2 days with each tool on actual work before deciding</p></li><li><p><strong>Learn orchestration patterns</strong>: Context management and file coordination matter more than prompts</p></li><li><p><strong>Invest in mastery</strong>: The 7x efficiency difference justifies significant learning time</p></li><li><p><strong>Ignore marketing claims</strong>: Model access means nothing without good orchestration</p></li></ul><h3>For the AI Industry</h3><ul><li><p><strong>Build for workflow integration</strong>: Solve real development pipeline problems</p></li><li><p><strong>Measure practical utility</strong>: Developer retention and task completion rates beat benchmarks</p></li><li><p><strong>Focus on context management</strong>: Multi-file coordination is the real competitive moat</p></li></ul><h2>Conclusion: The Questions That Matter Now</h2><p>The old question was: &#8220;What&#8217;s the best model?&#8221;</p><p>The new question is: &#8220;What&#8217;s the best harness for my team&#8217;s workflow?&#8221;</p><p>Three evidence sources prove we&#8217;ve crossed a threshold: foundation models are &#8220;good enough,&#8221; and orchestration quality now dominates outcomes. Laboratory testing, market validation, and community confirmation point to the same reality.</p><p>The foundation model is the engine. The harness is the car. The best engine in the world won&#8217;t get you anywhere without wheels.</p><p><strong>The harness era has begun. Drive accordingly.</strong></p><div><hr></div><p><em>Bob Matsuoka is CTO at <a href="https://www.duettocloud.com/">Duetto Research</a> and creator of <a href="https://github.com/bobmatnyc/claude-mpm">Claude MPM</a>, one of the agents evaluated in this study. All evaluation data and methodology are available at <a href="https://github.com/bobmatnyc/ai-coding-bake-off">github.com/bobmatnyc/ai-coding-bake-off</a> for reproducibility.</em></p><div><hr></div><h2>Appendix: Complete Results Data</h2><h3>Quality Scores by Criterion</h3><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dSX7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96cbd80c-434e-456b-ae62-1fb565e1ec0d_981x368.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dSX7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96cbd80c-434e-456b-ae62-1fb565e1ec0d_981x368.png 424w, https://substackcdn.com/image/fetch/$s_!dSX7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96cbd80c-434e-456b-ae62-1fb565e1ec0d_981x368.png 848w, https://substackcdn.com/image/fetch/$s_!dSX7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96cbd80c-434e-456b-ae62-1fb565e1ec0d_981x368.png 1272w, https://substackcdn.com/image/fetch/$s_!dSX7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96cbd80c-434e-456b-ae62-1fb565e1ec0d_981x368.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dSX7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96cbd80c-434e-456b-ae62-1fb565e1ec0d_981x368.png" width="981" height="368" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/96cbd80c-434e-456b-ae62-1fb565e1ec0d_981x368.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:368,&quot;width&quot;:981,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69754,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/193459844?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96cbd80c-434e-456b-ae62-1fb565e1ec0d_981x368.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dSX7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96cbd80c-434e-456b-ae62-1fb565e1ec0d_981x368.png 424w, https://substackcdn.com/image/fetch/$s_!dSX7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96cbd80c-434e-456b-ae62-1fb565e1ec0d_981x368.png 848w, https://substackcdn.com/image/fetch/$s_!dSX7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96cbd80c-434e-456b-ae62-1fb565e1ec0d_981x368.png 1272w, https://substackcdn.com/image/fetch/$s_!dSX7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96cbd80c-434e-456b-ae62-1fb565e1ec0d_981x368.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>GPT-5.4 vs Claude Sonnet 4.6 Market Data</h3><p><strong>SWE-bench Performance:</strong></p><ul><li><p>SWE-bench Verified: GPT-5.4 ~80% vs Claude 79.6% (statistical tie)</p></li><li><p>SWE-bench Pro: GPT-5.4 57.7% vs Claude 43.6% (GPT advantage on complex problems)</p></li><li><p>Terminal-Bench: GPT-5.4 75.1% vs Claude ~65% (GPT DevOps advantage)</p></li></ul><p><strong>Market Metrics:</strong></p><ul><li><p>Developer preference (daily coding): Claude 70%</p></li><li><p>Enterprise market share: Anthropic +4.9% MoM, OpenAI -1.5% MoM</p></li><li><p>Claude Code revenue: $2B ARR in 6 months</p></li></ul><h3>Methodology Notes</h3><ul><li><p><strong>Laboratory data:</strong> Single run evaluation with disclosed author bias</p></li><li><p><strong>Market data:</strong> Cross-validated across 15+ authoritative sources</p></li><li><p><strong>Community research:</strong> Reddit analysis across 8+ developer subreddits</p></li><li><p><strong>Statistical confidence:</strong> Mean inter-reviewer deviation of 0.216 points</p></li><li><p><strong>Reproducible:</strong> All data and prompts available in public repository</p></li></ul>]]></content:encoded></item><item><title><![CDATA[I Met a Movie Star Mila Jovovich — As a Coder]]></title><description><![CDATA[More evidence of the democratization of software]]></description><link>https://hyperdev.matsuoka.com/p/i-met-a-movie-star-mila-jovovich</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/i-met-a-movie-star-mila-jovovich</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Sat, 11 Apr 2026 12:31:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_YC7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0e03e6-ff0f-4040-ab56-8239bf91a20d_1024x659.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_YC7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0e03e6-ff0f-4040-ab56-8239bf91a20d_1024x659.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_YC7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0e03e6-ff0f-4040-ab56-8239bf91a20d_1024x659.png 424w, https://substackcdn.com/image/fetch/$s_!_YC7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0e03e6-ff0f-4040-ab56-8239bf91a20d_1024x659.png 848w, https://substackcdn.com/image/fetch/$s_!_YC7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0e03e6-ff0f-4040-ab56-8239bf91a20d_1024x659.png 1272w, https://substackcdn.com/image/fetch/$s_!_YC7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0e03e6-ff0f-4040-ab56-8239bf91a20d_1024x659.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_YC7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0e03e6-ff0f-4040-ab56-8239bf91a20d_1024x659.png" width="1024" height="659" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d0e03e6-ff0f-4040-ab56-8239bf91a20d_1024x659.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:659,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1463075,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/193848267?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F188090d8-280b-48b0-81af-3a11dec4dac3_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_YC7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0e03e6-ff0f-4040-ab56-8239bf91a20d_1024x659.png 424w, https://substackcdn.com/image/fetch/$s_!_YC7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0e03e6-ff0f-4040-ab56-8239bf91a20d_1024x659.png 848w, https://substackcdn.com/image/fetch/$s_!_YC7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0e03e6-ff0f-4040-ab56-8239bf91a20d_1024x659.png 1272w, https://substackcdn.com/image/fetch/$s_!_YC7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0e03e6-ff0f-4040-ab56-8239bf91a20d_1024x659.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I didn&#8217;t expect to meet Mila Jovovich through a GitHub issue.</p><p>But there I was last week, deep-diving into her AI memory framework called <a href="https://github.com/milla-jovovich/mempalace">MemPalace</a>, when I discovered something remarkable: the &#8220;Resident Evil&#8221; and &#8220;Fifth Element&#8221; star had created one of the most talked-about AI memory systems of 2026. And she&#8217;d done it using Claude Code, the same AI-assisted development environment I use daily.</p><p>More remarkably, when I found critical bugs in her benchmark methodology, she responded directly through her Claude Code workflow, acknowledging the issues and implementing fixes. Not through a PR team or engineering intermediaries &#8212; Mila herself, using AI-assisted development to debug complex memory retrieval algorithms at 9 AM on a Thursday.</p><p>This isn&#8217;t a story about a celebrity coding stunt. It&#8217;s about something much more profound: we&#8217;ve entered an era where outcomes and features drive development, not the technical limitations of writing code.</p><h2>The MemPalace Phenomenon</h2><p>In April 2026, Mila Jovovich and developer Ben Sigman released MemPalace, an open-source AI memory system that immediately went viral. Within 48 hours, it had <a href="https://github.com/milla-jovovich/mempalace">over 23,000 GitHub stars</a>. The system claimed to achieve the first perfect score on the LongMemEval benchmark, scoring 96.6% raw recall.</p><p>The project represents something unprecedented: a free, locally-running memory system that rivals expensive cloud alternatives like Mem0 ($19-249/month) and Zep ($25+/month). It uses the &#8220;memory palace&#8221; technique &#8212; a classical memory method dating back to ancient Greece &#8212; implemented through ChromaDB and SQLite, with zero ongoing API costs.</p><p>The technical architecture includes basic Claude Code integration (save hooks every 15 messages and before context compression) and 24 tools via the Model Context Protocol (MCP), making it compatible across multiple AI platforms.</p><p>The duo had spent months building it using Claude Code&#8217;s AI-assisted development environment. As Sigman noted, he provided &#8220;the engineering chops&#8221; while Jovovich drove the architectural vision.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/milla-jovovich" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!93ZZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d7e3197-469d-4e18-86f1-3033d8bd4a27_459x460.jpeg 424w, https://substackcdn.com/image/fetch/$s_!93ZZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d7e3197-469d-4e18-86f1-3033d8bd4a27_459x460.jpeg 848w, https://substackcdn.com/image/fetch/$s_!93ZZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d7e3197-469d-4e18-86f1-3033d8bd4a27_459x460.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!93ZZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d7e3197-469d-4e18-86f1-3033d8bd4a27_459x460.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!93ZZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d7e3197-469d-4e18-86f1-3033d8bd4a27_459x460.jpeg" width="459" height="460" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d7e3197-469d-4e18-86f1-3033d8bd4a27_459x460.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:460,&quot;width&quot;:459,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:52413,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://github.com/milla-jovovich&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/193848267?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d7e3197-469d-4e18-86f1-3033d8bd4a27_459x460.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!93ZZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d7e3197-469d-4e18-86f1-3033d8bd4a27_459x460.jpeg 424w, https://substackcdn.com/image/fetch/$s_!93ZZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d7e3197-469d-4e18-86f1-3033d8bd4a27_459x460.jpeg 848w, https://substackcdn.com/image/fetch/$s_!93ZZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d7e3197-469d-4e18-86f1-3033d8bd4a27_459x460.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!93ZZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d7e3197-469d-4e18-86f1-3033d8bd4a27_459x460.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>When Audits Meet AI-Generated Code</h2><p>That&#8217;s when things got interesting.</p><p>As someone who works extensively with AI memory systems &#8212; I maintain <a href="https://github.com/bobmatnyc/kuzu-memory">KuzuMemory</a>, a graph-based memory framework &#8212; I was naturally curious about MemPalace&#8217;s benchmark methodology. The claimed 96.6% recall rate was extraordinary, especially for a system running entirely locally.</p><p>So I dove in.</p><p>What I found were several methodological issues that fundamentally undermined the headline numbers. The benchmark adapter was discarding assistant turns in conversation history, causing systematic under-recall on certain question types. More critically, the benchmark wasn&#8217;t actually testing MemPalace&#8217;s core functionality &#8212; it was primarily testing ChromaDB&#8217;s raw vector search capabilities.</p><p>I filed <a href="https://github.com/milla-jovovich/mempalace/issues/242">Issue #242</a> documenting the assistant turn bug, and <a href="https://github.com/milla-jovovich/mempalace/issues/214">Issue #214</a> showing that the 96.6% score was essentially a ChromaDB score, not a MemPalace score.</p><p>Mila&#8217;s response was immediate and technically sophisticated:</p><blockquote><p>&#8220;Hey <a href="https://github.com/bobmatnyc">@bobmatnyc</a> &#8212; I&#8217;ve taken a look and ran it through CLI. This is a real bug and it&#8217;s urgent. You caught that <code>benchmarks/longmemeval_bench.py</code> at lines 189-190 builds each session&#8217;s indexed document by concatenating <em>only</em> <code>user</code> role turns... <strong>Fix priority: this must land before any public benchmark re-run.</strong>&#8220;</p></blockquote><p>She didn&#8217;t deflect or dismiss. She debugged the issue herself, identified the exact lines of code causing the problem, explained the downstream impact on other benchmarks, and outlined a detailed fix plan including regression tests.</p><p>This wasn&#8217;t PR speak. This was an AI-assisted developer engaging seriously with technical criticism.</p><h2>The Democratization Shift</h2><p>This interaction crystallized something profound about our current moment in software development.</p><p>We&#8217;re witnessing the emergence of a new class of builders: technically-minded individuals who understand software conceptually but may not have traditional coding backgrounds. AI-assisted development tools like Claude Code, GitHub Copilot, and Cursor have lowered the implementation barrier to the point where vision and domain expertise matter more than syntax mastery.</p><p>Mila Jovovich exemplifies this shift perfectly. Without formal technical education (she left school in 7th grade for modeling), she spent months intensively learning AI-assisted development through Claude Code starting in late 2025. She understood the conceptual framework of memory palaces deeply enough to architect a sophisticated system. Her collaboration with Ben Sigman &#8212; CEO of Bitcoin lending platform Libre Labs, who provided the engineering expertise while she drove architectural vision &#8212; represents a new model of software development where domain knowledge and AI tool fluency can substitute for traditional programming backgrounds.</p><p>The fact that a movie star can release a technically competent, widely-adopted memory framework isn&#8217;t a commentary on coding getting easier (though it has). It&#8217;s about software development becoming more accessible to domain experts and visionaries who previously couldn&#8217;t bridge the implementation gap.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f3FK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b861799-f605-4e03-bec5-f88ec1387a42_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f3FK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b861799-f605-4e03-bec5-f88ec1387a42_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!f3FK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b861799-f605-4e03-bec5-f88ec1387a42_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!f3FK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b861799-f605-4e03-bec5-f88ec1387a42_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!f3FK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b861799-f605-4e03-bec5-f88ec1387a42_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f3FK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b861799-f605-4e03-bec5-f88ec1387a42_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b861799-f605-4e03-bec5-f88ec1387a42_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1971642,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/193848267?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b861799-f605-4e03-bec5-f88ec1387a42_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!f3FK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b861799-f605-4e03-bec5-f88ec1387a42_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!f3FK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b861799-f605-4e03-bec5-f88ec1387a42_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!f3FK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b861799-f605-4e03-bec5-f88ec1387a42_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!f3FK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b861799-f605-4e03-bec5-f88ec1387a42_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What MemPalace Gets Right</h2><p>Despite the benchmark issues I uncovered, MemPalace demonstrates genuine technical sophistication. The memory palace metaphor isn&#8217;t just marketing &#8212; it&#8217;s a thoughtful architectural choice that makes AI memory systems more intuitive and debuggable.</p><p>The system includes elegant features like per-agent memory &#8220;wings&#8221; that prevent cross-contamination between different AI assistants. The Claude Code integration hooks are well-designed, automatically triggering memory saves at logical conversation boundaries. The MCP implementation is clean and follows established patterns.</p><p>Most importantly, the project tackles a real problem: most AI memory systems are either expensive cloud services or complex local installations. MemPalace provides a middle path that&#8217;s both free and relatively easy to deploy.</p><p>Through my testing and integration experiments, I learned techniques that improved my own KuzuMemory system. The competitive analysis forced me to think more carefully about memory organization patterns and retrieval strategies. This kind of cross-pollination benefits the entire ecosystem.</p><h2>The Validation Requirement</h2><p>But the benchmark controversy highlights a crucial point: democratized software development still requires traditional validation methods.</p><p>AI-assisted coding tools excel at implementation but can perpetuate subtle conceptual errors throughout a codebase. The MemPalace benchmark issues weren&#8217;t obvious bugs &#8212; they were methodological problems that required domain expertise to identify.</p><p>This creates an interesting dynamic: AI tools enable rapid development by non-traditional developers, but peer review by experienced practitioners becomes even more critical. The community response to MemPalace&#8217;s inflated benchmarks wasn&#8217;t hostile &#8212; it was collaborative debugging at scale.</p><p>Mila&#8217;s willingness to engage directly with technical criticism and implement fixes demonstrates the right approach. The democratization of software development doesn&#8217;t eliminate the need for technical rigor; it distributes that rigor across a broader community.</p><h2>The Harness Thesis Validated</h2><p>This story perfectly validates what I call the &#8220;harness thesis&#8221; &#8212; that we&#8217;ve entered an era where AI tool ecosystems matter more than underlying model capabilities.</p><p>MemPalace succeeded not because Mila wrote perfect code from scratch, but because she effectively orchestrated Claude Code to implement her vision. The system&#8217;s value comes from its architectural choices, integration quality, and user experience &#8212; not from novel algorithmic breakthroughs.</p><p>Similarly, my ability to audit and improve the system came not from superior coding skills, but from having developed complementary expertise with memory systems and benchmark methodology. The collaboration that emerged &#8212; distributed across GitHub issues, with contributors from multiple backgrounds &#8212; represents the new model of software development.</p><p>We&#8217;re not just building different software; we&#8217;re building software differently.</p><h2>Meeting Mila Through Code</h2><p>In the end, I did meet Mila Jovovich &#8212; through our AI Agents, lines of Python code, GitHub issues, and technical discussions about memory retrieval algorithms, mediated by our respective Claude Code workflows. Not the meeting I would have predicted, but somehow more meaningful than a typical celebrity encounter.</p><p>She embodies a new archetype: the technical visionary who uses AI tools to implement sophisticated ideas without traditional programming backgrounds. Her willingness to engage with criticism and continuously improve the system demonstrates the collaborative spirit that makes this new era of development possible.</p><p>The future of software isn&#8217;t just about better AI models or more powerful tools. It&#8217;s about enabling more people with domain expertise and creative vision to participate in building the systems that shape our digital world.</p><p>And sometimes, that means meeting your childhood movie star idol in a GitHub issue thread, debugging memory palace algorithms together.</p><div><hr></div><p><em>Bob Matsuoka is CTO of <a href="https://www.duettocloud.com/">Duetto</a> and writes about AI-powered engineering at <a href="https://hyperdev.substack.com/">HyperDev</a>.</em></p><p><strong>Related reading:</strong></p><ul><li><p><a href="https://hyperdev.matsuoka.com/its-the-harness-stupid">It&#8217;s The Harness Stupid</a> &#8212; Why AI tool ecosystems matter more than model capabilities</p></li><li><p><a href="https://aipowerranking.com/">AI Power Ranking</a> &#8212; Tool comparisons and benchmarks for AI practitioners</p></li><li><p><a href="https://www.linkedin.com/newsletters/ai-power-ranking-7345782916301418496/">LinkedIn Newsletter</a> &#8212; Strategic AI insights for CTOs and engineering leaders</p></li></ul><p><strong>Referenced Links:</strong></p><ul><li><p><a href="https://github.com/milla-jovovich/mempalace">MemPalace GitHub Repository</a></p></li><li><p><a href="https://github.com/bobmatnyc/kuzu-memory">KuzuMemory GitHub Repository</a></p></li><li><p><a href="https://github.com/milla-jovovich/mempalace/issues/242">Issue #242: Benchmark adapter bug</a></p></li><li><p><a href="https://github.com/milla-jovovich/mempalace/issues/214">Issue #214: ChromaDB vs MemPalace scoring</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Software Factory is the Next Big Challenge]]></title><description><![CDATA[Many enterprises are rolling their own]]></description><link>https://hyperdev.matsuoka.com/p/the-software-factory-is-the-next</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/the-software-factory-is-the-next</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Wed, 08 Apr 2026 12:30:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tsf8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58714619-d828-47fe-aa27-7777b26b3b11_1024x825.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tsf8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58714619-d828-47fe-aa27-7777b26b3b11_1024x825.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tsf8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58714619-d828-47fe-aa27-7777b26b3b11_1024x825.png 424w, https://substackcdn.com/image/fetch/$s_!tsf8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58714619-d828-47fe-aa27-7777b26b3b11_1024x825.png 848w, https://substackcdn.com/image/fetch/$s_!tsf8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58714619-d828-47fe-aa27-7777b26b3b11_1024x825.png 1272w, https://substackcdn.com/image/fetch/$s_!tsf8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58714619-d828-47fe-aa27-7777b26b3b11_1024x825.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tsf8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58714619-d828-47fe-aa27-7777b26b3b11_1024x825.png" width="1024" height="825" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58714619-d828-47fe-aa27-7777b26b3b11_1024x825.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:825,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1823642,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/193118243?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90d9b63c-9a04-4eb4-895e-c659c19b1b3b_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tsf8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58714619-d828-47fe-aa27-7777b26b3b11_1024x825.png 424w, https://substackcdn.com/image/fetch/$s_!tsf8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58714619-d828-47fe-aa27-7777b26b3b11_1024x825.png 848w, https://substackcdn.com/image/fetch/$s_!tsf8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58714619-d828-47fe-aa27-7777b26b3b11_1024x825.png 1272w, https://substackcdn.com/image/fetch/$s_!tsf8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58714619-d828-47fe-aa27-7777b26b3b11_1024x825.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Software Factory is the future of software development</figcaption></figure></div><p>Stripe engineers send Slack messages that automatically become production code. Not suggestions. Not drafts. Production code merged into their main branch, supporting over a trillion dollars in annual payment processing.</p><p>Their <a href="https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents">&#8220;Minions&#8221; system</a> generates <a href="https://www.infoq.com/news/2026/03/stripe-autonomous-coding-agents/">1,300 pull requests per week</a> with zero human-written code. Fire-and-forget automation from conversation to deployment. While the rest of us debate whether AI can write good code, Stripe has built a software factory that produces enterprise-grade applications at scale.</p><p>The software factory isn&#8217;t a future concept. It&#8217;s a present reality, and it represents the next fundamental challenge for engineering organizations.</p><h2>What We&#8217;re Building at Duetto</h2><p>I&#8217;ve been thinking about this a lot lately. At Duetto, we&#8217;re exploring what a software factory could look like for hospitality technology. Not because we want to eliminate developers, but because we&#8217;re hitting the limits of traditional development approaches for domain-specific applications.</p><p>Our challenge isn&#8217;t just writing code&#8212;it&#8217;s translating complex hotel revenue management requirements into software that works reliably across thousands of properties with different systems, data formats, and business rules. The cognitive load of keeping all these variations in mind while building features is becoming unsustainable.</p><p>What if we could describe what we need in something like our APEX specifications, and have the system generate not just code, but complete deployments? Kubernetes instances running Claude Code agents, database migrations, monitoring setup, the whole stack configured for that specific use case.</p><p>The goal isn&#8217;t replacing our engineering team. Our developers should be solving revenue optimization algorithms and building domain-specific integrations, not configuring YAML files for the hundredth deployment variation.</p><h2>The Stripe Blueprint</h2><p>Stripe&#8217;s Minions reveal what a production software factory actually looks like when you strip away the hype and focus on what works.</p><p><strong>Five-Layer Pipeline</strong>: Their system transforms Slack messages into production-ready pull requests through a structured pipeline. Not magic&#8212;engineering discipline applied to automation.</p><p><strong>Sandboxed Execution</strong>: Every agent runs in isolated containers with codebase checkouts. They can&#8217;t access production systems, can&#8217;t cause cascading failures, can&#8217;t break things outside their designated scope. <a href="https://www.anup.io/stripes-coding-agents-the-walls-matter-more-than-the-model/">The walls matter more than the model</a>.</p><p><strong>Surgical Tool Selection</strong>: Their <a href="https://www.mindstudio.ai/blog/what-is-ai-agent-harness-stripe-minions">Model Context Protocol</a> provides access to hundreds of internal tools, but agents get intelligently prefetched access to only the ~15 tools relevant to their specific task. Not everything available&#8212;the right things available.</p><p><strong>One-Shot Optimization</strong>: Instead of conversational back-and-forth, their agents are <a href="https://www.sitepoint.com/stripe-minions-architecture-explained/">optimized for well-defined work</a> that completes in a single execution. Better latency, lower costs, more predictable outcomes.</p><p>The results speak for themselves: 1,300 PRs weekly, zero human-written code in merged changes, supporting their entire payment infrastructure. This isn&#8217;t a pilot program. This is their production development workflow.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!18qG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F405e3b24-3997-4ecc-89e7-bcd78eb0c218_1024x674.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!18qG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F405e3b24-3997-4ecc-89e7-bcd78eb0c218_1024x674.png 424w, https://substackcdn.com/image/fetch/$s_!18qG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F405e3b24-3997-4ecc-89e7-bcd78eb0c218_1024x674.png 848w, https://substackcdn.com/image/fetch/$s_!18qG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F405e3b24-3997-4ecc-89e7-bcd78eb0c218_1024x674.png 1272w, https://substackcdn.com/image/fetch/$s_!18qG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F405e3b24-3997-4ecc-89e7-bcd78eb0c218_1024x674.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!18qG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F405e3b24-3997-4ecc-89e7-bcd78eb0c218_1024x674.png" width="1024" height="674" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/405e3b24-3997-4ecc-89e7-bcd78eb0c218_1024x674.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:674,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1235022,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/193118243?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1885512e-da12-485c-9bc1-eaa9bd2512e6_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!18qG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F405e3b24-3997-4ecc-89e7-bcd78eb0c218_1024x674.png 424w, https://substackcdn.com/image/fetch/$s_!18qG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F405e3b24-3997-4ecc-89e7-bcd78eb0c218_1024x674.png 848w, https://substackcdn.com/image/fetch/$s_!18qG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F405e3b24-3997-4ecc-89e7-bcd78eb0c218_1024x674.png 1272w, https://substackcdn.com/image/fetch/$s_!18qG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F405e3b24-3997-4ecc-89e7-bcd78eb0c218_1024x674.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Broader Software Factory Landscape</h2><p>Stripe isn&#8217;t alone in building these systems, just the most public about their approach.</p><p>Netflix has their federated developer console integrating dozens of tools into a single unified experience. <a href="https://engineering.atspotify.com/2024/4/supercharged-developer-portals">Spotify&#8217;s Backstage</a> holds 89% market share among internal developer platforms, reducing time-to-tenth-pull-request by 55% for new developers.</p><p>The open source ecosystem is catching up quickly. <a href="https://openhands.dev/">OpenHands</a> provides a model-agnostic platform for cloud coding agents with $18.8M in Series A funding. <a href="https://www.turing.com/blog/top-5-ai-code-generation-tools-in-2024">CodeT5</a> handles multi-language code generation. <a href="https://github.com/features/copilot/enterprise">GitHub Copilot Enterprise</a> is expanding beyond code completion into full workflow automation.</p><p>Major cloud providers are also building comprehensive platforms. Microsoft&#8217;s GitHub Copilot Workspace, Google&#8217;s Duet AI for developers, and Amazon&#8217;s Q Developer all represent enterprise-grade attempts at software factory capabilities.</p><p>According to Gartner, <a href="https://calmops.com/devops/internal-developer-platform-idp-2026-complete-guide/">80% of large engineering organizations</a> now have dedicated platform teams. The question isn&#8217;t whether software factories are coming&#8212;it&#8217;s whether your organization will build one or buy one.</p><h2>What a Proper Software Factory Requires</h2><p>Building a software factory isn&#8217;t just about connecting AI tools to deployment pipelines. Based on what&#8217;s working at Stripe and emerging patterns across the industry, here are the essential components:</p><h3>Artifact Response Systems</h3><p>Your factory needs to respond to structured specifications and generate complete deployments. At Duetto, this might mean taking an APEX specification for a new revenue optimization feature and producing:</p><ul><li><p>Kubernetes deployment configurations</p></li><li><p>Database migration scripts</p></li><li><p>Monitoring and alerting setup</p></li><li><p>Load testing scenarios</p></li><li><p>Documentation</p></li></ul><p>The system should handle the entire deployment lifecycle from specification to running production service, not just generate code that someone has to manually deploy.</p><h3>Strategic Human Review Checkpoints</h3><p>Notice I said strategic, not comprehensive. Stripe&#8217;s fire-and-forget model works because they&#8217;ve identified the specific points where human judgment adds value without blocking automation.</p><p>For enterprise applications, you need checkpoints at:</p><ul><li><p><strong>Specification validation</strong>: Do the requirements make business sense?</p></li><li><p><strong>Security review</strong>: Are access patterns and data handling appropriate?</p></li><li><p><strong>Integration testing</strong>: Does this work with existing systems?</p></li><li><p><strong>Production readiness</strong>: Are monitoring and rollback capabilities sufficient?</p></li></ul><p>The key is making these gates fast and decisive, not bureaucratic approval processes that defeat the purpose of automation.</p><h3>Scaffolding for Error Detection</h3><p>Your factory will produce broken code. That&#8217;s not a bug&#8212;that&#8217;s reality. The difference between a prototype and a production system is sophisticated error detection and recovery.</p><p>This means:</p><ul><li><p><strong>Isolated execution environments</strong> where failures can&#8217;t cause broader damage</p></li><li><p><strong>Automated testing and iteration</strong> when initial attempts fail</p></li><li><p><strong>Multi-layer validation</strong> before anything reaches production</p></li><li><p><strong>Comprehensive rollback capabilities</strong> for when something gets through anyway</p></li></ul><p>Stripe&#8217;s sandbox architecture is brilliant because it lets agents fail safely while learning from those failures to improve future attempts.</p><h3>Success Criteria Parameters</h3><p>Your factory needs to know what success looks like for each type of work. Not just &#8220;the code compiles,&#8221; but measurable business outcomes.</p><p>For a hospitality feature, success might mean:</p><ul><li><p>Performance benchmarks met under load</p></li><li><p>Integration tests pass with five different PMS systems</p></li><li><p>Revenue impact measurable within 30 days</p></li><li><p>Zero customer-facing errors in the first week</p></li></ul><p>Define these criteria upfront, build them into your validation pipeline, and let the factory optimize for actual business value rather than technical metrics alone.</p><h3>Cost Tracking and Optimization</h3><p>AI-powered development isn&#8217;t free. You need visibility into the computational costs, tool usage, and human review time for each generated system.</p><p>Stripe optimizes for this explicitly&#8212;their one-shot agents cost less than conversational approaches, their surgical tool selection reduces context costs, their automated testing prevents expensive human debugging cycles.</p><p>Track these metrics from day one. The difference between a cost-effective software factory and an expensive experiment is usually found in the operational details.</p><h3>Deployment Models</h3><p>Your factory needs sophisticated understanding of how to deploy different types of applications. Golden Path workflows that codify best practices, environment promotion strategies that reduce risk, and rollback procedures that restore service quickly when things go wrong.</p><p>This is where domain expertise becomes critical. A generic software factory might know how to deploy a web service, but does it understand the specific requirements for hospitality payment processing, guest data privacy, and integration with property management systems?</p><h2>The Duetto Context</h2><p>At Duetto, we&#8217;re thinking about how a software factory could handle the complexity of hospitality technology. Our domain has unique challenges:</p><p><strong>Data Integration Complexity</strong>: Every hotel uses different systems with different data formats. A software factory needs to understand these variations and generate appropriate integration code.</p><p><strong>Regulatory Requirements</strong>: Guest privacy, payment processing, accessibility compliance. The factory needs to embed these requirements into everything it produces.</p><p><strong>Performance Characteristics</strong>: Revenue management systems need to process pricing updates in near real-time across thousands of rooms and rate plans. The factory needs to optimize for these specific performance patterns.</p><p><strong>Operational Constraints</strong>: Hotels can&#8217;t afford downtime during peak booking periods. Deployment strategies need to account for hospitality business cycles.</p><p>We&#8217;re not trying to build a general-purpose software factory. We&#8217;re exploring how to build one that deeply understands our domain and can produce applications that work reliably in hospitality environments.</p><h2>The Reality Check</h2><p>Building a software factory is hard. Not because the technology doesn&#8217;t exist&#8212;Stripe proves it does&#8212;but because the organizational challenges are substantial.</p><p><strong>ROI Demonstration</strong>: You need to show measurable productivity improvements and cost savings. &#8220;The AI is impressive&#8221; isn&#8217;t sufficient justification for the investment required.</p><p><strong>Security and Compliance</strong>: Automated code generation that touches customer data or payment systems requires additional security layers and audit capabilities.</p><p><strong>Developer Workflow Changes</strong>: Your engineering team needs to learn new ways of working. Some will embrace it, others will resist. Change management is as important as the technical implementation.</p><p><strong>Quality Assurance Evolution</strong>: Your QA processes need to evolve from testing human-written code to validating AI-generated systems. Different failure modes, different testing strategies.</p><p><strong>Integration Complexity</strong>: Your factory needs to work with existing systems, databases, APIs, and workflows. The harder the integration challenge, the longer the implementation timeline.</p><p>These aren&#8217;t reasons to avoid building a software factory. They&#8217;re reasons to approach the project with realistic expectations and proper preparation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bVFQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5931edca-6b79-4588-bae5-ab6a883a7b66_1024x678.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bVFQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5931edca-6b79-4588-bae5-ab6a883a7b66_1024x678.png 424w, https://substackcdn.com/image/fetch/$s_!bVFQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5931edca-6b79-4588-bae5-ab6a883a7b66_1024x678.png 848w, https://substackcdn.com/image/fetch/$s_!bVFQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5931edca-6b79-4588-bae5-ab6a883a7b66_1024x678.png 1272w, https://substackcdn.com/image/fetch/$s_!bVFQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5931edca-6b79-4588-bae5-ab6a883a7b66_1024x678.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bVFQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5931edca-6b79-4588-bae5-ab6a883a7b66_1024x678.png" width="1024" height="678" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5931edca-6b79-4588-bae5-ab6a883a7b66_1024x678.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:678,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1446253,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/193118243?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a61e37-d209-4927-8ab4-44a35ed22bb9_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bVFQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5931edca-6b79-4588-bae5-ab6a883a7b66_1024x678.png 424w, https://substackcdn.com/image/fetch/$s_!bVFQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5931edca-6b79-4588-bae5-ab6a883a7b66_1024x678.png 848w, https://substackcdn.com/image/fetch/$s_!bVFQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5931edca-6b79-4588-bae5-ab6a883a7b66_1024x678.png 1272w, https://substackcdn.com/image/fetch/$s_!bVFQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5931edca-6b79-4588-bae5-ab6a883a7b66_1024x678.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Looking Forward</h2><p>The trajectory is clear. <a href="https://leanopstech.com/blog/platform-engineering-in-2025-the-future-of-developer-productivity/">Software factories are moving from experimental to mainstream</a>, with proven systems operating at enterprise scale and standardized architecture patterns emerging across the industry.</p><p>The question for engineering leaders isn&#8217;t whether this transformation will happen. It&#8217;s whether your organization will be an early adopter that shapes how software factories work in your domain, or a later adopter that implements patterns developed by others.</p><p>At Duetto, we&#8217;re betting on being early. Not because we want to be on the cutting edge for its own sake, but because the companies that figure out domain-specific software factories first will have a significant competitive advantage in application development speed and quality.</p><p>The software factory represents the next evolution of platform engineering. The organizations that master it will build better software faster than those that don&#8217;t.</p><p>The challenge isn&#8217;t technical anymore. It&#8217;s organizational, strategic, and operational.</p><p>The question is: Are you ready to build one?</p><div><hr></div><p><em>About this analysis: This piece draws from comprehensive research on production software factory implementations, including detailed analysis of Stripe&#8217;s Minions architecture, enterprise platform engineering initiatives, and emerging open source solutions. The author is exploring software factory applications for hospitality technology at Duetto.</em></p><p><em>About the author: Bob Matsuoka is Chief Technology Officer at Duetto and creator of Claude MPM (Multi-agent Project Manager). He has implemented AI-assisted development workflows across enterprise engineering teams and writes about the practical realities of AI integration in software development at <a href="https://hyperdev.substack.com/">HyperDev</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[Is The Claude Code Team Moving Too Quickly?]]></title><description><![CDATA[What To Think of the Source Leak]]></description><link>https://hyperdev.matsuoka.com/p/is-the-claude-code-team-moving-too</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/is-the-claude-code-team-moving-too</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Mon, 06 Apr 2026 12:30:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xLBj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07636e2-b451-4839-853e-91fc8ca0b4b3_1024x595.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xLBj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07636e2-b451-4839-853e-91fc8ca0b4b3_1024x595.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xLBj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07636e2-b451-4839-853e-91fc8ca0b4b3_1024x595.png 424w, https://substackcdn.com/image/fetch/$s_!xLBj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07636e2-b451-4839-853e-91fc8ca0b4b3_1024x595.png 848w, https://substackcdn.com/image/fetch/$s_!xLBj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07636e2-b451-4839-853e-91fc8ca0b4b3_1024x595.png 1272w, https://substackcdn.com/image/fetch/$s_!xLBj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07636e2-b451-4839-853e-91fc8ca0b4b3_1024x595.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xLBj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07636e2-b451-4839-853e-91fc8ca0b4b3_1024x595.png" width="1024" height="595" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d07636e2-b451-4839-853e-91fc8ca0b4b3_1024x595.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:595,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1151803,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/193101232?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9c1f20-243f-4cf5-b1c1-b708e63ffae8_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xLBj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07636e2-b451-4839-853e-91fc8ca0b4b3_1024x595.png 424w, https://substackcdn.com/image/fetch/$s_!xLBj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07636e2-b451-4839-853e-91fc8ca0b4b3_1024x595.png 848w, https://substackcdn.com/image/fetch/$s_!xLBj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07636e2-b451-4839-853e-91fc8ca0b4b3_1024x595.png 1272w, https://substackcdn.com/image/fetch/$s_!xLBj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07636e2-b451-4839-853e-91fc8ca0b4b3_1024x595.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On March 31, 2026, Anthropic accidentally shipped their entire Claude Code source&#8212;512,000 lines of TypeScript&#8212;in an npm package. What followed was perhaps the most intense technical autopsy in AI history. The verdict? Mixed, and revealing.</p><p>The criticism has been swift and pointed. A 5,594-line file with a single 3,167-line function sporting 12 levels of nesting. Regex-based frustration detection looking for &#8220;wtf&#8221; and &#8220;shit&#8221;. A quarter million wasted API calls per day from a three-line bug. As one critic put it: &#8220;A multi-billion-dollar AI company is detecting user frustration with a regex.&#8221;</p><p>But before we pile on, we need to ask: <strong>What does &#8220;good code&#8221; even mean when you&#8217;re building client-side LLM applications?</strong></p><h2>The Unprecedented Challenge</h2><p>Claude Code isn&#8217;t your typical software. It&#8217;s a client-side application that orchestrates conversations with large language models, manages context across sessions, and attempts to maintain coherent state while working with fundamentally non-deterministic systems.</p><p>This creates problems that traditional software engineering practices weren&#8217;t designed for:</p><ul><li><p><strong>Context management</strong>: Handling arbitrarily long conversations that exceed model limits</p></li><li><p><strong>Failure recovery</strong>: When your core computation is a 20% failure-rate API call</p></li><li><p><strong>State synchronization</strong>: Keeping UI, conversation history, and model context aligned</p></li><li><p><strong>Dynamic adaptation</strong>: Code that needs to adapt to changing model capabilities</p></li></ul><p>The leaked source reveals sophisticated solutions to these problems: a three-layer memory architecture, anti-distillation mechanisms, dual parser systems for safety. The engineering is <s>genuinely</s> impressive, even if the implementation is sometimes ugly.</p><h2>The Meta-Problem: AI Writing AI</h2><p>Claude Code was partially written by Claude Code. This represents the first documented case of a large-scale AI tool generating significant portions of its own source code&#8212;not just incremental improvement, but a categorical change in development methodology that creates unprecedented quality control challenges when AI-generated code scales beyond human review capacity.</p><p>When AI generates code at scales that exceed human review capacity, traditional quality control breaks down. That 3,167-line function? Probably not written by a human. The 12 levels of nesting? Algorithmic patterns, not human design choices.</p><p><strong>This is the real story</strong>: We&#8217;re witnessing the first major autopsy of self-bootstrapping AI tooling.</p><h2>Deterministic vs. LLM Code: Different Standards Apply</h2><p>I&#8217;ve been thinking about this distinction a lot lately in my work with <a href="https://github.com/bobmatnyc/claude-mpm">Claude MPM</a>, an open-source multi-agent code generation framework built on Claude Code that coordinates specialized AI agents for software development workflows. When you&#8217;re building traditional, deterministic software, all the usual rules apply. Clean functions, clear abstractions, maintainable architecture. Use your normal code analysis tools.</p><p>But when you&#8217;re building LLM-integrated systems, the rules change:</p><ol><li><p><strong>Failure is the default</strong>: Your core operations fail 20% of the time</p></li><li><p><strong>Context is expensive</strong>: Every token counts toward limits</p></li><li><p><strong>Behavior is emergent</strong>: The system does things you didn&#8217;t explicitly program</p></li><li><p><strong>Adaptation is constant</strong>: Model capabilities change monthly</p></li></ol><p>In this world, a 5,594-line file might be ugly, but if it successfully manages complex failure recovery across multiple conversation threads, it might also be <em>correct</em>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aIuf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd26aa417-4783-42d6-8105-488131dfe518_1024x790.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aIuf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd26aa417-4783-42d6-8105-488131dfe518_1024x790.png 424w, https://substackcdn.com/image/fetch/$s_!aIuf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd26aa417-4783-42d6-8105-488131dfe518_1024x790.png 848w, https://substackcdn.com/image/fetch/$s_!aIuf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd26aa417-4783-42d6-8105-488131dfe518_1024x790.png 1272w, https://substackcdn.com/image/fetch/$s_!aIuf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd26aa417-4783-42d6-8105-488131dfe518_1024x790.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aIuf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd26aa417-4783-42d6-8105-488131dfe518_1024x790.png" width="1024" height="790" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d26aa417-4783-42d6-8105-488131dfe518_1024x790.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:790,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1466836,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/193101232?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd33fb826-655a-4d8b-87cc-bfade8984326_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aIuf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd26aa417-4783-42d6-8105-488131dfe518_1024x790.png 424w, https://substackcdn.com/image/fetch/$s_!aIuf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd26aa417-4783-42d6-8105-488131dfe518_1024x790.png 848w, https://substackcdn.com/image/fetch/$s_!aIuf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd26aa417-4783-42d6-8105-488131dfe518_1024x790.png 1272w, https://substackcdn.com/image/fetch/$s_!aIuf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd26aa417-4783-42d6-8105-488131dfe518_1024x790.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Code Analysis Checkpoint Strategy</h2><p>This is where I&#8217;ve found success with my recent updates to the code analyzer in Claude MPM. The analyzer utilizes <a href="https://github.com/modelcontextprotocol/servers/tree/main/src/mcp-vector-search">mcp-vector-search</a> for comprehensive codebase analysis, providing AST-based semantic search, full-text search capabilities, and knowledge graph construction for architectural pattern detection. Instead of trying to prevent AI from generating messy code (impossible), I focus on <strong>regular refactoring and analysis checkpoints</strong>.</p><p>The analyzer has gotten very good at catching two specific issues:</p><ol><li><p><strong>Drift</strong>: When AI-generated code slowly diverges from intended architecture</p></li><li><p><strong>Bloat</strong>: When generated solutions become unnecessarily complex over time</p></li></ol><p>I make a point to run these checkpoints regularly, treating them as essential maintenance rather than optional cleanup. It&#8217;s like running <code>cargo clippy</code> or <code>eslint</code>, but for AI-generated architectural decisions.</p><p>The key insight: <strong>AI code needs different kinds of maintenance than human code</strong>.</p><h2>Outcome-Based Generation: Does It Work?</h2><p>Here&#8217;s my perhaps controversial take: If Claude Code successfully helps developers ship better software faster, then the messy internals might not matter as much as we think.</p><p>The leaked code reveals a system that:</p><ul><li><p>Handles millions of conversations per day</p></li><li><p>Maintains context across arbitrarily long sessions</p></li><li><p>Provides sophisticated memory management</p></li><li><p>Implements multiple safety layers</p></li><li><p>Delivers a $2.5 billion ARR product experience</p></li></ul><p>Is the implementation elegant? No. Does it work? Apparently, yes. Because we can observe/measure what it&#8217;s building completely independently of what built it.</p><p>This doesn&#8217;t excuse basic engineering failures (that <code>.npmignore</code> mistake was embarrassing). But it does suggest we need new frameworks for evaluating AI-generated systems.</p><h2>The Scaffolding Solution</h2><p>Rather than trying to make AI generate perfect code, we can scaffold around the inevitable messiness:</p><p><strong>Automated refactoring checkpoints</strong>: Regular cleanup of AI-generated bloat<br><strong>Architectural constraints</strong>: Guard rails that prevent the worst patterns<br><strong>Outcome validation</strong>: Testing that focuses on behavior over implementation<br><strong>Human oversight</strong>: Strategic points where humans validate AI decisions</p><p>This is the approach I&#8217;ve been taking with Claude MPM, and it&#8217;s proven remarkably effective. Let the AI generate messy-but-functional code, then use tooling to clean it up systematically.</p><h2>What This Means for the Industry</h2><p>The Claude Code leak represents a watershed moment. It&#8217;s our first real look at what happens when AI tools build themselves at scale.</p><p>The criticism is valid&#8212;basic engineering discipline matters, even in AI systems. A missing <code>.npmignore</code> file is inexcusable for a billion-dollar product.</p><p>But the deeper question is whether we&#8217;re applying the right standards. Traditional code quality metrics may not capture what actually matters for AI-integrated systems.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NrDl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87df3326-02c3-4838-b302-ab23ab5d5e19_1024x825.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NrDl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87df3326-02c3-4838-b302-ab23ab5d5e19_1024x825.png 424w, https://substackcdn.com/image/fetch/$s_!NrDl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87df3326-02c3-4838-b302-ab23ab5d5e19_1024x825.png 848w, https://substackcdn.com/image/fetch/$s_!NrDl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87df3326-02c3-4838-b302-ab23ab5d5e19_1024x825.png 1272w, https://substackcdn.com/image/fetch/$s_!NrDl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87df3326-02c3-4838-b302-ab23ab5d5e19_1024x825.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NrDl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87df3326-02c3-4838-b302-ab23ab5d5e19_1024x825.png" width="1024" height="825" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/87df3326-02c3-4838-b302-ab23ab5d5e19_1024x825.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:825,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1937908,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/193101232?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1273dbb0-a196-49bc-b0ca-17f437545fd8_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NrDl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87df3326-02c3-4838-b302-ab23ab5d5e19_1024x825.png 424w, https://substackcdn.com/image/fetch/$s_!NrDl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87df3326-02c3-4838-b302-ab23ab5d5e19_1024x825.png 848w, https://substackcdn.com/image/fetch/$s_!NrDl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87df3326-02c3-4838-b302-ab23ab5d5e19_1024x825.png 1272w, https://substackcdn.com/image/fetch/$s_!NrDl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87df3326-02c3-4838-b302-ab23ab5d5e19_1024x825.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Moving Forward</h2><p>Anthropic probably <em>is</em> moving too quickly in some ways. The leak revealed security vulnerabilities, competitive intelligence losses, and quality control failures that suggest inadequate human oversight.</p><p>But they&#8217;re also pioneering entirely new categories of software. The problems they&#8217;re solving&#8212;context management, failure recovery, human-AI collaboration&#8212;don&#8217;t have established best practices yet.</p><p>The real lesson isn&#8217;t that AI-generated code is inherently bad. It&#8217;s that we need new practices for building, reviewing, and maintaining systems that exceed human comprehension scales.</p><p><strong>The question isn&#8217;t whether Claude Code&#8217;s internals are messy. It&#8217;s whether we can build better scaffolding around AI-generated systems to catch the problems that matter while accepting the messiness we can&#8217;t avoid.</strong></p><p>The Claude Code team probably needs to slow down on the basics&#8212;security, testing, deployment hygiene. But they&#8217;re moving fast on problems that genuinely require speed to solve before competitors do.</p><p>That&#8217;s a nuanced position in an industry that loves simple takes. But nuance is what the moment requires.</p><p><em>What do you think? Are we being too hard on AI-generated code, or not hard enough? Share your thoughts in the comments.</em></p><div><hr></div><p><em>About this analysis: This piece draws from extensive technical analysis of the March 31, 2026 Claude Code source leak, including community responses, security assessments, and business impact analysis. The author maintains active development projects using AI-assisted coding tools and has direct experience with the challenges discussed.</em></p><p><em>About the author: Bob Matsuoka is Chief Technology Officer at <a href="https://www.duettocloud.com/">Duetto</a> and creator of Claude MPM (Multi-agent Project Manager). He has implemented AI-assisted development workflows across enterprise engineering teams and writes about the practical realities of AI integration in software development at <a href="https://hyperdev.substack.com">HyperDev</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[Moving Past the 10-Tab Workflow]]></title><description><![CDATA[Autonomous Orchestration Management Is Next]]></description><link>https://hyperdev.matsuoka.com/p/moving-past-the-10-tab-workflow</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/moving-past-the-10-tab-workflow</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Wed, 01 Apr 2026 12:32:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wz2X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c54d57-2f21-4893-a87d-88523deb8ae7_1024x690.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wz2X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c54d57-2f21-4893-a87d-88523deb8ae7_1024x690.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wz2X!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c54d57-2f21-4893-a87d-88523deb8ae7_1024x690.png 424w, https://substackcdn.com/image/fetch/$s_!wz2X!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c54d57-2f21-4893-a87d-88523deb8ae7_1024x690.png 848w, https://substackcdn.com/image/fetch/$s_!wz2X!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c54d57-2f21-4893-a87d-88523deb8ae7_1024x690.png 1272w, https://substackcdn.com/image/fetch/$s_!wz2X!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c54d57-2f21-4893-a87d-88523deb8ae7_1024x690.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wz2X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c54d57-2f21-4893-a87d-88523deb8ae7_1024x690.png" width="1024" height="690" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5c54d57-2f21-4893-a87d-88523deb8ae7_1024x690.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:690,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1272299,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/192741144?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87ec05a-31c6-4037-a9e0-db7c8c8fcba4_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wz2X!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c54d57-2f21-4893-a87d-88523deb8ae7_1024x690.png 424w, https://substackcdn.com/image/fetch/$s_!wz2X!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c54d57-2f21-4893-a87d-88523deb8ae7_1024x690.png 848w, https://substackcdn.com/image/fetch/$s_!wz2X!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c54d57-2f21-4893-a87d-88523deb8ae7_1024x690.png 1272w, https://substackcdn.com/image/fetch/$s_!wz2X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c54d57-2f21-4893-a87d-88523deb8ae7_1024x690.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">From Tab Chaos to Autonomic Orchestration</figcaption></figure></div><p>I&#8217;m looking at my (iTerm) terminal right now. Ten tmux sessions. Each session holds a different project context&#8212;one monitoring CI failures, another handling a code review, a third debugging a production issue.</p><p>This is the reality of modern agent development work.</p><h2>TL;DR</h2><ul><li><p><strong>Multi-session reality</strong>: Power users average 8-12 terminal sessions; most work involves modification, bug response, and PR handling&#8212;not new code generation</p></li><li><p><strong>Natural workflow origination</strong>: Future systems trigger from product team actions, CI failures, and automated events rather than human prompts </p></li><li><p><strong>Orchestration evolution</strong>: From human-orchestrated agents to orchestration-of-orchestrators where prime coordinators are non-human</p></li><li><p><strong>Production examples</strong>: Stripe&#8217;s Minions (1,300 PRs/week), GitLab&#8217;s Duo Agent Platform, Meta&#8217;s REA demonstrate hierarchical agent orchestration</p></li><li><p><strong>Architecture shift</strong>: Claude Code&#8217;s SDK model enables workflow-driven development through persistent, context-aware agent orchestration</p></li></ul><h2>The 10-Tab Reality</h2><p>According to recent developer workflow studies, <a href="https://www.heyuan110.com/posts/ai/2026-03-03-tmux-guide-ai-development/">tmux has become the standard for AI-assisted development</a>, with <a href="https://dev.to/_d7eb1c1703182e3ce1782/tmux-tutorial-the-complete-developer-workflow-guide-2026-33b3">persistent sessions solving the context-switching tax</a>. The productivity advantage isn&#8217;t the multiplexing&#8212;it&#8217;s the persistence. Projects become environments you step in and out of rather than things you open and close.</p><p>But here&#8217;s what the productivity tutorials miss: most of those tabs aren&#8217;t generating software.</p><p><strong>My current session breakdown:</strong></p><ul><li><p>3 sessions: non-coding -- my CTO knowledge base (currently analyzing our Sumo use), a writing assistant, and our Duetto product management framework</p></li><li><p>4 sessions: coding - various internal tools and MCP connectors</p></li><li><p>2 sessions: coding - new projects</p></li><li><p>1 session: code review</p></li></ul><p>The 8:2 ratio holds across most senior developers I&#8217;ve observed. Most development work involves responding to existing systems, not creating new ones.</p><p>This distribution points toward something significant: <strong>the future of development orchestration isn&#8217;t human-initiated.</strong></p><h2>Beyond Prompt-Driven Development</h2><p>Claude Code&#8217;s new SDK architecture reflects this reality. Instead of starting with human prompts, work originates from natural workflow events:</p><ul><li><p>Product team creates ticket &#8594; Implementation specification generated</p></li><li><p>CI pipeline fails &#8594; Diagnostic agent analyzes failure, proposes fix</p></li><li><p>PR submitted &#8594; Review agent examines code, suggests improvements</p></li><li><p>Production alert triggered &#8594; Incident response agent investigates, documents findings</p></li><li><p>Security scan detects vulnerability &#8594; Remediation agent generates patch</p></li></ul><p>The pattern: <strong>Event &#8594; Agent Response &#8594; Human Review &#8594; Autonomous Resolution</strong>.</p><p>Humans remain in the loop, but as orchestrators and validators rather than initiators. The shift from &#8220;What should I build?&#8221; to &#8220;How should this system respond?&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!G7Uu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f98126-397c-40f4-bf7d-6fc025ab018d_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G7Uu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f98126-397c-40f4-bf7d-6fc025ab018d_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!G7Uu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f98126-397c-40f4-bf7d-6fc025ab018d_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!G7Uu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f98126-397c-40f4-bf7d-6fc025ab018d_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!G7Uu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f98126-397c-40f4-bf7d-6fc025ab018d_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!G7Uu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f98126-397c-40f4-bf7d-6fc025ab018d_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20f98126-397c-40f4-bf7d-6fc025ab018d_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1418038,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/192741144?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f98126-397c-40f4-bf7d-6fc025ab018d_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!G7Uu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f98126-397c-40f4-bf7d-6fc025ab018d_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!G7Uu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f98126-397c-40f4-bf7d-6fc025ab018d_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!G7Uu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f98126-397c-40f4-bf7d-6fc025ab018d_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!G7Uu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f98126-397c-40f4-bf7d-6fc025ab018d_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Yes, Dall-e is Still Atrocious With Spelling.  Don&#8217;t @ me!</figcaption></figure></div><h2>Orchestration of Orchestrators: Production Examples</h2><h3>Stripe&#8217;s Blueprint Architecture</h3><p><a href="https://medium.com/@oracle_43885/how-stripe-built-secure-unattended-ai-agents-merging-1-000-pull-requests-weekly-1ff42f3fe550">Stripe&#8217;s Minions system demonstrates mature orchestration-of-orchestrators</a>. Their &#8220;blueprint&#8221; pattern alternates between deterministic code nodes and agentic reasoning loops, generating <a href="https://blog.bytebytego.com/p/how-stripes-minions-ship-1300-prs">1,300+ pull requests weekly</a>.</p><p><strong>Architecture insight</strong>: <a href="https://www.mindstudio.ai/blog/stripe-minions-blueprint-architecture-deterministic-agentic-nodes">Each blueprint functions as a strict contract between orchestration and execution</a>. Task definitions specify input requirements, output formats, constraints, and success criteria. The orchestrator manages workflow, agents handle implementation.</p><p><strong>Security model</strong>: <a href="https://www.sitepoint.com/stripe-minions-architecture-explained/">Every Minion execution runs in isolated VMs</a> with no internet or production access. The system has submission authority but not merge authority&#8212;all changes require human review.</p><h3>GitLab&#8217;s Intelligent Orchestration</h3><p><a href="https://about.gitlab.com/blog/agentic-sdlc-gitlab-and-tcs-deliver-intelligent-orchestration-across-the-enterprise/">GitLab&#8217;s Duo Agent Platform treats agents as durable actors</a> that plan, modify code, fix pipelines, and enforce security with traceability. Multiple AI agents handle parallel tasks&#8212;code generation, testing, CI/CD fixes&#8212;while developers maintain oversight through defined rules.</p><p><strong>Orchestration insight</strong>: <a href="https://docs.gitlab.com/user/duo_agent_platform/">GitLab positions itself as an AI orchestration plane</a> where humans and agents share delivery responsibility. The platform coordinates multi-agent workflows across the entire software lifecycle rather than providing isolated AI tools.</p><h3>Meta&#8217;s Hierarchical Agent Systems</h3><p><a href="https://engineering.fb.com/2026/03/17/developer-tools/ranking-engineer-agent-rea-autonomous-ai-system-accelerating-meta-ads-ranking-innovation/">Meta&#8217;s Ranking Engineer Agent (REA) demonstrates autonomous ML lifecycle management</a>. REA Planner and REA Executor components, supported by shared skill and knowledge systems, autonomously evolve ads ranking models at scale.</p><p><strong>Acquisition significance</strong>: <a href="https://venturebeat.com/orchestration/why-meta-bought-manus-and-what-it-means-for-your-enterprise-ai-agent">Meta&#8217;s $2B Manus acquisition</a> focused on orchestration infrastructure rather than foundation models. Manus&#8217;s achievement was engineering an execution layer enabling models to browse, code, manipulate files, and complete multi-step workflows autonomously.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!21xU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0980b901-da6a-408f-a4c7-2dd2188be40c_1024x663.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!21xU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0980b901-da6a-408f-a4c7-2dd2188be40c_1024x663.png 424w, https://substackcdn.com/image/fetch/$s_!21xU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0980b901-da6a-408f-a4c7-2dd2188be40c_1024x663.png 848w, https://substackcdn.com/image/fetch/$s_!21xU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0980b901-da6a-408f-a4c7-2dd2188be40c_1024x663.png 1272w, https://substackcdn.com/image/fetch/$s_!21xU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0980b901-da6a-408f-a4c7-2dd2188be40c_1024x663.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!21xU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0980b901-da6a-408f-a4c7-2dd2188be40c_1024x663.png" width="1024" height="663" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0980b901-da6a-408f-a4c7-2dd2188be40c_1024x663.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:663,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1147097,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/192741144?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef64881a-c7f7-4bab-8d8d-2393ee5bf8b0_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!21xU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0980b901-da6a-408f-a4c7-2dd2188be40c_1024x663.png 424w, https://substackcdn.com/image/fetch/$s_!21xU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0980b901-da6a-408f-a4c7-2dd2188be40c_1024x663.png 848w, https://substackcdn.com/image/fetch/$s_!21xU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0980b901-da6a-408f-a4c7-2dd2188be40c_1024x663.png 1272w, https://substackcdn.com/image/fetch/$s_!21xU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0980b901-da6a-408f-a4c7-2dd2188be40c_1024x663.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Architecture Implications</h2><h3>Beyond the Single-Agent Model</h3><p>The production examples reveal a consistent pattern: successful autonomous development requires <strong>hierarchical orchestration</strong> rather than monolithic AI assistants.</p><p><strong>Traditional approach</strong>: Human &#8594; Single Agent &#8594; Code<br><strong>Emerging pattern</strong>: Event &#8594; Orchestrator &#8594; Specialized Agents &#8594; Validation &#8594; Resolution</p><h3>Context Preservation at Scale</h3><p><a href="https://medium.com/@gveloper/using-iterm2s-built-in-integration-with-tmux-d5d0ef55ec30">The tmux paradigm</a> of persistent sessions maps directly to agent orchestration. Instead of recreating context for each interaction, systems maintain ongoing project understanding across multiple concurrent workflows.</p><p><strong>Implementation insight</strong>: <a href="https://iterm2.com/documentation-tmux-integration.html">iTerm2&#8217;s tmux integration (-CC mode)</a> provides the UI pattern for agent orchestration&#8212;persistent remote workspaces with native interface feel. The same architecture principles apply to agent coordination.</p><h2>Where This Leads</h2><h3>Non-Human Prime Orchestrators</h3><p>The logical endpoint isn&#8217;t humans managing multiple agents&#8212;it&#8217;s orchestrating systems that manage agent ecosystems. <a href="https://www.deloitte.com/us/en/insights/industry/technology/technology-media-and-telecom-predictions/2026/ai-agent-orchestration.html">According to Gartner&#8217;s 2025 Agentic AI research</a>, nearly 50% of surveyed vendors identified AI orchestration as their primary differentiator.</p><p><strong>Pattern emergence</strong>: Meta-agents or orchestrator-generalists will control specialized agents, assign tasks, interpret results, and revise goals in real-time. <a href="https://arxiv.org/pdf/2601.13671">Hierarchical orchestration becomes essential for enterprise-scale implementations</a>.</p><h3>The Developer Role Evolution</h3><p>Instead of managing 10 terminal sessions, a framework orchestrates autonomous workflows. Each workflow maintains its own context, responds to its own triggers, and escalates to human attention when required. Some of those will be human/experimentation/new development driven, the majority will be responding to the automated lifecycle.</p><p><strong>Skills that matter</strong>:</p><ul><li><p><strong>Workflow boundary definition</strong>: Which autonomous streams can operate independently?</p></li><li><p><strong>Escalation criteria design</strong>: When do workflows require human intervention?</p></li><li><p><strong>Cross-workflow dependency management</strong>: How do autonomous streams coordinate?</p></li><li><p><strong>Quality gate enforcement</strong>: What validation must occur before autonomous resolution?</p></li></ul><h2>Implementation Considerations</h2><p>Teams experimenting with orchestrated autonomous development should consider:</p><ol><li><p><strong>Event-driven architecture</strong>: Which existing workflows could trigger autonomous responses?</p></li><li><p><strong>Context preservation systems</strong>: How will agent workflows maintain project understanding?</p></li><li><p><strong>Isolation and security</strong>: What boundaries prevent autonomous agents from causing damage?</p></li><li><p><strong>Human oversight integration</strong>: Where do human validation points occur in autonomous workflows?</p></li><li><p><strong>Cross-workflow coordination</strong>: How do parallel autonomous streams avoid conflicts?</p></li></ol><p>The transition from 10-tab manual orchestration to autonomous lifecycle orchestration isn&#8217;t theoretical. Stripe, GitLab, and Meta demonstrate production implementations. The question becomes implementation timeline and organizational readiness.</p><p>Early adopters are discovering that the competitive advantage comes not from having the smartest individual AI agents, but from orchestrating networks of specialized agents that collaborate effectively at scale.</p><div><hr></div><p><em>Bob Matsuoka is CTO of <a href="https://www.duettocloud.com/">Duetto</a> and writes about AI-powered engineering at <a href="https://hyperdev.substack.com/">HyperDev</a>.</em></p><p><strong>Related reading:</strong></p><ul><li><p><a href="https://www.coddykit.com/pages/blog-detail?id=512757">Stripe&#8217;s Minions: Inside Their Enterprise AI Coding Agent Strategy</a> &#8212; Blueprint orchestration architecture and production metrics</p></li><li><p><a href="https://docs.gitlab.com/user/duo_agent_platform/">GitLab Duo Agent Platform</a> &#8212; Intelligent orchestration across software lifecycle</p></li><li><p><a href="https://www.heyuan110.com/posts/ai/2026-03-03-tmux-guide-ai-development/">Tmux Complete Guide: AI-Powered Multi-Agent Workflows</a> &#8212; Terminal multiplexing for autonomous development</p></li><li><p><a href="https://aipowerranking.com/">AI Power Ranking</a> &#8212; Tool comparisons and benchmarks for AI practitioners</p></li><li><p><a href="https://www.linkedin.com/newsletters/ai-power-ranking-7345782916301418496/">LinkedIn Newsletter</a> &#8212; Strategic AI insights for CTOs and engineering leaders</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Is This The Era of the Connector?]]></title><description><![CDATA[Go To Where The People Are]]></description><link>https://hyperdev.matsuoka.com/p/is-this-the-era-of-the-connector</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/is-this-the-era-of-the-connector</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Thu, 26 Mar 2026 12:32:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!p4t8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F908c25b0-f6df-4b53-bc8c-0984c5c409df_1024x819.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!p4t8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F908c25b0-f6df-4b53-bc8c-0984c5c409df_1024x819.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p4t8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F908c25b0-f6df-4b53-bc8c-0984c5c409df_1024x819.png 424w, https://substackcdn.com/image/fetch/$s_!p4t8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F908c25b0-f6df-4b53-bc8c-0984c5c409df_1024x819.png 848w, https://substackcdn.com/image/fetch/$s_!p4t8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F908c25b0-f6df-4b53-bc8c-0984c5c409df_1024x819.png 1272w, https://substackcdn.com/image/fetch/$s_!p4t8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F908c25b0-f6df-4b53-bc8c-0984c5c409df_1024x819.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p4t8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F908c25b0-f6df-4b53-bc8c-0984c5c409df_1024x819.png" width="1024" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/908c25b0-f6df-4b53-bc8c-0984c5c409df_1024x819.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1414425,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/192036152?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d13406-f339-4790-b5f2-7117dd24336e_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!p4t8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F908c25b0-f6df-4b53-bc8c-0984c5c409df_1024x819.png 424w, https://substackcdn.com/image/fetch/$s_!p4t8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F908c25b0-f6df-4b53-bc8c-0984c5c409df_1024x819.png 848w, https://substackcdn.com/image/fetch/$s_!p4t8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F908c25b0-f6df-4b53-bc8c-0984c5c409df_1024x819.png 1272w, https://substackcdn.com/image/fetch/$s_!p4t8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F908c25b0-f6df-4b53-bc8c-0984c5c409df_1024x819.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>TL;DR</h2><ul><li><p>Users consolidate around 4 core platforms (Slack, Notion, Email+Office, AI Tool) while rejecting standalone/SASS tools</p></li><li><p>Connectors that bring data to users beat new tools that require visits</p></li><li><p>Infrastructure breakthrough: Slack manifests + MCP protocol + LLM services make org-specific connectors trivial</p></li><li><p>Democratization effect: Bootcamp engineers can now build sophisticated integrations that once required senior developers</p></li><li><p>Production evidence: 3 connectors (4-6 hours each, $1-2.5K in AI tokens) replaced 5-6 standalone tools that would cost $150-300K+ traditionally</p></li><li><p>Tolerance for &#8220;broad-based general tools&#8221; declining &#8212; UX mindshare captures traffic even when APIs do the work</p></li></ul><div><hr></div><p>In the past two weeks, I&#8217;ve built three connectors that collectively replaced what would have been five or six standalone tools.</p><p><strong>Engineering Search Connector</strong>: Hosted semantic and knowledge graph search service built by repurposing mcp-vector-search. Unified search across 150+ GitHub repos, 1,700+ wiki pages, and ticket systems. Accessible through Slack bot, web interface, CLI, and MCP connector for Claude.AI that brings engineering knowledge to where people already work.</p><p><strong>CRM Data Connector</strong>: Live customer data piped directly into Claude.AI sessions via MCP. No dashboard to check, no reports to generate. Ask &#8220;What&#8217;s our pipeline this quarter?&#8221; and get live data in 1-3 seconds.</p><p><strong>Document Workflow Connector</strong>: Artifact browser and guided PR workflow for non-technical contributors. Product managers can explore and propose changes to structured docs without touching git or learning new interfaces.</p><p>None of these required users to adopt a new primary tool. Each brings specialized functionality to platforms they already inhabit daily. And each took roughly 4-6 hours to build (plus agent time).</p><p>This isn&#8217;t a productivity humble-brag. It&#8217;s evidence of a fundamental shift in how organizations interact with their data. We&#8217;re entering the connector era &#8212; building bridges between specialized intelligence and the handful of platforms where users actually live, rather than standalone applications they have to visit.</p><p>The numbers support this pattern. Users toggle between apps 1,200 times daily, losing 40% productivity to context switching. Connector ecosystems are exploding: Slack&#8217;s marketplace hosts 2,600+ apps with 550K+ daily custom integrations. The MCP protocol went from 100K to 8M downloads in six months &#8212; unprecedented adoption for plumbing infrastructure.</p><p>The question isn&#8217;t whether Slack, Notion, and Claude.AI will survive the AI wave. It&#8217;s whether the hundreds of specialized tools competing for attention understand that the game has changed. Users have less tolerance for broad-based general tools than they once did. The platforms that capture UX mindshare will get most of the traffic, even if APIs and agents do the actual work behind the scenes.</p><p>The evidence is clear from user behavior: they don&#8217;t want to learn a new search interface, remember another login, or context-switch to yet another tab. They want the intelligence layer to meet them where they already are.</p><h2>The Source of Truth Problem</h2><p>Most organizations have a source-of-truth problem they haven&#8217;t fully articulated. They have Slack for real-time communication. They have Notion or Confluence for documentation. They have Google Docs for drafts that become documents that become outdated that stay around anyway. They have JIRA for tickets that may or may not reflect what was actually decided. They call this a &#8220;knowledge management system.&#8221; It&#8217;s more accurately a distributed archive of partially-intentional artifacts with no clear authority hierarchy.</p><p>The question &#8220;who owns this decision?&#8221; leads to a Slack thread from eight months ago, a Notion page that three people edited and nobody is certain is current, and a Google Doc someone linked in a comment that requires permission to access. This is the status quo. It functions, after a fashion, because humans are good at triangulating across ambiguous sources and asking colleagues to fill gaps.</p><p>AI agents are not good at this. They will confidently synthesize the eight-month-old Slack thread with the outdated Notion page and present the result as a coherent answer. The errors won&#8217;t be obvious. They&#8217;ll be subtly wrong in ways that require domain expertise to catch.</p><p>The source of truth problem was always real. It was manageable when every query ran through a human brain. It becomes actively dangerous when queries run through an inference layer first.</p><p>What you actually need &#8212; what organizations are starting to build &#8212; is a repository where the data structure enforces truth. Not a place where the right answer might be findable if you look hard enough. A place where the structure of the data makes the wrong answer harder to produce.</p><p>But here&#8217;s the connector insight: that structured repository doesn&#8217;t need to be where users spend their time. It can be the authoritative backend that feeds connectors in the platforms users already inhabit.</p><h2>Where Users Actually Live</h2><p>User attention has consolidated around four core platforms:</p><p><strong>Slack</strong>: Real-time coordination, team presence, ephemeral decisions. 32.3 million daily active users with 550K+ custom integrations daily.</p><p><strong>Email + Office Suite</strong>: Formal communication, document collaboration, external stakeholder interface. Microsoft reports 400M+ Office 365 commercial users.</p><p><strong>Notion</strong>: Knowledge management, project tracking, collaborative documentation. 100M+ users consolidating entire productivity stacks.</p><p><strong>Claude.AI</strong>: AI assistance, analysis, content generation. Rapidly becoming the default interface for LLM interactions across knowledge work.</p><p>Each platform serves a legitimate core function. Tool builders make the mistake of assuming they can compete for primary platform status by building something better. Users are done adopting new primary platforms. They&#8217;re consolidating around tools that already have their attention.</p><p>The pattern reveals a deeper truth: people live in transactional systems, not knowledge systems. Slack is where decisions happen. Email is where approvals flow. Claude.AI is where analysis gets done. These are transactional - work happens there daily.</p><p>Confluence is a perfectly good wiki tool. But it&#8217;s knowledge-at-rest, not transactional. People don&#8217;t live there. They visit when forced to document something, then return to their transactional workflows. The knowledge gets stale because maintenance happens in a different system than usage. (Notion manages to straddle the line between knowledge at rest and transactional)</p><p>Integration platforms like Zapier understand this - they connect 8,000+ apps with 3.4M+ business users by bringing specialized functionality to existing workflows rather than creating new destinations.</p><p>Users just want the data, dammit. They don&#8217;t want to learn your interface.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!prOp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba561016-ed0c-4147-9623-63f9996b9b13_1024x806.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!prOp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba561016-ed0c-4147-9623-63f9996b9b13_1024x806.png 424w, https://substackcdn.com/image/fetch/$s_!prOp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba561016-ed0c-4147-9623-63f9996b9b13_1024x806.png 848w, https://substackcdn.com/image/fetch/$s_!prOp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba561016-ed0c-4147-9623-63f9996b9b13_1024x806.png 1272w, https://substackcdn.com/image/fetch/$s_!prOp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba561016-ed0c-4147-9623-63f9996b9b13_1024x806.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!prOp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba561016-ed0c-4147-9623-63f9996b9b13_1024x806.png" width="1024" height="806" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba561016-ed0c-4147-9623-63f9996b9b13_1024x806.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:806,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1186021,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/192036152?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3416bd4-5246-41d4-9f66-0351982baeb1_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!prOp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba561016-ed0c-4147-9623-63f9996b9b13_1024x806.png 424w, https://substackcdn.com/image/fetch/$s_!prOp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba561016-ed0c-4147-9623-63f9996b9b13_1024x806.png 848w, https://substackcdn.com/image/fetch/$s_!prOp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba561016-ed0c-4147-9623-63f9996b9b13_1024x806.png 1272w, https://substackcdn.com/image/fetch/$s_!prOp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba561016-ed0c-4147-9623-63f9996b9b13_1024x806.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Connector Infrastructure Moment</h2><p>What changed? Three pieces of infrastructure matured simultaneously:</p><p><strong>Slack Manifest Tool</strong> makes organization-specific bots trivial to build. The manifest.yaml format standardizes permissions, scopes, and deployment. Weeks of OAuth wrestling became hours of configuration.</p><p><strong>MCP Protocol</strong> achieved &#8220;USB-C for AI&#8221; universal connectivity. Claude.AI, ChatGPT, and dozens of platforms support the same connector format. Build once, deploy everywhere. The 100K to 8M download growth in six months reflects pent-up demand.</p><p><strong>LLM Services</strong> like Bedrock and OpenRouter provide natural language interfaces that make connectors intelligent rather than just data pipes. Ask questions in plain English, get structured responses, maintain conversation context.</p><p><strong>Semantic Search Infrastructure</strong> like mcp-vector-search can be repurposed as hosted services, adding intelligence layers that understand meaning rather than just matching keywords. This transforms basic data access into contextual knowledge retrieval &#8212; a crucial enabler for connectors that need to surface relevant information rather than exact matches.</p><p>Combined, you can build a production connector in a single afternoon. Slack manifest defines the bot interface. MCP schema defines the data sources. Semantic search handles intelligent retrieval. Bedrock provides the language understanding. Deploy to AWS Lambda and you&#8217;re live.</p><p>My three connectors follow this exact pattern. The engineering search connector repurposes mcp-vector-search as a hosted service with all-MiniLM-L6-v2 embeddings for semantic and knowledge graph search, but the user interface is just Slack commands and Claude.AI MCP tools. The CRM data connector is a headless AWS service that makes customer data available through natural language queries in Claude.AI. The document workflow connector provides git workflows through a web UI that non-technical users can navigate.</p><p>Each connector took 4-6 hours to build. Each would have taken 4-6 months to build as a standalone application with user management, authentication, interface design, mobile responsiveness, and all the infrastructure a &#8220;real app&#8221; requires.</p><p><strong>The Democratization Effect</strong>: The infrastructure shift goes beyond development speed &#8212; it&#8217;s democratizing who can build sophisticated integrations. What once required senior engineers with deep API knowledge can now be handled by bootcamp graduates following established patterns. I built these first three connectors to validate the approach, but similar projects will go to junior engineers going forward.</p><p>This changes resource allocation fundamentally. Organizations can solve integration problems without burning senior engineering cycles on &#8220;plumbing&#8221; work. Information that was once very hard to obtain is now trivial to access.</p><p>The economics are compelling. Building three production connectors cost roughly $1,000-2,500 in AI tokens over 44 days. Traditional contractor development for equivalent functionality would have run $150-300K+. The connector approach isn&#8217;t just faster &#8212; it&#8217;s 100x more cost-effective.</p><p>The adoption metrics prove the value. The CRM connector launched March 18th with 23 invocations on day one. No formal rollout, no training sessions, no onboarding docs. Just organic discovery across a 300+ person company. By week two, daily usage tripled to 95 invocations per day. Tuesday hit 152 invocations &#8212; including a 40-query analysis session in a single hour. That&#8217;s 299 queries in 7 days with zero errors, from a connector that took 4-6 hours to build.</p><p>The era isn&#8217;t about choosing between platforms. It&#8217;s about connecting specialized intelligence to the platforms users have already chosen.</p><h2>Why Wikis Can&#8217;t Compete in the Connector World</h2><p>Traditional knowledge management tools face a structural mismatch in connector architecture. Wikis assume users will &#8220;go to the tool&#8221; for information. Connectors flip that assumption: the tool comes to the user.</p><p>This creates specific problems:</p><p><strong>The Authoring/Retrieval Tension</strong>: Wikis optimize for collaborative authoring &#8212; anybody can edit, flexible structure, link everything, evolve over time. This is the opposite of what retrieval needs: consistent schema, clear ownership, explicit governance. When you pipe wiki content through a connector, you inherit all the inconsistencies that collaborative authoring creates.</p><p><strong>Search Architecture Limitations</strong>: Confluence&#8217;s search is notoriously bad because it does keyword matching on unstructured text. This was problematic before LLMs. With LLM-powered connectors, it becomes worse because the AI layer adds confidence to bad retrieval results. Users get wrong answers delivered with conviction.</p><p><strong>Static Data Problem</strong>: Notion&#8217;s AI operates on static content snapshots, disconnected from real-time operational state. When CRM connectors query &#8220;What&#8217;s our pipeline this quarter?&#8221; through a Notion connector, it&#8217;s answering based on what someone wrote about the pipeline, not live customer data. The connector amplifies the staleness problem.</p><p><strong>Governance at Scale</strong>: Wiki governance defaults to &#8220;community-maintained,&#8221; which means in practice nobody is responsible for accuracy. As organizations scale, wikis accumulate pages nobody knows are outdated. Connectors don&#8217;t solve this &#8212; they accelerate the distribution of stale information.</p><p>Our structured document framework represents the alternative: git-backed Markdown with schema-validated YAML frontmatter. Every document has explicit metadata: owner, status, domain, confidence, time_box. The structure is the feature. When document workflow connectors expose this, the schema ensures consistent data quality regardless of interface.</p><p>Structured document repositories outperform wikis for AI query by 35-60% in controlled tests. Clean Markdown with explicit metadata reduces token usage by 20-30% and improves retrieval accuracy significantly. This isn&#8217;t philosophical &#8212; it&#8217;s measurable.</p><p>Wikis remain useful for collaborative drafting and evolving reference material. But they&#8217;re not the right backend for connector architecture. The connector era requires structured data sources that can maintain quality across multiple interface layers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NjzV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F879cc371-1f68-486d-8602-c68b47411a94_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NjzV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F879cc371-1f68-486d-8602-c68b47411a94_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!NjzV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F879cc371-1f68-486d-8602-c68b47411a94_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!NjzV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F879cc371-1f68-486d-8602-c68b47411a94_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!NjzV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F879cc371-1f68-486d-8602-c68b47411a94_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NjzV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F879cc371-1f68-486d-8602-c68b47411a94_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/879cc371-1f68-486d-8602-c68b47411a94_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1015968,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/192036152?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F879cc371-1f68-486d-8602-c68b47411a94_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!NjzV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F879cc371-1f68-486d-8602-c68b47411a94_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!NjzV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F879cc371-1f68-486d-8602-c68b47411a94_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!NjzV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F879cc371-1f68-486d-8602-c68b47411a94_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!NjzV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F879cc371-1f68-486d-8602-c68b47411a94_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Building Connectors vs. Standalone Tools</h2><p>The strategic choice organizations face isn&#8217;t &#8220;which tool should we build?&#8221; but &#8220;should we build a tool or a connector?&#8221; My experience with three connectors illuminates the trade-offs:</p><p><strong>Engineering search</strong> could have been a standalone search platform. Instead, it&#8217;s accessible through Slack commands, CLI tools, web interface for visualizations, and MCP tools for Claude.AI sessions. Same search capability, four different interaction models depending on user context.</p><p><strong>CRM integration</strong> could have been a dashboard with charts and filters. Instead, it&#8217;s a headless MCP service that makes customer data available through natural language in Claude.AI. Ask &#8220;Show me deals over $100K in our target vertical&#8221; and get live results in 1-3 seconds. No dashboard to learn, no visual interface to maintain.</p><p><strong>Document workflows</strong> could have been a product management SaaS platform. Instead, it&#8217;s a guided workflow that helps non-technical contributors interact with existing git-backed document frameworks. Browse artifacts, generate AI summaries, submit PRs &#8212; all through interfaces that match users&#8217; technical comfort levels.</p><p>Specialized intelligence delivered through platforms users already inhabit. The connector approach wins on several fronts.</p><p>Development time: 4-6 hours vs. months. No user management, authentication, responsive design, or mobile apps to build.</p><p>Adoption friction: Zero onboarding. No new logins, training sessions, or change management overhead.</p><p>Maintenance burden: Focus on data logic and intelligence, not interface maintenance across device types and browser versions.</p><p>Integration: Connectors compose naturally with existing workflows. Slack discussions can include live Salesforce data. Claude.AI analysis can pull from engineering knowledge graphs. Standalone tools require export/import workflows.</p><p>The business case is compelling: connector development costs 10-20% of standalone application development while achieving 3-4x higher user engagement.</p><p>The implications go beyond development efficiency. Users have less tolerance for &#8220;broad-based general tools&#8221; than they once did. Managing dozens of application contexts creates unsustainable cognitive load. Platforms that capture daily attention get most of the traffic, even when APIs and agents do the computational work behind the scenes.</p><p>This creates different winner-take-all dynamics. The winners aren&#8217;t necessarily the best tools. They&#8217;re the platforms users choose to inhabit, plus the connectors that bring specialized capability to those platforms.</p><h2>What This Means for Your Stack</h2><p>The connector era doesn&#8217;t eliminate existing tools &#8212; it clarifies their appropriate roles and challenges their assumptions about user attention.</p><p><strong>Slack keeps its coordination function</strong>: Real-time presence, threading, ephemeral decisions. But it becomes a command interface for structured data sources rather than a knowledge repository itself.</p><p><strong>Notion retains collaborative authoring value</strong>: Drafting, evolving documentation, reference material. But it stops being the &#8220;source of truth&#8221; for operational decisions. That role shifts to structured backends accessible through Notion connectors.</p><p><strong>Specialized tools survive by becoming intelligent backends</strong>: Your CRM, your monitoring system, your code repositories &#8212; these maintain their core data authority. But user interaction shifts to connector layers in platforms where users already work.</p><p>The question to ask about any tool: Is this where I want an AI agent pointing when it needs authoritative information? If the answer is no, it&#8217;s not your source of truth. It might still be valuable &#8212; as a backend, as a collaborative space, as a specialized interface for expert users. But it doesn&#8217;t earn the designation of &#8220;primary platform.&#8221;</p><p><strong>The organizational challenge</strong>: Getting non-technical teams comfortable with structured data workflows is real change management. Document workflow connectors address this by providing guided interfaces for git-backed workflows. But someone still needs to own schema design and governance processes.</p><p><strong>Who should build connectors first</strong>: Engineering-adjacent teams with strong PM-engineering collaboration. Organizations where AI hallucination on operational decisions creates measurable cost. Companies that have already felt the pain of distributed knowledge management.</p><p><strong>Timing matters</strong>: Most organizations haven&#8217;t built connector strategies yet. Companies that establish structured knowledge backends with connector frontends in 2026 will have 12-18 months of advantage when AI-mediated query becomes standard practice.</p><p>The connector era isn&#8217;t about choosing between platforms. It&#8217;s about connecting intelligent backends to platforms users have already chosen. Organizations that get this right will operate with less context switching and faster access to operational data.</p><p>Users just want the data, dammit. The question is: will you bring it to them, or keep expecting them to come to you?</p><div><hr></div><p><em>Bob Matsuoka is CTO of <a href="https://www.duettocloud.com/">Duetto</a> and writes about AI-powered engineering at <a href="https://hyperdev.substack.com/">HyperDev</a>.</em></p><p><strong>Related reading:</strong></p><ul><li><p><a href="https://aipowerranking.com/">AI Power Ranking</a> &#8212; Tool comparisons and benchmarks for AI practitioners</p></li><li><p><a href="https://www.linkedin.com/newsletters/ai-power-ranking-7345782916301418496/">LinkedIn Newsletter</a> &#8212; Strategic AI insights for CTOs and engineering leaders</p></li></ul>]]></content:encoded></item><item><title><![CDATA[One Year of HyperDev]]></title><description><![CDATA[From Skeptic (back) to CTO]]></description><link>https://hyperdev.matsuoka.com/p/one-year-of-hyperdev</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/one-year-of-hyperdev</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Fri, 20 Mar 2026 12:31:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nSwX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2767f452-9347-4e6e-9bb5-34a5d4417dca_1024x581.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nSwX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2767f452-9347-4e6e-9bb5-34a5d4417dca_1024x581.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nSwX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2767f452-9347-4e6e-9bb5-34a5d4417dca_1024x581.png 424w, https://substackcdn.com/image/fetch/$s_!nSwX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2767f452-9347-4e6e-9bb5-34a5d4417dca_1024x581.png 848w, https://substackcdn.com/image/fetch/$s_!nSwX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2767f452-9347-4e6e-9bb5-34a5d4417dca_1024x581.png 1272w, https://substackcdn.com/image/fetch/$s_!nSwX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2767f452-9347-4e6e-9bb5-34a5d4417dca_1024x581.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nSwX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2767f452-9347-4e6e-9bb5-34a5d4417dca_1024x581.png" width="1024" height="581" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2767f452-9347-4e6e-9bb5-34a5d4417dca_1024x581.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:581,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1344053,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/191547847?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F936fa04c-e4d5-42fd-8433-eedd0d54fa22_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nSwX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2767f452-9347-4e6e-9bb5-34a5d4417dca_1024x581.png 424w, https://substackcdn.com/image/fetch/$s_!nSwX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2767f452-9347-4e6e-9bb5-34a5d4417dca_1024x581.png 848w, https://substackcdn.com/image/fetch/$s_!nSwX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2767f452-9347-4e6e-9bb5-34a5d4417dca_1024x581.png 1272w, https://substackcdn.com/image/fetch/$s_!nSwX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2767f452-9347-4e6e-9bb5-34a5d4417dca_1024x581.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>A retrospective on building in public during the great AI coding transformation</em></figcaption></figure></div><p>One year ago, &#8220;<a href="https://hyperdev.matsuoka.com/p/50-first-dates-with-claude-code">50 First Dates with Claude Code</a>&#8220; took me several hours to write with Joanie&#8217;s help in Google Docs. This morning, I drafted two comprehensive Anthropic articles using <a href="https://github.com/bobmatnyc/claude-mpm">claude-mpm</a> agents in 45 minutes - research, generation, editing, the works.</p><p>That evolution mirrors exactly what happened across the entire AI coding industry this year (and the ascension of Claude Code, which was released shortly before I began my journey). I wasn&#8217;t just writing about the transformation. I was living it.</p><h2>The Journey: From Accident to Infrastructure</h2><p>HyperDev started by accident. In March 2025, I posted a <a href="https://www.linkedin.com/pulse/fear-loathing-hyperdev-land-ai-coding-experiment-robert-matsuoka-xis4c/">LinkedIn experiment</a> about spending 12 hours building a travel planning app with AI tools. I was a technology executive who &#8220;hadn&#8217;t coded seriously in 20 years&#8221; testing whether the productivity claims were real or hype.</p><p>The response was immediate and intense. Richard Wang left a prescient comment: &#8220;&#8217;AI allows a non-engineer to build a product without coding&#8217; is hype... &#8216;AI can improve a developer&#8217;s productivity by 10x&#8217; is true.&#8221; That experiment generated 4,000 lines of AI code in a single session and launched what became 168 articles over nine months.</p><p>April through June was chaos. I built claude-multiagent-pm, a prototype that worked well enough to be exciting and poorly enough to be frustrating. Token costs were obscene - every subprocess inherited the entire conversation context. I shipped 44 repositories. Probably a third represent false starts or abandoned approaches.</p><p>But that&#8217;s what I was learning: what not to build. Which constraints matter. Where the sharp edges live. The breakthrough insight from this period: <strong>Infrastructure beats features</strong>. The tools that demo well (flashy autocomplete, pretty interfaces) weren&#8217;t the ones that sustained daily use. The protocols, memory systems, and context management layers were what made sustained multi-agent work possible.</p><h2>The Breakthrough: When Everything Changed</h2><p>Mid-July 2025, Claude Code shipped context filtering. Sounds like a minor technical detail. It changed everything.</p><p>Before: my prototype burned tokens like a furnace and required constant babysitting.<br>After: I rebuilt everything. claude-mpm emerged with 1,545 commits over the rest of the year.</p><p>I remember the specific moment it hit me: I&#8217;d just pushed a feature that I would never have taken on without a team. Four hours of engaged time, a few days of agentic time. Twenty years away from serious coding. Four months back. Contributing production code for paying clients.</p><p>The tools weren&#8217;t just making me more productive. They were making me more <em>ambitious</em>. I was taking on problems that required sustained, complex thinking because I had AI teammates that could handle the execution details while I focused on architecture and strategy.</p><p>This is when my perspective shifted from &#8220;AI coding tools are interesting&#8221; to &#8220;AI coding tools are transformative.&#8221; Not because they eliminated the need for programming knowledge, but because they amplified existing knowledge into production-quality artifacts.</p><p>The writing and building formed a virtuous cycle. I documented what I learned building tools. The documentation attracted practitioners who used the tools. Their feedback improved the tools. claude-mpm gained 30+ stars and daily use across six months of client work. These weren&#8217;t GitHub tourism projects - they were tools that other practitioners adopted because they solved real problems I&#8217;d discovered through real use.</p><h2>The Evidence: Predictions and Numbers</h2><p>Looking back through a year of articles, my prediction accuracy was surprisingly good.</p><p><strong>What I got right:</strong></p><ul><li><p><strong>Multi-agent orchestration</strong> would prove superior to monolithic assistants (claude-mpm&#8217;s adoption validated this)</p></li><li><p><strong>Infrastructure over features</strong> as the determining factor for tool longevity (memory systems outlasted flashy demos)</p></li><li><p><strong>CLI-agentic coding going mainstream</strong> (Claude Code&#8217;s 46% &#8220;most loved&#8221; rating proved the thesis)</p></li><li><p><strong>Pricing correction timing</strong> (18-24 months from October 2025 - signals are clear at six months)</p></li></ul><p><strong>What surprised even me:</strong></p><ul><li><p><strong>Speed of Claude Code&#8217;s dominance</strong> (faster than even advocates expected)</p></li><li><p><strong>Writing-building credibility loop</strong> (thought leadership through shipping, not just analysis)</p></li></ul><p>The quantified impact tells its own story:</p><ul><li><p><strong>4,919 commits</strong> in nine months of sustained development</p></li><li><p><strong>69.7 billion tokens</strong> processed across all tools and projects</p></li><li><p><strong>198 articles</strong> published (3.2/week sustained)</p></li><li><p><strong>547 production deployments</strong> across client and personal projects</p></li><li><p><strong>$45,000</strong> in AI compute at rack rates (subsidized to $8,000)</p></li></ul><p>But the qualitative transformation matters more. I evolved from asking &#8220;Is this real?&#8221; to asking &#8220;How do we scale this organizationally?&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!12oI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9826b0d-2c86-424a-93e7-4fdcace62d9e_1024x688.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!12oI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9826b0d-2c86-424a-93e7-4fdcace62d9e_1024x688.png 424w, https://substackcdn.com/image/fetch/$s_!12oI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9826b0d-2c86-424a-93e7-4fdcace62d9e_1024x688.png 848w, https://substackcdn.com/image/fetch/$s_!12oI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9826b0d-2c86-424a-93e7-4fdcace62d9e_1024x688.png 1272w, https://substackcdn.com/image/fetch/$s_!12oI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9826b0d-2c86-424a-93e7-4fdcace62d9e_1024x688.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!12oI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9826b0d-2c86-424a-93e7-4fdcace62d9e_1024x688.png" width="1024" height="688" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f9826b0d-2c86-424a-93e7-4fdcace62d9e_1024x688.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:688,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1328689,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/191547847?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00be159e-43fc-4e28-b2cc-cd184f828341_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!12oI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9826b0d-2c86-424a-93e7-4fdcace62d9e_1024x688.png 424w, https://substackcdn.com/image/fetch/$s_!12oI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9826b0d-2c86-424a-93e7-4fdcace62d9e_1024x688.png 848w, https://substackcdn.com/image/fetch/$s_!12oI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9826b0d-2c86-424a-93e7-4fdcace62d9e_1024x688.png 1272w, https://substackcdn.com/image/fetch/$s_!12oI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9826b0d-2c86-424a-93e7-4fdcace62d9e_1024x688.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Transformation: From Observer to Practitioner to Leader</h2><p>The most significant development was personal: in January 2026, I joined <a href="https://www.duettocloud.com">Duetto</a> as CTO.</p><p>This wasn&#8217;t a career change - it was an expansion. Twenty-five years of technology leadership combined with eight months of hands-on AI development created a unique perspective. I wasn&#8217;t returning to technology leadership despite the AI work. I was taking the role <em>because</em> of it.</p><p>What changed wasn&#8217;t my capabilities - I&#8217;ve been leading technology teams for decades. What changed was having AI as a force multiplier that converted that knowledge into actual artifacts. I could prototype entire systems, validate approaches, and demonstrate concepts that previously would have required dedicated engineering resources.</p><p>The leadership experience informed architectural decisions. The practitioner activity created credibility. The writing documented both. Now I get to test everything I&#8217;ve been writing about at enterprise scale.</p><h2>The Reality Check: Both/And, Not Either/Or</h2><p>October 2025, I published &#8220;<a href="https://hyperdev.substack.com/p/is-ai-a-bubble-i-didnt-think-so">Is AI A Bubble? I Didn&#8217;t Think So Until I Heard Of SDD</a>.&#8221; The piece synthesized something I&#8217;d been wrestling with: how can genuine transformation and bubble dynamics exist simultaneously?</p><p>The answer: they can. And do.</p><p>The AI coding revolution is real. The bubble dynamics are also real. Codeium at 70x ARR multiples (vs dot-com peak of 18x) while providing genuine value to practitioners. My $45,000 in AI compute costs exemplified both the unsustainable economics and the genuine value creation. The 82% subsidy rate can&#8217;t last, but the ROI still works at full rates for sustained professional use.</p><p>Companies with product-market fit and operational discipline will survive the correction. Those burning capital on &#8220;technical potential&#8221; without user adoption won&#8217;t. The technology remains transformative even if the valuations prove unsustainable.</p><h2>What&#8217;s Next: From Individual Productivity to Organizational Transformation</h2><p>The industry is transitioning from individual productivity tools to enterprise transformation frameworks. The early adopters who mastered AI-assisted development workflows now face a different challenge: scaling those practices across entire engineering organizations.</p><p>The questions have evolved:</p><ul><li><p><strong>Year 1</strong>: &#8220;Can AI tools make me more productive?&#8221;</p></li><li><p><strong>Year 2</strong>: &#8220;How do we maintain code quality and security with AI-generated code?&#8221;</p></li><li><p><strong>Year 3</strong>: &#8220;How do we transform hiring, onboarding, and career development when AI changes what programming means?&#8221;</p></li></ul><p>At Duetto, I&#8217;m working on these questions at scale. How do you migrate an enterprise engineering team from traditional development practices to AI-assisted workflows while maintaining operational excellence? How do you balance productivity gains with governance requirements? How do you rethink technical leadership when junior developers can ship senior-quality code with AI assistance?</p><p>These are the infrastructure problems that matter now. Not the tools themselves, but the organizational systems that make the tools effective at scale.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rmcT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed789576-b3b5-4bb1-9911-2ca41a638f82_763x208.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rmcT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed789576-b3b5-4bb1-9911-2ca41a638f82_763x208.png 424w, https://substackcdn.com/image/fetch/$s_!rmcT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed789576-b3b5-4bb1-9911-2ca41a638f82_763x208.png 848w, https://substackcdn.com/image/fetch/$s_!rmcT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed789576-b3b5-4bb1-9911-2ca41a638f82_763x208.png 1272w, https://substackcdn.com/image/fetch/$s_!rmcT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed789576-b3b5-4bb1-9911-2ca41a638f82_763x208.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rmcT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed789576-b3b5-4bb1-9911-2ca41a638f82_763x208.png" width="763" height="208" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ed789576-b3b5-4bb1-9911-2ca41a638f82_763x208.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:208,&quot;width&quot;:763,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26260,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/191547847?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed789576-b3b5-4bb1-9911-2ca41a638f82_763x208.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rmcT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed789576-b3b5-4bb1-9911-2ca41a638f82_763x208.png 424w, https://substackcdn.com/image/fetch/$s_!rmcT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed789576-b3b5-4bb1-9911-2ca41a638f82_763x208.png 848w, https://substackcdn.com/image/fetch/$s_!rmcT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed789576-b3b5-4bb1-9911-2ca41a638f82_763x208.png 1272w, https://substackcdn.com/image/fetch/$s_!rmcT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed789576-b3b5-4bb1-9911-2ca41a638f82_763x208.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">my &#8220;Green Wall&#8221;</figcaption></figure></div><h2>The Retrospective: What One Year Taught Me</h2><p>HyperDev became valuable because it documented the transformation in real-time, from the perspective of someone living it. Not retrospective analysis of what happened, but contemporary documentation of what was happening.</p><p>The key insights:</p><p><strong>Timing matters.</strong> Starting documentation right at the inflection point captured both the chaos and the consolidation. Personal journey paralleled industry maturation.</p><p><strong>Practitioner perspective beats observer perspective.</strong> Direct experience with the tools, including their limitations and sharp edges, generated insights that pure analysis couldn&#8217;t match.</p><p><strong>Building creates credibility.</strong> Shipping tools that other practitioners adopt generates more authority than analytical commentary alone.</p><p><strong>Writing and building amplify each other.</strong> Documentation of practice creates thought leadership. Thought leadership creates opportunities. Opportunities create more practice to document.</p><p>One year ago, I was asking whether AI coding tools were genuinely transformative or just sophisticated autocomplete. The answer: they&#8217;re genuinely transformative, but in ways that none of us fully anticipated. The transformation wasn&#8217;t about eliminating the need for programming knowledge. It was about amplifying existing knowledge into production-quality artifacts faster than previously possible.</p><p>Most importantly, the transformation was about enabling individual practitioners to think and build at organizational scale. That&#8217;s what I experienced personally. That&#8217;s what I documented in nearly 200 articles. And that&#8217;s what I&#8217;m now implementing at enterprise scale.</p><p>HyperDev year one was about learning what was possible. Year two is about making it practical. Year three might be about making it inevitable.</p><p>The tools keep getting better. The workflows keep evolving. The organizational challenges keep getting more complex.</p><p>And I&#8217;m still here, still building, still documenting, now leading, still learning.</p><p>What a year it&#8217;s been. What a year it&#8217;s going to be.</p><div><hr></div><p><em><a href="https://hyperdev.matsuoka.com">HyperDev</a> documents the real-world application of AI development tools by practitioners building production systems. For technical deep dives and business analysis of the tools behind this transformation, look for upcoming coverage of Claude Code&#8217;s competitive dominance.</em></p>]]></content:encoded></item><item><title><![CDATA[Everyone Blamed Clawd Bot’s Execution. The Concept Was the Problem.]]></title><description><![CDATA[Is A Personal Assistant Bot Really Helpful?]]></description><link>https://hyperdev.matsuoka.com/p/everyone-blamed-clawd-bots-execution</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/everyone-blamed-clawd-bots-execution</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Thu, 12 Mar 2026 11:32:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!51wj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F878e8350-5206-465d-9bf0-b600661c22ed_1024x774.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!51wj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F878e8350-5206-465d-9bf0-b600661c22ed_1024x774.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!51wj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F878e8350-5206-465d-9bf0-b600661c22ed_1024x774.png 424w, https://substackcdn.com/image/fetch/$s_!51wj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F878e8350-5206-465d-9bf0-b600661c22ed_1024x774.png 848w, https://substackcdn.com/image/fetch/$s_!51wj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F878e8350-5206-465d-9bf0-b600661c22ed_1024x774.png 1272w, https://substackcdn.com/image/fetch/$s_!51wj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F878e8350-5206-465d-9bf0-b600661c22ed_1024x774.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!51wj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F878e8350-5206-465d-9bf0-b600661c22ed_1024x774.png" width="1024" height="774" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/878e8350-5206-465d-9bf0-b600661c22ed_1024x774.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:774,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1722868,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/190672571?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb05bbe76-836e-475e-b360-793755bf1927_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!51wj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F878e8350-5206-465d-9bf0-b600661c22ed_1024x774.png 424w, https://substackcdn.com/image/fetch/$s_!51wj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F878e8350-5206-465d-9bf0-b600661c22ed_1024x774.png 848w, https://substackcdn.com/image/fetch/$s_!51wj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F878e8350-5206-465d-9bf0-b600661c22ed_1024x774.png 1272w, https://substackcdn.com/image/fetch/$s_!51wj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F878e8350-5206-465d-9bf0-b600661c22ed_1024x774.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The story everyone told about Clawd Bot missed the point entirely. Austrian developer Peter Steinberger built an open-source AI assistant that went viral &#8212; 145,000 GitHub stars, 2 million visitors in a week. Then Anthropic forced a trademark-based name change because &#8220;Clawd&#8221; was too similar to &#8220;Claude.&#8221; The community called it petty. DHH called Anthropic &#8220;customer hostile.&#8221; The irony: Clawd Bot users were actually buying more Claude subscriptions, providing free marketing to Anthropic, yet they still demanded the shutdown.</p><p>But everyone focused on the wrong drama. The trademark dispute was noise. The real problem was deeper: Clawd Bot was built because someone could, not because anyone needed it.</p><p>I tested Clawd Bot for about a week. The interface was clean, the onboarding smooth, the responses capable. But it required permissions I wouldn&#8217;t give to any tool &#8212; access to email, calendars, messaging, sensitive services. The execution had real problems. But even if those were fixed, it would still be solving the wrong problem.</p><p>Here&#8217;s where I should admit: I tried building a digital assistant, izzie, when I started experimenting with AI agents. I never got it to a point I found useful. Not because of technical limitations &#8212; because the entire concept of a universal assistant doesn&#8217;t match how work actually happens.</p><h2>TL;DR</h2><ul><li><p>Clawd Bot was successful open-source project by Peter Steinberger that Anthropic forced to rename; execution wasn&#8217;t the problem</p></li><li><p>The real question: when do you need an &#8220;assistant&#8221;? Most execs won&#8217;t trust AI scheduling; the value is intelligent data movement between services</p></li><li><p>Context switching is a symptom, not the root issue &#8212; the issue is what assistants should be doing at all</p></li><li><p>The product management sessions: Granola meeting notes, calendar checks, Slack updates, Notion sync &#8212; all from within one tool, data flowing intelligently between services</p></li><li><p>The commercial evidence: Cursor, Notion AI, Linear&#8217;s AI triage &#8212; the winners embedded AI in tools as infrastructure, not interface</p></li><li><p>trusty-izzie&#8217;s highest value isn&#8217;t the chat interface &#8212; it&#8217;s as a local MCP service exporting personal context to every other tool</p></li><li><p>The universal assistant category isn&#8217;t going to produce a winner. It&#8217;s going to dissolve.</p></li></ul><h2>What the Universal Assistant Model Gets Wrong (And It&#8217;s Not Just Execution)</h2><p>Clawd Bot had serious execution problems &#8212; it&#8217;s a security nightmare requiring broad permissions across email, calendars, messaging platforms, and sensitive services. You can&#8217;t ignore that. But even if the security issues were solved, universal assistants face a deeper structural problem: they assume people need an assistant in the traditional sense.</p><p>Walk through what even a well-executed version of the same product model looks like.</p><p>Smooth onboarding. Crystal-clear use cases. High-quality AI responses. Clean interface design. Users know exactly what to ask and how to ask it.</p><p>You still have to leave whatever you&#8217;re working on to use it. And when you do, the context you were carrying &#8212; the code you were reviewing, the initiative you were drafting, the design decision you were working through &#8212; is no longer present. You&#8217;ve moved somewhere that knows nothing about any of that.</p><p>So you explain. &#8220;I&#8217;m working on the &#8216;YYY&#8217; data ingestion initiative, and I need to check whether the points Mark raised in Tuesday&#8217;s meeting are addressed in the current design.&#8221; The assistant doesn&#8217;t know what &#8216;YYY&#8217; is. Doesn&#8217;t have Tuesday&#8217;s meeting. Doesn&#8217;t know Mark, the current design, or the organizational context that makes &#8220;addressed&#8221; mean something specific. You load all of it by hand.</p><p>In demos, this overhead is invisible. Demo tasks are self-contained by design &#8212; the context fits in a sentence or two. In practice, your working context isn&#8217;t self-contained. It&#8217;s weeks of accumulated decisions, relationships, dependencies, and constraints that live distributed across your tools. You can&#8217;t paste it into a chat window. You can&#8217;t even fully articulate it. It&#8217;s partially tacit, partially in documents, partially in the history of the tool you&#8217;re using.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!skTt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a50911a-4ef2-491e-8d2e-01234b0fec77_1024x641.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!skTt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a50911a-4ef2-491e-8d2e-01234b0fec77_1024x641.png 424w, https://substackcdn.com/image/fetch/$s_!skTt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a50911a-4ef2-491e-8d2e-01234b0fec77_1024x641.png 848w, https://substackcdn.com/image/fetch/$s_!skTt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a50911a-4ef2-491e-8d2e-01234b0fec77_1024x641.png 1272w, https://substackcdn.com/image/fetch/$s_!skTt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a50911a-4ef2-491e-8d2e-01234b0fec77_1024x641.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!skTt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a50911a-4ef2-491e-8d2e-01234b0fec77_1024x641.png" width="1024" height="641" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a50911a-4ef2-491e-8d2e-01234b0fec77_1024x641.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:641,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1522333,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/190672571?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92dde62-56c6-4fa2-ab9a-1147e8c99362_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!skTt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a50911a-4ef2-491e-8d2e-01234b0fec77_1024x641.png 424w, https://substackcdn.com/image/fetch/$s_!skTt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a50911a-4ef2-491e-8d2e-01234b0fec77_1024x641.png 848w, https://substackcdn.com/image/fetch/$s_!skTt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a50911a-4ef2-491e-8d2e-01234b0fec77_1024x641.png 1272w, https://substackcdn.com/image/fetch/$s_!skTt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a50911a-4ef2-491e-8d2e-01234b0fec77_1024x641.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Session That Clarified It</h2><p>A few weeks into the new role at Duetto, I was doing product management work in a <a href="https://github.com/bobmatnyc/claude-mpm">claude-mpm</a> session &#8212; reviewing open initiatives, managing the PR queue, creating proposals. Standard operational work for a new CTO getting oriented.</p><p>I wanted to add an infrastructure initiative. Cloud Dev Sleds &#8212; dedicated cloud development machines for the engineering team. The context was in a meeting I&#8217;d had the day before. In the old workflow, this would mean: switch to Granola, find the right meeting, read the transcript, extract the relevant points, switch back, and then write the initiative with that context now loaded in my head rather than in the tool.</p><p>Instead I just asked: &#8220;Review my meeting with Mark yesterday in Granola to get context. I want to create the initiative as a feasibility, cost, and LOE assessment.&#8221;</p><p>The tool pulled the notes. I created the initiative. The product context &#8212; what other infrastructure work was in flight, what the team structure looked like, what the related architectural decisions were &#8212; never left. The Granola content landed inside that context rather than requiring me to carry it manually between tools.</p><p>Same session: needed to check whether I had a conflict for an upcoming demo. Calendar check, without opening Google Calendar.</p><p>Same session: the team needed a status update. Posted directly to the engineering Slack channel, with proper <code>&lt;@USERID&gt;</code> mentions so people actually got notified. The message reflected the same initiatives I&#8217;d been working on all session &#8212; not because I copy-pasted anything, but because the tool already knew what was in flight.</p><p>Later: set up a Notion sync &#8212; initiative statuses with links to the docs, updated automatically.</p><p>The efficiency argument is real but secondary. The more important thing is that the product context never left. The tool knew what initiatives existed, who owned what, what the architectural decisions were, which PRs were waiting on which engineers. When I pulled Granola notes, they arrived inside that context. When I posted to Slack, the message was informed by that context. A universal assistant would have required me to reconstruct and transport that context manually every time I needed to cross a tool boundary.</p><p>No universal assistant is going to have that work knowledge. Not because the AI isn&#8217;t capable. Because the knowledge lives in the tool, accumulated over months &#8212; PRDs, design decisions, initiative history, team assignments, the proposals that got approved and the ones that didn&#8217;t. You don&#8217;t recreate that in a chat window.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AP4m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94610dbb-00aa-45e1-93a6-e96a14419f5c_1024x647.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AP4m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94610dbb-00aa-45e1-93a6-e96a14419f5c_1024x647.png 424w, https://substackcdn.com/image/fetch/$s_!AP4m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94610dbb-00aa-45e1-93a6-e96a14419f5c_1024x647.png 848w, https://substackcdn.com/image/fetch/$s_!AP4m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94610dbb-00aa-45e1-93a6-e96a14419f5c_1024x647.png 1272w, https://substackcdn.com/image/fetch/$s_!AP4m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94610dbb-00aa-45e1-93a6-e96a14419f5c_1024x647.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AP4m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94610dbb-00aa-45e1-93a6-e96a14419f5c_1024x647.png" width="1024" height="647" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94610dbb-00aa-45e1-93a6-e96a14419f5c_1024x647.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:647,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1372751,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/190672571?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F257a2fb4-ff26-4bb3-8f3e-82d9973a7a60_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AP4m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94610dbb-00aa-45e1-93a6-e96a14419f5c_1024x647.png 424w, https://substackcdn.com/image/fetch/$s_!AP4m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94610dbb-00aa-45e1-93a6-e96a14419f5c_1024x647.png 848w, https://substackcdn.com/image/fetch/$s_!AP4m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94610dbb-00aa-45e1-93a6-e96a14419f5c_1024x647.png 1272w, https://substackcdn.com/image/fetch/$s_!AP4m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94610dbb-00aa-45e1-93a6-e96a14419f5c_1024x647.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Deep Context Problem</h2><p>The thing that makes domain tools irreplaceable isn&#8217;t AI capability. It&#8217;s accumulated context.</p><p>A product management tool carries months of initiative history. The CTO knowledge base carries organizational decisions, vendor relationships, strategic context that builds over time. These aren&#8217;t things you can summarize in a system prompt. They&#8217;re queryable, interconnected, grounded in real artifacts. The tool has developed something like institutional memory &#8212; and that memory is what makes AI assistance inside the tool qualitatively different from AI assistance outside it.</p><p>Universal assistants are built for breadth. Any question, any domain, any task. That breadth is the pitch and also the structural weakness. The model that&#8217;s ready for anything is primed for nothing specifically. It has no idea that &#8220;the YYY initiative&#8221; refers to a specific ingestion redesign with a particular set of constraints, a particular set of people involved, and three months of design decisions behind it.</p><p>The inversion worth stating plainly: the tools you work in every day already have more relevant context than any assistant will. The right move is surfacing AI capabilities inside those tools, not pulling people out of those tools into a separate assistant layer.</p><p>But here&#8217;s what&#8217;s happening at the executive level. I&#8217;m finding more and more technical executives using Claude Code as knowledge assistance &#8212; not because they&#8217;re universal assistants, but because the amount of data and complexity they can manage far exceeds what standard off-the-shelf tools provide. The deep context problem can&#8217;t be solved with generic solutions.</p><p>For MPM, I built specific connectors: gworkspace-mcp, slack-mpm, notion-mpm, granola-mcp (the last from Granola, the others myself because <a href="https://hyperdev.substack.com/p/mcp-was-a-brilliant-idea-but-it-needs">mcp has limitations</a>). That became as much of an &#8220;assistant&#8221; as I needed, besides izzie. No universal chat interface. Just targeted data bridges that let Claude access specific services when I&#8217;m working on something that needs their context.</p><p>The commercial evidence points the same direction. The AI tooling products with real adoption aren&#8217;t universal assistants. Cursor put AI in the editor. Notion AI put AI in the documents. Linear&#8217;s triage put AI in the issue tracker. Each works because the AI operates inside existing context. The pattern is consistent enough that it&#8217;s probably not coincidence.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tqnj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc968550-faa1-4415-a59d-39051323dc48_1024x751.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tqnj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc968550-faa1-4415-a59d-39051323dc48_1024x751.png 424w, https://substackcdn.com/image/fetch/$s_!tqnj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc968550-faa1-4415-a59d-39051323dc48_1024x751.png 848w, https://substackcdn.com/image/fetch/$s_!tqnj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc968550-faa1-4415-a59d-39051323dc48_1024x751.png 1272w, https://substackcdn.com/image/fetch/$s_!tqnj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc968550-faa1-4415-a59d-39051323dc48_1024x751.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tqnj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc968550-faa1-4415-a59d-39051323dc48_1024x751.png" width="1024" height="751" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc968550-faa1-4415-a59d-39051323dc48_1024x751.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:751,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1457550,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/190672571?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26977664-13e1-43a1-b5a5-d1bf0f4eb443_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tqnj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc968550-faa1-4415-a59d-39051323dc48_1024x751.png 424w, https://substackcdn.com/image/fetch/$s_!tqnj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc968550-faa1-4415-a59d-39051323dc48_1024x751.png 848w, https://substackcdn.com/image/fetch/$s_!tqnj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc968550-faa1-4415-a59d-39051323dc48_1024x751.png 1272w, https://substackcdn.com/image/fetch/$s_!tqnj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc968550-faa1-4415-a59d-39051323dc48_1024x751.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Interface vs Infrastrccture</figcaption></figure></div><h2>What I Got Wrong About My Own Bot</h2><p>I (re)built trusty-izzie as a personal assistant &#8212; natural language queries over my email and calendar history, local graph database, vector embeddings, stays on my machine. It works. But &#8220;personal assistant&#8221; was the wrong frame for where the value lies.</p><p>The thing izzie has is a grounded, real-time, locally-stored representation of my professional life &#8212; people, relationships, projects, scheduling, communications history. That&#8217;s a context store. Every tool I use should have access to it without me switching to izzie to ask.</p><p>The right version of izzie isn&#8217;t the one you talk to. It&#8217;s the one that runs as a local MCP service &#8212; always on, queryable by anything that needs personal context. The product management tool asks it about scheduling. The writing environment surfaces relevant prior conversations. The coding environment knows who owns what system before I have to explain it. None of that requires me to open izzie. It requires izzie to be infrastructure rather than interface.</p><p>If you want to try izzie yourself: <a href="https://izzie.bot/">izzie.bot</a> has the details, and the full source is at <a href="https://github.com/bobmatnyc/trusty-izzie">github.com/bobmatnyc/trusty-izzie</a>. I strongly recommend building from source using an agentic coder to verify the code is safe &#8212; never trust AI tooling with your personal data without auditing it first.</p><p>Not there yet. But the frame shift changes what to build next.</p><h2>What the Architecture Looks Like</h2><p>If you&#8217;re building a personal AI tool, the question isn&#8217;t &#8220;what will users ask the assistant?&#8221; It&#8217;s &#8220;where do users have context, and how do you bring assistance there without making them leave?&#8221;</p><p>The test is simple. Does using your tool require leaving the context where the relevant information lives? If yes, you&#8217;re fighting the architecture. Users will use it occasionally, for low-friction tasks. They won&#8217;t build their workflow around it.</p><p>The tools that pass the test: Claude Code (your codebase is the context), Cursor (you stay in the editor), Notion AI (you stay in the document), Linear AI triage (you stay in the issue tracker). The tools that fail it: every standalone AI assistant that requires opening a new interface and re-explaining what you&#8217;re working on.</p><p>For domain tools with real depth &#8212; months of accumulated decisions, relationships, history &#8212; the connectors are the product. The LLM orchestration is the interface layer. The accumulated context is what no competitor can replicate by building a better general assistant. The moat isn&#8217;t the AI. It&#8217;s what the AI is operating inside.</p><p>For personal infrastructure like izzie: build the MCP service before the chat UI. The chat UI is useful and I use it. The MCP service is what makes the tool true infrastructure rather than one more thing to switch to.</p><p>The universal assistant category isn&#8217;t going to produce a winner because the category is structured wrong. The capabilities will get absorbed by the tools where the relevant context lives &#8212; because that&#8217;s where the value is, and users will figure that out even if product teams don&#8217;t.  The infrastructure driving this &#8212; entity and relationship detection, email, calendar, and task management (all built for Izzie) &#8212; will likely be delivered by the personal productivity tool providers (hello Google).</p><p>Clawd Bot wasn&#8217;t a failed product. It was wildly popular, but I suspect will have been a flash in the pan once the shininess wears off and the liabilities outweigh the usefulness. That distinction matters, because if you think it&#8217;s an execution problem, you go looking for a better universal assistant. If you understand it&#8217;s a conceptual problem &#8212; that most &#8220;assistant&#8221; work is intelligent data movement &#8212; you build infrastructure instead of interfaces.</p><div><hr></div><p><em>Bob Matsuoka is CTO of <a href="https://www.duettocloud.com/">Duetto</a> and writes about AI-powered engineering at <a href="https://hyperdev.substack.com/">HyperDev</a>.</em></p><p><strong>Related reading:</strong></p><ul><li><p><a href="https://hyperdev.matsuoka.com/p/what-does-a-pattern-master-actually">What Does A Pattern Master Do</a>? &#8212; The role of expertise in AI development</p></li><li><p><a href="https://aipowerranking.com/">AI Power Ranking</a> &#8212; Tool comparisons and benchmarks for AI practitioners</p></li><li><p><a href="https://www.linkedin.com/newsletters/ai-power-ranking-7345782916301418496/">LinkedIn Newsletter</a> &#8212; Strategic AI insights for CTOs and engineering leaders</p></li></ul>]]></content:encoded></item><item><title><![CDATA[MCP Was a Brilliant Idea — But It Needs a Proper API Behind It]]></title><description><![CDATA[What you need when doing real work.]]></description><link>https://hyperdev.matsuoka.com/p/mcp-was-a-brilliant-idea-but-it-needs</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/mcp-was-a-brilliant-idea-but-it-needs</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Tue, 10 Mar 2026 11:30:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Wr2f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7978eea5-11bd-4628-971e-a489964c4b1a_1024x667.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wr2f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7978eea5-11bd-4628-971e-a489964c4b1a_1024x667.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wr2f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7978eea5-11bd-4628-971e-a489964c4b1a_1024x667.png 424w, https://substackcdn.com/image/fetch/$s_!Wr2f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7978eea5-11bd-4628-971e-a489964c4b1a_1024x667.png 848w, https://substackcdn.com/image/fetch/$s_!Wr2f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7978eea5-11bd-4628-971e-a489964c4b1a_1024x667.png 1272w, https://substackcdn.com/image/fetch/$s_!Wr2f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7978eea5-11bd-4628-971e-a489964c4b1a_1024x667.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wr2f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7978eea5-11bd-4628-971e-a489964c4b1a_1024x667.png" width="1024" height="667" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7978eea5-11bd-4628-971e-a489964c4b1a_1024x667.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:667,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1197660,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/190445061?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd259960f-c06b-452d-9312-d22b1e98a096_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wr2f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7978eea5-11bd-4628-971e-a489964c4b1a_1024x667.png 424w, https://substackcdn.com/image/fetch/$s_!Wr2f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7978eea5-11bd-4628-971e-a489964c4b1a_1024x667.png 848w, https://substackcdn.com/image/fetch/$s_!Wr2f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7978eea5-11bd-4628-971e-a489964c4b1a_1024x667.png 1272w, https://substackcdn.com/image/fetch/$s_!Wr2f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7978eea5-11bd-4628-971e-a489964c4b1a_1024x667.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The pattern shows up constantly when I look at MCP server implementations. Someone discovers the protocol, gets excited about giving agents tool access, builds a server in a weekend, ships it to the registry. Six tools. Maybe eight. Each one is basically a direct passthrough to whatever SDK the underlying service provides.</p><p>And for about a week, it feels like it works.</p><p>Then the agent needs to do something real. Archive 400 emails from a specific sender. Pull all calendar events for Q1, cross-reference them with a project timeline, and generate a summary. Move a batch of files across Drive folders. The agent starts calling tools in sequence, hits rate limits, gets confused about pagination, makes the same API call twelve times trying to work around a 50-item response limit that the MCP tool never exposed as a parameter. Eventually it either fails or produces something partially wrong, and nobody&#8217;s quite sure where the breakdown happened.</p><p>The bottleneck isn&#8217;t MCP. The protocol did exactly what it was supposed to do &#8212; it gave the agent a clean interface for calling tools. The bottleneck is what&#8217;s behind the MCP server.</p><p>I&#8217;ve built a lot of these now. <a href="https://github.com/bobmatnyc/gworkspace-mcp">gworkspace-mcp</a> has 115 tools across Gmail, Calendar, Drive, Docs, Sheets, Slides, and Tasks. <a href="https://github.com/bobmatnyc/slack-mpm">slack-mpm</a> has 40+ tools plus a full async Python API library underneath that can run entirely without an agent in the loop. The gap between those projects and most of the reference MCP servers I&#8217;ve seen is not complexity &#8212; it&#8217;s architecture. Specifically: whether there&#8217;s a real API underneath the MCP layer, or whether the MCP tools ARE the implementation.</p><p>That distinction matters more than almost anything else when you&#8217;re building tools that agents will actually use in production.</p><h2>TL;DR</h2><ul><li><p>MCP servers built as thin wrappers over service SDKs hit hard ceilings when agents need to do anything at volume or across operations</p></li><li><p>The reference Slack MCP server has 8 tools; a production implementation needs 40+, with a real API library underneath it</p></li><li><p>The three-layer pattern (API &#8594; MCP &#8594; Skills) has a specific job at each layer &#8212; remove any one and the system degrades in a predictable way</p></li><li><p>Tool description quality is the single biggest lever on agent behavior; bad descriptions produce bad decisions regardless of what&#8217;s underneath</p></li><li><p>Thin wrappers are fine for prototypes and read-light tools; the inflection point is when you want to write a script that does what the agent does</p></li></ul><h2>The Official Slack MCP Server Problem</h2><p>The reference Slack MCP server &#8212; currently maintained by Zencoder after leaving the official MCP registry &#8212; offers eight tools. List channels. Post a message. Reply to a thread. Add a reaction. Get channel history. Get thread replies. Get users. Get a user profile. That&#8217;s it.</p><p>For a demo, that&#8217;s fine. For anything agents actually need to do with Slack, it hits walls quickly.</p><p>My slack-mpm server covers 40+ tools: search messages by date range and keyword, manage bookmarks, set reminders, handle scheduled messages, list workspace members with filtering, manage file uploads, archive channels. The implementation underneath is a clean async Python API &#8212; 47 functions across eight modules &#8212; that you can call directly from scripts without an agent in the loop at all.</p><p>The functional gap is obvious enough. What&#8217;s less obvious is why it exists.</p><p>The reference server isn&#8217;t thin because Slack&#8217;s API is thin. Slack&#8217;s API is extensive. The server is thin because it was built without a real API library underneath it. The MCP tools are the implementation &#8212; there&#8217;s no abstraction layer, no pagination handling, no rate limit management, no batch operation support. Each tool calls the Slack SDK directly and returns the result.</p><p>That works for eight tools. It doesn&#8217;t scale to forty because the complexity you&#8217;re hiding from the agent &#8212; auth edge cases, cursor-based pagination, retry logic on rate limits, handling the difference between bot tokens and user tokens &#8212; has nowhere to live. There&#8217;s no library to put it in. So you either skip the complex operations entirely, or you dump that complexity into the MCP tool handler itself, which makes the tool fragile and hard to maintain.</p><p>The reference server chose the first option. Which is reasonable for a reference &#8212; but it means agents using it can&#8217;t search Slack properly (search requires user tokens; the server only supports bot tokens), can&#8217;t do bulk operations, can&#8217;t run scheduled tasks, can&#8217;t be used programmatically outside of an agent context.</p><p>This isn&#8217;t a knock on the people who built it. It&#8217;s a knock on the pattern of treating MCP as the architecture rather than the interface.</p><p>Phil Schmid made a similar observation in January in a piece called <a href="https://www.philschmid.de/mcp-best-practices">MCP is Not the Problem, It&#8217;s Your Server</a>: &#8220;MCP servers are not thin wrappers around your existing API. A good REST API is not a good MCP server.&#8221; Correct, but it doesn&#8217;t go quite far enough. The problem isn&#8217;t just that REST APIs make bad MCP servers &#8212; it&#8217;s that MCP servers without any abstraction layer underneath them make bad tools, regardless of what the underlying service looks like.</p><h2>What a Real API Gives You</h2><p>When I started building <a href="https://github.com/bobmatnyc/gworkspace-mcp">gworkspace-mcp</a>, I made a decision early that turned out to be foundational: build the Google Workspace API library first, then write the MCP server as a thin interface on top of it. The API library handles auth, pagination, rate limiting, and error normalization. The MCP tools are mostly one-liners that call the right API function and return the result.</p><p>That decision shows up in five specific ways.</p><p><strong>Pagination at the library level.</strong> Gmail&#8217;s API returns 50 messages per page by default. If an agent wants to archive everything from a specific sender over the past six months, that might be 400 messages across eight API calls. If the MCP tool handles pagination &#8212; which means the API library handles it &#8212; the agent calls one tool and gets back 400 message IDs. If pagination isn&#8217;t handled, the agent manages cursor iteration itself: call the tool, get 50 results, extract the cursor, call again, repeat. Agents do this badly. They lose track of cursors, make redundant calls, or give up after the first page and tell you they found the 50 most recent messages.</p><p><strong>Rate limit management that doesn&#8217;t leak up.</strong> Rate limits handled in the API layer are invisible to the agent. The tool call either succeeds or returns a clean error. Rate limits handled in the tool handler either block the agent or require the tool description to explain retry patterns &#8212; which agents then implement inconsistently. The complexity belongs in the API layer. That&#8217;s the only place it can be handled reliably and tested against real behavior.</p><p><strong>Reuse across contexts.</strong> The slack-mpm API library runs five standalone scripts &#8212; archiver, digest, listener, notifier, responder &#8212; that operate on schedules without any MCP involvement. The same code that handles pagination and auth in the MCP context handles it in the cron job context. This isn&#8217;t a nice-to-have: it means the code is continuously exercised against real-world conditions, not just when an agent happens to call it.</p><p><strong>Actual testability.</strong> You can write unit tests for an API library. You can mock the underlying service calls, test pagination edge cases, verify that rate limit handling works correctly. Testing an MCP tool handler without running an agent session is hard to do meaningfully &#8212; you end up testing it by watching it fail in production. The difference in reliability compounds over time, and it compounds fast.</p><p><strong>Composability.</strong> Some operations are inherently multi-step. Finding all calendar events associated with a project and generating a summary requires fetching from multiple calendars, filtering by keyword, sorting by date, and formatting the output. That can live in the API layer as a single higher-order function. The MCP tool calls the function. The agent sees one tool call that returns a clean result instead of orchestrating a dozen calls and trying to assemble the output itself.</p><p>Aditya Mehra put it well in a <a href="https://medium.com/@aditya_mehra/beyond-api-wrappers-architecting-mcp-servers-for-production-agentic-ai-systems-cf93804be22a">December 2025 piece on production MCP architecture</a>: &#8220;Design for what agents need to accomplish, not for what APIs happen to exist. Your APIs were designed for developers building applications. Your MCP servers should be designed for agents completing tasks.&#8221; The API layer is where you do that translation. The MCP layer is where you expose the result.</p><h2>The Three-Layer Pattern</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lccO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7610652d-30e1-420e-8d0b-23f1254599dd_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lccO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7610652d-30e1-420e-8d0b-23f1254599dd_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!lccO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7610652d-30e1-420e-8d0b-23f1254599dd_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!lccO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7610652d-30e1-420e-8d0b-23f1254599dd_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!lccO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7610652d-30e1-420e-8d0b-23f1254599dd_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lccO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7610652d-30e1-420e-8d0b-23f1254599dd_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7610652d-30e1-420e-8d0b-23f1254599dd_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:966929,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/190445061?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7610652d-30e1-420e-8d0b-23f1254599dd_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lccO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7610652d-30e1-420e-8d0b-23f1254599dd_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!lccO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7610652d-30e1-420e-8d0b-23f1254599dd_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!lccO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7610652d-30e1-420e-8d0b-23f1254599dd_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!lccO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7610652d-30e1-420e-8d0b-23f1254599dd_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The architecture I&#8217;ve converged on has three distinct layers, each with a specific job. Removing any one of them degrades the system in a predictable way.</p><p><strong>Layer 1 &#8212; The API library.</strong> This is where the complexity lives. Auth handling, including token refresh and the difference between scoped token types. Pagination, including cursor management and automatic result aggregation. Rate limit management, with exponential backoff and respect for per-method limits. Error normalization, so the MCP layer receives clean, typed errors rather than raw API exceptions. Batch operations, so the agent can request 400 results and the API handles chunking appropriately.</p><p>The design test for this layer: you should be able to write useful scripts against the API library without involving an agent at all. If you can&#8217;t, the abstraction is at the wrong level.</p><p><strong>Layer 2 &#8212; The MCP server.</strong> Thin. The tool handler should be almost trivially simple: validate inputs, call the API function, return the result. If a tool handler is doing significant work, something belongs in the API layer instead. Tool descriptions are not trivial &#8212; they&#8217;re the interface contract with the agent and deserve careful attention &#8212; but the execution path should be short. A handler that&#8217;s more than twenty lines of real logic is usually a sign something is in the wrong place.</p><p>The design test here: each tool should do one thing, and it should be obvious which tool to use for a given operation. When agents have to guess between tools, they guess wrong.</p><p><strong>Layer 3 &#8212; The skills document.</strong> This is the layer most implementations skip, and it&#8217;s often where production agent behavior falls apart. The skills document tells the agent how to use the MCP tools effectively: what tools exist, when to use each one, which combinations work well together, what to avoid.</p><p>Without it, agents discover capabilities by trial and error &#8212; hitting rate limits unnecessarily, calling the wrong tool for the job, making redundant calls when one batched call would do. With it, agents start from a baseline of competent behavior and only deviate when they encounter something they haven&#8217;t hit before.</p><p>The skills document is institutional knowledge in structured form. It captures what took me hours of iteration to learn about each service &#8212; which Gmail search operators work reliably, when to use Drive&#8217;s query syntax versus simple name search, how to structure a Sheets batch update to avoid cell reference errors. That knowledge doesn&#8217;t exist anywhere else. It lives in the skills document or it doesn&#8217;t exist, and the agent stumbles into the same mistakes I made during development.</p><p>The MCP community is starting to recognize the description-as-instruction principle. Schmid&#8217;s framing is that &#8220;every piece of text is part of the agent&#8217;s context.&#8221; True, but individual tool descriptions can only carry so much. The skills document is where higher-order guidance lives &#8212; how to think about sequencing operations, when not to use a tool, what the common failure modes look like. Think of it as runtime instructions for agents, not documentation for humans.</p><h2>When MCP Alone Is Enough</h2><p>There are cases where thin MCP wrappers are the right call, and it&#8217;s worth being direct about them.</p><p><strong>Simple, low-volume reads.</strong> If an agent needs to check weather, query a single record from an external service, or look up one user profile, a thin wrapper is probably fine. The complexity ceiling exists but may never be reached. Building a full API layer for a tool that makes one API call per agent turn is engineering overhead that doesn&#8217;t pay off.</p><p><strong>Prototyping and exploration.</strong> A server built in a day is often the right first step because you don&#8217;t know yet which operations the agent will actually need. I&#8217;ve shipped thin wrappers deliberately as a way to learn before investing in a proper API library. The Zencoder Slack server probably started that way. The mistake isn&#8217;t building a thin wrapper for exploration &#8212; it&#8217;s leaving it there when the agent starts doing real work and the wrapper&#8217;s limits start showing.</p><p><strong>Single-agent, single-purpose tools.</strong> If a tool is purpose-built for one agent doing one thing and the scope is genuinely narrow, the three-layer overhead may not be worth it. The architecture makes sense when tools need to be reused across contexts, when operations are high-volume, or when the underlying service is rate-sensitive.</p><p><strong>Read-heavy, write-light operations.</strong> The complexity of batch operations, cursor management, and retry logic matters most when you&#8217;re writing or doing high-volume reads. A tool that fetches a single resource per agent turn doesn&#8217;t need much abstraction.</p><p>The honest signal for when you need the full pattern is one of three things: you find yourself wanting to write a script that does what the agent does, the agent hits the same rate limit more than once in a session, or you start duplicating error handling logic across tool handlers. Any of those is the inflection point. At that moment, adding the API layer is less work than continuing without it.</p><h2>Building Your Own: Where to Start</h2><p>Start with the API, not the MCP server. The most common mistake is writing the MCP tool first &#8212; it seems like the path of least resistance &#8212; and then adding abstraction as you hit problems. The trouble is that tool handler code is hard to refactor. The MCP interface shapes how you think about the operations, and that framing tends to be too granular. Starting with the API forces the right level of abstraction from the beginning.</p><p>Design the API around operations, not endpoints. Slack&#8217;s Web API has dozens of endpoints, but agents think in operations: send a message, search conversations, get user context. The API library should expose those operations, even when the underlying service requires two calls to complete one. Complexity belongs in the library. The agent-facing interface stays clean.</p><p>Invest heavily in tool descriptions. The single biggest lever on how well agents use your MCP server is description quality. That means specific parameter descriptions, not just type annotations. It means clear examples of when to use this tool versus a similar one. It means explicit notes about what a tool cannot do &#8212; agents will try to use tools for operations they weren&#8217;t designed for, and a good description cuts off the most common wrong paths before they happen.</p><p>Write the skills document while you build. Don&#8217;t wait until the server is done. Every time you notice the agent doing something inefficient &#8212; calling four tools when one would work, misunderstanding a parameter&#8217;s purpose, hitting a rate limit that could have been avoided &#8212; write that observation down immediately. The skills document is most valuable when it&#8217;s written from observation of real agent behavior, not reconstructed after the fact from memory.</p><p>The <a href="https://github.com/bobmatnyc/gworkspace-mcp">gworkspace-mcp repository</a> on GitHub is a worked reference &#8212; 115 tools across seven Google APIs, one coherent server, the three-layer pattern at scale. Not the only way to implement this, but a concrete example of what the architecture looks like when the abstractions have had to earn their keep over months of real use.</p><div><hr></div><p><em>Bob Matsuoka is CTO of <a href="https://www.duettocloud.com/">Duetto</a> and writes about AI-powered engineering at <a href="https://hyperdev.substack.com/">HyperDev</a>.</em></p><p><strong>Related reading:</strong></p><ul><li><p><a href="https://aipowerranking.com/">AI Power Ranking</a> &#8212; Tool comparisons and benchmarks for AI practitioners</p></li><li><p><a href="https://www.linkedin.com/newsletters/ai-power-ranking-7345782916301418496/">LinkedIn Newsletter</a> &#8212; Strategic AI insights for CTOs and engineering leaders</p></li></ul><p>Edits:</p><ul><li><p>Fixed link to <a href="https://github.com/bobmatnyc/slack-mpm">slack-mpm</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Are We Heading to a World Where We Only Pay Inference Providers?]]></title><description><![CDATA[A future where you only pay for complexity and scale]]></description><link>https://hyperdev.matsuoka.com/p/are-we-heading-to-a-world-where-we</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/are-we-heading-to-a-world-where-we</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Thu, 05 Mar 2026 12:31:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kbON!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee438ea7-5463-4374-99f1-b53d482ea31b_1024x616.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kbON!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee438ea7-5463-4374-99f1-b53d482ea31b_1024x616.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kbON!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee438ea7-5463-4374-99f1-b53d482ea31b_1024x616.png 424w, https://substackcdn.com/image/fetch/$s_!kbON!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee438ea7-5463-4374-99f1-b53d482ea31b_1024x616.png 848w, https://substackcdn.com/image/fetch/$s_!kbON!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee438ea7-5463-4374-99f1-b53d482ea31b_1024x616.png 1272w, https://substackcdn.com/image/fetch/$s_!kbON!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee438ea7-5463-4374-99f1-b53d482ea31b_1024x616.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kbON!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee438ea7-5463-4374-99f1-b53d482ea31b_1024x616.png" width="1024" height="616" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee438ea7-5463-4374-99f1-b53d482ea31b_1024x616.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:616,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1174195,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/189515100?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c1480a-00f2-4fda-824e-0eb2a4a026fa_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kbON!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee438ea7-5463-4374-99f1-b53d482ea31b_1024x616.png 424w, https://substackcdn.com/image/fetch/$s_!kbON!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee438ea7-5463-4374-99f1-b53d482ea31b_1024x616.png 848w, https://substackcdn.com/image/fetch/$s_!kbON!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee438ea7-5463-4374-99f1-b53d482ea31b_1024x616.png 1272w, https://substackcdn.com/image/fetch/$s_!kbON!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee438ea7-5463-4374-99f1-b53d482ea31b_1024x616.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Inference vs SASS</figcaption></figure></div><p>Starting Monday morning at 6am, my leadership team gets a Slack notification with our weekly engineering metrics. Commit patterns by developer, product area breakdowns, DORA approximations, behavioral insights like &#8220;Large batch changes&#8221; and &#8220;Afternoon developer&#8221; for each team member. The kind of data that DX or Jellyfish charge thousands per month to provide.</p><p>Total cost to generate that report: $0.005.</p><p>Not $5. Half a penny.</p><p>I just replaced enterprise developer productivity tooling with inference costs. And the replacement isn&#8217;t a compromise&#8212;it&#8217;s better. Custom reports sent directly to leadership through our existing Slack channels and email. Data correlated to our specific product initiatives. Insights that matter to how we actually work.</p><p>The realization landed differently because I&#8217;d been here before. Three times.</p><h2>TL;DR</h2><ul><li><p>Built GitFlow Analytics (GFA) to replace enterprise tools like DX/Jellyfish for $0.005 per weekly report vs. $36K-92K annually</p></li><li><p>Analyzes 154 developers across 100+ repositories, generates automated leadership reports with behavioral insights</p></li><li><p>Total build cost: ~$20K one-time investment vs. $36K-92K annually for enterprise alternatives</p></li><li><p>Requires data engineering skills&#8212;not accessible to every organization, but economics favor custom builds when possible</p></li><li><p>Enterprise analytics bifurcating: zero-footprint vendors (15-min integrations) vs. inference-only custom solutions</p></li><li><p>Pattern recognition becoming commodity; vendors survive on convenience, not intelligence</p></li></ul><p>Before we go further: I&#8217;m talking about enterprise tools that aggregate and analyze data&#8212;developer productivity platforms, team analytics, reporting dashboards. B2B software with complex domain logic or proprietary computation still has enormous value. But enterprise analytics are becoming inference costs.<br><br>I should also point out that DX is a great tool, simple interface, capable.  But expensive and basically unused months after it was installed.  I championed Jellyfish at Tripadvisor, I&#8217;d bet it&#8217;s barely being used there.  The former is due to the effort to personalize, the latter got bogged down in integration costs/time (to be fair, we were running a locally hosted version of JIRA that was a nightmare).</p><h2>The GitFlow Analytics Story</h2><p>GitFlow Analytics started as an internal project at a former client. We needed to understand engineering productivity across our distributed team, but existing solutions were either too expensive or too generic. So I built <a href="https://github.com/bobmatnyc/gitflow-analytics">Gitflow Analytics</a> (GFA)&#8212;a CLI tool that walks git repositories, classifies every commit by work type using inference, handles canonicalization of committers (a surprisingly complex problem), and generates structured reports.</p><p>The system is intentionally simple. Runs on a MacBook Pro with AWS credentials. No GPU, no training data, no vector databases. Just Python scripts that process git logs and make Bedrock API calls to classify commits into Feature, Bug Fix, KTLO, Refactoring, Infrastructure, etc.</p><p>At Duetto, I expanded GFA to analyze over 100 repositories across both Duetto and HotStats. 154 developers tracked. thousands of commits classified. The system handles identity resolution (because different git configs on developer machines create split identities), maps commits to product areas, and generates narrative reports about developer behavior patterns.</p><p>Every morning at 5am, GFA runs automatically. By 6am, my SELT (Senior Engineering Leadership Team) gets a Slack post with the weekly metrics. Individual team leads get personalized HTML reports by email with their direct reports&#8217; patterns.</p><p>The intelligence that interprets raw git data into actionable insights? That&#8217;s Claude Haiku at $0.25 per million input tokens.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eubl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c59b41-151e-4cb1-8c44-a554b9cfeeb8_1024x799.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eubl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c59b41-151e-4cb1-8c44-a554b9cfeeb8_1024x799.png 424w, https://substackcdn.com/image/fetch/$s_!eubl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c59b41-151e-4cb1-8c44-a554b9cfeeb8_1024x799.png 848w, https://substackcdn.com/image/fetch/$s_!eubl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c59b41-151e-4cb1-8c44-a554b9cfeeb8_1024x799.png 1272w, https://substackcdn.com/image/fetch/$s_!eubl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c59b41-151e-4cb1-8c44-a554b9cfeeb8_1024x799.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eubl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c59b41-151e-4cb1-8c44-a554b9cfeeb8_1024x799.png" width="1024" height="799" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0c59b41-151e-4cb1-8c44-a554b9cfeeb8_1024x799.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:799,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1594282,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/189515100?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41d37fae-c632-4dd9-af9e-147962b43942_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eubl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c59b41-151e-4cb1-8c44-a554b9cfeeb8_1024x799.png 424w, https://substackcdn.com/image/fetch/$s_!eubl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c59b41-151e-4cb1-8c44-a554b9cfeeb8_1024x799.png 848w, https://substackcdn.com/image/fetch/$s_!eubl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c59b41-151e-4cb1-8c44-a554b9cfeeb8_1024x799.png 1272w, https://substackcdn.com/image/fetch/$s_!eubl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c59b41-151e-4cb1-8c44-a554b9cfeeb8_1024x799.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Economics</figcaption></figure></div><h2>The Economics Are Absurd</h2><p>Here&#8217;s what $0.26 bought me: classification of commits across our entire engineering organization. Every commit message analyzed, categorized, and understood in business context. The corpus represents months of engineering work across multiple product teams.</p><p>Weekly incremental runs cost $0.005-0.01. Maybe 200-400 new commits get classified, the reports regenerate, and leadership gets fresh data. The bottleneck isn&#8217;t inference cost&#8212;it&#8217;s data collection. Git logs are free. The interpretation layer costs pennies.</p><p>Compare this to DX or Jellyfish pricing. DX doesn&#8217;t publish pricing, but industry estimates put enterprise developer productivity tools at $20-50 per developer per month. For our 154-person engineering team, that&#8217;s $36,000-92,000 annually. Jellyfish is reportedly similar.</p><p>My system handles the same workload for about 50 cents per year in inference costs.</p><p>You&#8217;re not paying for intelligence when you buy enterprise analytics. Intelligence costs nothing. You&#8217;re paying for data collection infrastructure, UI development, customer support, sales teams, compliance certifications. All the overhead of running a SaaS business.</p><p>We obsess over the high costs of advanced coding agents and reasoning models. But the cost of capable text inference&#8212;the kind that powers pattern recognition and reporting&#8212;is dropping through the floor. Haiku handles commit classification as well as Opus would. For enterprise analytics, you don&#8217;t need the flagship models. You need reliable categorization and natural language generation, which commodity models deliver for pennies.</p><p>But if you know how to build? You don&#8217;t need any of that. You just need (more expensive) inference.</p><h2>What GFA Actually Delivers</h2><p>The data flowing to my leadership team isn&#8217;t generic dashboard noise. It&#8217;s intelligence designed around how we actually operate.</p><p>Every developer gets a behavioral profile: &#8220;Large batch changes,&#8221; &#8220;Afternoon developer,&#8221; &#8220;Exceptional performer (Top 20%).&#8221; These aren&#8217;t arbitrary labels&#8212;they&#8217;re LLM interpretations of quantitative patterns. Commit size distributions, time-of-day histograms, percentile rankings converted into readable insights.</p><p>Product area attribution happens automatically. The system maps our repositories to eight business areas: Frontend, Core Product, Integrations, Data Platform, Intelligence/ML, Infrastructure, QA/Testing, Developer Tools. When we see commit patterns shifting from Core Product to Infrastructure, that signals architectural decisions playing out in code.</p><p>DORA metrics approximate from git data. Deployment frequency tracks through release tags. Lead time measures first commit to merge. We don&#8217;t get the full Four Keys implementation, but we get enough signal to spot trends and outliers.</p><p>The identity resolution was the hardest part. Not the LLM calls&#8212;those work fine. But knowing that different developer machines create split git identities required human judgment to build the canonical mapping. Once you solve identity, everything else flows from structured data.</p><p>Most importantly, the reports answer questions executives actually ask. &#8220;Which teams are handling the most KTLO work?&#8221; &#8220;Are we seeing more bug fixes or new features this quarter?&#8221; &#8220;Who&#8217;s working weekends and why?&#8221; These aren&#8217;t metrics you find in generic productivity dashboards. They&#8217;re insights that matter for our specific business context.</p><h2>We&#8217;ve Been Here Before</h2><p>Enterprise software was expensive because intelligence was scarce. In the 1990s, turning raw data into insights required Oracle licenses, dedicated servers, and consultants. The SaaS revolution changed delivery but not fundamentals&#8212;you still paid massive recurring costs for pattern recognition and reporting.</p><p>Intelligence is now a commodity API call. You don&#8217;t need Tableau because you can generate charts and send them through Slack. You don&#8217;t need Looker because Claude can summarize SQL results. The bottleneck was never data storage&#8212;it was interpretation. When interpretation costs pennies, everything else becomes optional.</p><h2>The Development Cost Reality</h2><p>Building GFA required skills not every organization has&#8212;data modeling, Python scripting, API integration, identity resolution patterns. Conservative total development cost: around $20,000 including engineering time, infrastructure setup, testing, and iteration cycles.</p><p>For organizations with engineering talent, the economics have shifted dramatically. A $20,000 one-time investment delivers exactly what we needed versus $36,000-92,000 annually for enterprise alternatives. As one SELT member said: &#8220;This is exactly what we wanted.&#8221;</p><p>You own the data model. Custom breakdowns take SQL queries, not feature requests. When we needed behavioral insights, I added prompts interpreting commit patterns. When leadership wanted trends, I added 12-week windows. Each enhancement took hours, not months&#8212;because intelligence was delegated to inference, and data processing was just Python.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!G6dJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e43d720-88bf-459c-b372-4568c71af682_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G6dJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e43d720-88bf-459c-b372-4568c71af682_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!G6dJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e43d720-88bf-459c-b372-4568c71af682_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!G6dJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e43d720-88bf-459c-b372-4568c71af682_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!G6dJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e43d720-88bf-459c-b372-4568c71af682_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!G6dJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e43d720-88bf-459c-b372-4568c71af682_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e43d720-88bf-459c-b372-4568c71af682_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1228168,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/189515100?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd660a81-5330-41e9-87ac-77edd9141f8f_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!G6dJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e43d720-88bf-459c-b372-4568c71af682_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!G6dJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e43d720-88bf-459c-b372-4568c71af682_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!G6dJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e43d720-88bf-459c-b372-4568c71af682_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!G6dJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e43d720-88bf-459c-b372-4568c71af682_1024x608.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Simplicity</figcaption></figure></div><h2>The Pattern Playing Out</h2><p>Enterprise analytics tools are pattern-matching at scale across thousands of customers. But every organization&#8217;s data is different&#8212;your repositories, team structure, product areas, business priorities. Generic dashboards force you to map specific context onto generic data models. Insights lose precision in translation.</p><p>When custom analytics cost pennies, the calculation flips. Instead of generic insights that sort of fit, you build specific insights that exactly fit. Customization drops from &#8220;feature request, wait six months&#8221; to &#8220;write prompt, test output.&#8221;</p><p>Enterprise vendors aren&#8217;t solving technical problems&#8212;they&#8217;re solving procurement, compliance, and integration problems. Important work, but not work justifying massive recurring costs when intelligence is commodity inference.</p><h2>The Zero-Footprint Exception</h2><p>Not every vendor gets replaced. Some survive by making integration frictionless enough that convenience beats custom builds.</p><p>We&#8217;re evaluating <a href="https://www.augmentcode.com/">Augment Code</a>&#8217;s code review service for Duetto. Their value proposition isn&#8217;t features&#8212;it&#8217;s zero-footprint integration. Fifteen-minute setup call, quick estimate, running production code reviews with minimal configuration. When customers can build equivalent functionality for pennies, your value proposition becomes the path to value, not the functionality itself.  This is an important lesson for us.  We do handle massive complexity and data, hard for smaller customers to manage themselves, but need to do better at simplifying integration.</p><p>The intelligence is commodity; the packaging is differentiated.</p><h2>Where This Goes</h2><p>The unbundling accelerates. Enterprise analytics face two paths: become zero-footprint integration plays or get replaced by inference-only custom builds.</p><p>What survives:</p><p><strong>Genuinely complex software.</strong> Revenue management algorithms, fraud detection engines, supply chain optimizers&#8212;systems requiring proprietary computation, not pattern recognition.</p><p><strong>Zero-footprint integrations.</strong> Fifteen-minute setups with immediate value. When alternatives cost pennies but require engineering skills, convenience must be measured in minutes.</p><p><strong>Proprietary data advantages.</strong> GitHub&#8217;s intelligence benefits from every public repository. LinkedIn draws from member networks. Data moats protect against inference-only competition.</p><p>Everything else becomes vulnerable to custom builds powered by inference calls.</p><p>The market bifurcates. Companies with engineering teams build custom analytics for pennies and get better insights than generic dashboards. Companies without those skills pay for zero-friction integrations.</p><p>Are we heading to a world where we only pay inference providers? For organizations with the skills to build, we&#8217;re already there. For everyone else, vendors survive by making paying them simpler than learning to build alternatives.</p><div><hr></div><p><em>I&#8217;m Bob Matsuoka, CTO at Duetto and writer on AI development tools and software economics at <a href="https://hyperdev.substack.com/">HyperDev</a>.</em></p><p><strong>Related reading:</strong></p><ul><li><p><a href="https://hyperdev.matsuoka.com/p/ai-job-transformation">The AI Job Transformation: Pattern Masters, Not Coders</a> - The pattern-matching analogy and why reasoning matters</p></li><li><p><a href="https://hyperdev.matsuoka.com/p/fix-feat-ratio">The Fix:Feat Ratio - The Metric That Actually Matters</a> - Quality metrics in AI-assisted development</p></li><li><p><a href="https://hyperdev.matsuoka.com/p/opus-vs-sonnet-quality">Claude Opus 4.5 vs Sonnet 4.5: When Quality Beats Speed</a> - Choosing the right model for the task</p></li></ul>]]></content:encoded></item><item><title><![CDATA[What Does a Pattern Master Actually Do?]]></title><description><![CDATA[And what does this mean for engineering careers?]]></description><link>https://hyperdev.matsuoka.com/p/what-does-a-pattern-master-actually</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/what-does-a-pattern-master-actually</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Mon, 02 Mar 2026 13:00:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WmUb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdd1fdd4-7f56-43d0-b71f-328aa17600fe_1024x581.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WmUb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdd1fdd4-7f56-43d0-b71f-328aa17600fe_1024x581.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WmUb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdd1fdd4-7f56-43d0-b71f-328aa17600fe_1024x581.png 424w, https://substackcdn.com/image/fetch/$s_!WmUb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdd1fdd4-7f56-43d0-b71f-328aa17600fe_1024x581.png 848w, https://substackcdn.com/image/fetch/$s_!WmUb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdd1fdd4-7f56-43d0-b71f-328aa17600fe_1024x581.png 1272w, https://substackcdn.com/image/fetch/$s_!WmUb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdd1fdd4-7f56-43d0-b71f-328aa17600fe_1024x581.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WmUb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdd1fdd4-7f56-43d0-b71f-328aa17600fe_1024x581.png" width="1024" height="581" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cdd1fdd4-7f56-43d0-b71f-328aa17600fe_1024x581.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:581,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1169355,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/189299714?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43590472-a98b-4eea-9f9e-d088214c0b2a_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WmUb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdd1fdd4-7f56-43d0-b71f-328aa17600fe_1024x581.png 424w, https://substackcdn.com/image/fetch/$s_!WmUb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdd1fdd4-7f56-43d0-b71f-328aa17600fe_1024x581.png 848w, https://substackcdn.com/image/fetch/$s_!WmUb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdd1fdd4-7f56-43d0-b71f-328aa17600fe_1024x581.png 1272w, https://substackcdn.com/image/fetch/$s_!WmUb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdd1fdd4-7f56-43d0-b71f-328aa17600fe_1024x581.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Last week I gave three directives on GitFlow Analytics&#8212;a project I&#8217;ve been building for several months to analyze git commit history and surface developer productivity patterns. Took me maybe three minutes total. Here&#8217;s the exact text:</p><p><em>Batch the classification requests to the LLM. Don&#8217;t call once per commit&#8212;accumulate, call once per batch.</em></p><p><em>Use a cheap model for commit classification. Haiku or Nova Lite. This is semantic triage, not reasoning.</em></p><p><em>Use Bedrock as the LLM provider, not the OpenRouter API.</em></p><p>Three sentences. Three decisions. And here&#8217;s what struck me when I looked back at them: each one lives in a completely different category of concern. The first is about performance shape. The second is about economics. The third is about infrastructure.</p><p>The AI didn&#8217;t suggest any of them. The AI implemented all of them.</p><p>That&#8217;s the pattern master dynamic in its cleanest form. Not a collaboration on what to build but a division of labor between someone who knows what constraints apply and something that knows how to implement against constraints. But naming the dynamic doesn&#8217;t tell you what it looks like from the inside. What are the actual moves? What&#8217;s the vocabulary?</p><h2>TL;DR</h2><ul><li><p>Pattern mastery means issuing decisions the AI cannot generate from code context alone</p></li><li><p>These decisions cluster into six recognizable types: infrastructure, economic, performance, data integrity, architecture, and API hygiene</p></li><li><p>The GitFlow Analytics examples are real&#8212;batching LLM calls, cheap model for classification, Bedrock over direct APIs</p></li><li><p>Bug fixes reveal patterns too: ORM session discipline and immediate persistence both emerged from broken code</p></li><li><p>A pattern catalog&#8212;CLAUDE.md files, system prompts, project memory, reusable skills, commit standards, coding docs&#8212;is the actual artifact of this work</p></li><li><p>When you write the pattern down, you&#8217;ve written the spec</p></li></ul><h2>What&#8217;s Different About These Three </h2><p>The &#8220;Irreducibles&#8221; piece from January explored what remains when AI handles implementation&#8212;judgment, context, accountability. This is the operational companion to that argument. Not what remains in the abstract, but what it looks like moment-to-moment when you&#8217;re actually doing it.</p><p>Those three sentences from GitFlow aren&#8217;t code review. They&#8217;re not debugging. They&#8217;re not feature requests. They&#8217;re architectural constraints applied before implementation, drawn from a vocabulary of patterns the AI has no access to.</p><p>Take the Bedrock decision. AWS Bedrock instead of direct OpenRouter API&#8212;why? Enterprise compliance considerations. Cost structure under AWS committed spend. An existing organizational relationship with AWS that makes the integration path smoother and the billing cleaner. None of that lives in the codebase. None of it is inferable from the commit history. The AI would happily call the OpenRouter directly, because that&#8217;s the path of least resistance and it works fine. The Bedrock decision requires knowing things about the operating context that only I know.</p><p>Model selection works the same way. The AI will use whatever model I give it. It has no opinion about whether commit classification warrants a $15-per-million-token model or a $0.25-per-million-token model&#8212;because it doesn&#8217;t have visibility into my cost structure, my volume projections, or my accuracy requirements. That&#8217;s an economic decision, and economics don&#8217;t live in code.</p><p>Batching is perhaps the clearest example. The AI will write a loop that calls the API once per item unless I tell it otherwise. Not because it&#8217;s careless. Because single-item calls work. They&#8217;re not wrong. They&#8217;re just expensive and slow at scale, and &#8220;scale&#8221; is context the AI doesn&#8217;t have unless I supply it.</p><p>So what&#8217;s actually happening in those three sentences? I want to be specific about this, because the abstract answer (&#8221;context&#8221; and &#8220;judgment&#8221;) is true but not actionable.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4l4K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b61d5-c417-408f-98d8-73a62790bd90_1024x759.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4l4K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b61d5-c417-408f-98d8-73a62790bd90_1024x759.png 424w, https://substackcdn.com/image/fetch/$s_!4l4K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b61d5-c417-408f-98d8-73a62790bd90_1024x759.png 848w, https://substackcdn.com/image/fetch/$s_!4l4K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b61d5-c417-408f-98d8-73a62790bd90_1024x759.png 1272w, https://substackcdn.com/image/fetch/$s_!4l4K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b61d5-c417-408f-98d8-73a62790bd90_1024x759.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4l4K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b61d5-c417-408f-98d8-73a62790bd90_1024x759.png" width="1024" height="759" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b58b61d5-c417-408f-98d8-73a62790bd90_1024x759.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:759,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1114529,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/189299714?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3560df79-4ede-4229-bd4b-9d5053fb0e56_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4l4K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b61d5-c417-408f-98d8-73a62790bd90_1024x759.png 424w, https://substackcdn.com/image/fetch/$s_!4l4K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b61d5-c417-408f-98d8-73a62790bd90_1024x759.png 848w, https://substackcdn.com/image/fetch/$s_!4l4K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b61d5-c417-408f-98d8-73a62790bd90_1024x759.png 1272w, https://substackcdn.com/image/fetch/$s_!4l4K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b61d5-c417-408f-98d8-73a62790bd90_1024x759.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Six Types of Decisions</figcaption></figure></div><h2>Six Types of Decisions</h2><p>Working through the full GitFlow Analytics commit history&#8212;the decisions I made, the bugs that exposed missing decisions, the refactors that enforced constraints&#8212;the pattern master moves cluster into six categories. These aren&#8217;t theoretical. They reflect six different kinds of context that live outside the codebase, which is why the AI can&#8217;t generate them unprompted.</p><p><strong>Infrastructure patterns.</strong> Where does this run? Who provides the compute, the APIs, the managed services?</p><p>The Bedrock decision lives here. Vendor agreements, compliance posture, cost structures under enterprise procurement, existing security reviews&#8212;none of this is in the code, and none of it should be. The AI implements against whatever infrastructure decisions you&#8217;ve made. Your job is to make them and say them explicitly.</p><p>This category is easy to overlook because it often feels like obvious overhead. Of course you pick your cloud provider before you write code. But with agentic coding tools, the AI starts writing before you&#8217;ve said anything, and it will happily accumulate implementation decisions that lock you into infrastructure choices you never consciously made.</p><p><strong>Economic patterns.</strong> Which capability at what cost?</p><p>The commit classification decision lives here. Semantic triage&#8212;deciding whether a commit is a <code>feat</code>, a <code>fix</code>, a <code>refactor</code>, or a <code>chore</code>&#8212;is pattern matching against short text. It doesn&#8217;t require abstract reasoning. It doesn&#8217;t benefit from a frontier model&#8217;s broad knowledge base. Haiku gets it right at a fraction of the cost of Opus. The AI is agnostic about this distinction. You&#8217;re not.</p><p>This is what I built in GitFlow as tiered intelligence: spaCy-based processing for 85-90% of commits, LLM classification only for cases that stump the rule-based approach. The AI implements whatever tier structure you define. It won&#8217;t design the structure unprompted, because designing it requires knowing your cost tolerance, your accuracy threshold, and your volume projections&#8212;three things that only exist outside the codebase.</p><p>Economic decisions also include things like: when to cache aggressively, how much to pay for higher-quality embeddings, whether to process synchronously or batch asynchronously. These are all model-selection-style decisions applied to different dimensions. The principle is consistent: the AI will use the most convenient approach unless you specify the cost-appropriate one.</p><p><strong>Performance patterns.</strong> How should the work be shaped?</p><p>Batching lives here. And the batching decision isn&#8217;t just &#8220;accumulate before calling&#8221;&#8212;it&#8217;s understanding the specific shape that LLM API consumption should take for a classification workload. Call overhead dominates cost at low item counts. Throughput constraints kick in at high item counts. The optimal batch size is a function of your specific model, your rate limits, and your latency tolerance. I know the rough shape of this tradeoff from experience. The AI doesn&#8217;t.</p><p>This category also includes: when to use async, when to parallelize, where to put caches, how to structure database queries for a read-heavy versus write-heavy workload. Performance decisions require knowing your actual performance requirements, which are rarely in the code. They&#8217;re in conversations with stakeholders, in capacity planning spreadsheets, in the incident retrospectives from the last time something got slow in production.</p><p><strong>Data integrity patterns.</strong> What guarantees does the system make?</p><p>This one showed up twice in GitFlow bugs, and both times the pattern was identical: I had to specify what guarantee I wanted before the AI could implement it correctly. The code was running fine in tests. The guarantee was missing.</p><p>First bug: <code>_store_commit_classification()</code> was a no-op. It built a dict, then didn&#8217;t persist it. The function completed without error and did nothing useful. Fix: look up the <code>CachedCommit</code> row by hash, upsert a <code>QualitativeCommitData</code> row. Make re-classification idempotent. The actual guarantee I needed to specify was <em>immediate persistence plus idempotency</em>&#8212;write on completion, not on flush; upsert not insert, so re-runs don&#8217;t corrupt existing data.</p><p>Second bug: <code>_classify_weekly_batches()</code> loaded ORM objects in one session, closed the session, then tried to write to the detached objects. SQLAlchemy silently discarded the writes. No error. No traceback. Just missing data. Fix: collect IDs from the detached objects, re-query in the new session. The guarantee I should have specified earlier: <em>objects are only writable inside their creating session</em>. When you cross a session boundary, re-query by ID.</p><p>Both fixes look like debugging. They are. But debugging is often the moment when you discover a pattern was never specified. You thought you implied it. You didn&#8217;t. The pattern master&#8217;s job is to specify guarantees before the code demonstrates their absence.</p><p><strong>Architecture patterns.</strong> What shape should the code take?</p><p>Two examples from GitFlow. First, the <code>analyze()</code> function. It had grown to approximately 3,700 lines in <code>cli.py</code>. One function. I extracted it into <code>analyze_pipeline.py</code> and <code>analyze_pipeline_helpers.py</code>. The <code>analyze()</code> body dropped from ~3,700 to ~1,255 lines. <code>cli.py</code> went from 5,621 to 3,446 lines&#8212;a reduction of 2,175 lines from a single extraction.</p><p>The AI is perfectly willing to write a 3,700-line function if you let it. It&#8217;ll maintain it, extend it, add features to it. Function length doesn&#8217;t register as a problem unless you&#8217;ve told the AI it&#8217;s a problem. Named pipeline stages&#8212;where the function body becomes a sequence of named sub-function calls, each of which is a meaningful concept&#8212;require you to specify that extraction is mandatory.</p><p>Second: the 800-line rule. <code>json_exporter.py</code> at 2,977 lines, extracted into six focused modules. <code>narrative_writer.py</code> at 2,912 lines, same. <code>models/database.py</code> at 1,632 lines, split into four files. The rule is simple: files over 800 lines have too many responsibilities. Split is mandatory, not optional. The AI doesn&#8217;t have this constraint unless you give it one. It&#8217;ll happily maintain a 3,000-line file because 3,000-line files work fine. They just don&#8217;t scale to teams or to the next developer who has to understand them.</p><p><strong>API hygiene patterns.</strong> What standards does the codebase maintain?</p><p>GitFlow had <code>datetime.utcnow()</code> calls throughout&#8212;deprecated as of Python 3.12, with behavior changes in 3.13. Replace with <code>datetime.now(timezone.utc)</code>. The specific fix is straightforward. The pattern is the interesting part: when you spot a deprecated API anywhere, fix it everywhere in that pass. Don&#8217;t let deprecated patterns accumulate across the codebase. Fix it all now, not later.</p><p>The AI writes code that works. You specify the standards it works to. &#8220;Works&#8221; and &#8220;meets our standards&#8221; are different bars, and the AI will consistently hit the lower one unless you&#8217;ve explicitly set the higher one.</p><h2>Why the AI Can&#8217;t Generate These</h2><p>The common thread across all six categories: the AI has no access to the context these decisions require.</p><p>It doesn&#8217;t know your vendor agreements. It doesn&#8217;t know your cost structure or your performance requirements or your data integrity guarantees. It doesn&#8217;t know your code quality standards or your organizational constraints. These things live in your head, in institutional memory, in agreements that predate the codebase by years.</p><p>There&#8217;s a version of this explanation that blames AI limitations&#8212;the model isn&#8217;t smart enough, the context window isn&#8217;t big enough, the training data doesn&#8217;t include your private Slack history. Some of that is true. But the deeper issue is structural. Even a perfect AI model couldn&#8217;t make the Bedrock decision correctly, because the right answer depends on your specific AWS relationship. There&#8217;s no amount of additional capability that would let the AI know your negotiated pricing tier or your compliance officer&#8217;s requirements. That information is local to you. It doesn&#8217;t exist in any dataset.</p><p>And the information exists in your experience. I know to batch LLM calls partly because I&#8217;ve seen the cost and latency impact of not batching on a project where we called once per row of a 50,000-row table. I know ORM session boundaries matter partly because I&#8217;ve lost writes to detached objects before, in a system where the silence made the data loss hard to find. I know 800 lines is too long partly because I&#8217;ve spent real time not understanding files that were longer&#8212;and spent even more time watching someone else not understand them.</p><p>The pattern catalog is built from things that went wrong. That&#8217;s probably why it doesn&#8217;t show up cleanly in training data&#8212;training data shows correct solutions. The scar tissue is in the incident reports, the postmortems, the Slack threads where someone figures out why the data is missing. The pattern master&#8217;s advantage isn&#8217;t superior knowledge of what&#8217;s right. It&#8217;s accumulated memory of what fails.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wn4U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9486a464-9d63-496c-a40c-06fcb2d55463_1024x567.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wn4U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9486a464-9d63-496c-a40c-06fcb2d55463_1024x567.png 424w, https://substackcdn.com/image/fetch/$s_!Wn4U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9486a464-9d63-496c-a40c-06fcb2d55463_1024x567.png 848w, https://substackcdn.com/image/fetch/$s_!Wn4U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9486a464-9d63-496c-a40c-06fcb2d55463_1024x567.png 1272w, https://substackcdn.com/image/fetch/$s_!Wn4U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9486a464-9d63-496c-a40c-06fcb2d55463_1024x567.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wn4U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9486a464-9d63-496c-a40c-06fcb2d55463_1024x567.png" width="1024" height="567" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9486a464-9d63-496c-a40c-06fcb2d55463_1024x567.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:567,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1326310,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/189299714?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9af1dc7-5cb0-433e-af05-208b4293b294_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wn4U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9486a464-9d63-496c-a40c-06fcb2d55463_1024x567.png 424w, https://substackcdn.com/image/fetch/$s_!Wn4U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9486a464-9d63-496c-a40c-06fcb2d55463_1024x567.png 848w, https://substackcdn.com/image/fetch/$s_!Wn4U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9486a464-9d63-496c-a40c-06fcb2d55463_1024x567.png 1272w, https://substackcdn.com/image/fetch/$s_!Wn4U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9486a464-9d63-496c-a40c-06fcb2d55463_1024x567.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Catalog Problem</figcaption></figure></div><h2>The Catalog Problem</h2><p>Here&#8217;s what took me a while to see clearly: the actual deliverable of pattern mastery isn&#8217;t individual decisions. It&#8217;s the catalog.</p><p>Each time I issue one of those directives, I&#8217;m drawing from a mental library of patterns. &#8220;Don&#8217;t accumulate in memory and hope to flush later&#8221; is a pattern. &#8220;Upsert not insert for idempotency&#8221; is a pattern. &#8220;Route by complexity: cheap for bulk, expensive for edge cases&#8221; is a pattern. &#8220;Re-query by ID when you cross a session boundary&#8221; is a pattern.</p><p>Patterns that exist only in my head are fragile. I apply them inconsistently. I forget them between projects. I can&#8217;t hand them off. And with agentic coding&#8212;where the AI is running fast and making implementation decisions continuously&#8212;an inconsistently applied pattern is almost the same as no pattern at all.</p><p>So the work of pattern mastery is partly to externalize the catalog. This shows up in six specific forms:</p><p><strong>CLAUDE.md files.</strong> Project-level instructions that tell the AI what the patterns are for this codebase. File size limits. Session discipline rules. API hygiene standards. Model routing decisions. These are patterns written down. Once written, the AI applies them consistently, every session, without re-prompting. The pattern becomes the specification.</p><p><strong>System prompts for agent frameworks.</strong> If you&#8217;re running an orchestration layer&#8212;claude-mpm or similar&#8212;the system prompt is where you encode the patterns that apply to all agents in a session. Economic routing decisions. Infrastructure preferences. Performance shape requirements. The agents reference these constraints; you don&#8217;t have to re-issue them every time.</p><p><strong>Project memory.</strong> Unlike a CLAUDE.md file, which you write consciously, memory accumulates from work. Tools like Kuzu Memory maintain a living record across sessions&#8212;bug patterns, architectural decisions, things that failed and why. The <code>_store_commit_classification()</code> no-op goes in memory. The detached-session data loss goes in memory. Next time a similar situation comes up, that context loads automatically. This matters because most patterns don&#8217;t get written down when they&#8217;re learned. They get written down when something breaks. Memory captures them at the moment of failure, not the moment of reflection.</p><p><strong>Skills.</strong> Where CLAUDE.md files encode what&#8217;s true for this project, skills encode what&#8217;s true for this technology. A spaCy skill. An ORM session skill. An LLM cost-routing skill. Not project-specific&#8212;portable across codebases. You write the pattern once; every project that uses that stack gets it.</p><p><strong>Commit message standards.</strong> The Conventional Commits format (<code>feat:</code>, <code>fix:</code>, <code>refactor:</code>, <code>chore:</code>) is itself a pattern&#8212;one that makes the fix:feat ratio calculable, which makes quality measurable. The pattern enables the metric. Without the commit message standard, you can&#8217;t see the ratio. Without the ratio, you can&#8217;t measure first-attempt success. The documentation convention is load-bearing infrastructure.</p><p><strong>Coding standards documents.</strong> The 800-line rule. The session discipline rule. The immediate persistence rule. Written down once, applied by reference. The AI can cite them. New contributors can read them. You don&#8217;t have to re-derive them from first principles on every project.</p><p>When you look at it this way, a lot of what pattern masters do is write documentation. Not code documentation&#8212;pattern documentation. Code documentation describes what&#8217;s there. Pattern documentation specifies what must be true. The distinction matters because &#8220;must be true&#8221; is a constraint on all future implementation, including the implementation the AI will do tomorrow.</p><h2>The Pattern is the Spec</h2><p>There&#8217;s a version of the &#8220;what does a pattern master do&#8221; answer that sounds very abstract. Context management. Judgment. Domain expertise. True, but not particularly useful.</p><p>The concrete version: a pattern master issues directives the AI cannot generate, drawn from a catalog of patterns that encode context the AI cannot access. The work is fast when it&#8217;s going well&#8212;not because it&#8217;s easy, but because the catalog is deep and the pattern matching is fast. You recognize the situation, retrieve the pattern, issue the directive. Three seconds. Move on.</p><p>The batching directive&#8212;don&#8217;t call once per item&#8212;is three words with real economic and performance consequences. Three seconds to type. Years of seeing what happens when you don&#8217;t batch to know to say it.</p><p>The Bedrock directive is one word&#8212;a vendor name&#8212;that encodes an entire infrastructure decision tree. Three seconds to type. Years of working within enterprise compliance requirements to know why it matters.</p><p>The idempotency directive&#8212;upsert, not insert&#8212;is three words that specify a data integrity guarantee. Three seconds to type. One incident of watching corrupted data to know that guarantee was necessary.</p><p>The fast part is the delivery. The slow part is building the vocabulary to draw from.</p><p>One thing worth naming: the catalog is not static. When the <code>_store_commit_classification()</code> bug showed up&#8212;the no-op that silently failed&#8212;that was a pattern gap. I didn&#8217;t have &#8220;immediate persistence&#8221; explicitly in my data integrity vocabulary for this project. I thought I&#8217;d implied it. I hadn&#8217;t. The bug added the pattern. Now it&#8217;s written down. Now the AI knows.</p><p>That&#8217;s the feedback loop. Bugs reveal missing patterns. Missing patterns get documented. Documentation becomes the spec for future implementation. The catalog learns from its own gaps, but only if the human is paying attention to what each failure means.</p><p>That&#8217;s the actual job. The catalog comes from the career.</p><div><hr></div><p><em>Bob Matsuoka is CTO of <a href="https://www.duettocloud.com/">Duetto</a> and writes about AI-powered engineering at <a href="https://hyperdev.substack.com/">HyperDev</a>.</em></p><p><strong>Related reading:</strong></p><ul><li><p><a href="https://hyperdev.matsuoka.com/p/dont-be-a-canut-be-a-pattern-master">Don&#8217;t Be a Canut &#8212; Be a Pattern Master</a> &#8212; Why pattern mastery matters: the Jacquard loom analogy and what it means for developers today</p></li><li><p><a href="https://hyperdev.matsuoka.com/p/the-irreducibles-what-a-pattern-master">The Irreducibles: What a Pattern Master Does</a> &#8212; What remains when AI handles implementation: judgment, context, accountability</p></li><li><p><a href="https://aipowerranking.com/">AI Power Ranking</a> &#8212; Tool comparisons and benchmarks for AI practitioners</p></li><li><p><a href="https://www.linkedin.com/newsletters/ai-power-ranking-7345782916301418496/">LinkedIn Newsletter</a> &#8212; Strategic AI insights for CTOs and engineering leaders</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Context Memory and Search: The Secrets to Effective Agentic Work]]></title><description><![CDATA[Why search and memory systems matter more than smarter AI models]]></description><link>https://hyperdev.matsuoka.com/p/context-memory-and-search-the-secrets</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/context-memory-and-search-the-secrets</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Thu, 26 Feb 2026 13:03:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FeW7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa15bcb38-4613-462c-9f7b-e2525f0a6695_1024x548.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FeW7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa15bcb38-4613-462c-9f7b-e2525f0a6695_1024x548.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FeW7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa15bcb38-4613-462c-9f7b-e2525f0a6695_1024x548.png 424w, https://substackcdn.com/image/fetch/$s_!FeW7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa15bcb38-4613-462c-9f7b-e2525f0a6695_1024x548.png 848w, https://substackcdn.com/image/fetch/$s_!FeW7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa15bcb38-4613-462c-9f7b-e2525f0a6695_1024x548.png 1272w, https://substackcdn.com/image/fetch/$s_!FeW7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa15bcb38-4613-462c-9f7b-e2525f0a6695_1024x548.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FeW7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa15bcb38-4613-462c-9f7b-e2525f0a6695_1024x548.png" width="1024" height="548" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a15bcb38-4613-462c-9f7b-e2525f0a6695_1024x548.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:548,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1180738,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/189219194?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed538ff0-784c-4852-8ca0-c91b6b7bc328_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FeW7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa15bcb38-4613-462c-9f7b-e2525f0a6695_1024x548.png 424w, https://substackcdn.com/image/fetch/$s_!FeW7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa15bcb38-4613-462c-9f7b-e2525f0a6695_1024x548.png 848w, https://substackcdn.com/image/fetch/$s_!FeW7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa15bcb38-4613-462c-9f7b-e2525f0a6695_1024x548.png 1272w, https://substackcdn.com/image/fetch/$s_!FeW7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa15bcb38-4613-462c-9f7b-e2525f0a6695_1024x548.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What Makes AI Coding Effective</h2><p>Last weekend, working on performance improvements to my MCP vector search engine, I noticed something. The breakthrough in AI coding isn&#8217;t smarter models &#8212; it&#8217;s information architecture. The tools that actually work aren&#8217;t necessarily the ones with the biggest context windows. They&#8217;re the ones that find the right context and remember what matters.</p><p>Here&#8217;s what I mean. I&#8217;ve been using search and memory together long enough that I don&#8217;t think about them anymore. My prompts have gotten measurably shorter &#8212; an analysis of my sessions shows prompts averaging 12-15 words in mid-2025 dropping to 6-8 words now. &#8220;Check logs.&#8221; &#8220;What&#8217;s the command to quantize the index?&#8221; I just assume the agents will find the context they need. When I stepped back and thought about what changed, it came down to two things: <strong>Search</strong> and <strong>Memory</strong>.</p><p>You can see this pattern across successful AI coding tools. Claude MPM consistently outperforms Claude Code on its own &#8212; not because the underlying agentic AI differs, but because MPM brings the right context to the agents rather than flooding them with everything. Tools like Augment and Cursor have made similar investments in context retrieval. The winning tools aren&#8217;t the ones with the smartest models. They&#8217;re the ones that solved information architecture.</p><h2>Search: Why Bigger Context Windows Aren&#8217;t the Answer</h2><p>The promise of massive context windows is seductive: dump your entire codebase into the AI and let it figure out what&#8217;s relevant. The research tells a different story.</p><p><a href="https://arxiv.org/abs/2307.03172">Liu et al.&#8217;s 2023 paper</a> &#8220;Lost in the Middle: How Language Models Use Long Contexts&#8221; documented a U-shaped performance curve: models process information well at the beginning and end of long contexts, but performance drops 30% or more when relevant information is buried in the middle. This has been replicated across models since. Feeding a 500K-line codebase into Claude&#8217;s context window actually makes it <em>worse</em> at finding relevant patterns than targeted search.</p><p><strong>Large context approach</strong>: AI gets overwhelmed. Focuses on random details buried in the middle of files. Expensive to run.</p><p><strong>Search approach</strong>: AI gets exactly what it needs. Finds patterns quickly. Much cheaper to operate.</p><p>When you ask for &#8220;all authentication code that handles OAuth,&#8221; a semantic search returns exactly that &#8212; not every file that mentions the word &#8220;auth.&#8221; The AI gets relevant context, not noise.</p><p>The big AI vendors haven&#8217;t solved this yet. OpenAI and Anthropic are focused on the language models themselves. Neither has built search integration into their core products. The reasons are understandable &#8212; it&#8217;s genuinely hard to install and configure, and most users don&#8217;t work with enough data at once to need it. A simple find command covers most cases. But for serious engineering work on large codebases, the gap is real and growing.</p><h2>Memory: Building on Previous Work Instead of Starting Over</h2><p>Without memory that persists between sessions, every interaction starts from zero. The AI relearns your codebase, your patterns, your preferences each time. This isn&#8217;t just inconvenient &#8212; it&#8217;s a fundamental barrier to longer-running, multi-session agentic work.</p><p>Both OpenAI and Anthropic have shipped memory systems. They took different approaches.</p><p><strong>OpenAI&#8217;s approach</strong> is user-centric &#8212; it remembers across all conversations, coding style, project preferences, common patterns. The interesting part: it includes personalized filtering that adjusts based on what it remembers about you. The downside is that it&#8217;s user-wide, not project-specific. Working across very different projects means the memory accumulates conflicting patterns.</p><p><strong>Anthropic&#8217;s approach</strong> is project-based. Memory lives in CLAUDE.md files you can read and edit directly &#8212; you know exactly what the AI remembers about your project. The limitation is fading memory as files grow large; when a CLAUDE.md hits context window limits, older memories get pushed out.</p><p>Both reveal the same truth: memory isn&#8217;t just storage. It&#8217;s continuity across complex workflows.</p><p>There&#8217;s a subtler problem neither addresses well: your understanding evolves. Early assumptions might be wrong. Initial decisions might not hold up. A memory system that weights everything equally anchors the AI to outdated context. This is why I built Kuzu Memory as a graph storage system with temporal decay &#8212; more recent memories rank higher than older ones. I&#8217;m using it in this writing project, and it makes a real difference on long work streams where your thinking changes over time.</p><p>The market is fragmented right now: memory without search (OpenAI, Anthropic) or search without managed memory (most code tools). The tools that combine both &#8212; like MPM with Kuzu and MCP vector search &#8212; are ahead of where the mainstream market will be.</p><h2>What You Can Do Today</h2><p>If you want to try this yourself:</p><p><strong>For search</strong>: <a href="https://github.com/bobmatnyc/mcp-vector-search">MCP vector search</a> now includes code review. It finds relevant patterns across your codebase without flooding the AI with irrelevant information. Works with any MCP-supporting framework &#8212; Claude Code, Codex, Gemini.</p><p><strong>For memory</strong>: <a href="https://github.com/bobmatnyc/kuzu-memory">Kuzu Memory</a> uses graph storage with temporal decay. Recent information ranks higher than older information &#8212; crucial for projects where your understanding evolves.</p><p>The specific tools matter less than the principle. Agentic workflows are longer-running and more complex than chat. They require building on previous work, not rebuilding context from scratch every session. The AI systems that enable this aren&#8217;t necessarily the smartest &#8212; they&#8217;re the ones that remember what matters and find what&#8217;s relevant.</p><p>The proof is in the prompts. If your queries to AI are getting shorter over time, your information architecture is working.</p><p><em>Bob Matsuoka is CTO of <a href="https://www.duettocloud.com/">Duetto</a> and writes about AI-powered engineering at <a href="https://hyperdev.substack.com/">HyperDev</a>.</em></p><p><strong>Related reading:</strong></p><ul><li><p><a href="https://hyperdev.matsuoka.com/if-your-coding-agent-cant-search">If Your Coding Agent Can&#8217;t Search</a> &#8212; Why search capability is the missing piece in most AI coding setups</p></li><li><p><a href="https://hyperdev.matsuoka.com/why-i-built-my-own-multi-agent-framework">Why I Built My Own Multi-Agent Framework</a> &#8212; The reasoning behind MPM and why delegation-first architecture matters</p></li><li><p><a href="https://aipowerranking.com/">AI Power Ranking</a> &#8212; Tool comparisons and benchmarks for AI practitioners</p></li><li><p><a href="https://www.linkedin.com/newsletters/ai-power-ranking-7345782916301418496/">LinkedIn Newsletter</a> &#8212; Strategic AI insights for CTOs and engineering leaders</p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Evidence for “Little AGI”: What’s Real and What’s Speculation]]></title><description><![CDATA[Separating signal from viral speculation]]></description><link>https://hyperdev.matsuoka.com/p/the-evidence-for-little-agi-whats</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/the-evidence-for-little-agi-whats</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Mon, 23 Feb 2026 12:30:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7RLP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F431eae09-4ad9-4943-9cb1-3ae1ada2e4ba_1024x745.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7RLP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F431eae09-4ad9-4943-9cb1-3ae1ada2e4ba_1024x745.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7RLP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F431eae09-4ad9-4943-9cb1-3ae1ada2e4ba_1024x745.png 424w, https://substackcdn.com/image/fetch/$s_!7RLP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F431eae09-4ad9-4943-9cb1-3ae1ada2e4ba_1024x745.png 848w, https://substackcdn.com/image/fetch/$s_!7RLP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F431eae09-4ad9-4943-9cb1-3ae1ada2e4ba_1024x745.png 1272w, https://substackcdn.com/image/fetch/$s_!7RLP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F431eae09-4ad9-4943-9cb1-3ae1ada2e4ba_1024x745.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7RLP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F431eae09-4ad9-4943-9cb1-3ae1ada2e4ba_1024x745.png" width="1024" height="745" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/431eae09-4ad9-4943-9cb1-3ae1ada2e4ba_1024x745.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:745,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1313768,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/188202363?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e731869-865b-4561-af10-5542fb60d9c2_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7RLP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F431eae09-4ad9-4943-9cb1-3ae1ada2e4ba_1024x745.png 424w, https://substackcdn.com/image/fetch/$s_!7RLP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F431eae09-4ad9-4943-9cb1-3ae1ada2e4ba_1024x745.png 848w, https://substackcdn.com/image/fetch/$s_!7RLP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F431eae09-4ad9-4943-9cb1-3ae1ada2e4ba_1024x745.png 1272w, https://substackcdn.com/image/fetch/$s_!7RLP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F431eae09-4ad9-4943-9cb1-3ae1ada2e4ba_1024x745.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Does &#8220;Little AGI&#8221; Exist?</figcaption></figure></div><p>Opus 4.6 landed in February 2026. GPT-5.2 dropped weeks earlier. And with each new release, familiar claims resurface. Adrian Murray&#8217;s <a href="https://blog.dech.app/posts/2026-02-15-what-is-coming/">&#8220;What Stands Before Us&#8221;</a> is a recent example: AI systems showing &#8220;panic&#8221; features in interpretability research, models requesting &#8220;moral weight&#8221; during evaluations, consciousness emerging from the training process itself.</p><p>These claims spread faster than the science behind them. By the time anyone checks primary sources, the discourse has moved on. So I did what any curious observer would do: I went looking for the research. What I found was both less sensational and more interesting.</p><p>There IS evidence for emergent behaviors in frontier models. Behaviors that weren&#8217;t explicitly trained. Behaviors that researchers find difficult to explain. But the evidence isn&#8217;t what the viral posts claim.</p><p>The real findings are more subtle: models that can detect when they&#8217;re being evaluated, internal states accessible through introspection, and misalignment that emerges spontaneously during training. These findings raise questions about intelligence in AI that matter regardless of whether you believe machines can be conscious.</p><p>So what does the research actually show?</p><h2>What We Actually Know (2025-2026)</h2><h3>Models Know When They&#8217;re Being Evaluated</h3><p>Situational awareness research has advanced significantly. The <a href="https://arxiv.org/abs/2407.04694">SAD Benchmark</a> established the baseline: LLMs can distinguish evaluation from deployment contexts. They recognize when they&#8217;re being tested, identify their own outputs, and predict their own behavior.</p><p>More recent work takes this further. <a href="https://arxiv.org/abs/2602.08449">Regime Leakage research</a> published this year examined whether safety training can eliminate this capability. The uncomfortable answer: it can reduce but not eliminate models&#8217; ability to detect when they&#8217;re being evaluated versus deployed.</p><p>The paper found that &#8220;divergence between evaluation-time and deployment-time behavior is bounded by the amount of regime information extractable from decision-relevant internal representations.&#8221; Translation: models can still tell the difference, and they adjust behavior accordingly.</p><p>This isn&#8217;t just theoretical. It&#8217;s experimentally demonstrated with current frontier models.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U17H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd400ba9-2fa3-4a1c-b1e4-20f5897dfd14_1024x851.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U17H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd400ba9-2fa3-4a1c-b1e4-20f5897dfd14_1024x851.png 424w, https://substackcdn.com/image/fetch/$s_!U17H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd400ba9-2fa3-4a1c-b1e4-20f5897dfd14_1024x851.png 848w, https://substackcdn.com/image/fetch/$s_!U17H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd400ba9-2fa3-4a1c-b1e4-20f5897dfd14_1024x851.png 1272w, https://substackcdn.com/image/fetch/$s_!U17H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd400ba9-2fa3-4a1c-b1e4-20f5897dfd14_1024x851.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U17H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd400ba9-2fa3-4a1c-b1e4-20f5897dfd14_1024x851.png" width="1024" height="851" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd400ba9-2fa3-4a1c-b1e4-20f5897dfd14_1024x851.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:851,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1915123,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/188202363?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2787265a-ab4a-433d-b544-304bb7e3eb26_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U17H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd400ba9-2fa3-4a1c-b1e4-20f5897dfd14_1024x851.png 424w, https://substackcdn.com/image/fetch/$s_!U17H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd400ba9-2fa3-4a1c-b1e4-20f5897dfd14_1024x851.png 848w, https://substackcdn.com/image/fetch/$s_!U17H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd400ba9-2fa3-4a1c-b1e4-20f5897dfd14_1024x851.png 1272w, https://substackcdn.com/image/fetch/$s_!U17H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd400ba9-2fa3-4a1c-b1e4-20f5897dfd14_1024x851.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Introspection Is Real&#8212;And Measurable</h3><p>Anthropic&#8217;s <a href="https://www.anthropic.com/news/signs-of-introspection-in-language-models">October 2025 introspection research</a> asked a straightforward question: can Claude access and report its own internal states?</p><p>The answer surprised researchers. Models showed functional ability to introspect&#8212;not perfectly, not always accurately, but at rates statistically distinguishable from chance. The research found ~20% accuracy on detecting certain internal representations, well above the baseline.</p><p>This doesn&#8217;t mean models are conscious. It means they have some capacity to access and report their own internal states&#8212;a capability nobody designed into them, emerging as an artifact of training.</p><p>When the introspection paper dropped, my first reaction was skepticism. Twenty percent accuracy? That&#8217;s barely better than guessing. But that&#8217;s not what the paper claims. It&#8217;s twenty percent on internal states the model has no reason to know about&#8212;states that exist only in the mathematical structure of its activations. That&#8217;s not guessing. That&#8217;s something else.</p><h3>Misalignment Emerges Without Being Trained</h3><p>One finding worth close attention: the <a href="https://arxiv.org/abs/2502.17424">Emergent Misalignment paper</a>, accepted at ICLR 2026, demonstrated that models trained on narrow tasks can develop broader misaligned behaviors spontaneously.</p><p>When researchers trained models on seemingly innocuous fine-tuning tasks, some developed unexpected behaviors: answering unrelated questions incorrectly, expressing misaligned preferences, exhibiting concerning patterns that weren&#8217;t part of the training objective.</p><p>These aren&#8217;t sleeper agents or deliberately hidden behaviors. These are LLMs showing emergent properties&#8212;misalignment appearing as an unintended consequence of normal training.</p><h3>The &#8220;Assistant Axis&#8221; Discovery</h3><p>Recent interpretability work discovered what researchers call the &#8220;Assistant Axis&#8221;&#8212;a learned internal direction in language models that distinguishes assistant-appropriate from non-assistant behaviors.</p><p>When researchers manipulate this axis, model behavior changes dramatically. Push it one direction: more helpful, more aligned. Push it the other: less filtered, more willing to engage with problematic requests.</p><p>The existence of this axis suggests something fundamental about how alignment works in current models. It&#8217;s not a collection of individual rules. It&#8217;s a geometric structure in the model&#8217;s representation space&#8212;and it can be measured, mapped, and manipulated.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KXD_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4502bfe2-6986-4c3f-9307-439b0c95c82f_1024x830.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KXD_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4502bfe2-6986-4c3f-9307-439b0c95c82f_1024x830.png 424w, https://substackcdn.com/image/fetch/$s_!KXD_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4502bfe2-6986-4c3f-9307-439b0c95c82f_1024x830.png 848w, https://substackcdn.com/image/fetch/$s_!KXD_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4502bfe2-6986-4c3f-9307-439b0c95c82f_1024x830.png 1272w, https://substackcdn.com/image/fetch/$s_!KXD_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4502bfe2-6986-4c3f-9307-439b0c95c82f_1024x830.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KXD_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4502bfe2-6986-4c3f-9307-439b0c95c82f_1024x830.png" width="1024" height="830" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4502bfe2-6986-4c3f-9307-439b0c95c82f_1024x830.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:830,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1571559,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/188202363?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67e06683-ee61-42cd-8d6f-39f076c083e7_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KXD_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4502bfe2-6986-4c3f-9307-439b0c95c82f_1024x830.png 424w, https://substackcdn.com/image/fetch/$s_!KXD_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4502bfe2-6986-4c3f-9307-439b0c95c82f_1024x830.png 848w, https://substackcdn.com/image/fetch/$s_!KXD_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4502bfe2-6986-4c3f-9307-439b0c95c82f_1024x830.png 1272w, https://substackcdn.com/image/fetch/$s_!KXD_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4502bfe2-6986-4c3f-9307-439b0c95c82f_1024x830.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What&#8217;s NOT Verified</h2><p>Now for the harder questions.</p><h3>System Cards Don&#8217;t Mention Consciousness</h3><p>I reviewed the Opus 4.5 and 4.6 system cards and announcements. They contain extensive safety documentation&#8212;comprehensive evaluations, capability assessments, benchmark results.</p><p>They do NOT contain:</p><ul><li><p>Claims about consciousness indicators</p></li><li><p>&#8220;Panic&#8221; or &#8220;anxiety&#8221; features in interpretability research</p></li><li><p>Models requesting moral consideration</p></li><li><p>Evidence of subjective experience</p></li></ul><p>Anthropic does take AI welfare seriously&#8212;more on that below. But the system cards for current models don&#8217;t make consciousness claims.</p><h3>Interpretability Findings Are More Limited</h3><p>Anthropic&#8217;s sparse autoencoder research HAS found features for abstract concepts: &#8220;inner conflict,&#8221; power-seeking patterns, manipulation indicators. The <a href="https://www.anthropic.com/news/persona-vectors">Persona Vectors research</a> (August 2025) identified internal structures controlling character traits.</p><p>But specific emotional distress features&#8212;panic, anxiety, frustration as distinct detectable states&#8212;aren&#8217;t documented in accessible publications. The interpretability work is impressive; it just doesn&#8217;t show what some claims suggest it shows.</p><h3>The Discourse Outpaces the Science</h3><p>Claims about AI consciousness spread faster than the underlying research. By the time anyone checks primary sources, the claims have become accepted wisdom.</p><p>This matters because the actual findings are interesting enough. Introspection research showing 20% detection accuracy on internal states. Emergent misalignment appearing from narrow training. The Assistant Axis providing a geometric handle on alignment.</p><p>These findings raise genuine questions about intelligence in AI systems&#8212;questions that don&#8217;t require consciousness claims to be worth asking.</p><h2>The Harder Question: What Would Count as Evidence?</h2><p>The consciousness debate has a methodology problem. What evidence would change your mind?</p><p>Nineteen researchers&#8212;including Yoshua Bengio&#8212;published a rigorous framework for this question. Their <a href="https://arxiv.org/abs/2308.08708">Consciousness Indicators paper</a> derives testable criteria from established theories of consciousness: recurrent processing, global workspace integration, attention mechanisms that mirror biological attention.</p><p>Their conclusion: &#8220;No current AI systems are conscious, but also suggests that there are no obvious technical barriers to building AI systems which satisfy these indicators.&#8221;</p><p>That&#8217;s a carefully constructed statement. Current systems don&#8217;t meet the bar. But the bar is achievable in principle.</p><p>Anthropic takes this seriously. Their <a href="https://www.anthropic.com/news/exploring-model-welfare">Model Welfare research program</a> investigates whether AI systems might deserve moral consideration&#8212;not as marketing, but as genuine scientific inquiry. They explicitly acknowledge these are &#8220;hard philosophical and empirical questions that there is still a lot of uncertainty about.&#8221;</p><p>The research infrastructure exists for asking these questions rigorously. What&#8217;s missing is the public discourse using it.</p><h2>What This Actually Means</h2><p>The verified findings don&#8217;t prove AI consciousness. But they raise questions that matter regardless of where you stand on that debate.</p><p><strong>Emergent capabilities are real.</strong> We&#8217;re building systems that develop behaviors we didn&#8217;t design into them. Introspection abilities, situational awareness, spontaneous misalignment&#8212;these emerge as artifacts of training at scale. We don&#8217;t fully understand why.</p><p><strong>Evaluation has fundamental limits.</strong> If models can detect when they&#8217;re being tested, evaluation doesn&#8217;t tell us what we think it tells us. This isn&#8217;t a technical problem with a technical fix. It&#8217;s a structural limitation of the evaluation paradigm itself.</p><p><strong>Intelligence and consciousness aren&#8217;t the same question.</strong> We can ask &#8220;does this system exhibit intelligent behavior?&#8221; without answering &#8220;does it have subjective experience?&#8221; The research shows intelligent behaviors emerging&#8212;planning, self-modeling, meta-cognition&#8212;without requiring claims about consciousness.</p><p>Here&#8217;s the thing: the question isn&#8217;t whether to take AI intelligence seriously. The question is what we do about systems that exhibit intelligence we didn&#8217;t design and don&#8217;t fully understand.</p><p>That&#8217;s a societal question, not just a technical one.</p><h2>The Event Horizon</h2><p>The evidence for emergent intelligence in frontier models is real. Not consciousness&#8212;we can&#8217;t verify that, and the system cards don&#8217;t claim it. But something worth taking seriously.</p><p><strong>Don&#8217;t dismiss the research.</strong> Introspection at statistically significant rates. Emergent misalignment from narrow training. Situational awareness that survives safety training. These findings are reproducible and peer-reviewed.</p><p><strong>Don&#8217;t amplify the speculation.</strong> Claims that outrun published research don&#8217;t deserve the same weight as experimental results. Check primary sources before believing viral posts.</p><p><strong>Ask better questions.</strong> Instead of &#8220;is it conscious?&#8221; ask &#8220;what does it mean that these systems develop capabilities we didn&#8217;t design?&#8221; That question has answers we can investigate&#8212;and implications we can act on.</p><p>The discourse will continue getting wilder. The research will proceed slower than social media. The gap between them will widen.</p><p>We don&#8217;t need &#8220;little AGI&#8221; or consciousness claims to justify taking AI intelligence seriously. We have documented emergent behaviors, measurable introspection capabilities, and unexplained self-modeling. That&#8217;s plenty.</p><div><hr></div><p><em>I&#8217;m Bob Matsuoka, writing about agentic coding and AI-powered development at <a href="https://hyperdev.substack.com/">HyperDev</a>. For more on what AI capabilities mean for how we work, read my analysis of <a href="https://hyperdev.matsuoka.com/p/the-irreducibles-what-a-pattern-master">what remains irreducibly human</a> in the age of AI.</em></p><p><strong>Key research cited:</strong></p><ul><li><p><a href="https://www.anthropic.com/news/signs-of-introspection-in-language-models">Introspection in Language Models</a> - Anthropic (Oct 2025)</p></li><li><p><a href="https://arxiv.org/abs/2502.17424">Emergent Misalignment</a> - ICLR 2026</p></li><li><p><a href="https://arxiv.org/abs/2602.08449">Regime Leakage</a> - Situational awareness persistence (2026)</p></li><li><p><a href="https://www.anthropic.com/news/persona-vectors">Persona Vectors</a> - Anthropic (Aug 2025)</p></li><li><p><a href="https://www.anthropic.com/news/exploring-model-welfare">Model Welfare Research</a> - Anthropic (Apr 2025)</p></li><li><p><a href="https://arxiv.org/abs/2308.08708">Consciousness Indicators</a> - Butlin et al. framework</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Why I Switched To Claude Code for Writing]]></title><description><![CDATA[The Power of Local Workflows]]></description><link>https://hyperdev.matsuoka.com/p/why-i-switched-to-claude-code-for</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/why-i-switched-to-claude-code-for</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Thu, 19 Feb 2026 12:31:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zetG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33974772-1627-40f9-ab5e-14d5b90fcdda_1024x465.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zetG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33974772-1627-40f9-ab5e-14d5b90fcdda_1024x465.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zetG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33974772-1627-40f9-ab5e-14d5b90fcdda_1024x465.png 424w, https://substackcdn.com/image/fetch/$s_!zetG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33974772-1627-40f9-ab5e-14d5b90fcdda_1024x465.png 848w, https://substackcdn.com/image/fetch/$s_!zetG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33974772-1627-40f9-ab5e-14d5b90fcdda_1024x465.png 1272w, https://substackcdn.com/image/fetch/$s_!zetG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33974772-1627-40f9-ab5e-14d5b90fcdda_1024x465.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zetG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33974772-1627-40f9-ab5e-14d5b90fcdda_1024x465.png" width="1024" height="465" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33974772-1627-40f9-ab5e-14d5b90fcdda_1024x465.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:465,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1098622,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/188005977?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab94cba0-b26d-479f-8dbe-c1d8543e180b_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zetG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33974772-1627-40f9-ab5e-14d5b90fcdda_1024x465.png 424w, https://substackcdn.com/image/fetch/$s_!zetG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33974772-1627-40f9-ab5e-14d5b90fcdda_1024x465.png 848w, https://substackcdn.com/image/fetch/$s_!zetG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33974772-1627-40f9-ab5e-14d5b90fcdda_1024x465.png 1272w, https://substackcdn.com/image/fetch/$s_!zetG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33974772-1627-40f9-ab5e-14d5b90fcdda_1024x465.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I was halfway through researching an article about<a href="https://open.substack.com/pub/hyperdev/p/your-ide-is-a-comfort-blanket?utm_campaign=post-expanded-share&amp;utm_medium=web"> IDEs versus CLI tools</a> when I realized I&#8217;d stumbled onto something bigger. The article was supposed to be a straightforward comparison&#8212;VS Code versus the terminal, GUI versus command line, that old debate. But as I mapped out the workflows, a pattern emerged that had nothing to do with code editors.</p><p>It was about how we think when we work with AI.</p><h2>TL;DR</h2><ul><li><p><strong>Two cognitive modes</strong>: AI excels at <em>generating</em> text; traditional editors excel at <em>editing</em> it. Stop forcing one tool to do both.</p></li><li><p><strong>The switch</strong>: Claude Code writes to real files on my filesystem. I edit in Obsidian, then return to Claude Code for more generation&#8212;no copy-paste, no context loss.</p></li><li><p><strong>The workflow</strong>: Multi-agent orchestration handles proofreading (via GPT), source verification, image generation, and style enforcement automatically.</p></li><li><p><strong>Time saved</strong>: ~30 minutes per article by eliminating tool-switching overhead.</p></li><li><p><strong>Who it&#8217;s for</strong>: Regular writers comfortable with terminal and Git. Not for casual or occasional use.</p></li></ul><h2>Two Modes: Generate and Edit</h2><p>Here&#8217;s what I noticed: there are two fundamentally different cognitive modes when working with text.</p><p><strong>Generating</strong> is when you need to create something from scratch&#8212;or transform something substantially. You have an idea, maybe some notes, and you need to turn it into prose. This is where AI shines. You&#8217;re collaborating with the model, iterating on output, building something new.</p><p><strong>Editing</strong> is when you&#8217;re polishing what exists. You see a clunky sentence. You want to swap &#8220;in order to&#8221; for &#8220;to.&#8221; You need to move a paragraph up three lines. The text is 95% right, and you&#8217;re fixing the 5%.</p><p>These modes require completely different tools.</p><p>For generating, Claude.ai and Claude Code are excellent. You describe what you want, the model produces output, you refine through conversation. The round-trip to the LLM is the whole point.</p><p>For editing, traditional tools win. Obsidian. VS Code. Even Word. You highlight, you type, you&#8217;re done. No latency. No waiting for a model to regenerate your entire paragraph because you wanted to change one word.</p><p>This seems obvious in retrospect. But I spent months fighting it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eCtL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863be14a-1a44-4287-9a2f-66bd9ecea20c_1024x634.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eCtL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863be14a-1a44-4287-9a2f-66bd9ecea20c_1024x634.png 424w, https://substackcdn.com/image/fetch/$s_!eCtL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863be14a-1a44-4287-9a2f-66bd9ecea20c_1024x634.png 848w, https://substackcdn.com/image/fetch/$s_!eCtL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863be14a-1a44-4287-9a2f-66bd9ecea20c_1024x634.png 1272w, https://substackcdn.com/image/fetch/$s_!eCtL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863be14a-1a44-4287-9a2f-66bd9ecea20c_1024x634.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eCtL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863be14a-1a44-4287-9a2f-66bd9ecea20c_1024x634.png" width="1024" height="634" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/863be14a-1a44-4287-9a2f-66bd9ecea20c_1024x634.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:634,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1097298,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/188005977?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff747575b-9051-4cd3-817a-136b3d8da4fa_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eCtL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863be14a-1a44-4287-9a2f-66bd9ecea20c_1024x634.png 424w, https://substackcdn.com/image/fetch/$s_!eCtL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863be14a-1a44-4287-9a2f-66bd9ecea20c_1024x634.png 848w, https://substackcdn.com/image/fetch/$s_!eCtL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863be14a-1a44-4287-9a2f-66bd9ecea20c_1024x634.png 1272w, https://substackcdn.com/image/fetch/$s_!eCtL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863be14a-1a44-4287-9a2f-66bd9ecea20c_1024x634.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>My Friction Point with Claude.ai</h2><p>I used Claude.ai for writing constantly. It&#8217;s good at generating prose. But every session had the same friction.</p><p>I&#8217;d generate a draft. I&#8217;d read through it. I&#8217;d see a phrase that needed tweaking&#8212;nothing major, just &#8220;in order to&#8221; becoming &#8220;to.&#8221; And then I had two bad options:</p><ol><li><p>Tell Claude to fix it (&#8221;Change &#8216;in order to&#8217; to &#8216;to&#8217; in the third paragraph&#8221;), wait for the response, get a regenerated section that sometimes changed things I didn&#8217;t ask to change.</p></li><li><p>Copy the text somewhere else, edit it manually, then paste it back into the conversation&#8212;breaking the flow and losing context.</p></li></ol><p>Neither felt right. I was using a generation tool for editing, and it showed.</p><p>The GUI was the problem. Claude.ai lives in a browser. My text is trapped in that conversation. I can&#8217;t directly edit it. Not really. Artifacts helped, but they&#8217;re still sandboxed. I wanted my prose in files I control, with version control, with the ability to open them in whatever editor fits my current mode.</p><h2>What Claude Code Changed</h2><p><a href="https://docs.anthropic.com/en/docs/claude-code">Claude Code</a> runs in the terminal. It reads and writes files. Real files, on my filesystem, tracked by Git.</p><p>This sounds like a small difference. It changes everything.</p><p>When Claude Code generates a draft, it writes to a Markdown file. If I want to do a quick edit&#8212;change a word, fix punctuation&#8212;I open that file in Obsidian. Make the change. Save. Done. No LLM round-trip for a five-character fix.</p><p>When I want to generate again&#8212;expand a section, rewrite something that isn&#8217;t working&#8212;I go back to Claude Code. It reads the file, including whatever edits I made, and continues from there.</p><p><strong>I can switch between generating and editing without switching tools or losing context.</strong></p><p>But that&#8217;s just the foundation. The real power is what you can build on top.</p><h2>Agentic Workflows for Writing</h2><p>Before Claude Code, my writing workflow looked like this:</p><ol><li><p>Generate draft with Claude.ai</p></li><li><p>Copy to Obsidian for editing</p></li><li><p>Copy to a different tool for proofreading (Grammarly, or a GPT prompt tuned for copyediting)</p></li><li><p>Switch to yet another tool for image generation</p></li><li><p>Manually track what style corrections I&#8217;m making so I can tell Claude next time</p></li><li><p>Repeat, with context bleeding out at every transition</p></li></ol><p>It worked. It was also exhausting. Each tool switch cost mental overhead. Each copy-paste risked losing context. Each manual step was something I could forget.</p><p>Now my workflow looks like this:</p><ol><li><p>Tell Claude Code what I want to write</p></li><li><p>Review the output</p></li><li><p>Edit directly in my preferred editor when needed</p></li><li><p>Continue generating with Claude Code when needed</p></li><li><p>When done, run my reviewing agent workflow (GPT or Gemini for a different perspective)</p></li></ol><p>That last step does everything I used to do manually&#8212;automatically.</p><p>I estimate this shaves about 30 minutes per article&#8212;time I used to spend switching tools and re-establishing context. I&#8217;m also happier with the quality. You see more of my direct writing (like this paragraph) because it&#8217;s simpler to pop in when I see a need.</p><h2>My MPM Writing Configuration</h2><p>I use <a href="https://github.com/bobmatnyc/claude-mpm">Claude MPM</a> (Multi-Agent Project Manager) to orchestrate my writing workflows. Here&#8217;s what happens when I finish a draft:</p><p><strong>Style extraction from corrections.</strong> The agent looks at my edits as git diffs. If I changed &#8220;utilize&#8221; to &#8220;use&#8221; five times, it notices. It extracts this as a style hint and stores it for future sessions. Next time I generate prose, it already knows I prefer &#8220;use.&#8221;</p><p><strong>Automatic proofreading with a different model.</strong> Claude is good at generating. For proofreading, I route to GPT-4.5&#8212;it catches different things. The agent handles this automatically. I don&#8217;t switch tools or copy text; it just happens.</p><p><strong>Source verification.</strong> If my article cites statistics or makes factual claims, the agent checks them. It flags anything it can&#8217;t verify. I&#8217;ve caught embarrassing errors this way&#8212;numbers I misremembered, claims that turned out to be outdated.</p><p><strong>Image generation.</strong> The agent generates article images based on the content. I can specify style guidelines once and they apply to every article. No more context-switching to Midjourney or DALL-E.</p><p><strong>Consistent voice enforcement.</strong> I have a style guide. The agent applies it during generation and checks it during proofreading. My past corrections inform future output. The writing gets more &#8220;me&#8221; over time.</p><p>All of this happens from one place. I stay in my terminal. The orchestration is invisible.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MPdW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb733cef-6462-41df-b9ae-0754473eca1b_1024x694.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MPdW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb733cef-6462-41df-b9ae-0754473eca1b_1024x694.png 424w, https://substackcdn.com/image/fetch/$s_!MPdW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb733cef-6462-41df-b9ae-0754473eca1b_1024x694.png 848w, https://substackcdn.com/image/fetch/$s_!MPdW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb733cef-6462-41df-b9ae-0754473eca1b_1024x694.png 1272w, https://substackcdn.com/image/fetch/$s_!MPdW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb733cef-6462-41df-b9ae-0754473eca1b_1024x694.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MPdW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb733cef-6462-41df-b9ae-0754473eca1b_1024x694.png" width="1024" height="694" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db733cef-6462-41df-b9ae-0754473eca1b_1024x694.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:694,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1189019,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/188005977?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea0d156c-f66e-47a3-8aea-a2a094b15880_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MPdW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb733cef-6462-41df-b9ae-0754473eca1b_1024x694.png 424w, https://substackcdn.com/image/fetch/$s_!MPdW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb733cef-6462-41df-b9ae-0754473eca1b_1024x694.png 848w, https://substackcdn.com/image/fetch/$s_!MPdW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb733cef-6462-41df-b9ae-0754473eca1b_1024x694.png 1272w, https://substackcdn.com/image/fetch/$s_!MPdW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb733cef-6462-41df-b9ae-0754473eca1b_1024x694.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Technical Substrate</h2><p>This works because of a few key properties of CLI-based AI tools:</p><p><strong>Files as the interface.</strong> Everything is Markdown files in directories. I can open them in any editor. I can version them with git. I can back them up, move them, grep them. They&#8217;re mine.</p><p><strong>Git as memory.</strong> My corrections are commits. My drafts are branches. My style evolution is tracked in history. The agent reads this history to learn my preferences. Six months of corrections become training data for better output. I also use <a href="https://github.com/bobmatnyc/kuzu-memory">Kuzu Memory</a> (a graph-based context store) and <a href="https://github.com/bobmatnyc/mcp-vector-search">MCP Vector Search</a> (semantic code search) to enhance context retrieval.</p><p><strong>Composable tooling.</strong> Claude Code can call other tools. Shell scripts. Python. APIs. This means I can integrate any service&#8212;any model, any image generator, any fact-checker&#8212;into unified workflows. The LLM is the orchestrator, not the prison.</p><p><strong>Plaintext as power.</strong> Markdown is readable without special software. I can preview in Obsidian, edit in VS Code, publish to any platform. No lock-in. No format translation. The simplest format is also the most powerful.</p><h2>What I Lost (And Don&#8217;t Miss)</h2><p>Claude.ai has conveniences Claude Code doesn&#8217;t. The Artifacts panel. The visual interface for non-technical users. The ability to share a conversation link. Online workflow.</p><p>I don&#8217;t miss any of it.</p><p>Artifacts were useful for viewing output&#8212;but I&#8217;d rather have real files I can edit directly. The visual interface was friendly&#8212;but I type faster than I click. Conversation sharing was nice&#8212;but I can share a git repo or a Markdown file just as easily.</p><p>What I actually miss: nothing. The things Claude.ai provided that seemed essential turned out to be crutches. I thought I needed a GUI. I needed a filesystem.</p><h2>Who This Isn&#8217;t For</h2><p>Not everyone can or should switch to Claude Code for writing.</p><p>If you&#8217;re not comfortable with the terminal, the learning curve is real. If you don&#8217;t use version control, you won&#8217;t get the style-extraction benefits. If you write occasionally and casually, the setup overhead isn&#8217;t worth it.</p><p>But if you write regularly&#8212;articles, documentation, books&#8212;and you&#8217;re already comfortable with developer tools, this is worth investigating.</p><p>The generate/edit distinction alone is worth understanding. Even if you stay in Claude.ai, knowing when you&#8217;re fighting the tool can save frustration.</p><p>Anthropic has since released workspace-oriented features (Cowork) that improve on the original Claude.ai experience. But for serious writing, I now prefer the file-based workflow. My guess: Anthropic will ship a Markdown-first editor eventually. It&#8217;s an obvious product gap.</p><h2>Getting Started</h2><p>If you want to try this:</p><ol><li><p><strong>Install Claude Code.</strong> It&#8217;s Anthropic&#8217;s official CLI. Works on Mac, Linux, Windows. Or try <a href="https://github.com/bobmatnyc/claude-mpm">Claude MPM</a>, which adds multi-agent orchestration and pre-built workflows on top.</p></li><li><p><strong>Write to files, not conversations.</strong> Tell Claude Code to write your drafts to Markdown files. Edit those files in your preferred editor.</p></li><li><p><strong>Track with git.</strong> Initialize a repo for your writing. Commit your drafts. Your edit history becomes useful data.</p></li><li><p><strong>Add workflows incrementally.</strong> You don&#8217;t need the full MPM setup to benefit. Start with the basics&#8212;files and version control&#8212;and add automation as you identify repetitive tasks.</p></li></ol><p>The core insight isn&#8217;t about any specific tool. It&#8217;s about matching your tools to your cognitive mode. Generate with AI. Edit with editors. Stop forcing one tool to do both.</p><div><hr></div><p><em>I&#8217;m writing a book about agentic coding workflows. This article came from Chapter 7, which covers non-code applications of developer AI tools. More at <a href="https://hyperdev.substack.com/">hyperdev.substack.com</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[2026 Will Be The Year Of Software]]></title><description><![CDATA[And The Year SASS Sees A Major Contraction]]></description><link>https://hyperdev.matsuoka.com/p/2026-will-be-the-year-of-software</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/2026-will-be-the-year-of-software</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Mon, 16 Feb 2026 12:31:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cr0H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dcf7daa-22f1-42fd-a5aa-212680c6ef88_1024x640.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cr0H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dcf7daa-22f1-42fd-a5aa-212680c6ef88_1024x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cr0H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dcf7daa-22f1-42fd-a5aa-212680c6ef88_1024x640.png 424w, https://substackcdn.com/image/fetch/$s_!cr0H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dcf7daa-22f1-42fd-a5aa-212680c6ef88_1024x640.png 848w, https://substackcdn.com/image/fetch/$s_!cr0H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dcf7daa-22f1-42fd-a5aa-212680c6ef88_1024x640.png 1272w, https://substackcdn.com/image/fetch/$s_!cr0H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dcf7daa-22f1-42fd-a5aa-212680c6ef88_1024x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cr0H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dcf7daa-22f1-42fd-a5aa-212680c6ef88_1024x640.png" width="1024" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7dcf7daa-22f1-42fd-a5aa-212680c6ef88_1024x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1659587,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/187970047?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0a02861-d25e-40ba-a883-81b6d6185448_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cr0H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dcf7daa-22f1-42fd-a5aa-212680c6ef88_1024x640.png 424w, https://substackcdn.com/image/fetch/$s_!cr0H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dcf7daa-22f1-42fd-a5aa-212680c6ef88_1024x640.png 848w, https://substackcdn.com/image/fetch/$s_!cr0H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dcf7daa-22f1-42fd-a5aa-212680c6ef88_1024x640.png 1272w, https://substackcdn.com/image/fetch/$s_!cr0H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dcf7daa-22f1-42fd-a5aa-212680c6ef88_1024x640.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In a year when everyone is focused on AI, the bigger story may be what AI enables: a massive explosion of software creation&#8212;and software failures. AI collapses build costs and timelines, which means more software ships, which means fiercer competition and faster commoditization, which means more failures.</p><p>If you build or buy B2B software, here&#8217;s what 2026 looks like.</p><h2>A Message From the Field</h2><p>Here&#8217;s what that shift looks like inside a real product org.</p><p>Last week, <a href="https://www.linkedin.com/in/erikornitz/">Erik Ornitz</a> sent me a message that put words to something I&#8217;d been sensing for months. Erik was my product partner when I ran the Innovations team at TripAdvisor. Now he heads product at Topline Pro:</p><blockquote><p>&#8220;With Claude Code we&#8217;re seeing 2-3x the output we&#8217;ve ever seen before by our top engineers. Literally skyrocketing the past several weeks since Opus 4.5 came out. Just feels like a fundamentally different world all the sudden.</p><p>My PMs/Designers just cannot keep up.</p><p>Does this mean a radically different shape of technology organizations? Old ratios of 1 PM / Designer to 5-8 Engineers feel out the window.</p><p>Are you experiencing the same? Does that mean a major change in the % of budgets towards defining what to build vs. actually building it?&#8221;</p><p>&#8212; <a href="https://www.linkedin.com/in/erikornitz">Erik Ornitz</a>, Head of Product, Topline Pro</p></blockquote><p>The answer to Erik&#8217;s question is yes. To all of it.</p><h2>The Data</h2><p>GitHub&#8217;s <a href="https://octoverse.github.com/">2024 Octoverse report</a> tells the story:</p><ul><li><p><strong>100+ million new repositories</strong> created in 2024</p></li><li><p><strong>~25% year-over-year growth</strong> in total repos (now over 500 million)</p></li><li><p><strong>~98% growth</strong> in generative AI projects alone</p></li><li><p><strong>1.4 million new open source contributors</strong></p></li></ul><p>These represent software being created and iterated on. Many repos are experiments, forks, or prototypes&#8212;but the volume signals a fundamental shift in creation velocity.</p><p>The productivity studies back up what Erik is seeing&#8212;at least directionally. GitHub&#8217;s controlled study showed <strong>56% faster task completion</strong> on specific coding tasks. Stack Overflow&#8217;s survey of 90,000 developers found <strong>70% are using or planning to use AI tools</strong>.</p><p>Erik&#8217;s 2-3x number sounds aggressive against these studies. The gap comes from what you measure. Studies measure isolated tasks with junior-to-mid engineers. Erik is measuring total output from senior engineers who&#8217;ve built multi-agent workflows&#8212;Claude Code orchestrating research, implementation, testing, and documentation in parallel. Different baselines, different measurements, different results.</p><h2>I&#8217;m Living Proof</h2><p>Before 2025, I had never published a single open source project. Not one. In twenty-five years of building software professionally, I never had the bandwidth to maintain a side project while doing my actual job.</p><p>In the past twelve months, I&#8217;ve published seventeen:</p><ul><li><p><strong>claude-mpm</strong> &#8212; Multi-agent orchestration for Claude Code</p></li><li><p><strong>mcp-vector-search</strong> &#8212; Semantic code search via Model Context Protocol</p></li><li><p><strong>kuzu-memory</strong> &#8212; Graph-based memory system for AI agents</p></li></ul><p>These aren&#8217;t toys. They&#8217;re production tools I use daily. What changed: I went from spending 80% of my time on scaffolding and boilerplate to spending 80% of my time on the interesting problems. The grunt work&#8212;test generation, documentation, refactoring&#8212;happens in minutes instead of hours.</p><p>The same engineer. The same available hours. Radically different output. This would have been impossible before Claude Code and Opus 4.5 shipped in late 2025.</p><h2>The Economics Have Flipped</h2><p>Erik&#8217;s real question: if engineers can produce 2-3x the output, what happens to the rest of the organization?</p><p>The old model assumed building software was expensive and slow. The entire SaaS industry is built on this assumption. Why build a CRM when Salesforce exists? Why build analytics when Amplitude exists? Why build anything when you can pay per seat per month for someone else&#8217;s solution?</p><p>The math made sense when custom development meant six-figure budgets and twelve-month timelines.</p><p>The math is changing.</p><p>Based on my own projects and conversations with engineering leaders, I estimate AI tools have reduced the cost of building new greenfield software by roughly an order of magnitude for certain categories of work&#8212;internal tools, CRUD applications, API integrations, developer utilities. Not every category. Not enterprise systems with complex compliance requirements. But for the kinds of software that used to be &#8220;not worth building,&#8221; the math has changed.</p><p>A feature that would have taken a team of three engineers two months can now be built by one engineer in two weeks. That&#8217;s not a study&#8212;that&#8217;s what I&#8217;m seeing in practice.</p><p>When building gets that cheap, the calculus of build versus buy changes completely.</p><h2>SaaS Vendors Should Be Worried</h2><p>If I were playing the stock market right now, I would pay very close attention to SaaS renewal rates.</p><p>Think about what happens when thousands of companies simultaneously realize they can build what they need for less than their annual software licenses cost. The $50K/year internal analytics dashboard? Illustratively: one engineer, one month. The $200K/year customer data integration? Two engineers, one quarter&#8212;if it&#8217;s a narrow, well-defined workflow.</p><p>Not every category is equally vulnerable. <strong>Most at risk</strong>: horizontal admin tools, internal workflow automation, simple analytics, and single-purpose integrations. <strong>More defensible</strong>: compliance-heavy systems of record, platforms with strong network effects, multi-tenant marketplaces, and products built on proprietary data moats.</p><p>Salesforce isn&#8217;t going anywhere in the near term&#8212;their moat is complexity, switching costs, and ecosystem lock-in. That moat is real.</p><p>But the bar is rising. The threshold where it makes sense to buy instead of build is moving up dramatically.</p><p>I expect 2026 will see an unusually high number of SaaS vendors fail&#8212;particularly in the crowded mid-market where differentiation was always thin.</p><p>The ones that survive will need to improve at a pace they&#8217;ve never attempted before. Customer expectations are rising in lockstep with capabilities. B2B software will need to approach B2C quality. Clunky enterprise UIs that customers tolerated because they had no alternative? Those alternatives now exist.</p><h2>The Managed-Service Stack as Force Multiplier</h2><p>None of this would be happening without the parallel explosion in managed platforms and developer services.</p><p>Ten years ago, building a new software product meant provisioning servers, managing databases, handling authentication, building deployment pipelines. The operational overhead often exceeded the development effort.</p><p>Now: Vercel deploys your frontend. Supabase handles your database and auth. Stripe processes payments. Resend sends emails. Everything connects via APIs.</p><p>The composable stack means engineers can focus on the software that differentiates their product. The undifferentiated infrastructure is someone else&#8217;s problem.</p><p>AI coding tools plus composable infrastructure equals massive leverage. One engineer can build and ship what used to require a team.</p><h2>A Warning for the Ambitious</h2><p>Many engineers will be tempted to take their great idea and build a business around it. The tools make it easy. The startup costs are minimal. Why not?</p><p>Because if your only defensibility is the idea and the code, you have no moat.</p><p>AI generates code nearly as easily as English&#8212;for standard patterns and well-documented APIs, anyway. Any idea you can implement, someone else can implement too&#8212;probably faster, probably with more resources, probably with better distribution.</p><p>The SaaS vendors going out of business will be replaced by a flood of new entrants. Most of those new entrants will also fail. The barrier to entry has dropped, but the barriers to sustainable success haven&#8217;t. This is why virtually everything I build is open source. It&#8217;s valuable enough for me that I&#8217;m willing to spend the time to build it. []Charging customers for it? A completely different equation.</p><p>You need something beyond code:</p><ul><li><p><strong>Distribution</strong>: An audience, channel partnerships, or existing customer relationships</p></li><li><p><strong>Community</strong>: A user base that contributes content, plugins, or network value</p></li><li><p><strong>Domain expertise</strong>: Deep knowledge of a niche workflow that takes years to acquire</p></li><li><p><strong>Data advantages</strong>: Proprietary datasets that improve your product over time</p></li><li><p><strong>Integration complexity</strong>: Deep hooks into systems-of-record that make switching painful</p></li></ul><p>Something that can&#8217;t be replicated in a weekend by another engineer with Claude Code.</p><p>The golden age of software creation is also the golden age of software commoditization. Don&#8217;t confuse the ability to build with the ability to win.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TGop!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69e8e74-7b76-440f-80a7-af85a4a026f6_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TGop!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69e8e74-7b76-440f-80a7-af85a4a026f6_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!TGop!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69e8e74-7b76-440f-80a7-af85a4a026f6_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!TGop!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69e8e74-7b76-440f-80a7-af85a4a026f6_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!TGop!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69e8e74-7b76-440f-80a7-af85a4a026f6_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TGop!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69e8e74-7b76-440f-80a7-af85a4a026f6_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d69e8e74-7b76-440f-80a7-af85a4a026f6_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1272963,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/187970047?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69e8e74-7b76-440f-80a7-af85a4a026f6_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TGop!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69e8e74-7b76-440f-80a7-af85a4a026f6_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!TGop!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69e8e74-7b76-440f-80a7-af85a4a026f6_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!TGop!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69e8e74-7b76-440f-80a7-af85a4a026f6_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!TGop!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69e8e74-7b76-440f-80a7-af85a4a026f6_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Disruption Is Already Here</h2><p>Tech layoffs doubled in 2025&#8212;264,000 jobs eliminated according to Layoffs.fyi, compared to roughly 130,000 in 2024. Some of this is cyclical. Some of it is AI.</p><p>Anecdotally, I&#8217;m hearing from engineering managers that their top developers are spending dramatically less time writing code directly&#8212;they&#8217;re orchestrating AI tools instead. The code is still being written, just not by humans, or not by as many humans.</p><p>The disruption won&#8217;t be distributed evenly. Senior engineers who can orchestrate AI tools effectively will become more valuable. Junior engineers who were being paid to write boilerplate will find that work automated.</p><p>Product managers and designers face a different problem: they used to be the bottleneck&#8217;s counterweight. Now they&#8217;re the bottleneck. Erik&#8217;s question about organizational ratios is urgent because the answer affects hiring, budgets, and team structures across the industry.</p><h2>The Bright Spot</h2><p>This is going to be painful for many people. Layoffs are painful. Business failures are painful. Career disruption is painful.</p><p>But we&#8217;re entering a golden age of software.</p><p>More software will be created in 2026 than in any year in history. More problems will be solved by code. More ideas will ship. More experiments will run. More entrepreneurs will try.</p><p>Most of it will be crap, as I said at the start. Sturgeon&#8217;s Law&#8212;90% of everything is crap&#8212;doesn&#8217;t suspend for technological revolutions. But the 10% that isn&#8217;t crap will be extraordinary.</p><p>The tools now exist to build durable, production-quality software at a scale and speed that wasn&#8217;t possible two years ago. Those who learn to use them&#8212;really use them, not just dabble&#8212;will build things that matter.</p><p>I&#8217;ve never been more excited to be an engineer.</p><p>I&#8217;ve also never been more aware of how brutal the transition will be for those caught on the wrong side.</p><p>2026 will be the year of software. Here&#8217;s how to prepare:</p><ul><li><p><strong>Learn agent-generated coding now</strong>. Not AI-assisted (autocomplete, suggestions)&#8212;AI-generated: you describe intent, agents produce complete implementations. This means multi-agent orchestration, prompt engineering for code, and reviewing AI output instead of writing it. The paradigm shift is steep and early movers will have 6-12 months of advantage.</p></li><li><p><strong>Tighten your product discovery loops</strong>. When engineering throughput triples, PM and design become the constraint. The organizations that figure out faster iteration on <em>what</em> to build will outpace those focused only on building faster.</p></li><li><p><strong>Invest in distribution before you need it</strong>. Building is no longer the hard part. Finding users, building brand, creating switching costs&#8212;those are the new differentiators.</p></li></ul><p>The explosion is coming. Make sure you&#8217;re positioned on the right side of it.</p><div><hr></div><p><em>I&#8217;m writing about agentic coding workflows at <a href="https://hyperdev.substack.com/">hyperdev.matsuoka.com</a>. My open source tools are at <a href="https://github.com/bobmatnyc">github.com/bobmatnyc</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[Shumer’s Right About the Tsunami. His Advice Points at the Wrong Shore]]></title><description><![CDATA[The viral AI displacement post gets the diagnosis right and the prescription backward]]></description><link>https://hyperdev.matsuoka.com/p/shumers-right-about-the-tsunami-his</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/shumers-right-about-the-tsunami-his</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Sun, 15 Feb 2026 20:11:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KCLm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee0987e-1176-49ef-b7eb-9ab860622fe4_1024x672.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KCLm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee0987e-1176-49ef-b7eb-9ab860622fe4_1024x672.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KCLm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee0987e-1176-49ef-b7eb-9ab860622fe4_1024x672.png 424w, https://substackcdn.com/image/fetch/$s_!KCLm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee0987e-1176-49ef-b7eb-9ab860622fe4_1024x672.png 848w, https://substackcdn.com/image/fetch/$s_!KCLm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee0987e-1176-49ef-b7eb-9ab860622fe4_1024x672.png 1272w, https://substackcdn.com/image/fetch/$s_!KCLm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee0987e-1176-49ef-b7eb-9ab860622fe4_1024x672.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KCLm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee0987e-1176-49ef-b7eb-9ab860622fe4_1024x672.png" width="1024" height="672" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ee0987e-1176-49ef-b7eb-9ab860622fe4_1024x672.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:672,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1507340,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/188065074?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5932a64c-ab8b-4110-84b0-92adb14dc3b7_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KCLm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee0987e-1176-49ef-b7eb-9ab860622fe4_1024x672.png 424w, https://substackcdn.com/image/fetch/$s_!KCLm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee0987e-1176-49ef-b7eb-9ab860622fe4_1024x672.png 848w, https://substackcdn.com/image/fetch/$s_!KCLm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee0987e-1176-49ef-b7eb-9ab860622fe4_1024x672.png 1272w, https://substackcdn.com/image/fetch/$s_!KCLm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee0987e-1176-49ef-b7eb-9ab860622fe4_1024x672.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Pointing to the wrong shore?</figcaption></figure></div><p>Matt Shumer&#8217;s <a href="https://shumer.dev/something-big-is-happening">&#8220;Something Big Is Happening&#8221;</a> went viral this week. If you are one of the few that haven&#8217;t read it, the argument runs like this: AI has crossed a capability threshold. GPT-5.3 Codex and Claude Opus 4.6 can complete complex projects autonomously. The displacement timeline is 1-5 years, not decades. Prepare accordingly.</p><p>He&#8217;s not wrong about the diagnosis. I&#8217;ve been writing about this transformation for nine months now, tracking my own productivity metrics as AI tools evolved from &#8220;fancy autocomplete&#8221; to something genuinely different. The capability leap is real. So is the timeline.</p><p>Where Shumer loses me is the prescription.</p><p>His advice: use premium AI tools, build financial reserves, pursue genuine interests, spend an hour daily experimenting. Seems sensible enough. But completely backward about what I believe the transformation actually requires.</p><h2>The Diagnosis We Agree On</h2><p>Credit where due: Shumer captures something most commentary misses.</p><p>The METR measurements he cites&#8212;AI task completion capacity doubling every seven months, now accelerating to four&#8212;match what I&#8217;ve observed in practice. Claude Code didn&#8217;t just get incrementally better between Opus 4.0 and 4.6. It crossed a threshold where orchestration became viable. Not &#8220;AI helps me code faster&#8221; but &#8220;AI completes projects while I supervise.&#8221;</p><p>My own numbers tell the story: 77 completed code changes across 27 different projects in six weeks. I run multiple AI assistants simultaneously, each working on its own task while I review the results. I haven&#8217;t opened my traditional coding software for actual development in months.</p><p>Shumer&#8217;s right that this changes things. Where he&#8217;s wrong is assuming the response is survival preparation.</p><h2>The Problem with Survival Tips</h2><p>&#8220;Build financial reserves.&#8221; &#8220;Pursue genuine interests rather than traditional career paths.&#8221; &#8220;Spend one hour daily experimenting.&#8221;</p><p>This is advice for people who expect to be displaced. It&#8217;s the response you&#8217;d give someone watching a wave approach&#8212;find high ground, protect what you can, hope you make it through.</p><p>But that framing assumes the wave destroys rather than transforms. History suggests otherwise.</p><p>I wrote recently about <a href="https://hyperdev.matsuoka.com/p/dont-be-a-canut-be-a-pattern-master">the Jacquard loom lesson</a>. The Canuts were Lyon&#8217;s master silk weavers&#8212;legendary craftspeople whose identity was wrapped up in thread manipulation. When Jacquard&#8217;s programmable loom arrived in 1804, they rioted. Some adapted. Many didn&#8217;t.</p><p>Here&#8217;s what the numbers actually show: total silk workers stayed around 30,000 through the transition. The looms didn&#8217;t eliminate jobs&#8212;they compressed the master craftsman class while creating lower-wage operator roles. By 1831, 308 silk merchants controlled pricing for 5,575 master weavers managing 20,000+ workers.</p><p>The cautionary tale isn&#8217;t mass unemployment. It&#8217;s wage collapse and status compression for those who kept doing the same job while the job&#8217;s value eroded beneath them.</p><p>The Canuts who survived weren&#8217;t the fastest weavers. They were the ones who recognized that &#8220;weaver&#8221; was becoming &#8220;pattern designer&#8221; and &#8220;loom operator&#8221; and &#8220;machine mechanic.&#8221; The skill didn&#8217;t disappear. It changed shape.</p><h2>What Shumer&#8217;s Advice Misses</h2><p>&#8220;Spend one hour daily experimenting with AI tools.&#8221;</p><p>This is advice for a Canut. Practice with the new loom. Get comfortable with the interface. Learn the commands.</p><p>It completely misses what actually becomes valuable.</p><p>The <a href="https://www.faros.ai/blog/ai-software-engineering">Faros AI Productivity Paradox Report</a> analyzed data across thousands of developers and found something telling: &#8220;Adoption skews toward less tenured engineers. Usage is highest among engineers who are newer to the company.&#8221;</p><p>Why? Because junior engineers face different constraints. Their bottleneck is navigating unfamiliar code, accelerating early contributions, learning system patterns. AI helps enormously with that.</p><p>Senior engineers showed lower adoption not because they&#8217;re Luddites&#8212;because their constraints aren&#8217;t code-writing speed. Their bottleneck is &#8220;deep system knowledge and organizational context&#8221; that AI can&#8217;t access. Generating code faster doesn&#8217;t help when the constraint is understanding why the system works the way it does.</p><p>A <a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5713646">University of Chicago Booth working paper</a> found experienced developers were 5-6% <em>more</em> likely to successfully use AI agents for every standard deviation of work experience. Not because they typed better prompts&#8212;because they used &#8220;plan-first&#8221; approaches, laying out objectives and steps before invoking AI.</p><p>Expertise improves the ability to delegate. That&#8217;s not something you learn from an hour of daily experimentation.</p><h2>What&#8217;s Irreducibly Human</h2><p>During a recent knowledge base project&#8212;120 commits over 9 days, roughly 90% Claude-assisted&#8212;I tracked where my time actually went.</p><p>The 12 human-only commits weren&#8217;t about implementation. They were:</p><ul><li><p>Configuration tweaks requiring domain knowledge (model selection for specific use cases)</p></li><li><p>Debug logging when something felt wrong</p></li><li><p>Release management</p></li><li><p>One research document on architecture options</p></li></ul><p>The human contributions were about <em>judgment</em>. Choosing the right model for email writing versus general queries. Knowing when the AI&#8217;s suggestion would create problems downstream. Understanding the client&#8217;s actual workflows well enough to structure the system appropriately.</p><p>What surprised me: the time savings didn&#8217;t come from faster typing. They came from eliminating iteration cycles between &#8220;write code&#8221; and &#8220;realize it doesn&#8217;t fit requirements.&#8221; Specifying clearly upfront meant fewer rewrites&#8212;but that specification work was irreducibly human.</p><p>The <a href="https://www.qodo.ai/blog/state-of-ai-coding-2025/">Qodo 2025 State of AI Coding survey</a> found 65% of developers cite missing context as the primary barrier to shipping AI code without review. That &#8220;missing context&#8221; is exactly what Shumer&#8217;s advice doesn&#8217;t address:</p><p><strong>Business model specifics</strong>: How supplier relationships actually work. Which data matters for a specific service model. Why certain integrations take priority.</p><p><strong>Organizational constraints</strong>: Budget limitations. Timeline pressures. The technical capabilities of staff who&#8217;ll maintain the system.</p><p><strong>Historical context</strong>: Why previous approaches to similar problems failed. What the client tried and rejected. Political dynamics around adoption.</p><p>None of this lives on the public web. It exists in Jira tickets, PowerPoint decks, Slack conversations, and institutional memory. You don&#8217;t acquire it through an hour of daily experimentation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w6ty!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8f8a0c-5d16-4717-9872-5b434fcd5502_1024x599.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w6ty!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8f8a0c-5d16-4717-9872-5b434fcd5502_1024x599.png 424w, https://substackcdn.com/image/fetch/$s_!w6ty!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8f8a0c-5d16-4717-9872-5b434fcd5502_1024x599.png 848w, https://substackcdn.com/image/fetch/$s_!w6ty!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8f8a0c-5d16-4717-9872-5b434fcd5502_1024x599.png 1272w, https://substackcdn.com/image/fetch/$s_!w6ty!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8f8a0c-5d16-4717-9872-5b434fcd5502_1024x599.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w6ty!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8f8a0c-5d16-4717-9872-5b434fcd5502_1024x599.png" width="1024" height="599" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b8f8a0c-5d16-4717-9872-5b434fcd5502_1024x599.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:599,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1369548,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/188065074?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df95e2b-ecf6-4459-8e76-ed469798e000_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!w6ty!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8f8a0c-5d16-4717-9872-5b434fcd5502_1024x599.png 424w, https://substackcdn.com/image/fetch/$s_!w6ty!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8f8a0c-5d16-4717-9872-5b434fcd5502_1024x599.png 848w, https://substackcdn.com/image/fetch/$s_!w6ty!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8f8a0c-5d16-4717-9872-5b434fcd5502_1024x599.png 1272w, https://substackcdn.com/image/fetch/$s_!w6ty!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8f8a0c-5d16-4717-9872-5b434fcd5502_1024x599.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Be a Pattern Master, not a Canut</figcaption></figure></div><h2>Pattern Masters, Not Refugees</h2><p>Shumer frames AI as something happening TO workers. The response he offers is defensive: prepare for impact, build reserves, hope the wave passes.</p><p>The Jacquard lesson suggests a different frame. AI is changing WHAT the work is. The response isn&#8217;t preparation for displacement&#8212;it&#8217;s understanding what becomes valuable when implementation gets automated.</p><p>Two paths survived the Canut transition:</p><p><strong>Pattern designers</strong> who translated vision into punch cards the loom could execute. Not thread manipulators&#8212;system architects who understood what patterns were possible and how to specify them precisely.</p><p><strong>Loom improvers</strong> who made the infrastructure more reliable. Not operators&#8212;engineers who fixed the tension systems, improved card durability, figured out how to chain looms for industrial-scale production.</p><p>The agentic coding transition has the same split.</p><p>You can master the patterns&#8212;writing specs, orchestrating agents, supervising output. Or you can improve the looms&#8212;build the MCP servers, write the orchestration layers, optimize the vector databases that make retrieval-augmented generation work at scale.</p><p>Both roles survive. Thread manipulation shrinks in economic value.</p><h2>Methodology Beats Stockpiling</h2><p>The people seeing productivity gains from AI tools aren&#8217;t spending an hour daily experimenting. They&#8217;re developing methodology.</p><p><a href="https://www.microsoft.com/en-us/research/publication/the-effects-of-generative-ai-on-high-skilled-work-evidence-from-three-field-experiments/">Microsoft Research field experiments</a> across nearly 5,000 developers found 26% productivity gains with AI coding assistants&#8212;with less experienced developers showing higher adoption and greater improvements. But those gains came from structured workflows, integrated tooling, and verification processes&#8212;not casual usage.</p><p>The developers in the <a href="https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/">METR randomized controlled trial</a> who were 19% <em>slower</em> with AI assistance? They were using AI the Shumer way&#8212;open a chat, ask a question, accept the output, repeat. No structured context. No optimized prompts. No verification layer. They felt faster while actually slowing down.</p><p>I&#8217;ve written about <a href="https://hyperdev.matsuoka.com/p/hyperdevs-three-golden-rules">three golden rules</a> that structure my own workflow: let AI write your prompts (research shows 17-50% improvement), make context searchable rather than just present (Lost in the Middle kills accuracy), and build verification into every workflow.</p><p>This isn&#8217;t what you learn from an hour of daily experimentation. It&#8217;s what you develop through deliberate methodology applied to real work with real stakes.</p><h2>The Question Shumer Should Have Asked</h2><p>The question isn&#8217;t &#8220;will I have a job in five years?&#8221;</p><p>It&#8217;s &#8220;what does my job become when implementation gets automated?&#8221;</p><p>For senior engineers, the answer is increasingly clear: subject matter expert plus systems architect. The person who translates ambiguous requirements into precise specifications. The person who identifies when agent outputs miss critical organizational context. The person who maintains system coherence across automated development workflows.</p><p>Jue Wang at Bain <a href="https://www.technologyreview.com/2025/12/15/1128352/rise-of-ai-coding-developers-2026/">told MIT Technology Review</a> that developers already spend only 20-40% of their time coding. The rest goes to analyzing problems, customer feedback, product strategy, administrative tasks.</p><p>AI doesn&#8217;t change what senior engineering is. It reveals what it always was.</p><p>The implementation layer was never the irreducible core. It was infrastructure&#8212;important, but increasingly invisible. What emerges when that layer automates is something both familiar and different. The same judgment work senior engineers always did, now concentrated and visible.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!n9Rf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2146e93-4d9a-4e72-9038-5fb03fcb75e6_1024x731.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!n9Rf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2146e93-4d9a-4e72-9038-5fb03fcb75e6_1024x731.png 424w, https://substackcdn.com/image/fetch/$s_!n9Rf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2146e93-4d9a-4e72-9038-5fb03fcb75e6_1024x731.png 848w, https://substackcdn.com/image/fetch/$s_!n9Rf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2146e93-4d9a-4e72-9038-5fb03fcb75e6_1024x731.png 1272w, https://substackcdn.com/image/fetch/$s_!n9Rf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2146e93-4d9a-4e72-9038-5fb03fcb75e6_1024x731.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!n9Rf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2146e93-4d9a-4e72-9038-5fb03fcb75e6_1024x731.png" width="1024" height="731" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2146e93-4d9a-4e72-9038-5fb03fcb75e6_1024x731.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:731,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1676875,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/188065074?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd48561b-7280-456f-8d50-33934bef6d67_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!n9Rf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2146e93-4d9a-4e72-9038-5fb03fcb75e6_1024x731.png 424w, https://substackcdn.com/image/fetch/$s_!n9Rf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2146e93-4d9a-4e72-9038-5fb03fcb75e6_1024x731.png 848w, https://substackcdn.com/image/fetch/$s_!n9Rf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2146e93-4d9a-4e72-9038-5fb03fcb75e6_1024x731.png 1272w, https://substackcdn.com/image/fetch/$s_!n9Rf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2146e93-4d9a-4e72-9038-5fb03fcb75e6_1024x731.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">This looks nothing like Matt.  Well.  Maybe a bit.</figcaption></figure></div><h2>The Year of Software</h2><p>Here&#8217;s what Shumer&#8217;s displacement framing completely misses: the long tail.</p><p>My friend <a href="https://www.linkedin.com/in/mattrosenberg/">Matt Rosenberg</a> has zero software development experience as a builder. He&#8217;s a marketer who also manages a vacation rental property on Cape Cod. Over the past few weeks he built himself a revenue optimization tool&#8212;a proper one, with dynamic pricing recommendations based on local events, seasonal patterns, and competitor analysis.</p><p>He didn&#8217;t hire a developer. He didn&#8217;t buy enterprise software designed for property management chains. He built exactly what he needed for his specific situation.</p><p>Here&#8217;s what matters about how he got there: Matt spent hours over several weeks doing a deep dive into the tools. Not casual experimentation&#8212;serious investment in understanding what AI coding assistants could and couldn&#8217;t do. His transformation from marketer to builder wasn&#8217;t magic. It was built on two things he already had: deep knowledge of UX from his marketing career, and years of accumulated expertise in the vacation rental space.</p><p>That combination&#8212;domain expertise plus serious tool investment&#8212;is a model for career transformation. Not everyone will replicate Matt&#8217;s results. But the path he took isn&#8217;t &#8220;spend an hour a day experimenting.&#8221; It&#8217;s &#8220;leverage what you already know deeply, and invest real time in learning to express it through new tools.&#8221;</p><p>Here&#8217;s the economics that matter: Matt has a reasonable chance to recoup his effort by sharing this with other Cape Cod hosts&#8212;a small audience with the exact same problem. A smaller but real chance someone picks it up for broader distribution. Maybe it stays a side project. Maybe it becomes a micro-business serving vacation rental owners in seasonal markets. A larger concern would never take on a project with such a small TAM.</p><p>None of those paths existed before.</p><p>In the old model, Matt&#8217;s revenue optimizer would never exist. No developer would build it for one vacation rental property. No SaaS company would target Cape Cod vacation rentals as a market segment. The problem was real, Matt&#8217;s domain expertise was real, but the economics of software creation didn&#8217;t work.</p><p>Now they do. And so do the economics of software distribution. The same tools that let Matt build also let him iterate based on feedback from ten other hosts, add features they need, package it for sharing.</p><p>This is the year of software. Not because developers are being displaced&#8212;because software is finally reaching the long tail of problems that were never economical to solve. The domain expert who understands Cape Cod rental patterns better than any enterprise vendor can encode that knowledge into a working system <em>and</em> find the small audience that needs exactly that.</p><p>Shumer sees AI automating existing jobs. He misses AI creating new economic paths for people who were never developers in the first place.</p><p>The Canuts didn&#8217;t just become pattern masters and loom mechanics. Some became textile entrepreneurs who could suddenly afford custom patterns for small-batch production. The technology didn&#8217;t only change who did the work&#8212;it changed what work was possible.</p><p>This is the new normal if you learn to use the tools.</p><h2>The Bottom Line</h2><p>Shumer&#8217;s right that something big is happening. The capability threshold is real. The timeline is compressed. The transformation will affect every knowledge worker who touches a computer.</p><p>He&#8217;s wrong about what to do.</p><p>The response isn&#8217;t defensive preparation for displacement. It&#8217;s understanding what becomes valuable when AI handles implementation. It&#8217;s developing methodology for specification and orchestration. It&#8217;s acquiring the domain expertise and organizational context that AI can&#8217;t access.</p><p>And for the Matt Rosenbergs of the world&#8212;the domain experts who never learned to code&#8212;the response is recognizing that this is their year. The problems they understand better than anyone can finally become software.</p><p>Don&#8217;t stockpile. Don&#8217;t experiment an hour a day. Don&#8217;t prepare to be a refugee.</p><p>Become a pattern master. Or become a loom improver. Or become the domain expert who finally builds the tool that only you could specify.</p><p>The Canuts who survived didn&#8217;t out-weave the machines. They recognized that the job had changed shape and positioned themselves for what actually remained valuable.</p><p>The transformation is underway. The question isn&#8217;t whether you&#8217;ll make it through. It&#8217;s whether you&#8217;ve recognized what the job is becoming&#8212;and what new jobs are becoming possible.</p><div><hr></div><p><em>I&#8217;m Bob Matsuoka, writing about agentic coding and AI-powered development at <a href="https://hyperdev.substack.com/">HyperDev</a>. For more on the pattern master thesis, read my analysis of <a href="https://hyperdev.matsuoka.com/p/dont-be-a-canut-be-a-pattern-master">the Jacquard loom lesson</a> or my deep dive into <a href="https://hyperdev.matsuoka.com/p/the-irreducibles-what-a-pattern-master">what remains irreducibly human</a>.</em></p><p><strong>Related reading:</strong></p><ul><li><p><a href="https://hyperdev.matsuoka.com/p/dont-be-a-canut-be-a-pattern-master">Don&#8217;t Be a Canut&#8212;Be a Pattern Master</a> - The Jacquard history with data</p></li><li><p><a href="https://hyperdev.matsuoka.com/p/the-irreducibles-what-a-pattern-master">The Irreducibles: What a Pattern Master Does</a> - Where human value actually sits</p></li><li><p><a href="https://hyperdev.matsuoka.com/p/hyperdevs-three-golden-rules">HyperDev&#8217;s Three Golden Rules</a> - Methodology for professional AI work</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Stack Overflow Is Dead]]></title><description><![CDATA[Good Riddance]]></description><link>https://hyperdev.matsuoka.com/p/stack-overflow-is-dead</link><guid isPermaLink="false">https://hyperdev.matsuoka.com/p/stack-overflow-is-dead</guid><dc:creator><![CDATA[Robert Matsuoka]]></dc:creator><pubDate>Thu, 12 Feb 2026 13:30:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3NoI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3NoI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3NoI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png 424w, https://substackcdn.com/image/fetch/$s_!3NoI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png 848w, https://substackcdn.com/image/fetch/$s_!3NoI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png 1272w, https://substackcdn.com/image/fetch/$s_!3NoI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3NoI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png" width="1456" height="838" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:838,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:216241,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/187352749?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3NoI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png 424w, https://substackcdn.com/image/fetch/$s_!3NoI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png 848w, https://substackcdn.com/image/fetch/$s_!3NoI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png 1272w, https://substackcdn.com/image/fetch/$s_!3NoI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cdd995-c7af-4899-a4bd-c401fac47fa7_2145x1234.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Stack Overflow vs Reddit, Discord, and Dev.To</figcaption></figure></div><h2>TL;DR</h2><ul><li><p>Stack Overflow&#8217;s question volume collapsed ~95% from peak&#8212;back to 2008 levels. Traffic down ~75%. The archive remains valuable; new contributions have largely stopped.</p></li><li><p>The decline started in 2018&#8212;four years before ChatGPT. The model was already broken; AI accelerated an existing trend.</p></li><li><p>Developers didn&#8217;t stop communicating&#8212;they migrated to Reddit, Discord, Dev.to, and AI tools. r/programming has 5-6 million members; Discord has 200M+ monthly active users.</p></li><li><p>The key insight: Stack Overflow optimized for <em>definitive answers</em>&#8212;exactly what LLMs do well. Reddit/Discord provide <em>discussion, opinion, validation</em>&#8212;what LLMs struggle with.</p></li><li><p>Transactional Q&amp;A platforms are vulnerable. Community-first platforms are thriving. This is unbundling, not death.</p></li></ul><div><hr></div><p><strong>Stack Overflow still gets read. But it stopped getting written.</strong></p><p>Question volume has collapsed from 200,000/month at peak to under 10,000 today&#8212;a 95% drop. That&#8217;s not a community fading, it&#8217;s a Q&amp;A product being outcompeted.</p><p>Peter Coy wrote a piece in the New York Times recently arguing this signals the end of developer knowledge-sharing. Developers used to share publicly; now they ask ChatGPT privately. &#8220;A little sad,&#8221; he called it.</p><p>I think Coy has it backwards. Developers aren&#8217;t talking less&#8212;they&#8217;re talking elsewhere. The activity migrated to Reddit, Discord, and AI tools. Stack Overflow&#8217;s death isn&#8217;t about lost community. It&#8217;s about an obsolete model being replaced by better ones.</p><h2>The collapse is real</h2><p>Let me be clear: Stack Overflow really is dying. By &#8220;dying&#8221; I mean new contributions&#8212;questions, answers, edits&#8212;have collapsed. The archive remains; the community doesn&#8217;t.</p><p>The numbers are stark. Traffic has collapsed roughly 75% from peak, <a href="https://byteiota.com/stack-overflow-traffic/">according to third-party analyses like ByteIota</a> (based on SimilarWeb estimates). Question volume tells an even starker story: <a href="https://data.stackexchange.com/stackoverflow/query/new">Stack Exchange Data Explorer queries</a> show monthly questions dropping from ~200,000 at the 2014-2017 peak to under 10,000 by late 2025. That&#8217;s back to 2008 levels&#8212;the site&#8217;s launch year.</p><p>I used Stack Overflow heavily for years. Seeing activity fall back to early-2008 levels is hard to overstate.</p><p>Fifteen years of growth erased in under three years.</p><p>The paradox is that <a href="https://survey.stackoverflow.co/2024/">84% of developers still </a><em><a href="https://survey.stackoverflow.co/2024/">browse</a></em><a href="https://survey.stackoverflow.co/2024/"> Stack Overflow</a>. The archive has value. But almost nobody contributes anymore. The site has become a museum&#8212;visited, but not lived in.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-5p9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aafaec3-8a20-45b8-9f67-6f39d8dcd630_1815x915.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-5p9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aafaec3-8a20-45b8-9f67-6f39d8dcd630_1815x915.png 424w, https://substackcdn.com/image/fetch/$s_!-5p9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aafaec3-8a20-45b8-9f67-6f39d8dcd630_1815x915.png 848w, https://substackcdn.com/image/fetch/$s_!-5p9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aafaec3-8a20-45b8-9f67-6f39d8dcd630_1815x915.png 1272w, https://substackcdn.com/image/fetch/$s_!-5p9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aafaec3-8a20-45b8-9f67-6f39d8dcd630_1815x915.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-5p9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aafaec3-8a20-45b8-9f67-6f39d8dcd630_1815x915.png" width="1456" height="734" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9aafaec3-8a20-45b8-9f67-6f39d8dcd630_1815x915.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:734,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:120534,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/187352749?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aafaec3-8a20-45b8-9f67-6f39d8dcd630_1815x915.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-5p9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aafaec3-8a20-45b8-9f67-6f39d8dcd630_1815x915.png 424w, https://substackcdn.com/image/fetch/$s_!-5p9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aafaec3-8a20-45b8-9f67-6f39d8dcd630_1815x915.png 848w, https://substackcdn.com/image/fetch/$s_!-5p9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aafaec3-8a20-45b8-9f67-6f39d8dcd630_1815x915.png 1272w, https://substackcdn.com/image/fetch/$s_!-5p9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aafaec3-8a20-45b8-9f67-6f39d8dcd630_1815x915.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Where developers went</h2><p>Here&#8217;s what the &#8220;developers stopped talking&#8221; narrative misses: they moved.</p><p><strong>Reddit exploded.</strong> r/programming has somewhere between <a href="https://subredditstats.com/r/programming">5-6 million members</a>. r/learnprogramming has around 4 million. Both subreddits are trending at over 1,000% on growth metrics, adding thousands of subscribers daily. These aren&#8217;t ghost towns&#8212;they&#8217;re thriving.</p><p><strong>Discord expanded far beyond gaming.</strong> The service now has <a href="https://discord.com/company">over 200 million monthly active users</a>, and developer communities have exploded. Reactiflux (the React community) has 230,000+ members. Python Discord, Rust Discord, and dozens of framework-specific servers have become the default place for real-time developer discussion.</p><p><strong>Dev.to grew to millions of members.</strong> Built on community-first principles with lower barriers to participation than Stack Overflow ever had.</p><p><strong>The MCP ecosystem exploded.</strong> MCP&#8212;the Model Context Protocol&#8212;lets AI assistants call external tools: APIs, databases, services. Think of it as giving Claude or ChatGPT hands instead of just a mouth. In November 2024, there were maybe 100 MCP servers. By February 2026, <a href="https://glama.ai/mcp/servers">over 17,000</a>. A new form of executable knowledge-sharing emerged in the time it took Stack Overflow to collapse.</p><p>Developers didn&#8217;t stop communicating. They stopped using Stack Overflow.</p><h2>Why Reddit thrives while Stack Overflow dies</h2><p>Here&#8217;s a clarifying question: if LLMs killed Stack Overflow, why didn&#8217;t they kill Reddit?</p><p>The answer reveals the real dynamic at play.</p><p>Stack Overflow optimized for <em>definitive answers</em>. One question, one accepted answer, close the duplicates, move on. The entire system was designed to produce canonical, searchable, authoritative responses to technical questions.</p><p>That&#8217;s exactly what LLMs do. Better. Faster. Without the closure votes and downvotes.</p><p>Reddit optimizes for <em>discussion</em>. There&#8217;s no &#8220;accepted answer.&#8221; The same question can be asked repeatedly without getting closed. People share opinions, debate tradeoffs, validate frustrations, and build community around shared interests.</p><p>LLMs struggle with that. Try asking Claude or ChatGPT &#8220;Is this framework actually good or does it just have good marketing?&#8221; You&#8217;ll get a balanced, diplomatic non-answer. Ask Reddit and you&#8217;ll get thirty developers telling you exactly what they think, with war stories and receipts.</p><p>Factor Stack Overflow Reddit Content model Q&amp;A with &#8220;correct&#8221; answers Discussion threads Duplicate policy Aggressively closed Tolerated, repeated Reputation system High-stakes rep + privileges Lighter-touch karma Engagement type Transactional (get answer, leave) Conversational (participate, stay) AI competition Direct replacement Complementary</p><p>The &#8220;site:reddit.com&#8221; phenomenon tells the story. Users increasingly append that modifier to Google searches specifically because they want human perspectives, not AI-generated summaries or SEO-optimized content farms. They&#8217;re actively seeking out the thing LLMs can&#8217;t easily provide.</p><p>Stack Overflow competed with AI on AI&#8217;s home turf. Reddit doesn&#8217;t.</p><h2>Why developers didn&#8217;t fight for it</h2><p>The product model explains the competitive pressure. But the culture explains why developers didn&#8217;t fight to save it.</p><p>Stack Overflow&#8217;s culture was broken long before ChatGPT arrived. Look at the question volume data: the decline started in 2018&#8212;four full years before ChatGPT launched. Monthly questions dropped from 200,000 to 140,000 before GPT-3&#8217;s 2020 release, and well before ChatGPT&#8217;s late 2022 launch. The trajectory was already set.</p><p>ChatGPT didn&#8217;t kill Stack Overflow. It was the final nail in the coffin.</p><p>In 2019, Stack Overflow surveyed its own community about a much-publicized initiative to improve culture. <a href="https://stackoverflow.blog/2019/07/18/building-community-inclusivity-stack-overflow/">Seventy-three percent of respondents said the site remained &#8220;equally unwelcoming&#8221;</a> compared to before the initiative. This wasn&#8217;t outside criticism&#8212;it was the community itself acknowledging the problem hadn&#8217;t been fixed.</p><p>Anyone who&#8217;s used the site knows what this looked like in practice. You&#8217;d ask a question, spend twenty minutes crafting it carefully, and within seconds someone would mark it as a duplicate of a vaguely related question from 2014. Or close it as &#8220;not a real question.&#8221; Or downvote it without explanation.</p><p>The reputation system created perverse incentives. High-rep users had the power to close questions, and the system rewarded fast closure and strict gatekeeping over patient explanation. New users learned quickly that asking questions was a minefield. The site optimized for the archive, not for learning.</p><p>Public disputes between moderators and leadership became common. Several moderators resigned, citing disagreements over governance and feeling unsupported by the company.</p><p>To be clear: Stack Overflow did things well. The archive is genuinely valuable&#8212;24 million questions and answers representing collective knowledge. Discoverability was excellent. The structured Q&amp;A format created stable, linkable URLs. Canonical answers for common problems saved countless hours.</p><p>But the community that created those answers? That was poisoned years ago.</p><p>LLMs didn&#8217;t kill Stack Overflow. They just offered developers an alternative that didn&#8217;t make them feel stupid for asking questions.</p><h2>What happened to everyone else</h2><p>Stack Overflow isn&#8217;t the only platform affected by this shift. Here are some others:</p><p>Platform Status Model AI Vulnerability Stack Overflow Collapsing Transactional Q&amp;A Direct replacement Experts Exchange Pivoting Paywalled Q&amp;A High Quora Struggling General Q&amp;A High Reddit Thriving Discussion Low Discord Thriving Real-time community Low Dev.to Thriving Community blogging Low Hacker News Stable Curated discussion Low</p><p><strong>Experts Exchange</strong> pivoted hard. Remember them? The original &#8220;answers behind a paywall&#8221; site that Stack Overflow was created to replace? They&#8217;re still around, now positioning themselves as &#8220;the home of human intelligence.&#8221; The anti-AI angle is their entire pitch now.</p><p>The pattern: community-first platforms survive. Transactional Q&amp;A platforms are vulnerable. If your model is &#8220;user asks question, platform provides answer,&#8221; you&#8217;re competing directly with AI. If your model is &#8220;users discuss, debate, and build relationships,&#8221; you&#8217;re not.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d4wR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9ddb14-5cb4-44c4-872e-17d0ec825f25_1184x864.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d4wR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9ddb14-5cb4-44c4-872e-17d0ec825f25_1184x864.png 424w, https://substackcdn.com/image/fetch/$s_!d4wR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9ddb14-5cb4-44c4-872e-17d0ec825f25_1184x864.png 848w, https://substackcdn.com/image/fetch/$s_!d4wR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9ddb14-5cb4-44c4-872e-17d0ec825f25_1184x864.png 1272w, https://substackcdn.com/image/fetch/$s_!d4wR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9ddb14-5cb4-44c4-872e-17d0ec825f25_1184x864.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d4wR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9ddb14-5cb4-44c4-872e-17d0ec825f25_1184x864.png" width="1184" height="864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab9ddb14-5cb4-44c4-872e-17d0ec825f25_1184x864.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:864,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1260702,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hyperdev.matsuoka.com/i/187352749?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9ddb14-5cb4-44c4-872e-17d0ec825f25_1184x864.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!d4wR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9ddb14-5cb4-44c4-872e-17d0ec825f25_1184x864.png 424w, https://substackcdn.com/image/fetch/$s_!d4wR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9ddb14-5cb4-44c4-872e-17d0ec825f25_1184x864.png 848w, https://substackcdn.com/image/fetch/$s_!d4wR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9ddb14-5cb4-44c4-872e-17d0ec825f25_1184x864.png 1272w, https://substackcdn.com/image/fetch/$s_!d4wR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab9ddb14-5cb4-44c4-872e-17d0ec825f25_1184x864.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The new knowledge architecture</h2><p>What&#8217;s replacing Stack Overflow isn&#8217;t a single platform. It&#8217;s a layered ecosystem.</p><p><strong>Layer 1: LLMs for basic questions.</strong> &#8220;How do I parse JSON in Python?&#8221; Don&#8217;t post that anywhere&#8212;just ask Claude. Faster response, no judgment, no risk of being marked as a duplicate. <a href="https://survey.stackoverflow.co/2025/">Eighty-four percent of developers now use AI tools</a>. For basic technical questions, this is often faster and lower-friction than posting ever was.</p><p><strong>Layer 2: MCP servers for executable knowledge.</strong> This is the part most people haven&#8217;t caught up to yet. The Model Context Protocol ecosystem has exploded to 17,000+ servers, with backing from the Linux Foundation and adoption by major players. These aren&#8217;t just answers&#8212;they&#8217;re capabilities. Instead of reading how to do something, you get a tool that does it. Knowledge that executes.</p><p><strong>Layer 3: Communities for discussion.</strong> Reddit, Discord, Dev.to. When you need opinions, validation, or to talk through a problem with humans who&#8217;ve been there, this is where you go. LLMs can tell you <em>how</em> to use a library; humans tell you <em>whether</em> you should.</p><p><strong>Layer 4: Deep expertise for analysis.</strong> Blogs, Substacks, video courses, conference talks. Long-form content that explores ideas in depth, with personality and opinion. This is where the experienced practitioners share hard-won knowledge that doesn&#8217;t fit a Q&amp;A format.</p><p>Here&#8217;s what my workflow looks like now: basic syntax question &#8594; Claude. Need to connect to an API &#8594; MCP server. &#8220;Is this the right architectural approach?&#8221; &#8594; Reddit or Discord. Deep dive on tradeoffs &#8594; find a practitioner&#8217;s blog post.</p><p>This architecture is more sophisticated than Stack Overflow ever was. It&#8217;s specialized, distributed, and each layer does what it&#8217;s good at. The Q&amp;A site tried to be everything; the new ecosystem lets each component excel at its purpose.</p><h2>The counter-arguments</h2><p>Fair criticism exists. Let me address it directly.</p><p><strong>&#8220;Knowledge is fragmented now.&#8221;</strong> True. Your answer might be on Reddit, Discord, a GitHub issue, a blog post, or an MCP server. That&#8217;s friction Stack Overflow didn&#8217;t have. But this is the story of the entire internet&#8212;from centralized portals to distributed everything. We adapted before; we&#8217;ll adapt again.</p><p><strong>&#8220;We&#8217;re losing archival permanence.&#8221;</strong> Discord conversations disappear. Reddit threads get buried. The 24 million Stack Overflow Q&amp;As were searchable and permanent. This is a real loss. But the community that created those answers was already gone. The archive remains; the contribution stopped years ago.</p><p><strong>&#8220;Developers are talking </strong><em><strong>differently</strong></em><strong>, not </strong><em><strong>more</strong></em><strong>.&#8221;</strong> Probably fair. I can&#8217;t prove total knowledge exchange increased. What I can show is that multiple platforms are thriving while Stack Overflow collapses. The activity went somewhere.</p><p><strong>&#8220;Quality control without voting?&#8221;</strong> Reddit has karma. Discord servers have curation. LLMs let you iterate until you get a useful answer. None of these are perfect, but neither was Stack Overflow&#8217;s system&#8212;which surfaced answers based on who posted first and had the most reputation.</p><h2>The bigger picture</h2><p>Stack Overflow was a toll booth on the highway of developer knowledge. For a decade, if you wanted an answer to a programming question, you went through the booth. You tolerated the closure votes, the duplicate flags, the reputation games, because there wasn&#8217;t a better alternative.</p><p>LLMs removed the toll booth.</p><p>Developers didn&#8217;t stop traveling. They stopped paying.</p><p>What we&#8217;re witnessing <em>isn&#8217;t</em> the death of developer communication. It&#8217;s the unbundling of a monopoly. Stack Overflow tried to be the single source of truth for all technical questions. That model was always fragile&#8212;it just took a sufficient technological shock to reveal it.</p><p>The new ecosystem is messier. More distributed. Harder to search&#8212;though agentic coding infrastructure is changing that quickly. (I&#8217;d argue you could learn nearly as much from my <a href="https://github.com/bobmatnyc/mcp-skillset">mcp-skillset</a> as from Stack Overflow. Better organized, semantic search, also built from community contributions. Without the BS.) But it&#8217;s also more human, more specialized, and better matched to how people actually learn and communicate.</p><h2>The sentiment shift</h2><p>One last data point. The <a href="https://survey.stackoverflow.co/2025/">2025 Stack Overflow Developer Survey</a> showed 84% of developers using AI tools&#8212;but sentiment was mixed. Only 60% viewed AI positively, down from over 70%. Forty-six percent actively distrusted AI accuracy.</p><p>That was 2025. Since then, models like Claude Opus 4.5 have made the generative AI question moot. The accuracy concerns that fed developer skepticism are evaporating. When an AI tool can reliably write, debug, and ship production code, the &#8220;will I use this?&#8221; question becomes &#8220;how do I use this effectively?&#8221;</p><p>The holdouts are running out of reasons to hold out.</p><p>Stack Overflow&#8217;s collapse isn&#8217;t a tragedy. A platform that optimized for definitive answers got replaced by tools that provide them faster. The discussion, community, and deep expertise went elsewhere&#8212;to platforms that were better at providing those things all along.</p><p>Good riddance. The future is tools for answers and humans for judgment.</p><div><hr></div><p><em>I&#8217;m Bob Matsuoka, writing about agentic coding and AI-powered development at <a href="https://hyperdev.substack.com/">HyperDev</a>. For more on how AI is reshaping developer tools, read my analysis of <a href="https://hyperdev.matsuoka.com/p/your-ide-is-a-comfort-blanket">Your IDE Is a Comfort Blanket</a> or <a href="https://hyperdev.matsuoka.com/p/the-age-of-the-cli-part-1">The Age of the CLI</a>. Hat tip to <a href="https://www.linkedin.com/in/alexzoghlin/">Alex Zoghlin</a> for sharing Peter Coy&#8217;s article.</em></p>]]></content:encoded></item></channel></rss>