<?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[Tall tree Technology]]></title><description><![CDATA[Writing about AI-augmented software development, organizational constraints, and how engineering teams actually deliver outcomes at scale. Focused on clarity over hype.]]></description><link>https://writing.talltree.io</link><image><url>https://substackcdn.com/image/fetch/$s_!Az9O!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6831872-7845-41f3-a41a-aca9b6be4bc4_1024x1024.png</url><title>Tall tree Technology</title><link>https://writing.talltree.io</link></image><generator>Substack</generator><lastBuildDate>Wed, 05 Aug 2026 19:22:37 GMT</lastBuildDate><atom:link href="https://writing.talltree.io/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Ken Britton]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[kenbritton@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[kenbritton@substack.com]]></itunes:email><itunes:name><![CDATA[Tall Tree Technology]]></itunes:name></itunes:owner><itunes:author><![CDATA[Tall Tree Technology]]></itunes:author><googleplay:owner><![CDATA[kenbritton@substack.com]]></googleplay:owner><googleplay:email><![CDATA[kenbritton@substack.com]]></googleplay:email><googleplay:author><![CDATA[Tall Tree Technology]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Context Decays Faster Than Code]]></title><description><![CDATA[Two open-source skills for fewer "haven't we already discussed this?" moments.]]></description><link>https://writing.talltree.io/p/context-decays-faster-than-code</link><guid isPermaLink="false">https://writing.talltree.io/p/context-decays-faster-than-code</guid><dc:creator><![CDATA[Tall Tree Technology]]></dc:creator><pubDate>Tue, 04 Aug 2026 17:48:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Az9O!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6831872-7845-41f3-a41a-aca9b6be4bc4_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>Over the past few months I&#8217;ve been using a coding agent - Claude - to build and maintain a few software projects. Working with the tool daily, I noticed that context - documentation, architectural decisions, even the agent&#8217;s internal memories - is critical, and decays very quickly. Mistakes repeated themselves; old decisions would magically resurface. Where a senior developer would notice a stale document and think &#8220;that&#8217;s probably out of date&#8221;, an agent would read the same content and act on it.</span></p><p><span>These are familiar culprits, now with bigger impact:</span></p><p><strong><span>Code drifts from declared architecture</span></strong><span> &#8212; codebases have guidelines, rules, and principles that are described in documentation. These can become obsolete if they&#8217;re not kept up to date. With the increased velocity of AI, this happens much more quickly.</span></p><p><strong><span>Context drifts from code</span></strong><span> &#8212; in order to guide agent behaviour, users define context files like CLAUDE.md, cursorrules, etc. Agents also store internal memory files with key information. Agents can and do read all of this, so if they&#8217;re not up to date, you get undesirable behaviour.</span></p><p><span>To slow the decay I built a couple of skills.</span></p><h2><span>architecture-drift-review</span></h2><p><span>I run this after major feature work, before a release, and as a weekly job. It audits the codebase against its described architecture and verifies claims against code.</span></p><p><span>Three rules make it work:</span></p><ul><li><p><strong><span>Deterministic evidence first</span></strong><span> &#8212; &#8220;Seventeen modules open the database directly; the doc says one&#8221; is a finding. &#8220;Coupling seems high&#8221; is not.</span></p></li><li><p><strong><span>No finding without an exit</span></strong><span> &#8212; every finding leaves with a fix, a new automated guard, or an explicit dated acceptance. A finding that ends as &#8220;should be looked at&#8221; will regress &#8212; that&#8217;s a failure of the review.</span></p></li><li><p><strong><span>The doc is a byproduct</span></strong><span> &#8212; keeping ARCHITECTURE.md accurate happens in passing. If a review produces only an updated document, it described the system instead of making it more robust.</span></p></li></ul><p><span>If the project has no architecture doc at all, the skill inverts: it scans the system and creates a baseline document, so the next run has something to audit.</span></p><h2><span>agent-context-audit</span></h2><p><span>I run this every time I&#8217;m getting unexpected behaviour from agents - the &#8220;</span>haven&#8217;t we already discussed this?<span>&#8221; moment. It&#8217;s tool-agnostic so Claude memories,  CLAUDE.md, AGENTS.md, Cursor rules, Copilot instructions, decision-record statuses, skill files, permission and MCP configs are all checked.</span></p><p><span>If you run more than one tool, it also diffs their instruction files against each other, because CLAUDE.md and .cursorrules can drift too.</span></p><h2><span>Two principles worth sharing:</span></h2><p><strong><span>The false-OK</span></strong><span> &#8212; when you verify a claim with a grep and get nothing back, that can be read as OK. But what if the file was moved? Empty is not necessarily OK, it can also mean unverified.</span></p><p><strong><span>The graduation pass</span></strong><span> &#8212; a number of findings from my audits have graduated into deterministic checks that I run locally. By doing that, they evolve from &#8220;instructions the agent must remember&#8221; to &#8220;checks that can&#8217;t be ignored.&#8221; Bonus: they&#8217;re cheap, run without a network connection, and support both agents and human teams.</span></p><h2><span>Give them a try</span></h2><p><span>Both skills are MIT-licensed and easy to install:</span></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;bc36f78e-39c4-4767-a81e-33a56e155a8f&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">npx skills add ken-talltree-io/agent-skills@architecture-drift-review
npx skills add ken-talltree-io/agent-skills@agent-context-audit</code></pre></div><p><span>The repo is here: </span><a href="https://github.com/ken-talltree-io/agent-skills"><span>github.com/ken-talltree-io/agent-skills</span></a><span>. The skills are extracted from real production use, so they&#8217;re likely biased to my work. Issues and PRs are welcome.</span></p>]]></content:encoded></item><item><title><![CDATA[Thinking Clearly When Moving Quickly]]></title><description><![CDATA[Systems matter with AI-augmented development]]></description><link>https://writing.talltree.io/p/thinking-clearly-when-moving-quickly</link><guid isPermaLink="false">https://writing.talltree.io/p/thinking-clearly-when-moving-quickly</guid><dc:creator><![CDATA[Tall Tree Technology]]></dc:creator><pubDate>Tue, 13 Jan 2026 16:37:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Az9O!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6831872-7845-41f3-a41a-aca9b6be4bc4_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In post <a href="https://open.substack.com/pub/kenbritton/p/ai-didnt-make-your-team-faster?r=713v3y&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true">1</a> and <a href="https://open.substack.com/pub/kenbritton/p/ai-moved-the-bottleneck-heres-where?r=713v3y&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true">2</a> of this series, I explored why AI-assisted development can increase output without improving outcomes, and how constraints shift once implementation is no longer the limiting factor. In this post, I&#8217;ll be discussing how teams can rethink how they work when facing these new constraints.</p><h3><strong>AI alone is not a capability upgrade</strong></h3><p>AI can significantly increase local throughput; however, if the system and organization can&#8217;t absorb that throughput, the result is pressure rather than progress. Review queues grow, decisions stall, and coordination costs rise.</p><p>This is where many &#8220;AI readiness&#8221; efforts quietly fail. The tools work as expected, but the organization lacks the structures needed to operate effectively once implementation is no longer the constraint.</p><p>When using AI code-generation, teams need to ask a more fundamental question: <em>how do we address these new constraints?</em></p><h3><strong>Decision infrastructure matters</strong></h3><p>High-performing teams respond by making decisions explicit. Ownership is clear. Trade-offs are written down. Decisions are made earlier, when change is cheap, rather than revisited later under pressure.</p><p>What matters here isn&#8217;t how quickly decisions are made, but how often they need to be revisited. Teams that struggle under AI-assisted development are rarely blocked by lack of options, they&#8217;re blocked by ambiguity. The goal isn&#8217;t faster decisions, it&#8217;s fewer reversals.</p><h3><strong>Architectural simplicity is a competitive advantage</strong></h3><p>AI-generated code makes it easy to add complexity unintentionally and unnecessarily. Strong teams counter this by being conservative about architecture. They limit abstractions, strengthen boundaries, and protect core systems from frequent churn.</p><p>These actions aren&#8217;t about resisting change. They&#8217;re about maintaining systems that can be understood, reasoned about, and safely modified as throughput increases. When architecture supports comprehension, teams retain their ability to adapt, even as code volume grows.</p><h3><strong>Review and comprehension are the work</strong></h3><p>In AI-augmented environments, review is no longer a secondary activity, it <em>is</em> the work. As more code moves through the system, understanding intent becomes more valuable than generating output. Effective teams optimize for this by keeping changes small, communicating intent clearly, and relying on shared conventions to reduce cognitive load.</p><p>When review breaks down, AI amplifies the failure. Superficial approvals, eroding confidence, and fragile systems are not tooling problems, they&#8217;re signals that the organization can&#8217;t yet absorb the speed it has created.</p><p>Speed without comprehension leads to fragility. This is true at all levels of the organization.</p><h3><strong>Seeing the system</strong></h3><p>AI is often framed as a shortcut to better software delivery. In practice, it&#8217;s a stress test of the overall system.</p><p>It reveals whether teams can make high-quality decisions, understand changes as they move through the system, and coordinate effectively under increased throughput. When those capabilities are weak, AI doesn&#8217;t compensate, it exposes the limits.</p><p>The opportunity in the age of AI isn&#8217;t to generate more code, it&#8217;s to build organizations that think clearly when moving quickly.</p>]]></content:encoded></item><item><title><![CDATA[AI Moved the Bottleneck]]></title><description><![CDATA[How constraints shift once implementation is no longer the limit]]></description><link>https://writing.talltree.io/p/ai-moved-the-bottleneck-heres-where</link><guid isPermaLink="false">https://writing.talltree.io/p/ai-moved-the-bottleneck-heres-where</guid><dc:creator><![CDATA[Tall Tree Technology]]></dc:creator><pubDate>Thu, 18 Dec 2025 18:15:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Az9O!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6831872-7845-41f3-a41a-aca9b6be4bc4_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In my <a href="https://open.substack.com/pub/kenbritton/p/ai-didnt-make-your-team-faster?r=713v3y&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true">previous post</a>, I described why AI often increases output without improving outcomes. The reason is simple: the bottleneck didn&#8217;t disappear, it moved. Once implementation accelerates, old constraints cease to limit delivery. What replaces them are familiar limits, showing up consistently in AI-augmented teams.</p><h3>From Implementation to Decision-Making</h3><p>AI produces plausible prototypes quickly. Ideally, it produces several. This shifts the limiting factor from how quickly code can be written to how effectively decisions can be made. Teams must now choose between approaches, trade off short-term speed against long-term maintainability, and decide what risks they are willing to accept.</p><p>When ownership is unclear or decisions remain implicit, progress slows, not because engineers can&#8217;t act, but because alignment becomes harder to achieve. As throughput increases, the cost of weak or delayed decisions rises quickly, and teams feel the impact sooner.</p><h3>From Writing Code to Understanding Code</h3><p>As AI increases output, engineers spend more time reading than writing.</p><p>Generated code expands overall volume and surface area, and context becomes harder to maintain. Understanding <em>why</em> something exists, not just <em>what it does</em>, takes longer. This creates pressure in review - approvals can become shallow, while confidence in changes and tools can erode.</p><p>Over time, the cost of misunderstanding catches up with and exceeds the cost of implementation, making recovery from mistakes becomes more expensive.</p><h3>From Execution to Coordination</h3><p>Faster individuals do not produce faster teams. As local throughput increases, coordination costs begin to dominate delivery speed. Dependencies matter more, and interfaces are exercised more frequently. Organizational boundaries become visible in ways they weren&#8217;t before.</p><p>At scale, delivery is governed less by individual capability and more by how effectively work moves across those boundaries. With less slack in the system, misalignment propagates faster and coordination failures surface sooner.</p><h3>What This Means for Leaders</h3><p>When these become the dominant constraints, improving outcomes requires a shift in focus. The limiting factors are no longer tools or implementation capacity, but how decisions are made, how changes are understood as they move through the system, and how work is coordinated under increased throughput.</p><p>In my next post, I&#8217;ll look at how high-performing teams redesign themselves around this shift, and what changes once decision-making, comprehension, and coordination become the primary work.</p>]]></content:encoded></item><item><title><![CDATA[AI Didn’t Make Your Team Faster]]></title><description><![CDATA[Why increased coding speed hasn&#8217;t translated into faster delivery]]></description><link>https://writing.talltree.io/p/ai-didnt-make-your-team-faster</link><guid isPermaLink="false">https://writing.talltree.io/p/ai-didnt-make-your-team-faster</guid><dc:creator><![CDATA[Tall Tree Technology]]></dc:creator><pubDate>Sat, 13 Dec 2025 22:40:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Az9O!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6831872-7845-41f3-a41a-aca9b6be4bc4_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over the past year, many engineering teams have adopted AI-assisted development tools and seen a clear increase in coding throughput. Engineers are writing more code, opening more pull requests, and completing individual tasks faster.</p><p>What&#8217;s been less consistent is an increase in actual delivery speed.</p><p>The gap between local productivity and system-level outcomes is becoming a common source of confusion for engineering leaders. It shouldn&#8217;t be surprising. Most software organizations were never constrained by typing speed in the first place.</p><h3>Speed Wasn&#8217;t the Bottleneck</h3><p>Before AI entered the picture, constraints in software delivery were well documented:</p><ul><li><p>Ambiguous or shifting requirements</p></li><li><p>Architectural coupling</p></li><li><p>Review and coordination overhead</p></li><li><p>Decision latency across teams</p></li></ul><p>AI accelerates the act of producing code, but it doesn&#8217;t resolve any of these constraints. In practice, it brings them to the forefront.</p><p>Teams now push higher volumes of change through systems that were never designed to absorb that rate of modification. Review queues lengthen. Context switching increases. Architectural boundaries are stressed more frequently.</p><p>The result isn&#8217;t faster delivery.</p><p>It&#8217;s more pressure on already constrained systems.</p><h3>Local Throughput vs. System Flow</h3><p>Improving the speed of one component doesn&#8217;t improve the throughput of the whole system unless that component was the constraint.</p><p>AI dramatically improves local throughput at the individual developer level. Software delivery, however, is a coordinated activity. As individual speed increases, constraints shift elsewhere, most often to decision-making, review, and coordination.</p><p>From the inside, this can feel like <em>&#8220;we&#8217;re moving faster but getting less done.&#8221;</em></p><p>From the outside, it looks like more activity without corresponding outcomes.</p><h3>The Wrong Conclusion</h3><p>Many teams interpret this mismatch as a tooling issue: better prompts, better models, or better integrations will solve the problem. Others assume it&#8217;s growing pains.</p><p>In reality, what AI is exposing is not a gap in capability but a structural constraint.</p><p>AI doesn&#8217;t remove bottlenecks.</p><p>It reveals them.</p><p>Understanding where those constraints move and how to design teams to operate effectively under them is now one of the central challenges of modern engineering leadership.</p><p><em>In the next post, I&#8217;ll look at where the bottleneck actually moves in AI-augmented teams and why decision-making, not implementation, becomes the limiting factor.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://writing.talltree.io/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 Tall tree Technology! 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></channel></rss>