<?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[Breaking Build]]></title><description><![CDATA[ai agents | developer productivity | vibe coding]]></description><link>https://breaking.build</link><image><url>https://substackcdn.com/image/fetch/$s_!wpW8!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09c05981-2642-4deb-afad-470c5abb9c33_1280x1280.png</url><title>Breaking Build</title><link>https://breaking.build</link></image><generator>Substack</generator><lastBuildDate>Sun, 31 May 2026 00:04:42 GMT</lastBuildDate><atom:link href="https://breaking.build/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Dhruv Baldawa]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[breakingbuild@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[breakingbuild@substack.com]]></itunes:email><itunes:name><![CDATA[Dhruv Baldawa]]></itunes:name></itunes:owner><itunes:author><![CDATA[Dhruv Baldawa]]></itunes:author><googleplay:owner><![CDATA[breakingbuild@substack.com]]></googleplay:owner><googleplay:email><![CDATA[breakingbuild@substack.com]]></googleplay:email><googleplay:author><![CDATA[Dhruv Baldawa]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Let Your AI Agent Argue With Itself]]></title><description><![CDATA[A simple adversarial pattern that catches bad plans before they waste hours of execution.]]></description><link>https://breaking.build/p/let-your-ai-agent-argue-with-itself</link><guid isPermaLink="false">https://breaking.build/p/let-your-ai-agent-argue-with-itself</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Mon, 30 Mar 2026 15:01:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!D4kk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028979e7-149c-46d9-9dac-0b0913718209_2752x1536.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_!D4kk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028979e7-149c-46d9-9dac-0b0913718209_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D4kk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028979e7-149c-46d9-9dac-0b0913718209_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!D4kk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028979e7-149c-46d9-9dac-0b0913718209_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!D4kk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028979e7-149c-46d9-9dac-0b0913718209_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!D4kk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028979e7-149c-46d9-9dac-0b0913718209_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D4kk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028979e7-149c-46d9-9dac-0b0913718209_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/028979e7-149c-46d9-9dac-0b0913718209_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6010515,&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://breaking.build/i/192399485?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028979e7-149c-46d9-9dac-0b0913718209_2752x1536.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_!D4kk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028979e7-149c-46d9-9dac-0b0913718209_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!D4kk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028979e7-149c-46d9-9dac-0b0913718209_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!D4kk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028979e7-149c-46d9-9dac-0b0913718209_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!D4kk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F028979e7-149c-46d9-9dac-0b0913718209_2752x1536.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><h1><strong>TL;DR</strong></h1><ul><li><p>Coding agents like Claude Code support subagents&#8212;AI assistants that spin up on demand with their own fresh context, separate from your main conversation</p></li><li><p>When you&#8217;re building something and keep switching approaches&#8212;building, hitting friction, starting over&#8212;that&#8217;s usually a process problem, not a technical one</p></li><li><p>Spawning adversarial subagents pressure-tests your plan before you commit&#8212;like a pre-mortem, but independent</p></li><li><p>One prompt (&#8220;spawn 3 adversarial subagents to review this plan&#8221;) is all it takes; no setup, no configuration</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t1Oo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14d3cd4-13a4-44f1-9b05-b70e6636bfea_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t1Oo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14d3cd4-13a4-44f1-9b05-b70e6636bfea_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!t1Oo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14d3cd4-13a4-44f1-9b05-b70e6636bfea_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!t1Oo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14d3cd4-13a4-44f1-9b05-b70e6636bfea_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!t1Oo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14d3cd4-13a4-44f1-9b05-b70e6636bfea_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t1Oo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14d3cd4-13a4-44f1-9b05-b70e6636bfea_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d14d3cd4-13a4-44f1-9b05-b70e6636bfea_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8687580,&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;:false,&quot;internalRedirect&quot;:&quot;https://breaking.build/i/192399485?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14d3cd4-13a4-44f1-9b05-b70e6636bfea_2816x1536.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_!t1Oo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14d3cd4-13a4-44f1-9b05-b70e6636bfea_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!t1Oo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14d3cd4-13a4-44f1-9b05-b70e6636bfea_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!t1Oo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14d3cd4-13a4-44f1-9b05-b70e6636bfea_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!t1Oo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14d3cd4-13a4-44f1-9b05-b70e6636bfea_2816x1536.png 1456w" sizes="100vw"></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><div><hr></div><p>I was building an ambitious side project, where you sit down excited, and two hours later you&#8217;ve made three decisions, built on the first one, realized it was wrong, and started over.</p><p>That loop&#8212;pick an approach, build it, hit friction, discard it, pick another&#8212;is a specific kind of miserable. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VC0A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0c45403-0e25-4779-9639-a2a260f02d7b_338x183.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VC0A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0c45403-0e25-4779-9639-a2a260f02d7b_338x183.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VC0A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0c45403-0e25-4779-9639-a2a260f02d7b_338x183.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VC0A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0c45403-0e25-4779-9639-a2a260f02d7b_338x183.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VC0A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0c45403-0e25-4779-9639-a2a260f02d7b_338x183.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VC0A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0c45403-0e25-4779-9639-a2a260f02d7b_338x183.jpeg" width="338" height="183" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0c45403-0e25-4779-9639-a2a260f02d7b_338x183.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:183,&quot;width&quot;:338,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Raymond Hettinger&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Raymond Hettinger" title="Raymond Hettinger" srcset="https://substackcdn.com/image/fetch/$s_!VC0A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0c45403-0e25-4779-9639-a2a260f02d7b_338x183.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VC0A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0c45403-0e25-4779-9639-a2a260f02d7b_338x183.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VC0A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0c45403-0e25-4779-9639-a2a260f02d7b_338x183.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VC0A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0c45403-0e25-4779-9639-a2a260f02d7b_338x183.jpeg 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>By the third iteration I was doing that thing Raymond Hettinger talks about&#8212;sitting back and thinking: <em>there must be a better way.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Breaking Build! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1><strong>The Four-Word Fix</strong></h1><p>Midway through that session, I typed something into Claude Code I had tried before, but in a different context:</p><blockquote><p>&#8220;spawn 3 <strong>adversarial</strong> subagents to review this plan.&#8221;</p></blockquote><p>The agents came back with critiques that exposed gaps I didn&#8217;t know existed&#8212;technologies I wasn&#8217;t deeply familiar with, assumptions I hadn&#8217;t questioned. I did 2 more rounds. By the end, I had better questions than I&#8217;d started with, and a plan I felt more confident in.</p><p>It reminded me of running a pre-mortem. Before committing to a direction, you pressure-test it. Except you&#8217;re not imagining failure yourself&#8212;you&#8217;re getting independent perspectives from agents with no stake in the decisions you just made.</p><h1><strong>What Are Subagents?</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lJ_T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8105af4d-c062-4367-94ef-c52fb1f8c311_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lJ_T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8105af4d-c062-4367-94ef-c52fb1f8c311_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!lJ_T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8105af4d-c062-4367-94ef-c52fb1f8c311_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!lJ_T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8105af4d-c062-4367-94ef-c52fb1f8c311_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!lJ_T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8105af4d-c062-4367-94ef-c52fb1f8c311_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lJ_T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8105af4d-c062-4367-94ef-c52fb1f8c311_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8105af4d-c062-4367-94ef-c52fb1f8c311_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8499353,&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://breaking.build/i/192399485?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8105af4d-c062-4367-94ef-c52fb1f8c311_2816x1536.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_!lJ_T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8105af4d-c062-4367-94ef-c52fb1f8c311_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!lJ_T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8105af4d-c062-4367-94ef-c52fb1f8c311_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!lJ_T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8105af4d-c062-4367-94ef-c52fb1f8c311_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!lJ_T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8105af4d-c062-4367-94ef-c52fb1f8c311_2816x1536.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>A quick note if you&#8217;re not already using a coding agent like Claude Code, Codex, OpenCode, or Cursor CLI: this pattern only works there (as far as I have tested so far). These tools support subagents&#8212;AI assistants you can spin up on demand for a specific job. Each one runs in its own fresh context window, separate from your main conversation. Think of them as colleagues who show up, do their work, and report back.</p><p>If you want a deeper primer, Philipp Schmid&#8217;s <a href="https://www.philschmid.de/the-rise-of-subagents">The Rise of Subagents</a> is a good starting point, or you can check out this short video.</p><div id="youtube2-Uk4TtJUykK4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Uk4TtJUykK4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Uk4TtJUykK4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>If you&#8217;re still using a chat interface for coding, you&#8217;re leaving a lot on the table. Coding agents give you a class of power-user features&#8212;subagents being one of them&#8212;that simply don&#8217;t exist in chat.</p><h1><strong>The Maker-Checker Model</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2W2a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44cdc34-b545-4639-8ce4-0738bc1aca41_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2W2a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44cdc34-b545-4639-8ce4-0738bc1aca41_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!2W2a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44cdc34-b545-4639-8ce4-0738bc1aca41_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!2W2a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44cdc34-b545-4639-8ce4-0738bc1aca41_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!2W2a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44cdc34-b545-4639-8ce4-0738bc1aca41_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2W2a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44cdc34-b545-4639-8ce4-0738bc1aca41_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d44cdc34-b545-4639-8ce4-0738bc1aca41_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7080616,&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://breaking.build/i/192399485?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44cdc34-b545-4639-8ce4-0738bc1aca41_2752x1536.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_!2W2a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44cdc34-b545-4639-8ce4-0738bc1aca41_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!2W2a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44cdc34-b545-4639-8ce4-0738bc1aca41_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!2W2a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44cdc34-b545-4639-8ce4-0738bc1aca41_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!2W2a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44cdc34-b545-4639-8ce4-0738bc1aca41_2752x1536.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>OK, so now back to my original problem. There&#8217;s a name for what&#8217;s happening here: the <strong>maker-checker model</strong>.</p><p>The idea: split a task between someone who builds and someone who critiques. Different jobs&#8212;one builds, one questions&#8212;but a shared goal. In financial systems, no transaction goes through without an independent check. The same logic applies here.</p><p>When you spawn an adversarial subagent, it starts with a <strong>completely fresh context window</strong>. It hasn&#8217;t spent the last hour agreeing with your decisions. It only gets the seed prompt&#8212;a summary of what you&#8217;re trying to do&#8212;and nothing else. No accumulated bias. No sycophancy from 50 turns of &#8220;yes, let&#8217;s go with that.&#8221;</p><p>That freshness is what makes the critique reliable. And you don&#8217;t even read it directly&#8212;your main agent synthesizes it first, filters the noise, and presents what matters.</p><p>The critique does two things&#8212;first, it gives you perspectives you can push back on. You&#8217;re not just reading feedback&#8212;you&#8217;re using it as a jumping-off point to ask better questions, dig into gaps in your own understanding, and pressure-test assumptions you didn&#8217;t know you were making. LLMs carry a lot of knowledge. Adversarial subagents are a way to tap into it.</p><p>Second, it narrows your uncertainty. You still don&#8217;t know what you don&#8217;t know&#8212;that doesn&#8217;t change. But something independent reviewed your plan, and the gap between where you are and where you want to go feels smaller. That&#8217;s worth a lot, especially when you&#8217;re building in territory you&#8217;re not fully familiar with.</p><h1><strong>Beyond Planning</strong></h1><p>I use this pattern beyond planning. After writing code, I&#8217;ll spawn one to find gaps in the implementation. Finishing a blog post? Same thing&#8212;flow, structure, readability. The specific task changes. The prompt barely does.</p><p>How many agents to spawn? I usually say 3, sometimes 1. Honestly, I don&#8217;t have a formula. It&#8217;s still arbitrary. But even a single adversarial pass catches things you&#8217;d otherwise miss.</p><h1><strong>Just Say the Words</strong></h1><p>I try this every time I&#8217;m stuck on a plan or unsure about an implementation:</p><blockquote><p><em>Spawn 3 adversarial subagents to review your plan.</em></p></blockquote><p>That&#8217;s it&#8212;no setup, no special workflow. Just say the words. I&#8217;ve made it a habit, and it&#8217;s one of those small shifts that makes the uncertainty feel a little more manageable.</p><div><hr></div><p>If you want to follow along beyond the blog, find me on Twitter/X at <a href="https://x.com/dhruvbaldawa">@dhruvbaldawa</a>. I&#8217;d love to hear your thoughts &#8212; what topics around AI and developer productivity are you most curious about?</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/let-your-ai-agent-argue-with-itself?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Breaking Build! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/let-your-ai-agent-argue-with-itself?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/let-your-ai-agent-argue-with-itself?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[You Should Have an Autonomous AI Workflow (Even If You Don't Always Use It)]]></title><description><![CDATA[Better to have it and not need it than to need it and not have it.]]></description><link>https://breaking.build/p/you-should-have-an-autonomous-ai</link><guid isPermaLink="false">https://breaking.build/p/you-should-have-an-autonomous-ai</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Sun, 22 Mar 2026 05:11:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qSnK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.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_!qSnK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qSnK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!qSnK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!qSnK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!qSnK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qSnK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8988860,&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://breaking.build/i/191673649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.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_!qSnK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!qSnK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!qSnK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!qSnK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5b0f7a-febb-4421-9d97-be41f4715564_2752x1536.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><h1><strong>TL;DR</strong></h1><ul><li><p>Having an autonomous AI workflow isn&#8217;t about using it for everything&#8212;it&#8217;s about having the <em>option</em> to delegate, which changes how you evaluate and prioritize work even when you don&#8217;t use it.</p></li><li><p>The real value is reclaiming your time for the parts that matter&#8212;planning, designing, deciding&#8212;while the agent handles solved problems you&#8217;d otherwise re-solve by hand.</p></li><li><p>The discomfort of letting go isn&#8217;t about the agent&#8217;s capability; it&#8217;s about not yet having confidence in your process&#8212;detailed plans, review agents, and quality gates make it safe.</p></li><li><p>Start with low-stakes work where failure is free, then gradually expand; once you&#8217;ve seen an agent build something correctly while you weren&#8217;t even there, you won&#8217;t go back.</p></li><li><p>These are the worst models you&#8217;ll ever use&#8212;building the muscle now means you compound leverage with every improvement, while people who wait will start from scratch.</p></li></ul><div><hr></div><p>It was a Wednesday evening, the last working day before the Eid Al Fitr long weekend in Dubai. I had an idea for an internal tool&#8212;a test harness I&#8217;d been thinking about for a while. The kind of thing that would take a few days of focused work to build properly.</p><p>I spent a few hours that evening planning&#8212;breaking it down in Plan Mode, and running adversarial sub-agents to poke holes in the approach. By the time I stopped, the plan was almost there, but not quite finalized. I didn&#8217;t get time to review the feedback.</p><p>Thursday morning&#8212;a holiday&#8212;I looked at the adversarial feedback, ran my <a href="https://github.com/dhruvbaldawa/ccconfigs/blob/main/essentials/skills/technical-planning/SKILL.md">technical-planning</a> skill, and had seven milestones. So I started the agent and left for breakfast with my family.</p><p>The first couple of milestones were done by the time we got back. That evening, I clarified a few design decisions and started the next batch. By early noon the next day, everything was ready. All seven milestones complete. Built to spec. 80% test coverage. Quality checks passed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RMR2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b0a80c-7dc2-4b97-82c1-6bfd65eee6d5_3108x1114.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RMR2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b0a80c-7dc2-4b97-82c1-6bfd65eee6d5_3108x1114.png 424w, https://substackcdn.com/image/fetch/$s_!RMR2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b0a80c-7dc2-4b97-82c1-6bfd65eee6d5_3108x1114.png 848w, https://substackcdn.com/image/fetch/$s_!RMR2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b0a80c-7dc2-4b97-82c1-6bfd65eee6d5_3108x1114.png 1272w, https://substackcdn.com/image/fetch/$s_!RMR2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b0a80c-7dc2-4b97-82c1-6bfd65eee6d5_3108x1114.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RMR2!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b0a80c-7dc2-4b97-82c1-6bfd65eee6d5_3108x1114.png" width="1200" height="430.2197802197802" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/46b0a80c-7dc2-4b97-82c1-6bfd65eee6d5_3108x1114.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:522,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:92850,&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;:false,&quot;internalRedirect&quot;:&quot;https://breaking.build/i/191673649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b0a80c-7dc2-4b97-82c1-6bfd65eee6d5_3108x1114.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RMR2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b0a80c-7dc2-4b97-82c1-6bfd65eee6d5_3108x1114.png 424w, https://substackcdn.com/image/fetch/$s_!RMR2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b0a80c-7dc2-4b97-82c1-6bfd65eee6d5_3108x1114.png 848w, https://substackcdn.com/image/fetch/$s_!RMR2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b0a80c-7dc2-4b97-82c1-6bfd65eee6d5_3108x1114.png 1272w, https://substackcdn.com/image/fetch/$s_!RMR2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b0a80c-7dc2-4b97-82c1-6bfd65eee6d5_3108x1114.png 1456w" sizes="100vw"></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">Commit activity of the project over the long weekend</figcaption></figure></div><p>I haven&#8217;t used the tool yet&#8212;it&#8217;s still the weekend. It&#8217;ll probably need a few fixes. But the code is there, and I&#8217;m confident it&#8217;s close. I got the weekend with my family. I didn&#8217;t have to choose.</p><p>The planning was deliberate&#8212;without it, none of this would have worked. But the stakes were low. If the agent didn&#8217;t deliver, I&#8217;d build it next week. I lose nothing. That&#8217;s how I&#8217;ve approached a lot of this. <strong>Try it on something where failure is free.</strong></p><p>But what actually surprised me wasn&#8217;t that the agent could do the work&#8212;I had confidence in the process by then. <strong>It was how long it sustained without me being at my desk</strong>. Every other time, I&#8217;d been sitting there or nearby. Available. This time, I was at breakfast, at the mall, putting my son to sleep. And the work kept moving. That intrigued me more than anything.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C5Ng!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaee740b-e20c-4bc2-9c21-20e8b455ee1d_1444x230.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C5Ng!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaee740b-e20c-4bc2-9c21-20e8b455ee1d_1444x230.png 424w, https://substackcdn.com/image/fetch/$s_!C5Ng!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaee740b-e20c-4bc2-9c21-20e8b455ee1d_1444x230.png 848w, https://substackcdn.com/image/fetch/$s_!C5Ng!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaee740b-e20c-4bc2-9c21-20e8b455ee1d_1444x230.png 1272w, https://substackcdn.com/image/fetch/$s_!C5Ng!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaee740b-e20c-4bc2-9c21-20e8b455ee1d_1444x230.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C5Ng!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaee740b-e20c-4bc2-9c21-20e8b455ee1d_1444x230.png" width="1444" height="230" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eaee740b-e20c-4bc2-9c21-20e8b455ee1d_1444x230.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:230,&quot;width&quot;:1444,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:34254,&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://breaking.build/i/191673649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaee740b-e20c-4bc2-9c21-20e8b455ee1d_1444x230.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_!C5Ng!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaee740b-e20c-4bc2-9c21-20e8b455ee1d_1444x230.png 424w, https://substackcdn.com/image/fetch/$s_!C5Ng!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaee740b-e20c-4bc2-9c21-20e8b455ee1d_1444x230.png 848w, https://substackcdn.com/image/fetch/$s_!C5Ng!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaee740b-e20c-4bc2-9c21-20e8b455ee1d_1444x230.png 1272w, https://substackcdn.com/image/fetch/$s_!C5Ng!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaee740b-e20c-4bc2-9c21-20e8b455ee1d_1444x230.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/subscribe?"><span>Subscribe now</span></a></p><h1><strong>It&#8217;s about having the option</strong></h1><p>That story isn&#8217;t about AI being impressive. It&#8217;s about having a choice that didn&#8217;t exist before. A year ago, the trade-off was simple: work through the weekend, or the tool waits. Now there&#8217;s a third option.</p><p>What I didn&#8217;t expect was how much the option changes your thinking, even when you&#8217;re not using it. Once you know you <em>can</em> hand something off, you evaluate work differently.</p><p>In the past few weeks, POCs that would have taken me multiple days have been finished in a few hours. Not because I&#8217;m working faster&#8212;but because I have the third choice. Plan it, hand it off, and come back to something working.</p><h1><strong>Spend time on what actually matters.</strong></h1><p>I love writing code. But I&#8217;ve wired models to controllers a thousand times. I&#8217;ve rebuilt the same utility functions across dozens of projects. The novelty is gone. These are solved problems I keep re-solving by hand.</p><p>When Copilot launched, it handled this kind of work well&#8212;Autocomplete for the boring parts. But the boundary kept moving. First it was single lines, then functions, then files. Now it&#8217;s moved far enough that I don&#8217;t have to write code at all for these tasks.</p><p>The principle is simple: don&#8217;t re-solve solved problems. <em>Spend time on what isn&#8217;t solved yet&#8212;the planning, designing, architecting, and deciding exactly how I want something to work.</em> The thinking. That&#8217;s where I add value. The AI takes what I&#8217;ve decided and makes sure it gets built.</p><h1><strong>The discomfort of letting go</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JnXP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e0c953-6d0f-483e-8d34-400f989869e9_720x1399.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JnXP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e0c953-6d0f-483e-8d34-400f989869e9_720x1399.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JnXP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e0c953-6d0f-483e-8d34-400f989869e9_720x1399.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JnXP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e0c953-6d0f-483e-8d34-400f989869e9_720x1399.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JnXP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e0c953-6d0f-483e-8d34-400f989869e9_720x1399.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JnXP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e0c953-6d0f-483e-8d34-400f989869e9_720x1399.jpeg" width="720" height="1399" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/71e0c953-6d0f-483e-8d34-400f989869e9_720x1399.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1399,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:377235,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://breaking.build/i/191673649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e0c953-6d0f-483e-8d34-400f989869e9_720x1399.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_!JnXP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e0c953-6d0f-483e-8d34-400f989869e9_720x1399.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JnXP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e0c953-6d0f-483e-8d34-400f989869e9_720x1399.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JnXP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e0c953-6d0f-483e-8d34-400f989869e9_720x1399.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JnXP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e0c953-6d0f-483e-8d34-400f989869e9_720x1399.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><figcaption class="image-caption">checking on how the workflow was performing remotely from bed</figcaption></figure></div><p>Letting go of control is uncomfortable. Having an agent work autonomously&#8212;not knowing exactly what it&#8217;s doing or how it&#8217;s making decisions&#8212;can feel wrong. Especially if you care about quality. I get that.</p><p>But here&#8217;s what I&#8217;ve found: the discomfort isn&#8217;t really about the agent. It&#8217;s about not having confidence in the process.</p><p>A detailed planning session gives you confidence in direction&#8212;you know <em>what</em> will be built. And the process you design around execution gives you confidence in <em>how</em> it gets built. Review agents, validation criteria, quality checks&#8212;these aren&#8217;t optional extras. They&#8217;re what make letting go feel safe. I covered my current workflow in my previous post here.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;91f8dff1-866e-4073-9808-154abfdff7b3&quot;,&quot;caption&quot;:&quot;TL;DR I used to run a kanban-style directory structure with state machines for task tracking. Models and tooling got good enough that it collapsed into a section in CLAUDE.md&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How I Build with AI: February 2026&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1240562,&quot;name&quot;:&quot;Dhruv Baldawa&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9f0e29b-d0f6-4bc4-ae69-5ec5a9a25231_1706x1280.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-03-18T09:00:27.617Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!DKlh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://breaking.build/p/how-i-build-with-ai-february-2026&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:191062463,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1032083,&quot;publication_name&quot;:&quot;Breaking Build&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!zAf-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5639ae9-0f40-4f8d-8e85-816c158dfc2f_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>I didn&#8217;t get here overnight. Everyone figuring this out right now is in the same position&#8212;it&#8217;s a new field, and what works for you might not be what works for someone else.</p><p>But you do have to keep pushing the boundary. Every time I hit something I didn&#8217;t want to do, or didn&#8217;t have the capacity, I&#8217;d try pushing the AI to do it for me. Sometimes it worked, sometimes it didn&#8217;t, and it&#8217;s fine if it didn&#8217;t.</p><h1><strong>Start small, you won&#8217;t go back</strong></h1><p>It started with a small refactor. A utility nobody depended on. The agent got it right. So I handed over something slightly bigger. Then something bigger.</p><p>Each time, I watched&#8212;how was the code quality? Did it follow the patterns I expected? Were the tests meaningful or just coverage padding? Over months, the answer kept being "good enough to</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rxrw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e10ad6-6186-42ad-90f3-fb8cd303644b_2882x1244.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rxrw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e10ad6-6186-42ad-90f3-fb8cd303644b_2882x1244.png 424w, https://substackcdn.com/image/fetch/$s_!rxrw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e10ad6-6186-42ad-90f3-fb8cd303644b_2882x1244.png 848w, https://substackcdn.com/image/fetch/$s_!rxrw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e10ad6-6186-42ad-90f3-fb8cd303644b_2882x1244.png 1272w, https://substackcdn.com/image/fetch/$s_!rxrw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e10ad6-6186-42ad-90f3-fb8cd303644b_2882x1244.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rxrw!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e10ad6-6186-42ad-90f3-fb8cd303644b_2882x1244.png" width="1200" height="517.5824175824176" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3e10ad6-6186-42ad-90f3-fb8cd303644b_2882x1244.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:628,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:308774,&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://breaking.build/i/191673649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e10ad6-6186-42ad-90f3-fb8cd303644b_2882x1244.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rxrw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e10ad6-6186-42ad-90f3-fb8cd303644b_2882x1244.png 424w, https://substackcdn.com/image/fetch/$s_!rxrw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e10ad6-6186-42ad-90f3-fb8cd303644b_2882x1244.png 848w, https://substackcdn.com/image/fetch/$s_!rxrw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e10ad6-6186-42ad-90f3-fb8cd303644b_2882x1244.png 1272w, https://substackcdn.com/image/fetch/$s_!rxrw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e10ad6-6186-42ad-90f3-fb8cd303644b_2882x1244.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">I attempted a simplification run, but the codebase was already quite clean</figcaption></figure></div><p>The scaffolding I built early on&#8212;review processes, quality gates, validation criteria&#8212;compensated for what the models lacked at the time. But as models and platforms improved, the scaffolding simplified. What used to be a directory structure with state machines tracking tasks is now a few lines in a config file. <strong>Same outcomes, less machinery.</strong></p><p>And there&#8217;s a gateway effect. Once you&#8217;ve seen an agent build something correctly&#8212;start to finish, while you weren&#8217;t even there&#8212;you can&#8217;t go back to doing everything by hand. Not because you&#8217;ve gotten lazy. Because you know what&#8217;s possible, and choosing to spend hours on something you could delegate in minutes starts to feel like a misuse of your time.</p><h1><strong>Build the muscle now</strong></h1><p>These are the worst models you&#8217;re ever going to use. That&#8217;s not a complaint&#8212;it&#8217;s the point.</p><p>Models are getting better. Platforms are maturing. The tools themselves have already absorbed the scaffolding I needed six months ago to make autonomous workflows reliable.</p><p>You don&#8217;t stop building websites because dial-up is slow. You build them because when broadband arrives, you already have a presence, you already have distribution. The people who waited have to start from scratch.</p><p>The same applies here. The more you leverage AI now&#8212;the more you hand over, the more you build quality into your process&#8212;the more leverage you get when the next model drops. You&#8217;re not just building a workflow. You&#8217;re building the judgment for when to use it and the trust that lets you step away.</p><h1><strong>What changes</strong></h1><p>The question used to be: Can I build this? Do I have the time, the energy, the uninterrupted hours?</p><p>Now the question is: what do I want to build? And do I want to be the one writing the code, or the one deciding what gets built?</p><p>You don&#8217;t need a complicated setup. You don&#8217;t need to hand over everything. You need a workflow you <em>can</em> use&#8212;an option is right there, waiting for you.</p><p>Don&#8217;t wait for perfect. Start now. Iterate. Start with something where failure is free.</p><p>And then go have breakfast with your family.</p><div><hr></div><p>If you want to follow along beyond the blog, find me on Twitter/X at <a href="https://x.com/dhruvbaldawa">@dhruvbaldawa</a>. I&#8217;d love to hear your thoughts &#8212; what topics around AI and developer productivity are you most curious about?</p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/you-should-have-an-autonomous-ai?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Breaking Build! This post is public, so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/you-should-have-an-autonomous-ai?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/you-should-have-an-autonomous-ai?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[How I Build with AI: February 2026]]></title><description><![CDATA[Every line exists because something breaks without it]]></description><link>https://breaking.build/p/how-i-build-with-ai-february-2026</link><guid isPermaLink="false">https://breaking.build/p/how-i-build-with-ai-february-2026</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Wed, 18 Mar 2026 09:00:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DKlh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.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_!DKlh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DKlh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!DKlh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!DKlh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!DKlh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DKlh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4881476,&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://breaking.build/i/191062463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.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_!DKlh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!DKlh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!DKlh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!DKlh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.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><h1><strong>TL;DR</strong></h1><ul><li><p>I used to run a kanban-style directory structure with state machines for task tracking. Models and tooling got good enough that it collapsed into a section in CLAUDE.md</p></li><li><p>Start in Plan Mode: same philosophy as working with an engineer&#8212;align on the approach before anyone touches code</p></li><li><p>Every commit has validation criteria: a concrete pass/fail the agent uses to self-check, and which reviewers use to verify if the implementation does what was expected. Distrust and validate.</p></li><li><p>Preference negotiation before the plan is finalized: review frequency, commit strategy, review cycles&#8212;same process, different dial based on whether you&#8217;re building a POC or production code</p></li><li><p>Two aggressive reviewers per commit&#8212;a senior engineer for architecture and code quality, a test reviewer for test quality. Focused agents produce better outcomes. Quality is what gives you speed.</p></li><li><p>&#8220;No shortcuts. No laziness. Quality is non-negotiable.&#8221; This needs to be in the config&#8212;Claude Opus 4.5/4.6 biases toward speed as context fills up; making it explicit raises the floor</p></li></ul><h1><strong>From kanban directories to a config file</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jMRW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb03cdad-8ecf-4a72-976c-0c09b1ac9fea_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jMRW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb03cdad-8ecf-4a72-976c-0c09b1ac9fea_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!jMRW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb03cdad-8ecf-4a72-976c-0c09b1ac9fea_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!jMRW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb03cdad-8ecf-4a72-976c-0c09b1ac9fea_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!jMRW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb03cdad-8ecf-4a72-976c-0c09b1ac9fea_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jMRW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb03cdad-8ecf-4a72-976c-0c09b1ac9fea_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db03cdad-8ecf-4a72-976c-0c09b1ac9fea_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5804340,&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;:false,&quot;internalRedirect&quot;:&quot;https://breaking.build/i/191062463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb03cdad-8ecf-4a72-976c-0c09b1ac9fea_2752x1536.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_!jMRW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb03cdad-8ecf-4a72-976c-0c09b1ac9fea_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!jMRW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb03cdad-8ecf-4a72-976c-0c09b1ac9fea_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!jMRW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb03cdad-8ecf-4a72-976c-0c09b1ac9fea_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!jMRW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb03cdad-8ecf-4a72-976c-0c09b1ac9fea_2752x1536.png 1456w" sizes="100vw"></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>That&#8217;s what my workflow looked like last year. A <code>.plans/</code> directory, subdirectories for each project, task files moving between <code>pending/</code> &#8594; <code>implementation/</code> &#8594; <code>review/</code> &#8594; <code>testing/</code> &#8594; <code>completed/</code>. Commands to invoke at each stage. State to track.</p><p>This is what it looks like now.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Breaking Build! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Mfdp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5fc6bf8-0aa4-464e-af17-2f393d48076d_1920x1560.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Mfdp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5fc6bf8-0aa4-464e-af17-2f393d48076d_1920x1560.png 424w, https://substackcdn.com/image/fetch/$s_!Mfdp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5fc6bf8-0aa4-464e-af17-2f393d48076d_1920x1560.png 848w, https://substackcdn.com/image/fetch/$s_!Mfdp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5fc6bf8-0aa4-464e-af17-2f393d48076d_1920x1560.png 1272w, https://substackcdn.com/image/fetch/$s_!Mfdp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5fc6bf8-0aa4-464e-af17-2f393d48076d_1920x1560.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Mfdp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5fc6bf8-0aa4-464e-af17-2f393d48076d_1920x1560.png" width="1456" height="1183" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f5fc6bf8-0aa4-464e-af17-2f393d48076d_1920x1560.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1183,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:327538,&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;:false,&quot;internalRedirect&quot;:&quot;https://breaking.build/i/191062463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5fc6bf8-0aa4-464e-af17-2f393d48076d_1920x1560.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_!Mfdp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5fc6bf8-0aa4-464e-af17-2f393d48076d_1920x1560.png 424w, https://substackcdn.com/image/fetch/$s_!Mfdp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5fc6bf8-0aa4-464e-af17-2f393d48076d_1920x1560.png 848w, https://substackcdn.com/image/fetch/$s_!Mfdp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5fc6bf8-0aa4-464e-af17-2f393d48076d_1920x1560.png 1272w, https://substackcdn.com/image/fetch/$s_!Mfdp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5fc6bf8-0aa4-464e-af17-2f393d48076d_1920x1560.png 1456w" sizes="100vw"></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 whole thing collapsed into a Plan Mode section in <a href="https://github.com/dhruvbaldawa/ccconfigs/blob/main/config/CLAUDE.md">CLAUDE.md</a>. Same outcomes&#8212;autonomous execution, review cycles, quality gates&#8212;but the platform absorbed the scaffolding.</p><p>Models got better at following structured instructions without needing machinery around them. Claude Code&#8217;s <a href="https://x.com/trq212/status/2014480496013803643">native Tasks feature</a> replaced the kanban directories. <a href="https://www.threads.com/@boris_cherny/post/DRgyCN5jjYA/claude-now-writes-plan-files-to-your-filesystem-and-you-can-edit-them-by?hl=en">Plans now live in the filesystem as markdown files</a>; no shuffling files between folders.</p><p>What&#8217;s left is the config.</p><p>One agent implements. Two review. For each commit: implement, verify, and hand off to both reviewers in parallel. They leave findings. The implementer addresses them. The loop repeats until both reviewers sign off&#8212;then you commit. A single commit can go through 3-4 review cycles before that happens.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y7Se!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95520958-1240-451d-bb80-e9d610d366f7_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y7Se!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95520958-1240-451d-bb80-e9d610d366f7_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Y7Se!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95520958-1240-451d-bb80-e9d610d366f7_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Y7Se!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95520958-1240-451d-bb80-e9d610d366f7_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Y7Se!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95520958-1240-451d-bb80-e9d610d366f7_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y7Se!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95520958-1240-451d-bb80-e9d610d366f7_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/95520958-1240-451d-bb80-e9d610d366f7_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5490835,&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://breaking.build/i/191062463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95520958-1240-451d-bb80-e9d610d366f7_2752x1536.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_!Y7Se!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95520958-1240-451d-bb80-e9d610d366f7_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Y7Se!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95520958-1240-451d-bb80-e9d610d366f7_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Y7Se!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95520958-1240-451d-bb80-e9d610d366f7_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Y7Se!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95520958-1240-451d-bb80-e9d610d366f7_2752x1536.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><h1><strong>Rule zero: always start in Plan Mode</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mblP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefd1b2ee-cbc9-4237-8989-dc705cf74397_1856x556.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mblP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefd1b2ee-cbc9-4237-8989-dc705cf74397_1856x556.png 424w, https://substackcdn.com/image/fetch/$s_!mblP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefd1b2ee-cbc9-4237-8989-dc705cf74397_1856x556.png 848w, https://substackcdn.com/image/fetch/$s_!mblP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefd1b2ee-cbc9-4237-8989-dc705cf74397_1856x556.png 1272w, https://substackcdn.com/image/fetch/$s_!mblP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefd1b2ee-cbc9-4237-8989-dc705cf74397_1856x556.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mblP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefd1b2ee-cbc9-4237-8989-dc705cf74397_1856x556.png" width="1856" height="556" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efd1b2ee-cbc9-4237-8989-dc705cf74397_1856x556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:556,&quot;width&quot;:1856,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:85329,&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://breaking.build/i/191062463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcaed08a-8aa6-4eb4-9f16-cd16f5ec089b_1920x556.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_!mblP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefd1b2ee-cbc9-4237-8989-dc705cf74397_1856x556.png 424w, https://substackcdn.com/image/fetch/$s_!mblP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefd1b2ee-cbc9-4237-8989-dc705cf74397_1856x556.png 848w, https://substackcdn.com/image/fetch/$s_!mblP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefd1b2ee-cbc9-4237-8989-dc705cf74397_1856x556.png 1272w, https://substackcdn.com/image/fetch/$s_!mblP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefd1b2ee-cbc9-4237-8989-dc705cf74397_1856x556.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>I work with Claude Code the same way I&#8217;d work with an engineer. You don&#8217;t hand someone a task and walk away&#8212;you talk it through first. What are we building, how are we approaching it, and what does done look like? Then they go.</p><p>Plan Mode is that conversation&#8212;alignment before code. You see what the agent will do before it does anything&#8212;and if something&#8217;s off, you catch it now instead of three commits later.</p><p>Without it, the agent optimizes locally&#8212;figuring things out on the go, making decisions commit by commit without seeing the full picture. I&#8217;ve had tasks where skipping Plan Mode caused the agent to go in a completely different direction from what I intended. Or turned a small change into a full refactor because it decided it needed to restructure first. Undoing that is expensive. Planning upfront means the agent sees the problem holistically, not just the next step.</p><h1><strong>Atomic commits&#8212;the unit of work</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SRJs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff11ef315-fc84-4221-a26e-7343611a4aaa_1848x562.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SRJs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff11ef315-fc84-4221-a26e-7343611a4aaa_1848x562.png 424w, https://substackcdn.com/image/fetch/$s_!SRJs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff11ef315-fc84-4221-a26e-7343611a4aaa_1848x562.png 848w, https://substackcdn.com/image/fetch/$s_!SRJs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff11ef315-fc84-4221-a26e-7343611a4aaa_1848x562.png 1272w, https://substackcdn.com/image/fetch/$s_!SRJs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff11ef315-fc84-4221-a26e-7343611a4aaa_1848x562.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SRJs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff11ef315-fc84-4221-a26e-7343611a4aaa_1848x562.png" width="1456" height="443" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f11ef315-fc84-4221-a26e-7343611a4aaa_1848x562.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:443,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:105246,&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://breaking.build/i/191062463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff11ef315-fc84-4221-a26e-7343611a4aaa_1848x562.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_!SRJs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff11ef315-fc84-4221-a26e-7343611a4aaa_1848x562.png 424w, https://substackcdn.com/image/fetch/$s_!SRJs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff11ef315-fc84-4221-a26e-7343611a4aaa_1848x562.png 848w, https://substackcdn.com/image/fetch/$s_!SRJs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff11ef315-fc84-4221-a26e-7343611a4aaa_1848x562.png 1272w, https://substackcdn.com/image/fetch/$s_!SRJs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff11ef315-fc84-4221-a26e-7343611a4aaa_1848x562.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>Every commit in the plan includes three things: the changes made, the tests added or modified, and the validation criteria.</p><p>The first two are obvious. The third is the important one.</p><p>My default when working with agents is to <strong>distrust and validate</strong>. Agents take shortcuts. They skip steps, drift from the requirements, and&#8212;if left unchecked&#8212;produce something that looks right without being right. Validation criteria is the fix: a specific, objective check that tells the agent what &#8220;done&#8221; actually means. Not interpretation&#8212;a concrete pass/fail the agent can verify before handing off, and that reviewers can check against.</p><p>Without it, the agent has no way to know if it&#8217;s actually done the right thing. It becomes a human-in-the-loop process&#8212;you review every commit, course correct, and verify manually. That doesn&#8217;t scale past small tasks.</p><h1><strong>Preference negotiation</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!R_0Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900683fd-e746-4b1c-8a63-9eeef7e350a0_1848x487.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!R_0Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900683fd-e746-4b1c-8a63-9eeef7e350a0_1848x487.png 424w, https://substackcdn.com/image/fetch/$s_!R_0Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900683fd-e746-4b1c-8a63-9eeef7e350a0_1848x487.png 848w, https://substackcdn.com/image/fetch/$s_!R_0Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900683fd-e746-4b1c-8a63-9eeef7e350a0_1848x487.png 1272w, https://substackcdn.com/image/fetch/$s_!R_0Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900683fd-e746-4b1c-8a63-9eeef7e350a0_1848x487.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!R_0Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900683fd-e746-4b1c-8a63-9eeef7e350a0_1848x487.png" width="1456" height="384" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/900683fd-e746-4b1c-8a63-9eeef7e350a0_1848x487.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:384,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:151676,&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://breaking.build/i/191062463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900683fd-e746-4b1c-8a63-9eeef7e350a0_1848x487.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_!R_0Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900683fd-e746-4b1c-8a63-9eeef7e350a0_1848x487.png 424w, https://substackcdn.com/image/fetch/$s_!R_0Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900683fd-e746-4b1c-8a63-9eeef7e350a0_1848x487.png 848w, https://substackcdn.com/image/fetch/$s_!R_0Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900683fd-e746-4b1c-8a63-9eeef7e350a0_1848x487.png 1272w, https://substackcdn.com/image/fetch/$s_!R_0Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900683fd-e746-4b1c-8a63-9eeef7e350a0_1848x487.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>Before the plan is finalized, the agent asks three questions: How often do you want to review&#8212;after every commit or at the end? Commit as you go, or batch at the end? One review cycle per commit, or iterate until approved?</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gX8Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa99f7569-db9b-4e8c-9fb8-a45317fff3f0_960x231.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gX8Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa99f7569-db9b-4e8c-9fb8-a45317fff3f0_960x231.gif 424w, https://substackcdn.com/image/fetch/$s_!gX8Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa99f7569-db9b-4e8c-9fb8-a45317fff3f0_960x231.gif 848w, https://substackcdn.com/image/fetch/$s_!gX8Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa99f7569-db9b-4e8c-9fb8-a45317fff3f0_960x231.gif 1272w, https://substackcdn.com/image/fetch/$s_!gX8Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa99f7569-db9b-4e8c-9fb8-a45317fff3f0_960x231.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gX8Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa99f7569-db9b-4e8c-9fb8-a45317fff3f0_960x231.gif" width="960" height="231" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a99f7569-db9b-4e8c-9fb8-a45317fff3f0_960x231.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:231,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:591286,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://breaking.build/i/191062463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa99f7569-db9b-4e8c-9fb8-a45317fff3f0_960x231.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gX8Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa99f7569-db9b-4e8c-9fb8-a45317fff3f0_960x231.gif 424w, https://substackcdn.com/image/fetch/$s_!gX8Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa99f7569-db9b-4e8c-9fb8-a45317fff3f0_960x231.gif 848w, https://substackcdn.com/image/fetch/$s_!gX8Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa99f7569-db9b-4e8c-9fb8-a45317fff3f0_960x231.gif 1272w, https://substackcdn.com/image/fetch/$s_!gX8Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa99f7569-db9b-4e8c-9fb8-a45317fff3f0_960x231.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Not all work is equal. A POC you want to move through quickly is a different scenario from production code you&#8217;ll maintain for the next two years. Same process, different dial. Asking upfront means the workflow matches the task&#8212;fast and low-ceremony when complexity is low, thorough and deliberate when quality needs to hold up over time.</p><h1><strong>The commit loop</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yLa4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0935bf36-11c9-4877-954f-f0035b1ee498_1848x508.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yLa4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0935bf36-11c9-4877-954f-f0035b1ee498_1848x508.png 424w, https://substackcdn.com/image/fetch/$s_!yLa4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0935bf36-11c9-4877-954f-f0035b1ee498_1848x508.png 848w, https://substackcdn.com/image/fetch/$s_!yLa4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0935bf36-11c9-4877-954f-f0035b1ee498_1848x508.png 1272w, https://substackcdn.com/image/fetch/$s_!yLa4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0935bf36-11c9-4877-954f-f0035b1ee498_1848x508.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yLa4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0935bf36-11c9-4877-954f-f0035b1ee498_1848x508.png" width="1456" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0935bf36-11c9-4877-954f-f0035b1ee498_1848x508.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:198256,&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://breaking.build/i/191062463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0935bf36-11c9-4877-954f-f0035b1ee498_1848x508.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_!yLa4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0935bf36-11c9-4877-954f-f0035b1ee498_1848x508.png 424w, https://substackcdn.com/image/fetch/$s_!yLa4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0935bf36-11c9-4877-954f-f0035b1ee498_1848x508.png 848w, https://substackcdn.com/image/fetch/$s_!yLa4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0935bf36-11c9-4877-954f-f0035b1ee498_1848x508.png 1272w, https://substackcdn.com/image/fetch/$s_!yLa4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0935bf36-11c9-4877-954f-f0035b1ee498_1848x508.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>This is the engine. Everything else exists to make this work.</p><p>Implement. Verify against the criteria. Hand it off to both reviewers in parallel. Address their findings. Loop until both sign off. Commit. Move to the next.</p><p>The order matters. Verification happens before review&#8212;the implementer doesn&#8217;t hand off work that hasn&#8217;t been checked against its own definition of done. And you don&#8217;t proceed to the next commit until the current one is approved&#8212;no half-finished work accumulating in the background.</p><p>The workflow lives in the plan file&#8212;once planning is done, the process steps are always in context. The agent doesn&#8217;t forget what it&#8217;s supposed to do. (It can still cut corners on effort as context fills up&#8212;that&#8217;s a different problem, addressed in the quality standards section.)</p><p>Each commit is also a verified green state. When the next task starts, everything that came before is done, reviewed, and working. If something goes wrong mid-session, you&#8217;re never far from solid ground&#8212;fall back to the last commit and start again.</p><h1><strong>The review agents</strong></h1><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2d0caef-a577-4499-a6de-252cb845fb11_1920x1718.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03978d9b-29f0-4352-b94a-e4298abfde17_1920x1810.png&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24492edf-9353-4bd3-a7dc-366c062f9dd9_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>Two reviewers, not one. Not more.</p><p>More reviewers means more tokens per review cycle&#8212;and past a certain point, you&#8217;re paying for noise, not signal. There&#8217;s also a practical ceiling: in my experience, the more instructions you give an agent, the worse it performs&#8212;and that effect gets worse with less capable models. Focused agents produce better outcomes.</p><p>The two things I will not compromise on: decisions that make the system hard to extend, and tests that give a false sense of security&#8212;one reviewer for each.</p><ul><li><p><strong><a href="https://github.com/dhruvbaldawa/ccconfigs/blob/main/essentials/agents/senior-engineer-reviewer.md">Senior engineer reviewer</a></strong>&#8212;for architecture, design decisions, and code structure. Not just whether it works, but whether it&#8217;s built in a way that won&#8217;t become a burden.</p></li><li><p><strong><a href="https://github.com/dhruvbaldawa/ccconfigs/blob/main/essentials/agents/test-reviewer.md">Test reviewer</a></strong>&#8212;test quality exclusively. Missing edge cases, boundary conditions, and security checks. Tests that inflate coverage without increasing confidence are worse than no tests. This gets its own reviewer because test quality is important enough not to share attention with anything else.</p></li></ul><p>Both are deliberately hostile. I&#8217;d rather have more comments to work through than fewer polished ones. A polite reviewer gives false confidence. An aggressive one gives you more to filter&#8212;but what survives is actually solid.</p><p><strong>Quality is what gives you speed</strong>&#8212;not short-term speed, but the kind that compounds and helps you move faster.</p><p>Without them, you&#8217;re trusting the implementer to catch its own mistakes. It won&#8217;t.</p><h1><strong>Quality standards&#8212;why you have to say it</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BKzX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5736c22-9612-4d20-9bad-e3a763068ce3_1848x317.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BKzX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5736c22-9612-4d20-9bad-e3a763068ce3_1848x317.png 424w, https://substackcdn.com/image/fetch/$s_!BKzX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5736c22-9612-4d20-9bad-e3a763068ce3_1848x317.png 848w, https://substackcdn.com/image/fetch/$s_!BKzX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5736c22-9612-4d20-9bad-e3a763068ce3_1848x317.png 1272w, https://substackcdn.com/image/fetch/$s_!BKzX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5736c22-9612-4d20-9bad-e3a763068ce3_1848x317.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BKzX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5736c22-9612-4d20-9bad-e3a763068ce3_1848x317.png" width="1456" height="250" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5736c22-9612-4d20-9bad-e3a763068ce3_1848x317.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:250,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:89131,&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://breaking.build/i/191062463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5736c22-9612-4d20-9bad-e3a763068ce3_1848x317.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_!BKzX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5736c22-9612-4d20-9bad-e3a763068ce3_1848x317.png 424w, https://substackcdn.com/image/fetch/$s_!BKzX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5736c22-9612-4d20-9bad-e3a763068ce3_1848x317.png 848w, https://substackcdn.com/image/fetch/$s_!BKzX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5736c22-9612-4d20-9bad-e3a763068ce3_1848x317.png 1272w, https://substackcdn.com/image/fetch/$s_!BKzX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5736c22-9612-4d20-9bad-e3a763068ce3_1848x317.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The <a href="https://github.com/dhruvbaldawa/ccconfigs/blob/main/config/CLAUDE.md">CLAUDE.md</a> has a line that reads: <strong>&#8220;No shortcuts. No laziness. Quality is non-negotiable.&#8221;</strong></p><p>It needs to be there. I added it after noticing a specific pattern: Claude Opus 4.5 and 4.6 have a bias toward moving fast, and that bias gets stronger as the context fills up. The agent starts skipping ahead rather than slowing down to fix things properly. That line directly addresses it.</p><p>Before I added it, the pattern was clear: the agent would ignore review feedback, deem findings unimportant, and move on, or skip the review step entirely.</p><p>Since adding it, the agent&#8217;s behavior has changed noticeably. Critical and major issues get addressed. And something I didn&#8217;t expect: even minor feedback that doesn&#8217;t require much work&#8212;the agent handles it and moves on. No pushback, no deferral.</p><p>There are still occasional lapses. But the floor is higher.</p><p>With AI, compromising on quality is a choice, not a constraint. The cost of writing quality code is near zero. If quality slips, the instructions allow it. So the instructions don&#8217;t.</p><h1><strong>When there&#8217;s exploration involved</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!olAU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec3c9eb-dcf2-4329-885e-55cf58b63364_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!olAU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec3c9eb-dcf2-4329-885e-55cf58b63364_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!olAU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec3c9eb-dcf2-4329-885e-55cf58b63364_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!olAU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec3c9eb-dcf2-4329-885e-55cf58b63364_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!olAU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec3c9eb-dcf2-4329-885e-55cf58b63364_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!olAU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec3c9eb-dcf2-4329-885e-55cf58b63364_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ec3c9eb-dcf2-4329-885e-55cf58b63364_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9144101,&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://breaking.build/i/191062463?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec3c9eb-dcf2-4329-885e-55cf58b63364_2752x1536.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_!olAU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec3c9eb-dcf2-4329-885e-55cf58b63364_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!olAU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec3c9eb-dcf2-4329-885e-55cf58b63364_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!olAU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec3c9eb-dcf2-4329-885e-55cf58b63364_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!olAU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec3c9eb-dcf2-4329-885e-55cf58b63364_2752x1536.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 workflow above assumes you know roughly what you&#8217;re building. When you don&#8217;t&#8212;unfamiliar technology, unclear approach, high unknowns&#8212;planning needs an extra step.</p><p>I work with the agent to develop a plan, but before committing to the plan, I spawn 2-3 &#8220;adversarial&#8221; sub-agents to critique it. Their job is to find holes: wrong assumptions, missing constraints, options I haven&#8217;t considered. It&#8217;s a pre-mortem before any code exists. Speed goes down. Decision quality goes up. Problems that would have surfaced mid-implementation get caught before any code is written.</p><p>One thing that makes this work is having MCP servers or real-time search in your coding setup. Plans built on current information just fail less often in execution.</p><h1><strong>Limitations</strong></h1><p>The workflow isn&#8217;t perfectly calibrated. Review agents spawn for every commit&#8212;including trivial ones where the overhead isn&#8217;t worth it. A documentation update goes through the same loop as a complex feature, with the same reviewers. That&#8217;s not ideal&#8212;different tasks need different reviewers. A doc change doesn&#8217;t need a senior engineer; it needs something focused on documentation quality.</p><p>The cleaner solution would be to move this out of CLAUDE.md entirely&#8212;into a separate skill that dynamically selects reviewers based on the nature and complexity of the change. I haven&#8217;t built that yet, so I've kept it simple for now.</p><p>The review loop consistently catches real problems. The overhead calibration is where it&#8217;s still rough.</p><h1><strong>Where this goes</strong></h1><p>Simpler systems are easier to work with, manage, and change. Every time models improved or tooling improved, I saw it as an opportunity to simplify&#8212;not to add more. The end outcome has stayed roughly the same. The system is a fraction of what it used to be.</p><p>What feels like necessary scaffolding right now probably won&#8217;t be soon.</p><div><hr></div><p>Here are the links to the artifacts I mentioned:</p><ul><li><p><a href="https://github.com/dhruvbaldawa/ccconfigs/blob/main/config/CLAUDE.md">CLAUDE.md</a></p></li><li><p><a href="https://github.com/dhruvbaldawa/ccconfigs/blob/main/essentials/agents/test-reviewer.md">Test Reviewer</a></p></li><li><p><a href="https://github.com/dhruvbaldawa/ccconfigs/blob/main/essentials/agents/senior-engineer-reviewer.md">Senior Engineer Reviewer</a></p></li></ul><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/how-i-build-with-ai-february-2026?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Breaking Build! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/how-i-build-with-ai-february-2026?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/how-i-build-with-ai-february-2026?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div><hr></div><p>If you want to follow along beyond the blog, find me on Twitter/X at <a href="https://x.com/dhruvbaldawa">@dhruvbaldawa</a>. I&#8217;d love to hear your thoughts&#8212;what topics around AI and developer productivity are you most curious about?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Breaking Build! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Notes on Building with AI: February 2026]]></title><description><![CDATA[What I noticed when I stopped writing code]]></description><link>https://breaking.build/p/notes-on-building-with-ai-february</link><guid isPermaLink="false">https://breaking.build/p/notes-on-building-with-ai-february</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Wed, 11 Mar 2026 07:50:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kD9f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27f136c5-5922-499e-bbdb-f4d43dc6b3cc_1024x608.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_!kD9f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27f136c5-5922-499e-bbdb-f4d43dc6b3cc_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kD9f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27f136c5-5922-499e-bbdb-f4d43dc6b3cc_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!kD9f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27f136c5-5922-499e-bbdb-f4d43dc6b3cc_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!kD9f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27f136c5-5922-499e-bbdb-f4d43dc6b3cc_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!kD9f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27f136c5-5922-499e-bbdb-f4d43dc6b3cc_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kD9f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27f136c5-5922-499e-bbdb-f4d43dc6b3cc_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27f136c5-5922-499e-bbdb-f4d43dc6b3cc_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kD9f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27f136c5-5922-499e-bbdb-f4d43dc6b3cc_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!kD9f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27f136c5-5922-499e-bbdb-f4d43dc6b3cc_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!kD9f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27f136c5-5922-499e-bbdb-f4d43dc6b3cc_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!kD9f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27f136c5-5922-499e-bbdb-f4d43dc6b3cc_1024x608.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><h1><strong>TL;DR</strong></h1><ul><li><p>The workflow got simpler in February, not more complex&#8212;same results, less overhead</p></li><li><p>The workflow is a dial: two modes depending on how much you know about the problem</p></li><li><p>~100% of my code is now AI-written&#8212;not the goal, just a byproduct of getting the process right</p></li><li><p>Planning takes more time now&#8212;I re-engage at verification</p></li><li><p>AI agents are unpredictable, and once you feel close to done, stopping is harder than it sounds</p></li><li><p>If you love writing code, this shift won&#8217;t sit well. If you love building things, it&#8217;s the best time to do it.</p></li></ul><p>Every month, I expected the workflow to get more complex. In February, it got simpler.</p><p><a href="https://breaking.build/p/how-i-code-with-ai-october-2025">October</a> was about adding structure&#8212;a 4-phase workflow, two custom prompts, spec-driven development. <a href="https://x.com/dhruvbaldawa/status/2017944022334276036">January</a> was about adding infrastructure, including review agents, sandboxing, and a Discord integration that pinged me when something needed attention. Each month, more pieces.</p><p>So I expected February to be more of the same. Instead, I ended up doing less. The models improved, and Claude Code&#8217;s native features matured. I spent less time managing the workflow and more time building things. And the output&#8212;the quality, the speed, the ambition of what I was attempting&#8212;went up.</p><h1><strong>The Workflow Is a Dial</strong></h1><p>The thing I kept adjusting in February wasn&#8217;t which tool to use. It was about how much control to hand over.</p><p>Most projects fall between the spectrum of &#8220;I know exactly how to do this&#8221; and &#8220;Not really sure what I want&#8221;. So, the workflow has two modes.</p><p><strong>When I know what I&#8217;m building</strong>, I go heavy on upfront planning&#8212;a detailed commit plan, validation criteria for each task, and a review cycle baked in&#8212;and then step back. The automated workflow handles quality from there. I&#8217;m not reviewing every commit manually; the process is the safeguard. This is where the ~100% AI-written code comes from. Not because I&#8217;m hands-off, but because I&#8217;ve invested upfront with detailed planning.</p><p><strong>When I don&#8217;t know what I&#8217;m building</strong>, I slow down. The focus shifts to uncovering unknowns before writing a single line of code. <em>This is where I use what I think of as <strong>adversarial planning</strong>&#8212;sub-agents whose job is to find problems in the plan before I commit to it.</em> I spawn sub-agents in the same Claude Code session and ask them to tear the plan apart. What could go wrong? What&#8217;s fragile? What assumptions am I making that might not hold?</p><p>These agents are deliberately aggressive. The goal isn&#8217;t to validate the plan&#8212;it&#8217;s to surface every risk I&#8217;m not thinking about, before I&#8217;ve spent tokens and time going down the wrong path.</p><p>For longer, more complicated projects, I use a <a href="https://github.com/dhruvbaldawa/ccconfigs/blob/main/essentials/skills/technical-planning/SKILL.md">technical-planning skill</a> I&#8217;ve built that makes risk-surfacing a formal part of the planning phase&#8212;so the hard problems get solved first, not discovered halfway through.</p><p>Once the unknowns are known, I switch back to the first mode and let the workflow run.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Breaking Build! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1><strong>Trusting the Process</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CUk-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea9a124-413e-4b9a-b395-f99132b6e301_1204x106.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CUk-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea9a124-413e-4b9a-b395-f99132b6e301_1204x106.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CUk-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea9a124-413e-4b9a-b395-f99132b6e301_1204x106.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CUk-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea9a124-413e-4b9a-b395-f99132b6e301_1204x106.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CUk-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea9a124-413e-4b9a-b395-f99132b6e301_1204x106.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CUk-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea9a124-413e-4b9a-b395-f99132b6e301_1204x106.jpeg" width="1204" height="106" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dea9a124-413e-4b9a-b395-f99132b6e301_1204x106.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:106,&quot;width&quot;:1204,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!CUk-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea9a124-413e-4b9a-b395-f99132b6e301_1204x106.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CUk-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea9a124-413e-4b9a-b395-f99132b6e301_1204x106.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CUk-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea9a124-413e-4b9a-b395-f99132b6e301_1204x106.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CUk-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea9a124-413e-4b9a-b395-f99132b6e301_1204x106.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I&#8217;d kick off a commit, walk away, and come back 45 minutes later to find it still running. Not because it was large. I run 3 agents per commit&#8212;one implements, 2 review&#8212;and <em>the guideline is extremely clear: quality over speed</em>. The implementer writes the code, reviewers find problems, and it goes back for revisions. Three or four rounds sometimes.</p><p>45 minutes for a small commit sounds absurd. But watching it play out built more confidence than double-checking my own work ever did. The mistakes that would have slipped through my tired eyes at 11pm weren&#8217;t slipping through.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rltR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e844379-3e94-44e4-9290-ccf185bdb0a6_2156x2116.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rltR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e844379-3e94-44e4-9290-ccf185bdb0a6_2156x2116.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rltR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e844379-3e94-44e4-9290-ccf185bdb0a6_2156x2116.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rltR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e844379-3e94-44e4-9290-ccf185bdb0a6_2156x2116.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rltR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e844379-3e94-44e4-9290-ccf185bdb0a6_2156x2116.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rltR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e844379-3e94-44e4-9290-ccf185bdb0a6_2156x2116.jpeg" width="540" height="529.9862637362637" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e844379-3e94-44e4-9290-ccf185bdb0a6_2156x2116.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1429,&quot;width&quot;:1456,&quot;resizeWidth&quot;:540,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!rltR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e844379-3e94-44e4-9290-ccf185bdb0a6_2156x2116.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rltR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e844379-3e94-44e4-9290-ccf185bdb0a6_2156x2116.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rltR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e844379-3e94-44e4-9290-ccf185bdb0a6_2156x2116.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rltR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e844379-3e94-44e4-9290-ccf185bdb0a6_2156x2116.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><p>I&#8217;m spending more time on planning now&#8212;commit sequence, validation criteria, test coverage&#8212;then stepping back. I check in at testing, not implementation.</p><h1><strong>Remove the Pain, Remove the Overthinking</strong></h1><p>I started more projects in February than any other month. Also finished more of them.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zJVz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe847cc49-6b9f-455d-9201-58a87f90bc3a_1350x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zJVz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe847cc49-6b9f-455d-9201-58a87f90bc3a_1350x1080.png 424w, https://substackcdn.com/image/fetch/$s_!zJVz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe847cc49-6b9f-455d-9201-58a87f90bc3a_1350x1080.png 848w, https://substackcdn.com/image/fetch/$s_!zJVz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe847cc49-6b9f-455d-9201-58a87f90bc3a_1350x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!zJVz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe847cc49-6b9f-455d-9201-58a87f90bc3a_1350x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zJVz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe847cc49-6b9f-455d-9201-58a87f90bc3a_1350x1080.png" width="1350" height="1080" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e847cc49-6b9f-455d-9201-58a87f90bc3a_1350x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1080,&quot;width&quot;:1350,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:208894,&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://breaking.build/i/190371895?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe847cc49-6b9f-455d-9201-58a87f90bc3a_1350x1080.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_!zJVz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe847cc49-6b9f-455d-9201-58a87f90bc3a_1350x1080.png 424w, https://substackcdn.com/image/fetch/$s_!zJVz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe847cc49-6b9f-455d-9201-58a87f90bc3a_1350x1080.png 848w, https://substackcdn.com/image/fetch/$s_!zJVz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe847cc49-6b9f-455d-9201-58a87f90bc3a_1350x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!zJVz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe847cc49-6b9f-455d-9201-58a87f90bc3a_1350x1080.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>Something shifted around overthinking. I used to sit with technical decisions &#8212; weigh options, sometimes not start at all. With AI doing the implementation and refactoring cheap, the cost of picking wrong and redoing is near-zero. Turns out I wasn&#8217;t being thoughtful all those years. I was just avoiding the pain of changing course. Remove the pain, remove the overthinking.</p><p>So I&#8217;d just start. In two days, I had a codebase visualizer &#8212; something that shows how parts of a system connect, high-level structure with drill-down when you need it. It compressed 7-8 days of research into a few hours. Didn&#8217;t plan it out upfront. Started with a rough idea and iterated as my needs became clearer.</p><p>My relationship with bottlenecks changed too. Before, a bottleneck was just something to push through. Now I have two options &#8212; move fast through it, or build a tool that removes it for next time. The cost of building the tool is low enough that it&#8217;s often worth it. <em>Either way, friction comes down, ambition goes up</em></p><h1><strong>The Cost of Constant Momentum</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xLAz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf861ef1-6358-4433-addf-d1ebf91dfbb1_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xLAz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf861ef1-6358-4433-addf-d1ebf91dfbb1_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!xLAz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf861ef1-6358-4433-addf-d1ebf91dfbb1_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!xLAz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf861ef1-6358-4433-addf-d1ebf91dfbb1_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!xLAz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf861ef1-6358-4433-addf-d1ebf91dfbb1_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xLAz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf861ef1-6358-4433-addf-d1ebf91dfbb1_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df861ef1-6358-4433-addf-d1ebf91dfbb1_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7055151,&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://breaking.build/i/190371895?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf861ef1-6358-4433-addf-d1ebf91dfbb1_2816x1536.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_!xLAz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf861ef1-6358-4433-addf-d1ebf91dfbb1_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!xLAz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf861ef1-6358-4433-addf-d1ebf91dfbb1_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!xLAz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf861ef1-6358-4433-addf-d1ebf91dfbb1_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!xLAz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf861ef1-6358-4433-addf-d1ebf91dfbb1_2816x1536.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>First: non-determinism. AI agents are not predictable. A complicated project might take twenty minutes. A simple quality fix might run for hours. I never know what I&#8217;m going to get.</p><p>What makes it hard to stop is proximity. I had 20 tests failing. Now I have 7. It&#8217;s 30 minutes before the end of my day, and I feel close. 10 minutes later, I&#8217;m at 1. Half an hour after I was supposed to stop, I&#8217;m still there&#8212;one failing test, one more prompt, maybe this one. I can see the finish line. That&#8217;s what keeps me going. It&#8217;s motivating in a way that&#8217;s hard to distinguish from just being hooked.</p><p>Second: fatigue. I&#8217;ve been parallelizing a lot&#8212;when an agent is working, I&#8217;m working too, looking at other tasks, starting other things. I can sustain that for a while. But the mental fatigue compounds.</p><h1><strong>Coder or Builder</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cut_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35e01fe-f26f-4ccc-a08b-d3158b5d7243_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cut_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35e01fe-f26f-4ccc-a08b-d3158b5d7243_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!cut_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35e01fe-f26f-4ccc-a08b-d3158b5d7243_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!cut_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35e01fe-f26f-4ccc-a08b-d3158b5d7243_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!cut_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35e01fe-f26f-4ccc-a08b-d3158b5d7243_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cut_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35e01fe-f26f-4ccc-a08b-d3158b5d7243_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f35e01fe-f26f-4ccc-a08b-d3158b5d7243_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6775113,&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://breaking.build/i/190371895?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35e01fe-f26f-4ccc-a08b-d3158b5d7243_2816x1536.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_!cut_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35e01fe-f26f-4ccc-a08b-d3158b5d7243_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!cut_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35e01fe-f26f-4ccc-a08b-d3158b5d7243_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!cut_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35e01fe-f26f-4ccc-a08b-d3158b5d7243_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!cut_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35e01fe-f26f-4ccc-a08b-d3158b5d7243_2816x1536.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>Not everyone is going to like where this is heading.</p><p>If what you love is writing code&#8212;the craft, the syntax, the satisfaction of a well-constructed function&#8212;the direction AI is heading won&#8217;t sit well with you. That work is being absorbed: slowly, then all at once.</p><p>But if what you love is <em>building things</em>&#8212;seeing an idea become something real that works in the world&#8212;this is probably the best moment to be doing this. AI removes the tedious stretch between having an idea and having something that runs. The part that used to take weeks now takes days. Sometimes hours.</p><p>I think about the printing press. If you had ideas, the bottleneck was never the ideas&#8212;it was how fast you could physically produce the book. The printing press removed that constraint. Suddenly, the speed of spreading an idea wasn&#8217;t limited by how fast a human could copy it.</p><p>AI does the same thing for software. The bottleneck was never the ideas&#8212;it was how fast a human could implement them. Remove that constraint, and the question changes. It&#8217;s no longer &#8216;can I build this?&#8217; It&#8217;s &#8216;what do I want to build?&#8217;</p><h1><strong>What Made It Stick</strong></h1><p>I shipped a lot in February. The thing that surprised me was how much of it felt effortless.</p><p>The models helped. The platform helped. But the real change was knowing how to work&#8212;and trusting that enough to step back.</p><p>In the next post, I&#8217;ll get into the exact configuration: an implementer agent and a reviewer agent per commit, atomic commits with validation criteria, and how it&#8217;s all encoded in <a href="https://raw.githubusercontent.com/dhruvbaldawa/ccconfigs/refs/heads/main/config/CLAUDE.md">CLAUDE.md</a>. If this post was the <em>what</em>, that one is the <em>how</em>.</p><p><strong>Edit:</strong> You can check the next post out here</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;30bedb7c-0a9f-4f67-940e-128ba5482b2b&quot;,&quot;caption&quot;:&quot;TL;DR I used to run a kanban-style directory structure with state machines for task tracking. Models and tooling got good enough that it collapsed into a section in CLAUDE.md&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How I Build with AI: February 2026&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1240562,&quot;name&quot;:&quot;Dhruv Baldawa&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9f0e29b-d0f6-4bc4-ae69-5ec5a9a25231_1706x1280.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-03-18T09:00:27.617Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!DKlh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd36e0571-8d31-432f-bb8a-5f7fd7005cf0_2752x1536.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://breaking.build/p/how-i-build-with-ai-february-2026&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:191062463,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1032083,&quot;publication_name&quot;:&quot;Breaking Build&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!zAf-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5639ae9-0f40-4f8d-8e85-816c158dfc2f_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/notes-on-building-with-ai-february?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/notes-on-building-with-ai-february?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><p>If you want to follow along beyond the blog, find me on Twitter/X at <a href="https://twitter.com/dhruvbaldawa">@dhruvbaldawa</a>. I&#8217;d love to hear your thoughts &#8212; what topics around AI and developer productivity are you most curious about?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/notes-on-building-with-ai-february/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/notes-on-building-with-ai-february/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Pixels & Ponderings is now Breaking Build]]></title><description><![CDATA[On finding focus, and the cycle of breaking and building]]></description><link>https://breaking.build/p/pixels-and-ponderings-is-now-breaking</link><guid isPermaLink="false">https://breaking.build/p/pixels-and-ponderings-is-now-breaking</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Wed, 04 Feb 2026 08:05:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wpW8!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09c05981-2642-4deb-afad-470c5abb9c33_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>TL;DR</strong></h1><ul><li><p>Renaming the blog from &#8220;Pixels and Ponderings&#8221; to &#8220;Breaking Build&#8221;</p></li><li><p>Changing the domain from pixels.place to breaking.build</p></li><li><p>The focus has narrowed: AI agents, developer productivity, and how we build software with AI</p></li><li><p>Committing to monthly workflow updates</p></li><li><p>pixels.place redirects here &#8212; nothing is lost</p></li></ul><div><hr></div><p>When I started pixels.place, I didn&#8217;t have a clear direction. I kept it deliberately open-ended &#8212; a space to write about whatever caught my attention. That was the right call at the time.</p><p>But over the past year, a focus emerged. Most of what I write about &#8212; and most of what I spend my time exploring &#8212; lives at the intersection of AI, agents, and developer productivity. How we build software is changing fast, and I&#8217;ve been documenting that shift as it happens, both in <a href="https://pixels.place/p/how-i-code-with-ai-october-2025">how I code with AI</a> and <a href="https://pixels.place/p/how-i-use-ai-beyond-coding-2025-edition">how I use it beyond coding</a>.</p><p>The name &#8220;pixels.place&#8221; doesn&#8217;t fit that anymore. So I&#8217;m renaming the blog to <strong>breaking.build</strong>.</p><h1><strong>Why &#8220;Breaking Build&#8221;</strong></h1><p>Yeah, the name is intentional. I am the one who builds.</p><p>But it&#8217;s also about what&#8217;s actually happening. The way we build software is going through a phase where existing systems and workflows will break. I&#8217;ve lived this firsthand &#8212; my own workflow has changed significantly over the past twelve months. The tools I use, how I use them, even how I think about building things. What worked six months ago doesn&#8217;t always work today.</p><p>That&#8217;s the cycle: you build something, it breaks, you rebuild it better. Then it breaks again. <strong>breaking.build</strong> captures that loop of constant iteration.</p><h1><strong>What to expect</strong></h1><p>The focus stays the same: AI agents, developer workflows, and how the intersection of the two keeps evolving. Practical, analytical, grounded in what I&#8217;m actually doing &#8212; not hype. Those posts were snapshots of where things stood.</p><p>I want to keep doing that. One thing I&#8217;m committing to: <strong>monthly workflow updates</strong> &#8212; a regular check-in on what&#8217;s changed, what&#8217;s working, and what broke since last time.</p><h1><strong>The logistics</strong></h1><p>pixels.place now redirects to breaking.build. All existing posts are here. Nothing is lost &#8212; just a name that fits better.</p><p>A huge thank you to my wife for the beautiful design of the new logo and design assets.</p><div><hr></div><p>If you want to follow along beyond the blog, find me on Twitter/X at <a href="https://twitter.com/dhruvbaldawa">@dhruvbaldawa</a>. I&#8217;d love to hear your thoughts &#8212; what topics around AI and developer productivity are you most curious about?</p>]]></content:encoded></item><item><title><![CDATA[How I Use AI Beyond Coding (2025 Edition)]]></title><description><![CDATA[AI doesn't think for me. It helps me think better. My current stack and workflows for brainstorming, writing, and processing newsletters.]]></description><link>https://breaking.build/p/how-i-use-ai-beyond-coding-2025-edition</link><guid isPermaLink="false">https://breaking.build/p/how-i-use-ai-beyond-coding-2025-edition</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Wed, 31 Dec 2025 11:17:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OGVQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f0e29b-d0f6-4bc4-ae69-5ec5a9a25231_1706x1280.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>TL;DR</strong></h1><ul><li><p>I use AI to augment my workflows, not replace them.</p></li><li><p>It doesn&#8217;t think for me. It helps me think better.</p></li><li><p>Brainstorming, writing, newsletters, research: the specifics differ, but the pattern is the same&#8211;I stay in control, AI helps me get there faster.</p></li></ul><div><hr></div><p>Most AI advice is about delegation&#8211;offload this, automate that, let the agent handle it.</p><p>That&#8217;s not how I use it. AI has become part of how I work&#8212;not by replacing what I do, but by making it better: <em>clearer thinking, less busywork, better results.</em></p><h1><strong>My AI Stack</strong></h1><ul><li><p><a href="https://claude.ai/">Claude</a> Pro / Max subscription</p></li><li><p><s>Perplexity</s> <a href="https://grok.com/">Grok</a> (Perplexity sub expired, so didn&#8217;t renew it yet, trying Grok instead)</p></li><li><p><a href="https://notebooklm.google.com/">NotebookLM</a></p></li><li><p><a href="https://tryvoiceink.com/">VoiceInk</a> / <a href="https://www.macwhisper.com/">MacWhisper</a></p></li></ul><h1><strong>Brainstorming</strong></h1><p>After coding, this is probably my most-used workflow and also the one that I enjoy the most.</p><p>Sometimes I have a fully formed idea. More often, I have maybe 70% of something&#8211;a rough direction or a few scattered thoughts, but nothing I can articulate clearly (yet).</p><p>That&#8217;s when I open a conversation with Claude. Not to generate ideas for me, but to have something to bounce thoughts off. It acts as a sounding board, helping me figure out what I <em>actually</em> want to say.</p><p>(This post was planned exactly this way. I had a rough idea about sharing how I use AI, and the structure emerged through conversation.)</p><p>You can see excerpts from a recent brainstorming session below. Full transcript <a href="https://claude.ai/share/a6683bad-80e8-4865-9f0b-325919cfa182">here</a>.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/634bf007-d955-4797-b102-0d10f99ebf1b_1710x1368.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/271a7c84-953a-4cec-9565-58662d2a048d_1826x1462.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4364d5dc-bc15-4877-a63a-dc41ced0e8df_1710x1368.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eadfde90-6cbe-41c5-9f07-31a684f1bb49_1642x1314.png&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17a6e7c7-c37d-4b23-a4b6-edb72e1fb1dd_1456x1456.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>How this works: I use something called &#8220;<a href="https://www.youtube.com/shorts/QcrwK_9s3cg">skills</a>&#8221; in Claude. These are instructions that shape how Claude responds. It is now <a href="https://agentskills.io/home">an open standard</a> and available as a feature in some popular AI products.</p><p>My <a href="https://github.com/dhruvbaldawa/ccconfigs/tree/main/essentials/skills/brainstorming">brainstorming skill</a> is set up to ask clarifying questions rather than generate content&#8211;I talk through what I&#8217;m thinking, it asks questions, I answer, and through that back-and-forth, my thinking gets clearer.</p><p>Sometimes I&#8217;ll start by dictating rough thoughts (using VoiceInk or MacWhisper), then refine them in conversation. Voice &#8594; rough dump &#8594; AI-assisted refinement.</p><h1><strong>Writing</strong></h1><p>The same idea applies to writing too. I have different skills set up for various types of content: one for <a href="https://github.com/dhruvbaldawa/ccconfigs/tree/main/essentials/skills/writing-documentation">documentation</a>, one for <a href="https://github.com/dhruvbaldawa/ccconfigs/tree/main/essentials/skills/engineering-prompts">prompt engineering</a>, one for <a href="https://github.com/dhruvbaldawa/ccconfigs/tree/main/writing/skills/blog-writing">writing blog posts</a> and more.</p><p>Each set of skills shapes how Claude helps me. The blog writing skill, for example, knows my voice and style. It doesn&#8217;t write <em>for</em> me; it helps me turn rough thoughts into polished prose, section by section, with me approving each step along the way.</p><p>The pattern remains consistent&#8211;I stay in control, AI helps me get there faster</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vTAv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff962d8e5-cabf-4363-9c65-c6ce4a7ea94e_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vTAv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff962d8e5-cabf-4363-9c65-c6ce4a7ea94e_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!vTAv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff962d8e5-cabf-4363-9c65-c6ce4a7ea94e_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!vTAv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff962d8e5-cabf-4363-9c65-c6ce4a7ea94e_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!vTAv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff962d8e5-cabf-4363-9c65-c6ce4a7ea94e_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vTAv!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff962d8e5-cabf-4363-9c65-c6ce4a7ea94e_2752x1536.png" width="954" height="532.6936813186813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f962d8e5-cabf-4363-9c65-c6ce4a7ea94e_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:954,&quot;bytes&quot;:5863922,&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://pixels.place/i/182652107?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff962d8e5-cabf-4363-9c65-c6ce4a7ea94e_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vTAv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff962d8e5-cabf-4363-9c65-c6ce4a7ea94e_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!vTAv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff962d8e5-cabf-4363-9c65-c6ce4a7ea94e_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!vTAv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff962d8e5-cabf-4363-9c65-c6ce4a7ea94e_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!vTAv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff962d8e5-cabf-4363-9c65-c6ce4a7ea94e_2752x1536.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">My current blogging workflow</figcaption></figure></div><h1><strong>Staying Curious</strong></h1><p>I subscribe to a bunch of newsletters. Most of them either arrive packed with links I&#8217;ll never click or behind paywalls that just aggregate information from the internet.</p><p>With Gmail connected to Claude, I&#8217;ve found ways to extract value from them.</p><p><strong>Multi-link newsletters:</strong> A newsletter arrives with 10 links to articles. I ask Claude to read the newsletter, follow the links, and give me a quick summary of each. I scan the summaries and only read the ones that look interesting. <a href="https://claude.ai/share/ff69967e-ab61-4bac-b566-da29157eb342">(transcript)</a></p><div id="youtube2-supJa6M0PtA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;supJa6M0PtA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/supJa6M0PtA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><strong>Paywalled content:</strong> Some newsletters tease an interesting topic but keep the full article behind a paywall. I ask Claude to read the preview, research the subject online, and summarize the findings. It isn&#8217;t a perfect substitute, but often good enough &#175;\_(&#12484;)_/. <a href="https://claude.ai/share/0a7142d3-4d0b-41a8-bb8e-4d20d39f26de">(transcript)</a></p><div id="youtube2-67o0vDovjJ0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;67o0vDovjJ0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/67o0vDovjJ0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><strong>Email digest:</strong> For newsletters that pile up, I use Gmail filters to collect them and ask Claude to transform them into a readable digest.</p><p>I prefer my emails organized by theme, not by email, with key insights bolded and fluff stripped out. It&#8217;s not a summary that skips things; it&#8217;s a reformatted version that&#8217;s <em>actually</em> pleasant to read. <a href="https://claude.ai/share/b1269b84-851c-40bf-9967-6fac3a9682b1">(transcript)</a></p><div id="youtube2-SmZGN98tnhE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;SmZGN98tnhE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/SmZGN98tnhE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><strong>I get through newsletters in a fraction of the time.</strong> The summaries skip the noise and strip out the storytelling&#8212;I get 80% of the content in 5% of the time. For most things, that&#8217;s enough. And the stuff I really care about? That&#8217;s where <em>I</em> <em>choose</em> to go deep.</p><p>Here is my current prompt:</p><pre><code>Transform these emails into an easy-to-read digest. Not a summary - a
complete rundown that doesn't skip key ideas or helpful information.

&lt;approach&gt;
- Reframe content for clarity and retention, not word-for-word
condensation
- Use narrative flow where it helps - connect related ideas across
emails
- Structure by topic/theme, not necessarily by email
- Preserve the sender's voice where distinctive

Format with:
- Clear section headers
- Bold for key insights
- Tables for comparisons when useful
- "Quick Recall" anchors at the end for important takeaways
- For newsletters that have external articles, scan all non-sponsored content and present that instead
&lt;/approach&gt;

&lt;remove&gt;
- Greetings, sign-offs, pleasantries
- Promotional fluff (note skipped promos as "[Skipped: promo from X]")
- Redundancies across emails
&lt;/remove&gt;

&lt;preserve&gt;
- All substantive content: concepts, insights, examples, data
- Dates, names, links, action items
- Nuance and context are needed to understand the ideas
&lt;/preserve&gt;

&lt;emails&gt;&lt;/emails&gt;</code></pre><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pixels &amp; Ponderings! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1><strong>The Little Things</strong></h1><p>A few smaller things that have become routine:</p><p><strong>Deep research:</strong> When I want to go deep into a topic (to indulge my curiosity or compare products before buying), I&#8217;ll use <a href="https://claude.ai/">Claude</a>&#8217;s research mode or <a href="https://grok.com/">Grok</a>.</p><p>Claude&#8217;s version is slower (it can run for up to 45 minutes) but more thorough. It&#8217;ll chase down multiple angles and come back with something surprisingly comprehensive. Grok is faster for quick answers. I use both depending on what I need.</p><p><strong>Dictation:</strong> <a href="https://tryvoiceink.com/">VoiceInk</a> and <a href="https://www.macwhisper.com/">MacWhisper</a> have made voice input easy to use on Mac. VoiceInk runs locally (privacy win: nothing leaves my machine). I use it for prompts, messages, and dumping rough thoughts that I refine later. This is particularly great while vibe coding, brainstorming, and writing workflows.</p><p><strong>NotebookLM:</strong> For longer documents (State of AI reports, blog archives from writers I follow, anything too dense to read in one sitting), I&#8217;ll feed it to NotebookLM.</p><p>The standout feature is Audio Overviews&#8211;it generates a podcast-style conversation between two AI hosts discussing your sources. Not robotic text-to-speech, but an actual back-and-forth discussion. <a href="https://www.youtube.com/watch?v=ua4rYsMdC4U">SNL made a fun sketch on this</a>. But honestly, it&#8217;s <em>wild</em> how good it is. I&#8217;ve used it to turn hundred-page reports into audios I can absorb while walking.</p><div id="youtube2-ua4rYsMdC4U" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;ua4rYsMdC4U&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/ua4rYsMdC4U?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Recently, NotebookLM has added a bunch of cool ways to transform content. I highly encourage you to check it out, if you haven&#8217;t already.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3jHv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac7f7462-e910-4a6b-8b66-d1225ce08a84_740x942.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3jHv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac7f7462-e910-4a6b-8b66-d1225ce08a84_740x942.png 424w, https://substackcdn.com/image/fetch/$s_!3jHv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac7f7462-e910-4a6b-8b66-d1225ce08a84_740x942.png 848w, https://substackcdn.com/image/fetch/$s_!3jHv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac7f7462-e910-4a6b-8b66-d1225ce08a84_740x942.png 1272w, https://substackcdn.com/image/fetch/$s_!3jHv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac7f7462-e910-4a6b-8b66-d1225ce08a84_740x942.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3jHv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac7f7462-e910-4a6b-8b66-d1225ce08a84_740x942.png" width="390" height="496.4594594594595" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac7f7462-e910-4a6b-8b66-d1225ce08a84_740x942.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:942,&quot;width&quot;:740,&quot;resizeWidth&quot;:390,&quot;bytes&quot;:142210,&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://pixels.place/i/182652107?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac7f7462-e910-4a6b-8b66-d1225ce08a84_740x942.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_!3jHv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac7f7462-e910-4a6b-8b66-d1225ce08a84_740x942.png 424w, https://substackcdn.com/image/fetch/$s_!3jHv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac7f7462-e910-4a6b-8b66-d1225ce08a84_740x942.png 848w, https://substackcdn.com/image/fetch/$s_!3jHv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac7f7462-e910-4a6b-8b66-d1225ce08a84_740x942.png 1272w, https://substackcdn.com/image/fetch/$s_!3jHv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac7f7462-e910-4a6b-8b66-d1225ce08a84_740x942.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><div><hr></div><p>The common thread: AI helps me get to the interesting parts faster. <strong>It doesn&#8217;t replace my thinking&#8211;it sharpens it.</strong> It doesn&#8217;t generate content for me&#8211;it helps me figure out what I actually want to say/read/do. I remain in control.</p><p>A realization: The workflows that stick around for long aren&#8217;t the ones that do things for me&#8211;they&#8217;re the ones that make me good where I&#8217;m bad, and better where I&#8217;m good.</p><p>And there&#8217;s more to why this works. It has to do with knowing which parts of your expertise are worth turning into reusable skills and prompts. I&#8217;ll dig into that in the next post.</p><p>(Thanks to my wife for proofreading this blog. She didn&#8217;t ask me to write this. <em>Really.</em>)</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/how-i-use-ai-beyond-coding-2025-edition/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/how-i-use-ai-beyond-coding-2025-edition/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[How I code with AI: October 2025]]></title><description><![CDATA[Four phases, two prompts, and what I learned from all the rework]]></description><link>https://breaking.build/p/how-i-code-with-ai-october-2025</link><guid isPermaLink="false">https://breaking.build/p/how-i-code-with-ai-october-2025</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Tue, 25 Nov 2025 06:31:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Zk6M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.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_!Zk6M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Zk6M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.png 424w, https://substackcdn.com/image/fetch/$s_!Zk6M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.png 848w, https://substackcdn.com/image/fetch/$s_!Zk6M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.png 1272w, https://substackcdn.com/image/fetch/$s_!Zk6M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Zk6M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.png" width="728" height="406.65625" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:572,&quot;width&quot;:1024,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:1038585,&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://pixels.place/i/179893767?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Zk6M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.png 424w, https://substackcdn.com/image/fetch/$s_!Zk6M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.png 848w, https://substackcdn.com/image/fetch/$s_!Zk6M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.png 1272w, https://substackcdn.com/image/fetch/$s_!Zk6M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d8c38d-6630-4e12-991b-30981e94bc8f_1024x572.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><h1><strong>TL;DR</strong></h1><ul><li><p>Not pure vibe coding &#8212; I use a structured workflow with AI: Research, Planning, Task Breakdown, Execution</p></li><li><p>Planning beats prayers: alignment happens upfront before any code gets written</p></li><li><p>Just 2 prompts for spec-driven development, simpler than external tools like Spec Kit</p></li><li><p>Use expensive models (Sonnet) for planning, cheap models (Haiku/GLM) for execution</p></li><li><p>Controllable autonomy: task-by-task review or full auto depending on project criticality</p></li></ul><h1><strong>Introduction</strong></h1><p>I&#8217;ve been building a lot of tools and projects with AI agents lately. After a lot of trial and error &#8212; and some painful rework &#8212; I&#8217;ve settled into a workflow that&#8217;s been working really well for me. I wanted to share what that looks like.</p><p>This isn&#8217;t pure &#8220;<a href="https://en.wikipedia.org/wiki/Vibe_coding">vibe coding</a>&#8220; &#8212; where you describe what you want in English and the AI writes everything while you never look at the code. That approach creates problems. It&#8217;s also not traditional coding where AI is just autocomplete. Somewhere in between.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pixels &amp; Ponderings! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The core principle: <strong>planning beats prayers when it comes to LLMs</strong>. Give the AI too much freedom without structure, and it&#8217;ll drift. By the time you realize it, you&#8217;ve spent more time fixing things than if you&#8217;d just written the code yourself.</p><h1><strong>My Setup</strong></h1><p>I use Cursor and Claude Code. The workflow is the same across both &#8212; just different ways to invoke the same prompts.</p><p>For models: Claude Sonnet 4.5 for planning and task breakdown, Claude Haiku 4.5 or GLM-4.6 for execution. The key insight here is that once planning is done, you can use a cheaper model for the actual implementation. The heavy thinking is already finished.</p><p>I use three <a href="https://www.anthropic.com/news/model-context-protocol">MCP servers</a>:</p><ul><li><p><strong><a href="https://github.com/perplexityai/modelcontextprotocol/tree/main">Perplexity</a></strong> for search and research</p></li><li><p><strong><a href="https://github.com/firecrawl/firecrawl-mcp-server">Firecrawl</a></strong> for reading web pages</p></li><li><p><strong><a href="https://github.com/upstash/context7">Context7</a></strong> for technical documentation</p></li></ul><p>These help work around knowledge cutoffs. Instead of Googling across multiple pages to find best practices, the AI can research directly.</p><p>I manage prompts as slash commands in Claude Code (stored in a GitHub repo) and as Alfred snippets in Cursor. Haven&#8217;t figured out a good way to sync them yet.</p><p>All planning and task breakdowns go into markdown docs in <code>docs/memory/</code> within each repo. This makes it easy to switch between chat threads or even tools &#8212; all the context lives in the document, not scattered across conversations.</p><h1><strong>The Workflow</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!safA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ad50955-e016-497c-a325-583e169e80b0_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!safA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ad50955-e016-497c-a325-583e169e80b0_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!safA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ad50955-e016-497c-a325-583e169e80b0_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!safA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ad50955-e016-497c-a325-583e169e80b0_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!safA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ad50955-e016-497c-a325-583e169e80b0_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!safA!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ad50955-e016-497c-a325-583e169e80b0_2752x1536.png" width="1200" height="670.054945054945" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ad50955-e016-497c-a325-583e169e80b0_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:5770352,&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://pixels.place/i/179893767?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ad50955-e016-497c-a325-583e169e80b0_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!safA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ad50955-e016-497c-a325-583e169e80b0_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!safA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ad50955-e016-497c-a325-583e169e80b0_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!safA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ad50955-e016-497c-a325-583e169e80b0_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!safA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ad50955-e016-497c-a325-583e169e80b0_2752x1536.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 phases: Research, Planning, Task Breakdown, Execution.</p><h2><strong>Phase 1: Research</strong></h2><p>Before I start planning, I use the MCP servers to research. Perplexity for general search and deep research. Firecrawl for reading specific web pages. Context7 for technical documentation.</p><p>This solves two problems: LLMs have knowledge cutoffs, and I don&#8217;t want to spend time manually Googling. The AI can research best practices and current approaches directly, which gives us both context before we start planning.</p><h2><strong>Phase 2: Planning</strong></h2><p>I don&#8217;t have a fixed planning prompt &#8212; it varies by project complexity and what I already know. The AI drafts a high-level plan, I review it, we refine together.</p><p>What I&#8217;m checking for: alignment with how I want to approach the problem, and the technical decisions the AI is making. Too vague? I ask for more detail. Too detailed? I tell it to pull back.</p><p>This all happens in a markdown document. I can see the plan as diffs in my editor, which makes it easy to review changes. All this before any code gets written.</p><p>This is where the heavy lifting happens. Once the plan is solid, the rest flows more easily. I&#8217;m still figuring out what makes a &#8220;good enough&#8221; plan, but I know it when I see it.</p><h2><strong>Phase 3: Task Breakdown</strong></h2><p>The plan gets broken down into atomic tasks. This is where the structure really matters.</p><p>Key principles that make this effective:</p><ul><li><p><strong>Single atomic unit of work</strong> - each task results in running, testable code</p></li><li><p><strong>Progress over perfection</strong> - ship working code, iterate later, every task leaves the repo in a working state</p></li><li><p><strong>Detailed enough for one-shot implementation</strong> - the LLM prompt has step-by-step instructions</p></li><li><p><strong>Concrete definition of &#8220;done&#8221;</strong> - what exactly is finished when the task completes</p></li><li><p><strong>Automated validation</strong> - prefer tests/scripts over manual checks</p></li></ul><p>These constraints keep the AI focused and make review manageable. If a task is too big or vague, it&#8217;s easy for the AI to drift.</p><p>This is what my breakdown prompt looks like (formatted as a slash command):</p><pre><code><code>---
argument-hint: [SPEC DOCUMENT]
description: Create a task breakdown from a design document
---
Document: $1

You are my project-planning assistant.
Given a high-level feature or milestone description in the above document, produce an **agile task breakdown** in the following strict Markdown format, and update the above document.

For every task you generate, include:
1. **Iteration header** &#8211; `### &#128260; **Iteration &lt;n&gt;: &lt;Theme&gt;**`
2. **Task header** &#8211; `#### Task &lt;n&gt;: &lt;Concise Task Name&gt;`
3. **Status** &#8211; always start as `Status: **Pending**`
4. **Goal** &#8211; 1-2 sentences describing the purpose
5. **Working Result** &#8211; what is concretely &#8220;done&#8221; at the end of the task (code that runs, command that passes, etc.)
6. **Validation** &#8211; a checklist (`- [ ]`) of objective pass/fail checks (tests, scripts, CI runs, manual verifications)
7. **LLM Prompt** &#8211; a fenced &lt;prompt&gt;&lt;/prompt&gt; block with step-by-step instructions detailed enough for a coding LLM to implement the task in one shot
8. Separate tasks and iterations with `---`

Constraints &amp; conventions:
- Each task must be a single atomic unit of work that results in running, testable code.
- Favor incremental progress over perfection; every task should leave the repo in a working state.
- Validation should prefer automated tests/scripts but may include human review items.
- Use present-tense, imperative verbs for prompt steps (e.g., &#8220;Create&#8230;&#8221;, &#8220;Add&#8230;&#8221;, &#8220;Run&#8230;&#8221;).
- Use **bold** for filenames, routes, commands, etc. inside prompts to improve readability.
- Keep the entire answer pure Markdown; do not embed explanatory prose outside of the required structure.
- You may run into output token limits, so write one iteration at a time in the document, then add another one
</code></code></pre><p>The AI adds tasks to the same markdown document. I review them there &#8212; easy to see as diffs, easy to understand what changed.</p><h2><strong>Phase 4: Execution</strong></h2><p>Now the AI actually builds it. Two modes, depending on the project.</p><p><strong>Task-by-task:</strong> The AI does a task. I review it, test it, commit it, move to the next one. This is what I do for critical projects or when I have time.</p><p><strong>Autonomous (</strong><code>--auto</code><strong> flag):</strong> The AI does everything &#8212; completes tasks, commits with descriptive messages, moves to the next task. I come back later, and the work is done. I use this for internal tools or when I&#8217;m low on bandwidth.</p><p>And here&#8217;s what the execution prompt looks like (again, formatted as a slash command):</p><pre><code><code>---
description: Do the actual task
argument-hint: [SPEC DOCUMENT] [TASK NUMBER | --resume] [ADDITIONAL CONTEXT] [--auto]
---
**Flags:**
- `--resume`: If present, the agent starts from the first incomplete task instead of the specified task number
- `--auto`: If present, the agent will automatically:
  1. Perform the task
  2. Commit changes with a descriptive message describing what was done
  3. Move to the next task
  4. If unable to complete a task, update the document with current progress and stop for user feedback

# Instructions
1. Update the document when you start by changing the task status to **In Progress**
2. Read the full task including the LLM Prompt to guide your approach
3. Perform the actual task:
   - Follow the step-by-step instructions in the task&#8217;s `&lt;prompt&gt;` block
   - Implement the code/changes needed to meet the &#8220;Working Result&#8221; criteria
   - Ensure the implementation passes the &#8220;Validation&#8221; checklist
4. After completion:
   - Update the document with your progress
   - Change task status to **Complete** if finished successfully
   - If using `--auto` flag, create a commit with a message describing what was done (e.g., &#8220;Initialize Repository&#8221;, &#8220;Set up API endpoints&#8221;, not &#8220;Complete task 1&#8221;)
   - Move to the next task if `--auto` is enabled
5. If unable to complete the task:
   - Document what was attempted and any blockers
   - Update task status to **Blocked** or **Pending Review**
   - If `--auto` is enabled, stop and request user feedback before proceeding

Context: $1
Implement task $2
$ARGUMENTS
</code></code></pre><p>The tasks are granular enough that I can review them without a lot of cognitive load. And because planning is done, I can use cheaper models for execution &#8212; Haiku 4.5 or GLM-4.6 instead of Sonnet 4.5.</p><p>I tested this recently building a CLI tool for making mass updates across multiple codebases. It was late evening, I was tired, but I wanted to get it done. We did the planning and task breakdown together &#8212; that part I was careful about. Then I just added the <code>--auto</code> flag and let it run.</p><p>Twenty minutes later, I came back. The tool was working. That&#8217;s when I knew this workflow actually worked.</p><p><strong>This is Spec-Driven Development</strong></p><p>I realized later this is basically <a href="https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/">spec-driven development</a>&#8212;where specifications drive AI implementation instead of vague prompts. Tools like <a href="https://github.com/github/spec-kit">GitHub&#8217;s Spec Kit</a> exist for this, with external tooling and multiple commands for each phase.</p><p>My approach is simpler, at least for me. It&#8217;s just 2 prompts. One for task breakdown, one for execution. No external tools to install or learn. The markdown document is the spec. It&#8217;s flexible enough to adapt to different project types without feeling rigid.</p><h1><strong>Why This Works</strong></h1><h3><strong>Prevents Drift</strong></h3><p>The biggest benefit I&#8217;ve found: alignment happens upfront, before code gets written. If the AI is going to take a wrong approach, I catch it during planning &#8212; not after it&#8217;s written thousands of lines of code.</p><p>The structure keeps the AI focused. Each phase has clear constraints. Skipping them usually means I spend more time fixing things later than if I&#8217;d just followed the process. This is the &#8220;<a href="https://arxiv.org/html/2409.17972v1">planning beats prayers</a>&#8220; principle&#8212;systematic methods outperform hoping for good outputs.</p><h3><strong><a href="https://codeconductor.ai/blog/context-engineering/">Context Engineering</a></strong></h3><p>The markdown document approach solves a real problem: <a href="https://www.understandingai.org/p/context-rot-the-emerging-challenge">context rot</a>. LLM performance degrades as the context window grows &#8212; even with good context management. By keeping all relevant context in a document, I can start fresh threads whenever I need to without losing continuity.</p><p>This also makes the workflow tool-agnostic. I can switch from Cursor to Claude Code, or jump between different chat sessions, and all the context is still there. The document is the source of truth, not the conversation history.</p><h3><strong>Controllable Autonomy</strong></h3><p>The <code>--auto</code> flag gives me flexibility. Critical projects get task-by-task review. Internal tools or low-risk work can run fully autonomous. Same workflow, different levels of oversight depending on what I need.</p><h3><strong>Cost Management</strong></h3><p>Planning and task breakdown use Sonnet 4.5 &#8212; the expensive model that does the hard thinking. Execution uses Haiku 4.5 or GLM-4.6 &#8212; cheaper models that follow the detailed instructions from the breakdown.</p><p>Since the plan and breakdown are already done, the execution model just needs to implement what&#8217;s specified. This cuts costs significantly for larger projects.</p><h1><strong>Limitations &amp; Tradeoffs</strong></h1><p>This workflow doesn&#8217;t work for everything.</p><p><strong>Doesn&#8217;t work well for:</strong></p><ul><li><p>Pure debugging or investigation work &#8212; when you don&#8217;t know what the problem is yet</p></li><li><p>Very simple one-off tasks &#8212; the overhead isn&#8217;t worth it</p></li><li><p>For these, I either use plan + build mode or just write the code directly</p></li></ul><p><strong>Still struggles with:</strong></p><ul><li><p>Uncommon integrations or non-standard architectures</p></li><li><p>Connecting systems in unusual ways that aren&#8217;t common patterns</p></li><li><p>LLMs are good at general problems, not edge cases</p></li><li><p>When this happens: try a few approaches, then do it myself if the model can&#8217;t get it</p></li><li><p>Getting rarer with better models (Sonnet 4.5) but still happens</p></li></ul><p><strong>The overhead:</strong></p><ul><li><p>Upfront time investment in research and planning</p></li><li><p>Worth it for anything beyond trivial tasks</p></li><li><p>Overkill for quick fixes or small scripts</p></li></ul><p><strong>The failure mode without structure:</strong></p><ul><li><p>AI drifts in wrong direction</p></li><li><p>Don&#8217;t catch it until too late</p></li><li><p>Spend more time undoing and re-reviewing than if I&#8217;d just written it myself</p></li><li><p>Why I stick to the workflow now, even when it feels like extra work upfront</p></li></ul><p><strong>Known issues:</strong></p><ul><li><p>When generating large task lists, the LLM can hit its <a href="https://www.deepchecks.com/5-approaches-to-solve-llm-token-limits/">maximum output token limit</a> and stop mid-breakdown</p></li><li><p>The response just ends without completing all tasks</p></li><li><p>Workaround: ask it to continue, or break the plan into smaller iterations upfront</p></li></ul><h1><strong>Wrapping Up</strong></h1><p>This is what&#8217;s working for me right now. Not pure vibe coding, not traditional coding&#8212;something in between that gives me control while still using AI effectively.</p><p>I&#8217;m calling this &#8220;October 2025&#8221; even though we&#8217;re at the end of November. That&#8217;s deliberate. I&#8217;ve already iterated on this workflow quite a bit in November, and I&#8217;ll share those updates in the next post. This is a snapshot of where I was, not where I am now.</p><p>The key insight: <strong>I&#8217;m not using AI to do work for me, but with me.</strong> The structure ensures we&#8217;re aligned before any code gets written. Planning beats prayers.</p><p>If you&#8217;re using AI coding assistants and finding yourself doing a lot of rework, maybe try adding more structure upfront. It feels like overhead at first. But it usually saves time in the end.</p><p>I&#8217;d like to hear your thoughts on this. What&#8217;s your workflow with AI agents? Have you found ways to keep them on track?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pixels &amp; Ponderings! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA["I Don't Understand LLM Internals": Good. You Don't Need To.]]></title><description><![CDATA[Feeling left behind by the LLM wave because you're not a deep learning expert? Good news: Your existing engineering skills + API calls are all you need.]]></description><link>https://breaking.build/p/i-dont-understand-llm-internals-good</link><guid isPermaLink="false">https://breaking.build/p/i-dont-understand-llm-internals-good</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Mon, 05 May 2025 04:10:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cIZm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.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_!cIZm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cIZm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.png 424w, https://substackcdn.com/image/fetch/$s_!cIZm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.png 848w, https://substackcdn.com/image/fetch/$s_!cIZm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.png 1272w, https://substackcdn.com/image/fetch/$s_!cIZm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cIZm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.png" width="724" height="482.6666666666667" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1248,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:331774,&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://pixels.place/i/162309894?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.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_!cIZm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.png 424w, https://substackcdn.com/image/fetch/$s_!cIZm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.png 848w, https://substackcdn.com/image/fetch/$s_!cIZm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.png 1272w, https://substackcdn.com/image/fetch/$s_!cIZm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b7b0-4b9a-4662-a348-f64e2b47ced5_1248x832.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><strong>TL;DR:</strong></p><ul><li><p>You don't need deep AI theory knowledge to build valuable AI applications; focus on effectively using existing tools and APIs.</p></li><li><p>Think of AI proficiency in four levels (Pioneers, Engineers, Developers, Users); this post is targeted towards <strong>Level 3: AI Developers</strong> (engineers integrating AI).</p></li><li><p>Leverage powerful APIs with techniques like prompt engineering, Retrieval-Augmented Generation (RAG), and In-Context Learning (ICL) &#8211; you often <em>don't</em> need custom fine-tuning, massive datasets, or expensive hardware.</p></li><li><p>The most valuable skill for AI Developers is framing problems correctly and understanding <em>what</em> LLMs can achieve, not their internal mechanics.</p></li></ul><p><em>Note: For the rest of this post, I&#8217;ll use the term AI interchangeably with GenAI and LLMs for brevity.</em></p><div><hr></div><p>The buzz around AI can feel overwhelming. I often get messages from friends and colleagues asking, "Do I need to learn neural networks and deep learning to work with LLMs?". Some developers may dive into deploying open-source models locally, only to find the results underwhelming compared to state-of-the-art APIs. Others get stopped before they even start, worrying about the potential costs &#8212; "Will I need a farm of expensive GPUs?" or "Are API bills going to break the bank?".</p><p>I've noticed this misconception is widespread. <strong>It's like thinking you need to understand internal combustion engines before driving a car, or how TCP/IP works before building a website.</strong> This might keep many talented developers from exploring the AI space.</p><p>With terms like "embedding vectors", "fine-tuning", and "prompt engineering" flying around, it&#8217;s hard to know where to start or how deep you need to go. Let me offer a framework I've found helpful.</p><h2><strong>The Four Levels of AI Engagement</strong></h2><p>I see engaging with AI at four distinct levels:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!78fL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f728bbf-7d78-4304-84c8-e3385933e3c8_1542x962.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!78fL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f728bbf-7d78-4304-84c8-e3385933e3c8_1542x962.png 424w, https://substackcdn.com/image/fetch/$s_!78fL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f728bbf-7d78-4304-84c8-e3385933e3c8_1542x962.png 848w, https://substackcdn.com/image/fetch/$s_!78fL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f728bbf-7d78-4304-84c8-e3385933e3c8_1542x962.png 1272w, https://substackcdn.com/image/fetch/$s_!78fL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f728bbf-7d78-4304-84c8-e3385933e3c8_1542x962.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!78fL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f728bbf-7d78-4304-84c8-e3385933e3c8_1542x962.png" width="728" height="454" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6f728bbf-7d78-4304-84c8-e3385933e3c8_1542x962.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b61a18e1-aede-446b-9d93-c0e87907448d_1542x962.png&quot;,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:908,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:172701,&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://pixels.place/i/162309894?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb61a18e1-aede-446b-9d93-c0e87907448d_1542x962.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!78fL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f728bbf-7d78-4304-84c8-e3385933e3c8_1542x962.png 424w, https://substackcdn.com/image/fetch/$s_!78fL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f728bbf-7d78-4304-84c8-e3385933e3c8_1542x962.png 848w, https://substackcdn.com/image/fetch/$s_!78fL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f728bbf-7d78-4304-84c8-e3385933e3c8_1542x962.png 1272w, https://substackcdn.com/image/fetch/$s_!78fL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f728bbf-7d78-4304-84c8-e3385933e3c8_1542x962.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><ol><li><p><strong>Level 1: AI Pioneers:</strong> These are the deep researchers, the academics, the theorists pushing the absolute boundaries. They develop novel architectures, create entirely new ML approaches, publish papers, and define the ethical guardrails.</p></li><li><p><strong>Level 2: AI / ML Engineers:</strong> These are the ML engineers and data scientists who take the pioneering research and actually build, train, and optimize foundation models (like GPT, Claude, and Gemini). They fine-tune models, optimize inference, manage training infrastructure, and work at places like OpenAI, Google, Anthropic &amp; Meta AI.</p></li><li><p><strong>Level 3: AI Developers:</strong> This is where most software developers and product creators fit in. They take the powerful models created by Level 2 folks and integrate them into applications using APIs, build systems with Retrieval-Augmented Generation (RAG), implement prompting techniques, or maybe do some light fine-tuning. <strong>They solve real-world problems using AI as a tool.</strong></p></li><li><p><strong>Level 4: AI Users:</strong> This is basically everyone else. Professionals using AI tools (like ChatGPT, Copilot, Midjourney) to boost their productivity, students using them for research, artists for creation, and everyday people leveraging AI for convenience. This level requires knowing how to direct the tools, not technical expertise.</p></li></ol><p><strong>For most of us, especially engineers looking to add AI features to products, Level 3: AI Developers is the sweet spot.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pixels &amp; Ponderings! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>So, You Want to Be an AI Developer (Level 3)? Let's Bust Some Myths.</strong></h2><h3><strong>Myth 1: "I need to understand how neural networks and transformers work to build applications with LLMs." </strong></h3><p>That's not the reality. As I said, it's like needing to understand the engine to drive the car. <strong>Having a good mental model of </strong><em><strong>what</strong></em><strong> LLMs are good at is far more important than knowing </strong><em><strong>exactly</strong></em><strong> how they work internally.</strong></p><blockquote><p>"Working with LLMs is like learning to be a good manager: you need to learn how to give clear instructions and interpret the results, not understand how your team members' brains work."</p><p>&#8212; <a href="https://simonwillison.net/">Simon Willison</a> </p></blockquote><p>You need to understand the <em>capabilities</em> and <em>limitations</em> &#8211; things like context window limits (the amount of information the model can consider at once), the potential for hallucination (the model confidently making things up), and that they don't inherently know real-time information.</p><h3><strong>Myth 2: "I need my own beefy GPU setup or a dedicated AI server farm."</strong></h3><p>That's absolutely not the case, especially when starting out. <strong>You can prototype and build significant applications entirely using hosted APIs.</strong> I built my first LLM application using nothing but OpenAI's API and a bit of Python, running locally. No GPU required.</p><p>Services like <a href="https://openrouter.ai/docs">OpenRouter</a> (aggregator for various models), <a href="https://github.com/marketplace/models">GitHub Models</a>, and <a href="https://ai.google.dev/docs">Google AI Studio / Gemini API</a> provide access to powerful models without the need for a GPU or dedicated infrastructure for FREE. However, they might use your data for training or research, which is fine for hobby projects or while learning. If this is a concern, you can opt for their paid offerings.</p><p>There are other services like:</p><ul><li><p><a href="https://platform.openai.com/docs/overview">OpenAI's API</a></p></li><li><p><a href="https://docs.anthropic.com/claude/reference/getting-started-with-the-api">Anthropic's Claude API</a></p></li><li><p><a href="https://aws.amazon.com/bedrock/">AWS Bedrock</a></p></li><li><p>&#8230; and <a href="https://artificialanalysis.ai/leaderboards/providers/prompt-options/single/medium">many more</a></p></li></ul><p>These platforms handle massive infrastructure for you. You just send API requests.</p><h3><strong>Myth 3: "I </strong><em><strong>must</strong></em><strong> train or fine-tune my own custom model to get any real value."</strong></h3><p>Not necessarily, and maybe even <em>not desirably</em> in many cases. This used to be true before, but the power of today's foundation models combined with clever prompting techniques often gets you further, faster, and cheaper. <strong>Prompt engineering coupled with In-Context Learning (ICL) is surprisingly potent.</strong> <a href="https://www.lakera.ai/blog/what-is-in-context-learning">ICL</a> is the model's ability to learn from examples provided directly <em>within the prompt</em>, without needing its internal weights changed or re-training the model by fine-tuning.</p><p>Fine-tuning still has its place for deep specialization, but consider the downsides:</p><ul><li><p><strong>Cost &amp; Complexity:</strong> It requires curated datasets, compute resources for training, and ongoing maintenance.</p></li><li><p><strong>Scalability Issues:</strong> Do you really want to fine-tune <em>every time</em> a significantly better base model comes out (which is happening constantly)? Maintaining multiple fine-tuned models gets complex and expensive quickly.</p></li><li><p><strong>ICL Can Be Better:</strong> For many tasks, providing good examples in the prompt (few-shot or many-shot ICL) can achieve performance comparable to or even <em>better</em> than fine-tuning, especially when combined with techniques like <strong>Retrieval-Augmented Generation (RAG)</strong> &#8211; giving the model access to external, specific knowledge it wasn't trained on &#8211; to provide relevant, up-to-date context.</p></li></ul><p>Start with great prompting and RAG and it should cover 99% of your use cases. Only consider fine-tuning if you hit a performance ceiling that simpler methods can't overcome.</p><h3><strong>Myth 4: "If I don't code in Python, I'm out of luck."</strong></h3><p>The reality is that while Python has a rich ecosystem (hello, <a href="https://python.langchain.com/docs/get_started/introduction">LangChain</a>), it's not the only game in town. Most major API providers offer SDKs in multiple languages. We now have excellent libraries like <a href="https://js.langchain.com/">LangChain.js</a> for JavaScript, <a href="https://github.com/alexrudall/ruby-openai">ruby-openai</a> for Ruby, <a href="https://github.com/langchain4j/langchain4j">LangChain4j</a> for Java, and more.</p><p>And beyond code, there are increasingly capable low-code/no-code platforms like <a href="https://github.com/FlowiseAI/Flowise">Flowise</a>, and <a href="https://github.com/langflow-ai/langflow">Langflow</a> that integrate LLM capabilities, allowing you to build flows visually.</p><h3><strong>Myth 5: "This is going to cost me hundreds or thousands in API bills!"</strong></h3><p>It <em>can</em>, but it doesn't have to if you <strong>design for cost-efficiency from day one.</strong> I recently built a document processing app analyzing hundreds of pages daily that costs less than $10/month in API fees due to careful optimization.</p><ul><li><p><strong>Start cheap:</strong> Use less expensive, capable models (like Gemini 2.5 Flash, Deepseek R1, or GPT 4.1) for initial development. Only upgrade when needed.</p></li><li><p><strong>Prompt caching:</strong> Most API providers support prompt caching which can reduce your costs upto 90%.</p></li><li><p><strong>Cache results:</strong> Don't call the API for the exact same query repeatedly.</p></li><li><p><strong>Set token limits:</strong> Be mindful of input and output lengths.</p></li><li><p><strong>Use RAG:</strong> Retrieval Augmented Generation can reduce the amount of context you need to stuff into prompts.</p></li><li><p><strong>Monitor usage:</strong> Keep an eye on your API dashboards and configure billing alerts.</p></li><li><p><strong>Evaluate carefully:</strong> Ensure the LLM is actually adding value commensurate with its cost.</p></li></ul><h3><strong>Myth 6: "AI development requires a deep understanding of complex algorithms and mathematical concepts."</strong></h3><p>That's not the reality for Level 3: AI Developers. While complex algorithms are the bedrock built by Level 1 &amp; 2 folks, we can build incredibly useful applications by mastering the <em>application</em> layer. You can leverage prompt engineering and RAG here. <strong>Function Calling / Tool Use</strong> is another useful technique that allows the model to interact with external APIs &amp; tools to get real-time information or perform actions.</p><p>Focusing on <em>how</em> to effectively implement these techniques and integrate them into your software is far more valuable than deriving backpropagation formulas.</p><h3><strong>Myth 7: "You need massive datasets to train your own models for any useful application."</strong></h3><p>"I need terabytes of data just to get started, right?" Wrong. While foundational models <em>do</em> require massive datasets (that's OpenAI's or Google's problem, not yours as a Level 3 dev), <em>adapting</em> these models often doesn't.</p><p>And remember, for many applications, leveraging pre-trained models via APIs combined with prompt engineering and RAG is entirely sufficient, bypassing the need for custom training data altogether.</p><h3><strong>Myth 8: "Building AI applications is only for large companies with significant resources." </strong></h3><p>"This AI stuff looks fancy and expensive. Surely only Big Tech can afford it?" That might have been true a few years ago, but the landscape has dramatically changed. Democratizing factors include:</p><ul><li><p><strong>Accessible APIs:</strong> Major model providers (OpenAI, Google, Anthropic, etc.) offer powerful models via APIs with pay-as-you-go pricing, often with generous free tiers to start.</p></li><li><p><strong>Competitive Pricing:</strong> Costs are falling, and aggregators like OpenRouter provide access to various models at different price points. You can even find tools to estimate costs.</p></li><li><p><strong>Open Source:</strong> A thriving ecosystem of open-source models (e.g., Llama, Mistral) and frameworks (LangChain, LlamaIndex) lowers the barrier to entry.</p></li><li><p><strong>Cloud Platforms:</strong> Services like Hugging Face, Google Vertex AI, or AWS Bedrock simplify deployment and management.</p></li></ul><p>While building a foundational model is resource-intensive, building <em>on top</em> of them is increasingly feasible for individuals, startups, and small teams. Focus on cost optimization (Myth 5) and clever application design.</p><h3><strong>Myth 9: "The AI field is moving too fast, and anything I learn now will quickly become obsolete."</strong></h3><p>"It feels like there's a new model or technique every week! How can I possibly keep up? Won't my skills be useless next year?" It's a valid concern given the pace, but foundational knowledge and skills have surprising longevity.</p><p>While specific model names or the hottest new framework might change, the underlying principles remain relevant:</p><ul><li><p><strong>Core Technical Skills:</strong> Proficiency in programming (especially Python), data handling, APIs, and cloud basics are always valuable.</p></li><li><p><strong>Understanding Capabilities:</strong> Developing a strong mental model of <em>what</em> LLMs can do, their strengths (reasoning, generation) and weaknesses (hallucination, knowledge cutoffs), is crucial for effective application.</p></li><li><p><strong>Problem-Solving &amp; Design:</strong> Knowing how to break down a problem and design a system using AI components (like RAG, function calling) is a durable skill.</p></li><li><p><strong>Prompt Engineering:</strong> While the specifics evolve, the core principles of clear communication and providing context remain key.</p></li></ul><p>Think of it like web development: frameworks and libraries change constantly, but understanding HTML, CSS, JavaScript, HTTP, and good design principles provides a stable foundation. The most important skill is learning how to learn and adapt.</p><h2><strong>Getting Started as an AI Developer (Level 3)</strong></h2><p>So, how do you actually begin? </p><ol><li><p><strong>Choose Your API Provider:</strong> Start with a reliable hosted API rather than self-hosting. Many have free tiers or credits to get you started. <a href="https://openrouter.ai/">OpenRouter</a> or <a href="https://github.com/marketplace/models">GitHub Models</a> are a good starting point.</p></li><li><p><strong>Pick a Framework (optional but helpful):</strong> While you can use APIs directly, frameworks like <a href="https://www.langchain.com/">LangChain</a> or <a href="https://www.llamaindex.ai/">LlamaIndex</a> (available in Python, JS, etc.) provide useful abstractions for common patterns like conversation history, RAG, structured outputs, and tool use. Check out documentation from OpenRouter to integrate with most popular frameworks <a href="https://openrouter.ai/docs/community/frameworks">here</a>.</p></li><li><p><strong>Start Simple, Then Iterate:</strong> Don't try to build the next ChatGPT immediately. Pick a small, well-defined problem. Maybe a chatbot for specific FAQs, a summarizer, or a tool to extract specific data from text. Build a basic version, see how it works, and then enhance it.</p></li></ol><div id="youtube2-rV_UUDXCI4o" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;rV_UUDXCI4o&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/rV_UUDXCI4o?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>Learning More About Prompting</strong></h2><p><em>Learn the Mental Models, Not the Math</em><strong>:</strong> Focus on <em>what</em> problems LLMs are good at and <em>how</em> to prompt them effectively. This comes from practice and experimentation. It's like learning to cook &#8211; you get better by trying recipes and adjusting ingredients, not by studying the chemistry of Maillard reactions.</p><p>Here are some resources from leading providers to help you learn more:</p><ul><li><p><a href="https://www.promptingguide.ai/">Prompt Engineering Guide by PromptingGuide.ai</a></p></li><li><p><a href="https://www.ibm.com/think/topics/prompt-engineering-guide">IBM's Prompt Engineering Guide</a></p></li><li><p><a href="https://grow.google/prompting-essentials/">Google's Prompting Essentials</a></p></li><li><p><a href="https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-the-openai-api">OpenAI's Best Practices for Prompt Engineering</a></p></li><li><p><a href="https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview">Anthropic's Prompt Engineering Overview</a></p></li></ul><h2><strong>The Real Challenge: Problem Framing</strong></h2><p>The hardest part often isn't the code; it's <strong>framing the problem correctly</strong>. Understanding what LLMs can and can't do well is more valuable than knowing the model internals.</p><p>Ask yourself:</p><ul><li><p>Is this task about recalling specific knowledge (good for RAG) or general reasoning?</p></li><li><p>Does it need multi-step thought or complex instruction following?</p></li><li><p>Does the AI need memory of past interactions?</p></li><li><p>Is the goal information retrieval, content creation, decision support, or autonomous action?</p></li></ul><p>Answering these helps design your system and prompts effectively.</p><h2><strong>Conclusion: Just Start Building</strong></h2><p>I don't really have a silver bullet or perfect learning path. The field moves too fast. But I'm confident <em>you'll learn more from building one simple application than from reading a dozen research papers.</em></p><p>Leverage the incredible work done by the Pioneers and AI Engineers through APIs. You're much better off starting with APIs than trying to deploy and manage open-source models yourself.</p><p>So, my advice to you is: stop worrying about becoming a deep learning expert overnight. Focus on identifying a problem where an LLM could help, pick an API, and build a small proof-of-concept.</p><div><hr></div><p>Your likes and comments motivate me to write more. If you found this article helpful, please share it with another curious mind.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/i-dont-understand-llm-internals-good?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/i-dont-understand-llm-internals-good?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p>Are there topics you&#8217;d like to read about, let me know in the comments.</p><p>Have you tried dabbling with LLMs? What challenges are you facing? Leave a comment and I&#8217;d be happy to discuss them with you.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/i-dont-understand-llm-internals-good/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/i-dont-understand-llm-internals-good/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[A Thoughtful Learner's Guide to AI: Applying Bacon's 400-Year-Old Wisdom]]></title><description><![CDATA[Practical learning strategies inspired by a 400-year-old essay, "Of Studies," provides the crucial framework for engaging critically with AI, not just consuming its output.]]></description><link>https://breaking.build/p/a-thoughtful-learners-guide-to-ai</link><guid isPermaLink="false">https://breaking.build/p/a-thoughtful-learners-guide-to-ai</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Mon, 07 Apr 2025 05:25:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jn_b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.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_!jn_b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jn_b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.png 424w, https://substackcdn.com/image/fetch/$s_!jn_b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.png 848w, https://substackcdn.com/image/fetch/$s_!jn_b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!jn_b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jn_b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.png" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6468620,&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://pixels.place/i/160123314?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.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_!jn_b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.png 424w, https://substackcdn.com/image/fetch/$s_!jn_b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.png 848w, https://substackcdn.com/image/fetch/$s_!jn_b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!jn_b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9f9011-bbf8-4187-aef4-a59cdafe8605_2688x1536.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><strong>TL;DR</strong></h2><ul><li><p>Francis Bacon&#8217;s 400-year-old essay, "<a href="https://fermatslibrary.com/s/of-studies#email-newsletter">Of Studies</a>," is packed with relevant strategies for learning with today's AI.</p></li><li><p><strong>Critical Thinking:</strong> AI provides instant information, but Bacon stresses the importance of always "weighing and considering" its output.</p></li><li><p><strong>Know Your 'Why' &amp; 'How Deep':</strong> Understand if you're learning for delight, ornament, or ability, and choose your engagement level (taste, swallow, or digest) accordingly.</p></li><li><p><strong>Experience is Irreplaceable:</strong> Ground AI's theoretical knowledge in practical application and lived experience. Don't forget the "burning the onions" lesson.</p></li><li><p><strong>Adapt Your Learning Habits:</strong> AI changes reading (prompting), discussion (interaction), and writing (assistance). Stay active in guiding, questioning, and synthesizing.</p></li><li><p><strong>The Real Goal = Wisdom:</strong> Aim beyond just getting quick answers; cultivate the judgment and understanding to use AI effectively.</p></li></ul><div><hr></div><h2><strong>AI vs. Deep Understanding</strong></h2><p>I've been watching this new "vibe coding" trend, where engineers use AI to generate code rapidly. As an experienced developer, I see the appeal&#8212;ship faster and focus on overall design rather than implementation. But I also see juniors struggling with codebases they don't understand. There seems to be a growing tension between productivity and deep understanding.</p><p>Then <a href="https://fermatslibrary.com/">Fermat's Library</a> dropped Francis Bacon's "<a href="https://fermatslibrary.com/s/of-studies#email-newsletter">Of Studies</a>" in my inbox. Reading this 400-year-old essay with its insights on learning made me wonder - what would the great thinkers make of our AI shortcuts to knowledge? Are we building on the sand when we prioritize speed over understanding?</p><p>Bacon wrote "Of Studies" in 1625 when knowledge acquisition was slow and deliberate. Today, we get instant answers from AI. This shift isn't just about convenience - it fundamentally changes how we learn and think.</p><p>What caught my attention in Bacon's essay was his straightforward categorization of why we learn. This simple framework has made me question whether AI enhances or undermines each purpose.</p><p>The contrast between Bacon's world and ours raises crucial questions. When we use AI to generate code or solve problems, are we developing genuine understanding or just collecting solutions? Does AI-assisted learning build real expertise or create dependency?</p><p>I don't have definitive answers, but examining these questions through Bacon's framework is valuable. As a software engineer who regularly uses these tools, finding the right balance between AI assistance and deep understanding matters for the quality of what we build.</p><p><em>Note: For the rest of this post, I&#8217;ll use the term AI interchangeably with GenAI and LLMs for brevity.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pixels &amp; Ponderings! Subscribe (for free) to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>What Bacon Got Right About Learning</strong></h2><p>Let's unpack Bacon's core ideas and see how they hold up &#8211; and where they get interestingly complicated &#8211; when confronted with modern AI.</p><div class="pullquote"><p><em>&#8220;All animals are equal, but some are more equal than others.&#8221;</em> <br>- George Orwell, Animal Farm</p></div><p>Reading Bacon reminds me of Orwell's famous line from Animal Farm. The same applies to learning. All information might seem equal in the age of AI, all instantly available, but some forms of knowledge &#8211; particularly those gained through deep engagement and real experience &#8211; remain "more equal" than others. The distinctions Bacon draws help us navigate this uneven terrain.</p><h3><strong>The Three Reasons We Learn (According to Bacon)</strong></h3><div class="pullquote"><p><em>"Studies serve for delight, for ornament, and for ability."</em> </p></div><p>Bacon breaks down why we bother learning anything into three simple buckets:</p><ol><li><p><strong>Delight:</strong> For personal enrichment, the quiet joy of understanding.</p></li><li><p><strong>Ornament:</strong> To enhance conversation, to articulate ideas effectively.</p></li><li><p><strong>Ability:</strong> To improve judgment, make better decisions, and act effectively in the world.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0vD5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65e83bf-9d8d-4424-96fc-d47fde056ca6_1656x1104.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0vD5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65e83bf-9d8d-4424-96fc-d47fde056ca6_1656x1104.png 424w, https://substackcdn.com/image/fetch/$s_!0vD5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65e83bf-9d8d-4424-96fc-d47fde056ca6_1656x1104.png 848w, https://substackcdn.com/image/fetch/$s_!0vD5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65e83bf-9d8d-4424-96fc-d47fde056ca6_1656x1104.png 1272w, https://substackcdn.com/image/fetch/$s_!0vD5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65e83bf-9d8d-4424-96fc-d47fde056ca6_1656x1104.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0vD5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65e83bf-9d8d-4424-96fc-d47fde056ca6_1656x1104.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f65e83bf-9d8d-4424-96fc-d47fde056ca6_1656x1104.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0vD5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65e83bf-9d8d-4424-96fc-d47fde056ca6_1656x1104.png 424w, https://substackcdn.com/image/fetch/$s_!0vD5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65e83bf-9d8d-4424-96fc-d47fde056ca6_1656x1104.png 848w, https://substackcdn.com/image/fetch/$s_!0vD5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65e83bf-9d8d-4424-96fc-d47fde056ca6_1656x1104.png 1272w, https://substackcdn.com/image/fetch/$s_!0vD5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65e83bf-9d8d-4424-96fc-d47fde056ca6_1656x1104.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>AI can certainly turbocharge these. </p><ul><li><p>Want tailored learning for pure enjoyment? AI can personalize paths. </p></li><li><p>Need to sound smart at that dinner party? AI will give you talking points in seconds.</p></li><li><p>Need to solve a complex problem? AI will be your brainstorming buddy.</p></li></ul><p>But here&#8217;s the rub: Is passively scrolling AI-generated content genuine <em>delight</em>, or just consumption? Is rattling off AI-supplied facts true <em>ornament</em>, or just echoing without understanding? Does relying on AI analysis build real <em>ability</em>, or foster a dependency that leaves us vulnerable when the tech fails or misleads?</p><p>These aren't just philosophical questions - they have real consequences for how we learn and work. The more we rely on AI for instant answers, the less we exercise our own mental muscles. It's like taking an Uber for a two-block walk - convenient, sure, but you're missing out on the benefits of walking.</p><h3><strong>Why Real Experience Matters More Than Data</strong></h3><div class="pullquote"><p><em>"They perfect nature, and are perfected by experience... studies themselves, do give forth directions too much at large, except they be bounded in by experience."</em></p></div><p>Here's where Bacon really nails it. Books teach you the theory, but life teaches you how it <em>really</em> works.</p><p>This is where I think AI falls flat. I don't care how many billions of parameters ChatGPT has or how much of the internet it's seen - it hasn't actually <em>lived </em>anything. It hasn't burned dinner, gotten lost in a new city, or felt the frustration of debugging code at 2 AM.</p><div class="pullquote"><p><em>"Crafty men contemn studies, simple men admire them, and wise men use them..."</em></p></div><p>The real skill, he argued, isn't just knowing things, but possessing the wisdom &#8211; often gained through observation &#8211; to <em>apply</em> that knowledge effectively.</p><p>It's the same with AI. The power isn't just <em>having</em> the tool, but having the wisdom to wield it. We need to ground AI's vast knowledge in the messy, tangible reality of experience.</p><p><em>It's like the difference between reading a travel guide and actually navigating a foreign city. AI can give you the map, the facts, even translate phrases instantly. But it's only by wandering the streets, getting a little lost, and figuring things out on the ground that you truly learn the city's rhythm and gain the confidence to explore it independently. Experience adds the dimensions AI can't capture.</em></p><h3><strong>Don't Just Consume &#8211; Critically Consider</strong></h3><div class="pullquote"><p><em>"Read not to contradict and confute; nor to believe and take for granted; nor to find talk and discourse; but to weigh and consider."</em> </p></div><p>AI models are prone to errors, biases, and outright making things up (those infamous &#8216;hallucinations&#8217;). Bacon&#8217;s plea to "weigh and consider" is our primary defense.</p><div class="pullquote"><p><em>"Some books are to be tasted, others to be swallowed, and some few to be chewed and digested."</em></p></div><p>This brilliant metaphor offers a framework for how we should approach different types of knowledge:</p><p><strong>Tasting</strong> is that quick sampling, giving you just enough flavor to know what's there. With traditional books, this might be reading the introduction or skimming chapter headings. With AI, it's asking for a brief overview or summary. This approach is perfect for initial exploration or for topics tangential to your main focus &#8211; but recognize that you're just getting surface-level impressions.</p><p><strong>Swallowing</strong> goes deeper (obviously). You're consuming the whole thing, but without lingering too long over every nuance. You understand the main arguments and ideas, but you haven't necessarily interrogated every assumption or followed every implication. In the AI context, this is like reading a comprehensive AI-generated explanation of a topic and accepting its general framework, while remaining aware that you haven't verified every claim.</p><p><strong>Digesting</strong> is the deepest level of engagement &#8211; where true mastery happens. You're not just consuming; you're breaking it down, absorbing it, making it part of you. When reading traditionally, this meant close analysis, taking notes, connecting ideas to your existing knowledge. With AI, it means actively questioning outputs, seeking multiple perspectives, verifying claims, and synthesizing the information into your own understanding. This is slow, demanding work &#8211; but it's the only way to develop genuine expertise.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VKRi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92ec2d36-1f64-4bdf-8582-47d9c2906560_1416x864.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VKRi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92ec2d36-1f64-4bdf-8582-47d9c2906560_1416x864.png 424w, https://substackcdn.com/image/fetch/$s_!VKRi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92ec2d36-1f64-4bdf-8582-47d9c2906560_1416x864.png 848w, https://substackcdn.com/image/fetch/$s_!VKRi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92ec2d36-1f64-4bdf-8582-47d9c2906560_1416x864.png 1272w, https://substackcdn.com/image/fetch/$s_!VKRi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92ec2d36-1f64-4bdf-8582-47d9c2906560_1416x864.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VKRi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92ec2d36-1f64-4bdf-8582-47d9c2906560_1416x864.png" width="1416" height="864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/92ec2d36-1f64-4bdf-8582-47d9c2906560_1416x864.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:864,&quot;width&quot;:1416,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VKRi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92ec2d36-1f64-4bdf-8582-47d9c2906560_1416x864.png 424w, https://substackcdn.com/image/fetch/$s_!VKRi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92ec2d36-1f64-4bdf-8582-47d9c2906560_1416x864.png 848w, https://substackcdn.com/image/fetch/$s_!VKRi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92ec2d36-1f64-4bdf-8582-47d9c2906560_1416x864.png 1272w, https://substackcdn.com/image/fetch/$s_!VKRi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92ec2d36-1f64-4bdf-8582-47d9c2906560_1416x864.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>Bacon specifically warned against relying solely on summaries &#8211; what he called "distilled books... flashy things." His concern was that these concentrated versions might offer the illusion of understanding without the substance. They were convenient, yes, but they removed the vital context, the supporting evidence, the qualifying nuances that build true comprehension.</p><p>This warning should ring alarm bells in our AI age. Large language models are, in essence, the ultimate distillation machines &#8211; creating summaries, extracts, and simplified versions with remarkable efficiency. The danger? That we mistake this distilled knowledge for the real thing. </p><p>Indeed, <a href="https://www.microsoft.com/en-us/research/wp-content/uploads/2025/01/lee_2025_ai_critical_thinking_survey.pdf">contemporary research</a> is exploring this very dynamic, with studies suggesting that while AI boosts efficiency, it might also inadvertently reduce the depth of cognitive effort associated with traditional critical thinking and learning.</p><p>When we rely exclusively on AI-generated summaries, we sacrifice:</p><ul><li><p><strong>Contextual understanding</strong>: The background that shapes why an idea matters and where it fits</p></li><li><p><strong>Evidentiary foundation</strong>: The supporting facts that give a claim its strength</p></li><li><p><strong>Intellectual struggle</strong>: The cognitive work of wrestling with difficult concepts &#8211; the very struggle that cements learning</p></li><li><p><strong>Serendipitous discovery</strong>: Those unexpected tangents and connections that often lead to our most valuable insights</p></li></ul><p>AI summaries can be jumping-off points or navigational aids, but treating them as destinations leaves us with shallow knowledge &#8211; impressive perhaps in breadth, but lacking the depth that makes knowledge truly valuable.</p><h3><strong>The Learning Triangle: Reading, Conference, Writing in the AI Era</strong></h3><div class="pullquote"><p><em>"Reading maketh a full man; conference a ready man; and writing an exact man."</em></p></div><p>Bacon distilled the core intellectual practices into a powerful triad. Let's unpack what each of these meant in Bacon's world:</p><p><strong>Reading</strong> was about filling the mind with knowledge &#8211; becoming "full" of ideas, facts, and perspectives. Deep reading built a mental reservoir from which insight could be drawn. It was about patient accumulation, careful consideration, and the gradual building of a knowledge base.</p><p><strong>Conference</strong> &#8211; or conversation and debate &#8211; created the "ready" mind. By engaging with others, by having our ideas challenged and being forced to defend them, we developed intellectual agility. This was knowledge-in-motion, the ability to recall and apply what we know in real-time, to adapt to unexpected challenges and questions.</p><p><strong>Writing</strong> crafted the "exact" mind. The discipline of committing thoughts to paper revealed fuzzy thinking that might pass unnoticed in conversation. Writing forced precision &#8211; in language, in logic, in structure. It was the ultimate test of whether you truly understood something or just thought you did.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Rorh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61ca077f-3ed4-4f6f-99db-403482fdaa6d_1256x1015.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Rorh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61ca077f-3ed4-4f6f-99db-403482fdaa6d_1256x1015.png 424w, https://substackcdn.com/image/fetch/$s_!Rorh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61ca077f-3ed4-4f6f-99db-403482fdaa6d_1256x1015.png 848w, https://substackcdn.com/image/fetch/$s_!Rorh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61ca077f-3ed4-4f6f-99db-403482fdaa6d_1256x1015.png 1272w, https://substackcdn.com/image/fetch/$s_!Rorh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61ca077f-3ed4-4f6f-99db-403482fdaa6d_1256x1015.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Rorh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61ca077f-3ed4-4f6f-99db-403482fdaa6d_1256x1015.png" width="1256" height="1015" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/61ca077f-3ed4-4f6f-99db-403482fdaa6d_1256x1015.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1015,&quot;width&quot;:1256,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Rorh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61ca077f-3ed4-4f6f-99db-403482fdaa6d_1256x1015.png 424w, https://substackcdn.com/image/fetch/$s_!Rorh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61ca077f-3ed4-4f6f-99db-403482fdaa6d_1256x1015.png 848w, https://substackcdn.com/image/fetch/$s_!Rorh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61ca077f-3ed4-4f6f-99db-403482fdaa6d_1256x1015.png 1272w, https://substackcdn.com/image/fetch/$s_!Rorh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61ca077f-3ed4-4f6f-99db-403482fdaa6d_1256x1015.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>This triangle still forms the foundation of deep learning today. But now AI transforms each vertex in ways both subtle and profound:</p><p><strong>Reading &#8594; AI Prompting:</strong> Instead of the slow accumulation of knowledge through books, we can instantly query AI. This brings tremendous breadth, but potentially at the cost of depth. The effortlessness of AI-supplied information might mean we engage less deeply, question less rigorously, remember less durably.</p><p><strong>Conference &#8594; AI Interaction:</strong> While AI can simulate discussion, it lacks the unpredictability of human conversation. Real debate involves emotion, unexpected challenges, and the social dynamics that push us to clarify and defend our thinking. AI rarely truly surprises us or forces us to reconsider in the way a human interlocutor might.</p><p><strong>Writing &#8594; AI Assistance:</strong> When AI helps draft our writing, we may bypass the crucial cognitive work that writing demands. The act of organizing thoughts, finding precise language, structuring arguments &#8211; these processes don't just communicate ideas, they clarify them for the writer. When AI handles these tasks, we might produce polished output without the mental clarification that writing traditionally provides.</p><p>The key is reclaiming the human role in each step. We must guide the prompting (active reading), critically interrogate the AI's responses (real conference), and take ownership of the final synthesis (true writing). Otherwise, we risk becoming what Bacon warned against: seeming knowledgeable without substance, relying on "much cunning, to seem to know, that he doth not." AI can be a convincing illusionist.</p><div><hr></div><h2><strong>Practical Strategies for the AI Age</strong></h2><p>So, how do we translate Bacon's 400-year-old wisdom into concrete actions with today's tech? Here&#8217;s a playbook:</p><p><strong>Be the Skeptic: Question Everything</strong></p><ul><li><p>Make "weigh and consider" your mantra. Treat AI output as a starting point, not the final word.</p></li><li><p>Develop a deeper verification process for our complex world:</p><ul><li><p><strong>First-level verification</strong>: Does this align with what you already know? Does it pass a basic logic and plausibility check?</p></li><li><p><strong>Second-level verification</strong>: What are the sources? Not just <em>which</em> sources, but what <em>kinds</em> of sources? Primary research? Expert consensus? Opinion?</p></li><li><p><strong>Third-level verification</strong>: Seek contrary perspectives. What would someone who disagrees say? What evidence might they cite?</p></li></ul></li><li><p>Remember that in domains with deep complexity (science, medicine, law), surface-level verification isn't enough &#8211; peer into the methodology, the sample sizes, the underlying assumptions behind claims.</p></li><li><p>When stakes are high, triangulate information through multiple channels &#8211; academic papers, expert commentary, and diverse AI models with different training approaches.</p></li></ul><p><strong>Know Your Why: Define Your Goal</strong></p><ul><li><p>Are you here for delight, ornament, or ability? Be clear about your purpose.</p></li><li><p>Match your engagement level to your goal: Need a quick definition (taste)? Exploring a new topic (swallow)? Building deep expertise (digest)?</p></li><li><p>Use AI strategically: great for brainstorming, summarizing dense text, or drafting initial ideas, but always follow up with your own critical thinking.</p></li></ul><p><strong>Mix It Up: Balance Your Learning Diet</strong></p><ul><li><p>Don't let AI replace everything. Books, articles, human conversations, and hands-on projects are still vital.</p></li><li><p>Seek out real discussion ("conference") with other humans. Challenge ideas, debate nuances &#8211; AI can't replicate this.</p></li><li><p>Keep writing your <em>own</em> thoughts ("writing"). The struggle to articulate ideas clearly is where true "exactness" is forged.</p></li></ul><p><strong>Get Real: Connect to Experience</strong></p><ul><li><p>Look for ways to apply what you learn via AI to the real world. Build something, try something, test the theory.</p></li><li><p>Does the AI's insight match what you observe? Experience is the ultimate fact-checker.</p></li><li><p>Learn to trust your gut and your lived experience, especially when it clashes with an AI suggestion. Don't be afraid to disagree with the algorithm.</p></li></ul><div><hr></div><h2><strong>Finding the Right Balance</strong></h2><p>It's fascinating: Bacon gave us a blueprint for navigating the challenges of knowledge in an age of overwhelming information. His core message wasn't about <em>what</em> to learn, but <em>how</em> to learn &#8211; with purpose, criticality, and a grounding in reality.</p><p>I often find myself accumulating more technical books and papers than I can realistically read, which used to make me feel guilty. But Bacon's perspective is actually liberating - it's not about consuming everything, but about engaging deeply with what matters. In an era where AI can instantly surface any information, the difference between shallow browsing and genuine understanding becomes the critical factor.</p><p>I'm not against AI tools - I use them regularly. But there's a clear distinction between using AI as a substitute for understanding versus using it as a tool to enhance learning. When I ask AI to generate code without understanding the implementation, I might ship faster but build technical debt. When I use it to explore approaches while maintaining fundamental knowledge, I become a more effective engineer.</p><p>As these tools become more integrated into our workflows, Bacon's principles serve as a practical framework for ensuring we're using technology to augment rather than replace our thinking. Getting information is now trivial. The challenge - and what separates good engineers from great ones - is developing the judgment to use that information effectively.</p><div><hr></div><h2><strong>Dig Deeper</strong></h2><ul><li><p><strong>The Source:</strong> <a href="https://fermatslibrary.com/s/of-studies">Of Studies by Francis Bacon</a></p></li><li><p><strong>Learn How to Learn:</strong> <a href="https://www.coursera.org/learn/learning-how-to-learn">Learning How to Learn: Powerful mental tools to help you master tough subjects</a> (Coursera Course)</p></li></ul><div><hr></div><h2>Share Your Thoughts</h2><p>I'd love to hear how you're navigating this new landscape. Share your experiences in the comments:</p><ul><li><p>How is AI changing <em>your</em> approach to learning?</p></li><li><p>Which of Bacon's ideas &#8211; delight/ornament/ability, weigh/consider, experience &#8211; hits home most for you when using AI?</p></li><li><p>Do you have specific practices for maintaining deep understanding while leveraging these tools?</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/a-thoughtful-learners-guide-to-ai/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/a-thoughtful-learners-guide-to-ai/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[Tester, Architect & PM walked into a codebase: How to make vibe coding work]]></title><description><![CDATA[From chaotic prompting to systematic collaboration: a better way to work with AI assistants]]></description><link>https://breaking.build/p/vibe-coding-decoded-taming-the-chaos</link><guid isPermaLink="false">https://breaking.build/p/vibe-coding-decoded-taming-the-chaos</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Mon, 24 Mar 2025 21:43:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!go5s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Note: I don't particularly like the term "vibe coding" - but now that it's in general usage, I've reluctantly adopted it. At its core, this approach is simply about aligning, understanding, and implementing with AI agents.</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_!go5s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!go5s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.png 424w, https://substackcdn.com/image/fetch/$s_!go5s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.png 848w, https://substackcdn.com/image/fetch/$s_!go5s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!go5s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!go5s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.png" width="728" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1200,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:162051,&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://pixels.place/i/159738042?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.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_!go5s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.png 424w, https://substackcdn.com/image/fetch/$s_!go5s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.png 848w, https://substackcdn.com/image/fetch/$s_!go5s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!go5s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8f321b1-acb6-4900-9fd5-7bb0aaa1e90d_1200x1200.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><strong>How I Developed This Approach</strong></h2><blockquote><p><strong>Key Principle:</strong> "An AI assistant is neither omniscient nor deficient&#8212;it simply reflects the quality and clarity of the context you provide it."</p></blockquote><p>After countless hours working with AI coding assistants, I kept hitting the same frustrations. The AI would misunderstand requirements, forget context, or produce inconsistent code. </p><p>I needed a better way to collaborate with these tools. Through trial and error, I developed this approach based on a simple insight: <em><strong>AI assistants perform exactly as well as the context you provide them</strong></em>. <em><strong>They're not magical oracles but more like junior developers who need clear guidance and structure.</strong></em></p><h2><strong>The Setup Phase: Building Your Foundation</strong></h2><blockquote><p><strong>Key Principle:</strong> "Invest time in setting clear standards and creating comprehensive documentation upfront&#8212;it's the foundation that makes every subsequent interaction with your AI assistant more effective."</p></blockquote><p>I start by establishing a solid foundation. This is a one-time investment that pays dividends throughout the project.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hcBW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83d51dfe-73ca-4824-8134-6fd4a7affa4f_1200x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hcBW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83d51dfe-73ca-4824-8134-6fd4a7affa4f_1200x1200.png 424w, https://substackcdn.com/image/fetch/$s_!hcBW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83d51dfe-73ca-4824-8134-6fd4a7affa4f_1200x1200.png 848w, https://substackcdn.com/image/fetch/$s_!hcBW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83d51dfe-73ca-4824-8134-6fd4a7affa4f_1200x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!hcBW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83d51dfe-73ca-4824-8134-6fd4a7affa4f_1200x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hcBW!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83d51dfe-73ca-4824-8134-6fd4a7affa4f_1200x1200.png" width="1200" height="1200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83d51dfe-73ca-4824-8134-6fd4a7affa4f_1200x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1200,&quot;width&quot;:1200,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:237271,&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://pixels.place/i/159738042?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83d51dfe-73ca-4824-8134-6fd4a7affa4f_1200x1200.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hcBW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83d51dfe-73ca-4824-8134-6fd4a7affa4f_1200x1200.png 424w, https://substackcdn.com/image/fetch/$s_!hcBW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83d51dfe-73ca-4824-8134-6fd4a7affa4f_1200x1200.png 848w, https://substackcdn.com/image/fetch/$s_!hcBW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83d51dfe-73ca-4824-8134-6fd4a7affa4f_1200x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!hcBW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83d51dfe-73ca-4824-8134-6fd4a7affa4f_1200x1200.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><strong>Project Repository Configuration</strong></h3><p>First, I set up the technical infrastructure:</p><ul><li><p>A GitHub repository with branch protection rules</p></li><li><p>PR templates aligned with quality standards</p></li><li><p>CI/CD pipelines for automated testing</p></li><li><p>Static type-checking configuration (TypeScript, mypy, etc.)</p></li></ul><h3><strong>The Four Guidance Documents</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q1bQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49ed4851-e036-484a-b465-32451cb676c1_1536x1056.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q1bQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49ed4851-e036-484a-b465-32451cb676c1_1536x1056.png 424w, https://substackcdn.com/image/fetch/$s_!q1bQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49ed4851-e036-484a-b465-32451cb676c1_1536x1056.png 848w, https://substackcdn.com/image/fetch/$s_!q1bQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49ed4851-e036-484a-b465-32451cb676c1_1536x1056.png 1272w, https://substackcdn.com/image/fetch/$s_!q1bQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49ed4851-e036-484a-b465-32451cb676c1_1536x1056.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!q1bQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49ed4851-e036-484a-b465-32451cb676c1_1536x1056.png" width="1456" height="1001" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/49ed4851-e036-484a-b465-32451cb676c1_1536x1056.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1001,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!q1bQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49ed4851-e036-484a-b465-32451cb676c1_1536x1056.png 424w, https://substackcdn.com/image/fetch/$s_!q1bQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49ed4851-e036-484a-b465-32451cb676c1_1536x1056.png 848w, https://substackcdn.com/image/fetch/$s_!q1bQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49ed4851-e036-484a-b465-32451cb676c1_1536x1056.png 1272w, https://substackcdn.com/image/fetch/$s_!q1bQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49ed4851-e036-484a-b465-32451cb676c1_1536x1056.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 heart of this approach is creating four comprehensive documents:</p><ol><li><p><strong>Project Overview</strong></p><ul><li><p>High-level description of what we're building and why</p></li><li><p>Business objectives and core functionality</p></li><li><p>High-level description of various sub-systems and components</p></li></ul></li><li><p><strong>Technical Architecture (as an architect)</strong></p><ul><li><p>Coding standards and style guidelines</p></li><li><p>Design principles (SOLID, YAGNI, DRY)</p></li><li><p>Implementation patterns to follow</p></li><li><p>Technology stack with specific version requirements</p></li><li><p>Design Philosophy</p></li></ul></li><li><p><strong>Testing Guidelines (as a tester)</strong></p><ul><li><p>Test strategy and coverage requirements</p></li><li><p>Unit test structure and patterns</p></li><li><p>Edge cases to consider and handle</p></li><li><p>Integration testing approach</p></li></ul></li><li><p><strong>Product Management (as a product manager)</strong></p><ul><li><p>Prioritization guidelines</p></li><li><p>Iterative approach explanation</p></li><li><p>Risk management strategy</p></li><li><p>Strategy to break the project into atomic, achievable, and working milestones</p></li></ul></li></ol><p>These guidance documents are configured as automated context in my AI tools. In Cursor, add them to <code>.cursor/rules</code> or <code>.windsurfrules</code> in Windsurf so they're automatically included in every session. This ensures your standards are consistently applied across all AI interactions without manual copy-pasting.</p><h2><strong>The Development Cycle: Plan, Implement, Document</strong></h2><blockquote><p><strong>Key Principle:</strong> "Never write a line of code until you've achieved complete alignment on what you're building&#8212;misunderstandings corrected during planning cost minutes, while those caught during implementation cost hours."</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Nj_g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2862b83d-5523-4a7f-a6fb-33e12bec954d_1200x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Nj_g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2862b83d-5523-4a7f-a6fb-33e12bec954d_1200x1200.png 424w, https://substackcdn.com/image/fetch/$s_!Nj_g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2862b83d-5523-4a7f-a6fb-33e12bec954d_1200x1200.png 848w, https://substackcdn.com/image/fetch/$s_!Nj_g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2862b83d-5523-4a7f-a6fb-33e12bec954d_1200x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!Nj_g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2862b83d-5523-4a7f-a6fb-33e12bec954d_1200x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Nj_g!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2862b83d-5523-4a7f-a6fb-33e12bec954d_1200x1200.png" width="1200" height="1200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2862b83d-5523-4a7f-a6fb-33e12bec954d_1200x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1200,&quot;width&quot;:1200,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:387063,&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://pixels.place/i/159738042?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2862b83d-5523-4a7f-a6fb-33e12bec954d_1200x1200.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Nj_g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2862b83d-5523-4a7f-a6fb-33e12bec954d_1200x1200.png 424w, https://substackcdn.com/image/fetch/$s_!Nj_g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2862b83d-5523-4a7f-a6fb-33e12bec954d_1200x1200.png 848w, https://substackcdn.com/image/fetch/$s_!Nj_g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2862b83d-5523-4a7f-a6fb-33e12bec954d_1200x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!Nj_g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2862b83d-5523-4a7f-a6fb-33e12bec954d_1200x1200.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> For each task, I follow a consistent process:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!byGd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca42eb4-d898-40e4-8c41-30798577561d_1536x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!byGd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca42eb4-d898-40e4-8c41-30798577561d_1536x1080.png 424w, https://substackcdn.com/image/fetch/$s_!byGd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca42eb4-d898-40e4-8c41-30798577561d_1536x1080.png 848w, https://substackcdn.com/image/fetch/$s_!byGd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca42eb4-d898-40e4-8c41-30798577561d_1536x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!byGd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca42eb4-d898-40e4-8c41-30798577561d_1536x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!byGd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca42eb4-d898-40e4-8c41-30798577561d_1536x1080.png" width="1456" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ca42eb4-d898-40e4-8c41-30798577561d_1536x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!byGd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca42eb4-d898-40e4-8c41-30798577561d_1536x1080.png 424w, https://substackcdn.com/image/fetch/$s_!byGd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca42eb4-d898-40e4-8c41-30798577561d_1536x1080.png 848w, https://substackcdn.com/image/fetch/$s_!byGd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca42eb4-d898-40e4-8c41-30798577561d_1536x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!byGd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca42eb4-d898-40e4-8c41-30798577561d_1536x1080.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><strong>Phase 1: Documentation Planning Phase</strong></h3><blockquote><p><strong>Key Principle:</strong> "The documentation plan is your shared mental model with the AI&#8212;refine it until there's zero ambiguity, then use it as a portable context across tools and sessions."</p></blockquote><p>Before writing any code, I work with the AI to create a detailed implementation plan document. This serves multiple purposes:</p><ul><li><p><strong>Clarifies requirements</strong> - The back-and-forth forces me to be precise</p></li><li><p><strong>Verifies AI understanding</strong> - I can see if the AI has misunderstood anything</p></li><li><p><strong>Creates portable context</strong> - I can move this between different AI tools or sessions</p></li><li><p><strong>Manages context window limitations</strong> - Distills essential information into a compact form</p></li></ul><p>I iterate on this plan until I'm 100% aligned with the AI's understanding. Sometimes, this takes several revisions, and that's fine&#8212;it's much cheaper to fix misunderstandings here than after the code is written.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/subscribe?"><span>Subscribe now</span></a></p><h4><strong>Why This Planning Phase Is Worth It</strong></h4><p>The documentation planning phase might seem tedious, but it addresses the core limitations of current AI tools:</p><ul><li><p><strong>Context window limitations</strong> - Most AI assistants have limited memory</p></li><li><p><strong>Tool-switching</strong> - Moving between Cursor, ChatGPT, Claude, etc., loses context</p></li><li><p><strong>Misalignment</strong> - AI might think it understands requirements when it doesn't</p></li></ul><h3><strong>Phase 2: Implementation Phase</strong></h3><blockquote><p><strong>Key Principle:</strong> "With thorough planning complete, implementation becomes verification rather than exploration&#8212;your guardrails of static typing and automated tests ensure the code matches your intent."</p></blockquote><p>Only after we're fully aligned does the AI write actual code. Because of our thorough planning, this phase typically goes smoothly:</p><ul><li><p>The AI implements based on our agreed plan</p></li><li><p>Static type checking catches many potential issues</p></li><li><p>Tests verify functionality against requirements</p></li><li><p>I review the implementation, but most issues are caught during planning</p></li></ul><h3><strong>Phase 3: Documentation Update</strong></h3><blockquote><p><strong>Key Principle:</strong> "Documentation isn't just a record of what you built, but the evolving context that guides what you'll build next&#8212;maintain it with the same care you'd maintain production code."</p></blockquote><p>After implementation, I ask the AI to update our documentation:</p><ul><li><p>Record what we actually built versus what we planned</p></li><li><p>Note any deviations and why they occurred</p></li><li><p>Update the working document for future milestones</p></li></ul><h2><strong>Real-World Results</strong></h2><blockquote><p><strong>Key Principle:</strong> "Success isn't measured by how intelligent your AI seems, but by how consistently it produces quality code that requires minimal rework&#8212;predictability trumps brilliance."</p></blockquote><p>After adopting this approach, I've seen dramatic improvements:</p><ul><li><p>Code quality is consistently higher</p></li><li><p>Iterations are more predictable and quicker</p></li><li><p>Context switching between tools doesn't derail progress</p></li><li><p>The AI rarely misunderstands requirements</p></li><li><p>I spend less time fixing and more time building</p></li></ul><h2><strong>The Philosophy Behind This Approach</strong></h2><blockquote><p><strong>Key Principle:</strong> "Treat AI as a junior engineer that needs context and guidance, not as a magical oracle that should read your mind&#8212;the best AI collaborations are structured conversations, not one-off prompts."</p></blockquote><p>The key insight is treating AI as a collaborator, not a magic solution generator. You get much better results by providing clear context, guidelines, and feedback. I've found that most "AI failures" are actually failures of context or instruction. </p><p>The AI performs remarkably well when I'm explicit about requirements and design principles. This approach takes the best of human software engineering practices&#8212;clear requirements, consistent architecture, test-driven development&#8212;and adapts them to the AI-assisted development workflow.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/vibe-coding-decoded-taming-the-chaos?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Pixels &amp; Ponderings! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/vibe-coding-decoded-taming-the-chaos?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/vibe-coding-decoded-taming-the-chaos?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><h2><strong>Don&#8217;t just take my word for it; try it out yourself!</strong></h2><blockquote><p><strong>Key Principle:</strong> "Begin with thorough foundation-setting rather than rushing to implement&#8212;the time invested in clear documentation and project structure will be returned tenfold through smoother development cycles."</p></blockquote><p>If you want to try this approach:</p><ul><li><p>Start with creating your four guidance documents</p></li><li><p>Break your project into small, focused milestones</p></li><li><p>For each milestone, create a documentation plan before any code</p></li><li><p>Iterate until you're fully aligned with the AI</p></li><li><p>Only then implement, test, and document</p></li></ul><p>The initial setup takes time, but the efficiency gains in development make it worthwhile. You'll find yourself spending less time fixing AI misunderstandings and more time making actual progress. </p><p>Remember: the AI is as good as the context you provide it. Give it the right foundation, and it becomes an invaluable partner in your development process.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pixels &amp; Ponderings! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[(#2) Building NotebookLM from scratch: making consumption easier]]></title><description><![CDATA[From reading lists to playlists: Delivering AI-generated podcasts to your podcast apps]]></description><link>https://breaking.build/p/2-building-notebooklm-from-scratch</link><guid isPermaLink="false">https://breaking.build/p/2-building-notebooklm-from-scratch</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Fri, 08 Nov 2024 06:01:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WzoY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8ba0e64-5ac9-4d1b-b84e-b1ef3554b287_2876x1364.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_!WzoY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8ba0e64-5ac9-4d1b-b84e-b1ef3554b287_2876x1364.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WzoY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8ba0e64-5ac9-4d1b-b84e-b1ef3554b287_2876x1364.png 424w, https://substackcdn.com/image/fetch/$s_!WzoY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8ba0e64-5ac9-4d1b-b84e-b1ef3554b287_2876x1364.png 848w, https://substackcdn.com/image/fetch/$s_!WzoY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8ba0e64-5ac9-4d1b-b84e-b1ef3554b287_2876x1364.png 1272w, https://substackcdn.com/image/fetch/$s_!WzoY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8ba0e64-5ac9-4d1b-b84e-b1ef3554b287_2876x1364.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WzoY!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8ba0e64-5ac9-4d1b-b84e-b1ef3554b287_2876x1364.png" width="1200" height="569.5054945054945" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8ba0e64-5ac9-4d1b-b84e-b1ef3554b287_2876x1364.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:691,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:2565147,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WzoY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8ba0e64-5ac9-4d1b-b84e-b1ef3554b287_2876x1364.png 424w, https://substackcdn.com/image/fetch/$s_!WzoY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8ba0e64-5ac9-4d1b-b84e-b1ef3554b287_2876x1364.png 848w, https://substackcdn.com/image/fetch/$s_!WzoY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8ba0e64-5ac9-4d1b-b84e-b1ef3554b287_2876x1364.png 1272w, https://substackcdn.com/image/fetch/$s_!WzoY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8ba0e64-5ac9-4d1b-b84e-b1ef3554b287_2876x1364.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>Quick Update</h2><ul><li><p>Built a working pipeline that transforms articles into audio content</p></li><li><p>Restructured the codebase for better maintainability</p></li><li><p>Implemented configurable workflows using YAML</p></li><li><p>Added support for S3-compatible storage</p></li></ul><p><em>Here is a podcast version of this article generated via <a href="https://github.com/dhruvbaldawa/gyandex">gyandex</a></em></p><div class="native-audio-embed" data-component-name="AudioPlaceholder" data-attrs="{&quot;label&quot;:null,&quot;mediaUploadId&quot;:&quot;2e20e16d-f93f-4e16-b5e6-330aa432302e&quot;,&quot;duration&quot;:134.6351,&quot;downloadable&quot;:false,&quot;isEditorNode&quot;:true}"></div><p><em>New to this series? Check out <a href="https://pixels.place/p/building-notebooklm-from-scratch">the first post</a> where I explored why I am building an open-source alternative to NotebookLM.</em></p><div><hr></div><h2>The Journey So Far</h2><p>Remember how we talked about information overload in our last post? Well, I've made significant progress in tackling that challenge. Instead of just dreaming about an ideal content consumption tool, we now have a working prototype that does something pretty cool: it turns your reading list into a podcast feed!</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;dd6d3af1-43a2-47ad-8555-902475dd6f92&quot;,&quot;duration&quot;:null}"></div><h3>What's Working Now</h3><p>The system can now:</p><ul><li><p>Take an article link as input</p></li><li><p>Process and transform the content</p></li><li><p>Generate audio output</p></li><li><p>Create a podcast feed that updates automatically with new content</p></li></ul><p>This is particularly exciting because it takes us <em>one step closer to flexible content consumption</em> - a key feature I wanted to expand upon from NotebookLM.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h-CG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8207035d-9d93-4394-81a7-d0293b839d1b_1402x722.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h-CG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8207035d-9d93-4394-81a7-d0293b839d1b_1402x722.png 424w, https://substackcdn.com/image/fetch/$s_!h-CG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8207035d-9d93-4394-81a7-d0293b839d1b_1402x722.png 848w, https://substackcdn.com/image/fetch/$s_!h-CG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8207035d-9d93-4394-81a7-d0293b839d1b_1402x722.png 1272w, https://substackcdn.com/image/fetch/$s_!h-CG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8207035d-9d93-4394-81a7-d0293b839d1b_1402x722.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h-CG!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8207035d-9d93-4394-81a7-d0293b839d1b_1402x722.png" width="1200" height="617.9743223965763" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8207035d-9d93-4394-81a7-d0293b839d1b_1402x722.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:722,&quot;width&quot;:1402,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:86256,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!h-CG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8207035d-9d93-4394-81a7-d0293b839d1b_1402x722.png 424w, https://substackcdn.com/image/fetch/$s_!h-CG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8207035d-9d93-4394-81a7-d0293b839d1b_1402x722.png 848w, https://substackcdn.com/image/fetch/$s_!h-CG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8207035d-9d93-4394-81a7-d0293b839d1b_1402x722.png 1272w, https://substackcdn.com/image/fetch/$s_!h-CG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8207035d-9d93-4394-81a7-d0293b839d1b_1402x722.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>Technical Progress</h2><h3>From Prototype to Production-Ready</h3><p>The initial prototype lived in a single Jupyter notebook. Now, it's evolved into a structured project with dedicated modules.</p><pre><code>Before:
main.ipynb

After:
gyandex
&#9500;&#9472;&#9472; __init__.py
&#9500;&#9472;&#9472; cli
&#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; __init__.py
&#9474;&nbsp;&nbsp; &#9492;&#9472;&#9472; genpod.py
&#9500;&#9472;&#9472; llms
&#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; __init__.py
&#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; factory.py
&#9474;&nbsp;&nbsp; &#9492;&#9472;&#9472; factory_test.py
&#9500;&#9472;&#9472; loaders
&#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; __init__.py
&#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; factory.py
&#9474;&nbsp;&nbsp; &#9492;&#9472;&#9472; factory_test.py
&#9492;&#9472;&#9472; podgen
    &#9500;&#9472;&#9472; __init__.py
    &#9500;&#9472;&#9472; config
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; __init__.py
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; loader.py
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; loader_test.py
    &#9474;&nbsp;&nbsp; &#9492;&#9472;&#9472; schema.py
    &#9500;&#9472;&#9472; engine
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; __init__.py
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; generator.py
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; publisher.py
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; publisher_test.py
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; synthesizer.py
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; synthesizer_test.py
    &#9474;&nbsp;&nbsp; &#9492;&#9472;&#9472; workflows.py
    &#9500;&#9472;&#9472; feed
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; __init__.py
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; generator.py
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; generator_test.py
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; models.py
    &#9474;&nbsp;&nbsp; &#9492;&#9472;&#9472; models_test.py
    &#9500;&#9472;&#9472; processors
    &#9474;&nbsp;&nbsp; &#9500;&#9472;&#9472; __init__.py
    &#9474;&nbsp;&nbsp; &#9492;&#9472;&#9472; tts.py
    &#9492;&#9472;&#9472; storage
        &#9500;&#9472;&#9472; __init__.py
        &#9500;&#9472;&#9472; factory.py
        &#9500;&#9472;&#9472; factory_test.py
        &#9500;&#9472;&#9472; s3.py
        &#9492;&#9472;&#9472; s3_test.py</code></pre><p>It seems a bit daunting, but that is also the reason why I had to do this now because having everything in a notebook was no longer sustainable.</p><h3>Configurable Workflows</h3><p>Configuration is now managed through YAML files, making it easier to control the entire process. The system supports environment variables for secure credential management.</p><p>Here's a simplified example:</p><pre><code>version: "1.0"
content:
  source: "https://www.rubick.com/skip-level-1-on-1s/"
  format: "html"

llm:
  provider: "google-generative-ai"
  model: "gemini-1.5-pro"
  temperature: 1.0
  google_api_key: "${GOOGLE_API_KEY}"

tts:  # This section isn't hooked up properly yet
  provider: "aws"
  default_voice: "default_host"
  voices:
    default_host:
      voice_id: "Matthew"
      speaking_rate: 1.0
      pitch: 0
    guest:
      voice_id: "Joanna"
      speaking_rate: 1.1
      pitch: 1

storage:
  provider: "s3"
  access_key: "${ACCESS_KEY_ID}"   # This is valid because the configuration format accepts environment variables
  secret_key: "${SECRET_ACCESS_KEY}"
  bucket: "gyandex"
  region: "us-east-1"
  endpoint: "https://xxx.r2.cloudflarestorage.com"
  custom_domain: "pub-xxx.r2.dev"

feed:
  title: "Gyandex: Tech Reading"
  slug: "reading-list"
  description: "Technical reading list curated by Dhruv Baldawa"
  author: "Dhruv Baldawa"
  email: "test@example.com"
  language: "en"
  categories: ["Technology", "Software Development", "Programming"]
  image: "https://images.pexels.com/photos/26730962/pexels-photo-26730962.jpeg?cs=srgb&amp;dl=pexels-helloaesthe-26730962.jpg&amp;fm=jpg&amp;w=640&amp;h=960"
  website: "https://github.com/dhruvbaldawa/gyandex"</code></pre><p>I built a companion CLI (<code>podgen</code>) which can run the entire workflow using this configuration. I plan to create separate configuration files for different use-cases and their own customizations. For example, I&#8217;d like to have different podcast structure for technical articles vs philosophical ones.</p><pre><code>podgen reading-list.yaml</code></pre><p>For now, the feeds are powered by a local SQLite database. I will be iterating on my choice of data store throughout this project.</p><h2>Learning Journey</h2><p>While this update focused more on infrastructure than innovation, I discovered Meta's <a href="https://github.com/meta-llama/llama-recipes/tree/main/recipes/quickstart/NotebookLlama">NotebookLlama</a> - a toy example with similar goals. I'm looking forward to exploring their approach in future updates.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!R5di!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3bb5a9-6b5b-4bba-b4e0-7f7b6d611dc9_6000x3374.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!R5di!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3bb5a9-6b5b-4bba-b4e0-7f7b6d611dc9_6000x3374.jpeg 424w, https://substackcdn.com/image/fetch/$s_!R5di!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3bb5a9-6b5b-4bba-b4e0-7f7b6d611dc9_6000x3374.jpeg 848w, https://substackcdn.com/image/fetch/$s_!R5di!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3bb5a9-6b5b-4bba-b4e0-7f7b6d611dc9_6000x3374.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!R5di!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3bb5a9-6b5b-4bba-b4e0-7f7b6d611dc9_6000x3374.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!R5di!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3bb5a9-6b5b-4bba-b4e0-7f7b6d611dc9_6000x3374.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b3bb5a9-6b5b-4bba-b4e0-7f7b6d611dc9_6000x3374.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Outline.jpg&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Outline.jpg" title="Outline.jpg" srcset="https://substackcdn.com/image/fetch/$s_!R5di!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3bb5a9-6b5b-4bba-b4e0-7f7b6d611dc9_6000x3374.jpeg 424w, https://substackcdn.com/image/fetch/$s_!R5di!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3bb5a9-6b5b-4bba-b4e0-7f7b6d611dc9_6000x3374.jpeg 848w, https://substackcdn.com/image/fetch/$s_!R5di!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3bb5a9-6b5b-4bba-b4e0-7f7b6d611dc9_6000x3374.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!R5di!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3bb5a9-6b5b-4bba-b4e0-7f7b6d611dc9_6000x3374.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>Next Steps</h2><ol><li><p><strong>Content Processing Improvements</strong></p><ul><li><p>Current focus: Enhancing the quality of generated content</p></li><li><p>Exploring better approaches for longer articles and creating high-quality podcasts</p></li></ul></li><li><p><strong>Configuration Enhancements</strong></p><ul><li><p>Expanding YAML configuration options</p></li><li><p>Implementing more control over the text-to-speech process, which does not exist right now</p></li></ul></li></ol><h2>Building in Public</h2><p>I'm sharing this journey to document my learning about Generative AI and hopefully help others who are interested in similar projects. Each update brings new insights about both the technical challenges and the practical applications of current AI capabilities.</p><ul><li><p><strong><a href="https://www.linkedin.com/posts/dhruvbaldawa_buildinginpublic-generativeai-notebooklm-activity-7260542835450400771-Ok3o?utm_source=share&amp;utm_medium=member_desktop">LinkedIn update</a></strong></p></li><li><p><strong>Source code:</strong> <a href="https://github.com/dhruvbaldawa/gyandex">https://github.com/dhruvbaldawa/gyandex</a></p></li><li><p><strong>Pull request for this update:</strong> <a href="https://github.com/dhruvbaldawa/gyandex/pull/1">https://github.com/dhruvbaldawa/gyandex/pull/1</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4SKD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26c5a4f4-e4d0-4b0f-9f94-7b9ed4158578_3103x403.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4SKD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26c5a4f4-e4d0-4b0f-9f94-7b9ed4158578_3103x403.png 424w, https://substackcdn.com/image/fetch/$s_!4SKD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26c5a4f4-e4d0-4b0f-9f94-7b9ed4158578_3103x403.png 848w, https://substackcdn.com/image/fetch/$s_!4SKD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26c5a4f4-e4d0-4b0f-9f94-7b9ed4158578_3103x403.png 1272w, https://substackcdn.com/image/fetch/$s_!4SKD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26c5a4f4-e4d0-4b0f-9f94-7b9ed4158578_3103x403.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4SKD!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26c5a4f4-e4d0-4b0f-9f94-7b9ed4158578_3103x403.png" width="1200" height="155.76923076923077" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26c5a4f4-e4d0-4b0f-9f94-7b9ed4158578_3103x403.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:189,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:133414,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4SKD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26c5a4f4-e4d0-4b0f-9f94-7b9ed4158578_3103x403.png 424w, https://substackcdn.com/image/fetch/$s_!4SKD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26c5a4f4-e4d0-4b0f-9f94-7b9ed4158578_3103x403.png 848w, https://substackcdn.com/image/fetch/$s_!4SKD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26c5a4f4-e4d0-4b0f-9f94-7b9ed4158578_3103x403.png 1272w, https://substackcdn.com/image/fetch/$s_!4SKD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26c5a4f4-e4d0-4b0f-9f94-7b9ed4158578_3103x403.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Project Roadmap</figcaption></figure></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/2-building-notebooklm-from-scratch?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Pixels &amp; Ponderings! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/2-building-notebooklm-from-scratch?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/2-building-notebooklm-from-scratch?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Building NotebookLM from Scratch]]></title><description><![CDATA[Building AI tools in public: From newsletters to podcasts, one experiment at a time]]></description><link>https://breaking.build/p/building-notebooklm-from-scratch</link><guid isPermaLink="false">https://breaking.build/p/building-notebooklm-from-scratch</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Fri, 25 Oct 2024 10:53:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!j-Bu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532f9960-10e3-4d10-91fb-56ca0ed4045e_863x432.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Introduction</h2><p>As a developer passionate about AI and content consumption, I've embarked on an exciting journey to build in public - creating an open-source alternative to NotebookLM, <a href="https://github.com/dhruvbaldawa/gyandex">gyandex</a>. This project isn't just about coding; it's about exploring the fascinating world of Generative AI and sharing my learnings along the way.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/subscribe?"><span>Subscribe now</span></a></p><h2>The Challenge of Modern Content Consumption</h2><p>We live in an age of information overflow. Like many of you, I subscribe to numerous newsletters and constantly battle with my inbox full of unread articles. Despite my genuine interest in these topics, finding the time to read everything has become increasingly challenging.</p><p>This is where the magic of Generative AI comes in. Through AI-powered content transformation, I've discovered a way to <em>consume 80% of my content in just 5% time</em>. It's not just about speed - it's about <strong>adapting content to fit how I&#8217;d like to consume it</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_!j-Bu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532f9960-10e3-4d10-91fb-56ca0ed4045e_863x432.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j-Bu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532f9960-10e3-4d10-91fb-56ca0ed4045e_863x432.png 424w, https://substackcdn.com/image/fetch/$s_!j-Bu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532f9960-10e3-4d10-91fb-56ca0ed4045e_863x432.png 848w, https://substackcdn.com/image/fetch/$s_!j-Bu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532f9960-10e3-4d10-91fb-56ca0ed4045e_863x432.png 1272w, https://substackcdn.com/image/fetch/$s_!j-Bu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532f9960-10e3-4d10-91fb-56ca0ed4045e_863x432.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j-Bu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532f9960-10e3-4d10-91fb-56ca0ed4045e_863x432.png" width="863" height="432" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/532f9960-10e3-4d10-91fb-56ca0ed4045e_863x432.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:432,&quot;width&quot;:863,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:45220,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!j-Bu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532f9960-10e3-4d10-91fb-56ca0ed4045e_863x432.png 424w, https://substackcdn.com/image/fetch/$s_!j-Bu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532f9960-10e3-4d10-91fb-56ca0ed4045e_863x432.png 848w, https://substackcdn.com/image/fetch/$s_!j-Bu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532f9960-10e3-4d10-91fb-56ca0ed4045e_863x432.png 1272w, https://substackcdn.com/image/fetch/$s_!j-Bu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F532f9960-10e3-4d10-91fb-56ca0ed4045e_863x432.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></p><h2>Why Another NotebookLM?</h2><p>NotebookLM has been my go-to tool for various use cases - from researching baby strollers to reading technical papers and even debugging production incidents. It's an impressive tool, but as a developer, I've often found myself wanting more flexibility and customization options.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;878c7446-f130-4bc5-bc65-3fbe15adf9b6&quot;,&quot;duration&quot;:null}"></div><p>Instead of waiting for these features, I decided to build them myself. Why? Because sometimes the best way to understand and improve upon a tool is to rebuild it from scratch. Plus, it's an excellent opportunity to dive deep into the latest developments in Generative AI.</p><h2>The MVP: From Text to Talk</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GMMD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F425787c7-c153-4955-8074-698bcaf93e1a_879x288.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GMMD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F425787c7-c153-4955-8074-698bcaf93e1a_879x288.png 424w, https://substackcdn.com/image/fetch/$s_!GMMD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F425787c7-c153-4955-8074-698bcaf93e1a_879x288.png 848w, https://substackcdn.com/image/fetch/$s_!GMMD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F425787c7-c153-4955-8074-698bcaf93e1a_879x288.png 1272w, https://substackcdn.com/image/fetch/$s_!GMMD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F425787c7-c153-4955-8074-698bcaf93e1a_879x288.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GMMD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F425787c7-c153-4955-8074-698bcaf93e1a_879x288.png" width="879" height="288" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/425787c7-c153-4955-8074-698bcaf93e1a_879x288.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:288,&quot;width&quot;:879,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28793,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GMMD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F425787c7-c153-4955-8074-698bcaf93e1a_879x288.png 424w, https://substackcdn.com/image/fetch/$s_!GMMD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F425787c7-c153-4955-8074-698bcaf93e1a_879x288.png 848w, https://substackcdn.com/image/fetch/$s_!GMMD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F425787c7-c153-4955-8074-698bcaf93e1a_879x288.png 1272w, https://substackcdn.com/image/fetch/$s_!GMMD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F425787c7-c153-4955-8074-698bcaf93e1a_879x288.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>For the initial version, I'm focusing on a specific yet powerful feature: transforming web articles into podcasts. The goal is to create a system that can:</p><ul><li><p>Clean and extract content from web articles</p></li><li><p>Generate engaging podcast scripts</p></li><li><p>Convert these scripts into high-quality audio</p></li><li><p>Package everything into a podcast feed format</p></li></ul><h2>Current Progress</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FfvT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0877471f-a6b6-4b1a-8c36-6258678b6d3f_879x288.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FfvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0877471f-a6b6-4b1a-8c36-6258678b6d3f_879x288.png 424w, https://substackcdn.com/image/fetch/$s_!FfvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0877471f-a6b6-4b1a-8c36-6258678b6d3f_879x288.png 848w, https://substackcdn.com/image/fetch/$s_!FfvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0877471f-a6b6-4b1a-8c36-6258678b6d3f_879x288.png 1272w, https://substackcdn.com/image/fetch/$s_!FfvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0877471f-a6b6-4b1a-8c36-6258678b6d3f_879x288.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FfvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0877471f-a6b6-4b1a-8c36-6258678b6d3f_879x288.png" width="879" height="288" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0877471f-a6b6-4b1a-8c36-6258678b6d3f_879x288.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:288,&quot;width&quot;:879,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37602,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FfvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0877471f-a6b6-4b1a-8c36-6258678b6d3f_879x288.png 424w, https://substackcdn.com/image/fetch/$s_!FfvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0877471f-a6b6-4b1a-8c36-6258678b6d3f_879x288.png 848w, https://substackcdn.com/image/fetch/$s_!FfvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0877471f-a6b6-4b1a-8c36-6258678b6d3f_879x288.png 1272w, https://substackcdn.com/image/fetch/$s_!FfvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0877471f-a6b6-4b1a-8c36-6258678b6d3f_879x288.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 initial prototype is already functional:</p><ol><li><p><strong>Content Extraction</strong>: Using <a href="https://jina.ai/">jina.ai</a> APIs for clean, accurate web content extraction</p></li><li><p><strong>Script Generation</strong>: Implementing <a href="https://ai.google.dev/gemini-api">Gemini Pro APIs</a> to transform articles into natural-sounding podcast scripts (currently well within the free tier limits)</p></li><li><p><strong>Audio Synthesis</strong>: Utilizing <a href="https://cloud.google.com/text-to-speech/?hl=en">Google Cloud Text-to-Speech APIs</a> for high-quality audio generation</p></li></ol><h3>Demo</h3><p>Generated podcast for <a href="https://paulgraham.com/persistence.html">The Right Kind of Stubborn by Paul Graham</a></p><div class="native-audio-embed" data-component-name="AudioPlaceholder" data-attrs="{&quot;label&quot;:null,&quot;mediaUploadId&quot;:&quot;34dba701-f0e2-428f-bc27-ff16b9d474e0&quot;,&quot;duration&quot;:202.57959,&quot;downloadable&quot;:false,&quot;isEditorNode&quot;:true}"></div><p>Generated podcast for <a href="https://lethain.com/frameworks-decision-making/">Manage your priorities and energy by @lethai</a></p><div class="native-audio-embed" data-component-name="AudioPlaceholder" data-attrs="{&quot;label&quot;:null,&quot;mediaUploadId&quot;:&quot;4759bb28-9c1a-463c-8695-73fe800ca6d9&quot;,&quot;duration&quot;:188.00327,&quot;downloadable&quot;:false,&quot;isEditorNode&quot;:true}"></div><h2>What's Next on the Roadmap</h2><p>The project is evolving rapidly, with several key developments planned</p><ol><li><p><strong>Code Architecture Refinement</strong></p><ul><li><p>Moving from Jupyter notebooks to Python modules</p></li></ul></li><li><p><strong>Improve usability</strong></p><ul><li><p>Developing a flexible CLI interface</p></li><li><p>Creating YAML-based configuration profiles for different podcast profiles</p></li><li><p>Supporting different content transformation strategies</p></li></ul></li><li><p><strong>Podcast Integration</strong></p><ul><li><p>Implementing podcast feed generation</p></li><li><p>Adding metadata management</p></li><li><p>Ensuring compatibility with popular podcast apps</p></li></ul></li></ol><h2>Follow the Journey</h2><p><em>Check out <a href="https://open.substack.com/pub/pixelsplace/p/2-building-notebooklm-from-scratch?r=ql82&amp;utm_campaign=post&amp;utm_medium=web">the next article</a> in this series</em></p><p>This is just the beginning of what I hope will become a valuable tool. I'm building this in public because I believe in the power of community feedback and collaborative learning.</p><p>Whether you're interested in Generative AI, content transformation, or just looking for better ways to consume information, I invite you to follow along this project.</p><p>Stay tuned for more updates as we continue to develop and refine <a href="https://github.com/dhruvbaldawa/gyandex/">gyandex</a>!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/building-notebooklm-from-scratch?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Pixels &amp; Ponderings! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/building-notebooklm-from-scratch?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/building-notebooklm-from-scratch?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Mastery Hacks (Part 1): Repetition]]></title><description><![CDATA[Repetition is the key that unlocks the door to mastery. It&#8217;s not about doing it until you get it right, it&#8217;s about doing it until you can&#8217;t get it wrong.]]></description><link>https://breaking.build/p/mastery-hacks-part-1-repetition</link><guid isPermaLink="false">https://breaking.build/p/mastery-hacks-part-1-repetition</guid><dc:creator><![CDATA[Dhruv Baldawa]]></dc:creator><pubDate>Sun, 14 Jul 2024 11:03:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AkLR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F529b7094-07ac-428a-9229-6f5591d927d5_2048x2048.jpeg" 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_!AkLR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F529b7094-07ac-428a-9229-6f5591d927d5_2048x2048.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AkLR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F529b7094-07ac-428a-9229-6f5591d927d5_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AkLR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F529b7094-07ac-428a-9229-6f5591d927d5_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AkLR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F529b7094-07ac-428a-9229-6f5591d927d5_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AkLR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F529b7094-07ac-428a-9229-6f5591d927d5_2048x2048.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AkLR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F529b7094-07ac-428a-9229-6f5591d927d5_2048x2048.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/529b7094-07ac-428a-9229-6f5591d927d5_2048x2048.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:728239,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AkLR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F529b7094-07ac-428a-9229-6f5591d927d5_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AkLR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F529b7094-07ac-428a-9229-6f5591d927d5_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AkLR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F529b7094-07ac-428a-9229-6f5591d927d5_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AkLR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F529b7094-07ac-428a-9229-6f5591d927d5_2048x2048.jpeg 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 taught myself programming when I was eight years old. My first language was Actionscript in Adobe (then Macromedia) Flash; I learned it because I wanted to build games. Over the years, I've taught myself a variety of programming languages and frameworks. Along this journey, I've discovered strategies that have helped me learn and master some of these tools. <br><br>In this post, I will discuss about <strong>Repetition</strong>.<br><br>Repetition in learning is a powerful tool. It involves exposing oneself to the same information or activity repeatedly, leading to enhanced memory retention and skill acquisition. This method, though simple, can yield remarkable results. <br><br>It's based on the principle that the more frequently a neural pathway is used, the stronger it becomes, making recall or performance easier and more efficient.<br><br>In practice, I employ repetition in various ways. For instance, if I am trying to learn a new programming language like Rust, I don't limit myself to just one source. I read multiple articles and books, watch videos, or listen to podcasts that are all about 'Introduction to Rust'. I repeat this process until I am comfortable with my level of understanding.</p><h1>Benefits</h1><h2>Spaced Repetition</h2><p>Reviewing a similar piece of content multiple times helps build solid foundations and promote long-term retention.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qJzs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bfbfabe-45d3-4ed0-ad29-f4e58c01aaa1_1840x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qJzs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bfbfabe-45d3-4ed0-ad29-f4e58c01aaa1_1840x1200.png 424w, https://substackcdn.com/image/fetch/$s_!qJzs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bfbfabe-45d3-4ed0-ad29-f4e58c01aaa1_1840x1200.png 848w, https://substackcdn.com/image/fetch/$s_!qJzs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bfbfabe-45d3-4ed0-ad29-f4e58c01aaa1_1840x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!qJzs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bfbfabe-45d3-4ed0-ad29-f4e58c01aaa1_1840x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qJzs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bfbfabe-45d3-4ed0-ad29-f4e58c01aaa1_1840x1200.png" width="1456" height="950" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3bfbfabe-45d3-4ed0-ad29-f4e58c01aaa1_1840x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:950,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:150330,&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;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qJzs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bfbfabe-45d3-4ed0-ad29-f4e58c01aaa1_1840x1200.png 424w, https://substackcdn.com/image/fetch/$s_!qJzs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bfbfabe-45d3-4ed0-ad29-f4e58c01aaa1_1840x1200.png 848w, https://substackcdn.com/image/fetch/$s_!qJzs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bfbfabe-45d3-4ed0-ad29-f4e58c01aaa1_1840x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!qJzs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bfbfabe-45d3-4ed0-ad29-f4e58c01aaa1_1840x1200.png 1456w" sizes="100vw"></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 Forgetting Curve (Productive.Fish, CC0, via Wikimedia Commons)</figcaption></figure></div><h2>Natural Selection</h2><p>Through continuous exposure and practice, the most effective and resilient ideas are retained and reinforced, helping to solidify the knowledge foundations. It's like the survival of the fittest in the learning world, where the most useful and applicable ideas are the ones that stick.</p><h2>Serendipity</h2><p>Sometimes, I stumble upon brilliant ideas or insights unexpectedly, which adds excitement and depth to my learning. The unexpected discovery of valuable ideas or insights makes the process more engaging. It's the happy accident of stumbling upon a significant connection or understanding that wasn't the initial focus of the learning activity. This adds an element of surprise and innovation, making it potentially more effective.</p><h1>Closing Thoughts</h1><p>It is time-consuming, but getting good at anything takes time&#8212;we all know this<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. I enjoy the journey rather than focus on the outcome.<br><br>I highly recommend checking out the '<a href="https://www.coursera.org/learn/learning-how-to-learn#modules">Learning How To Learn</a>' free course on Coursera. This course provides valuable insights about repetition, among other key learning principles.</p><p>I will discuss other strategies in future posts. Stay tuned.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pixels &amp; Ponderings! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>What learning strategies have you found to be the most effective? I'd love to hear your experiences and insights.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://breaking.build/p/mastery-hacks-part-1-repetition/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://breaking.build/p/mastery-hacks-part-1-repetition/comments"><span>Leave a comment</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>The famous 10,000-hour rule comes to mind here. Later in the series, I will share my thoughts about it.</p></div></div>]]></content:encoded></item></channel></rss>